pax_global_header00006660000000000000000000000064122624775150014525gustar00rootroot0000000000000052 comment=616e9b1045e5cf8086e9fc0479ec3e31ee701934 linux-minidisc-0.9.13/000077500000000000000000000000001226247751500145535ustar00rootroot00000000000000linux-minidisc-0.9.13/.gitignore000066400000000000000000000001031226247751500165350ustar00rootroot00000000000000*~ *.o *.app *.xcodeproj Info.plist Makefile* *.user qtc-gdbmacros linux-minidisc-0.9.13/COPYING000066400000000000000000000431031226247751500156070ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) 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 this service 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 make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. 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. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the 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 a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE 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. 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 convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision 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, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This 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. linux-minidisc-0.9.13/COPYING.LIB000066400000000000000000000636421226247751500162260ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! linux-minidisc-0.9.13/README000066400000000000000000000020321226247751500154300ustar00rootroot00000000000000PREREQUISITES qmake (you don't need the whole Qt stuff for the non-GUI parts, just qmake) glib (for the core library) mad (for MP3 transfer, can be disabled) libmcrypt (for PCM transfer, can be disabled) Qt 4 (for the GUI) sox 14.2 (for the GUI) BUILDING This project uses the qmake build system to cooperate with the Qt Creator IDE. To compile in Qt Creator, just open himd.pro. To compile at the command line, run qmake -r make Depending on the default configuration of your system, you will find the executables in the debug subdirectory, the release subdirectories or directly in the directories qhimdtransfer and himdtest. To disable the optional features, the following keywords are recognized in the CONFIG variable: without_mad -> disables MP3 support (you wont need mad) without_mcrypt -> disables PCM support (you wont need libmcrypt) wihtout_gui -> disable qhimdtransfer (you wont need Qt and sox) So, the minimal configuration is built by using qmake -r CONFIG+=without_mad CONFIG+=without_mcrypt CONFIG+=without_gui linux-minidisc-0.9.13/VERSION000066400000000000000000000000071226247751500156200ustar00rootroot000000000000000.9.13 linux-minidisc-0.9.13/basictools/000077500000000000000000000000001226247751500167155ustar00rootroot00000000000000linux-minidisc-0.9.13/basictools/.gitignore000066400000000000000000000000321226247751500207000ustar00rootroot00000000000000minikey mp3key himdformat linux-minidisc-0.9.13/basictools/Makefile000066400000000000000000000002031226247751500203500ustar00rootroot00000000000000 CFLAGS=-Wall all: himddiskid mp3key himdformat clean: rm -f *.o rm -f himddiskid mp3key himdformat himdformat_scg himdscsitestlinux-minidisc-0.9.13/basictools/himddiskid.c000066400000000000000000000044101226247751500211710ustar00rootroot00000000000000#include #include #include #include #include #define HIMD_KEY_HANDSHAKE_PKT1 0x30 /* to MD */ #define HIMD_KEY_HANDSHAKE_PKT2 0x31 /* from MD */ #define HIMD_KEY_HANDSHAKE_PKT3 0x32 /* to MD */ #define HIMD_KEY_HANDSHAKE_PKT4 0x33 /* from MD */ #define HIMD_KEY_UNIQUEID 0x39 #define HIMD_KEY_LEAFID 0x3B #define HIMD_KEY_DISCID 0x3D int main(int argc, char ** argv) { int fd; int res; int i; struct sg_io_hdr sg; unsigned char command[12]; unsigned char reply[200]; unsigned char sense[16]; const unsigned int index = 0; if(argc < 2) { fputs("Please specify the path to the scsi device\n",stderr); return 1; } fd = open(argv[1],O_RDWR); if(fd < 0) { perror("Cannot open device"); return 1; } if(ioctl(fd,SG_GET_VERSION_NUM,&i) < 0) { perror("ioctl SG_GET_VERSTION_NUM failed. Missing sg support?"); return 1; } command[0] = 0xA4; /* SENSE KEYDATA (HiMD-specific) */ command[1] = 0; /* LUN 0 */ command[2] = index >> 24; /* 32 */ command[3] = index >> 16; /* bits */ command[4] = index >> 8; /* of */ command[5] = index; /* index */ command[6] = 0; command[7] = 0xBD; /* magic byte, no idea what it means */ command[8] = 0; /* high byte reply size */ command[9] = 0x12; /* low byte reply size */ command[10] = HIMD_KEY_DISCID; command[11] = 0; sg.interface_id = 'S'; sg.dxfer_direction = SG_DXFER_FROM_DEV; sg.cmd_len = 12; sg.mx_sb_len = 16; sg.iovec_count = 0; sg.dxfer_len = 0x12; sg.dxferp = reply; sg.cmdp = command; sg.sbp = sense; sg.timeout = 10000000; sg.flags = 0; sg.pack_id = 0; sg.usr_ptr = NULL; res = ioctl(fd,SG_IO,&sg); if(res < 0) { perror("performing SCSI command"); return 1; } if(sg.sb_len_wr) { printf("Getting Disc ID FAILED! Sense data: "); for(i = 0;i < sg.sb_len_wr;i++) printf("%02X ",(unsigned char)sense[i]); putchar('\n'); return 1; } printf("Disc ID: "); for(i = 0;i < 16;++i) printf("%02X",(unsigned char)reply[i+2]); putchar('\n'); close(fd); return 0; } linux-minidisc-0.9.13/basictools/himdformat.c000066400000000000000000000031121226247751500212100ustar00rootroot00000000000000#include #include #include #include #include #include int main(int argc, char ** argv) { int fd; int res; int i; struct sg_io_hdr sg; unsigned char command[12]; unsigned char reply[200]; unsigned char sense[16]; if(argc < 2) { fputs("Please specify the path to the scsi device (sgN or sdX)\n",stderr); return 1; } fd = open(argv[1],O_RDWR); if(fd < 0) { perror("Cannot open device"); return 1; } if(ioctl(fd,SG_GET_VERSION_NUM,&i) < 0) { perror("ioctl SG_GET_VERSTION_NUM failed. Missing sg support?"); return 1; } memset(command,0,12); command[0] = 0xC2; /* sony special commands */ command[3] = 0x00; /* subcommand: erase all data (0x00); format (0x01) */ command[4] = 0x03; /* control flags */ sg.interface_id = 'S'; sg.dxfer_direction = SG_DXFER_NONE; sg.cmd_len = 12; sg.mx_sb_len = 16; sg.iovec_count = 0; sg.dxfer_len = 0; sg.dxferp = reply; sg.cmdp = command; sg.sbp = sense; sg.timeout = 10000000; sg.flags = 0; sg.pack_id = 0; sg.usr_ptr = NULL; res = ioctl(fd,SG_IO,&sg); if(res < 0) { perror("performing SCSI command"); return 1; } if(sg.sb_len_wr) { printf("Formatting failed! Sense data: "); for(i = 0;i < sg.sb_len_wr;i++) printf("%02X ",(unsigned char)sense[i]); putchar('\n'); return 1; } close(fd); return 0; } linux-minidisc-0.9.13/basictools/himdformat_scg.c000066400000000000000000000046341226247751500220560ustar00rootroot00000000000000/* * himdformat_scg.c - format HiMDs using the generic SCSI abstraction library from cdrtools (libscg) * * - requires cdrtools to be installed * * - compile with: gcc -D__LINUX_X86_GCC32 himdscsitest.c -I/opt/schily/include -L/opt/schily/lib -lscg -lscgcmd -lschily -o himdscsitest (on 32 bit Linux with gcc) * - compile with: gcc -D__LINUX_X86_GCC64 himdscsitest.c -I/opt/schily/include -L/opt/schily/lib -lscg -lscgcmd -lschily -o himdscsitest (on 64 bit Linux with gcc) */ #include #include #include #include #include #define SONY_SPECIFIC_COMMAND 0xC2 #define HIMD_ERASE 0x00 #define HIMD_FORMAT 0x01 #define MAX_DEVICE_LEN 256 #define SCSI_TIMEOUT 20 int main(int argc, char ** argv) { SCSI * scgp = NULL; char command[12]; int err = 0; int ret; char dev[MAX_DEVICE_LEN]; char errstr[80]; char cmdname[] = "himd_format"; struct scg_cmd * scmd; if(argc < 2) { fputs("Please specify the path to the scsi device or use cdrecord syntax (X,Y,Z).\n",stderr); return -1; } memset(dev, 0, MAX_DEVICE_LEN); strcpy(dev, argv[1]); // open scsi driver scgp = scg_open(dev, errstr, sizeof(errstr), 0, NULL); if(!scgp) { fputs("Cannot open scsi driver.\n", stderr); return -2; } if(scgp->addr.scsibus == -2 && scgp->addr.target == -2) // scsi device not found, search by devicename; { // this is nessessary on Windows when drive letters // are used ret = scg__open(scgp, dev); if(!ret) { fprintf(stderr, "Cannot open SCSI device for %d.\n", dev); err = -3; goto clean; } } scg_settimeout(scgp, SCSI_TIMEOUT); scgp->cmdname = cmdname; // prepare SCSI command scmd = scgp->scmd; memset(scmd, 0, sizeof(struct scg_cmd)); scmd->addr = (caddr_t)0; scmd->size = 0; scmd->cdb_len = sizeof(command); scmd->sense_len = CCS_SENSE_LEN; scmd->flags = SCG_DISRE_ENA; memset(command, 0, 12); command[0] = SONY_SPECIFIC_COMMAND; command[3] = HIMD_ERASE; /* set HIMD_ERASE or HIMD_FORMAT here */ command[4] = 0x03; /* control flags */ memcpy(scmd->cdb.cmd_cdb, command, 12); // send SCSI command if(scg_cmd(scgp) < 0) { fputs("Cannot send scsi command.\n", stderr); err = -4; goto clean; } else fprintf(stderr, "SCSI command sent successfully.\n"); clean: scg__close(scgp); return err; } linux-minidisc-0.9.13/basictools/himdscsitest.c000066400000000000000000000277321226247751500215770ustar00rootroot00000000000000/* * himdscsitest.c - send various SCSI commands to HiMD Walkman * * - see Wiki: * - requires cdrtools to be installed * * - compile with: gcc -D__LINUX_X86_GCC32 himdscsitest.c -I/opt/schily/include -L/opt/schily/lib -lscg -lscgcmd -lschily -o himdscsitest (on 32 bit Linux with gcc) * - compile with: gcc -D__LINUX_X86_GCC64 himdscsitest.c -I/opt/schily/include -L/opt/schily/lib -lscg -lscgcmd -lschily -o himdscsitest (on 64 bit Linux with gcc) */ #include #include #include #include #include #include #include #define TRUE 1 /* use return values of boolean type in some static functions */ #define FALSE 0 #define SONY_SPECIFIC_COMMAND 0xC2 #define FORMAT_ERASE_FLAGS 3 #define FORMAT_HIMD 1 #define ERASE_HIMD 0 #define GET_TIME 0x50 #define SET_TIME 0x90 #define ALLOW_REMOVAL 0 #define PREVENT_REMOVAL 1 /*#define MEDIUM_60_MIN: can anyone test this, I have no 60 min MD*/ #define MEDIUM_74_MIN 283 #define MEDIUM_80_MIN 305 #define MEDIUM_HIMD_1GB 1011 #define MAX_DEVICE_LEN 256 #define SCSI_TIMEOUT 20 static void read_capacity(SCSI * scgp) { struct scg_cmd * scmd = scgp->scmd; struct scsi_capacity * cap = scgp->cap; memset(scmd, 0, sizeof(struct scg_cmd)); scmd->addr = (caddr_t)cap; scmd->size = sizeof(struct scsi_capacity); scmd->flags = SCG_RECV_DATA|SCG_DISRE_ENA; scmd->cdb_len = SC_G1_CDBLEN; scmd->sense_len = CCS_SENSE_LEN; scmd->cdb.g1_cdb.cmd = 0x25; /* Read Capacity */ scmd->cdb.g1_cdb.lun = scg_lun(scgp); g1_cdblen(&scmd->cdb.g1_cdb, 0); /* Full Media */ scgp->cmdname = "read capacity"; if (scg_cmd(scgp) < 0) { cap->c_bsize = 0; cap->c_baddr = 0; } else { cap->c_bsize = a_to_4_byte(&cap->c_bsize); cap->c_baddr = a_to_4_byte(&cap->c_baddr); } } static int capacity_mb(SCSI * scgp) { double dkb = (scgp->cap->c_baddr+1.0) * (scgp->cap->c_bsize/1024.0); int mb = (dkb / 1000.0 * 1.024); return mb; } static int prevent_removal(SCSI * scgp, int prevent) { struct scg_cmd * scmd = scgp->scmd; memset(scmd, 0, sizeof(struct scg_cmd)); scmd->addr = (caddr_t)0; scmd->size = 0; scmd->cdb_len = SC_G0_CDBLEN; scmd->sense_len = CCS_SENSE_LEN; scmd->flags = SCG_DISRE_ENA; scmd->cdb.g0_cdb.cmd = 0x1E; scmd->cdb.g0_cdb.lun = scg_lun(scgp); scmd->cdb.g0_cdb.count = prevent & 1; scgp->cmdname = "allow / prevent removal"; return scg_cmd(scgp); } static int test_unit_ready(SCSI * scgp) { struct scg_cmd * scmd = scgp->scmd; memset(scmd, 0, sizeof(struct scg_cmd)); scmd->addr = (caddr_t)0; scmd->size = 0; scmd->flags = SCG_DISRE_ENA; scmd->cdb_len = SC_G0_CDBLEN; scmd->sense_len = CCS_SENSE_LEN; scmd->cdb.g0_cdb.cmd = SC_TEST_UNIT_READY; scmd->cdb.g0_cdb.lun = scg_lun(scgp); scgp->cmdname = "test unit ready"; return scg_cmd(scgp); } static int send_command(SCSI * scgp, const char * command, int len, char * name) { struct scg_cmd * scmd = scgp->scmd; scgp->cmdname = name; memset(scmd, 0, sizeof(struct scg_cmd)); scmd->addr = (caddr_t)0; scmd->size = 0; scmd->cdb_len = len; scmd->sense_len = CCS_SENSE_LEN; scmd->flags = SCG_DISRE_ENA; memcpy(scmd->cdb.cmd_cdb, command, scmd->cdb_len); return scg_cmd(scgp); } static int send_command_with_buffer(SCSI * scgp, const char * command, int len, char * name, char * outbuf, int outlen, int mode) { struct scg_cmd * scmd = scgp->scmd; scgp->cmdname = name; memset(scmd, 0, sizeof(struct scg_cmd)); scmd->addr = (caddr_t)outbuf; scmd->size = outlen; scmd->cdb_len = len; scmd->sense_len = CCS_SENSE_LEN; scmd->flags = mode | SCG_DISRE_ENA; memcpy(scmd->cdb.cmd_cdb, command, scmd->cdb_len); return scg_cmd(scgp); } static void read_time(struct tm * tm, char * time) { tm->tm_isdst = time[0] & 0xff; tm->tm_sec = time[1] & 0xff; tm->tm_min = time[2] & 0xff; tm->tm_hour = time[3] & 0xff; tm->tm_mday = time[4] & 0xff; tm->tm_mon = time[5] & 0xff; tm->tm_year = time[6] & 0xff; mktime(tm); /* this will set tm_wday and tm_yday correctly*/ } static void make_settime_cmd(struct tm * tm, char * cmd) { memset(cmd, 0, 12); cmd[0] = SONY_SPECIFIC_COMMAND; cmd[3] = SET_TIME; cmd[5] = tm->tm_sec & 0xff; cmd[6] = tm->tm_min & 0xff; cmd[7] = tm->tm_hour & 0xff; cmd[8] = tm->tm_mday & 0xff; cmd[9] = tm->tm_mon & 0xff; cmd[10] = tm->tm_year & 0xff; } int unit_ready(SCSI * scgp) { if(test_unit_ready(scgp) < 0) return FALSE; return TRUE; } int wait_for_unit_ready(SCSI *scgp) { int c, k; int ret = 0; if (test_unit_ready(scgp) >= 0) return TRUE; while((ret = test_unit_ready(scgp)) < 0) { if (!scgp->scmd->scb.busy) { c = scg_sense_code(scgp); /* Abort if it does not make sense to wait. */ k = scg_sense_key(scgp); /* 0x30 == Cannot read medium ; 0x3A == Medium not present*/ if ((k == SC_NOT_READY && (c == 0x3A || c == 0x30)) ||(k == SC_MEDIUM_ERROR)) break; } } if(ret < 0) return FALSE; return TRUE; } void format_medium(SCSI * scgp, char * command, char * errstr) { int type; command[0] = SONY_SPECIFIC_COMMAND; command[3] = FORMAT_HIMD; command[4] = FORMAT_ERASE_FLAGS; type = capacity_mb(scgp); if(type == 0) printf("Error: Cannot read capacity\n"); else { if(send_command(scgp, command, 12, "himd format") < 0) fprintf(stderr,"Error formatting medium:\n%s", scg_sensemsg(0, scg_sense_code(scgp), scg_sense_qual(scgp), NULL, errstr, sizeof(errstr))); else { printf("Please wait, formatting device.\n"); if(!wait_for_unit_ready(scgp)) fprintf(stderr,"Error waiting for unit ready:\n%s", scg_sensemsg(0, scg_sense_code(scgp), scg_sense_qual(scgp), NULL, errstr, sizeof(errstr))); else printf("HiMD successfully formatted.\n"); } } } void erase_medium(SCSI * scgp, char * command, char * errstr) { int type; command[0] = SONY_SPECIFIC_COMMAND; command[3] = ERASE_HIMD; command[4] = FORMAT_ERASE_FLAGS; type = capacity_mb(scgp); if(type == 0) printf("Error: Cannot read capacity.\n"); else if(type == MEDIUM_HIMD_1GB) printf("Error: Erasing 1GB HiMD medium is not supported\nPlease use format to delete all tracks.\n"); else { if(send_command(scgp, command, 12, "erase format") < 0) fprintf(stderr,"Error erasing medium:\n%s", scg_sensemsg(0, scg_sense_code(scgp), scg_sense_qual(scgp), NULL, errstr, sizeof(errstr))); else { printf("Please wait, while erasing medium.\n"); if(!wait_for_unit_ready(scgp)) fprintf(stderr,"Error waiting for unit ready:\n%s", scg_sensemsg(0, scg_sense_code(scgp), scg_sense_qual(scgp), NULL, errstr, sizeof(errstr))); else printf("HiMD successfully erased.\n"); } } } void get_disc_id(SCSI * scgp, char * command, char * errstr) { char buffer[18]; unsigned char * discid = buffer; int i; command[0] = 0xA4; command[7] = 0xBD; command[9] = sizeof(buffer); command[10] = 0x3D; memset(buffer, 0, sizeof(buffer)); if(send_command_with_buffer(scgp, command, 12, "get disc id", buffer, sizeof(buffer), SCG_RECV_DATA) < 0) fprintf(stderr, "Cannot read disc id:\n%s", scg_sensemsg(0, scg_sense_code(scgp), scg_sense_qual(scgp), NULL, errstr, sizeof(errstr))); else { printf("Disc ID: "); for(i = 2;i < 0x12;++i) fprintf(stdout, "%02x",discid[i]); puts(""); } } void get_time(SCSI * scgp, char * command, char * errstr) { char buffer[7]; struct tm * tm; memset(buffer, 0x0, sizeof(buffer)); command[0] = SONY_SPECIFIC_COMMAND; command[3] = GET_TIME; command[8] = sizeof(buffer); if(send_command_with_buffer(scgp, command, 12, "get time", buffer, 7, SCG_RECV_DATA) < 0) fprintf(stderr,"Cannot read device time:\n%s", scg_sensemsg(0, scg_sense_code(scgp), scg_sense_qual(scgp), NULL, errstr, sizeof(errstr))); else { read_time(tm, buffer); fprintf(stderr, "Device time is: %s\n", asctime(tm)); } } void set_localtime(SCSI * scgp, char * command, char * errstr) { time_t t = time(NULL); struct tm * tme; if(t == -1) { printf("Error: Cannot get local time.\n"); return; } tme = localtime(&t); fprintf(stderr, "Reading local computer time: %s\n", asctime(tme)); make_settime_cmd(tme, command); if(send_command(scgp, command, 12, "set time") < 0) fprintf(stderr,"Cannot set device time:\n%s", scg_sensemsg(0, scg_sense_code(scgp), scg_sense_qual(scgp), NULL, errstr, sizeof(errstr))); else printf("Time successfully set.\n"); } void eject_medium(SCSI * scgp, char * errstr) { static const char cmd_loadunload[6] = {0x1B,0,0,0,2,0}; /* use load/unload scsi command */ prevent_removal(scgp, ALLOW_REMOVAL); if(send_command(scgp, cmd_loadunload, 6, "eject") < 0) fprintf(stderr,"Cannot eject medium:\n%s", scg_sensemsg(0, scg_sense_code(scgp), scg_sense_qual(scgp), NULL, errstr, sizeof(errstr))); } void usage(char * cmdname) { printf("Usage: %s , where is either of:\n\n\ format - erases all tracks on disc\n\ erase - erases all tracks and himd file system (not om 1GB medium)\n\ discid - reads the disc id of the inserted medium\n\ gettime - reads the time of device internal clock\n\ setlocaltime - syncs device internal clock with your local computer time\n\ capacity - shows the capacity of inserted medium in MB\n\ eject - ejects the medium (same as pressing stop button on device)\n", cmdname); } int main(int argc, char ** argv) { SCSI * scgp = NULL; char command[12]; char dev[MAX_DEVICE_LEN]; char errstr[80]; if (argc == 2 && (strcmp (argv[1], "help") == 0)) { usage(argv[0]); return 0; } if (argc != 3) { printf("Please specify device name and command to be sent. Use \"%s help\" to display a help.\n", argv[0]); return 0; } memset(dev, 0, MAX_DEVICE_LEN); strcpy(dev, argv[1]); // open scsi driver scgp = scg_open(dev, errstr, sizeof(errstr), 0, 1); if(!scgp) { fputs("Cannot open scsi driver.\n", stderr); return 1; } if(scgp->addr.scsibus == -2 && scgp->addr.target == -2) // scsi device not found, search by devicename { // this is nessessary on windows when driveletter is used if(!scg__open(scgp, dev) || (scgp->addr.scsibus == -2 && scgp->addr.target == -2)) { fprintf(stderr, "Cannot open SCSI device for %s\n", dev); scg__close(scgp); return 1; } } if(!unit_ready) { printf("Error: device not ready.\n"); scg__close(scgp); return 1; } scgp->silent++; /* do not print debug messages from libscg */ scg_settimeout(scgp, SCSI_TIMEOUT); read_capacity(scgp); prevent_removal(scgp, PREVENT_REMOVAL); memset(command, 0, 12); if(strcmp(argv[2],"format") == 0) /* aka "Erase All", deletes all tracks but leaves */ format_medium(scgp, command, errstr); /* himd file system on disc */ else if(strcmp(argv[2],"erase") == 0) /* deletes all incl. himd file system, */ erase_medium(scgp, command, errstr); /* will not work on 1GB himd media */ else if(strcmp(argv[2],"discid") == 0) get_disc_id(scgp, command, errstr); else if(strcmp(argv[2],"gettime") == 0) get_time(scgp, command, errstr); else if(strcmp(argv[2],"setlocaltime") == 0) set_localtime(scgp, command, errstr); else if(strcmp(argv[2],"capacity") == 0) { int capacity = capacity_mb(scgp); if(capacity == 0) fputs("Error: Cannot read capacity.\n", stderr); else fprintf(stderr, "Capacity: %d MB\n", capacity); } else if(strcmp(argv[2],"eject") == 0) eject_medium(scgp, errstr); else { usage (argv[0]); return 1; } prevent_removal(scgp, ALLOW_REMOVAL); scg__close(scgp); return 0; } linux-minidisc-0.9.13/basictools/mp3dec.c000066400000000000000000000042141226247751500202350ustar00rootroot00000000000000#include #include #include #define ALL_FRAMES 16384 int decodemp3(const unsigned char * key, const char * block, int skipframes, int maxframes, char * decoded, int * len) { struct mad_stream stream; struct mad_header header; int framecount = block[4]*256+block[5]; char xorred_frame[16304+MAD_BUFFER_GUARD]; int i; int result = 0; for(i = 0;i < 16304;i++) xorred_frame[i] = block[i+32] ^ key[i&3]; memset(xorred_frame+16304,0,MAD_BUFFER_GUARD); mad_stream_init(&stream); mad_header_init(&header); mad_stream_buffer(&stream, xorred_frame, 16304+MAD_BUFFER_GUARD); if(framecount > maxframes) framecount = maxframes; *len = 0; for(i = 0; i < framecount; i++) { if(mad_header_decode(&header, &stream) < 0 && (stream.error != MAD_ERROR_LOSTSYNC || i != framecount-1)) { printf("%d\n",stream.error); result = -1; break; } if(skipframes) skipframes--; else { memcpy(decoded + *len,stream.this_frame,stream.next_frame - stream.this_frame); *len += stream.next_frame - stream.this_frame; result++; } } mad_header_finish(&header); mad_stream_finish(&stream); return result; } int main(void) { FILE * f = fopen("/media/disk/HMDHIFI/ATDATA02.HMA","rb"); const unsigned char key[] = {0x00,0x69,0xF7,0x7A}; // 00641418 int firstblock = 0x60; int firstframe = 0x0; int lastblock = 0x12d; int lastframe = 0x1e; int b; int len; char block[16384]; char decoded[16384]; fseek(f,firstblock*16384L,SEEK_SET); for(b = firstblock;b <= lastblock;++b) { fread(block,1,16384,f); if(decodemp3(key,block,(b == firstblock) ? firstframe : 0, (b == lastblock) ? lastframe : ALL_FRAMES, decoded, &len) < 0) { fprintf(stderr,"decoder failed at block %d\n",b); return 1; } fwrite(decoded,1,len,stdout); } return 0; } linux-minidisc-0.9.13/basictools/mp3key.c000066400000000000000000000015631226247751500202760ustar00rootroot00000000000000#include /* Test vector: 1 CAEF24F1 -> A350796F */ int main(int argc, char ** argv) { unsigned int trknum = 1; unsigned int discid; char dummy; if(argc != 3) { fprintf(stderr, "Please invoke as 'mp3key '\n" "where tracknum is a decimal track number and discid is the last 8\n" "digits (4 bytes) of the hex disc id\n"); return 1; } if(sscanf(argv[1],"%d%c",&trknum,&dummy) != 1) { fprintf(stderr, "Track number is not a decimal integer\n"); return 1; } if(sscanf(argv[2],"%x%c",&discid,&dummy) != 1) { fprintf(stderr, "Disk ID is not an 8 digit hex string\n"); return 1; } unsigned int foo = ((trknum*0x6953B2ED)+0x6BAAB1) ^ discid; printf("%08X\n", foo & 0xFFFFFFFF); return 0; } linux-minidisc-0.9.13/docs/000077500000000000000000000000001226247751500155035ustar00rootroot00000000000000linux-minidisc-0.9.13/docs/himdcli.1000066400000000000000000000051771226247751500172100ustar00rootroot00000000000000\" Hey, EMACS: -*- nroff -*- .TH HIMDCLI 1 "November 23, 2012" .SH NAME himdcli \- Command line interface for accessing HiMD Walkman .SH SYNOPSIS .B himdcli "\" "\" .SH DESCRIPTION \fBhimdcli\fP is a command line interface for accessing HiMD Walkman. It uses the libhimd library to read and write audio tracks from a HiMD filesystem which can be mounted directly from a physical HiMD Walkman or a previously created image file of a HiMD. The mount point of the HiMD filesystem must be provided as an argument to \fBhimdcli\fP together with the command to be performed. Currently libhimd and therefore \fBhimdcli\fP implements full read access for PCM, ATRAC-3+ and MP3 tracks as well as experimental write support for MP3 tracks (MP3 playback is supported by second and third generation of HiMD Walkman only). Non-MP3 tracks are protected by Sony's DRM software stack OpenMG, which require a sophisticated calculation of keys and access control lists. Writing of non-MP3 tracks is therefore currently not yet supported. In addition to transfer capabilities, \fBhimdcli\fP provides some commands for debugging purposes. These include \fBstrings\fP to display all strings found in the track list file (TRKIDX##.HMA), \fBtracks\fP and \fBtracks verbose\fP to display (detailed technical) track information, \fBdiscid\fP to display the disc id (comparable to the filesystem ID of FAT formatted volumes) which is used by the OpenMG encryption, \fBmp3key\fP to display the MP3 encryption key for a given MP3 track on disc as well as \fBholes\fP to display the holes in a non-contiguous ATDATA##.HMA file (a container file where all tracks are stored on a HiMD filesystem). .SH COMMANDS himdcli currently accepts the following commands: .TP .B help Show command overview list. .B strings Dumps all strings found in the tracklist file. .TP .B tracks Lists all tracks on disc. .TP .B tracks verbose Lists details of all tracks on disc. .TP .B discid Reads the disc id of the inserted medium. .TP .B holes Lists all holes on disc. .TP .B mp3key Shows the MP3 encryption key for track #. .TP .B dumptrack Dumps track #. .TP .B dumpmp3 Dumps MP3 track #. .TP .B dumpnonmp3 Dumps non-MP3 track #. .TP .B writemp3 Writes the MP3 file to disc. .PP When invoked without any arguments, himdcli outputs a short message with usage information. .SH SEE ALSO .IR netmdcli (1), .IR qhimdtransfer (1) .br .SH AUTHOR The linux-minidisc project - . .PP This manual page was written by John Paul Adrian Glaubitz . linux-minidisc-0.9.13/docs/netmdcli.1000066400000000000000000000020071226247751500173630ustar00rootroot00000000000000\" Hey, EMACS: -*- nroff -*- .TH NETMDCLI 1 "November 23, 2012" .SH NAME netmdcli \- Command line interface for accessing NetMD Walkman .SH SYNOPSIS .B netmdcli [options] .SH DESCRIPTION \fBnetmdcli\fP is a command line interface for accessing NetMD Walkman. .SH OPTIONS netmdcli accepts the following options (GNU style): .TP .B \-t Increase log level to NETMD_LOG_ALL. .SH COMMANDS netmdcli accepts the following commands: .TP .B send Send track to a NetMD device. .TP .B recv Receive tracks from a NetMD device. .TP .B rename Rename tracks on a NetMD device. .TP .B move Move tracks on a NetMD device. .TP .B groupmove Move track groups on a NetMD device. .PP When invoked without any arguments, netmdcli outputs a short usage information. .SH SEE ALSO .IR himdcli (1), .IR qhimdtransfer (1) .br .SH AUTHOR The linux-minidisc project - . .PP This manual page was written by John Paul Adrian Glaubitz . linux-minidisc-0.9.13/docs/qhimdtransfer.1000066400000000000000000000037411226247751500204410ustar00rootroot00000000000000\" Hey, EMACS: -*- nroff -*- .TH QHIMDTRANSFER 1 "November 23, 2012" .SH NAME qhimdtransfer \- Transfer software for MiniDisc devices .SH SYNOPSIS .B qhimdtransfer .SH DESCRIPTION \fBqhimdtransfer\fP is a graphical user interface application for accessing HiMD Walkman. It uses the libhimd library to read and write audio tracks from a HiMD filesystem which can be mounted directly from a physical HiMD Walkman or a previously created image file of a HiMD. By choosing "Connect" in the file menu, the mount point of the HiMD filesystem is located and the track listing is consequently loaded into the application into the track list viewer on the left-hand side. To upload a track (transfer it to the PC), select the tracks to be transferred in the track list window. Then choose the destination directory in the file browser on the right-hand side and click the onto the upload button (white arrow on red background). To download tracks to the device, select the tracks to be downloaded in the file browser and click onto the download button (white arrow on green background). Currently libhimd and therefore \fBqhimdtransfer\fP implements full read access for PCM, ATRAC-3+ and MP3 tracks as well as experimental write support for MP3 tracks (MP3 playback is supported by second and third generation of HiMD Walkman only). Non-MP3 tracks are protected by Sony's DRM software stack OpenMG, which require a sophisticated calculation of keys and access control lists. Writing of non-MP3 tracks is therefore currently not yet supported. Please note that some of the functions in the graphical user interface like deleting or renaming tracks or formatting the medium are not yet implemented, but work is currently in progress to achieve that. .SH SEE ALSO .IR netmdcli (1), .IR himdcli (1) .br .SH AUTHOR The linux-minidisc project - . .PP This manual page was written by John Paul Adrian Glaubitz . linux-minidisc-0.9.13/get_version.sh000077500000000000000000000005051226247751500174360ustar00rootroot00000000000000#/bin/sh # get_version.sh - simple script to determine version number GIT_VERSION="$(git describe --always --long 2>/dev/null)" SRCDIR="$( cd "$( dirname "$0" )" && pwd )" if [ -n "$GIT_VERSION" ] ; then echo $GIT_VERSION elif [ -f "${SRCDIR}"/VERSION ] ; then cat "${SRCDIR}"/VERSION else echo "NO_VERSION" fi linux-minidisc-0.9.13/himdcli/000077500000000000000000000000001226247751500161645ustar00rootroot00000000000000linux-minidisc-0.9.13/himdcli/.gitignore000066400000000000000000000000761226247751500201570ustar00rootroot00000000000000Makefile Makefile.Release Makefile.Debug himdcli debug releaselinux-minidisc-0.9.13/himdcli/himdcli.c000066400000000000000000000563051226247751500177520ustar00rootroot00000000000000/* * himdcli.c - list contents (tracks, holes), dump tracks and show diskid of a HiMD */ #include #include #include #include #include #include #include #include #include "himd.h" #include "sony_oma.h" void usage(char * cmdname) { printf("Usage: %s , where is either of:\n\n\ strings - dumps all strings found in the tracklist file\n\ tracks - lists all tracks on disc\n\ tracks verbose - lists details of all tracks on disc\n\ discid - reads the disc id of the inserted medium\n\ holes - lists all holes on disc\n\ mp3key - show the MP3 encryption key for track \n\ dumptrack - dump track \n\ dumpmp3 - dump MP3 track \n\ dumpnonmp3 - dump non-MP3 track \n\ writemp3 - write mp3 to disc\n", cmdname); } static const char * hexdump(unsigned char * input, int len) { static char dumpspace[5][41]; static int dumpindex = 0; int i; if(len > 20) return "TOO LONG"; dumpindex %= 5; for(i = 0;i < len;++i) sprintf(dumpspace[dumpindex]+i*2,"%02x",input[i]); return dumpspace[dumpindex++]; } char * get_locale_str(struct himd * himd, int idx) { char * str, * outstr; if(idx == 0) return NULL; str = himd_get_string_utf8(himd, idx, NULL, NULL); if(!str) return NULL; outstr = g_locale_from_utf8(str,-1,NULL,NULL,NULL); himd_free(str); return outstr; } void himd_trackdump(struct himd * himd, int verbose) { int i; struct himderrinfo status; for(i = HIMD_FIRST_TRACK;i <= HIMD_LAST_TRACK;i++) { struct trackinfo t; if(himd_get_track_info(himd, i, &t, NULL) >= 0) { char *title, *artist, *album; title = get_locale_str(himd, t.title); artist = get_locale_str(himd, t.artist); album = get_locale_str(himd, t.album); printf("%4d: %d:%02d %s %s:%s (%s %d)%s\n", i, t.seconds/60, t.seconds % 60, himd_get_codec_name(&t), artist ? artist : "Unknown artist", title ? title : "Unknown title", album ? album : "Unknown album", t.trackinalbum, himd_track_uploadable(himd, &t) ? " [uploadable]":""); g_free(title); g_free(artist); g_free(album); if(verbose) { char rtime[30],stime[30],etime[30]; struct fraginfo f; int fnum = t.firstfrag; int blocks; if((blocks = himd_track_blocks(himd, &t, &status)) < 0) fprintf(stderr, "Can't get block count for Track %d: %s\n", i, status.statusmsg); else printf(" %5d Blocks of 16 KB each, %dkbps\n", blocks, sony_codecinfo_kbps(&t.codec_info)); while(fnum != 0) { if(himd_get_fragment_info(himd, fnum, &f, &status) >= 0) { printf(" %3d@%05d .. %3d@%05d (%s)\n", f.firstframe, f.firstblock, f.lastframe, f.lastblock, hexdump(f.key, 8)); fnum = f.nextfrag; } else { printf(" ERROR reading fragment %d info: %s\n", fnum, status.statusmsg); break; } } printf(" Content ID: %s\n", hexdump(t.contentid, 20)); printf(" Key: %s (EKB %08x); MAC: %s\n", hexdump(t.key, 8), t.ekbnum, hexdump(t.mac, 8)); if(t.recordingtime.tm_mon != -1) strftime(rtime,sizeof rtime, "%x %X", &t.recordingtime); else strcpy(rtime, "?"); if(t.licensestarttime.tm_mon != -1) strftime(stime,sizeof stime, "%x %X", &t.licensestarttime); else strcpy(stime, "any time"); if(t.licenseendtime.tm_mon != -1) strftime(etime,sizeof etime, "%x %X", &t.licenseendtime); else strcpy(etime, "any time"); printf(" Recorded: %s, licensed: %s-%s\n", rtime, stime, etime); } } } } void himd_stringdump(struct himd * himd) { int i; struct himderrinfo status; for(i = 1;i < 4096;i++) { char * str; int type; if((str = himd_get_string_utf8(himd, i, &type, &status)) != NULL) { char * typestr; char * outstr; switch(type) { case STRING_TYPE_TITLE: typestr="Title"; break; case STRING_TYPE_ARTIST: typestr="Artist"; break; case STRING_TYPE_ALBUM: typestr="Album"; break; case STRING_TYPE_GROUP: typestr="Group"; break; default: typestr=""; break; } outstr = g_locale_from_utf8(str,-1,NULL,NULL,NULL); printf("%4d: %-6s %s\n", i, typestr, outstr); g_free(outstr); himd_free(str); } else if(status.status != HIMD_ERROR_NOT_STRING_HEAD) printf("%04d: ERROR %s\n", i, status.statusmsg); } } void himd_dumpdiscid(struct himd * h) { int i; struct himderrinfo status; const unsigned char * discid = himd_get_discid(h, &status); if(!discid) { fprintf(stderr,"Error obtaining disc ID: %s", status.statusmsg); return; } printf("Disc ID: "); for(i = 0;i < 16;++i) printf("%02X",discid[i]); puts(""); } void himd_dumptrack(struct himd * himd, int trknum) { struct trackinfo t; struct himd_blockstream str; struct himderrinfo status; FILE * strdumpf; unsigned int firstframe, lastframe; unsigned char block[16384]; unsigned char fragkey[8]; int blocknum = 0; strdumpf = fopen("stream.dmp","wb"); if(!strdumpf) { perror("Opening stream.dmp"); return; } if(himd_get_track_info(himd, trknum, &t, &status) < 0) { fprintf(stderr, "Error obtaining track info: %s\n", status.statusmsg); return; } if(himd_blockstream_open(himd, t.firstfrag, himd_trackinfo_framesperblock(&t), &str, &status) < 0) { fprintf(stderr, "Error opening stream %d: %s\n", t.firstfrag, status.statusmsg); return; } while(himd_blockstream_read(&str, block, &firstframe, &lastframe, fragkey, &status) >= 0) { if(fwrite(block,16384,1,strdumpf) != 1) { perror("writing dumped stream"); goto clean; } printf("%d: %u..%u %s\n", blocknum++,firstframe,lastframe,hexdump(fragkey,8)); } if(status.status != HIMD_STATUS_AUDIO_EOF) fprintf(stderr,"Error reading MP3 data: %s\n", status.statusmsg); clean: fclose(strdumpf); himd_blockstream_close(&str); } void himd_dumpmp3(struct himd * himd, int trknum) { struct himd_mp3stream str; struct himderrinfo status; FILE * strdumpf; unsigned int len; const unsigned char * data; strdumpf = fopen("stream.mp3","wb"); if(!strdumpf) { perror("Opening stream.mp3"); return; } if(himd_mp3stream_open(himd, trknum, &str, &status) < 0) { fprintf(stderr, "Error opening track %d: %s\n", trknum, status.statusmsg); return; } while(himd_mp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) { if(fwrite(data,len,1,strdumpf) != 1) { perror("writing dumped stream"); goto clean; } } if(status.status != HIMD_STATUS_AUDIO_EOF) fprintf(stderr,"Error reading MP3 data: %s\n", status.statusmsg); clean: fclose(strdumpf); himd_mp3stream_close(&str); } int write_oma_header(FILE * f, const struct trackinfo * trkinfo) { char header[EA3_FORMAT_HEADER_SIZE]; make_ea3_format_header(header, &trkinfo->codec_info); if(fwrite(header, sizeof header, 1, f) != 1) { perror("Writing OMA header"); return -1; } return 0; } /* For LPCM: creates headerless PCM play with: play -t s2 -r 44100 -B -c2 stream.pcm For ATRAC3/ATRAC3+: creates a .oma file (with ea3 tag header) play with Sonic Stage (ffmpeg needs support of tagless files, ffmpeg does not support ATRAC3+) */ void himd_dumpnonmp3(struct himd * himd, int trknum) { struct himd_nonmp3stream str; struct himderrinfo status; struct trackinfo trkinfo; FILE * strdumpf; const char * filename = "stream.pcm"; unsigned int len; const unsigned char * data; if(himd_get_track_info(himd, trknum, &trkinfo, &status) < 0) { fprintf(stderr, "Error obtaining track info: %s\n", status.statusmsg); return; } if(!sony_codecinfo_is_lpcm(&trkinfo.codec_info)) filename = "stream.oma"; strdumpf = fopen(filename,"wb"); if(!strdumpf) { fprintf(stderr, "opening "); perror(filename); return; } if(himd_nonmp3stream_open(himd, trknum, &str, &status) < 0) { fprintf(stderr, "Error opening track %d: %s\n", trknum, status.statusmsg); fclose(strdumpf); return; } if(!sony_codecinfo_is_lpcm(&trkinfo.codec_info) && write_oma_header(strdumpf, &trkinfo) < 0) return; while(himd_nonmp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) { if(fwrite(data,len,1,strdumpf) != 1) { perror("writing dumped stream"); goto clean; } } if(status.status != HIMD_STATUS_AUDIO_EOF) fprintf(stderr,"Error reading PCM data: %s\n", status.statusmsg); clean: fclose(strdumpf); himd_nonmp3stream_close(&str); } void himd_dumpholes(struct himd * h) { int i; struct himd_holelist holes; struct himderrinfo status; if(himd_find_holes(h, &holes, &status) < 0) { fprintf(stderr, "Collecting holes: %s\n", status.statusmsg); return; } for(i = 0; i < holes.holecnt;i++) printf("%d: %05u-%05u\n", i, holes.holes[i].firstblock, holes.holes[i].lastblock); } #ifdef CONFIG_WITH_MAD void block_init(struct blockinfo * b, short int nframes, short int lendata, unsigned int serial_number, unsigned char * cid) { strncpy((char*)&b->type, "SMPA", 4); b->nframes = nframes; b->mcode = 3; b->lendata = lendata; b->reserved1 = 0; b->serial_number = serial_number; memset(&b->key, 0, 8); // print_hex((unsigned char*)&b->key, 8); memset(&b->iv, 0, 8); memset(&b->backup_key, 0, 8); b->backup_type = b->type; memset(&b->reserved2, 0, 8); b->backup_reserved = 0; b->backup_mcode = b->mcode; b->lo32_contentid = cid[16]*16777216+cid[17]*65536+cid[18]*256+cid[19]; b->backup_serial_number = b->serial_number; } void block_printinfo(struct blockinfo * b) { printf("block %d, nframes: %d, lendata: %d\n", b->serial_number, b->nframes, b->lendata); } struct abucket { gint totsize; gint nframes; unsigned char *pbuf_current, *pbuf_end; struct blockinfo block; }; void bucket_init(struct abucket * pbucket) { g_assert(pbucket != NULL); memset(&pbucket->block, 0, sizeof(struct blockinfo)); pbucket->totsize = 0; pbucket->nframes = 0; pbucket->pbuf_current = &pbucket->block.audio_data[0]; pbucket->pbuf_end = &pbucket->block.audio_data[HIMD_AUDIO_SIZE]; } int bucket_append(struct abucket * pbucket, guchar * pframe, guint framelen) { g_assert(pbucket != NULL); g_assert(pframe != NULL); gint nbytes_to_add = framelen; // Buffer full? or too big frame for buffer? if( (pbucket->totsize + nbytes_to_add) >= HIMD_AUDIO_SIZE) { if(pbucket->totsize == 0) { return 0; } return -1; } g_assert(pbucket->pbuf_current <= pbucket->pbuf_end); memcpy(pbucket->pbuf_current, pframe, nbytes_to_add); pbucket->pbuf_current += nbytes_to_add; pbucket->totsize += nbytes_to_add; pbucket->nframes += 1; return nbytes_to_add; } // // Input parameters: // // A opened mp3-stream, himd-write-stream, duration structure, (TODO) block-obfuscation-key // // Return values: // // Return the number of written blocks and frames // // Side-effects: // // Writes audio blocks at the end of the ATDATA container file. Audio blocks contains all frames (TODO: ID3 frames) // in a obfuscated form using a 4 byte key. // #define HIMD_MP3_VAR_VERSION 0x40 #define HIMD_MP3_VAR_LAYER 0x20 #define HIMD_MP3_VAR_BITRATE 0x10 #define HIMD_MP3_VAR_SRATE 0x08 #define HIMD_MP3_VAR_CHMODE 0x04 #define HIMD_MP3_VAR_PREEMPH 0x02 gint write_blocks(struct mad_stream *stream, struct himd_writestream *write_stream, mp3key key, mad_timer_t *duration, gint *nblocks, gint *nframes, unsigned char * cid, unsigned char *mp3codecinfo, struct himderrinfo * status) { guchar var_flags = 0x80; unsigned mpegvers = 3, mpeglayer = 1, mpegbitrate = 9, mpegsamprate = 0, mpegchmode = 0, mpegpreemph = 0; gboolean firsttime = TRUE; struct abucket bucket; struct mad_header header; mad_timer_t mad_timer; gint iblock=0, iframe=0; mad_timer_reset(&mad_timer); bucket_init(&bucket); while(1) { if(mad_header_decode(&header, stream) == -1) { if(MAD_RECOVERABLE(stream->error)) { continue; } else { break; } } guchar * pframe = (gpointer) stream->this_frame; gint framelen = (guint) (stream->next_frame - stream->this_frame); /* "b" means "this Block" */ unsigned bmpegvers, bmpeglayer, bmpegbitrate, bmpegsamprate, bmpegchmode, bmpegpreemph; bmpegvers = (pframe[1] >> 3) & 0x03; bmpeglayer = (pframe[1] >> 1) & 0x03; bmpegbitrate = (pframe[2] >> 4) & 0x0F; bmpegsamprate = (pframe[2] >> 2) & 0x03; bmpegchmode = (pframe[3] >> 6) & 0x03; bmpegpreemph = (pframe[3] >> 0) & 0x03; mad_timer_add(&mad_timer, header.duration); if(firsttime) { bmpegvers = mpegvers; bmpeglayer = mpeglayer; bmpegbitrate = mpegbitrate; bmpegsamprate = mpegsamprate; bmpegchmode = mpegchmode; bmpegpreemph = mpegpreemph; firsttime = FALSE; } else { if(bmpegvers != mpegvers) { var_flags |= HIMD_MP3_VAR_VERSION; mpegvers = MIN(mpegvers, bmpegvers); /* smaller num -> higher version */ } if(bmpeglayer != mpeglayer) { var_flags |= HIMD_MP3_VAR_LAYER; mpeglayer = MIN(mpeglayer, bmpeglayer); /* smaller num -> higher layer */ } if(bmpegbitrate != mpegbitrate) { /* TODO: check whether "free-form" streams need special handling */ var_flags |= HIMD_MP3_VAR_BITRATE; mpegbitrate = MAX(mpegbitrate, bmpegbitrate); } if(bmpegsamprate != mpegsamprate) { var_flags |= HIMD_MP3_VAR_SRATE; /* "1" is highest (48), "0" is medium (44), "2" is lowest (32) */ if(mpegsamprate != 1) { if(bmpegsamprate == 1) mpegsamprate = bmpegsamprate; else mpegsamprate = MIN(mpegsamprate, bmpegsamprate); } } if(bmpegchmode != mpegchmode) /* TODO: find out how to choose "maximal" mode */ var_flags |= HIMD_MP3_VAR_CHMODE; if(bmpegpreemph != mpegpreemph) /* TODO: find out how to choose "maximal" preemphasis */ var_flags |= HIMD_MP3_VAR_PREEMPH; } // Append frames to block gint nbytes_added = bucket_append(&bucket, pframe, framelen); if(nbytes_added < 0) { block_init(&bucket.block, bucket.nframes, bucket.totsize, iblock, cid); // Encrypt block unsigned i=0; for(i=0;i < (bucket.totsize & ~7U); i++) bucket.block.audio_data[i] ^= key[i & 3]; // Append block to ATDATA file if(himd_writestream_write(write_stream, &bucket.block, status) < 0) { fprintf(stderr, "Failed to write block: %d", iblock); perror("write block"); } // remember number of frames in current audio block iframe = bucket.nframes; bucket_init(&bucket); // Append the frame to a new block, that not would fit in the previous full block nbytes_added = bucket_append(&bucket, pframe, framelen); if(nbytes_added < 0) { exit(1); } iblock += 1; continue; } else if(nbytes_added == 0) { bucket_init(&bucket); continue; } } if( (nblocks != NULL) && (nframes != NULL) && (duration != NULL)) { *nblocks = iblock; *nframes = iframe; duration->seconds = mad_timer.seconds; } mp3codecinfo[0] = var_flags; mp3codecinfo[1] = (mpegvers << 6) | (mpeglayer << 4) | (mpegbitrate); mp3codecinfo[2] = (mpegsamprate << 6) | (mpegchmode << 4) | (mpegpreemph << 2); // close write-stream to atdata file return iblock; } void himd_writemp3(struct himd *h, const char *filepath) { struct himderrinfo status; gint nblocks=0, nframes=0; struct mad_stream stream; mad_timer_t duration; GMappedFile * mp3file; unsigned long mp3size; gchar * mp3buffer; gchar * artist=NULL, * title=NULL, * album=NULL; int i; unsigned char cid[20] = {0x02, 0x03, 0x00, 0x00}; unsigned char mp3codecinfo[3]; // Generate random content ID for(i = 4; i <=19; i++) cid[i] = g_random_int_range(0,0xFF); // Get track ID3 information if(himd_get_songinfo(filepath, &artist, &title, &album, &status) < 0) printf("no tags\n"); // Load mp3 stream mp3file = g_mapped_file_new(filepath, FALSE, NULL); mp3size = g_mapped_file_get_length(mp3file); mp3buffer = g_mapped_file_get_contents(mp3file); mad_stream_init(&stream); mad_stream_buffer(&stream, (unsigned char*)mp3buffer, mp3size); // // Get track-key using track-index // gint idx_track; mp3key key; idx_track = himd_get_free_trackindex(h); if(himd_obtain_mp3key(h, idx_track, &key, &status) < 0) { printf("Cannot obtain mp3key\n"); exit(1); } // END: Get track-key // // Write blocks to ATDATA // struct himd_writestream write_stream; unsigned int first_blockno=0; unsigned int last_blockno=0; if(himd_writestream_open(h, &write_stream, &first_blockno, &last_blockno, &status) < 0) { fprintf(stderr, "Error opening write stream\n"); exit(1); } write_blocks(&stream, &write_stream, key, &duration, &nblocks, &nframes, cid, mp3codecinfo, &status); himd_writestream_close(&write_stream); // END: Write blocks to ATDATA // // Calculate blocknumber of the last written block // last_blockno = first_blockno + nblocks-1; // // Add fragment descriptor, get back fragment number // struct fraginfo fragment; gint idx_frag; fragment.firstblock = first_blockno; fragment.lastblock = last_blockno; memset(&fragment.key[0], 0, 8); /* use zero key on mp3 files */ fragment.firstframe = 0; fragment.lastframe = nframes; fragment.fragtype = 1; fragment.nextfrag = 0; idx_frag = himd_add_fragment_info(h, &fragment, &status); // END: Add fragment // Add strings for title, album and artist. Retrieve string index numbers. gint idx_title=0, idx_album=0, idx_artist=0; if(title != NULL) { idx_title = himd_add_string(h, title, STRING_TYPE_TITLE, &status); if(idx_title < 0) { printf("Failed to add title string\n"); idx_title = 0; } } if(album != NULL) { idx_album = himd_add_string(h, album, STRING_TYPE_ALBUM, &status); if(idx_album < 0) { printf("Failed to add album string\n"); idx_album = 0; } } if(artist != NULL) { idx_artist = himd_add_string(h, artist, STRING_TYPE_ARTIST, &status); if(idx_artist < 0) { printf("Failed to add artist string\n"); idx_artist = 0; } } // END: Add strings // // Add track descriptor, get trackno back. // struct trackinfo track; memset(&track.key, 0, 8); /* use zero key on mp3 files */ track.title = idx_title; track.artist = idx_artist; track.album = idx_album; track.firstfrag = idx_frag; track.tracknum = 1; track.ekbnum = 0; track.trackinalbum = 1; track.codec_info.codec_id = CODEC_ATRAC3PLUS_OR_MPEG; track.seconds = duration.seconds; track.codec_info.codecinfo[0] = 3; track.codec_info.codecinfo[1] = 0; track.codec_info.codecinfo[2] = mp3codecinfo[0]; track.codec_info.codecinfo[3] = mp3codecinfo[1]; track.codec_info.codecinfo[4] = mp3codecinfo[2]; memset(&track.mac, 0, 8); memcpy(&track.contentid, cid, 20); memset(&track.recordingtime, 0, sizeof(struct tm)); memset(&track.licensestarttime, 0, sizeof(struct tm)); memset(&track.licenseendtime, 0, sizeof(struct tm)); /* set DRM stuff correctly for compatibility reasons */ track.lt = 0x10; track.dest = 1; track.xcc = 1; track.ct = 0; track.cc = 0x40; track.cn = 0; idx_track = himd_add_track_info(h, &track, &status); // END: Add track descriptor // // Update TRACK-INDEX file with track strings, fragment descriptor and track-descriptor. // himd_write_tifdata(h, &status); free(artist); free(album); free(title); } #endif int main(int argc, char ** argv) { int idx; struct himd h; struct himderrinfo status; setlocale(LC_ALL,""); if (argc == 2 && (strcmp (argv[1], "help") == 0)) { usage(argv[0]); return 0; } if (argc < 2) { printf("Please specify HiMD path and command to be sent. Use \"%s help\" to display a help.\n", argv[0]); return 0; } if(himd_open(&h,argv[1], &status) < 0) { puts(status.statusmsg); return 1; } if(argc == 2 || strcmp(argv[2],"tracks") == 0) himd_trackdump(&h, argc > 3); else if(strcmp(argv[2],"strings") == 0) himd_stringdump(&h); else if(strcmp(argv[2],"discid") == 0) himd_dumpdiscid(&h); else if(strcmp(argv[2],"holes") == 0) himd_dumpholes(&h); else if(strcmp(argv[2],"mp3key") == 0 && argc > 3) { mp3key k; idx = 1; sscanf(argv[3], "%d", &idx); himd_obtain_mp3key(&h, idx, &k, NULL); printf("Track key: %02x%02x%02x%02x\n", k[0], k[1], k[2], k[3]); } else if(strcmp(argv[2],"dumptrack") == 0 && argc > 3) { idx = 1; sscanf(argv[3], "%d", &idx); himd_dumptrack(&h, idx); } else if(strcmp(argv[2],"dumpmp3") == 0 && argc > 3) { idx = 1; sscanf(argv[3], "%d", &idx); himd_dumpmp3(&h, idx); } else if(strcmp(argv[2],"dumpnonmp3") == 0 && argc > 3) { idx = 1; sscanf(argv[3], "%d", &idx); himd_dumpnonmp3(&h, idx); } else if(strcmp(argv[2],"writemp3") == 0 && argc > 3) { #ifdef CONFIG_WITH_MAD himd_writemp3(&h, argv[3]); #else fputs("Compiled without libmad - no MP3 download support\n", stderr); #endif } himd_close(&h); return 0; } linux-minidisc-0.9.13/himdcli/himdcli.pro000066400000000000000000000004631226247751500203220ustar00rootroot00000000000000TEMPLATE=app CONFIG -= qt CONFIG += console link_pkgconfig link_prl PKGCONFIG += glib-2.0 id3tag INCLUDEPATH += ../libhimd SOURCES += himdcli.c include(../libhimd/use_libhimd.pri) unix:!macx { target.path = /usr/bin INSTALLS += target } !without_mad: { LIBS += -lmad DEFINES += CONFIG_WITH_MAD } linux-minidisc-0.9.13/libhimd/000077500000000000000000000000001226247751500161635ustar00rootroot00000000000000linux-minidisc-0.9.13/libhimd/.gitignore000066400000000000000000000000741226247751500201540ustar00rootroot00000000000000*.prl *.a Makefile Makefile.Release Makefile.Debug himdtest linux-minidisc-0.9.13/libhimd/codecinfo.c000066400000000000000000000111071226247751500202600ustar00rootroot00000000000000#include "codecinfo.h" #include #include #define MPEG_I_SAMPLES_PER_FRAME 384 #define MPEG_II_III_SAMPLES_PER_FRAME (3*MPEG_I_SAMPLES_PER_FRAME) /* for MPEG, frame size may slightly vary (+4 for layer I, +1 for layer II/III) */ unsigned int sony_codecinfo_bytesperframe(const struct sony_codecinfo *ci) { g_return_val_if_fail(ci != NULL, 0); if(sony_codecinfo_is_lpcm(ci)) return SONY_VIRTUAL_LPCM_FRAMESIZE; if(sony_codecinfo_is_at3(ci)) return ci->codecinfo[2] * 8; if(sony_codecinfo_is_at3p(ci)) return ((((ci->codecinfo[1] << 8) | ci->codecinfo[2]) & 0x3ff) + 1) * 8; if(sony_codecinfo_is_mpeg(ci)) { unsigned int mask = ~0; if((ci->codecinfo[3] & 0xC0) == 0xC0) mask = ~3; /* MPEG Layer I is specified to work DWORDs, not on bytes */ return (sony_codecinfo_samplesperframe(ci) * /* samples / frame */ (sony_codecinfo_kbps(ci)*125) / /* bytes / second */ sony_codecinfo_samplerate(ci)) /* samples / second */ & mask; /* samples and seconds cancel, bytes / frame remains. Truncation is indeed as required. */ } return 0; } unsigned int sony_codecinfo_samplesperframe(const struct sony_codecinfo *ci) { g_return_val_if_fail(ci != NULL, 0); if(sony_codecinfo_is_lpcm(ci)) return SONY_VIRTUAL_LPCM_FRAMESIZE / 4; if(sony_codecinfo_is_at3(ci)) return SONY_ATRAC3_SAMPLES_PER_FRAME; if(sony_codecinfo_is_at3p(ci)) return SONY_ATRAC3P_SAMPLES_PER_FRAME; if(sony_codecinfo_is_mpeg(ci)) { if((ci->codecinfo[3] & 0x30) == 0x30) /* MPEG Layer I */ return MPEG_I_SAMPLES_PER_FRAME; else /* MPEG Layer II & III (MP3) */ return MPEG_II_III_SAMPLES_PER_FRAME; } return 0; } static const long int atracrates[8] = {32000,44100,48000,88200,96000}; static const long int mpegrates[4] = {44100,48000,32000}; unsigned long sony_codecinfo_samplerate(const struct sony_codecinfo *ci) { g_return_val_if_fail(ci != NULL, 0); if(sony_codecinfo_is_lpcm(ci)) return 44100; if(sony_codecinfo_is_at3(ci) || sony_codecinfo_is_at3p(ci)) return atracrates[ci->codecinfo[1] >> 5]; if(sony_codecinfo_is_mpeg(ci)) return mpegrates[ci->codecinfo[4] >> 6] / (4 - (ci->codecinfo[3] >> 6)); return 0; } unsigned int sony_codecinfo_kbps(const struct sony_codecinfo *ci) { g_return_val_if_fail(ci != NULL, 0); if(!sony_codecinfo_is_mpeg(ci)) /* ATRAC & LPCM: calculate kbps from frame size */ return (unsigned long)sony_codecinfo_bytesperframe(ci) * sony_codecinfo_samplerate(ci) / (125*sony_codecinfo_samplesperframe(ci)); /* 125 = bytes per kbit */ else { /* MPEG: kbps is well-defined, bytes/frame is calculated from it */ static const short v1l1[16] = {0,32,64,96,128,160,192,224,256,288,320,352,384,416,448,0}; static const short v1l2[16] = {0,32,48,56,64,80,96,112,128,160,192,224,256,320,384,0}; static const short v1l3[16] = {0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,0}; static const short v2l1[16] = {0,32,48,56,64,80,96,112,128,144,160,176,192,224,256,0}; static const short v2l23[16] = {0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,0}; static const short* vl[2][3] = {{v1l1,v1l2,v1l3},{v2l1,v2l23,v2l23}}; if((ci->codecinfo[3] & 0xC0) == 0x40 || (ci->codecinfo[3] & 0x30) == 0) return 0; /* invalid header info */ return vl[1-((ci->codecinfo[3] & 0x40) >> 6)] [3-((ci->codecinfo[3] & 0x30) >> 4)] [ci->codecinfo[3] & 0xF]; } } unsigned int sony_codecinfo_seconds(const struct sony_codecinfo *ci, unsigned int frames) { g_return_val_if_fail(ci != NULL, 0); return ((guint64)frames * sony_codecinfo_samplesperframe(ci)) / sony_codecinfo_samplerate(ci); } const char * sony_codecinfo_codecname(const struct sony_codecinfo *ci) { static char buffer[5]; g_return_val_if_fail(ci != NULL, "(nullptr)"); if(sony_codecinfo_is_lpcm(ci)) return "LPCM"; if(sony_codecinfo_is_at3(ci)) return "AT3 "; if(sony_codecinfo_is_at3p(ci)) return "AT3+"; if(sony_codecinfo_is_mpeg(ci)) return "MPEG"; /* codec_id is supposed to be an unsigned char. Adding the mask anyway to prevent a buffer overflow if someone cooses to enlarge it or compile on a machine with CHAR_BITS > 13 */ sprintf(buffer,"%4d",ci->codec_id & 0xFF); return buffer; } linux-minidisc-0.9.13/libhimd/codecinfo.h000066400000000000000000000025071226247751500202710ustar00rootroot00000000000000#ifndef ATRAC_H #define ATRAC_H #include #ifdef __cplusplus extern "C" { #endif #define CODEC_ATRAC3 0x00 #define CODEC_ATRAC3PLUS_OR_MPEG 0x01 #define CODEC_LPCM 0x80 #define SONY_VIRTUAL_LPCM_FRAMESIZE 64 #define SONY_ATRAC3_SAMPLES_PER_FRAME 1024 #define SONY_ATRAC3P_SAMPLES_PER_FRAME 2048 #define TRACK_IS_MPEG 0 struct sony_codecinfo { unsigned char codec_id; unsigned char codecinfo[5]; }; unsigned int sony_codecinfo_bytesperframe(const struct sony_codecinfo *ci); unsigned int sony_codecinfo_samplesperframe(const struct sony_codecinfo *ci); unsigned long sony_codecinfo_samplerate(const struct sony_codecinfo *ci); unsigned int sony_codecinfo_kbps(const struct sony_codecinfo *ci); unsigned int sony_codecinfo_seconds(const struct sony_codecinfo *ci, unsigned int frames); const char * sony_codecinfo_codecname(const struct sony_codecinfo *ci); #define sony_codecinfo_is_lpcm(ci) ((ci)->codec_id == CODEC_LPCM) #define sony_codecinfo_is_at3(ci) ((ci)->codec_id == CODEC_ATRAC3) #define sony_codecinfo_is_mpeg(ci) ((ci)->codec_id == CODEC_ATRAC3PLUS_OR_MPEG && \ ((ci)->codecinfo[0] & 3) == 3) #define sony_codecinfo_is_at3p(ci) ((ci)->codec_id == CODEC_ATRAC3PLUS_OR_MPEG && \ ((ci)->codecinfo[0] & 3) != 3) #ifdef __cplusplus } #endif #endif linux-minidisc-0.9.13/libhimd/encryption.c000066400000000000000000000161571226247751500205330ustar00rootroot00000000000000/* * encryption.c * * This file is part of libhimd, a library for accessing Sony HiMD devices. * * Copyright (C) 2009-2011 Michael Karcher * Copyright (C) 2011 MÃĨrten Cassel * Copyright (C) 2011 Thomas Arp * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include "himd.h" #include #define _(x) (x) /** * Calculate the key for a given MP3 track and discid of HiMD data. * The key is required to encrypt or decrypt MP3 data and is calculated * with a fairly simple algorithm which XORs parts of the discid with * two constant hashes and the track number. * * @param himd Pointer to a descriptor of previously opened HiMD data * @param track Number of track to calculate MP3 key for * @param key Pointer to struct containing the key after successful operation * @param status Pointer to himderrinfo, returns error code after operation * * @return Returns 0 if successful, otherwise zero. */ int himd_obtain_mp3key(struct himd * himd, int track, mp3key * key, struct himderrinfo * status) { const unsigned char * d = himd_get_discid(himd, status); unsigned int foo; if(!d) return -1; foo = ((track*0x6953B2ED)+0x6BAAB1) ^ ((d[12] << 24) | (d[13] << 16) | (d[14] << 8) | d[15]) ; (*key)[0] = foo >> 24; (*key)[1] = foo >> 16; (*key)[2] = foo >> 8; (*key)[3] = foo; return 0; } #ifdef CONFIG_WITH_GCRYPT #include "himd_private.h" #include #include struct cached_cipher { unsigned char key[8]; gcry_cipher_hd_t cipher; int valid; }; struct descrypt_data { struct cached_cipher master; struct cached_cipher block; unsigned char masterkey[8]; }; static gcry_error_t cached_cipher_init(struct cached_cipher * cipher, enum gcry_cipher_modes mode) { gcry_error_t err; err = gcry_cipher_open(&cipher->cipher, GCRY_CIPHER_DES, mode, 0); if (err != 0) return err; cipher->valid = 0; return 0; } /* iv should be NULL for ECB mode */ static gcry_error_t cached_cipher_prepare(struct cached_cipher * cipher, unsigned char * key, unsigned char * iv) { gcry_error_t err; /* not yet initialized or new key */ if(!cipher->valid || memcmp(cipher->key, key, 8)) { err = gcry_cipher_setkey(cipher->cipher, key, 8); if(err != 0) return err; memcpy(cipher->key, key, 8); cipher->valid = 1; } if(iv) { err = gcry_cipher_setiv(cipher->cipher, iv, 8); if(err != 0) return err; } return 0; } static void cached_cipher_deinit(struct cached_cipher * cipher) { gcry_cipher_close(cipher->cipher); } static void xor_keys(unsigned char * out, const unsigned char * in1, const unsigned char * in2) { int i; for(i = 0; i < 8; i++) out[i] = in1[i] ^ in2[i]; } int descrypt_open(void ** dataptr, const unsigned char * trackkey, unsigned int ekbnum, struct himderrinfo * status) { /* gcrypt only supports three-key 3DES, so set key1 == key3 */ static const unsigned char ekb00010012root[] = {0xf5,0x1e,0xcb,0x2a,0x80,0x8f,0x15,0xfd, 0x54,0x2e,0xf5,0x12,0x3b,0xcd,0xbc,0xa4, 0xf5,0x1e,0xcb,0x2a,0x80,0x8f,0x15,0xfd}; gcry_cipher_hd_t rootcipher; struct descrypt_data * data; int err; if(ekbnum != 0x00010012) { set_status_const(status, HIMD_ERROR_UNSUPPORTED_ENCRYPTION, _("EKB %08x unsupported")); return -1; } data = malloc(sizeof *data); if(!data) { set_status_const(status, HIMD_ERROR_OUT_OF_MEMORY, _("Can't allocate crypt helper structure")); return -1; } if(gcry_cipher_open(&rootcipher, GCRY_CIPHER_3DES, GCRY_CIPHER_MODE_ECB, 0) != 0) { set_status_const(status, HIMD_ERROR_ENCRYPTION_FAILURE, _("Can't aquire 3DES ECB encryption")); return -1; } if((err = gcry_cipher_setkey(rootcipher, ekb00010012root, 24)) != 0) { set_status_printf(status, HIMD_ERROR_ENCRYPTION_FAILURE, _("Can't init 3DES: %s"), gcry_strerror(err)); gcry_cipher_close(rootcipher); return -1; } if((err = gcry_cipher_decrypt(rootcipher, data->masterkey, 8, trackkey, 8)) != 0) { set_status_printf(status, HIMD_ERROR_ENCRYPTION_FAILURE, _("Can't calc key encryption key: %s"), gcry_strerror(err)); gcry_cipher_close(rootcipher); return -1; } gcry_cipher_close(rootcipher); if(cached_cipher_init(&data->master, GCRY_CIPHER_MODE_ECB) != 0) { set_status_const(status, HIMD_ERROR_ENCRYPTION_FAILURE, _("Can't aquire DES ECB encryption")); return -1; } if(cached_cipher_init(&data->block, GCRY_CIPHER_MODE_CBC) != 0) { set_status_const(status, HIMD_ERROR_ENCRYPTION_FAILURE, _("Can't aquire DES CBC encryption")); cached_cipher_deinit(&data->master); return -1; } *dataptr = data; return 0; } int descrypt_decrypt(void * dataptr, unsigned char * block, size_t cryptlen, const unsigned char * fragkey, struct himderrinfo * status) { unsigned char finalfragkey[8]; unsigned char mainkey[8]; struct descrypt_data * data = dataptr; gcry_error_t err; xor_keys(finalfragkey, data->masterkey, fragkey); if((err = cached_cipher_prepare(&data->master, finalfragkey, NULL)) != 0) { set_status_printf(status, HIMD_ERROR_ENCRYPTION_FAILURE, _("Can't setup track key: %s"), gcry_strerror(err)); return -1; } if((err = gcry_cipher_encrypt(data->master.cipher, mainkey, 8, block+16, 8)) != 0) { set_status_printf(status, HIMD_ERROR_ENCRYPTION_FAILURE, _("Can't calc block key: %s"), gcry_strerror(err)); return -1; } if((err = cached_cipher_prepare(&data->block, mainkey, block + 24)) != 0) { set_status_printf(status, HIMD_ERROR_ENCRYPTION_FAILURE, _("Can't setup block key: %s"), gcry_strerror(err)); return -1; } if((err = gcry_cipher_decrypt(data->block.cipher, block+32, cryptlen, block+32, cryptlen)) != 0) { set_status_printf(status, HIMD_ERROR_ENCRYPTION_FAILURE, _("Can't decrypt: %s"), gcry_strerror(err)); return -1; } return 0; } void descrypt_close(void * dataptr) { struct descrypt_data * data = dataptr; cached_cipher_deinit(&data->block); cached_cipher_deinit(&data->master); free(dataptr); } #endif linux-minidisc-0.9.13/libhimd/frag.c000066400000000000000000000106351226247751500172530ustar00rootroot00000000000000/* * frag.c * * This file is part of libhimd, a library for accessing Sony HiMD devices. * * Copyright (C) 2009-2011 Michael Karcher * Copyright (C) 2011 MÃĨrten Cassel * Copyright (C) 2011 Thomas Arp * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include "himd.h" #include #define MIN_HOLE 4 #define NO_SUCH_HOLE 0xffff static int search_hole(struct himd_holelist * holes, int block) { int startidx = 0; int endidx = holes->holecnt-1; while(startidx != endidx) { int mididx = (startidx + endidx)/2; if(holes->holes[mididx].lastblock < block) startidx = mididx+1; else endidx = mididx; } /* block is not in a hole */ if(holes->holes[startidx].firstblock > block) return NO_SUCH_HOLE; return startidx; } /** * Find all holes in current HiMD data and return them in himd_holelist. * This call is required prior to any write operation to HiMD data to * be able to collect necessary space to store the fragments of a track to be * written. * * @param himd Pointer to a descriptor of previously opened HiMD data * @param holes Pointer to a list of holes, is filled out by himd_find_holes * @param status Pointer to himderrinfo, returns error code after operation * * @return Returns 0 if successful, -1 otherwise */ int himd_find_holes(struct himd * himd, struct himd_holelist * holes, struct himderrinfo * status) { int i; holes->holecnt = 1; holes->holes[0].firstblock = 0; holes->holes[0].lastblock = 0xFFFF; for(i = HIMD_FIRST_FRAGMENT;i < HIMD_LAST_FRAGMENT;i++) { struct fraginfo frag; int splitidx; if(himd_get_fragment_info(himd, i, &frag, status) < 0) return -1; if(frag.firstblock == 0 && frag.lastblock == 0) continue; /* unused fragment */ splitidx = search_hole(holes, frag.firstblock); /* If splitidx == NO_SUCH_HOLE, the fragment probably is so small that the hole had been erased due to minhole */ if(splitidx == NO_SUCH_HOLE) continue; /* a fragment splits a hole into two holes (the one before and the one after the fragment). Either of these two holes might be too small to be considered, in which case these holes are discarded, or, spoken another way, the used areas are collapsed into one used area. */ if(frag.firstblock - holes->holes[splitidx].firstblock < MIN_HOLE) { /* collapse at the beginning */ holes->holes[splitidx].firstblock = frag.lastblock + 1; if(holes->holes[splitidx].lastblock < holes->holes[splitidx].firstblock || holes->holes[splitidx].lastblock - holes->holes[splitidx].firstblock < MIN_HOLE) { /* this hole has been "completely" filled by the fragment */ memmove(holes->holes + splitidx, holes->holes + splitidx + 1, (holes->holecnt - splitidx - 1) * sizeof(holes->holes[0])); holes->holecnt--; } } else { /* doesn't collapse at the beginning */ if(holes->holes[splitidx+1].firstblock - frag.lastblock < MIN_HOLE) /* but collapses at the end */ holes->holes[splitidx].lastblock = frag.firstblock - 1; else { memmove(holes->holes + splitidx + 1, holes->holes + splitidx, (holes->holecnt - splitidx) * sizeof(holes->holes[0])); holes->holecnt++; holes->holes[splitidx].lastblock = frag.firstblock - 1; holes->holes[splitidx+1].firstblock = frag.lastblock + 1; } } } return 0; } linux-minidisc-0.9.13/libhimd/himd.c000066400000000000000000000226701226247751500172570ustar00rootroot00000000000000/* * himd.c * * This file is part of libhimd, a library for accessing Sony HiMD devices. * * Copyright (C) 2009-2011 Michael Karcher * Copyright (C) 2011 MÃĨrten Cassel * Copyright (C) 2011 Thomas Arp * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include #include #include #include #include #define G_LOG_DOMAIN "HiMD" #include #include "himd.h" #define _(x) (x) void set_status_const(struct himderrinfo * status, enum himdstatus code, const char * msg) { if(status) { status->status = code; g_strlcpy(status->statusmsg, msg, sizeof status->statusmsg); } } void set_status_printf(struct himderrinfo * status, enum himdstatus code, const char * format, ...) { if(status) { va_list args; va_start(args, format); status->status = code; g_vsnprintf(status->statusmsg, sizeof status->statusmsg, format, args); va_end(args); } } static int scanforatdata(GDir * dir) { const char * hmafile; /* I don't use g_pattern_* stuff, because they can't be case insensitive */ int maxdatanum = -1; int curdatanum; while((hmafile = g_dir_read_name(dir)) != NULL) { /* atdataNN.hma - should be only one of them */ if(g_ascii_strncasecmp(hmafile,"atdata0",7) == 0 && strlen(hmafile) == 12 && isxdigit(hmafile[7]) && g_ascii_strncasecmp(hmafile+8,".hma",4) == 0 && sscanf(hmafile+6,"%x",&curdatanum) == 1 && curdatanum > maxdatanum) { if(maxdatanum != -1) g_warning("Found two atdata files: %02X and %02X\n",curdatanum,maxdatanum); maxdatanum = curdatanum; } } return maxdatanum; } // scan for TRKIDX files static int scanfortif(GDir * dir, int* oldnum, int *newnum) { const char * hmafile; int found_unused=FALSE, found_used=FALSE; int old_datanum, new_datanum; while((hmafile = g_dir_read_name(dir)) != NULL) { // Look for old version if(!found_unused) { if(g_ascii_strncasecmp(hmafile,"_rkidx0",7) == 0 && strlen(hmafile) == 12 && isxdigit(hmafile[7]) && g_ascii_strncasecmp(hmafile+8,".hma",4) == 0) { sscanf(hmafile+7,"%x",&old_datanum); *oldnum = old_datanum; found_unused = TRUE; } } // Look for current version if(!found_used) { if(g_ascii_strncasecmp(hmafile,"trkidx0",7) == 0 && strlen(hmafile) == 12 && isxdigit(hmafile[7]) && g_ascii_strncasecmp(hmafile+8,".hma",4) == 0) { sscanf(hmafile+7,"%x",&new_datanum); *newnum = new_datanum; found_used = TRUE; } } } return (FALSE || found_unused || found_used); } static void nong_inplace_ascii_down(gchar * string) { while(*string) { *string = g_ascii_tolower(*string); string++; } } static void nong_inplace_ascii_up(gchar * string) { while(*string) { *string = g_ascii_toupper(*string); string++; } } FILE * himd_open_file(struct himd * himd, const char * fileid, enum himd_rw_mode mode) { char filename[13]; FILE * file; char * filepath; sprintf(filename,"%s%02X.HMA",fileid,himd->datanum); if(himd->need_lowercase) nong_inplace_ascii_down(filename); else nong_inplace_ascii_up(filename); filepath = g_build_filename(himd->rootpath,himd->need_lowercase ? "hmdhifi" : "HMDHIFI",filename,NULL); file = fopen(filepath,mode == HIMD_READ_WRITE ? "rb+" : "rb"); g_free(filepath); return file; } int himd_write_tifdata(struct himd * himd, struct himderrinfo * status) { char indexfilename[13]; gchar *unusedfile,*usedfile,*tempfile; gchar *filepath; GDir * dir; GError * error = NULL; status = status; filepath = g_build_filename(himd->rootpath,himd->need_lowercase ? "hmdhifi" : "HMDHIFI", NULL); dir = g_dir_open(filepath,0,&error); int oldnum=0, newnum=0; if(scanfortif(dir, &oldnum, &newnum)) { sprintf(indexfilename, himd->need_lowercase ? "_rkidx%02x.hma" : "_RKIDX%02X.HMA", oldnum); unusedfile = g_build_filename(himd->rootpath,himd->need_lowercase ? "hmdhifi" : "HMDHIFI", indexfilename,NULL); sprintf(indexfilename, himd->need_lowercase ? "trkidx%02x.hma" : "TRKIDX%02X.HMA", newnum); usedfile = g_build_filename(himd->rootpath,himd->need_lowercase ? "hmdhifi" : "HMDHIFI", indexfilename,NULL); } else { printf("didnt found any .TIF files\n"); exit(1); } // Setup filepaths to TRKIDX.TMP, TRKIDX01.HMA tempfile = g_build_filename(himd->rootpath,himd->need_lowercase ? "hmdhifi" : "HMDHIFI", "TRKIDX.TMP",NULL); if(!g_file_set_contents(unusedfile, (const char*)himd->tifdata, HIMD_TIFFILE_SIZE, &error)) { printf("Could not update unused TIFDATA file %s.\n", unusedfile); exit(1); } // unused -> tmp // used -> unused // tempfile -> used if(g_rename(unusedfile, tempfile) < 0) { printf("Could not rename blank unused %s to %s\n", unusedfile, tempfile); exit(1); } if(g_rename(usedfile, unusedfile) < 0) { printf("Could not rename %s to %s\n", usedfile, tempfile); exit(1); } if(g_rename(tempfile, usedfile) < 0) { printf("Could not rename %s to %s\n", tempfile, usedfile); } g_free(filepath); g_dir_close(dir); return 0; } static int himd_read_discid(struct himd * himd, struct himderrinfo * status) { FILE * mclistfile = himd_open_file(himd, "MCLIST", HIMD_READ_ONLY); if(!mclistfile) { set_status_printf(status, HIMD_ERROR_CANT_OPEN_MCLIST, _("Can't open mclist file: %s\n"), g_strerror(errno)); return -1; } fseek(mclistfile,0x40L,SEEK_SET); if(fread(himd->discid,16,1,mclistfile) != 1) { set_status_printf(status, HIMD_ERROR_CANT_READ_MCLIST, _("Can't read mclist file: %s\n"), g_strerror(errno)); fclose(mclistfile); return -1; } fclose(mclistfile); himd->discid_valid = 1; return 0; } int himd_open(struct himd * himd, const char * himdroot, struct himderrinfo * status) { char * filepath; char indexfilename[13]; gsize filelen; GDir * dir; GError * error = NULL; g_return_val_if_fail(himd != NULL, -1); g_return_val_if_fail(himdroot != NULL, -1); himd->need_lowercase = 0; filepath = g_build_filename(himdroot,"HMDHIFI",NULL); dir = g_dir_open(filepath,0,&error); if(g_error_matches(error,G_FILE_ERROR,G_FILE_ERROR_NOENT)) { g_error_free(error); error = NULL; filepath = g_build_filename(himdroot,"hmdhifi",NULL); dir = g_dir_open(filepath,0,&error); himd->need_lowercase = 1; } g_free(filepath); if(dir == NULL) { set_status_const(status, HIMD_ERROR_CANT_ACCESS_HMDHIFI, error->message); return -1; } himd->datanum = scanforatdata(dir); g_dir_close(dir); if(himd->datanum == -1) { set_status_const(status, HIMD_ERROR_NO_TRACK_INDEX, _("No track index file found")); return -1; /* ERROR: track index not found */ } sprintf(indexfilename, himd->need_lowercase ? "trkidx%02x.hma" : "TRKIDX%02X.HMA", himd->datanum); filepath = g_build_filename(himdroot,himd->need_lowercase ? "hmdhifi" : "HMDHIFI",indexfilename,NULL); if(!g_file_get_contents(filepath, (char**)&himd->tifdata, &filelen, &error)) { set_status_printf(status, HIMD_ERROR_CANT_READ_TIF, _("Can't load TIF data from %s: %s"), filepath, error->message); g_free(filepath); return -1; } g_free(filepath); if(filelen != 0x50000) { set_status_printf(status, HIMD_ERROR_WRONG_TIF_SIZE, _("TIF file is 0x%x bytes instead of 0x50000"), (int)filelen); g_free(himd->tifdata); return -1; } if(memcmp(himd->tifdata,"TIF ",4) != 0) { set_status_printf(status, HIMD_ERROR_WRONG_TIF_MAGIC, _("TIF file starts with wrong magic: %02x %02x %02x %02x"), himd->tifdata[0],himd->tifdata[1],himd->tifdata[2],himd->tifdata[3]); g_free(himd->tifdata); return -1; } himd->rootpath = g_strdup(himdroot); himd->discid_valid = 0; return 0; } const unsigned char * himd_get_discid(struct himd * himd, struct himderrinfo * status) { if(!himd->discid_valid && himd_read_discid(himd, status) < 0) return 0; return himd->discid; } void himd_close(struct himd * himd) { g_free(himd->tifdata); g_free(himd->rootpath); } void himd_free(void * data) { g_free(data); } linux-minidisc-0.9.13/libhimd/himd.h000066400000000000000000000232651226247751500172650ustar00rootroot00000000000000/* * himd.h * * This file is part of libhimd, a library for accessing Sony HiMD devices. * * Copyright (C) 2009-2011 Michael Karcher * Copyright (C) 2011 MÃĨrten Cassel * Copyright (C) 2011 Thomas Arp * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #ifndef INCLUDED_LIBHIMD_HIMD_H #define INCLUDED_LIBHIMD_HIMD_H #include #include #include "codecinfo.h" #ifdef __cplusplus extern "C" { #endif #define HIMD_ENCODING_LATIN1 5 #define HIMD_ENCODING_UTF16BE 0x84 #define HIMD_ENCODING_SHIFT_JIS 0x90 #define STRING_TYPE_UNUSED 0 #define STRING_TYPE_CONTINUATION 1 #define STRING_TYPE_TITLE 8 #define STRING_TYPE_ARTIST 9 #define STRING_TYPE_ALBUM 10 #define STRING_TYPE_GROUP 12 /*reportedly disk/group name */ #define HIMD_FIRST_TRACK 1 #define HIMD_LAST_TRACK 2047 #define HIMD_FIRST_FRAGMENT 1 #define HIMD_LAST_FRAGMENT 4095 #define HIMD_FIRST_STRING 1 #define HIMD_LAST_STRING 4095 #define HIMD_TIFFILE_SIZE 327680 #define HIMD_AUDIO_SIZE 0x3FC0 #define HIMD_BLOCKINFO_SIZE 0x4000 enum himdstatus { HIMD_OK, HIMD_STATUS_AUDIO_EOF, HIMD_ERROR_DISABLED_FEATURE, HIMD_ERROR_CANT_OPEN_MCLIST, HIMD_ERROR_CANT_READ_MCLIST, HIMD_ERROR_CANT_READ_TIF, HIMD_ERROR_WRONG_TIF_SIZE, HIMD_ERROR_WRONG_TIF_MAGIC, HIMD_ERROR_CANT_ACCESS_HMDHIFI, HIMD_ERROR_NO_TRACK_INDEX, HIMD_ERROR_CANT_OPEN_TRACK_INDEX, HIMD_ERROR_CANT_OPEN_AUDIO, HIMD_ERROR_CANT_SEEK_AUDIO, HIMD_ERROR_CANT_READ_AUDIO, HIMD_ERROR_NO_SUCH_TRACK, HIMD_ERROR_FRAGMENT_CHAIN_BROKEN, HIMD_ERROR_STRING_CHAIN_BROKEN, HIMD_ERROR_STRING_ENCODING_ERROR, HIMD_ERROR_OUT_OF_STRINGS, HIMD_ERROR_NOT_STRING_HEAD, HIMD_ERROR_UNKNOWN_ENCODING, HIMD_ERROR_BAD_FRAME_NUMBERS, HIMD_ERROR_BAD_AUDIO_CODEC, HIMD_ERROR_BAD_DATA_FORMAT, HIMD_ERROR_UNSUPPORTED_ENCRYPTION, HIMD_ERROR_ENCRYPTION_FAILURE, HIMD_ERROR_OUT_OF_MEMORY, HIMD_ERROR_NO_ID3_TAGS_FOUND }; enum himd_rw_mode { HIMD_READ_ONLY, HIMD_READ_WRITE }; /* a track on the HiMD */ struct trackinfo { int title, artist, album; int trackinalbum; struct sony_codecinfo codec_info; int firstfrag; /* index into parts table */ int tracknum; /* always equal to own index in used tracks? */ int seconds; unsigned char key[8]; unsigned char mac[8]; unsigned char contentid[20]; int ekbnum; struct tm recordingtime, licensestarttime, licenseendtime; unsigned char lt, dest, xcc, ct, cc, cn; }; /* a fragment in the audio file */ struct fraginfo { unsigned char key[8]; unsigned int firstblock; unsigned int lastblock; unsigned int firstframe; unsigned int lastframe; unsigned int fragtype; unsigned int nextfrag; }; /* a block in the audio file */ struct blockinfo { unsigned int type; // "LPCM" or "A3D " or "ATX" or "SPMA" short int nframes; short int mcode; short int lendata; short int reserved1; unsigned int serial_number; unsigned char key[8]; unsigned char iv[8]; unsigned char audio_data[0x3FC0]; // obfuscated audio data unsigned char backup_key[8]; unsigned char reserved2[8]; unsigned int backup_type; short int backup_reserved; short int backup_mcode; int lo32_contentid; int backup_serial_number; }; struct himdstring { char data[14]; unsigned int stringtype : 4; unsigned int nextstring : 12; }; struct himd { /* everything below this line is private, i.e. no API stability. */ char * rootpath; unsigned char * tifdata; int discid_valid; unsigned char discid[16]; int datanum; int need_lowercase; }; struct himderrinfo { enum himdstatus status; char statusmsg[128]; }; int himd_open(struct himd * himd, const char * himdroot, struct himderrinfo * status); void himd_close(struct himd * himd); char* himd_get_string_raw(struct himd * himd, unsigned int idx, int*type, int* length, struct himderrinfo * status); char* himd_get_string_utf8(struct himd * himd, unsigned int idx, int*type, struct himderrinfo * status); int himd_add_string(struct himd * himd, char *string, int type, struct himderrinfo * status); void himd_free(void * p); const unsigned char * himd_get_discid(struct himd * himd, struct himderrinfo * status); FILE * himd_open_file(struct himd * himd, const char * fileid, enum himd_rw_mode mode); int himd_write_tifdata(struct himd * himd, struct himderrinfo * status); unsigned int himd_track_count(struct himd * himd); unsigned int himd_get_trackslot(struct himd * himd, int unsigned idx, struct himderrinfo * status); int himd_get_track_info(struct himd * himd, unsigned int idx, struct trackinfo * track, struct himderrinfo * status); int himd_get_fragment_info(struct himd * himd, unsigned int idx, struct fraginfo * f, struct himderrinfo * status); int himd_track_uploadable(struct himd * himd, const struct trackinfo * track); int himd_track_blocks(struct himd * himd, const struct trackinfo * track, struct himderrinfo * status); int himd_get_free_trackindex(struct himd * himd); int himd_add_track_info(struct himd * himd, struct trackinfo * track, struct himderrinfo * status); int himd_add_fragment_info(struct himd * himd, struct fraginfo * f, struct himderrinfo * status); #define himd_get_codec_name(track) sony_codecinfo_codecname(&(track)->codec_info) #define himd_trackinfo_framesize(track) sony_codecinfo_bytesperframe(&(track)->codec_info) unsigned int himd_trackinfo_framesperblock(const struct trackinfo * track); typedef unsigned char mp3key[4]; int himd_obtain_mp3key(struct himd * himd, int track, mp3key * key, struct himderrinfo * status); /* data stream, mdstream.c */ struct himd_blockstream { struct himd * himd; FILE * atdata; struct fraginfo *frags; unsigned int curblockno; unsigned int curfragno; unsigned int fragcount; unsigned int blockcount; unsigned int frames_per_block; }; int himd_blockstream_open(struct himd * himd, unsigned int firstfrag, unsigned int frames_per_block, struct himd_blockstream * stream, struct himderrinfo * status); void himd_blockstream_close(struct himd_blockstream * stream); int himd_blockstream_read(struct himd_blockstream * stream, unsigned char * block, unsigned int * firstframe, unsigned int * lastframe, unsigned char * fragkey, struct himderrinfo * status); struct himd_writestream { struct himd * himd; FILE * atdata; unsigned int curblockno; }; int himd_writestream_open(struct himd * himd, struct himd_writestream * stream, unsigned int * out_first_blockno, unsigned int * out_last_blockno, struct himderrinfo * status); int himd_writestream_write(struct himd_writestream * stream, struct blockinfo *block, struct himderrinfo * status); void himd_writestream_close(struct himd_writestream * stream); struct himd_mp3stream { struct himd_blockstream stream; unsigned char blockbuf[16384]; const unsigned char ** frameptrs; mp3key key; unsigned int curframe; unsigned int frames; }; int himd_mp3stream_open(struct himd * himd, unsigned int trackno, struct himd_mp3stream * stream, struct himderrinfo * status); int himd_mp3stream_read_frame(struct himd_mp3stream * stream, const unsigned char ** frameout, unsigned int * lenout, struct himderrinfo * status); int himd_mp3stream_read_block(struct himd_mp3stream * stream, const unsigned char ** frameout, unsigned int * lenout, unsigned int * framecount, struct himderrinfo * status); void himd_mp3stream_close(struct himd_mp3stream * stream); #define HIMD_MAX_PCMFRAME_SAMPLES (0x3FC0/4) struct himd_nonmp3stream { struct himd_blockstream stream; void * cryptinfo; unsigned char blockbuf[16384]; int framesize; const unsigned char * frameptr; unsigned int framesleft; }; int himd_nonmp3stream_open(struct himd * himd, unsigned int trackno, struct himd_nonmp3stream * stream, struct himderrinfo * status); int himd_nonmp3stream_read_frame(struct himd_nonmp3stream * stream, const unsigned char ** frameout, unsigned int * lenout, struct himderrinfo * status); int himd_nonmp3stream_read_block(struct himd_nonmp3stream * stream, const unsigned char ** frameout, unsigned int * lenout, unsigned int * framecount, struct himderrinfo * status); void himd_nonmp3stream_close(struct himd_nonmp3stream * stream); /* frag.c */ struct himd_hole { unsigned short firstblock; unsigned short lastblock; }; struct himd_holelist { int holecnt; struct himd_hole holes[HIMD_LAST_FRAGMENT - HIMD_FIRST_FRAGMENT + 1]; }; int himd_find_holes(struct himd * himd, struct himd_holelist * holes, struct himderrinfo * status); /* mp3tools.c */ int himd_get_songinfo(const char *filepath, char ** artist, char ** title, char **album, struct himderrinfo * status); #ifdef __cplusplus } #endif #endif linux-minidisc-0.9.13/libhimd/himd_private.h000066400000000000000000000020331226247751500210050ustar00rootroot00000000000000static inline unsigned int beword16(const unsigned char * c) { return c[0]*256+c[1]; } static inline unsigned int beword32(const unsigned char * c) { return c[0]*16777216+c[1]*65536+c[2]*256+c[3]; } static inline void setbeword16(unsigned char * c, unsigned int val) { c[0] = val >> 8; c[1] = val & 0xFF; } static inline void setbeword32(unsigned char * c, unsigned int val) { c[0] = (val >> 24) & 0xFF; c[1] = (val >> 16) & 0xFF; c[2] = (val >> 8) & 0xFF; c[3] = val & 0xFF; } void set_status_const(struct himderrinfo * status, enum himdstatus code, const char * msg); void set_status_printf(struct himderrinfo * status, enum himdstatus code, const char * format, ...); int descrypt_open(void ** dataptr, const unsigned char * trackkey, unsigned int ekbnum, struct himderrinfo * status); int descrypt_decrypt(void * dataptr, unsigned char * block, size_t cryptlen, const unsigned char * fragkey, struct himderrinfo * status); void descrypt_close(void * dataptr); linux-minidisc-0.9.13/libhimd/himdll.h000066400000000000000000000004341226247751500176060ustar00rootroot00000000000000#include "himd.h" /* special low-level functions */ int himdll_get_track_info(struct himd * himd, unsigned int idx, struct trackinfo * t, struct himderrinfo * status); int himdll_strtype(struct himd *himd, unsigned int idx); int himdll_strlink(struct himd *himd, unsigned int idx); linux-minidisc-0.9.13/libhimd/libhimd.pro000066400000000000000000000011711226247751500203150ustar00rootroot00000000000000TEMPLATE=lib TARGET =himd CONFIG -= qt CONFIG += staticlib link_pkgconfig create_prl console debug_and_release_target DEFINES += G_DISABLE_DEPRECATED=1 !without_gcrypt: { LIBS += -lgcrypt DEFINES += CONFIG_WITH_GCRYPT } else: !build_pass: message(You disabled mcrypt: No PCM and ATRAC transfer will be supported) !without_mad: { LIBS += -lmad DEFINES += CONFIG_WITH_MAD } else: !build_pass: message(You disabled mad: MP3 transfer will be limited) PKGCONFIG += glib-2.0 HEADERS += codecinfo.h himd.h himd_private.h sony_oma.h SOURCES += codecinfo.c encryption.c himd.c mdstream.c trackindex.c sony_oma.c frag.c mp3tools.c linux-minidisc-0.9.13/libhimd/mdstream.c000066400000000000000000000466421226247751500201570ustar00rootroot00000000000000/* * mdstream.c * * This file is part of libhimd, a library for accessing Sony HiMD devices. * * Copyright (C) 2009-2011 Michael Karcher * Copyright (C) 2011 MÃĨrten Cassel * Copyright (C) 2011 Thomas Arp * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include #include #include #include #include "himd.h" #include "himd_private.h" #define _(x) (x) int himd_blockstream_open(struct himd * himd, unsigned int firstfrag, unsigned int frags_per_block, struct himd_blockstream * stream, struct himderrinfo * status) { struct fraginfo frag; unsigned int fragcount, fragnum, blockcount; g_return_val_if_fail(himd != NULL, -1); g_return_val_if_fail(firstfrag >= HIMD_FIRST_FRAGMENT, -1); g_return_val_if_fail(firstfrag <= HIMD_LAST_FRAGMENT, -1); g_return_val_if_fail(stream != NULL, -1); stream->himd = himd; for(fragcount = 0, blockcount = 0, fragnum = firstfrag; fragnum != 0; fragcount++) { if(himd_get_fragment_info(himd, fragnum, &frag, status) < 0) return -1; fragnum = frag.nextfrag; if(fragcount > HIMD_LAST_FRAGMENT) { set_status_printf(status, HIMD_ERROR_FRAGMENT_CHAIN_BROKEN, _("Fragment chain starting at %d loops"), firstfrag); return -1; } blockcount += frag.lastblock - frag.firstblock + 1; } stream->frags = malloc(fragcount * sizeof stream->frags[0]); if(!stream->frags) { set_status_printf(status, HIMD_ERROR_OUT_OF_MEMORY, _("Can't allocate %d fragments for chain starting at %d"), fragcount, firstfrag); return -1; } stream->fragcount = fragcount; stream->blockcount = blockcount; stream->curfragno = 0; for(fragcount = 0, fragnum = firstfrag; fragnum != 0; fragcount++) { if(himd_get_fragment_info(himd, fragnum, &stream->frags[fragcount], status) < 0) return -1; fragnum = stream->frags[fragcount].nextfrag; } stream->atdata = himd_open_file(himd, "ATDATA", HIMD_READ_ONLY); if(!stream->atdata) { set_status_printf(status, HIMD_ERROR_CANT_OPEN_AUDIO, _("Can't open audio data: %s"), g_strerror(errno)); free(stream->frags); return -1; } stream->curblockno = stream->frags[0].firstblock; stream->frames_per_block = frags_per_block; return 0; } void himd_blockstream_close(struct himd_blockstream * stream) { fclose(stream->atdata); free(stream->frags); } static inline int is_mpeg(struct himd_blockstream * stream) { return stream->frames_per_block == TRACK_IS_MPEG; } int himd_blockstream_read(struct himd_blockstream * stream, unsigned char * block, unsigned int * firstframe, unsigned int * lastframe, unsigned char * fragkey, struct himderrinfo * status) { struct fraginfo * curfrag; g_return_val_if_fail(stream != NULL, -1); g_return_val_if_fail(block != NULL, -1); if(stream->curfragno == stream->fragcount) { set_status_const(status, HIMD_STATUS_AUDIO_EOF, _("EOF of audio stream reached")); return -1; } curfrag = &stream->frags[stream->curfragno]; if(stream->curblockno == curfrag->firstblock) { if(firstframe) *firstframe = curfrag->firstframe; if(fseek(stream->atdata, stream->curblockno*16384L, SEEK_SET) < 0) { set_status_printf(status, HIMD_ERROR_CANT_SEEK_AUDIO, _("Can't seek in audio data: %s"), g_strerror(errno)); return -1; } } else if(firstframe) *firstframe = 0; if(fread(block, 16384, 1, stream->atdata) != 1) { if(feof(stream->atdata)) set_status_printf(status, HIMD_ERROR_CANT_READ_AUDIO, _("Unexpected EOF while reading audio block %d"),stream->curblockno); else set_status_printf(status, HIMD_ERROR_CANT_READ_AUDIO, _("Read error on block audio %d: %s"), stream->curblockno, g_strerror(errno)); return -1; } if(fragkey) memcpy(fragkey, curfrag->key, sizeof curfrag->key); if(stream->curblockno == curfrag->lastblock) { if(lastframe) { if(is_mpeg(stream)) *lastframe = curfrag->lastframe - 1; else *lastframe = curfrag->lastframe; } stream->curfragno++; curfrag++; if(stream->curfragno < stream->fragcount) stream->curblockno = curfrag->firstblock; } else { if(lastframe) { if(is_mpeg(stream)) *lastframe = beword16(block+4) - 1; else *lastframe = stream->frames_per_block - 1; } stream->curblockno++; } return 0; } int himd_writestream_open(struct himd * himd, struct himd_writestream * stream, unsigned int * out_first_blockno, unsigned int * out_last_blockno, struct himderrinfo * status) { struct himd_holelist hole_list; int firstblock, lastblock=0; int block_offset=0; g_return_val_if_fail(himd != NULL, -1); g_return_val_if_fail(stream != NULL, -1); g_return_val_if_fail(status != NULL, -1); stream->himd = himd; stream->atdata = himd_open_file(himd, "ATDATA", HIMD_READ_WRITE); if(!stream->atdata) { perror("DBG: cannot open ATDATA file for writing\n"); return -1; } // himd_find_holes if( himd_find_holes(stream->himd, &hole_list, status) < 0) { puts(status->statusmsg); exit(1); } // get pointer to freespace firstblock = hole_list.holes[0].firstblock; lastblock = hole_list.holes[0].lastblock; block_offset = firstblock * HIMD_BLOCKINFO_SIZE; // set position where to start writing blocks if(fseek(stream->atdata, block_offset, SEEK_SET) != 0) { fprintf(stderr, "Error fseeking atdata\n"); } stream->curblockno = firstblock; if( (out_first_blockno != NULL) && (out_last_blockno != NULL) ) { *out_first_blockno = firstblock; *out_last_blockno = lastblock; } return 0; } void himd_writestream_close(struct himd_writestream * stream) { fclose(stream->atdata); } static void setblock(struct blockinfo * b, unsigned char * blockbuffer) { memset(blockbuffer, 0, HIMD_BLOCKINFO_SIZE); setbeword32(blockbuffer, GUINT32_TO_BE(b->type)); /* ensure to use big endian on all platforms */ setbeword16(blockbuffer+4, b->nframes); setbeword16(blockbuffer+6, b->mcode); setbeword16(blockbuffer+8, b->lendata); setbeword32(blockbuffer+12, b->serial_number); memcpy(blockbuffer+16, &b->key, 8); memcpy(blockbuffer+24, &b->iv, 8); memcpy(blockbuffer+32, &b->audio_data, HIMD_AUDIO_SIZE); setbeword32(blockbuffer+16368, GUINT32_TO_BE(b->backup_type)); setbeword16(blockbuffer+16374, b->backup_mcode); setbeword32(blockbuffer+16376, b->lo32_contentid); setbeword32(blockbuffer+16380, b->backup_serial_number); } int himd_writestream_write(struct himd_writestream * stream, struct blockinfo * audioblock, struct himderrinfo *status) { unsigned char data[HIMD_BLOCKINFO_SIZE]; g_return_val_if_fail(stream != NULL, -1); g_return_val_if_fail(audioblock != NULL, -1); status = status; stream = stream; // serialize the block descriptor setblock(audioblock, data); // write the block descriptor to the current position in the stream at 'stream->curblockno' if(fwrite(data, 16384, 1, stream->atdata) != 1) { perror("fwrite block\n"); fprintf(stderr, "Error writing block to position %d\n", stream->curblockno); return -1; } return 0; } int himd_mp3stream_open(struct himd * himd, unsigned int trackno, struct himd_mp3stream * stream, struct himderrinfo * status) { struct trackinfo trkinfo; g_return_val_if_fail(himd != NULL, -1); g_return_val_if_fail(trackno >= HIMD_FIRST_TRACK, -1); g_return_val_if_fail(trackno <= HIMD_LAST_TRACK, -1); g_return_val_if_fail(stream != NULL, -1); if(himd_get_track_info(himd, trackno, &trkinfo, status) < 0) return -1; if(!sony_codecinfo_is_mpeg(&trkinfo.codec_info)) { set_status_printf(status, HIMD_ERROR_BAD_AUDIO_CODEC, _("Track %d does not contain MPEG data"), trackno); return -1; } if(himd_obtain_mp3key(himd, trackno, &stream->key, status) < 0) return -1; if(himd_blockstream_open(himd, trkinfo.firstfrag, TRACK_IS_MPEG, &stream->stream, status) < 0) return -1; stream->frames = 0; stream->curframe = 0; stream->frameptrs = NULL; return 0; } #ifdef CONFIG_WITH_MAD #include static int himd_mp3stream_split_frames(struct himd_mp3stream * stream, unsigned int databytes, unsigned int firstframe, unsigned int lastframe, struct himderrinfo * status) { int gotdata = 1; unsigned int i; struct mad_stream madstream; struct mad_header madheader; /* stream->frameptrs is NULL if the current frame has not been splitted yet */ g_warn_if_fail(stream->frameptrs == NULL); stream->frameptrs = malloc((lastframe - firstframe + 2) * sizeof stream->frameptrs[0]); if(!stream->frameptrs) { set_status_printf(status, HIMD_ERROR_OUT_OF_MEMORY, _("Can't allocate memory for %u frame pointers"), lastframe-firstframe+2); return -1; } /* parse block */ mad_stream_init(&madstream); mad_header_init(&madheader); mad_stream_buffer(&madstream, &stream->blockbuf[0x20], databytes+MAD_BUFFER_GUARD); /* drop unneeded frames in front */ while(firstframe > 0) { if(mad_header_decode(&madheader, &madstream) < 0) { set_status_printf(status, HIMD_ERROR_BAD_DATA_FORMAT, _("Still %u frames to skip: %s"), firstframe, mad_stream_errorstr(&madstream)); gotdata = 0; goto cleanup_decoder; } firstframe--; lastframe--; } /* store needed frames */ for(i = 0;i <= lastframe;i++) { if(mad_header_decode(&madheader, &madstream) < 0 && (madstream.error != MAD_ERROR_LOSTSYNC || i != lastframe)) { set_status_printf(status, HIMD_ERROR_BAD_DATA_FORMAT, _("Frame %u of %u to store: %s"), i+1, lastframe, mad_stream_errorstr(&madstream)); gotdata = 0; goto cleanup_decoder; } stream->frameptrs[i] = madstream.this_frame; } stream->frameptrs[i] = madstream.next_frame; stream->frames = lastframe+1; stream->curframe = 0; cleanup_decoder: mad_header_finish(&madheader); mad_stream_finish(&madstream); if(!gotdata) return -1; return 0; } #endif int himd_mp3stream_read_block(struct himd_mp3stream * stream, const unsigned char ** frameout, unsigned int * lenout, unsigned int * framecount, struct himderrinfo * status) { unsigned int i; unsigned int firstframe, lastframe; unsigned int dataframes, databytes; /* partial block remaining, return all remaining frames */ if(stream->curframe < stream->frames) { if(frameout) *frameout = stream->frameptrs[stream->curframe]; if(lenout) *lenout = stream->frameptrs[stream->frames] - stream->frameptrs[stream->curframe]; if(framecount) *framecount = stream->frames - stream->curframe; stream->curframe = stream->frames; return 0; } /* need to read next block */ if(himd_blockstream_read(&stream->stream, stream->blockbuf, &firstframe, &lastframe, NULL, status) < 0) return -1; free(stream->frameptrs); stream->frameptrs = NULL; if(firstframe > lastframe) { set_status_printf(status, HIMD_ERROR_BAD_FRAME_NUMBERS, _("Last frame %u before first frame %u"), lastframe, firstframe); return -1; } dataframes = beword16(stream->blockbuf+4); databytes = beword16(stream->blockbuf+8); if(databytes > 0x3FC0) { set_status_printf(status, HIMD_ERROR_BAD_DATA_FORMAT, _("Block contains %u MPEG data bytes, which is too much"), databytes); return -1; } if(lastframe >= dataframes) { set_status_printf(status, HIMD_ERROR_BAD_FRAME_NUMBERS, _("Last requested frame %u past number of frames %u"), lastframe, dataframes); return -1; } /* Decrypt block */ for(i = 0;i < (databytes & ~7U);i++) stream->blockbuf[i+0x20] ^= stream->key[i & 3]; /* Indicate completely consumed block be sure to set this *before* writing to *framecont, it might alias stream->frames! */ stream->frames = 0; stream->curframe = 0; /* The common case - all frames belong to the stream to read. If compiled without MAD, always put all frames into the block */ #ifndef CONFIG_WITH_MAD if(firstframe == 0 && lastframe == dataframes - 1) #endif { if(frameout) *frameout = stream->blockbuf + 0x20; if(lenout) *lenout = databytes; if(framecount) *framecount = dataframes; return 0; } #ifdef CONFIG_WITH_MAD if(himd_mp3stream_split_frames(stream, databytes, firstframe, lastframe, status) < 0) return -1; if(*framecount) *framecount = lastframe - firstframe + 1; #endif return 0; } #ifdef CONFIG_WITH_MAD int himd_mp3stream_read_frame(struct himd_mp3stream * stream, const unsigned char ** frameout, unsigned int * lenout, struct himderrinfo * status) { g_return_val_if_fail(stream != NULL, -1); if(stream->curframe >= stream->frames) { unsigned int databytes, framecount; if(himd_mp3stream_read_block(stream, NULL, &databytes, &framecount, status) < 0) return -1; /* if whole block should be used, it is not yet splitted */ if(!stream->frameptrs && himd_mp3stream_split_frames(stream, databytes, 0, framecount, status) < 0) return -1; } if(frameout) *frameout = stream->frameptrs[stream->curframe]; if(lenout) *lenout = stream->frameptrs[stream->curframe + 1] - stream->frameptrs[stream->curframe]; stream->curframe++; return 0; } #else int himd_mp3stream_read_frame(struct himd_mp3stream * stream, const unsigned char ** frameout, unsigned int * lenout, struct himderrinfo * status) { (void)stream; (void)frameout; (void)lenout; (void)status; set_status_const(status, HIMD_ERROR_DISABLED_FEATURE, _("Can't do mp3 framewise read: Compiled without mad library")); return -1; } #endif void himd_mp3stream_close(struct himd_mp3stream * stream) { g_return_if_fail(stream != NULL); free(stream->frameptrs); himd_blockstream_close(&stream->stream); } #ifdef CONFIG_WITH_GCRYPT #include int himd_nonmp3stream_open(struct himd * himd, unsigned int trackno, struct himd_nonmp3stream * stream, struct himderrinfo * status) { struct trackinfo trkinfo; g_return_val_if_fail(himd != NULL, -1); g_return_val_if_fail(trackno >= HIMD_FIRST_TRACK, -1); g_return_val_if_fail(trackno <= HIMD_LAST_TRACK, -1); g_return_val_if_fail(stream != NULL, -1); if(himd_get_track_info(himd, trackno, &trkinfo, status) < 0) return -1; if(!sony_codecinfo_is_lpcm(&trkinfo.codec_info) && !sony_codecinfo_is_at3(&trkinfo.codec_info) && !sony_codecinfo_is_at3p(&trkinfo.codec_info)) { set_status_printf(status, HIMD_ERROR_BAD_AUDIO_CODEC, _("Track %d does not contain PCM, ATRAC3 or ATRAC3+ data"), trackno); return -1; } if(himd_blockstream_open(himd, trkinfo.firstfrag, himd_trackinfo_framesperblock(&trkinfo), &stream->stream, status) < 0) return -1; if(descrypt_open(&stream->cryptinfo, trkinfo.key, trkinfo.ekbnum, status) < 0) { himd_blockstream_close(&stream->stream); return -1; } stream->framesize = himd_trackinfo_framesize(&trkinfo); stream->framesleft = 0; return 0; } int himd_nonmp3stream_read_frame(struct himd_nonmp3stream * stream, const unsigned char ** frameout, unsigned int * lenout, struct himderrinfo * status) { g_return_val_if_fail(stream != NULL, -1); if(!stream->framesleft) if(himd_nonmp3stream_read_block(stream, &stream->frameptr, NULL, &stream->framesleft, status) < 0) return -1; if(frameout) *frameout = (unsigned char *)stream->frameptr; if(lenout) *lenout = stream->framesize; stream->framesleft--; stream->frameptr += stream->framesize; return 0; } int himd_nonmp3stream_read_block(struct himd_nonmp3stream * stream, const unsigned char ** frameout, unsigned int * lenout, unsigned int * framecount, struct himderrinfo * status) { unsigned int firstframe, lastframe; unsigned char fragkey[8]; g_return_val_if_fail(stream != NULL, -1); /* if partial block left */ if(stream->framesleft) { if(frameout) *frameout = stream->frameptr; if(lenout) *lenout = stream->framesleft * stream->framesize; if(framecount) *framecount = stream->framesleft; stream->framesleft = 0; return 0; } if(himd_blockstream_read(&stream->stream, stream->blockbuf, &firstframe, &lastframe, fragkey, status) < 0) return -1; if(descrypt_decrypt(stream->cryptinfo, stream->blockbuf, stream->framesize * stream->stream.frames_per_block, fragkey, status) < 0) return -1; if(frameout) *frameout = stream->blockbuf+32 + firstframe * stream->framesize; if(lenout) *lenout = stream->framesize * ((lastframe-firstframe)+1); if(framecount) *framecount = lastframe - firstframe + 1; stream->framesleft = 0; return 0; } void himd_nonmp3stream_close(struct himd_nonmp3stream * stream) { g_return_if_fail(stream != NULL); himd_blockstream_close(&stream->stream); descrypt_close(stream->cryptinfo); } #else int himd_nonmp3stream_open(struct himd * himd, unsigned int trackno, struct himd_nonmp3stream * stream, struct himderrinfo * status) { set_status_const(status, HIMD_ERROR_DISABLED_FEATURE, _("Can't open non-mp3 track: Compiled without mcrypt library")); return -1; } int himd_nonmp3stream_read_frame(struct himd_nonmp3stream * stream, const unsigned char ** frameout, unsigned int * lenout, struct himderrinfo * status) { set_status_const(status, HIMD_ERROR_DISABLED_FEATURE, _("Can't do non-mp3 read: Compiled without mcrypt library")); return -1; } void himd_nonmp3stream_close(struct himd_nonmp3stream * stream) { } #endif linux-minidisc-0.9.13/libhimd/mp3tools.c000066400000000000000000000047071226247751500201170ustar00rootroot00000000000000/* * mp3tools.c * * This file is part of libhimd, a library for accessing Sony HiMD devices. * * Copyright (C) 2009-2011 Michael Karcher * Copyright (C) 2011 MÃĨrten Cassel * Copyright (C) 2011 Thomas Arp * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include #include "himd.h" /* * gets artist, title and album info from an ID3 tag. * The output strings are to be free()d. * Returns -1, if id3 informations could be extracted. */ int himd_get_songinfo(const char *filepath, char ** artist, char ** title, char **album, struct himderrinfo * status) { struct id3_file * file; struct id3_frame const *frame; struct id3_tag *tag; union id3_field const *field; file = id3_file_open(filepath, ID3_FILE_MODE_READONLY); tag = id3_file_tag(file); if(!tag) { id3_file_close(file); set_status_printf(status, HIMD_ERROR_NO_ID3_TAGS_FOUND, "no id3 tags found in file '%s'", filepath); return -1; } frame = id3_tag_findframe (tag, ID3_FRAME_ARTIST, 0); if(frame && (field = &frame->fields[1]) && id3_field_getnstrings(field) > 0) *artist = id3_ucs4_utf8duplicate(id3_field_getstrings(field,0)); else *artist = NULL; frame = id3_tag_findframe (tag, ID3_FRAME_TITLE, 0); if(frame && (field = &frame->fields[1]) && id3_field_getnstrings(field) > 0) *title = id3_ucs4_utf8duplicate(id3_field_getstrings(field,0)); else *title = NULL; frame = id3_tag_findframe (tag, ID3_FRAME_ALBUM, 0); if(frame && (field = &frame->fields[1]) && id3_field_getnstrings(field) > 0) *album = id3_ucs4_utf8duplicate(id3_field_getstrings(field,0)); else *album = NULL; id3_file_close(file); return 0; } linux-minidisc-0.9.13/libhimd/sony_oma.c000066400000000000000000000032141226247751500201530ustar00rootroot00000000000000/* * sony_oma.c * * This file is part of libhimd, a library for accessing Sony HiMD devices. * * Copyright (C) 2009-2011 Michael Karcher * Copyright (C) 2011 MÃĨrten Cassel * Copyright (C) 2011 Thomas Arp * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include "himd.h" #include "sony_oma.h" #include void make_ea3_format_header(char * header, const struct sony_codecinfo * trkinfo) { static const char ea3header[12] = {0x45, 0x41, 0x33, 0x01, 0x00, 0x60, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00}; memset(header, 0, EA3_FORMAT_HEADER_SIZE); memcpy(header , ea3header,12); /* Do not set the content ID - this activates DRM stuff in Sonic Stage. A track with an unknown content ID can not be converted nor transferred. A zero content ID seems to mean "no DRM, for real!" */ /*memcpy(header+12, trkinfo->contentid,20);*/ header[32] = trkinfo->codec_id; memcpy(header+33, trkinfo->codecinfo, 3); } linux-minidisc-0.9.13/libhimd/sony_oma.h000066400000000000000000000004241226247751500201600ustar00rootroot00000000000000#ifndef INCLUDED_LIBHIMD_OMA_H #define INCLUDED_LIBHIMD_OMA_H #include "codecinfo.h" #define EA3_FORMAT_HEADER_SIZE 96 #ifdef __cplusplus extern "C" { #endif void make_ea3_format_header(char * header, const struct sony_codecinfo * ci); #ifdef __cplusplus } #endif #endiflinux-minidisc-0.9.13/libhimd/trackindex.c000066400000000000000000000420371226247751500204710ustar00rootroot00000000000000/* * trackindex.c * * This file is part of libhimd, a library for accessing Sony HiMD devices. * * Copyright (C) 2009-2011 Michael Karcher * Copyright (C) 2011 MÃĨrten Cassel * Copyright (C) 2011 Thomas Arp * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include #include #include "himd.h" #include "himdll.h" #include "himd_private.h" #define _(x) (x) static unsigned char * get_track(struct himd * himd, unsigned int idx) { return himd->tifdata + 0x8000 + 0x50 * idx; } static unsigned char * get_frag(struct himd * himd, unsigned int idx) { return himd->tifdata + 0x30000 + 0x10 * idx; } static unsigned char * get_strchunk(struct himd * himd, unsigned int idx) { return himd->tifdata + 0x40000 + 0x10 * idx; } static int strtype(unsigned char * stringchunk) { return stringchunk[14] >> 4; } static int strlink(unsigned char * stringchunk) { return beword16(stringchunk+14) & 0xFFF; } int himdll_strtype(struct himd *himd, unsigned int idx) { g_return_val_if_fail(idx < 4096, -1); return strtype(get_strchunk(himd, idx)); } int himdll_strlink(struct himd *himd, unsigned int idx) { g_return_val_if_fail(idx < 4096, -1); return strlink(get_strchunk(himd, idx)); } static void set_strlink(unsigned char * stringchunk, int link) { setbeword16(stringchunk+14, (beword16(stringchunk+14) & 0xF000) | link); } static void set_strtype(unsigned char * stringchunk, int type) { stringchunk[14] = (stringchunk[14] & 0x0F) | (type << 4); } unsigned int himd_track_count(struct himd * himd) { return beword16(himd->tifdata + 0x100); } unsigned int himd_get_trackslot(struct himd * himd, unsigned int idx, struct himderrinfo * status) { if(idx >= himd_track_count(himd)) { set_status_printf(status, HIMD_ERROR_NO_SUCH_TRACK, _("Track %d of %d requested")); return 0; } return beword16(himd->tifdata + 0x102 + 2*idx); } static void get_dostime(struct tm * tm, unsigned const char * bytes) { unsigned int thetime = beword16(bytes+2); unsigned int thedate = beword16(bytes); tm->tm_sec = (thetime & 0x1F)*2; tm->tm_min = (thetime & 0x7E0) >> 5; tm->tm_hour = (thetime & 0xF100) >> 11; tm->tm_mday = (thedate & 0x1F); tm->tm_mon = ((thedate & 0x1E0) >> 5) - 1; tm->tm_year = ((thedate & 0xFE00) >> 9) + 80; } static gboolean is_out_of_range(const struct tm * tm) { return tm->tm_mday < 1 || tm->tm_mday > 31 || tm->tm_mon < 0 || tm->tm_mon > 11 || tm->tm_year < 80 || tm->tm_year > 207 || tm->tm_sec < 0 || tm->tm_sec > 59 || tm->tm_min < 0 || tm->tm_min > 59 || tm->tm_hour < 0 || tm->tm_hour > 23 ; } static void dos_settime(unsigned char * buffer, const struct tm * tm) { if(is_out_of_range(tm)) memset(buffer, 0, 4); else { setbeword16(buffer, (tm->tm_mday) | ((tm->tm_mon + 1) << 5) | ((tm->tm_year - 80) << 9)); setbeword16(buffer+2, (tm->tm_sec/2) | (tm->tm_min << 5) | (tm->tm_hour << 11)); } } static void settrack(struct trackinfo *t, unsigned char * trackbuffer) { dos_settime(trackbuffer+0, &t->recordingtime); setbeword32(trackbuffer+4, t->ekbnum); setbeword16(trackbuffer+8, t->title); setbeword16(trackbuffer+10, t->artist); setbeword16(trackbuffer+12, t->album); trackbuffer[14] = t->trackinalbum; memcpy(trackbuffer+16, t->key, 8); memcpy(trackbuffer+24, t->mac, 8); trackbuffer[32] = t->codec_info.codec_id; memcpy(trackbuffer+33, t->codec_info.codecinfo, 3); memcpy(trackbuffer+44, t->codec_info.codecinfo+3, 2); setbeword16(trackbuffer+36, t->firstfrag); setbeword16(trackbuffer+38, t->tracknum); setbeword16(trackbuffer+40, t->seconds); memcpy(trackbuffer+48, t->contentid, 20); /* DRM stuff */ dos_settime(trackbuffer+68, &t->licensestarttime); dos_settime(trackbuffer+72, &t->licenseendtime); trackbuffer[42] = t->lt; trackbuffer[43] = t->dest; trackbuffer[76] = t->xcc; trackbuffer[77] = t->ct; trackbuffer[78] = t->cc; trackbuffer[79] = t->cn; } static void setfrag(struct fraginfo *f, unsigned char * fragbuffer) { memcpy(fragbuffer, &f->key, 8); setbeword16(fragbuffer+8, f->firstblock); setbeword16(fragbuffer+10, f->lastblock); fragbuffer[12] = f->firstframe; fragbuffer[13] = f->lastframe; setbeword16(fragbuffer+14,f->nextfrag); } int himd_get_free_trackindex(struct himd * himd) { int idx_freeslot; unsigned char * linkbuffer; linkbuffer = get_track(himd, 0); idx_freeslot = beword16(&linkbuffer[38]); return idx_freeslot; } int himdll_get_track_info(struct himd * himd, unsigned int idx, struct trackinfo * t, struct himderrinfo * status) { unsigned char * trackbuffer; (void)status; g_return_val_if_fail(himd != NULL, -1); g_return_val_if_fail(idx >= HIMD_FIRST_TRACK, -1); g_return_val_if_fail(idx <= HIMD_LAST_TRACK, -1); g_return_val_if_fail(t != NULL, -1); trackbuffer = get_track(himd, idx); get_dostime(&t->recordingtime,trackbuffer+0); t->ekbnum = beword32(trackbuffer+4); t->title = beword16(trackbuffer+8); t->artist = beword16(trackbuffer+10); t->album = beword16(trackbuffer+12); t->trackinalbum = trackbuffer[14]; memcpy(t->key, trackbuffer+16,8); memcpy(t->mac, trackbuffer+24,8); t->codec_info.codec_id = trackbuffer[32]; memcpy(t->codec_info.codecinfo,trackbuffer+33,3); memcpy(t->codec_info.codecinfo+3,trackbuffer+44,2); t->firstfrag = beword16(trackbuffer+36); t->tracknum = beword16(trackbuffer+38); t->seconds = beword16(trackbuffer+40); t->lt = trackbuffer[42]; t->dest = trackbuffer[43]; memcpy(t->contentid,trackbuffer+48,20); get_dostime(&t->licensestarttime,trackbuffer+68); get_dostime(&t->licenseendtime,trackbuffer+72); t->xcc = trackbuffer[76]; t->ct = trackbuffer[77]; t->cc = trackbuffer[78]; t->cn = trackbuffer[79]; return 0; } int himd_get_track_info(struct himd * himd, unsigned int idx, struct trackinfo * t, struct himderrinfo * status) { if(himdll_get_track_info(himd, idx, t, status) < 0) return -1; if(t->firstfrag == 0) { set_status_printf(status, HIMD_ERROR_NO_SUCH_TRACK, _("Track %d is not present on disc"), idx); return -1; } return 0; } int himd_add_track_info(struct himd * himd, struct trackinfo * t, struct himderrinfo * status) { int idx_freeslot; unsigned char * linkbuffer; unsigned char * trackbuffer; unsigned char * play_order_table = himd->tifdata+0x100; status = status; g_return_val_if_fail(himd != NULL, -1); g_return_val_if_fail(t != NULL, -1); /* get track[0] - the free-chain index */ linkbuffer = get_track(himd, 0); idx_freeslot = beword16(&linkbuffer[38]); /* allocate slot idx_freeslot for the new track*/ trackbuffer = get_track(himd, idx_freeslot); t->tracknum = idx_freeslot; /* update track[] - free-chain index */ setbeword16(&linkbuffer[38], beword16(&trackbuffer[38])); /* copy trackinfo to slot */ settrack(t, trackbuffer); /* increase track count */ setbeword16(play_order_table, himd_track_count(himd)+1); /* add entry for new track in play order table */ setbeword16(play_order_table+2*idx_freeslot, t->tracknum); return idx_freeslot; } unsigned int himd_trackinfo_framesperblock(const struct trackinfo * track) { int framesize; g_return_val_if_fail(track != NULL, 0); framesize = himd_trackinfo_framesize(track); if(!framesize) return TRACK_IS_MPEG; if(sony_codecinfo_is_lpcm(&track->codec_info)) return 0x3FC0 / SONY_VIRTUAL_LPCM_FRAMESIZE; else return 0x3FBF / framesize; /* other track types unknown */ return 0; } int himd_track_uploadable(struct himd * himd, const struct trackinfo * track) { g_return_val_if_fail(himd != NULL, 0); g_return_val_if_fail(track != NULL, 0); /* MPEG has no serious encryption */ if(sony_codecinfo_is_mpeg(&track->codec_info)) return 1; /* Not the well-known EKB */ if(track->ekbnum != 0x10012) return 0; return 1; } int himd_track_blocks(struct himd * himd, const struct trackinfo * track, struct himderrinfo * status) { struct fraginfo frag; int fragnum, blocks = 0; g_return_val_if_fail(himd != NULL, -1); g_return_val_if_fail(track != NULL, -1); for(fragnum = track->firstfrag; fragnum != 0; fragnum = frag.nextfrag) { if(himd_get_fragment_info(himd, fragnum, &frag, status) < 0) return -1; blocks += frag.lastblock - frag.firstblock + 1; } return blocks; } int himd_get_fragment_info(struct himd * himd, unsigned int idx, struct fraginfo * f, struct himderrinfo * status) { unsigned char * fragbuffer; g_return_val_if_fail(himd != NULL, -1); g_return_val_if_fail(idx >= HIMD_FIRST_FRAGMENT, -1); g_return_val_if_fail(idx <= HIMD_LAST_FRAGMENT, -1); g_return_val_if_fail(f != NULL, -1); fragbuffer = get_frag(himd, idx); memcpy(f->key, fragbuffer, 8); f->firstblock = beword16(fragbuffer + 8); f->lastblock = beword16(fragbuffer + 10); f->firstframe = fragbuffer[12]; f->lastframe = fragbuffer[13]; f->fragtype = fragbuffer[14] >> 4; f->nextfrag = beword16(fragbuffer+14) & 0xFFF; (void)status; return 0; } int himd_add_fragment_info(struct himd * himd, struct fraginfo * f, struct himderrinfo * status) { int idx_freefrag; unsigned char * linkbuffer; unsigned char * fragbuffer; status = status; g_return_val_if_fail(himd != NULL, -1); g_return_val_if_fail(f != NULL, -1); linkbuffer = get_frag(himd, 0); idx_freefrag = beword16(linkbuffer+14) & 0xFFF; fragbuffer = get_frag(himd, idx_freefrag); setbeword16(linkbuffer+14, beword16(fragbuffer+14) & 0xFFF); f->nextfrag = 0; /* copy fragment struct to slot buffer */ setfrag(f, fragbuffer); return idx_freefrag; } char* himd_get_string_raw(struct himd * himd, unsigned int idx, int*type, int* length, struct himderrinfo * status) { int curidx; int len; char * rawstr; int actualtype; g_return_val_if_fail(himd != NULL, NULL); g_return_val_if_fail(idx >= 1, NULL); g_return_val_if_fail(idx < 4096, NULL); actualtype = strtype(get_strchunk(himd,idx)); /* Not the head of a string */ if(actualtype < 8) { set_status_printf(status, HIMD_ERROR_NOT_STRING_HEAD, _("String table entry %d is not a head: Type %d"), idx,actualtype); return NULL; } if(type != NULL) *type = actualtype; /* Get length of string */ len = 1; for(curidx = strlink(get_strchunk(himd,idx)); curidx != 0; curidx = strlink(get_strchunk(himd,curidx))) { if(strtype(get_strchunk(himd,curidx)) != STRING_TYPE_CONTINUATION) { set_status_printf(status, HIMD_ERROR_STRING_CHAIN_BROKEN, _("%dth entry in string chain starting at %d has type %d"), len+1,idx,strtype(get_strchunk(himd,curidx))); return NULL; } len++; if(len >= 4096) { set_status_printf(status, HIMD_ERROR_STRING_CHAIN_BROKEN, _("string chain starting at %d loops"),idx); return NULL; } } /* collect fragments */ rawstr = g_malloc(len*14); if(!rawstr) { set_status_printf(status, HIMD_ERROR_OUT_OF_MEMORY, _("Can't allocate %d bytes for raw string (string idx %d)"), len, idx); return NULL; } len = 0; for(curidx = idx; curidx != 0; curidx = strlink(get_strchunk(himd,curidx))) { memcpy(rawstr+len*14,get_strchunk(himd,curidx),14); len++; } *length = 14*len; return rawstr; } char* himd_get_string_utf8(struct himd * himd, unsigned int idx, int*type, struct himderrinfo * status) { int length; char * out; char * srcencoding; char * rawstr; GError * err = NULL; g_return_val_if_fail(himd != NULL, NULL); g_return_val_if_fail(idx >= 1, NULL); g_return_val_if_fail(idx < 4096, NULL); rawstr = himd_get_string_raw(himd, idx, type, &length, status); if(!rawstr) return NULL; switch((unsigned char)rawstr[0]) { case HIMD_ENCODING_LATIN1: srcencoding = "ISO-8859-1"; break; case HIMD_ENCODING_UTF16BE: srcencoding = "UTF-16BE"; break; case HIMD_ENCODING_SHIFT_JIS: srcencoding = "SHIFT_JIS"; break; default: set_status_printf(status, HIMD_ERROR_UNKNOWN_ENCODING, "string %d has unknown encoding with ID %d", idx, rawstr[0]); himd_free(rawstr); return NULL; } out = g_convert(rawstr+1,length-1,"UTF-8",srcencoding,NULL,NULL,&err); himd_free(rawstr); if(err) { set_status_printf(status, HIMD_ERROR_STRING_ENCODING_ERROR, "convert string %d from %s to UTF-8: %s", idx, srcencoding, err->message); return NULL; } return out; } int himd_add_string(struct himd * himd, char *string, int type, struct himderrinfo * status) { int curidx, curtype, i, nextidx; int nslots; int idx_firstslot; gsize length; gchar * convertedstring; unsigned char * curchunk; unsigned char strencoding; g_return_val_if_fail(himd != NULL, -1); g_return_val_if_fail(string != NULL, -1); /* try to use Latin-1 or Shift-JIS. If that fails, use Unicode. */ if((convertedstring = g_convert(string,-1,"ISO-8859-1","UTF8", NULL,&length,NULL)) != NULL) strencoding = HIMD_ENCODING_LATIN1; else if((convertedstring = g_convert(string,-1,"SHIFT_JIS","UTF8", NULL,&length,NULL)) != NULL) strencoding = HIMD_ENCODING_SHIFT_JIS; else if((convertedstring = g_convert(string,-1,"UTF-16BE","UTF8", NULL,&length,NULL)) != NULL) strencoding = HIMD_ENCODING_UTF16BE; else { /* should never happen, as utf-16 can encode anything */ set_status_printf(status, HIMD_ERROR_UNKNOWN_ENCODING, "can't encode the string '%s' into anything usable", string); return -1; } /* how many number of slots to store string in? */ nslots = (length+14)/14; /* +13 for rounding up, +1 for the encoding byte */ /* check that there are enough free slots. Start at slot 0 which is the head of the free list. */ curidx = 0; for(i = 0; i < nslots; i++) { curtype = strtype(get_strchunk(himd, curidx)); curidx = strlink(get_strchunk(himd, curidx)); if(!curidx) { g_free(convertedstring); set_status_printf(status, HIMD_ERROR_OUT_OF_STRINGS, "Not enough string space to allocate %d string slots\n", nslots); return -1; } if(curtype != STRING_TYPE_UNUSED) { g_free(convertedstring); set_status_printf(status, HIMD_ERROR_STRING_CHAIN_BROKEN, "String slot %d in free list has type %d\n", curidx, curtype); return -1; } } idx_firstslot = strlink(get_strchunk(himd, 0)); curidx = idx_firstslot; for(i = 0; i < nslots; i++) { /* reserve space for the encoding byte in the first slot */ gsize slotlen = (i != 0) ? 14 : 13; gsize stroffset = i*14 - 1; /* limit length to what is remaining of the string */ if(slotlen > length - stroffset) slotlen = length - stroffset; curchunk = get_strchunk(himd, curidx); nextidx = strlink(curchunk); if(i == 0) { curchunk[0] = strencoding; memcpy(curchunk + 1, convertedstring, slotlen); set_strtype(curchunk, type); } else { memcpy(curchunk, convertedstring + stroffset, slotlen); set_strtype(curchunk, STRING_TYPE_CONTINUATION); } if(i == nslots-1) set_strlink(curchunk, 0); curidx = nextidx; } /* adjust free list head pointer */ set_strlink(get_strchunk(himd, 0), curidx); g_free(convertedstring); return idx_firstslot; } linux-minidisc-0.9.13/libhimd/use_libhimd.pri000066400000000000000000000012671226247751500211710ustar00rootroot00000000000000# the QMAKE_LIBDIR thing is a workaround for a bug in qmake on mingw: # it searches prl files for library dependencies only QMAKE_LIBDIR and # ignores "-L" parametes in LIBS. build_pass:CONFIG(debug,debug|release) { QMAKE_LIBDIR += ../libhimd/debug LIBS += -L../libhimd/debug } build_pass:CONFIG(release,debug|release) { QMAKE_LIBDIR += ../libhimd/release LIBS += -L../libhimd/release } # fallback if libhimd was not compiled with # CONFIG += debug_and_release debug_and_release_target # while I force debug_and_release_target, it is ignored in a # just-one-kind build without debug_and_release QMAKE_LIBDIR += ../libhimd LIBS += -L../libhimd INCLUDEPATH += ../libhimd LIBS += -lhimd linux-minidisc-0.9.13/libnetmd/000077500000000000000000000000001226247751500163515ustar00rootroot00000000000000linux-minidisc-0.9.13/libnetmd/.cdtproject000066400000000000000000000004011226247751500205060ustar00rootroot00000000000000 linux-minidisc-0.9.13/libnetmd/.gitignore000066400000000000000000000001561226247751500203430ustar00rootroot00000000000000documentation/html documentation/latex libnetmd.so.* libnetmd.a Makefile Makefile.Release Makefile.Debug *.prllinux-minidisc-0.9.13/libnetmd/.project000066400000000000000000000005511226247751500200210ustar00rootroot00000000000000 libnetmd org.eclipse.cdt.core.cbuilder org.eclipse.cdt.core.cnature linux-minidisc-0.9.13/libnetmd/CHANGELOG000066400000000000000000000051411226247751500175640ustar00rootroot00000000000000* June 21 - July 11th, 2004, Bertrik Sikken v.Unstable - hotplug-netmd: Added sleep 1 and handling of remove event. - netmd.c: Added 'raw' command to send a raw hex command. - moved netmd usb device function from libnetmd.c into netmd_dev.c - libnetmd.c/netmd.c: Added 'setplaymode' command. - renamed usb_dev_handle into netmd_dev_handle - updated netmd_init function. It now returns a list of supported devices. - added netmd_close function. This does the opposite of netmd_open. - updated netmd_clean function. Instead of just closing the netmd device, it cleans up the stuff left behind by netmd_init. - added netmd_trace.c file that implements simple tracing functions - added support for setting options from the command line * March 25 - April 26, 2004, Bertrik Sikken v.Unstable - Makefile: Added install-hotplug rule that installs the minidisc hotplug scripts/files into /etc/hotplug/usb. - Makefile: Added dist rule to Makefile that creates a timestamped tar.gz of the sources. - hotplug-netmd: Added check on action (should be 'add') and existence of device file. - libnetmd.c: Removed usb_set_configuration (not needed, yet was giving problems with hotplug). - libnetmd.c: Simplified function netmd_get_devname (now uses libusb function usb_get_string_simple). - libnetmd.c: Added USB IDs of Sony MZ-N710/N810 * March 24, 2004, Bertrik Sikken v.Unstable - Updated netmd_exch_message function to make it compatible with the Sony MDS-JB980 with help of Chris Croughton (0x0F responses are ignored now) * March 23, 2004, Bertrik Sikken v.Unstable - Added test functions related to check-in/check-out (added libnetmd_secure.c) * March 21 2004 Bertrik Sikken v.Unstable - Removed duplicate strdup in function netmd_initialize_disc_info - Removed DEVICE_COUNT #define, now using terminating pair in netmd_devices list. - Added netmd_exch_message function that sends a command to and receives response from the player, with proper respect for the USB status indicated by the player. Replaced ad-hoc calls to usb_control_msg by simple calls to the netmd_exch_message function. - Replaced magic numbers for USB request type in usb_control_msg by proper defined values. - Updated names in list of USB ids and sorted list. - Removed unnecessary CODECS and BITRATES defines. - Applied get_devname patch. - Fixed bug that prevented parsing of titles that contain a forward slash (/). * Monday March 15 2004 Edward Mann v.Unstable. - Added {0x54c, 0xc9} /* Sony MZ-N510 */ - Created this Change loglinux-minidisc-0.9.13/libnetmd/Doxyfile000066400000000000000000001106111226247751500200570ustar00rootroot00000000000000# Doxyfile 1.2.15 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # General configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = libnetmd # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = 0.0.1 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = documentation # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, # German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, # Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish. OUTPUT_LANGUAGE = English # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these class will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited # members of a class in the documentation of that class as if those members were # ordinary class members. Constructors, destructors and assignment operators of # the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. It is allowed to use relative paths in the argument list. STRIP_FROM_PATH = # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower case letters. If set to YES upper case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # users are adviced to set this option to NO. CASE_SENSE_NAMES = YES # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like the Qt-style comments (thus requiring an # explict @brief command for a brief description. JAVADOC_AUTOBRIEF = YES # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # reimplements. INHERIT_DOCS = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consist of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. # For instance some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources # only. Doxygen will then generate output that is more tailored for Java. # For instance namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp # *.h++ *.idl *.odl FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories # that are symbolic links (a Unix filesystem feature) are excluded from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. INPUT_FILTER = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse. FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the Html help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, # or Internet explorer 4.0+). Note that for large projects the tree generation # can take a very long time. In such cases it is better to disable this feature. # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimised for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assigments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_XML = NO #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_PREDEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = *.h # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line and do not end with a semicolon. Such function macros are typically # used for boiler-plate code, and will confuse the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- # The TAGFILES tag can be used to specify one or more tagfiles. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or # super classes. Setting the tag to NO turns the diagrams off. Note that this # option is superceded by the HAVE_DOT option below. This is only a fallback. It is # recommended to install and use dot, since it yield more powerful graphs. CLASS_DIAGRAMS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found on the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermedate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::addtions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO # The CGI_NAME tag should be the name of the CGI script that # starts the search engine (doxysearch) with the correct parameters. # A script with this name will be generated by doxygen. CGI_NAME = search.cgi # The CGI_URL tag should be the absolute URL to the directory where the # cgi binaries are located. See the documentation of your http daemon for # details. CGI_URL = # The DOC_URL tag should be the absolute URL to the directory where the # documentation is located. If left blank the absolute path to the # documentation, with file:// prepended to it, will be used. DOC_URL = # The DOC_ABSPATH tag should be the absolute path to the directory where the # documentation is located. If left blank the directory on the local machine # will be used. DOC_ABSPATH = # The BIN_ABSPATH tag must point to the directory where the doxysearch binary # is installed. BIN_ABSPATH = /usr/bin/ # The EXT_DOC_PATHS tag can be used to specify one or more paths to # documentation generated for other projects. This allows doxysearch to search # the documentation for these projects as well. EXT_DOC_PATHS = linux-minidisc-0.9.13/libnetmd/LICENCE.TXT000066400000000000000000000431201226247751500200140ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) 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 this service 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 make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. 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. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the 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 a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE 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. END OF TERMS AND CONDITIONS Appendix: 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 convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy 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 2 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision 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, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This 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 Library General Public License instead of this License. linux-minidisc-0.9.13/libnetmd/common.c000066400000000000000000000103761226247751500200140ustar00rootroot00000000000000/* * common.c * * This file is part of libnetmd, a library for accessing Sony NetMD devices. * * Copyright (C) 2004 Bertrik Sikken * Copyright (C) 2011 Alexander Sulfrian * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include #include #include "common.h" #include "const.h" #include "log.h" #define NETMD_POLL_TIMEOUT 1000 /* miliseconds */ #define NETMD_SEND_TIMEOUT 1000 #define NETMD_RECV_TIMEOUT 1000 #define NETMD_RECV_TRIES 30 #ifdef WIN32 #include #define msleep(x) Sleep(x) #else #define msleep(x) usleep(1000*x) #endif /* polls to see if minidisc wants to send data @param dev USB device handle @param buf pointer to poll buffer @param tries maximum attempts to poll the minidisc @return if error <0, else number of bytes that md wants to send */ static int netmd_poll(libusb_device_handle *dev, unsigned char *buf, int tries) { int i; for (i = 0; i < tries; i++) { /* send a poll message */ memset(buf, 0, 4); if (libusb_control_transfer(dev, LIBUSB_ENDPOINT_IN | LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_INTERFACE, 0x01, 0, 0, buf, 4, NETMD_POLL_TIMEOUT) < 0) { netmd_log(NETMD_LOG_ERROR, "netmd_poll: libusb_control_transfer failed\n"); return NETMDERR_USB; } if (buf[0] != 0) { break; } if (i > 0) { msleep(1000); } } return buf[2]; } int netmd_exch_message(netmd_dev_handle *devh, unsigned char *cmd, const size_t cmdlen, unsigned char *rsp) { netmd_send_message(devh, cmd, cmdlen); return netmd_recv_message(devh, rsp); } int netmd_send_message(netmd_dev_handle *devh, unsigned char *cmd, const size_t cmdlen) { unsigned char pollbuf[4]; int len; libusb_device_handle *dev; dev = (libusb_device_handle *)devh; /* poll to see if we can send data */ len = netmd_poll(dev, pollbuf, 1); if (len != 0) { netmd_log(NETMD_LOG_ERROR, "netmd_exch_message: netmd_poll failed\n"); return (len > 0) ? NETMDERR_NOTREADY : len; } /* send data */ netmd_log(NETMD_LOG_DEBUG, "Command:\n"); netmd_log_hex(NETMD_LOG_DEBUG, cmd, cmdlen); if (libusb_control_transfer(dev, LIBUSB_ENDPOINT_OUT | LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_INTERFACE, 0x80, 0, 0, cmd, (int)cmdlen, NETMD_SEND_TIMEOUT) < 0) { netmd_log(NETMD_LOG_ERROR, "netmd_exch_message: libusb_control_transfer failed\n"); return NETMDERR_USB; } return 0; } int netmd_recv_message(netmd_dev_handle *devh, unsigned char* rsp) { int len; unsigned char pollbuf[4]; libusb_device_handle *dev; dev = (libusb_device_handle *)devh; /* poll for data that minidisc wants to send */ len = netmd_poll(dev, pollbuf, NETMD_RECV_TRIES); if (len <= 0) { netmd_log(NETMD_LOG_ERROR, "netmd_exch_message: netmd_poll failed\n"); return (len == 0) ? NETMDERR_TIMEOUT : len; } /* receive data */ if (libusb_control_transfer(dev, LIBUSB_ENDPOINT_IN | LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_INTERFACE, pollbuf[1], 0, 0, rsp, len, NETMD_RECV_TIMEOUT) < 0) { netmd_log(NETMD_LOG_ERROR, "netmd_exch_message: libusb_control_transfer failed\n"); return NETMDERR_USB; } netmd_log(NETMD_LOG_DEBUG, "Response:\n"); netmd_log_hex(NETMD_LOG_DEBUG, rsp, (size_t)len); /* return length */ return len; } linux-minidisc-0.9.13/libnetmd/common.h000066400000000000000000000023711226247751500200150ustar00rootroot00000000000000#ifndef LIBNETMD_COMMON_H #define LIBNETMD_COMMON_H #include /** Typedef that nearly all netmd_* functions use to identify the USB connection with the minidisc player. */ typedef libusb_device_handle *netmd_dev_handle; /** Function to exchange command/response buffer with minidisc player. @param dev device handle @param cmd buffer with the command, that should be send to the player @param cmdlen length of the command @param rsp buffer where the response should be written to @return number of bytes received if >0, or error if <0 */ int netmd_exch_message(netmd_dev_handle *dev, unsigned char *cmd, const size_t cmdlen, unsigned char *rsp); /** Function to send a command to the minidisc player. @param dev device handle @param cmd buffer with the command, that should be send to the player @param cmdlen length of the command */ int netmd_send_message(netmd_dev_handle *dev, unsigned char *cmd, const size_t cmdlen); /** Function to recieve a response from the minidisc player. @param rsp buffer where the response should be written to @return number of bytes received if >0, or error if <0 */ int netmd_recv_message(netmd_dev_handle *dev, unsigned char *rsp); #endif linux-minidisc-0.9.13/libnetmd/const.h000066400000000000000000000046541226247751500176610ustar00rootroot00000000000000#ifndef CONST_H #define CONST_H /** Error codes of the USB transport layer */ #define NETMDERR_USB -1 /**< general USB error */ #define NETMDERR_NOTREADY -2 /**< player not ready for command */ #define NETMDERR_TIMEOUT -3 /**< timeout while waiting for response */ #define NETMDERR_CMD_FAILED -4 /**< minidisc responded with 08 response */ #define NETMDERR_CMD_INVALID -5 /**< minidisc responded with 0A response */ /** Playmode values to be sent to netmd_set_playmode. These can be combined by OR-ing them to do shuffle repeat for example. See also: http://article.gmane.org/gmane.comp.audio.netmd.devel/848 */ #define NETMD_PLAYMODE_SINGLE 0x0040 #define NETMD_PLAYMODE_REPEAT 0x0080 #define NETMD_PLAYMODE_SHUFFLE 0x0100 /** playback controll commands */ #define NETMD_PLAY 0x75 #define NETMD_PAUSE 0x7d #define NETMD_REWIND 0x49 #define NETMD_FFORWARD 0x39 /** change track commands */ #define NETMD_TRACK_PREVIOUS 0x0002 #define NETMD_TRACK_NEXT 0x8001 #define NETMD_TRACK_RESTART 0x0001 /** NetMD Protocol return status (first byte of request) */ #define NETMD_STATUS_CONTROL 0x00 #define NETMD_STATUS_STATUS 0x01 #define NETMD_STATUS_SPECIFIC_INQUIRY 0x02 #define NETMD_STATUS_NOTIFY 0x03 #define NETMD_STATUS_GENERAL_INQUIRY 0x04 /** NetMD Protocol return status (first byte of response) */ #define NETMD_STATUS_NOT_IMPLEMENTED 0x08 #define NETMD_STATUS_ACCEPTED 0x09 #define NETMD_STATUS_REJECTED 0x0a #define NETMD_STATUS_IN_TRANSITION 0x0b #define NETMD_STATUS_IMPLEMENTED 0x0c #define NETMD_STATUS_CHANGED 0x0d #define NETMD_STATUS_INTERIM 0x0f #define NETMD_ENCODING_SP 0x90 #define NETMD_ENCODING_LP2 0x92 #define NETMD_ENCODING_LP4 0x93 #define NETMD_CHANNELS_MONO 0x01 #define NETMD_CHANNELS_STEREO 0x00 #define NETMD_OPERATING_STATUS_USB_RECORDING 0x56ff #define NETMD_OPERATING_STATUS_RECORDING 0xc275 #define NETMD_OPERATING_STATUS_RECORDING_PAUSED 0xc27d #define NETMD_OPERATING_STATUS_FAST_FORWARDING 0xc33f #define NETMD_OPERATING_STATUS_REWINDING 0xc34f #define NETMD_OPERATING_STATUS_PLAYING 0xc375 #define NETMD_OPERATING_STATUS_PAUSED 0xc37d #define NETMD_OPERATING_STATUS_STOPPED 0xc5ff #define NETMD_TRACK_FLAG_PROTECTED 0x03 #define NETMD_DISC_FLAG_WRITABLE 0x10 #define NETMD_DISC_FLAG_WRITE_PROTECTED 0x40 #define NETMD_DISKFORMAT_LP4 0 #define NETMD_DISKFORMAT_LP2 2 #define NETMD_DISKFORMAT_SP_MONO 4 #define NETMD_DISKFORMAT_SP_STEREO 6 #define NETMD_RIFF_FORMAT_TAG_ATRAC3 0x270 #endif linux-minidisc-0.9.13/libnetmd/documentation/000077500000000000000000000000001226247751500212225ustar00rootroot00000000000000linux-minidisc-0.9.13/libnetmd/documentation/howto.html000066400000000000000000000135241226247751500232550ustar00rootroot00000000000000 So you want to reverse engineer a USB protocol

So you want to reverse engineer a USB protocol

So you bought the new fancy (insert device here) and it's all USB capable n stuff. Problem is (company name here) doesn't support your OS, and no one is working on software for it so you can't just sit back and wait.

No problem you say, I'm a hard-core (insert OS name here) user, I can make my own stuff.

Good for you, now lets get down to work.

Getting set up

If you're rich, have a sugar daddy/momma who is, or have a good company budget on your side the way to go is to have a dedicated machine running one of the supported OS's and have a hardware/software combo bus and protocol analyzer like the one from CATC.

On the other hand if you're a person of moderate income, cheap or for whatever reason something like this is not an option, a few guys came to your rescue and produced USB Snoopy. A software based decoder that works for most versions of Microsoft Windows.

The next problem for some people is getting something set up to run the supported OS. If you do not have dedicated hardware for this one solution is VMWare Workstation

VMWare allows you to run an Operating System inside of a virtual machine which shows up as a window in your current Operating System. The cost is somewhat prohibitive at 300 USD, and that of course does not include a license for the needed OS.

2 open source solutions may be viable, however I have not tested them. Plex86 and Bochs.

Bochs is the only solution for someone running non Intel compatible hardware and needs to run Microsoft Windows or other Intel based OS, as Bochs is a emulator not a hardware virtualizer (I'm not prepared to go into the difference, however the latter uses the existing hardware while the former pretends it IS hardware).

Plex86 recently moved so the Savannah project management site. It takes a more VMWare based virtualization approach from what I understand. The project is closely related to Bochs and they share code/have a similar user interface.

OK, I'm running the OS and have a way of getting the USB data.

Any examples I give have the assumption that you chose VMWare and USB Snoopy as that's what I'm using.

What you need to do is get your protocol analyzer in place and ready to capture, then install the driver/software that drives the USB device. After that you need to break down the capabilities of the device that you are interested in. Rank these capabilities in terms of how easy you think they will be to figure out. Remember, baby steps. Not only will small successes bolster your ego and drive to keep going, but it will get you familiar with the protocol that you are dealing with.

Some protocols are well put together, simple to understand and are easy to work with. You will probably never see one of these protocols as they are like many other mythical things, often talked about, never seen.

Now we begin, with everything in place start up the software that will talk to the device, the logger should be running. When the software has finished starting up if it communicated with the device you should have data, some software polls different status information on the device while running, if this is true you should see patterns in the data and pulses going down the USB port (a nice thing about VMWare is the icon that represents the USB port will flash to show data). Stop the logger, save the data using a name like applicationstartup.log or whatever and move down your list a couple of times getting different data samples to work with, nothing complex just 2 or 3 different samples to compare.

An understanding of the URB format is critical at this point, an URB is the basic structure for every USB request (URB stands for USB Request Block), its not an overly complex structure so take a minute to review it

This is where a bad protocol gets frustrating, the data looks like garbage, the analyzer probably saves everything in hex making life even harder when trying to deal with simple text. Using hex is good however, because binary data wouldn't look like much and hex is portable across platforms and languages.

If you will be dealing with simple text I have some source which takes in chars and outputs hex, and takes in hex and output's simple printable chars or .'s

From here every protocol is different, things to look for and take notes on are Request #'s Index #'s and of course Value, which is the binary data. Transfer flags and URBLink's may also come into play on your device, URBLinks connect URB's together.

A few sample protocol spec's that can be found on the web are the one for the Rio500 and the one I'm working on for Sony's NetMD Minidisc products.


Marc Britten
Last modified: Sun May 12 00:49:16 EDT 2002 linux-minidisc-0.9.13/libnetmd/documentation/index.html000066400000000000000000000071721226247751500232260ustar00rootroot00000000000000 The libnetmd Project :: Putting the funk in your trunk.

libnetmd

  

Welcome to the libnetmd project website. libnetmd is an open source effort to provide tools for use with Sony NetMD recorders under operating systems supported by the libusb project (currently Linux, Net/Free/OpenBSD and preliminary MacOS X support).

The project is composed of libnetmd (which provides core functionality) and libnetmd (the user interface to libnetmd). Currently libnetmd is the only avalible component and development on the libnetmd interface is expected to begin soon.

While our primary development platform is Linux for i386 hardware, our current code base is also known to work under MacOS X on PowerPC. One of our primary aims is cross-platform compatibility. If you get the chance to test libnetmd on any other platforms libusb supports, please let us know the results.

Currently libnetmd supports the following operations on all currently known NetMD recorders:

  • renaming and moving tracks (in and out of groups)
  • renaming and moving groups (experimental)
  • renaming disc (experimental)
  • printing TOC of disc
  • creating/deleteing groups
  • removing tracks
  • play, pause, fast forward, rewind and stop
  • and probably some other stuff

In the future we hope to support uploading audio to NetMD recorders and all other editing functions which are not presently implemented.

Check out the main menu to the left for downloads, documentation, news and other items of interest. If you'd like to get involved with the project, join the netmd-devel mailing list. Read up on how to access the sourcecode

If you are user who has questions please see our libnetmd-users mailing list.

You may also want to check out our forums.

linux-minidisc-0.9.13/libnetmd/documentation/index_files/000077500000000000000000000000001226247751500235135ustar00rootroot00000000000000linux-minidisc-0.9.13/libnetmd/documentation/index_files/logo.html000066400000000000000000000004431226247751500253420ustar00rootroot00000000000000 404 Not Found

Not Found

The requested URL /images/logo.gif was not found on this server.


Apache/1.3.26 Server at opennmd.monochromatic.net Port 80
linux-minidisc-0.9.13/libnetmd/documentation/index_files/openwindow.html000066400000000000000000000004551226247751500265760ustar00rootroot00000000000000 404 Not Found

Not Found

The requested URL /javascript/openwindow.php was not found on this server.


Apache/1.3.26 Server at opennmd.monochromatic.net Port 80
linux-minidisc-0.9.13/libnetmd/documentation/index_files/pix.html000066400000000000000000000004511226247751500252010ustar00rootroot00000000000000 404 Not Found

Not Found

The requested URL /images/global/pix.gif was not found on this server.


Apache/1.3.26 Server at opennmd.monochromatic.net Port 80
linux-minidisc-0.9.13/libnetmd/documentation/index_files/showimages.html000066400000000000000000000004551226247751500265530ustar00rootroot00000000000000 404 Not Found

Not Found

The requested URL /javascript/showimages.php was not found on this server.


Apache/1.3.26 Server at opennmd.monochromatic.net Port 80
linux-minidisc-0.9.13/libnetmd/documentation/index_files/styleNN.html000066400000000000000000000004661226247751500260030ustar00rootroot00000000000000 404 Not Found

Not Found

The requested URL /themes/ExtraLite/style/styleNN.css was not found on this server.


Apache/1.3.26 Server at opennmd.monochromatic.net Port 80
linux-minidisc-0.9.13/libnetmd/documentation/proto.txt000066400000000000000000000165151226247751500231360ustar00rootroot00000000000000Request Formats --------------- This is a list of the request formats I have seen so far and my attempt to decode the structure of them, but not the actual content (ie to say what kind of data each byte is, not what it means to a NetMD device). My next step will be to tie this back to the actual commands we have decoded and decode the content. Oh yeah, my request and reply blocks are currently in seperate sections --- it made it easier to spot patterns :) Key --- Angle brackets <> are used to group blocks of bytes together (eg the ID and Opcode fields) Square brackets [] indicate a number of data bytes whose meaning is specific to the actual command, eg [6] means 6 bytes (or 3 16 bit words :) Something like 00 LL means a 16 bit length followed by that many bytes of data, eg 00 04 01 02 03 04 ... this is how strings and other things seem to be encoded. ----------------------------------------------------------------------------- Group 6 (Get info about disks or tracks) ---------------------------------------- (Unchecked) <- <00 18 06> <02 10 10 01> [4] ff 00 [4] <- <09 18 06> <01 20 10 01> [2*] 10 00 [4*] [1] *** Get Disk Flags:- -> <00 18 06> <01 10 10 00> ff 00 [4] P1: 00 01 00 0b <- <09 18 06> <01 10 10 00> 10 00 [4] ff ff = Flags: 10 = Normal (80 minute?) 50 = Write Protected *** Get Disk Capacity:- -> <00 18 06> <02 10 10 00> [2][2] ff 00 [4] P1: 30 80 P2: 03 00 P3: 00 00 00 00 <- <09 18 06> <02 10 10 00> [2][2] 10 00 00 LL 00 00 = 00 LL = 80 03 00 17 80 00 (???) 00 05 00 TT TT TT TT (Time used ("LP2 seconds")) 00 05 00 TT TT TT TT (Total disk size) 00 05 00 TT TT TT TT (Time available to record) NB Times are encoded differently here: leading TT is not hundreds of minutes BCD, but seems to be *hours* BCD... Maybe this is why these are encoded as 5 bytes and track time etc is encoded as 6? *** Get Track Count -> <00 18 06> <02 10 10 01> [2][2] ff 00 [4] P1: 30 00 P2: 10 00 P3: 00 00 00 00 <- <09 18 06> <02 10 10 01> [2][2] 10 00 00 LL 00 00 = 00 LL = 00 10 00 02 00 nn nn = Number of tracks *** Get Track Checkout Status:- -> <00 18 06> <01 20 10 01> [2] ff 00 [4] P1: 00 tt (tt = Track number) P2: 00 01 00 08 <- <09 18 06> <01 10 10 00> 10 00 [4] : 00 = not checked out, 03 = locked? *** Request Track Length, Bitrate etc:- -> <00 18 06> <02 20 10 01> [2][2][2] ff 00 [4] P1: 00 tt (tt = Track number) P2: 30 80 or 30 00 P3: 07 00 or 01 00 P4: 00 00 00 00 <- <09 18 06> <02 10 10 01> [2][2][2] 10 00 00 LL 00 00 = 00 LL If P2 = 3080 and P3 = 0700 = 80 07 00 04 01 10 xx yy xx = bitrate: 90 = SP, 92 = LP2, 93 = LP4 yy: 00 = Stereo 01 = Mono If P2 = 3000 and P3 = 0100 = 00 01 00 06 00 00 TT TT TT TT *** Request Disk Title:- -> <00 18 06> <02 20 18 01> [2][2][2] ff 00 [4] P1: 00 00 or 00 01 P2: 30 00 P3: 08 00 or 0a 00 P4: 00 00 00 00 <- <09 18 06> <02 20 18 01> [2][2][2] 10 00 00 LL 00 00 = 00 LL If P1 = 0000 and P3 = 0800 = 00 08 00 02 80 01 If P1 = 0001 and P3 = 0800 = 00 08 00 02 80 ff If P1 = 0000 and P3 = 0a00 = 00 0a 00 LL = the actual title string *** Request Track Title:- -> <00 18 06> <02 20 18 02> [2][2][2] ff 00 [4] P1: 00 tt (tt = Track number) P2: 30 00 P3: 00 0a P4: 00 00 00 00 <- <09 18 06> <02 20 18 02> [2][2][2] 10 00 00 LL 00 00 = 00 LL = 00 0a 00 LL = the actual title string ----------------------------------------------------------------------------- Group 7 (Modify disk/track info) -------------------------------- <00 18 07> <02 20 18 01> [6] 50 00 00 XX 00 00 00 LL <00 18 07> <02 20 18 02> [6] 50 00 00 XX 00 00 00 LL (XX is old header length in one, same as LL in the other) ----------------------------------------------------------------------------- Group 8 (Handshaking and flow control, maybe?) ---------------------------------------------- -> <00 18 08> <10 10 00 00> 00 <- <09 18 08> <10 10 00 00> 00 -> <00 18 08> <10 10 00 01> 00 <- <09 18 08> <10 10 00 01> 00 -> <00 18 08> <10 10 01 00> 00 <- <09 18 08> <10 10 01 00> 00 -> <00 18 08> <10 10 00 01> 00 <- <09 18 08> <10 10 00 01> 00 -> <00 18 08> <80 00 00 00> <- <09 18 08> <80 00 00 00> -> <00 18 08> <80 00 01 00> <- <09 18 08> <80 00 01 00> ----------------------------------------------------------------------------- Group 9 (Get status?) --------------------- * Get Player Status?:- -> <00 18 09> <80 01 02 30> [2][2][2][1] ff 00 [4] P1: 88 00 P2: 00 30 P3: 88 04 P4: 00 P5: 00 00 00 00 <- <09 18 09> <80 01 02 30> [2][2][2][1] 10 00 00 LL 00 00 data1 = 00 LL data2 = 88 04 00 03 40 ff 40 ("Normal") data2 = 88 04 00 03 80 ff 40 ("No disk") * Get Disk Status?:- -> <00 18 09> <80 01 03 30> [2][2][2][2][2][1] ff 00 [4] P1: 88 01 or 88 02 P2: 00 30 P3: 88 05 P4: 00 30 P5: 88 07 or 88 06 P6: 00 P7: 00 00 00 00 <- <00 18 09> <80 01 03 30> [2][2][2][2][2][1] 10 00 00 LL 00 00 data1 = 00 LL At startup, P1=8801, P5=8807 data2 = 88 05 00 88 80 e0 01 10 90 00 40 00 During playback P1=8802, P5=8806 data2 = 88 06 00 02 c3 75 *** Get Playback Status?:- -> <00 18 09> <80 01 04 30> [2][2][2][2][2][2][2][1] ff 00 [4] P1: 88 02 P2: 00 30 P3: 88 05 P4: 00 30 P5: 00 03 P6: 00 30 P7: 00 02 P8: 00 P9: 00 00 00 00 <- <00 18 09> <80 01 04 30> [2][2][2][2][2][2][2][1] 10 00 00 LL 00 00 data1 = 00 LL data2 = 00 02 00 07 00 00 tt TT TT TT TT tt = Current track number TTTTTTTT = Playback position ----------------------------------------------------------------------------- Group 40: Zap things *** Initialise Disc -> <00 18 40> <- <09 18 40> <00 00 00> NB1: Only 6 bytes! NB2: Long pause between send and reply... Open MG seems to poll during this period *** Delete track -> <00 18 40> [2] [2] <- <00 18 40> <00 01 00 20> [2] [2] P1: 10 01 (Maybe some flag to do with checkin/out?) P2: 00 tt ----------------------------------------------------------------------------- Group 50: Set playback position? *** Set Position -> <00 18 50> [2] [2] [4] P1: 00 00 (const?) P2: 00 tt (track number) P3: TT TT TT TT (playback position in BCD) <- <09 18 50> <00 00 00 00> [2] [2] [4] *** Set Track -> <00 18 50> [2] [2] P1: 00 00 (const?) P2: 00 tt (track number) <- <09 18 50> <00 01 00 00> [2] [2] ----------------------------------------------------------------------------- Group c3: Playback control *** Fast Forward Mode -> <00 18 c3> 00 <- <00 18 c3> <00 39 00 00> 00 *** Rewind Mode -> <00 18 c3> 00 <- <00 18 c3> <00 49 00 00> 00 *** Start playback -> <00 18 c3> 00 <- <00 18 c3> <00 75 00 00> 00 *** Pause -> <00 18 c3> 00 <- <00 18 c3> <00 7d 00 00> 00 ----------------------------------------------------------------------------- Group c5: *** Stop -> <00 18 c5> 00 <- <09 18 c5> <00 00 00 00> 00 linux-minidisc-0.9.13/libnetmd/documentation/protocol.html000066400000000000000000000147171226247751500237630ustar00rootroot00000000000000 NetMD USB Protocol

Index


Technical notes.

  • All Value and Index values in the URB's are 0 for all URB's that I've discovered
  • Reqeust 80 means the setup packet should start with 41h
  • Reqeust 81 means the setup packet should start with C1h
  • Reqeust 01 means the setup packet should start with C1h
  • Track numbers are zero based, so track 1 on the disc is refered to as 00 in the protocol
  • Almost all numbers are in hex, get used to it.
  • Out indicates data leaving the PC
  • In indicates data coming from the USB device.

Request Disc Header

Direction: Out
Request: 80
Data Length: 13
Data: 00 18 06 02 20 18 02 00 00 30 00 0a 00 ff 00 00 00 00 00

Direction: Out
Request: 01
Data Length: 04
Data: buffer of length 4

Upon completion buffer is filled in for you as 01 81 hh 00 where hh is the length of the buffer needed to hold the Disc Header (plus protocol information)

Request: 81
Data Lenth: hh from above
Data: buffer of length hh

Upon completion the buffer holds hh bytes of data. The first 19h bytes are protocol information, you are interested in the remaining data.


Request Track Title

Direction: Out
Request: 80
Data Length: 13
Data: 00 18 06 02 20 18 01 00 HH 30 00 0a 00 ff 00 00 00 00 00

HH is the track number.

Direction: Out
Request: 01
Data Length: 04
Data: buffer of length 4

Upon completion buffer is filled in for you as 01 81 hh 00 where hh is the length of the buffer needed to hold the Track Title (plus protocol information)

Request: 81
Data Lenth: hh from above
Data: buffer of length hh

Upon completion the buffer holds hh bytes of data. The first 19h bytes are protocol information, you are interested in the remaining data.


Set Disc Header

Direction: Out
Request: 80
Data Length: 13
Data: 00 18 07 02 20 18 01 00 00 30 00 0a 00 50 00 00
HH 00 00 00 JJ (Header)

Where HH is the length of the Header, JJ is the length the header used to be, and (Header) is the full complete Header List
See Header for information on how the Disc Header is structured.


Set Track Title

Direction: Out
Request: 80
Data Length: 13
Data: 00 18 07 02 20 18 02 00 00 30 00 0a 00 50 00 00
HH 00 00 00 HH (Title)

Where HH is the length of the Title and (Title) is the Track Title, remember that LP: is not inserted for you.


Move Track

Direction: Out
Request: 80
Data Length: 13
Data: 00 18 43 ff 00 00 20 10 HH 00 04 20 10 01 00 JJ

Where HH is the track number to move and JJ is the track number to make it.


Get Track Time

Request: 80
Data Length: 13
Data: 00 18 06 02 20 10 01 00 TT 30 00 01 00 ff 00 00 00 00 00

TT is the track number.

Request: 01
Data Length: 04
Data: buffer of length 4

Upon completion buffer is filled in for you as 01 81 hh 00 where hh is the length of the buffer needed to hold the Disc Header (plus protocol information)

Request: 81
Data Lenth: hh from above
Data: buffer of length hh

Upon completion the buffer holds hh (seems to be 1f every time since its the same data per track) bytes of data. The last 3 bytes are Binary Coded Decimal representations of the track times.

#define BCD_TO_PROPER(x) (((((x) & 0xf0) >> 4) * 10) + ((x) & 0x0f))

This is a C macro which will return the proper decimal for use.


Get Track Codec

Request: 80
Data Length: 13
Data: 00 18 06 01 20 10 01 00 tt ff 00 00 01 00 08
tt is the track number.

Request: 01
Data Length: 04
Data: buffer of length 4

Upon completion buffer is filled in for you as 01 81 hh 00 where hh is the length of the buffer needed to hold reply

Request: 81
Data Lenth: hh from above
Data: buffer of length hh

Upon completion the buffer holds hh (seems to be 1f every time since its the same data per track) bytes of data. The last byte holds a hex value representing the bitrate

Known Values

  1. 00 - ATRAC
  2. 03 - ATRAC3


Get Track Bitrate

Request: 80
Data Length: 13
Data: 00 18 06 02 20 10 01 00 tt 30 80 07 00 ff 00 00 00 00 00
tt is the track number.

Request: 01
Data Length: 04
Data: buffer of length 4

Upon completion buffer is filled in for you as 01 81 hh 00 where hh is the length of the buffer needed to hold reply

Request: 81
Data Lenth: hh from above
Data: buffer of length hh

Upon completion the buffer holds hh (seems to be 1f every time since its the same data per track) bytes of data. The second to last byte holds a hex value representing the bitrate

Known Values

  1. 90 - Stereo
  2. 92 - LP2


Header layout

The way Sony implemented groups is interesting, its a text string stored with the disc name.

So if you had a MD with the Title GroovyMix and 2 groups Thumpen and Bumpen it could look like this:
0;GroovyMix//1-5;Thumpen//6-8;Bumpen// Where 1-5 and 6-8 are the NON zero based track numbers that the group contains. I ephasize non because the protocol refers to all track numbers in a zero based manner, making information tracking interesting

linux-minidisc-0.9.13/libnetmd/documentation/protocol2.txt000066400000000000000000000032711226247751500237110ustar00rootroot00000000000000This document is more a dumping ground for the command block format I think the protocol uses. To see examples of the command block format see protocol.txt and vpl-px21.pdf all numbers are in hex if i'm referencing a hex number in terms of a decimal number i will give the hex number fist and the decimal number second surounded by () the term char that I use comes from the C datatype which can hold one hex code (00-ff) IMPORTANT! -- usb_control_msg from libusb takes the direction as a part of requesttype this would normally be 0x00 for out and 0x80 for in -- Sony thinks otherwise, its 0xc1 for in and 0x41 for out. (directions from the perspective of the device, in means I'm taking input from the NetMD) //-- standard request (00/09) - 00 seems to come from the host 09 from the device, start of every binary data chunk. 18 - Peripheral index - in this case the NetMD(18) or 81 which is used for a generic reply code 06/07/43 - Read/write/move - All infomational commands seem to use 06 while data changing commands use 07 - actual track movement is done w/ 43 02 20 18- these 3 chars appear in everything except when 20 18 is replaced with 10 10 02 20 10- Track time, codec and bitrate all use this, track info vs track data? (01/02) - 01 seems to deal with Disc info/Group info while 02 seems to be track info 00 xx - track number(zero based track 1 is 00) 30 00 0a/01 - appear in all disc or track based commands and replies 00 (50/ff) - 50 appears in Set(07 style) commands and ff in get(06 style) commands 00 00 0x - where x is buffer length for set functions //-- odd man out - 4 char reply from device for buffer size needed to get data 01 is used in the buffer size report 81 00 linux-minidisc-0.9.13/libnetmd/error.c000066400000000000000000000036241226247751500176530ustar00rootroot00000000000000/* * error.c * * This file is part of libnetmd, a library for accessing Sony NetMD devices. * * Copyright (C) 2011 Alexander Sulfrian * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include "error.h" struct error_description { netmd_error error; const char* const description; }; static struct error_description const descriptions[] = { {NETMD_NO_ERROR, "No error"}, {NETMD_NOT_IMPLEMENTED, "Not implemented"}, {NETMD_USB_OPEN_ERROR, "Error while opening the USB device"}, {NETMD_USB_ERROR, "Generic USB error"}, {NETMD_RESPONSE_TO_SHORT, "Response from device is shorter than expected."}, {NETMD_RESPONSE_NOT_EXPECTED, "Response from device does not match with the expected result."}, {NETMD_DES_ERROR, "Error during des caluclation."} }; static char const unknown_error[] = "Unknown Error"; const char* netmd_strerror(netmd_error error) { unsigned int i = 0; unsigned int elements; /* calculate the number of elements in the array */ elements = sizeof(descriptions) / sizeof(*descriptions); for (i = 0; i < elements; i++) { if (descriptions[i].error == error) { return descriptions[i].description; } } return unknown_error; } linux-minidisc-0.9.13/libnetmd/error.h000066400000000000000000000015201226247751500176510ustar00rootroot00000000000000#ifndef LIBNETMD_ERROR_H #define LIBNETMD_ERROR_H /** Enum with possible error codes the netmd_* functions could return. @see netmd_strerror */ typedef enum { NETMD_NO_ERROR = 0, NETMD_NOT_IMPLEMENTED, NETMD_USB_OPEN_ERROR, NETMD_USB_ERROR, NETMD_ERROR, NETMD_RESPONSE_TO_SHORT, NETMD_RESPONSE_NOT_EXPECTED, NETMD_COMMAND_FAILED_NO_RESPONSE, NETMD_COMMAND_FAILED_NOT_IMPLEMENTED, NETMD_COMMAND_FAILED_REJECTED, NETMD_COMMAND_FAILED_UNKNOWN_ERROR, NETMD_DES_ERROR } netmd_error; /** Function that could be used to get a string describing the given error number. @param error Error number to get the description for. @return Pointer to static char buffer to the error description. (Should not be freed.) */ const char* netmd_strerror(netmd_error error); #endif linux-minidisc-0.9.13/libnetmd/hotplug-netmd000066400000000000000000000007521226247751500210670ustar00rootroot00000000000000#!/bin/bash # hack: wait 1 second to improve chance that /proc/bus/usb file is present during add sleep 1 # handle add event if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ] then logger -t netmd NetMD plugged in at $DEVICE chown root.usb $DEVICE chmod ug+w $DEVICE # create symbolic link to catch remove event mkdir -p `dirname $REMOVER` ln -s $0 $REMOVER fi # handle remove event if [ "${ACTION}" = "remove" ] then logger -t netmd NetMD unplugged from $DEVICE fi linux-minidisc-0.9.13/libnetmd/libnetmd.c000066400000000000000000001031331226247751500203140ustar00rootroot00000000000000/* * libnetmd.c * * This file is part of libnetmd, a library for accessing Sony NetMD devices. * * Copyright (C) 2002, 2003 Marc Britten * Copyright (C) 2011 Alexander Sulfrian * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include #include "libnetmd.h" #include "utils.h" /*! list of known codecs (mapped to protocol ID) that can be used in NetMD devices */ /*! Bertrik: the original interpretation of these numbers as codecs appears incorrect. These values look like track protection values instead */ struct netmd_pair const trprot_settings[] = { {0x00, "UnPROT"}, {0x03, "TrPROT"}, {0, 0} /* terminating pair */ }; /*! list of known bitrates (mapped to protocol ID) that can be used in NetMD devices */ struct netmd_pair const bitrates[] = { {NETMD_ENCODING_SP, "Stereo"}, {NETMD_ENCODING_LP2, "LP2"}, {NETMD_ENCODING_LP4, "LP4"}, {0, 0} /* terminating pair */ }; struct netmd_pair const unknown_pair = {0x00, "UNKNOWN"}; struct netmd_pair const* find_pair(int hex, struct netmd_pair const* array) { int i = 0; for(; array[i].name != NULL; i++) { if(array[i].hex == hex) return &array[i]; } return &unknown_pair; } static void waitforsync(libusb_device_handle* dev) { unsigned char syncmsg[4]; fprintf(stderr,"Waiting for Sync: \n"); do { libusb_control_transfer(dev, 0xc1, 0x01, 0, 0, syncmsg, 0x04, 5000); } while (memcmp(syncmsg,"\0\0\0\0",4)!=0); } static unsigned char* sendcommand(netmd_dev_handle* devh, unsigned char* str, const size_t len, unsigned char* response, int rlen) { int i, ret, size = 0; static unsigned char buf[256]; ret = netmd_exch_message(devh, str, len, buf); if (ret < 0) { fprintf(stderr, "bad ret code, returning early\n"); return NULL; } /* Calculate difference to expected response */ if (response != NULL) { int c=0; for (i=0; i < min(rlen, size); i++) { if (response[i] != buf[i]) { c++; } } fprintf(stderr, "Differ: %d\n",c); } return buf; } static int request_disc_title(netmd_dev_handle* dev, char* buffer, size_t size) { int ret = -1; size_t title_size = 0; unsigned char title_request[] = {0x00, 0x18, 0x06, 0x02, 0x20, 0x18, 0x01, 0x00, 0x00, 0x30, 0x00, 0xa, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}; unsigned char title[255]; ret = netmd_exch_message(dev, title_request, 0x13, title); if(ret < 0) { fprintf(stderr, "request_disc_title: bad ret code, returning early\n"); return 0; } title_size = (size_t)ret; if(title_size == 0 || title_size == 0x13) return -1; /* bail early somethings wrong */ if((title_size - 25) >= size) { printf("request_disc_title: title too large for buffer\n"); } else { memset(buffer, 0, size); memcpy(buffer, (title + 25), title_size - 25); buffer[title_size - 25] = 0; } return (int)title_size - 25; } int netmd_request_track_time(netmd_dev_handle* dev, const uint16_t track, struct netmd_track* buffer) { int ret = 0; int size = 0; unsigned char request[] = {0x00, 0x18, 0x06, 0x02, 0x20, 0x10, 0x01, 0x00, 0x01, 0x30, 0x00, 0x01, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}; unsigned char time_request[255]; unsigned char *buf; buf = request + 7; netmd_copy_word_to_buffer(&buf, track, 0); ret = netmd_exch_message(dev, request, 0x13, time_request); if(ret < 0) { fprintf(stderr, "bad ret code, returning early\n"); return 0; } size = ret; buffer->minute = bcd_to_proper(time_request + 28, 1) & 0xff; buffer->second = bcd_to_proper(time_request + 29, 1) & 0xff; buffer->tenth = bcd_to_proper(time_request + 30, 1) & 0xff; buffer->track = track; return 1; } int netmd_set_title(netmd_dev_handle* dev, const uint16_t track, const char* const buffer) { int ret = 1; unsigned char *title_request = NULL; unsigned char title_header[] = {0x00, 0x18, 0x07, 0x02, 0x20, 0x18, 0x02, 0x00, 0x00, 0x30, 0x00, 0x0a, 0x00, 0x50, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0d}; unsigned char reply[255]; unsigned char *buf; size_t size; int oldsize; /* the title update command wants to now how many bytes to replace */ oldsize = netmd_request_title(dev, track, reply, sizeof reply); if(oldsize == -1) oldsize = 0; /* Reading failed -> no title at all, replace 0 bytes */ size = strlen(buffer); title_request = malloc(sizeof(char) * (0x15 + size)); memcpy(title_request, title_header, 0x15); memcpy((title_request + 0x15), buffer, size); buf = title_request + 7; netmd_copy_word_to_buffer(&buf, track, 0); title_request[16] = size & 0xff; title_request[20] = oldsize & 0xff; ret = netmd_exch_message(dev, title_request, 0x15 + size, reply); if(ret < 0) { fprintf(stderr, "bad ret code, returning early\n"); return 0; } free(title_request); return 1; } int netmd_move_track(netmd_dev_handle* dev, const uint16_t start, const uint16_t finish) { int ret = 0; unsigned char request[] = {0x00, 0x18, 0x43, 0xff, 0x00, 0x00, 0x20, 0x10, 0x01, 0x00, 0x04, 0x20, 0x10, 0x01, 0x00, 0x03}; unsigned char reply[255]; unsigned char *buf; buf = request + 9; netmd_copy_word_to_buffer(&buf, start, 0); buf = request + 14; netmd_copy_word_to_buffer(&buf, finish, 0); ret = netmd_exch_message(dev, request, 16, reply); if(ret < 0) { fprintf(stderr, "bad ret code, returning early\n"); return 0; } return 1; } static unsigned int get_group_count(netmd_dev_handle* devh) { char title[256]; int title_length; char *group; char *delim; unsigned int group_count = 1; title_length = request_disc_title(devh, title, 256); group = title; delim = strstr(group, "//"); while (delim < (title + title_length)) { if (delim != NULL) { /* if delimiter was found */ delim[0] = '\0'; } if (strlen(group) > 0) { if (atoi(group) > 0 || group[0] == ';') { group_count++; } } if (NULL == delim) { /* finish if delimiter was not found the last time */ break; } if (delim+2 > title+title_length) { /* finish if delimiter was at end of title */ break; } group = delim + 2; delim = strstr(group, "//"); } return group_count; } int netmd_set_group_title(netmd_dev_handle* dev, minidisc* md, unsigned int group, char* title) { size_t size = strlen(title); md->groups[group].name = realloc(md->groups[group].name, size + 1); if(md->groups[group].name != 0) strcpy(md->groups[group].name, title); else return 0; netmd_write_disc_header(dev, md); return 1; } static void set_group_data(minidisc* md, const int group, const char* const name, const uint16_t start, const uint16_t finish) { md->groups[group].name = strdup(name); md->groups[group].start = start; md->groups[group].finish = finish; return; } /* Sonys code is utter bile. So far we've encountered the following first segments in the disc title: * * 0[-n];// - titled disc. * <title>// - titled disc * 0[-n];// - untitled disc * n{n>0};<group>// - untitled disc, group with one track * n{n>0}-n2{n2>n>0};group// - untitled disc, group with multiple tracks * ;group// - untitled disc, group with no tracks * */ int netmd_initialize_disc_info(netmd_dev_handle* devh, minidisc* md) { int disc_size = 0; char disc[256]; md->group_count = get_group_count(devh); /* You always have at least one group, the disc title */ if(md->group_count == 0) md->group_count++; md->groups = malloc(sizeof(struct netmd_group) * md->group_count); memset(md->groups, 0, sizeof(struct netmd_group) * md->group_count); disc_size = request_disc_title(devh, disc, 256); printf("Raw title: %s \n", disc); if(disc_size > 0) { md->header_length = (size_t)disc_size; netmd_parse_disc_title(md, disc, md->header_length); } if (NULL == md->groups[0].name) { /* set untitled disc title */ set_group_data(md, 0, "<Untitled>", 0, 0); } return disc_size; } void netmd_parse_disc_title(minidisc* md, char* title, size_t title_length) { char *group; char *delim; int group_count = 1; group = title; delim = strstr(group, "//"); while (delim < (title + title_length)) { if (delim != NULL) { /* if delimiter was found */ delim[0] = '\0'; } netmd_parse_group(md, group, &group_count); if (NULL == delim) { /* finish if delimiter was not found the last time */ break; } group = delim + 2; if (group > (title + title_length)) { /* end of title */ break; } delim = strstr(group, "//"); } } void netmd_parse_group(minidisc* md, char* group, int* group_count) { char *group_name; group_name = strchr(group, ';'); if (NULL == group_name) { if (strlen(group) > 0) { /* disc title */ set_group_data(md, 0, group, 0, 0); } } else { group_name[0] = '\0'; group_name++; if (strlen(group_name) > 0) { if (0 == strlen(group)) { set_group_data(md, *group_count, group_name, 0, 0); (*group_count)++; } else { netmd_parse_trackinformation(md, group_name, group_count, group); } } } } void netmd_parse_trackinformation(minidisc* md, char* group_name, int* group_count, char* tracks) { char *track_last; uint16_t start, finish; start = strtoul(tracks, (char **) NULL, 10) & 0xffffU; if (start == 0) { /* disc title */ set_group_data(md, 0, group_name, 0, 0); } else { track_last = strchr(tracks, '-'); if (NULL == track_last) { finish = start; } else { track_last[0] = '\0'; track_last++; finish = strtoul(track_last, (char **) NULL, 10) & 0xffffU; } set_group_data(md, *group_count, group_name, start, finish); (*group_count)++; } } void print_groups(minidisc *md) { unsigned int i; for(i = 0; i < md->group_count; i++) { printf("Group %i: %s - %i - %i\n", i, md->groups[i].name, md->groups[i].start, md->groups[i].finish); } printf("\n"); } int netmd_create_group(netmd_dev_handle* dev, minidisc* md, char* name) { unsigned int new_index; new_index = md->group_count; md->group_count++; md->groups = realloc(md->groups, sizeof(struct netmd_group) * (md->group_count + 1)); md->groups[new_index].name = strdup(name); md->groups[new_index].start = 0; md->groups[new_index].finish = 0; netmd_write_disc_header(dev, md); return 0; } int netmd_set_disc_title(netmd_dev_handle* dev, char* title, size_t title_length) { unsigned char *request, *p; unsigned char write_req[] = {0x00, 0x18, 0x07, 0x02, 0x20, 0x18, 0x01, 0x00, 0x00, 0x30, 0x00, 0x0a, 0x00, 0x50, 0x00, 0x00}; unsigned char reply[256]; int result; int oldsize; /* the title update command wants to now how many bytes to replace */ oldsize = request_disc_title(dev, reply, sizeof reply); if(oldsize == -1) oldsize = 0; /* Reading failed -> no title at all, replace 0 bytes */ request = malloc(21 + title_length); memset(request, 0, 21 + title_length); memcpy(request, write_req, 16); request[16] = title_length & 0xff; request[20] = oldsize & 0xff; p = request + 21; memcpy(p, title, title_length); result = netmd_exch_message(dev, request, 0x15 + title_length, reply); return result; } /* move track, then manipulate title string */ int netmd_put_track_in_group(netmd_dev_handle* dev, minidisc *md, const uint16_t track, const unsigned int group) { unsigned int i = 0; unsigned int j = 0; int found = 0; printf("netmd_put_track_in_group(dev, %i, %i)\nGroup Count %i\n", track, group, md->group_count); if (group >= md->group_count) { return 0; } print_groups(md); /* remove track from old group */ for(i = 0; i < md->group_count; i++) { if(i == 0) { /* if track is before first real group */ if(md->groups[i+1].start == 0) { /* nothing in group */ found = 1; } if(((track + 1U) & 0xffffU) < md->groups[i+1].start) { found = 1; for(j = i+1; j < md->group_count; j++) { md->groups[j].start--; if(md->groups[j].finish != 0) md->groups[j].finish--; } } } else if(md->groups[i].start < track && md->groups[i].finish > track) { found = 1; /* decrement start/finish for all following groups */ for(j = i+1; j < md->group_count; j++) { md->groups[j].start--; if(md->groups[j].finish != 0) md->groups[j].finish--; } } } /* if track is in between groups */ if(!found) { for(i = 2; i < md->group_count; i++) { if(md->groups[i].start > track && md->groups[i-1].finish < track) { found = 1; /* decrement start/finish for all groups including and after this one */ for(j = i; j < md->group_count; j++) { md->groups[j].start--; if(md->groups[j].finish != 0) md->groups[j].finish--; } } } } print_groups(md); /* insert track into group range */ if(md->groups[group].finish != 0) { md->groups[group].finish++; } else { if(md->groups[group].start == 0) md->groups[group].start = (track + 1U) & 0xffffU; else md->groups[group].finish = (md->groups[group].start + 1U) & 0xffffU; } /* if not last group */ if((group + 1) < md->group_count) { unsigned int j = 0; for(j = group + 1; j < md->group_count; j++) { /* if group is NOT empty */ if(md->groups[j].start != 0 || md->groups[j].finish != 0) { md->groups[j].start++; if(md->groups[j].finish != 0) { md->groups[j].finish++; } } } } /* what does it look like now? */ print_groups(md); if(md->groups[group].finish != 0) { netmd_move_track(dev, track, (md->groups[group].finish - 1U) & 0xffffU); } else { if(md->groups[group].start != 0) netmd_move_track(dev, track, (md->groups[group].start - 1U) & 0xffffU); else netmd_move_track(dev, track, md->groups[group].start & 0xffffU); } return netmd_write_disc_header(dev, md); } int netmd_move_group(netmd_dev_handle* dev, minidisc* md, const uint16_t track, const unsigned int group) { uint16_t index = 0; unsigned int i = 0; uint16_t gs = 0; struct netmd_group store1; struct netmd_group *p, *p2; uint16_t gt = md->groups[group].start; uint16_t finish = (((unsigned int)md->groups[group].finish - md->groups[group].start) + track) & 0xffffU; p = p2 = 0; /* empty groups can't be in front */ if(gt == 0) return -1; /* loop, moving tracks to new positions */ for(index = track; index <= finish; index++, gt++) { printf("Moving track %i to %i\n", (gt - 1U) & 0xffffU, index & 0xffffU); netmd_move_track(dev, (gt - 1U) & 0xffffU, index & 0xffffU); } md->groups[group].start = (track + 1U) & 0xffffU; md->groups[group].finish = index; /* create a copy of groups */ p = malloc(sizeof(struct netmd_group) * md->group_count); for(index = 0; index < md->group_count; index++) { p[index].name = malloc(strlen(md->groups[index].name) + 1); strcpy(p[index].name, md->groups[index].name); p[index].start = md->groups[index].start; p[index].finish = md->groups[index].finish; } store1 = p[group]; gs = ((unsigned int)store1.finish - store1.start + 1) & 0xffffU; /* how many tracks got moved? */ /* find group to bump */ if(track < md->groups[group].start) { for(index = 0; index < md->group_count; index++) { if(md->groups[index].start > track) { for(i = group - 1; i >= index; i--) { /* all tracks get moved gs spots */ p[i].start = ((unsigned int)p[i].start + gs) & 0xffffU; if(p[i].finish != 0) p[i].finish = ((unsigned int)p[1].finish + gs) & 0xffffU; p[i + 1] = p[i]; /* bump group down the list */ } p[index] = store1; break; } else { if((group + 1) < md->group_count) { for(i = group + 1; i < md->group_count; i++) { /* all tracks get moved gs spots */ p[i].start = ((unsigned int)p[i].start - gs) & 0xffffU;; if(p[i].finish != 0) p[i].finish = ((unsigned int)p[1].finish - gs) & 0xffffU; p[i - 1] = p[i]; /* bump group down the list */ } p[index] = store1; break; } } } } /* free all memory, then make our copy the real info */ netmd_clean_disc_info(md); md->groups = p; netmd_write_disc_header(dev, md); return 0; } int netmd_delete_group(netmd_dev_handle* dev, minidisc* md, const unsigned int group) { unsigned int index = 0; struct netmd_group *p; /* check if requested group exists */ if(group > md->group_count) return -1; /* create a copy of groups below requested group */ p = malloc(sizeof(struct netmd_group) * (md->group_count - 1)); for(index = 0; index < group; index++) { p[index].name = md->groups[index].name; p[index].start = md->groups[index].start; p[index].finish = md->groups[index].finish; } /* copy groups above requested group */ for(; index < (md->group_count - 1); index++) { p[index].name = md->groups[index+1].name; p[index].start = md->groups[index+1].start; p[index].finish = md->groups[index+1].finish; } /* free memory, then make our copy the real info */ free(md->groups); md->groups = p; /* one less group now */ md->group_count--; netmd_write_disc_header(dev, md); return 0; } size_t netmd_calculate_number_length(const unsigned int num) { if (num >= 100) { return 3; } if (num >= 10) { return 2; } return 1; } size_t netmd_calculate_disc_header_length(minidisc* md) { size_t header_size; unsigned int i; header_size = 0; if (md->groups[0].start == 0) { /* '\0' for disc title */ header_size++; } for(i = 0; i < md->group_count; i++) { if(md->groups[i].start > 0) { header_size += netmd_calculate_number_length(md->groups[i].start); if(md->groups[i].finish != 0) { /* '-' */ header_size++; header_size += netmd_calculate_number_length(md->groups[i].finish); } } /* ';' '//' */ header_size += 3; header_size += strlen(md->groups[i].name); } /* '\0' */ header_size++; return header_size; } size_t netmd_calculate_remaining(char** position, size_t remaining, size_t written) { if (remaining > written) { (*position) += written; remaining -= written; } else { (*position) += remaining; remaining = 0; } return remaining; } char* netmd_generate_disc_header(minidisc* md, char* header, size_t header_length) { unsigned int i; size_t remaining, written; char* position; int result; position = header; remaining = header_length - 1; if (md->groups[0].start == 0) { strncat(position, "0", remaining); written = strlen(position); remaining = netmd_calculate_remaining(&position, remaining, written); } for(i = 0; i < md->group_count; i++) { if(md->groups[i].start > 0) { result = snprintf(position, remaining, "%d", md->groups[i].start); if (result > 0) { written = (size_t)result; remaining = netmd_calculate_remaining(&position, remaining, written); if(md->groups[i].finish != 0) { result = snprintf(position, remaining, "-%d", md->groups[i].finish); if (result > 0) { written = (size_t)result; remaining = netmd_calculate_remaining(&position, remaining, written); } } } } result = snprintf(position, remaining, ";%s//", md->groups[i].name); if (result > 0) { written = (size_t)result; remaining = netmd_calculate_remaining(&position, remaining, written); } } position[0] = '\0'; return header; } int netmd_write_disc_header(netmd_dev_handle* devh, minidisc* md) { size_t header_size; size_t request_size; char* header = 0; unsigned char* request = 0; unsigned char write_req[] = {0x00, 0x18, 0x07, 0x02, 0x20, 0x18, 0x01, 0x00, 0x00, 0x30, 0x00, 0x0a, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; unsigned char reply[255]; int ret; header_size = netmd_calculate_disc_header_length(md); header = malloc(sizeof(char) * header_size); memset(header, 0, header_size); netmd_generate_disc_header(md, header, header_size); request_size = header_size + sizeof(write_req); request = malloc(request_size); memset(request, 0, request_size); memcpy(request, write_req, sizeof(write_req)); request[16] = (header_size - 1) & 0xff; /* new size - null */ request[20] = md->header_length & 0xff; /* old size */ memcpy(request + sizeof(write_req), header, header_size); header[header_size - 1] = '\0'; ret = netmd_exch_message(devh, request, request_size, reply); free(request); return ret; } int netmd_write_track(netmd_dev_handle* devh, char* szFile) { int ret = 0; int transferred = 0; int fd = open(szFile, O_RDONLY); /* File descriptor to omg file */ unsigned char *data = malloc(4096); /* Buffer for reading the omg file */ unsigned char *p = NULL; /* Pointer to index into data */ uint16_t track_number='\0'; /* Will store the track number of the recorded song */ /* Some unknown command being send before titling */ unsigned char begintitle[] = {0x00, 0x18, 0x08, 0x10, 0x18, 0x02, 0x03, 0x00}; /* Some unknown command being send after titling */ unsigned char endrecord[] = {0x00, 0x18, 0x08, 0x10, 0x18, 0x02, 0x00, 0x00}; /* Command to finish toc flashing */ unsigned char fintoc[] = {0x00, 0x18, 0x00, 0x08, 0x00, 0x46, 0xf0, 0x03, 0x01, 0x03, 0x48, 0xff, 0x00, 0x10, 0x01, 0x00, 0x25, 0x8f, 0xbf, 0x09, 0xa2, 0x2f, 0x35, 0xa3, 0xdd}; /* Record command */ unsigned char movetoendstartrecord[] = {0x00, 0x18, 0x00, 0x08, 0x00, 0x46, 0xf0, 0x03, 0x01, 0x03, 0x28, 0xff, 0x00, 0x01, 0x00, 0x10, 0x01, 0xff, 0xff, 0x00, 0x94, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x04, 0x98}; /* The expected response from the record command. */ unsigned char movetoendresp[] = {0x0f, 0x18, 0x00, 0x08, 0x00, 0x46, 0xf0, 0x03, 0x01, 0x03, 0x28, 0x00, 0x00, 0x01, 0x00, 0x10, 0x01, 0x00, 0x11, 0x00, 0x94, 0x02, 0x00, 0x00, 0x43, 0x8c, 0x00, 0x32, 0xbc, 0x50}; /* Header to be inserted at every 0x3F10 bytes */ unsigned char header[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0xd4, 0x4b, 0xdc, 0xaa, 0xef, 0x68, 0x22, 0xe2}; /* char debug[] = {0x4c, 0x63, 0xa0, 0x20, 0x82, 0xae, 0xab, 0xa1}; */ unsigned char size_request[4]; size_t data_size_i; /* the size of the data part, later it will be used to point out the last byte in file */ unsigned int size; unsigned char* buf=NULL; /* A buffer for recieving file info */ libusb_device_handle *dev; dev = (libusb_device_handle *)devh; if(fd < 0) return fd; if(!data) return ENOMEM; /********** Get the size of file ***********/ lseek(fd, 0x56, SEEK_SET); /* Read to data size */ read(fd,data,4); data_size_i = (size_t)(data[3] + (data[2] << 8) + (data[1] << 16) + (data[0] << 24)); fprintf(stderr,"Size of data: %d\n",data_size_i); size = (data_size_i/0x3f18)*8+data_size_i+8; /* plus number of data headers */ fprintf(stderr,"Size of data w/ headers: %d\n",size); /********** Fill in information in start record command and send ***********/ /* not sure if size is 3 of 4 bytes in rec command... */ movetoendstartrecord[27]=(size >> 16) & 255; movetoendstartrecord[28]=(size >> 8) & 255; movetoendstartrecord[29]=size & 255; buf = (unsigned char*)sendcommand(devh, movetoendstartrecord, 30, movetoendresp, 0x1e); track_number = buf[0x12] & 0xff; /********** Prepare to send data ***********/ lseek(fd, 90, SEEK_SET); /* seek to 8 bytes before leading 8 00's */ data_size_i += 90; /* data_size_i will now contain position of last byte to be send */ waitforsync(dev); /* Wait for 00 00 00 00 from unit.. */ /********** Send data ***********/ while(ret >= 0) { size_t file_pos=0; /* Position in file */ size_t bytes_to_send; /* The number of bytes that needs to be send in this round */ size_t __bytes_left; /* How many bytes are left in the file */ size_t __chunk_size; /* How many bytes are left in the 0x1000 chunk to send */ size_t __distance_to_header; /* How far till the next header insert */ file_pos = (size_t)lseek(fd,0,SEEK_CUR); /* Gets the position in file, might be a nicer way of doing this */ fprintf(stderr,"pos: %d/%d; remain data: %d\n", file_pos, data_size_i, data_size_i-file_pos); if (file_pos >= data_size_i) { fprintf(stderr,"Done transferring.\n"); free(data); break; } __bytes_left = data_size_i - file_pos; __chunk_size = 0x1000; if (__bytes_left < 0x1000) { __chunk_size = __bytes_left; } __distance_to_header = (file_pos-0x5a) % 0x3f10; if (__distance_to_header !=0) __distance_to_header = 0x3f10 - __distance_to_header; bytes_to_send = __chunk_size; fprintf(stderr,"Chunksize: %d\n",__chunk_size); fprintf(stderr,"distance_to_header: %d\n",__distance_to_header); fprintf(stderr,"Bytes left: %d\n",__bytes_left); if (__distance_to_header <= 0x1000) { /* every 0x3f10 the header should be inserted, with an appropiate key.*/ fprintf(stderr,"Inserting header\n"); if (__chunk_size<0x1000) { /* if there is room for header then make room for it.. */ __chunk_size += 0x10; /* Expand __chunk_size */ bytes_to_send = __chunk_size-0x08; /* Expand bytes_to_send */ } read(fd,data, __distance_to_header ); /* Errors checking should be added for read function */ __chunk_size -= __distance_to_header; /* Update chunk size */ p = data+__distance_to_header; /* Change p to point at the position header should be inserted */ memcpy(p,header,16); if (__bytes_left-__distance_to_header-0x10 < 0x3f00) { __bytes_left -= (__distance_to_header + 0x10); } else { __bytes_left = 0x3f00; } fprintf (stderr, "bytes left in chunk: %d\n",__bytes_left); p[6] = (__bytes_left >> 8) & 0xff; /* Inserts the higher 8 bytes of the length */ p[7] = __bytes_left & 0xff; /* Inserts the lower 8 bytes of the length */ __chunk_size -= 0x10; /* Update chunk size (for inserted header */ p += 0x10; /* p should now point at the beginning of the next data segment */ lseek(fd,8,SEEK_CUR); /* Skip the key value in omg file.. Should probably be used for generating the header */ read(fd,p, __chunk_size); /* Error checking should be added for read function */ } else { if(0 == read(fd, data, __chunk_size)) { /* read in next chunk */ free(data); break; } } netmd_log(NETMD_LOG_DEBUG, "Sending %d bytes to md\n", bytes_to_send); netmd_log_hex(NETMD_LOG_DEBUG, data, bytes_to_send); ret = libusb_bulk_transfer(dev, 0x02, data, (int)bytes_to_send, &transferred, 5000); } /* End while */ if (ret<0) { free(data); return ret; } /******** End transfer wait for unit ready ********/ fprintf(stderr,"Waiting for Done:\n"); do { libusb_control_transfer(dev, 0xc1, 0x01, 0, 0, size_request, 0x04, 5000); } while (memcmp(size_request,"\0\0\0\0",4)==0); netmd_log(NETMD_LOG_DEBUG, "Recieving response: \n"); netmd_log_hex(NETMD_LOG_DEBUG, size_request, 4); size = size_request[2]; if (size<1) { fprintf(stderr, "Invalid size\n"); return -1; } buf = malloc(size); libusb_control_transfer(dev, 0xc1, 0x81, 0, 0, buf, (int)size, 500); netmd_log_hex(NETMD_LOG_DEBUG, buf, size); free(buf); /******** Title the transfered song *******/ buf = (unsigned char*)sendcommand(devh, begintitle, 8, NULL, 0); fprintf(stderr,"Renaming track %d to test\n",track_number); netmd_set_title(devh, track_number, "test"); buf = (unsigned char*)sendcommand(devh, endrecord, 8, NULL, 0); /********* End TOC Edit **********/ ret = libusb_control_transfer(dev, 0x41, 0x80, 0, 0, fintoc, 0x19, 800); fprintf(stderr,"Waiting for Done: \n"); do { libusb_control_transfer(dev, 0xc1, 0x01, 0, 0, size_request, 0x04, 5000); } while (memcmp(size_request,"\0\0\0\0",4)==0); return ret; } int netmd_delete_track(netmd_dev_handle* dev, const uint16_t track) { int ret = 0; unsigned char request[] = {0x00, 0x18, 0x40, 0xff, 0x01, 0x00, 0x20, 0x10, 0x01, 0x00, 0x00}; unsigned char reply[255]; unsigned char *buf; buf = request + 9; netmd_copy_word_to_buffer(&buf, track, 0); ret = netmd_exch_message(dev, request, 11, reply); return ret; } void netmd_clean_disc_info(minidisc *md) { unsigned int i; for(i = 0; i < md->group_count; i++) { free(md->groups[i].name); md->groups[i].name = NULL; } free(md->groups); md->groups = NULL; } int netmd_cache_toc(netmd_dev_handle* dev) { int ret = 0; unsigned char request[] = {0x00, 0x18, 0x08, 0x10, 0x18, 0x02, 0x03, 0x00}; unsigned char reply[255]; ret = netmd_exch_message(dev, request, sizeof(request), reply); return ret; } int netmd_sync_toc(netmd_dev_handle* dev) { int ret = 0; unsigned char request[] = {0x00, 0x18, 0x08, 0x10, 0x18, 0x02, 0x00, 0x00}; unsigned char reply[255]; ret = netmd_exch_message(dev, request, sizeof(request), reply); return ret; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/libnetmd.h�����������������������������������������������������������0000664�0000000�0000000�00000015643�12262477515�0020331�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * libnetmd.h * * This file is part of libnetmd, a library for accessing Sony NetMD devices. * * Copyright (C) 2002, 2003 Marc Britten * Copyright (C) 2011 Alexander Sulfrian * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <errno.h> #include <stdint.h> #include <libusb.h> #include "const.h" #include "error.h" #include "common.h" #include "playercontrol.h" #include "log.h" #include "secure.h" #include "netmd_dev.h" #include "trackinformation.h" /** Data about a group, start track, finish track and name. Used to generate disc header info. */ typedef struct netmd_group { uint16_t start; uint16_t finish; char* name; } netmd_group_t; /** Basic track data. */ struct netmd_track { int track; int minute; int second; int tenth; }; /** stores hex value from protocol and text value of name */ typedef struct netmd_pair { unsigned char hex; const char* const name; } netmd_pair_t; /** stores misc data for a minidisc */ typedef struct { size_t header_length; struct netmd_group *groups; unsigned int group_count; } minidisc; /** Global variable containing netmd_group data for each group. There will be enough for group_count total in the alloced memory */ extern struct netmd_group* groups; extern struct netmd_pair const trprot_settings[]; extern struct netmd_pair const bitrates[]; extern struct netmd_pair const unknown_pair; /** enum through an array of pairs looking for a specific hex code. @param hex hex code to find. @param pair array of pairs to look through. */ struct netmd_pair const* find_pair(int hex, struct netmd_pair const* pair); int netmd_request_track_time(netmd_dev_handle* dev, const uint16_t track, struct netmd_track* buffer); /** Sets title for the specified track. @param dev pointer to device returned by netmd_open @param track Zero based index of track your requesting. @param buffer buffer to hold the name. @return returns 0 for fail 1 for success. */ int netmd_set_title(netmd_dev_handle* dev, const uint16_t track, const char* const buffer); /** Sets title for the specified track. @param dev pointer to device returned by netmd_open @param md pointer to minidisc structure @param group Zero based index of group your renaming (zero is disc title). @param title buffer holding the name. @return returns 0 for fail 1 for success. */ int netmd_set_group_title(netmd_dev_handle* dev, minidisc* md, unsigned int group, char* title); /** Moves track around the disc. @param dev pointer to device returned by netmd_open @param start Zero based index of track to move @param finish Zero based track to make it @return 0 for fail 1 for success */ int netmd_move_track(netmd_dev_handle* dev, const uint16_t start, const uint16_t finish); /** sets up buffer containing group info. @param dev pointer to device returned by netmd_open @param md pointer to minidisc structure @return total size of disc header Group[0] is disc name. You need to make sure you call clean_disc_info before recalling */ int netmd_initialize_disc_info(netmd_dev_handle* dev, minidisc* md); void netmd_parse_disc_title(minidisc* md, char* title, size_t title_length); void netmd_parse_group(minidisc* md, char* group, int* group_count); void netmd_parse_trackinformation(minidisc* md, char* group_name, int* group_count, char* tracks); int netmd_create_group(netmd_dev_handle* dev, minidisc* md, char* name); int netmd_set_disc_title(netmd_dev_handle* dev, char* title, size_t title_length); /** Creates disc header out of groups and writes it to disc @param devh pointer to device returned by netmd_open @param md pointer to minidisc structure */ int netmd_write_disc_header(netmd_dev_handle* devh, minidisc *md); /** Moves track into group @param dev pointer to device returned by netmd_open @param md pointer to minidisc structure @param track Zero based track to add to group. @param group number of group (0 is title group). */ int netmd_put_track_in_group(netmd_dev_handle* dev, minidisc* md, const uint16_t track, const unsigned int group); /** Moves group around the disc. @param dev pointer to device returned by netmd_open @param md pointer to minidisc structure @param track Zero based track to make group start at. @param group number of group (0 is title group). */ int netmd_move_group(netmd_dev_handle* dev, minidisc* md, const uint16_t track, const unsigned int group); /** Deletes group from disc (but not the tracks in it) @param dev pointer to device returned by netmd_open @param md pointer to minidisc structure @param group Zero based track to delete */ int netmd_delete_group(netmd_dev_handle* dev, minidisc* md, const unsigned int group); int netmd_delete_track(netmd_dev_handle* dev, const uint16_t track); /** Writes atrac file to device @param dev pointer to device returned by netmd_open @param szFile Full path to file to write. @return < 0 on fail else 1 @bug doesnt work yet */ int netmd_write_track(netmd_dev_handle* dev, char* szFile); /** Cleans memory allocated for the name of each group, then cleans groups pointer @param md pointer to minidisc structure */ void netmd_clean_disc_info(minidisc* md); /** sets group data @param md @param group @param name @param start @param finish */ /* void set_group_data(minidisc* md, int group, char* name, int start, int finish);*/ /** Sends a command to the MD unit and compare the result with response unless response is NULL @param dev a handler to the usb device @param str the string that should be sent @param len length of the string @param response string of the expected response. NULL for no expectations. @param length of the expected response @return the response. NOTE: this has to be freed up after calling. */ /* char* sendcommand(netmd_dev_handle* dev, char* str, int len, char* response, int rlen);*/ /** Wait for syncronisation signal from minidisc @param dev a handler to the usb device */ /* void waitforsync(netmd_dev_handle* dev);*/ int netmd_cache_toc(netmd_dev_handle* dev); int netmd_sync_toc(netmd_dev_handle* dev); ���������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/libnetmd.pro���������������������������������������������������������0000664�0000000�0000000�00000000752�12262477515�0020675�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������TEMPLATE=lib TARGET =netmd CONFIG -= qt CONFIG += staticlib link_pkgconfig create_prl console debug_and_release_target DEFINES += G_DISABLE_DEPRECATED=1 PKGCONFIG += libusb-1.0 HEADERS += common.h const.h error.h libnetmd.h log.h netmd_dev.h playercontrol.h secure.h trackinformation.h utils.h \ libnetmd_extended.h SOURCES += common.c error.c libnetmd.c log.c netmd_dev.c playercontrol.c secure.c trackinformation.c utils.c LIBS += -lgcrypt mac:INCLUDEPATH += /opt/local/include ����������������������linux-minidisc-0.9.13/libnetmd/libnetmd_extended.h��������������������������������������������������0000664�0000000�0000000�00000003270�12262477515�0022202�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * include this header file to get access to additional libnetmd members */ #include "libnetmd.h" typedef struct { unsigned char content[255]; size_t length; size_t position; } netmd_response; /* * additional members from secure.c */ void netmd_send_secure_msg(netmd_dev_handle *dev, unsigned char cmd, unsigned char *data, size_t data_size); netmd_error netmd_recv_secure_msg(netmd_dev_handle *dev, unsigned char cmd, netmd_response *response, unsigned char expected_response_code); netmd_error netmd_secure_real_recv_track(netmd_dev_handle *dev, uint32_t length, FILE *file, size_t chunksize); void netmd_write_aea_header(char *name, uint32_t frames, unsigned char channel, FILE* f); void netmd_write_wav_header(unsigned char format, uint32_t bytes, FILE *f); /* * additional members from utils.c * XXX: do not include utils.h when using taglib, definition of min(a,b) is incomatible with definition of min(...) in taglib */ void netmd_check_response_bulk(netmd_response *response, const unsigned char* const expected, const size_t expected_length, netmd_error *error); void netmd_check_response_word(netmd_response *response, const uint16_t expected, netmd_error *error); void netmd_read_response_bulk(netmd_response *response, unsigned char* target, const size_t length, netmd_error *error); unsigned char *netmd_copy_word_to_buffer(unsigned char **buf, uint16_t value, int little_endian); unsigned char netmd_read(netmd_response *response); uint16_t netmd_read_word(netmd_response *response); uint32_t netmd_read_doubleword(netmd_response *response); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/log.c����������������������������������������������������������������0000664�0000000�0000000�00000004406�12262477515�0017302�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * log.c * * This file is part of libnetmd, a library for accessing Sony NetMD devices. * * Copyright (C) 2004 Bertrik Sikken * Copyright (C) 2011 Alexander Sulfrian * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include <stdio.h> #include <stdarg.h> #include "log.h" static netmd_loglevel trace_level = 0; void netmd_set_log_level(netmd_loglevel level) { trace_level = level; } void netmd_log_hex(netmd_loglevel level, const unsigned char* const buf, const size_t len) { size_t i; size_t j = 0; int breakpoint = 0; if (level > trace_level) { return; } for (i = 0; i < len; i++) { printf("%02x ", buf[i] & 0xff); breakpoint++; if(!((i + 1)%16) && i) { printf("\t\t"); for(j = ((i+1) - 16); j < ((i+1)/16) * 16; j++) { if(buf[j] < 30) printf("."); else printf("%c", buf[j]); } printf("\n"); breakpoint = 0; } } if(breakpoint == 16) { printf("\n"); return; } for(; breakpoint < 16; breakpoint++) { printf(" "); } printf("\t\t"); for(j = len - (len%16); j < len; j++) { if(buf[j] < 30) printf("."); else printf("%c", buf[j]); } printf("\n"); } void netmd_log(netmd_loglevel level, const char* const fmt, ...) { va_list arg; if (level > trace_level) { return; } va_start(arg, fmt); vprintf(fmt, arg); va_end(arg); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/log.h����������������������������������������������������������������0000664�0000000�0000000�00000002371�12262477515�0017306�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef LIBNETMD_TRACE_H #define LIBNETMD_TRACE_H /** log level */ typedef enum { /** Not a log level. Should only be used to filter all log messages so that no messages are displayed */ NETMD_LOG_NONE, /** fatal error message */ NETMD_LOG_ERROR, /** warning messages */ NETMD_LOG_WARNING, /** messages to display */ NETMD_LOG_DEBUG, /** Not a log level. Should only be used to display all messages. Should be the level with the highest value. */ NETMD_LOG_ALL } netmd_loglevel; /** Sets the global log level. @param level The maximal log level. All messages with a higher log level are filtered out and will not be displayed. */ void netmd_set_log_level(netmd_loglevel level); /** Shows a hexdump of binary data. @param level Log level of this message. @param data Pointer to binary data to display. @param len Length of the data. */ void netmd_log_hex(netmd_loglevel level, const unsigned char* const data, const size_t len); /** Printf like log function. @param level Log level of this message. @param fmt printf-like format string */ void netmd_log(netmd_loglevel level, const char* const fmt, ...); #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/minidisc.usermap�����������������������������������������������������0000664�0000000�0000000�00000002032�12262477515�0021543�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# usb module match_flags idVendor idProduct bcdDevice_lo bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info # Aiwa AM-NX9 minidisc 0x0003 0x054c 0x014c # Sony MZ-N1 minidisc 0x0003 0x054c 0x0075 # Sony LAM-1 minidisc 0x0003 0x054c 0x0080 # Sony MDS-JB980 minidisc 0x0003 0x054c 0x0081 # Sony MZ-N505 minidisc 0x0003 0x054c 0x0084 # Sony MZ-S1 minidisc 0x0003 0x054c 0x0085 # Sony MZ-N707 minidisc 0x0003 0x054c 0x0086 # Sony MZ-N10 minidisc 0x0003 0x054c 0x00c6 # Sony MZ-N910 minidisc 0x0003 0x054c 0x00c7 # Sony MZ-N710/N810 minidisc 0x0003 0x054c 0x00c8 # Sony MZ-N510/N610 minidisc 0x0003 0x054c 0x00c9 # Sony MZ-NE410 minidisc 0x0003 0x054c 0x00ca # Sony MZ-NE910 minidisc 0x0003 0x054c 0x00eb # Sony LAM-10 minidisc 0x0003 0x054c 0x0101 # Sharp IM-DR80 minidisc 0x0003 0x04dd 0x9014 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/netmd_dev.c����������������������������������������������������������0000664�0000000�0000000�00000011753�12262477515�0020471�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* netmd_dev.c * Copyright (C) 2004, Bertrik Sikken * Copyright (C) 2011, Adrian Glaubitz * * This file is part of libnetmd. * * libnetmd 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 2 of the License, or * (at your option) any later version. * * Libnetmd 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #include <string.h> #include <errno.h> #include <assert.h> #include <stdlib.h> #include "netmd_dev.h" #include "log.h" #include "const.h" static libusb_context *ctx = NULL; /*! list of known vendor/prod id's for NetMD devices */ static struct netmd_devices const known_devices[] = { {0x54c, 0x34}, /* Sony PCLK-XX */ {0x54c, 0x36}, /* Sony (unknown model) */ {0x54c, 0x75}, /* Sony MZ-N1 */ {0x54c, 0x7c}, /* Sony (unknown model) */ {0x54c, 0x80}, /* Sony LAM-1 */ {0x54c, 0x81}, /* Sony MDS-JE780/JB980 */ {0x54c, 0x84}, /* Sony MZ-N505 */ {0x54c, 0x85}, /* Sony MZ-S1 */ {0x54c, 0x86}, /* Sony MZ-N707 */ {0x54c, 0x8e}, /* Sony CMT-C7NT */ {0x54c, 0x97}, /* Sony PCGA-MDN1 */ {0x54c, 0xad}, /* Sony CMT-L7HD */ {0x54c, 0xc6}, /* Sony MZ-N10 */ {0x54c, 0xc7}, /* Sony MZ-N910 */ {0x54c, 0xc8}, /* Sony MZ-N710/NE810/NF810 */ {0x54c, 0xc9}, /* Sony MZ-N510/NF610 */ {0x54c, 0xca}, /* Sony MZ-NE410/DN430/NF520 */ {0x54c, 0xeb}, /* Sony MZ-NE810/NE910 */ {0x54c, 0xe7}, /* Sony CMT-M333NT/M373NT */ {0x54c, 0x101}, /* Sony LAM-10 */ {0x54c, 0x113}, /* Aiwa AM-NX1 */ {0x54c, 0x14c}, /* Aiwa AM-NX9 */ {0x54c, 0x17e}, /* Sony MZ-NH1 */ {0x54c, 0x180}, /* Sony MZ-NH3D */ {0x54c, 0x182}, /* Sony MZ-NH900 */ {0x54c, 0x184}, /* Sony MZ-NH700/800 */ {0x54c, 0x186}, /* Sony MZ-NH600/600D */ {0x54c, 0x188}, /* Sony MZ-N920 */ {0x54c, 0x18a}, /* Sony LAM-3 */ {0x54c, 0x1e9}, /* Sony MZ-DH10P */ {0x54c, 0x219}, /* Sony MZ-RH10 */ {0x54c, 0x21b}, /* Sony MZ-RH910 */ {0x54c, 0x21d}, /* Sony CMT-AH10 */ {0x54c, 0x22c}, /* Sony CMT-AH10 */ {0x54c, 0x23c}, /* Sony DS-HMD1 */ {0x54c, 0x286}, /* Sony MZ-RH1 */ {0x4dd, 0x7202}, /* Sharp IM-MT880H/MT899H */ {0x4dd, 0x9013}, /* Sharp IM-DR400/DR410 */ {0x4dd, 0x9014}, /* Sharp IM-DR80/DR420/DR580 and Kenwood DMC-S9NET */ {0, 0} /* terminating pair */ }; netmd_error netmd_init(netmd_device **device_list) { int count = 0; ssize_t usb_device_count; ssize_t i = 0; netmd_device *new_device; libusb_device **list; struct libusb_device_descriptor desc; libusb_init(&ctx); *device_list = NULL; usb_device_count = libusb_get_device_list(ctx, &list); for (i = 0; i < usb_device_count; i++) { libusb_get_device_descriptor(list[i], &desc); for (count = 0; known_devices[count].idVendor != 0 && known_devices[count].idProduct != 0; count++) { if(desc.idVendor == known_devices[count].idVendor && desc.idProduct == known_devices[count].idProduct) { new_device = malloc(sizeof(netmd_device)); new_device->usb_dev = list[i]; new_device->link = *device_list; *device_list = new_device; } } } return NETMD_NO_ERROR; } netmd_error netmd_open(netmd_device *dev, netmd_dev_handle **dev_handle) { int result; libusb_device_handle *dh = NULL; result = libusb_open(dev->usb_dev, &dh); if (result == 0) result = libusb_claim_interface(dh, 0); if (result == 0) { *dev_handle = (netmd_dev_handle*)dh; return NETMD_NO_ERROR; } else { *dev_handle = NULL; return NETMD_USB_OPEN_ERROR; } } netmd_error netmd_get_devname(netmd_dev_handle* devh, unsigned char* buf, size_t buffsize) { int result; result = libusb_get_string_descriptor_ascii((libusb_device_handle *)devh, 2, buf, buffsize); if (result < 0) { netmd_log(NETMD_LOG_ERROR, "libusb_get_string_descriptor_asci failed, %s (%d)\n", strerror(errno), errno); buf[0] = 0; return NETMD_USB_ERROR; } return NETMD_NO_ERROR; } netmd_error netmd_close(netmd_dev_handle* devh) { int result; libusb_device_handle *dev; dev = (libusb_device_handle *)devh; result = libusb_release_interface(dev, 0); if (result == 0) libusb_close(dev); else{ return NETMD_USB_ERROR; } return NETMD_NO_ERROR; } void netmd_clean(netmd_device **device_list) { netmd_device *tmp, *device; device = *device_list; while (device != NULL) { tmp = device->link; free(device); device = tmp; } *device_list = NULL; libusb_exit(ctx); } ���������������������linux-minidisc-0.9.13/libnetmd/netmd_dev.h����������������������������������������������������������0000664�0000000�0000000�00000002740�12262477515�0020472�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef LIBNETMD_DEV_H #define LIBNETMD_DEV_H #include "error.h" #include "common.h" typedef struct netmd_device { struct netmd_device *link; char name[32]; struct libusb_device *usb_dev; } netmd_device; /** Struct to hold the vendor and product id's for each unit. */ struct netmd_devices { int idVendor; int idProduct; }; /** Intialises the netmd device layer, scans the USB and fills in a list of supported devices. @param device_list Linked list of netmd_device_t structures to fill. */ netmd_error netmd_init(netmd_device **device_list); /** Opens a NetMD device. @param dev Pointer to a device discoverd by netmd_init. @param dev_handle Pointer to variable to save the handle of the opened device used for communication in all other netmd_ functions. */ netmd_error netmd_open(netmd_device *dev, netmd_dev_handle **dev_handle); /** Get the device name stored in USB device. @param devh Pointer to device, returned by netmd_open. @param buf Buffer to hold the name. @param buffsize Available size in buf. */ netmd_error netmd_get_devname(netmd_dev_handle* devh, unsigned char* buf, size_t buffsize); /** Closes the usb descriptors. @param dev Pointer to device returned by netmd_open. */ netmd_error netmd_close(netmd_dev_handle* dev); /** Cleans structures created by netmd_init. @param device_list List of devices filled by netmd_init. */ void netmd_clean(netmd_device **device_list); #endif ��������������������������������linux-minidisc-0.9.13/libnetmd/omgutils-patch.txt���������������������������������������������������0000664�0000000�0000000�00000000307�12262477515�0022052�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#info omgutils.dll patch anti debugging code (patch32 program). #seek 0x0ec31 #chek 0xcc #repl 0x90 #seek 0x0ec32 #chek 0xc6 0x05 0xfc 0x66 0x01 0x10 0x01 #repl 0xc6 0x05 0xfc 0x66 0x01 0x10 0x00 �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/playercontrol.c������������������������������������������������������0000664�0000000�0000000�00000015264�12262477515�0021422�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * playercontrol.c * * This file is part of libnetmd, a library for accessing Sony NetMD devices. * * Copyright (C) 2004 Bertrik Sikken * Copyright (C) 2011 Alexander Sulfrian * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include "playercontrol.h" #include "utils.h" #include "const.h" static netmd_error netmd_playback_control(netmd_dev_handle* dev, unsigned char code) { unsigned char request[] = {0x00, 0x18, 0xc3, 0xff, 0x00, 0x00, 0x00, 0x00}; unsigned char buf[255]; int size; request[4] = code; size = netmd_exch_message(dev, request, sizeof(request), buf); if (size < 1) { return NETMD_ERROR; } return NETMD_NO_ERROR; } netmd_error netmd_play(netmd_dev_handle *dev) { return netmd_playback_control(dev, NETMD_PLAY); } netmd_error netmd_pause(netmd_dev_handle *dev) { return netmd_playback_control(dev, NETMD_PAUSE); } netmd_error netmd_fast_forward(netmd_dev_handle *dev) { return netmd_playback_control(dev, NETMD_FFORWARD); } netmd_error netmd_rewind(netmd_dev_handle *dev) { return netmd_playback_control(dev, NETMD_REWIND); } netmd_error netmd_stop(netmd_dev_handle* dev) { unsigned char request[] = {0x00, 0x18, 0xc5, 0xff, 0x00, 0x00, 0x00, 0x00}; unsigned char buf[255]; int size; size = netmd_exch_message(dev, request, sizeof(request), buf); if(size < 0) { return NETMD_ERROR; } return NETMD_NO_ERROR; } netmd_error netmd_set_playmode(netmd_dev_handle* dev, const uint16_t playmode) { unsigned char request[] = {0x00, 0x18, 0xd1, 0xff, 0x01, 0x00, 0x00, 0x00, 0x88, 0x08, 0x00, 0x00, 0x00}; unsigned char buf[255]; uint16_t tmp = playmode >> 8; request[10] = tmp & 0xffU; request[11] = playmode & 0xffU; /* TODO: error checkxing */ netmd_exch_message(dev, request, sizeof(request), buf); return NETMD_NO_ERROR; } netmd_error netmd_set_track(netmd_dev_handle* dev, const uint16_t track) { unsigned char request[] = {0x00, 0x18, 0x50, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; unsigned char buf[255]; proper_to_bcd(track, request + 9, 2); /* TODO: error checking */ netmd_exch_message(dev, request, sizeof(request), buf); return NETMD_NO_ERROR; } netmd_error netmd_change_track(netmd_dev_handle* dev, const uint16_t direction) { unsigned char request[] = {0x00, 0x18, 0x50, 0xff, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; unsigned char buf[255]; uint16_t tmp = direction >> 8; request[9] = tmp & 0xffU; request[10] = direction & 0xffU; /* TODO: error checking */ netmd_exch_message(dev, request, sizeof(request), buf); return NETMD_NO_ERROR; } netmd_error netmd_get_track(netmd_dev_handle* dev, uint16_t *track) { unsigned char request[] = {0x00, 0x18, 0x09, 0x80, 0x01, 0x04, 0x30, 0x88, 0x02, 0x00, 0x30, 0x88, 0x05, 0x00, 0x30, 0x00, 0x03, 0x00, 0x30, 0x00, 0x02, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}; unsigned char buf[255]; /* TODO: error checking */ netmd_exch_message(dev, request, 28, buf); *track = bcd_to_proper(buf + 35, 2) & 0xffff; return NETMD_NO_ERROR; } netmd_error netmd_track_next(netmd_dev_handle* dev) { return netmd_change_track(dev, NETMD_TRACK_NEXT); } netmd_error netmd_track_previous(netmd_dev_handle* dev) { return netmd_change_track(dev, NETMD_TRACK_PREVIOUS); } netmd_error netmd_track_restart(netmd_dev_handle* dev) { return netmd_change_track(dev, NETMD_TRACK_RESTART); } netmd_error netmd_set_time(netmd_dev_handle* dev, const uint16_t track, const netmd_time* time) { unsigned char request[] = {0x00, 0x18, 0x50, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; unsigned char buf[255]; proper_to_bcd(track, request + 9, 2); proper_to_bcd(time->hour, request + 11, 1); proper_to_bcd(time->minute, request + 12, 1); proper_to_bcd(time->second, request + 13, 1); proper_to_bcd(time->frame, request + 14, 1); /* TODO: error checking */ netmd_exch_message(dev, request, sizeof(request), buf); return NETMD_NO_ERROR; } const netmd_time* netmd_parse_time(unsigned char* src, netmd_time* time) { time->hour = bcd_to_proper(src, 2) & 0xffff; time->minute = bcd_to_proper(src + 2, 1) & 0xff; time->second = bcd_to_proper(src + 3, 1) & 0xff; time->frame = bcd_to_proper(src + 4, 1) & 0xff; return time; } netmd_error netmd_get_position(netmd_dev_handle* dev, netmd_time* time) { unsigned char request[] = {0x00, 0x18, 0x09, 0x80, 0x01, 0x04, 0x30, 0x88, 0x02, 0x00, 0x30, 0x88, 0x05, 0x00, 0x30, 0x00, 0x03, 0x00, 0x30, 0x00, 0x02, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}; unsigned char buf[255]; /* TODO: error checking */ netmd_exch_message(dev, request, sizeof(request), buf); time->hour = bcd_to_proper(buf + 37, 1) & 0xff; time->minute = bcd_to_proper(buf + 38, 1) & 0xff; time->second = bcd_to_proper(buf + 39, 1) & 0xff; time->frame = bcd_to_proper(buf + 40, 1) & 0xff; return NETMD_NO_ERROR; } netmd_error netmd_get_disc_capacity(netmd_dev_handle* dev, netmd_disc_capacity* capacity) { unsigned char request[] = {0x00, 0x18, 0x06, 0x02, 0x10, 0x10, 0x00, 0x30, 0x80, 0x03, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}; unsigned char buf[255]; /* TODO: error checking */ netmd_exch_message(dev, request, sizeof(request), buf); netmd_parse_time(buf + 27, &capacity->recorded); netmd_parse_time(buf + 34, &capacity->total); netmd_parse_time(buf + 41, &capacity->available); return NETMD_NO_ERROR; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/playercontrol.h������������������������������������������������������0000664�0000000�0000000�00000007555�12262477515�0021433�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef LIBNETMD_PLAYERCONTROL_H #define LIBNETMD_PLAYERCONTROL_H #include <stdint.h> #include "common.h" #include "error.h" typedef struct { uint16_t hour; uint8_t minute; uint8_t second; uint8_t frame; } netmd_time; /** Structure to hold the capacity information of a disc. */ typedef struct { /** Time allready recorded on the disc. */ netmd_time recorded; /** Total time, that could be recorded on the disc. This depends on the current recording settings. */ netmd_time total; /** Time that is available on the disc. This depends on the current recording settings. */ netmd_time available; } netmd_disc_capacity; /** Starts playing the current track. If no track is selected, starts playing the first track. @param dev Handle to the open minidisc player. */ netmd_error netmd_play(netmd_dev_handle* dev); /** Pause playing. If uses netmd_play afterwards the player continues at the current position. @param dev Handle to the open minidisc player. */ netmd_error netmd_pause(netmd_dev_handle* dev); /** Spin the track fast forward. @param dev Handle to the open minidisc player. */ netmd_error netmd_fast_forward(netmd_dev_handle* dev); /** Spin the track backwards in time (aka rewind it). @param dev Handle to the open minidisc player. */ netmd_error netmd_rewind(netmd_dev_handle* dev); /** Stop playing. The current position is discarded. @param dev Handle to the open minidisc player. */ netmd_error netmd_stop(netmd_dev_handle* dev); /** Set the playmode. @param dev Handle to the open minidisc player. @param playmode Playmode to set. Could be a OR'ed combination of the corresponding defines from const.h. @see NETMD_PLAYMODE_SINGLE @see NETMD_PLAYMODE_REPEAT @see NETMD_PLAYMODE_SHUFFLE */ netmd_error netmd_set_playmode(netmd_dev_handle* dev, const uint16_t playmode); /** Jump to the given track. @param dev Handle to the open minidisc player. @param track Number of the track to jump to. */ netmd_error netmd_set_track(netmd_dev_handle* dev, const uint16_t track); /** Jump to the next track. If you currently playing the last track, nothing happens. @param dev Handle to the open minidisc player. */ netmd_error netmd_track_next(netmd_dev_handle* dev); /** Jump to the previous track. If you currently playing the first track, nothing happens. @param dev Handle to the open minidisc player. */ netmd_error netmd_track_previous(netmd_dev_handle* dev); /** Jump to the beginning of the current track. @param dev Handle to the open minidisc player. */ netmd_error netmd_track_restart(netmd_dev_handle* dev); /** Jump to a specific time of the given track. @param dev Handle to the open minidisc player. @param track Track, where to jump to the given time. @param time Time to jump to. */ netmd_error netmd_set_time(netmd_dev_handle* dev, const uint16_t track, const netmd_time* time); /** Gets the currently playing track. @param dev Handle to the open minidisc player. @param track Pointer where to save the current track. */ netmd_error netmd_get_track(netmd_dev_handle* dev, uint16_t *track); /** Gets the position within the currently playing track @param dev Handle to the open minidisc player. @param time Pointer to save the current time to. */ netmd_error netmd_get_position(netmd_dev_handle* dev, netmd_time* time); /** Gets the used, total and available disc capacity (total and available capacity depend on current recording settings) @param dev Handle to the open minidisc player. @param capacity Pointer to a netmd_disc_capacity structure to save the capacity information of the current minidisc to. */ netmd_error netmd_get_disc_capacity(netmd_dev_handle* dev, netmd_disc_capacity* capacity); #endif ���������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/secure.c�������������������������������������������������������������0000664�0000000�0000000�00000060252�12262477515�0020010�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * secure.c * * This file is part of libnetmd, a library for accessing Sony NetMD devices. * * Copyright (C) 2004 Bertrik Sikken * Copyright (C) 2011 Alexander Sulfrian * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ /* Set of NetMD commands that start with the sequence 0x00,0x18,0x00,0x08,0x00,0x46,0xf0,0x03,0x01,0x03 These commands are used during check-in/check-out. */ #include <string.h> #include <stdio.h> #include <libusb.h> #include <errno.h> #include <gcrypt.h> #include "secure.h" #include "const.h" #include "utils.h" #include "log.h" #include "trackinformation.h" static const unsigned char secure_header[] = { 0x18, 0x00, 0x08, 0x00, 0x46, 0xf0, 0x03, 0x01, 0x03 }; void build_request(unsigned char *request, const unsigned char cmd, unsigned char *data, const size_t data_size) { size_t header_length; header_length = 1 + sizeof(secure_header); request[0] = NETMD_STATUS_CONTROL; memcpy(request + 1, secure_header, sizeof(secure_header)); request[header_length] = cmd; request[header_length + 1] = 0xff; memcpy(request + header_length + 2, data, data_size); } netmd_error parse_netmd_return_status(unsigned char status, unsigned char expected) { if (status == expected) { return NETMD_NO_ERROR; } switch (status) { case NETMD_STATUS_NOT_IMPLEMENTED: return NETMD_COMMAND_FAILED_NOT_IMPLEMENTED; case NETMD_STATUS_REJECTED: return NETMD_COMMAND_FAILED_REJECTED; case NETMD_STATUS_ACCEPTED: break; case NETMD_STATUS_IN_TRANSITION: break; case NETMD_STATUS_IMPLEMENTED: break; case NETMD_STATUS_CHANGED: break; case NETMD_STATUS_INTERIM: break; } return NETMD_COMMAND_FAILED_UNKNOWN_ERROR; } void netmd_send_secure_msg(netmd_dev_handle *dev, unsigned char cmd, unsigned char *data, size_t data_size) { unsigned char *request; size_t request_length; /* alloc memory */ request_length = 1 + sizeof(secure_header) + 2 + data_size; request = malloc(request_length); /* build request */ build_request(request, cmd, data, data_size); netmd_send_message(dev, request, request_length); /* free memory */ free(request); request = NULL; } netmd_error netmd_recv_secure_msg(netmd_dev_handle *dev, unsigned char cmd, netmd_response *response, unsigned char expected_response_code) { netmd_error error; /* recv response */ response->length = (size_t)netmd_recv_message(dev, response->content); response->position = 0; if (response->length < 1) { return NETMD_COMMAND_FAILED_NO_RESPONSE; } error = parse_netmd_return_status(response->content[0], expected_response_code); response->position = 1; netmd_check_response_bulk(response, secure_header, sizeof(secure_header), &error); netmd_check_response(response, cmd, &error); if (cmd != 0x12) { netmd_check_response(response, 0x00, &error); } else { netmd_check_response(response, 0x01, &error); } return error; } /** Helper function to make life a little simpler for other netmd_secure_cmd_* functions */ netmd_error netmd_exch_secure_msg(netmd_dev_handle *dev, unsigned char cmd, unsigned char *data, size_t data_size, netmd_response *response) { netmd_send_secure_msg(dev, cmd, data, data_size); return netmd_recv_secure_msg(dev, cmd, response, NETMD_STATUS_ACCEPTED); } /* => 00 18 00 08 00 46 f0 03 01 03 80 ff <= 09 18 00 08 00 46 f0 03 01 03 80 00 */ netmd_error netmd_secure_enter_session(netmd_dev_handle *dev) { netmd_response response; return netmd_exch_secure_msg(dev, 0x80, NULL, 0, &response); } /* => 00 18 00 08 00 46 f0 03 01 03 81 ff <= 09 18 00 08 00 46 f0 03 01 03 81 00 */ netmd_error netmd_secure_leave_session(netmd_dev_handle *dev) { netmd_response response; return netmd_exch_secure_msg(dev, 0x81, NULL, 0, &response); } /* => 00 18 00 08 00 46 f0 03 01 03 11 ff <= 09 18 00 08 00 46 f0 03 01 03 11 00 01 00 00 21 cf 06 00 00 */ netmd_error netmd_secure_get_leaf_id(netmd_dev_handle *dev, uint64_t *player_id) { netmd_response response; netmd_error error; error = netmd_exch_secure_msg(dev, 0x11, NULL, 0, &response); if (error == NETMD_NO_ERROR) { *player_id = netmd_read_quadword(&response); } return error; } uint16_t netmd_get_chain_length(netmd_keychain *chain) { uint16_t length; length = 0; while (chain != NULL) { chain = chain->next; length++; } return length; } void netmd_build_send_key_data_command(unsigned char *buf, uint16_t databytes, uint16_t chain_length, uint32_t key_depth, uint32_t key_id, netmd_keychain *chain, char *signature) { netmd_copy_word_to_buffer(&buf, databytes, 0); netmd_copy_word_to_buffer(&buf, 0, 0); netmd_copy_word_to_buffer(&buf, databytes, 0); netmd_copy_word_to_buffer(&buf, 0, 0); /* data */ netmd_copy_word_to_buffer(&buf, chain_length, 0); netmd_copy_doubleword_to_buffer(&buf, key_depth, 0); netmd_copy_doubleword_to_buffer(&buf, key_id, 0); netmd_copy_doubleword_to_buffer(&buf, 0, 0); /* add all keys from the keychain to the buffer */ while (chain != NULL) { memcpy(buf, chain->key, 16); buf += 16; chain = chain->next; } memcpy(buf, signature, 24); } /* => 00 18 00 08 00 46 f0 03 01 03 12 ff 00 38 00 00 00 38 00 00 00 01 00 00 00 09 00 01 00 01 00 00 00 00 01 ca be 07 2c 4d a7 ae f3 6c 8d 73 fa 60 2b d1 0f f4 7d 45 9c 72 da 81 85 16 9d 73 49 00 ff 6c 6a b9 61 6b 03 04 f9 ce <= 09 18 00 08 00 46 f0 03 01 03 12 00 00 38 00 00 00 38 00 00 */ netmd_error netmd_secure_send_key_data(netmd_dev_handle *dev, netmd_ekb* ekb) { unsigned char *cmd; size_t size; uint16_t chain_length; netmd_response response; netmd_error error; chain_length = netmd_get_chain_length(ekb->chain); size = 22 + ((unsigned int)chain_length*16) + 24; cmd = malloc(size); netmd_build_send_key_data_command(cmd, (size - 6) & 0xffff, chain_length, ekb->depth, ekb->id, ekb->chain, ekb->signature); error = netmd_exch_secure_msg(dev, 0x12, cmd, size, &response); free(cmd); netmd_check_response_word(&response, (size - 6) & 0xffff, &error); netmd_check_response_word(&response, 0, &error); netmd_check_response_word(&response, (size - 6) & 0xffff, &error); return error; } netmd_error netmd_secure_session_key_exchange(netmd_dev_handle *dev, unsigned char *rand_in, unsigned char *rand_out) { unsigned char cmdhdr[] = {0x00, 0x00, 0x00}; unsigned char cmd[sizeof(cmdhdr) + 8]; netmd_response response; netmd_error error; memcpy(cmd, cmdhdr, sizeof(cmdhdr)); memcpy(cmd + sizeof(cmdhdr), rand_in, 8); error = netmd_exch_secure_msg(dev, 0x20, cmd, sizeof(cmd), &response); netmd_check_response(&response, 0x00, &error); netmd_check_response(&response, 0x00, &error); netmd_check_response(&response, 0x00, &error); netmd_read_response_bulk(&response, rand_out, 8, &error); return error; } netmd_error netmd_secure_session_key_forget(netmd_dev_handle *dev) { unsigned char cmd[] = {0x00, 0x00, 0x00}; netmd_response response; netmd_error error; error = netmd_exch_secure_msg(dev, 0x21, cmd, sizeof(cmd), &response); netmd_check_response_bulk(&response, cmd, sizeof(cmd), &error); return error; } netmd_error netmd_secure_setup_download(netmd_dev_handle *dev, unsigned char *contentid, unsigned char *key_encryption_key, unsigned char *sessionkey) { unsigned char cmdhdr[] = { 0x00, 0x00 }; unsigned char data[32] = { 0x01, 0x01, 0x01, 0x01 /* ... */}; unsigned char cmd[sizeof(cmdhdr) + sizeof(data)]; unsigned char iv[8] = { 0 }; gcry_cipher_hd_t handle; netmd_response response; netmd_error error; memcpy(data + 4, contentid, 20); memcpy(data + 24, key_encryption_key, 8); gcry_cipher_open(&handle, GCRY_CIPHER_DES, GCRY_CIPHER_MODE_CBC, 0); gcry_cipher_setkey(handle, sessionkey, 8); gcry_cipher_setiv(handle, iv, 8); gcry_cipher_encrypt(handle, data, sizeof(data), NULL, 0); gcry_cipher_close(handle); memcpy(cmd, cmdhdr, sizeof(cmdhdr)); memcpy(cmd + sizeof(cmdhdr), data, 32); error = netmd_exch_secure_msg(dev, 0x22, cmd, sizeof(cmd), &response); netmd_check_response_bulk(&response, cmdhdr, sizeof(cmdhdr), &error); return error; } size_t netmd_get_frame_size(netmd_wireformat wireformat) { switch (wireformat) { case NETMD_WIREFORMAT_PCM: return 2048; case NETMD_WIREFORMAT_LP2: return 192; break; case NETMD_WIREFORMAT_105KBPS: return 152; case NETMD_WIREFORMAT_LP4: return 96; } return 0; } void netmd_transfer_song_packets(netmd_dev_handle *dev, netmd_track_packets *packets) { netmd_track_packets *p; unsigned char *packet, *buf; size_t packet_size; int error; int transferred = 0; p = packets; while (p != NULL) { /* length + key + iv + data */ packet_size = 8 + 8 + 8 + p->length; packet = malloc(packet_size); buf = packet; /* build packet... */ netmd_copy_quadword_to_buffer(&buf, p->length); memcpy(buf, p->key, 8); memcpy(buf + 8, p->iv, 8); memcpy(buf + 16, p->data, p->length); /* ... send it */ error = libusb_bulk_transfer((libusb_device_handle*)dev, 2, packet, (int)packet_size, &transferred, 10000); netmd_log(NETMD_LOG_DEBUG, "%d %d\n", packet_size, error); /* cleanup */ free(packet); buf = NULL; if (error >= 0) { p = p->next; } break; } } netmd_error netmd_prepare_packets(unsigned char* data, size_t data_lenght, netmd_track_packets **packets, size_t *packet_count, unsigned char *key_encryption_key) { size_t position = 0; size_t chunksize = 0xffffffffU; netmd_track_packets *last = NULL; netmd_track_packets *next = NULL; gcry_cipher_hd_t key_handle; gcry_cipher_hd_t data_handle; unsigned char iv[8] = { 0 }; unsigned char rand[8] = { 0 }; netmd_error error = NETMD_NO_ERROR; gcry_cipher_open(&key_handle, GCRY_CIPHER_DES, GCRY_CIPHER_MODE_ECB, 0); gcry_cipher_open(&data_handle, GCRY_CIPHER_DES, GCRY_CIPHER_MODE_CBC, 0); gcry_cipher_setkey(key_handle, key_encryption_key, 8); /* generate initial iv */ gcry_create_nonce(iv, sizeof(iv)); *packet_count = 0; while (position < data_lenght) { if ((data_lenght - position) < chunksize) { /* limit chunksize for last packet */ chunksize = data_lenght - position; } if ((chunksize % 8) != 0) { chunksize = chunksize + 8 - (chunksize % 8); } /* alloc memory */ next = malloc(sizeof(netmd_track_packets)); next->length = chunksize; next->data = malloc(next->length); memset(next->data, 0, next->length); next->iv = malloc(8); next->key = malloc(8); next->next = NULL; /* linked list */ if (last != NULL) { last->next = next; } else { *packets = next; } /* generate key */ gcry_randomize(rand, sizeof(rand), GCRY_STRONG_RANDOM); gcry_cipher_decrypt(key_handle, next->key, 8, rand, sizeof(rand)); /* crypt data */ memcpy(next->iv, iv, 8); gcry_cipher_setiv(data_handle, iv, 8); gcry_cipher_setkey(data_handle, rand, sizeof(rand)); gcry_cipher_encrypt(data_handle, next->data, chunksize, data + position, chunksize); memcpy(iv, data + position - 8, 8); /* next packet */ position = position + chunksize; (*packet_count)++; last = next; } gcry_cipher_close(key_handle); gcry_cipher_close(data_handle); return error; } void netmd_cleanup_packets(netmd_track_packets **packets) { netmd_track_packets *current = *packets; netmd_track_packets *last; while (current != NULL) { last = current; current = last->next; free(last->data); free(last->iv); free(last->key); free(last); last = NULL; } } netmd_error netmd_secure_send_track(netmd_dev_handle *dev, netmd_wireformat wireformat, unsigned char discformat, unsigned int frames, netmd_track_packets *packets, size_t packet_count, unsigned char *sessionkey, uint16_t *track, unsigned char *uuid, unsigned char *content_id) { unsigned char cmdhdr[] = {0x00, 0x01, 0x00, 0x10, 0x01}; unsigned char cmd[sizeof(cmdhdr) + 13]; unsigned char *buf; size_t totalbytes; netmd_response response; netmd_error error; gcry_cipher_hd_t handle; unsigned char encryptedreply[32] = { 0 }; unsigned char iv[8] = { 0 }; memcpy(cmd, cmdhdr, sizeof(cmdhdr)); buf = cmd + sizeof(cmdhdr); netmd_copy_word_to_buffer(&buf, 0xffffU, 0); *(buf++) = 0; *(buf++) = wireformat & 0xffU; *(buf++) = discformat & 0xffU; netmd_copy_doubleword_to_buffer(&buf, frames, 0); totalbytes = netmd_get_frame_size(wireformat) * frames + packet_count * 24U; netmd_copy_doubleword_to_buffer(&buf, totalbytes, 0); netmd_send_secure_msg(dev, 0x28, cmd, sizeof(cmd)); error = netmd_recv_secure_msg(dev, 0x28, &response, NETMD_STATUS_INTERIM); netmd_check_response_bulk(&response, cmdhdr, sizeof(cmdhdr), &error); netmd_read_response_bulk(&response, NULL, 2, &error); netmd_check_response(&response, 0x00, &error); if (error == NETMD_NO_ERROR) { netmd_transfer_song_packets(dev, packets); error = netmd_recv_secure_msg(dev, 0x28, &response, NETMD_STATUS_ACCEPTED); netmd_check_response_bulk(&response, cmdhdr, sizeof(cmdhdr), &error); *track = netmd_read_word(&response); netmd_check_response(&response, 0x00, &error); netmd_read_response_bulk(&response, NULL, 10, &error); netmd_read_response_bulk(&response, encryptedreply, sizeof(encryptedreply), &error); } if (error == NETMD_NO_ERROR) { gcry_cipher_open(&handle, GCRY_CIPHER_DES, GCRY_CIPHER_MODE_CBC, 0); gcry_cipher_setiv(handle, iv, 8); gcry_cipher_setkey(handle, sessionkey, 8); gcry_cipher_decrypt(handle, encryptedreply, sizeof(encryptedreply), NULL, 0); gcry_cipher_close(handle); memcpy(uuid, encryptedreply, 8); memcpy(content_id, encryptedreply + 12, 20); } return error; } netmd_error netmd_secure_real_recv_track(netmd_dev_handle *dev, uint32_t length, FILE *file, size_t chunksize) { uint32_t done = 0; unsigned char *data; int status; netmd_error error = NETMD_NO_ERROR; int transferred = 0; data = malloc(chunksize); while (done < length) { if ((length - done) < chunksize) { chunksize = length - done; } status = libusb_bulk_transfer((libusb_device_handle*)dev, 0x81, data, (int)chunksize, &transferred, 10000); if (status >= 0) { done += transferred; fwrite(data, transferred, 1, file); netmd_log(NETMD_LOG_DEBUG, "%.1f%%\n", (double)done/(double)length * 100); } else if (status != -LIBUSB_ERROR_TIMEOUT) { error = NETMD_USB_ERROR; } } free(data); return error; } uint8_t netmd_get_channel_count(unsigned char channel) { if (channel == NETMD_CHANNELS_MONO) { return 1; } else if (channel == NETMD_CHANNELS_STEREO) { return 2; } else { return 0; } } void netmd_write_aea_header(char *name, uint32_t frames, unsigned char channel, FILE* f) { unsigned char header[2048] = { 0 }; unsigned char *buf; buf = header; netmd_copy_doubleword_to_buffer(&buf, 2048, 1); strncpy((char *)buf, name, 255); buf += 256; netmd_copy_doubleword_to_buffer(&buf, frames, 1); *(buf++) = netmd_get_channel_count(channel); *(buf++) = 0; /* flags */ netmd_copy_doubleword_to_buffer(&buf, 0, 1); netmd_copy_doubleword_to_buffer(&buf, 0, 1); /* encrypted*/ netmd_copy_doubleword_to_buffer(&buf, 0, 1); /*groupstart*/ netmd_log_hex(NETMD_LOG_DEBUG, header, sizeof(header)); fwrite(header, sizeof(header), 1, f); } void netmd_write_wav_header(unsigned char format, uint32_t bytes, FILE *f) { unsigned char header[60] = { 0 }; unsigned char *buf; unsigned char maskedformat; uint16_t bytespersecond; uint16_t bytesperframe; uint16_t jointstereo; maskedformat = format & 0x06; if (maskedformat == NETMD_DISKFORMAT_LP4) { bytesperframe = 96; jointstereo = 1; } else if (maskedformat == NETMD_DISKFORMAT_LP2) { bytesperframe = 192; jointstereo = 0; } bytespersecond = ((bytesperframe * 44100U) / 512U) & 0xffff; buf = header; /* RIFF header */ memcpy(buf, "RIFF", 4); buf += 4; netmd_copy_doubleword_to_buffer(&buf, bytes + 60, 1); memcpy(buf, "WAVE", 4); buf += 4; /* fmt chunk - standard part */ memcpy(buf, "fmt ", 4); buf += 4; netmd_copy_doubleword_to_buffer(&buf, 32, 1); netmd_copy_word_to_buffer(&buf, NETMD_RIFF_FORMAT_TAG_ATRAC3, 1); netmd_copy_word_to_buffer(&buf, 2, 1); netmd_copy_doubleword_to_buffer(&buf, 44100, 1); netmd_copy_doubleword_to_buffer(&buf, bytespersecond, 1); netmd_copy_word_to_buffer(&buf, (2U*bytesperframe) & 0xffff, 1); netmd_copy_word_to_buffer(&buf, 0, 1); /* fmt chunk - ATRAC extension */ netmd_copy_word_to_buffer(&buf, 14, 1); netmd_copy_word_to_buffer(&buf, 1, 1); netmd_copy_doubleword_to_buffer(&buf, bytesperframe, 1); netmd_copy_word_to_buffer(&buf, jointstereo, 1); netmd_copy_word_to_buffer(&buf, jointstereo, 1); netmd_copy_word_to_buffer(&buf, 1, 1); netmd_copy_word_to_buffer(&buf, 0, 1); /* data */ memcpy(buf, "data", 4); buf += 4; netmd_copy_doubleword_to_buffer(&buf, bytes, 1); netmd_log_hex(NETMD_LOG_DEBUG, header, sizeof(header)); fwrite(header, sizeof(header), 1, f); } netmd_error netmd_secure_recv_track(netmd_dev_handle *dev, uint16_t track, FILE* file) { unsigned char cmdhdr[] = {0x00, 0x10, 0x01}; unsigned char cmd[sizeof(cmdhdr) + sizeof(track)] = { 0 }; unsigned char *buf; unsigned char encoding; unsigned char channel; char name[257] = { 0 }; unsigned char codec; uint32_t length; uint16_t track_id; netmd_response response; netmd_error error; buf = cmd; memcpy(buf, cmdhdr, sizeof(cmdhdr)); buf += sizeof(cmdhdr); netmd_copy_word_to_buffer(&buf, track, 0); track_id = (track - 1U) & 0xffff;; netmd_request_track_bitrate(dev, track_id, &encoding, &channel); if (encoding == NETMD_ENCODING_SP) { netmd_request_title(dev, track_id, name, sizeof(name) - 1); } else { } netmd_send_secure_msg(dev, 0x30, cmd, sizeof(cmd)); error = netmd_recv_secure_msg(dev, 0x30, &response, NETMD_STATUS_INTERIM); netmd_check_response_bulk(&response, cmdhdr, sizeof(cmdhdr), &error); netmd_check_response_word(&response, track, &error); codec = netmd_read(&response); length = netmd_read_doubleword(&response); if (encoding == NETMD_ENCODING_SP) { netmd_write_aea_header(name, codec, channel, file); } else { netmd_write_wav_header(codec, length, file); } if (error == NETMD_NO_ERROR) { error = netmd_secure_real_recv_track(dev, length, file, 0x10000); } if (error == NETMD_NO_ERROR) { error = netmd_recv_secure_msg(dev, 0x30, &response, NETMD_STATUS_ACCEPTED); netmd_check_response_bulk(&response, cmdhdr, sizeof(cmdhdr), &error); netmd_read_response_bulk(&response, NULL, 2, &error); netmd_check_response_word(&response, 0, &error); } return error; } netmd_error netmd_secure_commit_track(netmd_dev_handle *dev, uint16_t track, unsigned char* sessionkey) { unsigned char cmdhdr[] = {0x00, 0x10, 0x01}; unsigned char cmd[sizeof(cmdhdr) + sizeof(track) + 8]; unsigned char *buf; gcry_cipher_hd_t handle; unsigned char hash[8] = { 0 }; netmd_response response; netmd_error error; buf = cmd; memcpy(buf, cmdhdr, sizeof(cmdhdr)); buf += sizeof(cmdhdr); netmd_copy_word_to_buffer(&buf, track, 0); gcry_cipher_open(&handle, GCRY_CIPHER_DES, GCRY_CIPHER_MODE_ECB, 0); gcry_cipher_setkey(handle, sessionkey, 8); gcry_cipher_encrypt(handle, buf, sizeof(hash), hash, sizeof(hash)); buf += sizeof(hash); gcry_cipher_close(handle); error = netmd_exch_secure_msg(dev, 0x48, cmd, sizeof(cmd), &response); netmd_check_response_bulk(&response, cmdhdr, sizeof(cmdhdr), &error); netmd_check_response_word(&response, track, &error); return error; } netmd_error netmd_secure_get_track_uuid(netmd_dev_handle *dev, uint16_t track, unsigned char *uuid) { unsigned char cmdhdr[] = {0x10, 0x01}; unsigned char cmd[sizeof(cmdhdr) + sizeof(track)]; netmd_response response; netmd_error error; memcpy(cmd, cmdhdr, sizeof(cmdhdr)); uint16_t tmp = track >> 8; cmd[sizeof(cmdhdr)] = tmp & 0xffU; cmd[sizeof(cmdhdr) + 1] = track & 0xffU; error = netmd_exch_secure_msg(dev, 0x23, cmd, sizeof(cmd), &response); netmd_check_response_bulk(&response, cmd, sizeof(cmd), &error); netmd_read_response_bulk(&response, uuid, 8, &error); return error; } netmd_error netmd_secure_delete_track(netmd_dev_handle *dev, uint16_t track, unsigned char *signature) { unsigned char cmdhdr[] = {0x00, 0x10, 0x01}; unsigned char cmd[sizeof(cmdhdr) + sizeof(track)]; netmd_response response; netmd_error error; memcpy(cmd, cmdhdr, sizeof(cmdhdr)); uint16_t tmp = track >> 8; cmd[sizeof(cmdhdr)] = tmp & 0xffU; cmd[sizeof(cmdhdr) + 1] = track & 0xffU; error = netmd_exch_secure_msg(dev, 0x40, cmd, sizeof(cmd), &response); netmd_check_response_bulk(&response, cmd, sizeof(cmd), &error); netmd_read_response_bulk(&response, signature, 8, &error); return error; } netmd_error netmd_secure_set_track_protection(netmd_dev_handle *dev, unsigned char mode) { unsigned char cmdhdr[] = {0x00, 0x01, 0x00, 0x00}; unsigned char cmd[sizeof(cmdhdr) + sizeof(mode)]; netmd_response response; netmd_error error; memcpy(cmd, cmdhdr, sizeof(cmdhdr)); cmd[sizeof(cmdhdr)] = mode; error = netmd_exch_secure_msg(dev, 0x2b, cmd, sizeof(cmd), &response); netmd_check_response_bulk(&response, cmd, sizeof(cmd), &error); return error; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/secure.h�������������������������������������������������������������0000664�0000000�0000000�00000016153�12262477515�0020016�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef LIBNETMD_SECURE_H #define LIBNETMD_SECURE_H #include <stdint.h> #include <stdio.h> #include "common.h" #include "error.h" /** linked list to store a list of 16-byte keys */ typedef struct netmd_keychain { char *key; struct netmd_keychain *next; } netmd_keychain; /** enabling key block */ typedef struct { /** The ID of the EKB. */ uint32_t id; /** A chain of encrypted keys. The one end of the chain is the encrypted root key, the other end is a key encrypted by a key the device has in it's key set. The direction of the chain is not yet known. */ netmd_keychain *chain; /** Selects which key from the devices keyset has to be used to start decrypting the chain. Each key in the key set corresponds to a specific depth in the tree of device IDs. */ uint32_t depth; /** Signature of the root key (24 byte). Used to verify integrity of the decrypted root key by the device. */ char *signature; } netmd_ekb; /** linked list, storing all information of the single packets, send to the device while uploading a track */ typedef struct netmd_track_packets { /** encrypted key for this packet (8 bytes) */ unsigned char *key; /** IV for the encryption (8 bytes) */ unsigned char *iv; /** the packet data itself */ unsigned char *data; /** length of the data */ size_t length; /** next packet to transfer (linked list) */ struct netmd_track_packets *next; } netmd_track_packets; /** Format of the song data packets, that are transfered over USB. */ typedef enum { NETMD_WIREFORMAT_PCM = 0, NETMD_WIREFORMAT_105KBPS = 0x90, NETMD_WIREFORMAT_LP2 = 0x94, NETMD_WIREFORMAT_LP4 = 0xa8 } netmd_wireformat; /** Enter a session secured by a root key found in an EKB. The EKB for this session has to be download after entering the session. */ netmd_error netmd_secure_enter_session(netmd_dev_handle *dev); /** Forget the key material from the EKB used in the secure session. */ netmd_error netmd_secure_leave_session(netmd_dev_handle *dev); /** Read the leaf ID of the present NetMD device. The leaf ID tells which keys the device posesses, which is needed to find out which parts of the EKB needs to be sent to the device for it to decrypt the root key. */ netmd_error netmd_secure_get_leaf_id(netmd_dev_handle *dev, uint64_t *player_id); /** Send key data to the device. The device uses it's builtin key to decrypt the root key from an EKB. */ netmd_error netmd_secure_send_key_data(netmd_dev_handle *dev, netmd_ekb *ekb); /** Exchange a session key with the device. Needs to have a root key sent to the device using sendKeyData before. @param rand_in 8 bytes random binary data @param rand_out device nonce, another 8 bytes random data */ netmd_error netmd_secure_session_key_exchange(netmd_dev_handle *dev, unsigned char *rand_in, unsigned char *rand_out); /** Invalidate the session key established by nonce exchange. Does not invalidate the root key set up by sendKeyData. */ netmd_error netmd_secure_session_key_forget(netmd_dev_handle *dev); /** Prepare the download of a music track to the device. @param contentid 20 bytes Unique Identifier for the DRM system. @param keyenckey 8 bytes DES key used to encrypt the block data keys @param sessionkey 8 bytes DES key used for securing the current session, the key has to be calculated by the caller from the data exchanged in sessionKeyExchange and the root key selected by sendKeyData. */ netmd_error netmd_secure_setup_download(netmd_dev_handle *dev, unsigned char *contentid, unsigned char *key_encryption_key, unsigned char *sessionkey); /** Send a track to the NetMD unit. @param wireformat Format of the packets that are transported over usb @param discformat Format of the song in the minidisc @param frames Number of frames we need to transfer. Framesize depends on the wireformat. @param packets Linked list with all packets that are nessesary to transfer the complete song. @param packet_count Count of the packets in the linked list. @param sessionkey 8 bytes DES key used for securing the current session, @param track Pointer to where the new track number should be written to after trackupload. @param uuid Pointer to 8 byte of memory where the uuid of the new track is written to after upload. @param content_id Pointer to 20 byte of memory where the content id of the song is written to afte upload. */ netmd_error netmd_secure_send_track(netmd_dev_handle *dev, netmd_wireformat wireformat, unsigned char discformat, unsigned int frames, netmd_track_packets *packets, size_t packet_count, unsigned char *sessionkey, uint16_t *track, unsigned char *uuid, unsigned char *content_id); netmd_error netmd_secure_recv_track(netmd_dev_handle *dev, uint16_t track, FILE* file); /** Commit a track. The idea is that this command tells the device hat the license for the track has been checked out from the computer. @param track Track number returned from downloading command @param sessionkey 8-byte DES key used for securing the download session */ netmd_error netmd_secure_commit_track(netmd_dev_handle *dev, uint16_t track, unsigned char *sessionkey); /** Gets the DRM tracking ID for a track. NetMD downloaded tracks have an 8-byte identifier (instead of their content ID) stored on the MD medium. This is used to verify the identity of a track when checking in. @param track The track number @param uuid Pointer to the memory, where the 8-byte uuid of the track sould be saved. */ netmd_error netmd_secure_get_track_uuid(netmd_dev_handle *dev, uint16_t track, unsigned char *uuid); /** Secure delete with 8-byte signature? @param track track number to delete @param signature 8-byte signature of deleted track */ netmd_error netmd_secure_delete_track(netmd_dev_handle *dev, uint16_t track, unsigned char *signature); netmd_error netmd_prepare_packets(unsigned char* data, size_t data_lenght, netmd_track_packets **packets, size_t *packet_count, unsigned char *key_encryption_key); void netmd_cleanup_packets(netmd_track_packets **packets); netmd_error netmd_secure_set_track_protection(netmd_dev_handle *dev, unsigned char mode); #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/trackinformation.c���������������������������������������������������0000664�0000000�0000000�00000007747�12262477515�0022106�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * trackinformation.c * * This file is part of libnetmd, a library for accessing Sony NetMD devices. * * Copyright (C) 2011 Alexander Sulfrian * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include <string.h> #include <stdio.h> #include "trackinformation.h" #include "utils.h" #include "log.h" void netmd_get_track_information(netmd_dev_handle *dev, uint16_t track, uint16_t p1, uint16_t p2, unsigned char *data, size_t data_length) { unsigned char cmd[] = { 0x00, 0x18, 0x06, 0x02, 0x20, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 }; unsigned char rsp[255]; unsigned char *buf; int length; uint16_t real_data_length; size_t size; buf = cmd + 7; netmd_copy_word_to_buffer(&buf, track, 0); netmd_copy_word_to_buffer(&buf, p1, 0); netmd_copy_word_to_buffer(&buf, p2, 0); length = netmd_exch_message(dev, cmd, sizeof(cmd), rsp); if (length > 0) { uint32_t tmp = (unsigned int)data[19] << 8; real_data_length = (tmp + data[20]) & 0xffffU; if (real_data_length > data_length) { size = data_length; } else { size = real_data_length; } memcpy(data, rsp + 21, size); } } int netmd_request_track_bitrate(netmd_dev_handle*dev, const uint16_t track, unsigned char* encoding, unsigned char *channel) { unsigned char info[8] = { 0 }; netmd_get_track_information(dev, track, 0x3080, 0x0700, info, sizeof(info)); memcpy(encoding, info + 6, 1); memcpy(channel, info + 7, 1); return 2; } int netmd_request_track_flags(netmd_dev_handle*dev, const uint16_t track, unsigned char* data) { int ret = 0; unsigned char request[] = {0x00, 0x18, 0x06, 0x01, 0x20, 0x10, 0x01, 0x00, 0x00, 0xff, 0x00, 0x00, 0x01, 0x00, 0x08}; unsigned char *buf; unsigned char reply[255]; buf = request + 7; netmd_copy_word_to_buffer(&buf, track, 0); ret = netmd_exch_message(dev, request, sizeof(request), reply); *data = reply[ret - 1]; return ret; } int netmd_request_title(netmd_dev_handle* dev, const uint16_t track, char* buffer, const size_t size) { int ret = -1; size_t title_size = 0; unsigned char title_request[] = {0x00, 0x18, 0x06, 0x02, 0x20, 0x18, 0x02, 0x00, 0x00, 0x30, 0x00, 0xa, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00}; unsigned char title[255]; unsigned char *buf; buf = title_request + 7; netmd_copy_word_to_buffer(&buf, track, 0); ret = netmd_exch_message(dev, title_request, 0x13, title); if(ret < 0) { fprintf(stderr, "bad ret code, returning early\n"); return -1; } title_size = (size_t)ret; if(title_size == 0 || title_size == 0x13) return -1; /* bail early somethings wrong or no track */ if(title_size > size) { printf("netmd_request_title: title too large for buffer\n"); return -1; } memset(buffer, 0, size); memcpy(buffer, (title + 25), title_size - 25); buffer[size] = 0; return (int)title_size - 25; } �������������������������linux-minidisc-0.9.13/libnetmd/trackinformation.h���������������������������������������������������0000664�0000000�0000000�00000002421�12262477515�0022073�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef LIBNETMD_TRACKINFORMATION_H #define LIBNETMD_TRACKINFORMATION_H #include <stdint.h> #include "common.h" /** Get the bitrate used to encode a specific track. @param dev pointer to device returned by netmd_open @param track Zero based index of track your requesting. @param data pointer to store the hex code representing the bitrate. */ int netmd_request_track_bitrate(netmd_dev_handle*dev, const uint16_t track, unsigned char* encoding, unsigned char* channel); /** Get the flags used for a specific track. @param dev pointer to device returned by netmd_open @param track Zero based index of track your requesting. @param data pointer to store the hex code representing the codec. */ int netmd_request_track_flags(netmd_dev_handle* dev, const uint16_t track, unsigned char* data); /** Get the title for a specific track. @param dev pointer to device returned by netmd_open @param track Zero based index of track your requesting. @param buffer buffer to hold the name. @param size of buf. @return Actual size of buffer, if your buffer is too small resize buffer and recall function. */ int netmd_request_title(netmd_dev_handle* dev, const uint16_t track, char* buffer, const size_t size); #endif �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/use_libnetmd.prl�����������������������������������������������������0000664�0000000�0000000�00000001300�12262477515�0021534�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# the QMAKE_LIBDIR thing is a workaround for a bug in qmake on mingw: # it searches prl files for library dependencies only QMAKE_LIBDIR and # ignores "-L" parametes in LIBS. build_pass:CONFIG(debug,debug|release) { QMAKE_LIBDIR += ../libnetmd/debug LIBS += -L../libnetmd/debug } build_pass:CONFIG(release,debug|release) { QMAKE_LIBDIR += ../libnetmd/release LIBS += -L../libnetmd/release } # fallback if libnetmd was not compiled with # CONFIG += debug_and_release debug_and_release_target # while I force debug_and_release_target, it is ignored in a # just-one-kind build without debug_and_release QMAKE_LIBDIR += ../libnetmd LIBS += -L../libnetmd INCLUDEPATH += ../libnetmd LIBS += -lnetmd ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/utilities/�����������������������������������������������������������0000775�0000000�0000000�00000000000�12262477515�0020364�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/utilities/char-to-hex.c����������������������������������������������0000664�0000000�0000000�00000002255�12262477515�0022653�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* char-to-hex.c * Copyright (C) 2002, 2003 Marc Britten * * This file is part of libnetmd. * * libnetmd 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 2 of the License, or * (at your option) any later version. * * Libnetmd 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #include <stdio.h> int main(int argc, char* argv[]) { int i = 0; int j = 0; int iLen = 0; if(argc < 2) return 0; for(j = 1; j < argc; j++) { iLen = strlen(argv[j]); for(i = 0; i < iLen; i++) { printf(" %c ", argv[j][i]); } printf("\n"); for(i = 0; i < iLen; i++) { printf("%02x ", argv[j][i]); } printf("\n"); } return 0; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/utilities/cleanup.pl�������������������������������������������������0000664�0000000�0000000�00000000744�12262477515�0022355�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl # This program takes in logs saved from DebugView.exe in windows and gets # rid of the line number and timestamp fields (tab seperated) sub trim { my @out = @_; for (@out) { s/^\s+//; s/\s+$//; } return wantarray ? @out : $out[0]; } foreach $MyFile (@ARGV) { $OutFile = $MyFile . ".clean"; print "$OutFile\n"; open(FILE, $MyFile); open(FILE2, ">$OutFile"); while (<FILE>) { ($junk, $junk2, $data) = split(/\t/, $_, 3); print FILE2 "$data"; } } ����������������������������linux-minidisc-0.9.13/libnetmd/utilities/diff.txt���������������������������������������������������0000664�0000000�0000000�00000012707�12262477515�0022044�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Index: logparse.pl =================================================================== RCS file: /var/cvs/libnetmd/utilities/logparse.pl,v retrieving revision 1.1 diff -u -r1.1 logparse.pl --- logparse.pl 15 May 2002 21:37:14 -0000 1.1 +++ logparse.pl 17 May 2002 16:13:57 -0000 @@ -10,8 +10,9 @@ my $PeekFlag = 0; # Lookahead flag (ugh!) my $UrbTime = 0; # Time elapsed when this URB was sent my $LastUrbTime = 0; # Time elapsed when previous URB was sent +my $FreeStyle = 0; # Allow lines with no obvious timestamp or line tag -my $LastVendor; # Last vendor request +my $LastVendor= ''; # Last vendor request my %UrbTypeMap = ( 'URB_FUNCTION_CONTROL_TRANSFER' => 'Control Transfer', @@ -36,10 +37,10 @@ # Main loop while( PeekLine() ) { - if( $Line =~ /^>>>>>>/ ) { + if( $Line =~ /^>>>/ ) { ParseOutgoing(); } - elsif( $Line =~ /^<<<<<</ ) { + elsif( $Line =~ /^<<</ ) { ParseIncoming(); } else { @@ -57,11 +58,11 @@ # Read and parse the URB direction & number header ReadLine() or die "Read error\n"; - if( $Line =~ />>>>>>> URB (\d+) going down/ ) { + if( $Line =~ />> +URB (\d+) going down/ ) { $UrbId = $1; # Save the ID number # Read and parse the URB type ReadLine() or die "Read error\n"; - if( $Line =~ /^-- (\S+):/ ) { + if( $Line =~ /^-- ?(\S+):/ ) { $UrbType = $1; } else { @@ -88,11 +89,11 @@ # Read and parse the URB direction & number header ReadLine() or die "Read error\n"; - if( $Line =~ /<<<<<<< URB (\d+) coming back/ ) { + if( $Line =~ /<< +URB (\d+) coming back/ ) { $UrbId = $1; # Save the ID number # Read and parse the URB type ReadLine() or die "Read error\n"; - if( $Line =~ /^-- (\S+):/ ) { + if( $Line =~ /^-- ?(\S+):/ ) { $UrbType = $1; } else { @@ -114,7 +115,7 @@ while( PeekLine() ) { # Handle 'key = value' lines; - if( $Line =~ /^(.*\S)\s+=\s+(.*)/ ) { + if( $Line =~ /^(.*\S)\s*=\s+(.*)/ ) { my $key = $1; my $value = $2; $Params{$key} = $value; @@ -122,6 +123,9 @@ if( $value =~ /^[0-9a-f]+ \(/ ) { $value =~ s/ .*//; } + if( $value =~ /^00+/ ) { + $value =~ s/^00+/0/; + } $TerseParams{$key} = $value; } # Handle hex data (eg transfers) @@ -176,24 +180,24 @@ print "$UrbDir $UrbId $TypeName: "; if ( $UrbType eq 'URB_FUNCTION_CONTROL_TRANSFER' ) { - print "Buflen $TerseParams{'TransferBufferLength'} "; + print "Buflen=$TerseParams{'TransferBufferLength'} "; unless( $Quiet ) { - print "Flags $TerseParams{'TransferFlags'} "; - print "Pipe $TerseParams{'PipeHandle'} "; + print "Flags=$TerseParams{'TransferFlags'} "; + print "Pipe=$TerseParams{'PipeHandle'} "; } } elsif ( $UrbType eq 'URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE' ) { - print "Index $TerseParams{'Index'} "; - print "Type $TerseParams{'DescriptorType'} "; - print "Lang $TerseParams{'LanguageId'} "; + print "Index=$TerseParams{'Index'} "; + print "Type=$TerseParams{'DescriptorType'} "; + print "Lang=$TerseParams{'LanguageId'} "; } elsif ( $UrbType eq 'URB_FUNCTION_SELECT_CONFIGURATION' ) { # Nothing here yet :) } elsif ( $UrbType eq 'URB_FUNCTION_VENDOR_INTERFACE' ) { - print "Req $TerseParams{'Request'} "; + print "Req=$TerseParams{'Request'} "; unless( $Quiet ) { - print "Value $TerseParams{'Value'} "; - print "Index $TerseParams{'Index'} "; - print "Res Bits $TerseParams{'RequestTypeReservedBits'} "; - print "Pipe $TerseParams{'PipeHandle'} " if( $Params{'PipeHandle'}); + print "Value=$TerseParams{'Value'} "; + print "Index=$TerseParams{'Index'} "; + print "Res Bits=$TerseParams{'RequestTypeReservedBits'} "; + print "Pipe=$TerseParams{'PipeHandle'} " if( $Params{'PipeHandle'}); } } print "\n"; @@ -235,20 +239,52 @@ } while( <> ) { # split out the line number and time fields - if( /^(\d+)\s+([0-9.]+)\s+(.*)$/ ) { + if( /^(\d+)\s+([0-9.]+)\s+(.*)$/ ) { # "old" usbsnoopy format $LineNo = $1; $LineTime = $2; $Line = $3; - next unless $Line; # SKIP blank lines - next if( $Line =~ /^UsbSnoop/ ); # Skip UsbSnoop internal stuff - next if( $Line =~ /^\d+:\s+/ ); # Skip hexdump 'count' lines - $Line =~ s/\s+$//; # Trim trailing whitespace $Line =~ s/ : / = /g; # Convert for easier parsing later - return 1; + } + elsif( /^\[(\d+) ms\] (.*)$/ ) { # 'new' usbsnoop format + $LineTime = $1; + $Line = $2; + if( $LineNo ) { # Could line numbers ourself + $LineNo++; + } + else { + $LineNo = 1; # Count line number ourself + $FreeStyle = 1; # Allow 'freestyle' lines + } + } + elsif( $FreeStyle ) { + s/^\s*//; + s/^[0-9a-f]+: //; # Nasty hack to get rid of markers in hex data + $Line = $_; + if( $Line =~ /^SetupPacket/ ) { + # Even nastier hack for the way setup packets are dumped + my $t = <>; + if( $t ) { + $t =~ s/^\s*//; + $t =~ s/\s+$//; + $t =~ s/^[0-9a-f]+: //; + $Line = "$Line $t"; + } + } + $LineNo++; } else { die "Parse error!"; } + next unless $Line; # SKIP blank lines + $Line =~ s/^\s*//; # Trim leading whitespace + $Line =~ s/\s+$//; # Trim trailing whitespace + next if( $Line =~ /^UsbSnoop/ ); # Skip UsbSnoop internal stuff + next if( $Line =~ /^fido=/ ); + next if( $Line =~ /^fdo=/ ); + next if( $Line =~ /^pdx=/ ); + next if( $Line =~ /^\d+:\s*$/ ); # Skip hexdump 'count' lines + #print "$LineNo/$LineTime '$Line'\n"; + return 1; } $Line = undef; return undef; ���������������������������������������������������������linux-minidisc-0.9.13/libnetmd/utilities/hex-to-char.c����������������������������������������������0000664�0000000�0000000�00000002217�12262477515�0022651�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* hex-to-char.c * Copyright (C) 2002, 2003 Marc Britten * * This file is part of libnetmd. * * libnetmd 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 2 of the License, or * (at your option) any later version. * * Libnetmd 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #include <stdio.h> int main(int argc, char* argv[]) { int i = 0; int j = 0; int iLen = 0; int iData = 0; char hex[5]; if(argc < 2) return 0; for(j = 1; j < argc; j++) { sprintf(hex, "0x%s", argv[j]); iData = strtol(hex, NULL, 16); if(iData < 30) printf(". "); else printf("%c ", iData); } printf("\n"); return 0; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/utilities/logparse.pl������������������������������������������������0000664�0000000�0000000�00000065633�12262477515�0022552�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# logparse.pl # Copyright (C) 2002, 2003 Marc Britten # # This file is part of libnetmd. # # libnetmd 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 2 of the License, or # (at your option) any later version. # # Libnetmd 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, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA # #!/usr/bin/perl -w use strict; use Getopt::Std; # Global variable for line info to avoid passing it all around my $LineNo; # Line number in log file my $LineTime; # Time elapsed when this line was written my $Line; # Rest of line my $PeekFlag = 0; # Lookahead flag (ugh!) my $UrbTime = 0; # Time elapsed when this URB was sent my $LastUrbTime = 0; # Time elapsed when previous URB was sent my $FreeStyle = 0; # Allow lines with no obvious timestamp or line tag my $LastVendor= ''; # Last vendor request my %UrbTypeMap = ( 'URB_FUNCTION_CONTROL_TRANSFER' => 'Control Transfer', 'URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE' => 'Get Descriptor', 'URB_FUNCTION_SELECT_CONFIGURATION' => 'Select Config', 'URB_FUNCTION_VENDOR_INTERFACE' => 'Vendor I/F', ); ############################################################################# # Argument processing my %Opt; getopts( 'qstv', \%Opt ) or Usage(); my $Quiet = $Opt{'q'}; # Very quiet output my $Verbose = $Opt{'v'}; # Verbose output my $ShowSetup = $Opt{'s'}; # Show setup packet data too my $ShowTime = $Opt{'t'}; # Show time information ############################################################################# # Map of opcode decode functions my %Decoders = ( '001808-10100000' => \&DecodeSetFlags, '001808-10100001' => \&DecodeSetFlags, '001808-10100100' => \&DecodeSetFlags, '001808-10100101' => \&DecodeSetFlags, '001808-10180100' => \&DecodeSetFlags, '001808-10180101' => \&DecodeSetFlags, '001808-80000000' => \&DecodeSetFlags, '001808-80000100' => \&DecodeSetFlags, '091808-10100000' => \&DecodeSetFlags, '091808-10100001' => \&DecodeSetFlags, '091808-10100100' => \&DecodeSetFlags, '091808-10100101' => \&DecodeSetFlags, '091808-10180100' => \&DecodeSetFlags, '091808-10180101' => \&DecodeSetFlags, '091808-80000000' => \&DecodeSetFlags, '091808-80000100' => \&DecodeSetFlags, '001806-01101000' => \&DecodeDiscFlagsRequest, '091806-01101000' => \&DecodeDiscFlagsReply, '001809-80010230' => \&DecodePlayerStatusRequest, '091809-80010230' => \&DecodePlayerStatusReply, '001809-80010330' => \&DecodeDiscStatusRequest, '091809-80010330' => \&DecodeDiscStatusReply, '001809-80010430' => \&DecodePlaybackStatusRequest, '091809-80010430' => \&DecodePlaybackStatusReply, '001806-01201001' => \&DecodeCheckoutStatusRequest, '091806-01201001' => \&DecodeCheckoutStatusReply, '001806-02201801' => \&DecodeDiscInfoRequest, '091806-02201801' => \&DecodeDiscInfoReply, '001806-02201802' => \&DecodeTrackTitleRequest, '091806-02201802' => \&DecodeTrackTitleReply, '001806-02101000' => \&DecodeDiscCapacityRequest, '091806-02101000' => \&DecodeDiscCapacityReply, '001806-02201001' => \&DecodeTrackInfoRequest, '091806-02201001' => \&DecodeTrackInfoReply, '001806-02101001' => \&DecodeTrackCountRequest, '091806-02101001' => \&DecodeTrackCountReply, '001840-ff010020' => \&DecodeDeleteTrack, '001850-ff000000' => \&DecodeSetPosition, '001850-ff010000' => \&DecodeSetTrack, '0018c3-ff390000' => \&DecodeFastForward, '0018c3-ff490000' => \&DecodeRewind, '0018c3-ff750000' => \&DecodeStartPlayback, '0018c3-ff7d0000' => \&DecodePause, '0018c5-ff000000' => \&DecodeStopPlayback, '091840-00010020' => \&DecodeDeleteTrack, '091850-00000000' => \&DecodeSetPosition, '091850-00010000' => \&DecodeSetTrack, '0918c3-00390000' => \&DecodeFastForward, '0918c3-00490000' => \&DecodeRewind, '0918c3-00750000' => \&DecodeStartPlayback, '0918c3-007d0000' => \&DecodePause, '0918c5-00000000' => \&DecodeStopPlayback, '001840-ff0000' => \&DecodeInitialiseDisc, '091840-000000' => \&DecodeInitialiseDisc, ); ############################################################################# # Main loop while( PeekLine() ) { if( $Line =~ /^>>>/ ) { ParseOutgoing(); } elsif( $Line =~ /^<<</ ) { ParseIncoming(); } else { print "State error: Unexpected line '$Line' at $LineNo !\n"; ReadLine(); } } print "Done.\n"; exit 0; ############################################################################# sub ParseOutgoing { my $UrbDir = '->'; my ( $UrbId, $UrbType ); # Read and parse the URB direction & number header ReadLine() or die "Read error\n"; if( $Line =~ />> +URB (\d+) going down/ ) { $UrbId = $1; # Save the ID number # Read and parse the URB type ReadLine() or die "Read error\n"; if( $Line =~ /^-- ?(\S+):/ ) { $UrbType = $1; } else { die "State error: Unexpected line '$Line' at $LineNo !\n"; } # Time this outgoing URB as now, save the previous time $LastUrbTime = $UrbTime; $UrbTime = $LineTime; # Print time info if desired if( $ShowTime ) { printf "+ %.3f (%.3f)\n", $UrbTime, $UrbTime - $LastUrbTime; } ReadUrb( $UrbDir, $UrbId, $UrbType ); } else { die "State error: Unexpected line '$Line' at $LineNo !\n"; } } sub ParseIncoming { my $UrbDir = '<-'; my ( $UrbId, $UrbType ); # Read and parse the URB direction & number header ReadLine() or die "Read error\n"; if( $Line =~ /<< +URB (\d+) coming back/ ) { $UrbId = $1; # Save the ID number # Read and parse the URB type ReadLine() or die "Read error\n"; if( $Line =~ /^-- ?(\S+):/ ) { $UrbType = $1; } else { die "State error: Unexpected line '$Line' at $LineNo !\n"; } ReadUrb( $UrbDir, $UrbId, $UrbType ); } else { die "State error: Unexpected line '$Line' at $LineNo !\n"; } } sub ReadUrb { my( $UrbDir, $UrbId, $UrbType ) = @_; my %Params; my %TerseParams; my $Data; while( PeekLine() ) { # Handle 'key = value' lines; if( $Line =~ /^(.*\S)\s*=\s+(.*)/ ) { my $key = $1; my $value = $2; $Params{$key} = $value; # Strip off flag explanations etc for terse version if( $value =~ /^[0-9a-f]+ \(/ ) { $value =~ s/ .*//; } if( $value =~ /^00+/ ) { $value =~ s/^00+/0/; } $TerseParams{$key} = $value; } # Handle hex data (eg transfers) elsif( $Line =~ /^([0-9a-f ]+)$/ ) { if( $Data ) { $Data = "$Data $Line"; } else { $Data = $Line; } } # Anything else must be the end of the URB data else { last; # Break out of the loop, ie cleanup and return } # We only peeked at the line... Now read it so the next peek gets the # next one ReadLine() or die "Read error!\n"; } # Remap URB type name to something nicer if we can my $TypeName = $UrbType; if( $UrbTypeMap{$TypeName} ) { $TypeName = $UrbTypeMap{$TypeName}; } if( $UrbType eq 'URB_FUNCTION_VENDOR_INTERFACE' ) { # Save vendor IDs as we print them out $LastVendor = $TerseParams{'Request'}; # Put a seperator before request 0x80's to seperate things a bit if( $LastVendor eq '80' ) { print "----------------------------------------------\n"; } } # Decide whether or not to print anything my $DoPrint = 1; if( $Data ) { my $rc = DecodeNetMD( $Data ); if( $Quiet && $rc ) { $DoPrint = 0; } } if( $Quiet && $LastVendor ) { if( $UrbType eq 'URB_FUNCTION_VENDOR_INTERFACE' ) { if( ($LastVendor eq '01') || ($LastVendor eq '81' )) { $DoPrint = 0; } } if( $UrbType eq 'URB_FUNCTION_CONTROL_TRANSFER' ) { if( ($LastVendor eq '01') || ($LastVendor eq '80' )) { $DoPrint = 0; } } } if ( $DoPrint ) { # Start of line is common print "$UrbDir $UrbId $TypeName: "; if ( $UrbType eq 'URB_FUNCTION_CONTROL_TRANSFER' ) { print "Buflen=$TerseParams{'TransferBufferLength'} "; unless( $Quiet ) { print "Flags=$TerseParams{'TransferFlags'} "; print "Pipe=$TerseParams{'PipeHandle'} "; } } elsif ( $UrbType eq 'URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE' ) { print "Index=$TerseParams{'Index'} "; print "Type=$TerseParams{'DescriptorType'} "; print "Lang=$TerseParams{'LanguageId'} "; } elsif ( $UrbType eq 'URB_FUNCTION_SELECT_CONFIGURATION' ) { # Nothing here yet :) } elsif ( $UrbType eq 'URB_FUNCTION_VENDOR_INTERFACE' ) { print "Req=$TerseParams{'Request'} "; unless( $Quiet ) { print "Value=$TerseParams{'Value'} "; print "Index=$TerseParams{'Index'} "; print "Res Bits=$TerseParams{'RequestTypeReservedBits'} "; print "Pipe=$TerseParams{'PipeHandle'} " if( $Params{'PipeHandle'}); } } print "\n"; # Hexdump any setup packets if ( $ShowSetup && $Params{'SetupPacket'} ) { HexDump( " Setup: ", 8, $Params{'SetupPacket'}, 0 ); } # Hexdump any data transferred if ( $Data ) { HexDump( " ", 16, $Data, 1 ); } # In verbose mode print out all the key/values if ( $Verbose ) { foreach my $k (sort keys %Params) { print " $k = $Params{$k}\n"; } print "------------------\n" } if( $UrbDir eq '<-' ) { print "\n"; # Extra blank line for readbility } } # else { # print "--\n"; # } } ############################################################################# sub DecodeNetMD { my ($data) = @_; my @byte = split( / /, $data ); my ( $direction, $type, $groupcode, $selector ); if( $byte[0] eq '00' && $byte[1] eq '18' ) { $type = 'NetMD Request'; $direction = 'send'; } elsif( $byte[0] eq '09' && $byte[1] eq '18' ) { $type = 'NetMD Response'; $direction = 'receive'; } else { return 0; } $groupcode = $byte[2]; if( $#byte == 5 ) { $selector = "$byte[0]$byte[1]$byte[2]-$byte[3]$byte[4]$byte[5]"; } elsif( $#byte >= 6 ) { $selector = "$byte[0]$byte[1]$byte[2]-$byte[3]$byte[4]$byte[5]$byte[6]"; } else { print "*** Short NetMD block! $data\n"; return 0; } my $decoder = $Decoders{$selector}; if( $decoder ) { return $decoder->( @byte ); } else { print "$type: $selector\n"; return 0; } } ############################################################################# sub CompareConst { my( $expected, @byte ) = @_; my $actual = shift( @byte ); while( (length $actual < length $expected )) { last unless( @byte ); $actual = $actual . ' ' . shift( @byte ); } if( $expected ne $actual ) { print "Const mismatch: Expected '$expected' Got '$actual'\n"; return 0; } return 1; } sub ShiftBy { my( $amt, @data ) = @_; for( my $i = 0; $i < $amt; $i++ ) { shift( @data ); } return @data; } ############################################################################# sub DecodePlayerStatusRequest { my( @data ) = @_; print "-> ?? Player Status?"; my $rc = CompareConst( '00 18 09 80 01 02 30 88 00 00 30 88 04 00 ff 00 00 00 00 00', @data ); print "\n"; return $rc; } sub DecodePlayerStatusReply { my( @data ) = @_; print "<- ?? Player Status: "; my $rc = CompareConst( '09 18 09 80 01 02 30 88 00 00 30 88 04 00 10 00 00 09 00 00 00 07', @data ); if( $rc ) { @data = ShiftBy( 22, @data ); print join( ' ', @data ); } print "\n"; return $rc; } ############################################################################# sub DecodeDiscCapacityRequest { my( @data ) = @_; print "-> Disc Capacity?"; my $rc = CompareConst( '00 18 06 02 10 10 00 30 80 03 00 ff 00 00 00 00 00', @data ); print "\n"; return $rc; } sub DecodeDiscCapacityReply { my( @data ) = @_; my @time; print "<- Disc Capacity: "; my $rc = CompareConst( '09 18 06 02 10 10 00 30 80 03 00 10 00 00 1d 00 00 00 1b 80 03 00 17 80 00', @data ); if( $rc ) { @data = ShiftBy( 25, @data ); # Decode all 3 time parts for( my $i = 0; $i < 3; $i++ ) { my $b = shift( @data ); if( $b ne '00' ) { print "Time decode error\n"; return 0; } $b = shift( @data ); if( $b ne '05' ) { print "Expecting 5 byte timecodes (got $b)?\n"; return 0; } shift( @data ); # Ignore leading 00 my $t = shift( @data) . ':' . shift( @data) . ':' . shift( @data) . '.' . shift( @data); $time[$i] = $t; } print "Max: $time[1], Used: $time[0], Avail: $time[2]"; } print "\n"; return $rc; } ############################################################################# sub DecodeDiscStatusRequest { my( @data ) = @_; print "-> ?? Disc Status? "; my $rc; if ( $data[8] eq '01' ) { print "(stopped) "; $rc = CompareConst( '00 18 09 80 01 03 30 88 01 00 30 88 05 00 30 88 07 00 ff 00 00 00 00 00', @data ); } elsif( $data[8] eq '02' ) { print "(playing) "; $rc = CompareConst( '00 18 09 80 01 03 30 88 02 00 30 88 05 00 30 88 06 00 ff 00 00 00 00 00', @data ); } else { print "(unknown state) "; $rc = 0; } print "\n"; return $rc; } sub DecodeDiscStatusReply { my( @data ) = @_; print "<- ?? Disc Status: "; my $status = ""; if( $data[8] eq '02' && $data[30] eq 'c3' ) { if( $data[31] eq '75' ) { $status = '(Normal Playback)'; } elsif( $data[31] eq '7d' ) { $status = '(Paused)'; } elsif( $data[31] eq '3f' ) { $status = '(FF)'; } elsif( $data[31] eq '4f' ) { $status = '(Rewind)'; } } @data = ShiftBy( 26, @data); print join( ' ', @data ); print " $status\n"; return 1; } ############################################################################# sub DecodePlaybackStatusRequest { my( @data ) = @_; print "-> ?? Playback Status? "; my $rc = CompareConst( '00 18 09 80 01 04 30 88 02 00 30 88 05 00 30 00 03 00 30 00 02 00 ff 00 00 00 00 00', @data ); print "\n"; return $rc; } sub DecodePlaybackStatusReply { my( @data ) = @_; print "<- ?? Playback Status: "; my $rc = CompareConst( '09 18 09 80 01 04 30 88 02 00 30 88 05 00 30 00 03 00 30 00 02 00 10 00 00 0d 00 00 00 0b 00 02 00 07 00 00', @data ); if( $rc ) { @data = ShiftBy( 36, @data ); my $track = shift( @data ); my $time = join( ':', @data ); print "Track $track, Time $time"; } print "\n"; return $rc; } ############################################################################# sub DecodeDiscFlagsRequest { my( @data ) = @_; print "-> Disc Flags? "; my $rc = CompareConst( '00 18 06 01 10 10 00 ff 00 00 01 00 0b', @data ); print "\n"; return $rc; } sub DecodeDiscFlagsReply { my( @data ) = @_; print "<- Disc Flags: "; my $rc = CompareConst( '09 18 06 01 10 10 00 10 00 00 01 00 0b', @data ); if( $rc ) { @data = ShiftBy( 13, @data ); my $flags = shift( @data ); print "$flags "; if( $flags eq 50 ) { print "(Write Protected)"; } elsif( $flags eq 10 ) { print "('Normal'?)"; } } print "\n"; return $rc; } ############################################################################# sub DecodeDeleteTrack { my( @data ) = @_; my $str; my $dir = shift( @data ); if( $dir eq '00' ) { $str = '->'; } elsif( $dir eq '09' ) { $str = '<-'; } else { print "*** Invalid control control msg\n"; return 0; } @data = ShiftBy( 9, @data ); print "$str Delete Track: $data[0]\n"; return 1; } ############################################################################# sub DecodeInitialiseDisc { my( @data ) = @_; my $dir = shift( @data ); if( $dir eq '00' ) { print "-> Initialise Disc\n"; } elsif( $dir eq '09' ) { print "<- Initialise Disc\n"; } return 1; } ############################################################################# sub DecodeSimple { my( $tag, @data ) = @_; my $str; my $dir = shift( @data ); if( $dir eq '00' ) { $str = '->'; } elsif( $dir eq '09' ) { $str = '<-'; } else { print "*** Invalid control control msg\n"; return 0; } @data = ShiftBy( 6, @data ); print "$str $tag: ", join( ' ', @data ), "\n"; return 1; } ############################################################################# sub DecodeStartPlayback { my( @data ) = @_; return DecodeSimple( "Start playback", @data ); } sub DecodeStopPlayback { my( @data ) = @_; return DecodeSimple( "Stop playback", @data ); } sub DecodePause { my( @data ) = @_; return DecodeSimple( "Pause", @data ); } sub DecodeFastForward { my( @data ) = @_; return DecodeSimple( "Start Fast Forward Mode", @data ); } sub DecodeRewind { my( @data ) = @_; return DecodeSimple( "Start Rewind Mode", @data ); } ############################################################################# sub DecodeSetPosition { my( @data ) = @_; if( $data[0] eq '00' ) { print '-> Set Position: '; } else { print '<- Set Position: '; } # Skip opcode and leading zeroes @data = ShiftBy( 10, @data ); my $track = shift( @data ); my $position = "$data[0]$data[1]:$data[2].$data[3]"; $position =~ s/^0//g; print "Track $track - $position\n"; return 1; } sub DecodeSetTrack { my( @data ) = @_; if( $data[0] eq '00' ) { print '-> Set Track: '; } else { print '<- Set Track: '; } # Skip opcode and leading zeroes @data = ShiftBy( 10, @data ); my $track = shift( @data ); print "$track\n"; return 1; } ############################################################################# sub DecodeSetFlags { my( @data ) = @_; my $str; my $dir = shift( @data ); if( $dir eq '00' ) { $str = '->'; } elsif( $dir eq '09' ) { $str = '<-'; } else { print "*** Invalid control msg\n"; return 0; } shift( @data ); shift( @data ); print "$str ?? Set Flags ??: ", join( ' ', @data ), "\n"; return 1; } ############################################################################# sub DecodeCheckoutStatusRequest { my( @data ) = @_; @data = ShiftBy( 7, @data ); # Shift past opcode my $track = shift( @data ) . shift( @data ); print "Checkout Status Request: Track $track "; my $rc = CompareConst( 'ff 00 00 01 00 08', @data ); print "\n"; return $rc; } sub DecodeCheckoutStatusReply { my( @data ) = @_; @data = ShiftBy( 7, @data ); # Shift past opcode my $track = shift( @data ) . shift( @data ); print "Checkout Status Reply: Track $track, "; my $rc = CompareConst( '10 00 00 01 00 08', @data ); @data = ShiftBy( 6, @data ); my $status = $data[0]; print "Status $status "; if( $status ne '00' ) { print '(Locked?)'; } print "\n"; return $rc; } ############################################################################# sub DecodeTrackCountRequest { my( @data ) = @_; @data = ShiftBy( 7, @data ); # Shift past opcode print "Track Count Request"; my $rc = CompareConst( '30 00 10 00 ff 00 00 00 00 00', @data ); print "\n"; return $rc; } sub DecodeTrackCountReply { my( @data ) = @_; @data = ShiftBy( 7, @data ); # Shift past opcode print "Track Count Reply: "; my $rc = CompareConst( '30 00 10 00 10 00 00 08 00 00 00 06 00 10 00 02 00', @data ); @data = ShiftBy( 17, @data ); print shift( @data ), "\n"; return $rc; } ############################################################################# sub DecodeDiscTitleRequest { my( @data ) = @_; @data = ShiftBy( 7, @data ); # Shift past opcode print "Disc Title request "; my $rc = CompareConst( '00 00 30 00 0a 00 ff 00 00 00 00 00', @data ); print "\n"; return $rc; } sub DecodeDiscTitleReply { my( @data ) = @_; @data = ShiftBy( 7, @data ); # Shift past opcode print "Disc Title reply: "; my $rc = CompareConst( '00 00 30 00 0a 00 10 00 00', @data ); @data = ShiftBy( 18, @data ); my $title = ''; while( @data ) { $title = $title . chr( hex( shift( @data ))); } print "Title: '$title'\n"; return $rc; } ############################################################################# sub DecodeDiscInfoRequest { my( @data ) = @_; if( $data[11] eq '0a' ) { return DecodeDiscTitleRequest( @data ); } else { return 0; } } sub DecodeDiscInfoReply { my( @data ) = @_; if( $data[11] eq '0a' ) { return DecodeDiscTitleReply( @data ); } else { return 0; } } ############################################################################# sub DecodeTrackBitrateRequest { my( @data ) = @_; @data = ShiftBy( 7, @data ); # Shift past opcode my $track = shift( @data ) . shift( @data ); print "Bitrate request: Track $track "; my $rc = CompareConst( '30 80 07 00 ff 00 00 00 00 00', @data ); print "\n"; return $rc; } sub DecodeTrackBitrateReply { my( @data ) = @_; @data = ShiftBy( 7, @data ); # Shift past opcode my $track = shift( @data ) . shift( @data ); print "Bitrate reply: Track $track "; my $rc = CompareConst( '30 80 07 00 10 00 00 0a 00 00 00 08 80 07 00 04 01 10', @data ); if ( $rc ) { @data = ShiftBy( 18, @data ); my $bitrate = $data[0]; if ( $bitrate eq '90' ) { print 'SP '; } elsif ( $bitrate eq '92' ) { print 'LP2 '; } elsif ( $bitrate eq '93' ) { print 'LP4 '; } else { print "Unknown bitrate $bitrate "; } if ( $data[1] eq '00' ) { print "Stereo"; } else { print "Mono"; } } print "\n"; return $rc; } sub DecodeTrackLengthRequest { my( @data ) = @_; @data = ShiftBy( 7, @data ); # Shift past opcode my $track = shift( @data ) . shift( @data ); print "Length request: Track $track "; my $rc = CompareConst( '30 00 01 00 ff 00 00 00 00 00', @data ); print "\n"; return $rc; } sub DecodeTrackLengthReply { my( @data ) = @_; @data = ShiftBy( 7, @data ); # Shift past opcode my $track = shift( @data ) . shift( @data ); print "Length reply: Track $track "; my $rc = CompareConst( '30 00 01 00 10 00 00 0c 00 00 00 0a 00 01 00 06 00 00', @data ); if ( $rc ) { @data = ShiftBy( 18, @data ); my $length = "$data[0]$data[1]:$data[2].$data[3]"; $length =~ s/^0//g; print "Length $length"; } print "\n"; return $rc; } sub DecodeTrackInfoRequest { my( @data ) = @_; if( $data[10] eq '80' && $data[11] eq '07' ) { return DecodeTrackBitrateRequest( @data ); } elsif( $data[10] eq '00' && $data[11] eq '01' ) { return DecodeTrackLengthRequest( @data ); } else { return 0; } } sub DecodeTrackInfoReply { my( @data ) = @_; if( $data[10] eq '80' && $data[11] eq '07' ) { return DecodeTrackBitrateReply( @data ); } elsif( $data[10] eq '00' && $data[11] eq '01' ) { return DecodeTrackLengthReply( @data ); } else { return 0; } } ############################################################################# sub DecodeTrackTitleRequest { my( @data ) = @_; @data = ShiftBy( 7, @data ); # Shift past opcode my $track = shift( @data ) . shift( @data ); print "Track Title request: Track $track "; my $rc = CompareConst( '30 00 0a 00 ff 00 00 00 00 00', @data ); print "\n"; return $rc; } sub DecodeTrackTitleReply { my( @data ) = @_; @data = ShiftBy( 7, @data ); # Shift past opcode my $track = shift( @data ) . shift( @data ); print "Track Title reply: Track $track "; my $rc = CompareConst( '30 00 0a 00 10 00 00', @data ); @data = ShiftBy( 16, @data ); my $title = ''; while( @data ) { $title = $title . chr( hex( shift( @data ))); } print "Title: '$title'\n"; return $rc; } ############################################################################# # ReadLine() - Read the next line from the file, skipping cruft and tidying # up. sub ReadLine { # If some function peeked ahead, we don't need to actually read the line if( $PeekFlag ) { $PeekFlag = 0; return 1; } while( <> ) { # split out the line number and time fields if( /^(\d+)\s+([0-9.]+)\s+(.*)$/ ) { # "old" usbsnoopy format $LineNo = $1; $LineTime = $2; $Line = $3; $Line =~ s/ : / = /g; # Convert for easier parsing later } elsif( /^\[(\d+) ms\] (.*)$/ ) { # 'new' usbsnoop format $LineTime = $1; $Line = $2; if( $LineNo ) { # Could line numbers ourself $LineNo++; } else { $LineNo = 1; # Count line number ourself $FreeStyle = 1; # Allow 'freestyle' lines } } elsif( $FreeStyle ) { s/^\s*//; s/^[0-9a-f]+: //; # Nasty hack to get rid of markers in hex data $Line = $_; if( $Line =~ /^SetupPacket/ ) { # Even nastier hack for the way setup packets are dumped my $t = <>; if( $t ) { $t =~ s/^\s*//; $t =~ s/\s+$//; $t =~ s/^[0-9a-f]+: //; $Line = "$Line $t"; } } $LineNo++; } else { die "Parse error!"; } next unless $Line; # SKIP blank lines $Line =~ s/^\s*//; # Trim leading whitespace $Line =~ s/\s+$//; # Trim trailing whitespace next if( $Line =~ /^UsbSnoop/ ); # Skip UsbSnoop internal stuff next if( $Line =~ /^fido=/ ); next if( $Line =~ /^fdo=/ ); next if( $Line =~ /^pdx=/ ); next if( $Line =~ /^\d+:\s*$/ ); # Skip hexdump 'count' lines $Line =~ s/^[0-9a-f]+: //; # Nasty hack to get rid of markers in hex data #print "$LineNo/$LineTime '$Line'\n"; return 1; } $Line = undef; return undef; } ############################################################################# # PeekLine() - Peek at the next line, but leave it available for reading. # makes the parsing mess a bit simpler. NB This overwrite the global $Line # etc variables. sub PeekLine { my $result = 1; # If we already peeked we don't need to peek again if( $PeekFlag ) { # Handle the case where a previous peek found EOF $result = undef unless $Line; } else { $result = ReadLine(); $PeekFlag = 1; } return $result; } sub HexDump { my ($prefix, $linemax, $str, $bool) = @_; my @bytes = split( / /, $str ); my $offset = 0; my $size = $#bytes + 1; #print "** $str\n"; while( $size > 0 ) { my $rowsize = ($size > $linemax ) ? $linemax : $size; printf "%s%04x: ", $prefix, $offset; my $i; for( $i = 0; $i < $rowsize; $i++ ) { print "$bytes[$i + $offset] "; } for( ; $i < $linemax; $i++ ) { print " "; } print " "; if($bool) { for( $i = 0; $i < $rowsize; $i++ ) { my $c = '.'; my $b = $bytes[$i + $offset]; if( $b ) { $b = hex $b; # Convert to decimal if( $b >= 32 && $b < 127 ) { $c = chr $b; } } print $c; } } print "\n"; $size -= $rowsize; $offset += $rowsize; } } ############################################################################# sub Usage { print<<EOS; logparse - Try to simplify USBSnoopy logs Usage: logparse [opts] <logfile>\n Options include:- -v Verbose output -q Be extra quiet -s Show setup packets too -t Show packet times too EOS exit 1; } �����������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/utils.c��������������������������������������������������������������0000664�0000000�0000000�00000016356�12262477515�0017670�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * utils.c * * This file is part of libnetmd, a library for accessing Sony NetMD devices. * * Copyright (C) 2011 Alexander Sulfrian * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #include <string.h> #include "utils.h" #include "log.h" inline unsigned char proper_to_bcd_single(unsigned char value) { unsigned char high, low; low = (value % 10) & 0xf; high = (((value / 10) % 10) * 0x10U) & 0xf0; return high | low; } inline unsigned char* proper_to_bcd(unsigned int value, unsigned char* target, size_t len) { while (value > 0 && len > 0) { target[len - 1] = proper_to_bcd_single(value & 0xff); value /= 100; len--; } return target; } inline unsigned char bcd_to_proper_single(unsigned char value) { unsigned char high, low; high = (value & 0xf0) >> 4; low = (value & 0xf); return ((high * 10U) + low) & 0xff; } inline unsigned int bcd_to_proper(unsigned char* value, size_t len) { unsigned int result = 0; unsigned int nibble_value = 1; for (; len > 0; len--) { result += nibble_value * bcd_to_proper_single(value[len - 1]); nibble_value *= 100; } return result; } void netmd_check_response_bulk(netmd_response *response, const unsigned char* const expected, const size_t expected_length, netmd_error *error) { unsigned char *current; /* only check if there was no error before */ if (*error == NETMD_NO_ERROR) { if ((response->length - response->position) < expected_length) { *error = NETMD_RESPONSE_TO_SHORT; } else { current = response->content + response->position; if (memcmp(current, expected, expected_length) == 0) { response->position += expected_length; } else { netmd_log_hex(0, current, expected_length); netmd_log_hex(0, expected, expected_length); *error = NETMD_RESPONSE_NOT_EXPECTED; } } } } void netmd_check_response_word(netmd_response *response, const uint16_t expected, netmd_error *error) { unsigned char buf[2]; unsigned char *tmp = buf; /* only check if there was no error before */ if (*error == NETMD_NO_ERROR) { if ((response->length - response->position) < 2) { *error = NETMD_RESPONSE_TO_SHORT; } else { netmd_copy_word_to_buffer(&tmp, expected, 0); netmd_check_response_bulk(response, buf, 2, error); } } } void netmd_check_response_doubleword(netmd_response *response, const uint32_t expected, netmd_error *error) { unsigned char buf[4]; unsigned char *tmp = buf; /* only check if there was no error before */ if (*error == NETMD_NO_ERROR) { if ((response->length - response->position) < 4) { *error = NETMD_RESPONSE_TO_SHORT; } else { netmd_copy_doubleword_to_buffer(&tmp, expected, 0); netmd_check_response_bulk(response, buf, 4, error); } } } void netmd_check_response(netmd_response *response, const unsigned char expected, netmd_error *error) { /* only check if there was no error before */ if (*error == NETMD_NO_ERROR) { if ((response->length - response->position) < 1) { *error = NETMD_RESPONSE_TO_SHORT; } else { if (response->content[response->position] == expected) { response->position++; } else { netmd_log_hex(0, response->content + response->position, 1); netmd_log_hex(0, &expected, 1); *error = NETMD_RESPONSE_NOT_EXPECTED; } } } } void netmd_read_response_bulk(netmd_response *response, unsigned char* target, const size_t length, netmd_error *error) { /* only copy if there was no error before */ if (*error == NETMD_NO_ERROR) { if ((response->length - response->position) < length) { *error = NETMD_RESPONSE_TO_SHORT; } else { if (target) { memcpy(target, response->content + response->position, length); } response->position += length; } } } unsigned char *netmd_copy_word_to_buffer(unsigned char **buf, uint16_t value, int little_endian) { if (little_endian == 0) { **buf = (unsigned char)((value >> 8) & 0xff); (*buf)++; } **buf = (unsigned char)((value >> 0) & 0xff); (*buf)++; if (little_endian == 1) { **buf = (unsigned char)((value >> 8) & 0xff); (*buf)++; } return *buf; } unsigned char *netmd_copy_doubleword_to_buffer(unsigned char **buf, uint32_t value, int little_endian) { int8_t diff = 8; int bit = 24; int i; if (little_endian == 1) { diff = -8; bit = 0; } for (i = 0; i < 4; i++, bit = (bit - diff) & 0xff) { **buf = (unsigned char)(value >> bit) & 0xff; (*buf)++; } return *buf; } unsigned char *netmd_copy_quadword_to_buffer(unsigned char **buf, uint64_t value) { **buf = (value >> 56) & 0xff; (*buf)++; **buf = (value >> 48) & 0xff; (*buf)++; **buf = (value >> 40) & 0xff; (*buf)++; **buf = (value >> 32) & 0xff; (*buf)++; **buf = (value >> 24) & 0xff; (*buf)++; **buf = (value >> 16) & 0xff; (*buf)++; **buf = (value >> 8) & 0xff; (*buf)++; **buf = (value >> 0) & 0xff; (*buf)++; return *buf; } /* TODO: add error */ unsigned char netmd_read(netmd_response *response) { return response->content[response->position++]; } uint16_t netmd_read_word(netmd_response *response) { int i; uint16_t value; value = 0; for (i = 0; i < 2; i++) { value = (((unsigned int)value << 8U) | ((unsigned int)response->content[response->position] & 0xff)) & 0xffff; response->position++; } return value; } uint32_t netmd_read_doubleword(netmd_response *response) { int i; uint32_t value; value = 0; for (i = 0; i < 4; i++) { value <<= 8; value += (response->content[response->position] & 0xff); response->position++; } return value; } uint64_t netmd_read_quadword(netmd_response *response) { int i; uint64_t value; value = 0; for (i = 0; i < 8; i++) { value <<= 8; value += (response->content[response->position] & 0xff); response->position++; } return value; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/libnetmd/utils.h��������������������������������������������������������������0000664�0000000�0000000�00000003153�12262477515�0017664�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef UTILS_H #define UTILS_H #include <stddef.h> #include <stdint.h> #include "error.h" typedef struct { unsigned char content[255]; size_t length; size_t position; } netmd_response; #ifndef min #define min(a,b) ((a)<(b)?(a):(b)) #endif unsigned char proper_to_bcd_single(unsigned char value); unsigned char* proper_to_bcd(unsigned int value, unsigned char* target, size_t len); unsigned char bcd_to_proper_single(unsigned char value); unsigned int bcd_to_proper(unsigned char* value, size_t len); void netmd_check_response_bulk(netmd_response *response, const unsigned char* const expected, const size_t expected_length, netmd_error *error); void netmd_check_response_word(netmd_response *response, const uint16_t expected, netmd_error *error); void netmd_check_response(netmd_response *response, const unsigned char expected, netmd_error *error); void netmd_read_response_bulk(netmd_response *response, unsigned char* target, const size_t length, netmd_error *error); unsigned char *netmd_copy_word_to_buffer(unsigned char **buf, uint16_t value, int little_endian); unsigned char *netmd_copy_doubleword_to_buffer(unsigned char **buf, uint32_t value, int little_endian); unsigned char *netmd_copy_quadword_to_buffer(unsigned char **buf, uint64_t value); unsigned char netmd_read(netmd_response *response); uint16_t netmd_read_word(netmd_response *response); uint32_t netmd_read_doubleword(netmd_response *response); uint64_t netmd_read_quadword(netmd_response *response); #endif ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/md.pro������������������������������������������������������������������������0000664�0000000�0000000�00000000175�12262477515�0015700�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������TEMPLATE =subdirs CONFIG +=order SUBDIRS = libnetmd libhimd netmdcli himdcli !without_gui: { SUBDIRS += qhimdtransfer } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/������������������������������������������������������������������������0000775�0000000�0000000�00000000000�12262477515�0015662�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/.gitignore��������������������������������������������������������������0000664�0000000�0000000�00000000005�12262477515�0017645�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������*.pyc���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/README������������������������������������������������������������������0000664�0000000�0000000�00000005324�12262477515�0016546�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libnetmd.py - A python implementation of NetMD protocol. DISCLAIMER In short: If it break, you get to keep the pieces. This library implements a proprietary, non-documented protocol. Some methods are not tested [enough], so they might just not work, or cause data loss, or brick your NetMD. Use at your own risk. REQUIREMENTS libusb1 python2.4 or later (not compatible with python 3.x), ctypes (required by python-libusb1, included here) A NetMD minidisc player. An USB cable. Linux: Your distro should package everything you need (python2.4 + ctypes). Windows: As of this writing, Windows XP, 2003, Vista & later are supported by libusb-1.0, both in 32 and 64 bits. - Go here: http://code.google.com/p/libusb-winusb-wip/downloads/list and download: - latest libusb release (libusb_2010.10.14.7z as of this writing) - zadig.exe - Extract libusb-1.0.dll to your system32 folder (should be something like C:\windows\system32). - Plug your NetMD via USB - Run zadig.exe, and select your inidisc in the drop-down list, then click "install". You will be prompted for confirmation that you really want to install this non-certified driver, then installation will happen. If you get errors, it might mean a driver is already installed for this device, you should uninstall it and retry installing zadig's driver. - If prompted, reboot. - Run python NetMD tools (example: c:\Python26\python.exe lsmd.py) Note: wait for the driver to be loaded before running commands, otherwise you will get errors, like "LIBUSB_ERROR_NOT_SUPPORTED". Note: by default, python does not package the Crypto package, required to download track to NetMD devices. (TODO: add Crypto URL here.) For dump_md.py: sox (and plugins to access your audio system) A sound card with analog input. An audio cable. FILES Libraries: libnetmd.py Python implementation of NetMD protocol. libusb1.py Ctypes-based python wrapper around libusb1. usb1.py Object definitions for libusb1.py functions. Utils: lsusb.py Sample implementation of lsusb command using usb1.py. mdctl.py Stupid pdb-based command line to test libnetmd.py methods. lsmd.py Display disc title, tracks, ... of connected NetMD. dump_md.py Play tracks on a connected NetMD and record them to files. NOTES You need to be root to access a device on the USB bus (or at least, to have read/write permission on the /proc/bus/usb/*/* corresponding to your NetMD). dump_md.py contains some Works-For-Me values, it might require some tweaks for tracks to be properly recorded (depends on noise level, minidisk player reactivity...). ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/TODO��������������������������������������������������������������������0000664�0000000�0000000�00000000314�12262477515�0016350�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Write documentation (docstrings for python libraries, '-h' for utilities). Make libraries a valid, installable python package. Integration with udev (to remove the need to be root to access usb device). ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/downloadhack.py���������������������������������������������������������0000664�0000000�0000000�00000005465�12262477515�0020704�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python import os import usb1 import libnetmd from Crypto.Cipher import DES def main(bus=None, device_address=None): context = usb1.LibUSBContext() for md in libnetmd.iterdevices(context, bus=bus, device_address=device_address): md_iface = libnetmd.NetMDInterface(md) DownloadHack(md_iface) class EKBopensource: def getRootKey(self): return "\x12\x34\x56\x78\x9a\xbc\xde\xf0\x0f\xed\xcb\xa9\x87\x65\x43\x21" def getEKBID(self): return 0x26422642 def getEKBDataForLeafId(self,leaf_id): return (["\x25\x45\x06\x4d\xea\xca\x14\xf9\x96\xbd\xc8\xa4\x06\xc2\x2b\x81", "\xfb\x60\xbd\xdd\x0d\xbc\xab\x84\x8a\x00\x5e\x03\x19\x4d\x3e\xda"], 9, \ "\x8f\x2b\xc3\x52\xe8\x6c\x5e\xd3\x06\xdc\xae\x18\xd2\xf3\x8c\x7f\x89\xb5\xe1\x85\x55\xa1\x05\xea") testframes=4644 class MDTrack: def getTitle(self): return "HACK" def getFramecount(self): return testframes def getDataFormat(self): return libnetmd.WIREFORMAT_LP2 def getContentID(self): # value probably doesn't matter return "\x01\x0F\x50\0\0\4\0\0\0" "\x48\xA2\x8D\x3E\x1A\x3B\x0C\x44\xAF\x2f\xa0" def getKEK(self): # value does not matter return "\x14\xe3\x83\x4e\xe2\xd3\xcc\xa5" def getPacketcount(self): return 1 def getPackets(self): # values do not matter at all datakey = "\x96\x03\xc7\xc0\x53\x37\xd2\xf0" firstiv = "\x08\xd9\xcb\xd4\xc1\x5e\xc0\xff" keycrypter = DES.new(self.getKEK(), DES.MODE_ECB) key = keycrypter.encrypt(datakey) datacrypter = DES.new(key, DES.MODE_CBC, firstiv) # to be obtained from http://users.physik.fu-berlin.de/~mkarcher/ATRAC/LP2.wav file = open("/tmp/LP2.wav") file.read(60) data = file.read(testframes*192) return [(datakey,firstiv,datacrypter.encrypt(data))] def DownloadHack(md_iface): try: md_iface.sessionKeyForget() md_iface.leaveSecureSession() except: None try: md_iface.disableNewTrackProtection(1) except libnetmd.NetMDNotImplemented: print "Can't set device to non-protecting" trk = MDTrack() md_session = libnetmd.MDSession(md_iface, EKBopensource()) (track, uuid, ccid) = md_session.downloadtrack(trk) print 'Track:', track print "UUID:",''.join(["%02x"%ord(i) for i in uuid]) print "Confirmed Content ID:",''.join(["%02x"%ord(i) for i in ccid]) md_session.close() if __name__ == '__main__': from optparse import OptionParser parser = OptionParser() parser.add_option('-b', '--bus') parser.add_option('-d', '--device') (options, args) = parser.parse_args() assert len(args) < 2 main(bus=options.bus, device_address=options.device) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/dump_md.py��������������������������������������������������������������0000775�0000000�0000000�00000011366�12262477515�0017673�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python import os import usb1 import libnetmd from time import sleep import platform import subprocess def main(bus=None, device_address=None, ext='ogg', track_range=None, title=None): context = usb1.LibUSBContext() for md in libnetmd.iterdevices(context, bus=bus, device_address=device_address): md_iface = libnetmd.NetMDInterface(md) try: MDDump(md_iface, ext, track_range, title) finally: md_iface.stop() def getTrackList(md_iface, track_range): result = [] append = result.append track_count = md_iface.getTrackCount() if isinstance(track_range, tuple): min_track, max_track = track_range if max_track is None: max_track = track_count - 1 assert max_track < track_count assert min_track < track_count track_list = xrange(min_track, max_track + 1) elif isinstance(track_range, int): assert track_range < track_count track_list = [track_range] else: track_list = xrange(track_count) for track in track_list: hour, minute, second, sample = md_iface.getTrackLength(track) codec, channel_count = md_iface.getTrackEncoding(track) channel_count = libnetmd.CHANNEL_COUNT_DICT[channel_count] ascii_title = md_iface.getTrackTitle(track) wchar_title = md_iface.getTrackTitle(track, True).decode('shift_jis') title = wchar_title or ascii_title append((track, (hour, minute, second, sample), str(channel_count), title)) return result def MDDump(md_iface, ext, track_range, disk_title_override=None): if disk_title_override is None: ascii_title = md_iface.getDiscTitle() wchar_title = md_iface.getDiscTitle(True).decode('shift_jis') disc_title = wchar_title or ascii_title else: disc_title = disk_title_override if disc_title == '': directory = '.' else: directory = disc_title; print 'Storing in ', directory if not os.path.exists(directory): os.mkdir(directory) for track, (hour, minute, second, sample), channels, title in \ getTrackList(md_iface, track_range): duration = '%02i:%02i:%02i.%03i' % (hour, minute, second, sample/.512) filename = '%02i - %s.%s' % (track + 1, title, ext) print 'Recording', filename, '(', duration, ')' md_iface.gotoTrack(track) # Attemp to reduce the MD play delay by... print 'Waiting for MD...' # ...starting to play (some devices start their seek at this # time, others already at gotoTrack)... md_iface.play() # ... wait until playing really begins ... (waits until the second # second of audio playing) while md_iface.getPosition()[0:4] != [track, 0, 0, 1]: print md_iface.getPosition() sleep(0.25) # ... pause and go back to track beginning. md_iface.pause() md_iface.gotoTrack(track) if platform.system() == 'Windows': sox = 'sox.exe' else: sox = 'sox' start_sox = [sox, '-d', '-S', '-c', channels, '%s/%s' % (directory, filename), 'silence', '1', '0.1', '0.1%', 'trim', '0', duration, ] pid = subprocess.Popen(start_sox) md_iface.play() sleep(((hour * 60 + minute) * 60) + second) while md_iface.getPosition()[0] == track: sleep(1) md_iface.pause() print 'Done, waiting for sox to return...' pid.wait() # TODO: generate playlists based on groups defined on the MD print 'Finished.' if __name__ == '__main__': from optparse import OptionParser parser = OptionParser() parser.add_option('-b', '--bus') parser.add_option('-d', '--device') parser.add_option('-t', '--track-range') parser.add_option('-T', '--title') (options, args) = parser.parse_args() assert len(args) < 2 if len(args) == 1: ext = args[0] else: ext = 'ogg' track_range = options.track_range if track_range is not None: if '-' in track_range: begin, end = track_range.split('-', 1) if begin == '': begin = 0 else: begin = int(begin) - 1 if end == '': end = None else: end = int(end) - 1 assert begin < end track_range = (begin, end) else: track_range = int(track_range) - 1 main(bus=options.bus, device_address=options.device, ext=ext, track_range=track_range, title=options.title) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/etc/��������������������������������������������������������������������0000775�0000000�0000000�00000000000�12262477515�0016435�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/etc/20-netmd.fdi��������������������������������������������������������0000664�0000000�0000000�00000001362�12262477515�0020451�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- --> <deviceinfo version="0.2"> <device> <match key="info.subsystem" string="usb"> <match key="@info.parent:info.product" string="Net MD"> <match key="info.capabilities" contains_not="portable_audio_player"> <append key="info.capabilities" type="strlist">portable_audio_player</append> </match> <append key="portable_audio_player.access_method.protocols" type="strlist">netmd</append> <append key="portable_audio_player.output_formats" type="strlist">audio/vnd.sony.atrac3</append> <append key="portable_audio_player.inputformats" type="strlist">audio/vnd.sony.atrac3</append> </match> </match> </device> </deviceinfo> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/etc/README��������������������������������������������������������������0000664�0000000�0000000�00000001021�12262477515�0017307�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������This directory contains files that might help interoperation between your system and the netmd stuff. 20-netmd.fdi: Place to /usr/share/hal/fdi/information/20thirdparty/ to make the NetMD devices known as portable audio player. On recent distributions this will grant the user of the currently active session access to the device without being root. netmd.rules: Place this file into /etc/udev/rules.d to add udev rules which will grant user access to all known MiniDisc devices according to their USB device IDs.���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/etc/netmd.rules���������������������������������������������������������0000664�0000000�0000000�00000007047�12262477515�0020630�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Rules file for NetMD devices and HiMD devices in NetMD mode ## source: https://usb-ids.gowdy.us/read/UD/054c ## last changed: 2011-06-29 ## HiMD # Sony MZ-NH1 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="017e", MODE="0664", GROUP="plugdev" # Sony MZ-NH3D ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0180", MODE="0664", GROUP="plugdev" # Sony MZ-NH900 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0182", MODE="0664", GROUP="plugdev" # Sony MZ-NH700/800 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0184", MODE="0664", GROUP="plugdev" # Sony MZ-NH600/600D ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0186", MODE="0664", GROUP="plugdev" # Sony MZ-DH10P ATTRS{idVendor}=="054c", ATTRS{idProduct}=="01e9", MODE="0664", GROUP="plugdev" # Sony MZ-RH10 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0219", MODE="0664", GROUP="plugdev" # Sony MZ-RH910 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="021b", MODE="0664", GROUP="plugdev" # Sony CMT-AH10 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="022c", MODE="0664", GROUP="plugdev" # Sony DS-HMD1 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="023c", MODE="0664", GROUP="plugdev" # Sony MZ-RH1 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0286", MODE="0664", GROUP="plugdev" ## NetMD # Aiwa AM-NX1 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0113", MODE="0664", GROUP="plugdev" # Aiwa AM-NX9 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="014c", MODE="0664", GROUP="plugdev" # Sharp IM-MT880H/MT899H ATTRS{idVendor}=="04dd", ATTRS{idProduct}=="7202", MODE="0664", GROUP="plugdev" # Sharp IM-DR400/DR410 ATTRS{idVendor}=="04dd", ATTRS{idProduct}=="9013", MODE="0664", GROUP="plugdev" # Sharp IM-DR420/DR80/DR580 - Kenwood DMC-S9NET ATTRS{idVendor}=="04dd", ATTRS{idProduct}=="9014", MODE="0664", GROUP="plugdev" # Sony NetMD (unknown model) ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0036", MODE="0664", GROUP="plugdev" # Sony NetMD MZ-N1 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0075", MODE="0664", GROUP="plugdev" # Sony NetMD (unknown model) ATTRS{idVendor}=="054c", ATTRS{idProduct}=="007c", MODE="0664", GROUP="plugdev" # Sony NetMD LAM-1 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0080", MODE="0664", GROUP="plugdev" # Sony NetMD MDS-JE780/JB980 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0081", MODE="0664", GROUP="plugdev" # Sony MZ-N505 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0084", MODE="0664", GROUP="plugdev" # Sony NetMD MZ-S1 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0085", MODE="0664", GROUP="plugdev" # Sony NetMD MZ-N707 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0086", MODE="0664", GROUP="plugdev" # Sony MZ-N10 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="00c6", MODE="0664", GROUP="plugdev" # Sony NetMD MZ-N910 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="00c7", MODE="0664", GROUP="plugdev" # Sony NetMD MZ-N710/NF810/NE810 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="00c8", MODE="0664", GROUP="plugdev" # Sony NetMD MZ-N510/NF610 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="00c9", MODE="0664", GROUP="plugdev" # Sony MZ-N410/NF520D ATTRS{idVendor}=="054c", ATTRS{idProduct}=="00ca", MODE="0664", GROUP="plugdev" # Sony NetMD MZ-NE810/NE910/DN430 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="00eb", MODE="0664", GROUP="plugdev" # Sony NetMD LAM-10 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0101", MODE="0664", GROUP="plugdev" # Sony MZ-N920 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0188", MODE="0664", GROUP="plugdev" # Sony NetMD LAM-3 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="018a", MODE="0664", GROUP="plugdev" # Sony NetMD CMT-AH10 ATTRS{idVendor}=="054c", ATTRS{idProduct}=="021d", MODE="0664", GROUP="plugdev" �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/libnetmd.py�������������������������������������������������������������0000664�0000000�0000000�00000126606�12262477515�0020045�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������import libusb1 from cStringIO import StringIO from time import sleep from struct import pack try: from Crypto.Cipher import DES from Crypto.Cipher import DES3 except ImportError: DES = None DES3 = None import array import random def dump(data): if isinstance(data, basestring): result = ' '.join(['%02x' % (ord(x), ) for x in data]) else: result = repr(data) return result class defaultUploadEvents: def progress(self, current): print 'Done: %x/%x (%.02f%%)' % (current, self.total, current/float(self.total) * 100) def trackinfo(self, frames, bytes, format): self.total = bytes; KNOWN_USB_ID_SET = frozenset([ (0x04dd, 0x7202), # Sharp IM-MT899H (0x054c, 0x0075), # Sony MZ-N1 (0x054c, 0x0080), # Sony LAM-1 (0x054c, 0x0081), # Sony MDS-JB980 (0x054c, 0x0084), # Sony MZ-N505 (0x054c, 0x0085), # Sony MZ-S1 (0x054c, 0x0086), # Sony MZ-N707 (0x054c, 0x00c6), # Sony MZ-N10 (0x054c, 0x00c7), # Sony MZ-N910 (0x054c, 0x00c8), # Sony MZ-N710/NF810 (0x054c, 0x00c9), # Sony MZ-N510/N610 (0x054c, 0x00ca), # Sony MZ-NE410/NF520D (0x054c, 0x00eb), # Sony MZ-NE810/NE910 (0x054c, 0x0101), # Sony LAM-10 (0x054c, 0x0113), # Aiwa AM-NX1 (0x054c, 0x014c), # Aiwa AM-NX9 (0x054c, 0x017e), # Sony MZ-NH1 (0x054c, 0x0180), # Sony MZ-NH3D (0x054c, 0x0182), # Sony MZ-NH900 (0x054c, 0x0184), # Sony MZ-NH700/NH800 (0x054c, 0x0186), # Sony MZ-NH600/NH600D (0x054c, 0x0188), # Sony MZ-N920 (0x054c, 0x018a), # Sony LAM-3 (0x054c, 0x01e9), # Sony MZ-DH10P (0x054c, 0x0219), # Sony MZ-RH10 (0x054c, 0x021b), # Sony MZ-RH710/MZ-RH910 (0x054c, 0x022c), # Sony CMT-AH10 (stereo set with integrated MD) (0x054c, 0x023c), # Sony DS-HMD1 (device without analog music rec/playback) (0x054c, 0x0286), # Sony MZ-RH1 ]) def iterdevices(usb_context, bus=None, device_address=None): """ Iterator for plugged-in NetMD devices. Parameters: usb_context (usb1.LibUSBContext) Some usb1.LibUSBContext instance. bus (None, int) Only scan this bus. device_address (None, int) Only scan devices at this address on each scanned bus. Returns (yields) NetMD instances. """ for device in usb_context.getDeviceList(): if bus is not None and bus != device.getBusNumber(): continue if device_address is not None and \ device_address != device.getDeviceAddress(): continue if (device.getVendorID(), device.getProductID()) in KNOWN_USB_ID_SET: yield NetMD(device.open()) # XXX: Endpoints numbers are hardcoded BULK_WRITE_ENDPOINT = 0x02 BULK_READ_ENDPOINT = 0x81 # NetMD Protocol return status (first byte of request) STATUS_CONTROL = 0x00 STATUS_STATUS = 0x01 STATUS_SPECIFIC_INQUIRY = 0x02 STATUS_NOTIFY = 0x03 STATUS_GENERAL_INQUIRY = 0x04 # ... (first byte of response) STATUS_NOT_IMPLEMENTED = 0x08 STATUS_ACCEPTED = 0x09 STATUS_REJECTED = 0x0a STATUS_IN_TRANSITION = 0x0b STATUS_IMPLEMENTED = 0x0c STATUS_CHANGED = 0x0d STATUS_INTERIM = 0x0f class NetMDException(Exception): """ Base exception for all NetMD exceptions. """ pass class NetMDNotImplemented(NetMDException): """ NetMD protocol "operation not implemented" exception. """ pass class NetMDRejected(NetMDException): """ NetMD protocol "operation rejected" exception. """ pass class NetMD(object): """ Low-level interface for a NetMD device. """ def __init__(self, usb_handle, interface=0): """ usb_handle (usb1.USBDeviceHandle) USB device corresponding to a NetMD player. interface (int) USB interface implementing NetMD protocol on the USB device. """ self.usb_handle = usb_handle self.interface = interface usb_handle.setConfiguration(1) usb_handle.claimInterface(interface) if self._getReplyLength() != 0: self.readReply() def __del__(self): try: self.usb_handle.resetDevice() self.usb_handle.releaseInterface(self.interface) except: # Should specify an usb exception pass def _getReplyLength(self): reply = self.usb_handle.controlRead(libusb1.LIBUSB_TYPE_VENDOR | \ libusb1.LIBUSB_RECIPIENT_INTERFACE, 0x01, 0, 0, 4) return ord(reply[2]) def sendCommand(self, command): """ Send a raw binary command to device. command (str) Binary command to send. """ #print '%04i> %s' % (len(command), dump(command)) self.usb_handle.controlWrite(libusb1.LIBUSB_TYPE_VENDOR | \ libusb1.LIBUSB_RECIPIENT_INTERFACE, 0x80, 0, 0, command) def readReply(self): """ Get a raw binary reply from device. Returns the reply. """ reply_length = 0 while reply_length == 0: reply_length = self._getReplyLength() if reply_length == 0: sleep(0.1) reply = self.usb_handle.controlRead(libusb1.LIBUSB_TYPE_VENDOR | \ libusb1.LIBUSB_RECIPIENT_INTERFACE, 0x81, 0, 0, reply_length) #print '%04i< %s' % (len(reply), dump(reply)) return reply def readBulk(self, length): """ Read bulk data from device. length (int) Length of data to read. Returns data read. """ result = StringIO() self.readBulkToFile(length, result) return result.getvalue() def readBulkToFile(self, length, outfile, chunk_size=0x10000, callback=lambda(a):None): """ Read bulk data from device, and write it to a file. length (int) Length of data to read. outfile (str) Path to output file. chunk_size (int) Keep this much data in memory before flushing it to file. """ done = 0 while done < length: received = self.usb_handle.bulkRead(BULK_READ_ENDPOINT, min((length - done), chunk_size)) done += len(received) outfile.write(received) callback(done) def writeBulk(self, data): """ Write data to device. data (str) Data to write. """ self.usb_handle.bulkWrite(BULK_WRITE_ENDPOINT, data) ACTION_PLAY = 0x75 ACTION_PAUSE = 0x7d ACTION_FASTFORWARD = 0x39 ACTION_REWIND = 0x49 TRACK_PREVIOUS = 0x0002 TRACK_NEXT = 0x8001 TRACK_RESTART = 0x0001 ENCODING_SP = 0x90 ENCODING_LP2 = 0x92 ENCODING_LP4 = 0x93 CHANNELS_MONO = 0x01 CHANNELS_STEREO = 0x00 CHANNEL_COUNT_DICT = { CHANNELS_MONO: 1, CHANNELS_STEREO: 2 } OPERATING_STATUS_USB_RECORDING = 0x56ff OPERATING_STATUS_RECORDING = 0xc275 OPERATING_STATUS_RECORDING_PAUSED = 0xc27d OPERATING_STATUS_FAST_FORWARDING = 0xc33f OPERATING_STATUS_REWINDING = 0xc34f OPERATING_STATUS_PLAYING = 0xc375 OPERATING_STATUS_PAUSED = 0xc37d OPERATING_STATUS_STOPPED = 0xc5ff TRACK_FLAG_PROTECTED = 0x03 DISC_FLAG_WRITABLE = 0x10 DISC_FLAG_WRITE_PROTECTED = 0x40 DISKFORMAT_LP4 = 0 DISKFORMAT_LP2 = 2 DISKFORMAT_SP_MONO = 4 DISKFORMAT_SP_STEREO = 6 WIREFORMAT_PCM = 0 WIREFORMAT_105KBPS = 0x90 WIREFORMAT_LP2 = 0x94 WIREFORMAT_LP4 = 0xA8 _FORMAT_TYPE_LEN_DICT = { 'b': 1, # byte 'w': 2, # word 'd': 4, # doubleword 'q': 8, # quadword } def BCD2int(bcd): """ Convert BCD number of an arbitrary length to an int. bcd (int) bcd number Returns the same number as an int. """ value = 0 nibble = 0 while bcd: nibble_value = bcd & 0xf bcd >>= 4 value += nibble_value * (10 ** nibble) nibble += 1 return value def int2BCD(value, length=1): """ Convert an int into a BCD number. value (int) Integer value. length (int) Length limit for output number, in bytes. Returns the same value in BCD. """ if value > 10 ** (length * 2 - 1): raise ValueError('Value %r cannot fit in %i bytes in BCD' % (value, length)) bcd = 0 nibble = 0 while value: value, nibble_value = divmod(value, 10) bcd |= nibble_value << (4 * nibble) nibble += 1 return bcd class NetMDInterface(object): """ High-level interface for a NetMD device. Notes: Track numbering starts at 0. First song position is 0:0:0'1 (0 hours, 0 minutes, 0 second, 1 sample) wchar titles are probably shift-jis encoded (hint only, nothing relies on this in this file) """ def __init__(self, net_md): """ net_md (NetMD) Interface to the NetMD device to use. """ self.net_md = net_md def send_query(self, query, test=False): # XXX: to be removed (replaced by 2 separate calls) self.sendCommand(query, test=test) return self.readReply() def sendCommand(self, query, test=False): if test: query = [STATUS_SPECIFIC_INQUIRY, ] + query else: query = [STATUS_CONTROL, ] + query binquery = ''.join(chr(x) for x in query) self.net_md.sendCommand(binquery) def readReply(self): result = self.net_md.readReply() status = ord(result[0]) if status == STATUS_NOT_IMPLEMENTED: raise NetMDNotImplemented('Not implemented') elif status == STATUS_REJECTED: raise NetMDRejected('Rejected') elif status not in (STATUS_ACCEPTED, STATUS_IMPLEMENTED, STATUS_INTERIM): raise NotImplementedError('Unknown returned status: %02X' % (status, )) return result[1:] def formatQuery(self, format, *args): result = [] append = result.append extend = result.extend half = None def hexAppend(value): append(int(value, 16)) escaped = False arg_stack = list(args) for char in format: if escaped: escaped = False value = arg_stack.pop(0) if char in _FORMAT_TYPE_LEN_DICT: for byte in xrange(_FORMAT_TYPE_LEN_DICT[char] - 1, -1, -1): append((value >> (byte * 8)) & 0xff) # String ('s' is 0-terminated, 'x' is not) elif char in ('s', 'x'): length = len(value) if char == 's': length += 1 append((length >> 8) & 0xff) append(length & 0xff) extend(ord(x) for x in value) if char == 's': append(0) elif char == '*': extend(ord(x) for x in value) else: raise ValueError('Unrecognised format char: %r' % (char, )) continue if char == '%': assert half is None escaped = True continue if char == ' ': continue if half is None: half = char else: hexAppend(half + char) half = None assert len(arg_stack) == 0 return result def scanQuery(self, query, format): result = [] append = result.append half = None escaped = False input_stack = list(query) def pop(): return ord(input_stack.pop(0)) for char in format: if escaped: escaped = False if char == '?': pop() continue if char in _FORMAT_TYPE_LEN_DICT: value = 0 for byte in xrange(_FORMAT_TYPE_LEN_DICT[char] - 1, -1, -1): value |= (pop() << (byte * 8)) append(value) # String ('s' is 0-terminated, 'x' is not) elif char in ('s', 'x'): length = pop() << 8 | pop() value = ''.join(input_stack[:length]) input_stack = input_stack[length:] if char == 's': append(value[:-1]) else: append(value) # Fetch the remainder of the query in one value elif char == '*': value = ''.join(input_stack) input_stack = [] append(value) else: raise ValueError('Unrecognised format char: %r' % (char, )) continue if char == '%': assert half is None escaped = True continue if char == ' ': continue if half is None: half = char else: input_value = pop() format_value = int(half + char, 16) if format_value != input_value: raise ValueError('Format and input mismatch at %i: ' 'expected %02x, got %02x' % ( len(query) - len(input_stack) - 1, format_value, input_value)) half = None assert len(input_stack) == 0 return result def acquire(self): """ Exclusive access to device. XXX: what does it mean ? """ query = self.formatQuery('ff 010c ffff ffff ffff ffff ffff ffff') reply = self.send_query(query) self.scanQuery(reply, 'ff 010c ffff ffff ffff ffff ffff ffff') def release(self): """ Release device previously acquired for exclusive access. XXX: what does it mean ? """ query = self.formatQuery('ff 0100 ffff ffff ffff ffff ffff ffff') reply = self.send_query(query) self.scanQuery(reply, 'ff 0100 ffff ffff ffff ffff ffff ffff') def getStatus(self): """ Get device status. Returns device response (content meaning is largely unknown). """ query = self.formatQuery('1809 8001 0230 8800 0030 8804 00 ff00 ' \ '00000000') reply = self.send_query(query) return self.scanQuery(reply, '1809 8001 0230 8800 0030 8804 00 ' \ '1000 000900000 %x')[0] def isDiskPresent(self): """ Is a disk present in device ? Returns a boolean: True: disk present False: no disk """ status = self.getStatus() return status[4] == 0x40 def getOperatingStatus(self): query = self.formatQuery('1809 8001 0330 8802 0030 8805 0030 8806 ' \ '00 ff00 00000000') reply = self.send_query(query) return self.scanQuery(reply, '1809 8001 0330 8802 0030 8805 0030 ' \ '8806 00 1000 00%?0000 0006 8806 0002 %w')[0] def _getPlaybackStatus(self, p1, p2): query = self.formatQuery('1809 8001 0330 %w 0030 8805 0030 %w 00 ' \ 'ff00 00000000', p1, p2) reply = self.send_query(query) return self.scanQuery(reply, '1809 8001 0330 %?%? %?%? %?%? %?%? ' \ '%?%? %? 1000 00%?0000 %x')[0] def getPlaybackStatus1(self): return self._getPlaybackStatus(0x8801, 0x8807) def getPlaybackStatus2(self): # XXX: duplicate of getOperatingStatus return self._getPlaybackStatus(0x8802, 0x8806) def getPosition(self): query = self.formatQuery('1809 8001 0430 8802 0030 8805 0030 0003 ' \ '0030 0002 00 ff00 00000000') try: reply = self.send_query(query) except NetMDRejected: # No disc result = None else: result = self.scanQuery(reply, '1809 8001 0430 %?%? %?%? %?%? ' \ '%?%? %?%? %?%? %?%? %? %?00 00%?0000 ' \ '000b 0002 0007 00 %w %b %b %b %b') result[1] = BCD2int(result[1]) result[2] = BCD2int(result[2]) result[3] = BCD2int(result[3]) result[4] = BCD2int(result[4]) return result def _play(self, action): query = self.formatQuery('18c3 ff %b 000000', action) reply = self.send_query(query) self.scanQuery(reply, '18c3 00 %b 000000') def play(self): """ Start playback on device. """ self._play(ACTION_PLAY) def fast_forward(self): """ Fast-forward device. """ self._play(ACTION_FASTFORWARD) def rewind(self): """ Rewind device. """ self._play(ACTION_REWIND) def pause(self): """ Pause device. """ self._play(ACTION_PAUSE) def stop(self): """ Stop playback on device. """ query = self.formatQuery('18c5 ff 00000000') reply = self.send_query(query) self.scanQuery(reply, '18c5 00 00000000') def gotoTrack(self, track): """ Seek to begining of given track number on device. """ query = self.formatQuery('1850 ff010000 0000 %w', track) reply = self.send_query(query) return self.scanQuery(reply, '1850 00010000 0000 %w')[0] def gotoTime(self, track, hour=0, minute=0, second=0, frame=0): """ Seek to given time of given track. """ query = self.formatQuery('1850 ff000000 0000 %w %b%b%b%b', track, int2BCD(hour), int2BCD(minute), int2BCD(second), int2BCD(frame)) reply = self.send_query(query) return self.scanQuery(reply, '1850 00000000 %?%? %w %b%b%b%b') def _trackChange(self, direction): query = self.formatQuery('1850 ff10 00000000 %w', direction) reply = self.send_query(query) return self.scanQuery(reply, '1850 0010 00000000 %?%?') def nextTrack(self): """ Go to begining of next track. """ self._trackChange(TRACK_NEXT) def previousTrack(self): """ Go to begining of previous track. """ self._trackChange(TRACK_PREVIOUS) def restartTrack(self): """ Go to begining of current track. """ self._trackChange(TRACK_RESTART) def eraseDisc(self): """ Erase disc. This is reported not to check for any track protection, and unconditionaly earses everything. """ # XXX: test to see if it honors read-only disc mode. query = self.formatQuery('1840 ff 0000') reply = self.send_query(query) self.scanQuery(reply, '1840 00 0000') def syncTOC(self): query = self.formatQuery('1808 10180200 00') reply = self.send_query(query) return self.scanQuery(reply, '1808 10180200 00') def cacheTOC(self): query = self.formatQuery('1808 10180203 00') reply = self.send_query(query) return self.scanQuery(reply, '1808 10180203 00') def getDiscFlags(self): """ Get disc flags. Returns a bitfield (see DISC_FLAG_* constants). """ query = self.formatQuery('1806 01101000 ff00 0001000b') reply = self.send_query(query) return self.scanQuery(reply, '1806 01101000 1000 0001000b %b')[0] def getTrackCount(self): """ Get the number of disc tracks. """ query = self.formatQuery('1806 02101001 3000 1000 ff00 00000000') reply = self.send_query(query) data = self.scanQuery(reply, '1806 02101001 %?%? %?%? 1000 00%?0000 ' \ '%x')[0] assert len(data) == 6, len(data) assert data[:5] == '\x00\x10\x00\x02\x00', data[:5] return ord(data[5]) def _getDiscTitle(self, wchar=False): # XXX: long title support untested. if wchar: wchar_value = 1 else: wchar_value = 0 done = 0 remaining = 0 total = 1 result = [] while done < total: query = self.formatQuery('1806 02201801 00%b 3000 0a00 ff00 %w%w', wchar_value, remaining, done) reply = self.send_query(query) if remaining == 0: chunk_size, total, chunk = self.scanQuery(reply, '1806 02201801 00%? 3000 0a00 1000 %w0000 %?%?000a %w %*') chunk_size -= 6 else: chunk_size, chunk = self.scanQuery(reply, '1806 02201801 00%? 3000 0a00 1000 %w%?%? %*') assert chunk_size == len(chunk) result.append(chunk) done += chunk_size remaining = total - done #if not wchar and len(result): # assert result[-1] == '\x00' # result = result[:-1] return ''.join(result) def getDiscTitle(self, wchar=False): """ Return disc title. wchar (bool) If True, return the content of wchar title. If False, return the ASCII title. """ title = self._getDiscTitle(wchar=wchar) if title.endswith('//'): # this is a grouped minidisc which may have a disc title # The disc title is always stored in the first entry and # applied to the imaginary track 0 firstentry = title.split('//')[0] if firstentry.startswith('0;'): title = firstentry[2:len(firstentry)]; else: title = ''; return title def getTrackGroupList(self): """ Return a list representing track groups. This list is composed of 2-tuples: group title track number list """ raw_title = self._getDiscTitle() group_list = raw_title.split('//') track_dict = {} track_count = self.getTrackCount() result = [] append = result.append for group_index, group in enumerate(group_list): if group == '': # (only ?) last group might be delimited but empty. continue if group[0] == '0' or ';' not in group: # Disk title continue track_range, group_name = group.split(';', 1) if '-' in track_range: track_min, track_max = track_range.split('-') else: track_min = track_max = track_range track_min, track_max = int(track_min), int(track_max) assert 0 <= track_min <= track_max <= track_count, ( track_min, track_max, track_count) track_list = [] track_append = track_list.append for track in xrange(track_min - 1, track_max): if track in track_dict: raise ValueError('Track %i is in 2 groups: %r[%i] & ' '%r[%i]' % (track, track_dict[track][0], track_dict[track][1], group_name, group_index)) track_dict[track] = group_name, group_index track_append(track) append((group_name, track_list)) track_list = [x for x in xrange(track_count) if x not in track_dict] if len(track_list): append((None, track_list)) return result def getTrackTitle(self, track, wchar=False): """ Return track title. track (int) Track number. wchar (bool) If True, return the content of wchar title. If False, return the ASCII title. """ if wchar: wchar_value = 3 else: wchar_value = 2 query = self.formatQuery('1806 022018%b %w 3000 0a00 ff00 00000000', wchar_value, track) reply = self.send_query(query) result = self.scanQuery(reply, '1806 022018%? %?%? %?%? %?%? 1000 ' \ '00%?0000 00%?000a %x')[0] #if not wchar and len(result): # assert result[-1] == '\x00' # result = result[:-1] return result def setDiscTitle(self, title, wchar=False): """ Set disc title. title (str) The new title. wchar (bool) If True, return the content of wchar title. If False, return the ASCII title. """ if wchar: wchar = 1 else: wchar = 0 old_len = len(self.getDiscTitle()) query = self.formatQuery('1807 02201801 00%b 3000 0a00 5000 %w 0000 ' \ '%w %s', wchar, len(title), old_len, title) reply = self.send_query(query) self.scanQuery(reply, '1807 02201801 00%? 3000 0a00 5000 %?%? 0000 ' \ '%?%?') def setTrackTitle(self, track, title, wchar=False): """ Set track title. track (int) Track to retitle. title (str) The new title. wchar (bool) If True, return the content of wchar title. If False, return the ASCII title. """ if wchar: wchar = 3 else: wchar = 2 try: old_len = len(self.getTrackTitle(track)) except NetMDRejected: old_len = 0 query = self.formatQuery('1807 022018%b %w 3000 0a00 5000 %w 0000 ' \ '%w %*', wchar, track, len(title), old_len, title) reply = self.send_query(query) self.scanQuery(reply, '1807 022018%? %?%? 3000 0a00 5000 %?%? 0000 ' \ '%?%?') def eraseTrack(self, track): """ Remove a track. track (int) Track to remove. """ query = self.formatQuery('1840 ff01 00 201001 %w', track) reply = self.send_query(query) self.scanQuery(reply, '1840 1001 00 201001 %?%?') def moveTrack(self, source, dest): """ Move a track. source (int) Track position before moving. dest (int) Track position after moving. """ query = self.formatQuery('1843 ff00 00 201001 00 %w 201001 %w', source, dest) reply = self.send_query(query) self.scanQuery(reply, '1843 0000 00 201001 00 %?%? 201001 %?%?') def _getTrackInfo(self, track, p1, p2): query = self.formatQuery('1806 02201001 %w %w %w ff00 00000000', track, p1, p2) reply = self.send_query(query) return self.scanQuery(reply, '1806 02201001 %?%? %?%? %?%? 1000 ' \ '00%?0000 %x')[0] def getTrackLength(self, track): """ Get track duration. track (int) Track to fetch information from. Returns a list of 4 elements: - hours - minutes - seconds - samples (512 per second) """ raw_value = self._getTrackInfo(track, 0x3000, 0x0100) result = self.scanQuery(raw_value, '0001 0006 0000 %b %b %b %b') result[0] = BCD2int(result[0]) result[1] = BCD2int(result[1]) result[2] = BCD2int(result[2]) result[3] = BCD2int(result[3]) return result def getTrackEncoding(self, track): """ Get track encoding parameters. track (int) Track to fetch information from. Returns a list of 2 elements: - codec (see ENCODING_* constants) - channel number (see CHANNELS_* constants) """ return self.scanQuery(self._getTrackInfo(track, 0x3080, 0x0700), '8007 0004 0110 %b %b') def getTrackFlags(self, track): """ Get track flags. track (int) Track to fetch information from. Returns a bitfield (See TRACK_FLAG_* constants). """ query = self.formatQuery('1806 01201001 %w ff00 00010008', track) reply = self.send_query(query) return self.scanQuery(reply, '1806 01201001 %?%? 10 00 00010008 %b') \ [0] def getDiscCapacity(self): """ Get disc capacity. Returns a list of 3 lists of 4 elements each (see getTrackLength). The first list is the recorded duration. The second list is the total disc duration (*). The third list is the available disc duration (*). (*): This result depends on current recording parameters. """ query = self.formatQuery('1806 02101000 3080 0300 ff00 00000000') reply = self.send_query(query) raw_result = self.scanQuery(reply, '1806 02101000 3080 0300 1000 ' \ '001d0000 001b 8003 0017 8000 0005 %w ' \ '%b %b %b 0005 %w %b %b %b 0005 %w %b ' \ '%b %b') result = [] for offset in xrange(3): offset *= 4 result.append([ BCD2int(raw_result[offset + 0]), BCD2int(raw_result[offset + 1]), BCD2int(raw_result[offset + 2]), BCD2int(raw_result[offset + 3])]) return result def getRecordingParameters(self): """ Get the current recording parameters. See getTrackEncoding. """ query = self.formatQuery('1809 8001 0330 8801 0030 8805 0030 8807 ' \ '00 ff00 00000000') reply = self.send_query(query) return self.scanQuery(reply, '1809 8001 0330 8801 0030 8805 0030 ' \ '8807 00 1000 000e0000 000c 8805 0008 80e0 ' \ '0110 %b %b 4000') def saveTrackToStream(self, track, outstream, events=defaultUploadEvents()): """ Digitaly dump a track to file. This is only available on MZ-RH1. track (int) Track to extract. outfile_name (str) Path of file to save extracted data in. """ track += 1 query = self.formatQuery('1800 080046 f003010330 ff00 1001 %w', track) reply = self.send_query(query) (frames,codec,length) = self.scanQuery(reply, '1800 080046 f003010330 0000 1001 ' \ '%w %b %d') events.trackinfo(frames, length, codec); self.net_md.readBulkToFile(length, outstream, callback=events.progress) reply = self.readReply() self.scanQuery(reply, '1800 080046 f003010330 0000 1001 %?%? 0000') # Prevent firmware lockups on successive saveTrackToStream calls sleep(0.01) def disableNewTrackProtection(self, val): """ NetMD downloaded tracks are usually protected from modification at the MD device to prevent loosing the check-out license. This setting can be changed on some later models to have them record unprotected tracks, like Simple Burner does. The setting stays in effect until endSecureSession, where it is reset to 0. val (int) zero enables protection of future downloaded tracks, one disables protection for these tracks. """ query = self.formatQuery('1800 080046 f0030103 2b ff %w', val) reply = self.send_query(query) return self.scanQuery(reply, '1800 080046 f0030103 2b 00 %?%?') def enterSecureSession(self): """ Enter a session secured by a root key found in an EKB. The EKB for this session has to be download after entering the session. """ query = self.formatQuery('1800 080046 f0030103 80 ff') reply = self.send_query(query) return self.scanQuery(reply, '1800 080046 f0030103 80 00') def leaveSecureSession(self): """ Forget the key material from the EKB used in the secure session. """ query = self.formatQuery('1800 080046 f0030103 81 ff') reply = self.send_query(query) return self.scanQuery(reply, '1800 080046 f0030103 81 00') def getLeafID(self): """ Read the leaf ID of the present NetMD device. The leaf ID tells which keys the device posesses, which is needed to find out which parts of the EKB needs to be sent to the device for it to decrypt the root key. The leaf ID is a 8-byte constant """ query = self.formatQuery('1800 080046 f0030103 11 ff') reply = self.send_query(query) return self.scanQuery(reply, '1800 080046 f0030103 11 00 %*')[0] def sendKeyData(self, ekbid, keychain, depth, ekbsignature): """ Send key data to the device. The device uses it's builtin key to decrypt the root key from an EKB. ekbid (int) The ID of the EKB. keychain (list of 16-byte str) A chain of encrypted keys. The one end of the chain is the encrypted root key, the other end is a key encrypted by a key the device has in it's key set. The direction of the chain is not yet known. depth (str) Selects which key from the devices keyset has to be used to start decrypting the chain. Each key in the key set corresponds to a specific depth in the tree of device IDs. ekbsignature A 24 byte signature of the root key. Used to verify integrity of the decrypted root key by the device. """ chainlen = len(keychain) # 16 bytes header, 16 bytes per key, 24 bytes for the signature databytes = 16 + 16*chainlen + 24 for key in keychain: if len(key) != 16: raise ValueError("Each key in the chain needs to have 16 bytes, this one has %d" % len(key)) if depth < 1 or depth > 63: raise ValueError('Supplied depth is invalid') if len(ekbsignature) != 24: raise ValueError('Supplied EKB signature length wrong') query = self.formatQuery('1800 080046 f0030103 12 ff %w %d' \ '%d %d %d 00000000 %* %*', databytes, databytes, chainlen, depth, ekbid, "".join(keychain), ekbsignature) reply = self.send_query(query) return self.scanQuery(reply, '1800 080046 f0030103 12 01 %?%? %?%?%?%?') def sessionKeyExchange(self, hostnonce): """ Exchange a session key with the device. Needs to have a root key sent to the device using sendKeyData before. hostnonce (str) 8 bytes random binary data Returns device nonce (str), another 8 bytes random data """ if len(hostnonce) != 8: raise ValueError('Supplied host nonce length wrong') query = self.formatQuery('1800 080046 f0030103 20 ff 000000 %*', hostnonce) reply = self.send_query(query) return self.scanQuery(reply, '1800 080046 f0030103 20 00 000000 %*')[0] def sessionKeyForget(self): """ Invalidate the session key established by nonce exchange. Does not invalidate the root key set up by sendKeyData. """ query = self.formatQuery('1800 080046 f0030103 21 ff 000000') reply = self.send_query(query) return self.scanQuery(reply, '1800 080046 f0030103 21 00 000000') def setupDownload(self, contentid, keyenckey, sessionkey): """ Prepare the download of a music track to the device. contentid (str) 20 bytes Unique Identifier for the DRM system. keyenckey (str) 8 bytes DES key used to encrypt the block data keys sessionkey (str) 8 bytes DES key used for securing the current session, the key has to be calculated by the caller from the data exchanged in sessionKeyExchange and the root key selected by sendKeyData """ if DES is None: raise ImportError('Crypto.Cypher.DES not found, you cannot ' 'download tracks') if len(contentid) != 20: raise ValueError('Supplied Content ID length wrong') if len(keyenckey) != 8: raise ValueError('Supplied Key Encryption Key length wrong') if len(sessionkey) != 8: raise ValueError('Supplied Session Key length wrong') encrypter = DES.new(sessionkey, DES.MODE_CBC, '\0\0\0\0\0\0\0\0') encryptedarg = encrypter.encrypt('\1\1\1\1' + contentid + keyenckey); query = self.formatQuery('1800 080046 f0030103 22 ff 0000 %*', encryptedarg) reply = self.send_query(query) return self.scanQuery(reply, '1800 080046 f0030103 22 00 0000') def commitTrack(self, tracknum, sessionkey): """ Commit a track. The idea is that this command tells the device that the license for the track has been checked out from the computer. track (int) Track number returned from downloading command sessionkey (str) 8-byte DES key used for securing the download session """ if DES is None: raise ImportError('Crypto.Cypher.DES not found, you cannot ' 'download tracks') if len(sessionkey) != 8: raise ValueError('Supplied Session Key length wrong') encrypter = DES.new(sessionkey, DES.MODE_ECB) authentication = encrypter.encrypt('\0\0\0\0\0\0\0\0') query = self.formatQuery('1800 080046 f0030103 48 ff 00 1001 %w %*', tracknum, authentication) reply = self.send_query(query) return self.scanQuery(reply, '1800 080046 f0030103 48 00 00 1001 %?%?') def sendTrack(self, wireformat, diskformat, frames, pktcount, packets, sessionkey): """ Send a track to the NetMD unit. wireformat (int) The format of the data sent over the USB link. one of WIREFORMAT_PCM, WIREFORMAT_LP2, WIREFORMAT_105KBPS or WIREFORMAT_LP4 diskformat (int) The format of the data on the MD medium. one of DISKFORMAT_SP_STEREO, DISKFORMAT_LP2 or DISKFORMAT_LP4. frames (int) The number of frames to transfer. The frame size depends on the wire format. It's 2048 bytes for WIREFORMAT_PCM, 192 bytes for WIREFORMAT_LP2, 152 bytes for WIREFORMAT_105KBPS and 92 bytes for WIREFORMAT_LP4. pktcount (int) Number of data packets to send (needed to calculate the raw packetized stream size packets (iterator) iterator over (str, str, str), with the first string being the encrypted DES encryption key for this packet (8 bytes), the second the IV (8 bytes, too) and the third string the encrypted data. sessionkey (str) 8-byte DES key used for securing the download session Returns A tuple (tracknum, UUID, content ID). tracknum (int) the number the new track got. UUID (str) an 8-byte-value to recognize this track for check-in purpose content ID the content ID. Should always be the same as passed to setupDownload, probably present to prevent some attack vectors to the DRM system. """ if DES is None: raise ImportError('Crypto.Cypher.DES not found, you cannot ' 'download tracks') if len(sessionkey) != 8: raise ValueError('Supplied Session Key length wrong') framesizedict = { WIREFORMAT_PCM: 2048, WIREFORMAT_LP2: 192, WIREFORMAT_105KBPS: 152, WIREFORMAT_LP4: 96, } totalbytes = framesizedict[wireformat] * frames + pktcount * 24; query = self.formatQuery('1800 080046 f0030103 28 ff 000100 1001' \ 'ffff 00 %b %b %d %d', wireformat, diskformat, frames, totalbytes) reply = self.send_query(query) self.scanQuery(reply, '1800 080046 f0030103 28 00 000100 1001 %?%? 00'\ '%*') for (key,iv,data) in packets: binpkt = pack('>Q',len(data)) + key + iv + data self.net_md.writeBulk(binpkt) reply = self.readReply() self.net_md._getReplyLength() (track, encryptedreply) = \ self.scanQuery(reply, '1800 080046 f0030103 28 00 000100 1001 %w 00' \ '%?%? %?%?%?%? %?%?%?%? %*') encrypter = DES.new(sessionkey, DES.MODE_CBC, '\0\0\0\0\0\0\0\0') replydata = encrypter.decrypt(encryptedreply) return (track, replydata[0:8], replydata[12:32]) def getTrackUUID(self, track): """ Gets the DRM tracking ID for a track. NetMD downloaded tracks have an 8-byte identifier (instead of their content ID) stored on the MD medium. This is used to verify the identity of a track when checking in. track (int) The track number Returns An 8-byte binary string containing the track UUID. """ query = self.formatQuery('1800 080046 f0030103 23 ff 1001 %w', track) reply = self.send_query(query) return self.scanQuery(reply,'1800 080046 f0030103 23 00 1001 %?%? %*')[0] def retailmac(key, value, iv = 8*"\0"): if DES is None or DES3 is None: raise ImportError('Crypto.Cypher.DES or DES3 not found, you cannot ' 'download tracks') subkeyA = key[0:8] beginning = value[0:-8] end = value[-8:] step1crypt = DES.new(subkeyA, DES.MODE_CBC, iv) iv2 = step1crypt.encrypt(beginning)[-8:] step2crypt = DES3.new(key, DES3.MODE_CBC, iv2) return step2crypt.encrypt(end) diskforwire = { WIREFORMAT_PCM: DISKFORMAT_SP_STEREO, WIREFORMAT_LP2: DISKFORMAT_LP2, WIREFORMAT_105KBPS: DISKFORMAT_LP2, WIREFORMAT_LP4: DISKFORMAT_LP4, } class MDSession: def __init__(self, md_iface, ekbobject): self.md = md_iface self.sessionkey = None self.md.enterSecureSession() (chain, depth, sig) = ekbobject.getEKBDataForLeafId(self.md.getLeafID()) self.md.sendKeyData(ekbobject.getEKBID(), chain, depth, sig) hostnonce = array.array('B',[random.randrange(255) for x in range(8)]).tostring() devnonce = self.md.sessionKeyExchange(hostnonce) nonce = hostnonce + devnonce self.sessionkey = retailmac(ekbobject.getRootKey(), nonce) def downloadtrack(self, trk): self.md.setupDownload(trk.getContentID(), trk.getKEK(), self.sessionkey) dataformat = trk.getDataFormat() (track,uuid,ccid) = self.md.sendTrack(dataformat, diskforwire[dataformat], \ trk.getFramecount(), trk.getPacketcount(), trk.getPackets(), self.sessionkey) self.md.cacheTOC() self.md.setTrackTitle(track,trk.getTitle()) self.md.syncTOC() self.md.commitTrack(track, self.sessionkey) return (track, uuid, ccid) def __del__(self): self.close() def close(self): if self.sessionkey != None: self.md.sessionKeyForget self.sessionkey = None self.md.leaveSecureSession() ��������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/libusb1.py��������������������������������������������������������������0000664�0000000�0000000�00000106413�12262477515�0017602�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# libusb-1.0 python wrapper from ctypes import Structure, \ CFUNCTYPE, POINTER, addressof, sizeof, cast, \ c_short, c_int, c_uint, c_size_t, c_long, \ c_uint8, c_uint16, \ c_void_p, c_char, c_char_p, py_object, string_at from ctypes.util import find_library import platform import os.path import sys class Enum(object): def __init__(self, member_dict): forward_dict = {} reverse_dict = {} module_globals = globals() next_value = 0 for name, value in member_dict.iteritems(): if value is None: value = next_value next_value += 1 forward_dict[name] = value if value in reverse_dict: raise ValueError('Multiple names for value %r: %r, %r' % (value, reverse_dict[value], name)) reverse_dict[value] = name module_globals[name] = value self.forward_dict = forward_dict self.reverse_dict = reverse_dict def __call__(self, value): return self.reverse_dict[value] def get(self, value, default=None): return self.reverse_dict.get(value, default) class USBError(Exception): def __init__(self, value): Exception.__init__(self) self.value = value def __str__(self): return '%s [%s]' % (libusb_error.get(self.value, 'Unknown error'), self.value) c_uchar = c_uint8 c_int_p = POINTER(c_int) PATH_MAX = 4096 # XXX: True on linux, no idea about others. LITTLE_ENDIAN = sys.byteorder == 'little' class timeval(Structure): _fields_ = [('tv_sec', c_long), ('tv_usec', c_long)] timeval_p = POINTER(timeval) def _loadLibrary(): system = platform.system() if system == 'Windows': from ctypes import WinDLL as dll_loader libusb_path = find_library("libusb-1.0.dll") else: from ctypes import CDLL as dll_loader libusb_path = find_library("usb-1.0") if libusb_path is None and system == 'Darwin': # macport standard library path libusb_path = '/opt/local/lib/libusb-1.0.dylib' if not os.path.isfile(libusb_path): libusb_path = None if libusb_path is None: raise Exception('Can\'t locate usb-1.0 library') loader_kw = {} if sys.version_info[:2] >= (2, 6): loader_kw['use_errno'] = True loader_kw['use_last_error'] = True return dll_loader(libusb_path, **loader_kw) libusb = _loadLibrary() # libusb.h def bswap16(x): return (((x & 0xff) << 8) | (x >> 8)) if LITTLE_ENDIAN: def libusb_cpu_to_le16(x): return x def libusb_le16_to_cpu(x): return x else: libusb_cpu_to_le16 = bswap16 libusb_le16_to_cpu = bswap16 # standard USB stuff # Device and/or Interface Class codes libusb_class_code = Enum({ # In the context of a device descriptor, # this bDeviceClass value indicates that each interface specifies its # own class information and all interfaces operate independently. 'LIBUSB_CLASS_PER_INTERFACE': 0, # Audio class 'LIBUSB_CLASS_AUDIO': 1, # Communications class 'LIBUSB_CLASS_COMM': 2, # Human Interface Device class 'LIBUSB_CLASS_HID': 3, # Printer dclass 'LIBUSB_CLASS_PRINTER': 7, # Picture transfer protocol class 'LIBUSB_CLASS_PTP': 6, # Mass storage class 'LIBUSB_CLASS_MASS_STORAGE': 8, # Hub class 'LIBUSB_CLASS_HUB': 9, # Data class 'LIBUSB_CLASS_DATA': 10, # Wireless class 'LIBUSB_CLASS_WIRELESS': 0xe0, # Application class 'LIBUSB_CLASS_APPLICATION': 0xfe, # Class is vendor-specific 'LIBUSB_CLASS_VENDOR_SPEC': 0xff }) # Descriptor types as defined by the USB specification. libusb_descriptor_type = Enum({ # Device descriptor. See libusb_device_descriptor. 'LIBUSB_DT_DEVICE': 0x01, # Configuration descriptor. See libusb_config_descriptor. 'LIBUSB_DT_CONFIG': 0x02, # String descriptor 'LIBUSB_DT_STRING': 0x03, # Interface descriptor. See libusb_interface_descriptor. 'LIBUSB_DT_INTERFACE': 0x04, # Endpoint descriptor. See libusb_endpoint_descriptor. 'LIBUSB_DT_ENDPOINT': 0x05, # HID descriptor 'LIBUSB_DT_HID': 0x21, # HID report descriptor 'LIBUSB_DT_REPORT': 0x22, # Physical descriptor 'LIBUSB_DT_PHYSICAL': 0x23, # Hub descriptor 'LIBUSB_DT_HUB': 0x29 }) # Descriptor sizes per descriptor type LIBUSB_DT_DEVICE_SIZE = 18 LIBUSB_DT_CONFIG_SIZE = 9 LIBUSB_DT_INTERFACE_SIZE = 9 LIBUSB_DT_ENDPOINT_SIZE = 7 LIBUSB_DT_ENDPOINT_AUDIO_SIZE = 9 # Audio extension LIBUSB_DT_HUB_NONVAR_SIZE = 7 USB_ENDPOINT_ADDRESS_MASK = 0x0f # in bEndpointAddress USB_ENDPOINT_DIR_MASK = 0x80 # Endpoint direction. Values for bit 7 of the endpoint address scheme. libusb_endpoint_direction = Enum({ # In: device-to-host 'LIBUSB_ENDPOINT_IN': 0x80, # Out: host-to-device 'LIBUSB_ENDPOINT_OUT': 0x00 }) LIBUSB_TRANSFER_TYPE_MASK = 0x03 # in bmAttributes # Endpoint transfer type. Values for bits 0:1 of the endpoint attributes field. libusb_transfer_type = Enum({ # Control endpoint 'LIBUSB_TRANSFER_TYPE_CONTROL': 0, # Isochronous endpoint 'LIBUSB_TRANSFER_TYPE_ISOCHRONOUS': 1, # Bulk endpoint 'LIBUSB_TRANSFER_TYPE_BULK': 2, # Interrupt endpoint 'LIBUSB_TRANSFER_TYPE_INTERRUPT': 3 }) # Standard requests, as defined in table 9-3 of the USB2 specifications libusb_standard_request = Enum({ # Request status of the specific recipient 'LIBUSB_REQUEST_GET_STATUS': 0x00, # Clear or disable a specific feature 'LIBUSB_REQUEST_CLEAR_FEATURE': 0x01, # 0x02 is reserved # Set or enable a specific feature 'LIBUSB_REQUEST_SET_FEATURE': 0x03, # 0x04 is reserved # Set device address for all future accesses 'LIBUSB_REQUEST_SET_ADDRESS': 0x05, # Get the specified descriptor 'LIBUSB_REQUEST_GET_DESCRIPTOR': 0x06, # Used to update existing descriptors or add new descriptors 'LIBUSB_REQUEST_SET_DESCRIPTOR': 0x07, # Get the current device configuration value 'LIBUSB_REQUEST_GET_CONFIGURATION': 0x08, # Set device configuration 'LIBUSB_REQUEST_SET_CONFIGURATION': 0x09, # Return the selected alternate setting for the specified interface 'LIBUSB_REQUEST_GET_INTERFACE': 0x0a, # Select an alternate interface for the specified interface 'LIBUSB_REQUEST_SET_INTERFACE': 0x0b, # Set then report an endpoint's synchronization frame 'LIBUSB_REQUEST_SYNCH_FRAME': 0x0c }) # Request type bits of the bmRequestType field in control transfers. libusb_request_type = Enum({ # Standard 'LIBUSB_TYPE_STANDARD': (0x00 << 5), # Class 'LIBUSB_TYPE_CLASS': (0x01 << 5), # Vendor 'LIBUSB_TYPE_VENDOR': (0x02 << 5), # Reserved 'LIBUSB_TYPE_RESERVED': (0x03 << 5) }) # Recipient bits of the bmRequestType field in control transfers. Values 4 # through 31 are reserved. libusb_request_recipient = Enum({ # Device 'LIBUSB_RECIPIENT_DEVICE': 0x00, # Interface 'LIBUSB_RECIPIENT_INTERFACE': 0x01, # Endpoint 'LIBUSB_RECIPIENT_ENDPOINT': 0x02, # Other 'LIBUSB_RECIPIENT_OTHER': 0x03 }) LIBUSB_ISO_SYNC_TYPE_MASK = 0x0c # Synchronization type for isochronous endpoints. Values for bits 2:3 of the # bmAttributes field in libusb_endpoint_descriptor. libusb_iso_sync_type = Enum({ # No synchronization 'LIBUSB_ISO_SYNC_TYPE_NONE': 0, # Asynchronous 'LIBUSB_ISO_SYNC_TYPE_ASYNC': 1, # Adaptive 'LIBUSB_ISO_SYNC_TYPE_ADAPTIVE': 2, # Synchronous 'LIBUSB_ISO_SYNC_TYPE_SYNC': 3 }) LIBUSB_ISO_USAGE_TYPE_MASK = 0x30 # Usage type for isochronous endpoints. Values for bits 4:5 of the # bmAttributes field in libusb_endpoint_descriptor. libusb_iso_usage_type = Enum({ # Data endpoint 'LIBUSB_ISO_USAGE_TYPE_DATA': 0, # Feedback endpoint 'LIBUSB_ISO_USAGE_TYPE_FEEDBACK': 1, # Implicit feedback Data endpoint 'LIBUSB_ISO_USAGE_TYPE_IMPLICIT': 2 }) # A structure representing the standard USB device descriptor. This # descriptor is documented in section 9.6.1 of the USB 2.0 specification. # All multiple-byte fields are represented in host-endian format. class libusb_device_descriptor(Structure): _fields_ = [# Size of this descriptor (in bytes) ('bLength', c_uint8), # Descriptor type. Will have value LIBUSB_DT_DEVICE in this # context. ('bDescriptorType', c_uint8), # USB specification release number in binary-coded decimal. A # value of 0x0200 indicates USB 2.0, 0x0110 indicates USB 1.1, # etc. ('bcdUSB', c_uint16), # USB-IF class code for the device. See libusb_class_code. ('bDeviceClass', c_uint8), # USB-IF subclass code for the device, qualified by the # bDeviceClass value ('bDeviceSubClass', c_uint8), # USB-IF protocol code for the device, qualified by the # bDeviceClass and bDeviceSubClass values ('bDeviceProtocol', c_uint8), # Maximum packet size for endpoint 0 ('bMaxPacketSize0', c_uint8), # USB-IF vendor ID ('idVendor', c_uint16), # USB-IF product ID ('idProduct', c_uint16), # Device release number in binary-coded decimal ('bcdDevice', c_uint16), # Index of string descriptor describing manufacturer ('iManufacturer', c_uint8), # Index of string descriptor describing product ('iProduct', c_uint8), # Index of string descriptor containing device serial number ('iSerialNumber', c_uint8), # Number of possible configurations ('bNumConfigurations', c_uint8)] libusb_device_descriptor_p = POINTER(libusb_device_descriptor) class libusb_endpoint_descriptor(Structure): _fields_ = [('bLength', c_uint8), ('bDescriptorType', c_uint8), ('bEndpointAddress', c_uint8), ('bmAttributes', c_uint8), ('wMaxPacketSize', c_uint16), ('bInterval', c_uint8), ('bRefresh', c_uint8), ('bSynchAddress', c_uint8), ('extra', c_void_p), ('extra_length', c_int)] libusb_endpoint_descriptor_p = POINTER(libusb_endpoint_descriptor) class libusb_interface_descriptor(Structure): _fields_ = [('bLength', c_uint8), ('bDescriptorType', c_uint8), ('bInterfaceNumber', c_uint8), ('bAlternateSetting', c_uint8), ('bNumEndpoints', c_uint8), ('bInterfaceClass', c_uint8), ('bInterfaceSubClass', c_uint8), ('bInterfaceProtocol', c_uint8), ('iInterface', c_uint8), ('endpoint', libusb_endpoint_descriptor_p), ('extra', c_void_p), ('extra_length', c_int)] libusb_interface_descriptor_p = POINTER(libusb_interface_descriptor) class libusb_interface(Structure): _fields_ = [('altsetting', libusb_interface_descriptor_p), ('num_altsetting', c_int)] libusb_interface_p = POINTER(libusb_interface) class libusb_config_descriptor(Structure): _fields_ = [('bLength', c_uint8), ('bDescriptorType', c_uint8), ('wTotalLength', c_uint16), ('bNumInterfaces', c_uint8), ('bConfigurationValue', c_uint8), ('iConfiguration', c_uint8), ('bmAttributes', c_uint8), ('MaxPower', c_uint8), ('interface', libusb_interface_p), ('extra', c_void_p), ('extra_length', c_int)] libusb_config_descriptor_p = POINTER(libusb_config_descriptor) libusb_config_descriptor_p_p = POINTER(libusb_config_descriptor_p) class libusb_control_setup(Structure): _fields_ = [('bRequestType', c_uint8), ('bRequest', c_uint8), ('wValue', c_uint16), ('wIndex', c_uint16), ('wLength', c_uint16)] libusb_control_setup_p = POINTER(libusb_control_setup) LIBUSB_CONTROL_SETUP_SIZE = sizeof(libusb_control_setup) # Structure representing a libusb session. The concept of individual libusb # sessions allows for your program to use two libraries (or dynamically # load two modules) which both independently use libusb. This will prevent # interference between the individual libusb users - for example # libusb_set_debug() will not affect the other user of the library, and # libusb_exit() will not destroy resources that the other user is still # using. # # Sessions are created by libusb_init() and destroyed through libusb_exit(). # If your application is guaranteed to only ever include a single libusb # user (i.e. you), you do not have to worry about contexts: pass NULL in # every function call where a context is required. The default context # will be used. # # For more information, see \ref contexts. class libusb_context(Structure): pass libusb_context_p = POINTER(libusb_context) libusb_context_p_p = POINTER(libusb_context_p) # Structure representing a USB device detected on the system. This is an # opaque type for which you are only ever provided with a pointer, usually # originating from libusb_get_device_list(). # # Certain operations can be performed on a device, but in order to do any # I/O you will have to first obtain a device handle using libusb_open(). # # Devices are reference counted with libusb_device_ref() and # libusb_device_unref(), and are freed when the reference count reaches 0. # New devices presented by libusb_get_device_list() have a reference count of # 1, and libusb_free_device_list() can optionally decrease the reference count # on all devices in the list. libusb_open() adds another reference which is # later destroyed by libusb_close(). class libusb_device(Structure): pass libusb_device_p = POINTER(libusb_device) libusb_device_p_p = POINTER(libusb_device_p) libusb_device_p_p_p = POINTER(libusb_device_p_p) # Structure representing a handle on a USB device. This is an opaque type for # which you are only ever provided with a pointer, usually originating from # libusb_open(). # # A device handle is used to perform I/O and other operations. When finished # with a device handle, you should call libusb_close(). class libusb_device_handle(Structure): pass libusb_device_handle_p = POINTER(libusb_device_handle) libusb_device_handle_p_p = POINTER(libusb_device_handle_p) # Error codes. Most libusb functions return 0 on success or one of these # codes on failure. libusb_error = Enum({ # Success (no error) 'LIBUSB_SUCCESS': 0, # Input/output error 'LIBUSB_ERROR_IO': -1, # Invalid parameter 'LIBUSB_ERROR_INVALID_PARAM': -2, # Access denied (insufficient permissions) 'LIBUSB_ERROR_ACCESS': -3, # No such device (it may have been disconnected) 'LIBUSB_ERROR_NO_DEVICE': -4, # Entity not found 'LIBUSB_ERROR_NOT_FOUND': -5, # Resource busy 'LIBUSB_ERROR_BUSY': -6, # Operation timed out 'LIBUSB_ERROR_TIMEOUT': -7, # Overflow 'LIBUSB_ERROR_OVERFLOW': -8, # Pipe error 'LIBUSB_ERROR_PIPE': -9, # System call interrupted (perhaps due to signal) 'LIBUSB_ERROR_INTERRUPTED': -10, # Insufficient memory 'LIBUSB_ERROR_NO_MEM': -11, # Operation not supported or unimplemented on this platform 'LIBUSB_ERROR_NOT_SUPPORTED': -12, # Other error 'LIBUSB_ERROR_OTHER': -99 }) # Transfer status codes libusb_transfer_status = Enum({ # Transfer completed without error. Note that this does not indicate # that the entire amount of requested data was transferred. 'LIBUSB_TRANSFER_COMPLETED': 0, # Transfer failed 'LIBUSB_TRANSFER_ERROR': 1, # Transfer timed out 'LIBUSB_TRANSFER_TIMED_OUT': 2, # Transfer was cancelled 'LIBUSB_TRANSFER_CANCELLED': 3, # For bulk/interrupt endpoints: halt condition detected (endpoint # stalled). For control endpoints: control request not supported. 'LIBUSB_TRANSFER_STALL': 4, # Device was disconnected 'LIBUSB_TRANSFER_NO_DEVICE': 5, # Device sent more data than requested 'LIBUSB_TRANSFER_OVERFLOW': 6 }) # libusb_transfer.flags values libusb_transfer_flags = Enum({ # Report short frames as errors 'LIBUSB_TRANSFER_SHORT_NOT_OK': 1<<0, # Automatically free() transfer buffer during libusb_free_transfer() 'LIBUSB_TRANSFER_FREE_BUFFER': 1<<1, # Automatically call libusb_free_transfer() after callback returns. # If this flag is set, it is illegal to call libusb_free_transfer() # from your transfer callback, as this will result in a double-free # when this flag is acted upon. 'LIBUSB_TRANSFER_FREE_TRANSFER': 1<<2 }) # Isochronous packet descriptor. class libusb_iso_packet_descriptor(Structure): _fields_ = [('length', c_uint), ('actual_length', c_uint), ('status', c_int)] # enum libusb_transfer_status libusb_iso_packet_descriptor_p = POINTER(libusb_iso_packet_descriptor) class libusb_transfer(Structure): pass libusb_transfer_p = POINTER(libusb_transfer) libusb_transfer_cb_fn_p = CFUNCTYPE(None, libusb_transfer_p) libusb_transfer._fields_ = [('dev_handle', libusb_device_handle_p), ('flags', c_uint8), ('endpoint', c_uchar), ('type', c_uchar), ('timeout', c_uint), ('status', c_int), # enum libusb_transfer_status ('length', c_int), ('actual_length', c_int), ('callback', libusb_transfer_cb_fn_p), ('user_data', py_object), ('buffer', c_void_p), ('num_iso_packets', c_int), ('iso_packet_desc', libusb_iso_packet_descriptor) ] #int libusb_init(libusb_context **ctx); libusb_init = libusb.libusb_init libusb_init.argtypes = [libusb_context_p_p] #void libusb_exit(libusb_context *ctx); libusb_exit = libusb.libusb_exit libusb_exit.argtypes = [libusb_context_p] libusb_exit.restype = None #void libusb_set_debug(libusb_context *ctx, int level); libusb_set_debug = libusb.libusb_set_debug libusb_set_debug.argtypes = [libusb_context_p, c_int] libusb_set_debug.restype = None try: #char *libusb_strerror(enum libusb_error errcode); libusb_strerror = libusb.libusb_strerror except AttributeError: # Place holder def libusb_strerror(errcode): return None else: libusb_strerror.argtypes = [c_int] libusb_strerror.restype = c_char_p #ssize_t libusb_get_device_list(libusb_context *ctx, # libusb_device ***list); libusb_get_device_list = libusb.libusb_get_device_list libusb_get_device_list.argtypes = [libusb_context_p, libusb_device_p_p_p] libusb_get_device_list.restype = c_size_t #void libusb_free_device_list(libusb_device **list, int unref_devices); libusb_free_device_list = libusb.libusb_free_device_list libusb_free_device_list.argtypes = [libusb_device_p_p, c_int] libusb_free_device_list.restype = None #libusb_device *libusb_ref_device(libusb_device *dev); libusb_ref_device = libusb.libusb_ref_device libusb_ref_device.argtypes = [libusb_device_p] libusb_ref_device.restype = libusb_device_p #void libusb_unref_device(libusb_device *dev); libusb_unref_device = libusb.libusb_unref_device libusb_unref_device.argtypes = [libusb_device_p] libusb_unref_device.restype = None #int libusb_get_configuration(libusb_device_handle *dev, int *config); libusb_get_configuration = libusb.libusb_get_configuration libusb_get_configuration.argtypes = [libusb_device_handle_p, c_int_p] #int libusb_get_device_descriptor(libusb_device *dev, # struct libusb_device_descriptor *desc); libusb_get_device_descriptor = libusb.libusb_get_device_descriptor libusb_get_device_descriptor.argtypes = [libusb_device_p, libusb_device_descriptor_p] #int libusb_get_active_config_descriptor(libusb_device *dev, # struct libusb_config_descriptor **config); libusb_get_active_config_descriptor = libusb.libusb_get_active_config_descriptor libusb_get_active_config_descriptor.argtypes = [libusb_device_p, libusb_config_descriptor_p_p] #int libusb_get_config_descriptor(libusb_device *dev, uint8_t config_index, # struct libusb_config_descriptor **config); libusb_get_config_descriptor = libusb.libusb_get_config_descriptor libusb_get_config_descriptor.argtypes = [libusb_device_p, c_uint8, libusb_config_descriptor_p_p] #int libusb_get_config_descriptor_by_value(libusb_device *dev, # uint8_t bConfigurationValue, struct libusb_config_descriptor **config); libusb_get_config_descriptor_by_value = \ libusb.libusb_get_config_descriptor_by_value libusb_get_config_descriptor_by_value.argtypes = [libusb_device_p, c_uint8, libusb_config_descriptor_p_p] #void libusb_free_config_descriptor(struct libusb_config_descriptor *config); libusb_free_config_descriptor = libusb.libusb_free_config_descriptor libusb_free_config_descriptor.argtypes = [libusb_config_descriptor_p] libusb_free_config_descriptor.restype = None #uint8_t libusb_get_bus_number(libusb_device *dev); libusb_get_bus_number = libusb.libusb_get_bus_number libusb_get_bus_number.argtypes = [libusb_device_p] libusb_get_bus_number.restype = c_uint8 #uint8_t libusb_get_device_address(libusb_device *dev); libusb_get_device_address = libusb.libusb_get_device_address libusb_get_device_address.argtypes = [libusb_device_p] libusb_get_device_address.restype = c_uint8 #int libusb_get_max_packet_size(libusb_device *dev, unsigned char endpoint); libusb_get_max_packet_size = libusb.libusb_get_max_packet_size libusb_get_max_packet_size.argtypes = [libusb_device_p, c_uchar] #int libusb_get_max_iso_packet_size(libusb_device *dev, unsigned char endpoint); libusb_get_max_iso_packet_size = libusb.libusb_get_max_iso_packet_size libusb_get_max_iso_packet_size.argtypes = [libusb_device_p, c_uchar] #int libusb_open(libusb_device *dev, libusb_device_handle **handle); libusb_open = libusb.libusb_open libusb_open.argtypes = [libusb_device_p, libusb_device_handle_p_p] #void libusb_close(libusb_device_handle *dev_handle); libusb_close = libusb.libusb_close libusb_close.argtypes = [libusb_device_handle_p] libusb_close.restype = None #libusb_device *libusb_get_device(libusb_device_handle *dev_handle); libusb_get_device = libusb.libusb_get_device libusb_get_device.argtypes = [libusb_device_handle_p] libusb_get_device.restype = libusb_device_p #int libusb_set_configuration(libusb_device_handle *dev, int configuration); libusb_set_configuration = libusb.libusb_set_configuration libusb_set_configuration.argtypes = [libusb_device_handle_p, c_int] #int libusb_claim_interface(libusb_device_handle *dev, int iface); libusb_claim_interface = libusb.libusb_claim_interface libusb_claim_interface.argtypes = [libusb_device_handle_p, c_int] #int libusb_release_interface(libusb_device_handle *dev, int iface); libusb_release_interface = libusb.libusb_release_interface libusb_release_interface.argtypes = [libusb_device_handle_p, c_int] #libusb_device_handle *libusb_open_device_with_vid_pid(libusb_context *ctx, # uint16_t vendor_id, uint16_t product_id); libusb_open_device_with_vid_pid = libusb.libusb_open_device_with_vid_pid libusb_open_device_with_vid_pid.argtypes = [libusb_context_p, c_uint16, c_uint16] libusb_open_device_with_vid_pid.restype = libusb_device_handle_p #int libusb_set_interface_alt_setting(libusb_device_handle *dev, # int interface_number, int alternate_setting); libusb_set_interface_alt_setting = libusb.libusb_set_interface_alt_setting libusb_set_interface_alt_setting.argtypes = [libusb_device_handle_p, c_int, c_int] #int libusb_clear_halt(libusb_device_handle *dev, unsigned char endpoint); libusb_clear_halt = libusb.libusb_clear_halt libusb_clear_halt.argtypes = [libusb_device_handle_p, c_uchar] #int libusb_reset_device(libusb_device_handle *dev); libusb_reset_device = libusb.libusb_reset_device libusb_reset_device.argtypes = [libusb_device_handle_p] #int libusb_kernel_driver_active(libusb_device_handle *dev, int interface); libusb_kernel_driver_active = libusb.libusb_kernel_driver_active libusb_kernel_driver_active.argtypes = [libusb_device_handle_p, c_int] #int libusb_detach_kernel_driver(libusb_device_handle *dev, int interface); libusb_detach_kernel_driver = libusb.libusb_detach_kernel_driver libusb_detach_kernel_driver.argtypes = [libusb_device_handle_p, c_int] #int libusb_attach_kernel_driver(libusb_device_handle *dev, int interface); libusb_attach_kernel_driver = libusb.libusb_attach_kernel_driver libusb_attach_kernel_driver.argtypes = [libusb_device_handle_p, c_int] # Get the data section of a control transfer. This convenience function is here # to remind you that the data does not start until 8 bytes into the actual # buffer, as the setup packet comes first. # # Calling this function only makes sense from a transfer callback function, # or situations where you have already allocated a suitably sized buffer at # transfer->buffer. # # \param transfer a transfer # \returns pointer to the first byte of the data section def libusb_control_transfer_get_data(transfer_p): transfer = transfer_p.contents return string_at(transfer.buffer, transfer.length)[ LIBUSB_CONTROL_SETUP_SIZE:] def libusb_control_transfer_get_setup(transfer_p): return cast(transfer_p.contents.buffer, libusb_control_setup_p) def libusb_fill_control_setup(setup_p, bmRequestType, bRequest, wValue, wIndex, wLength): setup = cast(setup_p, libusb_control_setup_p).contents setup.bmRequestType = bmRequestType setup.bRequest = bRequest setup.wValue = libusb_cpu_to_le16(wValue) setup.wIndex = libusb_cpu_to_le16(wIndex) setup.wLength = libusb_cpu_to_le16(wLength) #struct libusb_transfer *libusb_alloc_transfer(int iso_packets); libusb_alloc_transfer = libusb.libusb_alloc_transfer libusb_alloc_transfer.argtypes = [c_int] libusb_alloc_transfer.restype = libusb_transfer_p #int libusb_submit_transfer(struct libusb_transfer *transfer); libusb_submit_transfer = libusb.libusb_submit_transfer libusb_submit_transfer.argtypes = [libusb_transfer_p] #int libusb_cancel_transfer(struct libusb_transfer *transfer); libusb_cancel_transfer = libusb.libusb_cancel_transfer libusb_cancel_transfer.argtypes = [libusb_transfer_p] #void libusb_free_transfer(struct libusb_transfer *transfer); libusb_free_transfer = libusb.libusb_free_transfer libusb_free_transfer.argtypes = [libusb_transfer_p] libusb_free_transfer.restype = None def libusb_fill_control_transfer(transfer_p, dev_handle, buffer, callback, user_data, timeout): transfer = transfer_p.contents transfer.dev_handle = dev_handle transfer.endpoint = 0 transfer.type = LIBUSB_TRANSFER_TYPE_CONTROL transfer.timeout = timeout transfer.buffer = cast(buffer, c_void_p) if buffer is not None: setup = cast(buffer, libusb_control_setup_p).contents transfer.length = LIBUSB_CONTROL_SETUP_SIZE + \ libusb_le16_to_cpu(setup.wLength) transfer.user_data = user_data transfer.callback = callback def libusb_fill_bulk_transfer(transfer_p, dev_handle, endpoint, buffer, length, callback, user_data, timeout): transfer = transfer_p.contents transfer.dev_handle = dev_handle transfer.endpoint = endpoint transfer.type = LIBUSB_TRANSFER_TYPE_BULK transfer.timeout = timeout transfer.buffer = cast(buffer, c_void_p) transfer.length = length transfer.user_data = user_data transfer.callback = callback def libusb_fill_interrupt_transfer(transfer_p, dev_handle, endpoint, buffer, length, callback, user_data, timeout): transfer = transfer_p.contents transfer.dev_handle = dev_handle transfer.endpoint = endpoint transfer.type = LIBUSB_TRANSFER_TYPE_INTERRUPT transfer.timeout = timeout transfer.buffer = cast(buffer, c_void_p) transfer.length = length transfer.user_data = user_data transfer.callback = callback def libusb_fill_iso_transfer(transfer_p, dev_handle, endpoint, buffer, length, num_iso_packets, callback, user_data, timeout): transfer = transfer_p.contents transfer.dev_handle = dev_handle transfer.endpoint = endpoint transfer.type = LIBUSB_TRANSFER_TYPE_ISOCHRONOUS transfer.timeout = timeout transfer.buffer = cast(buffer, c_void_p) transfer.length = length transfer.num_iso_packets = num_iso_packets transfer.user_data = user_data transfer.callback = callback def _get_iso_packet_list(transfer): list_type = libusb_iso_packet_descriptor * transfer.num_iso_packets return list_type.from_address(addressof(transfer.iso_packet_desc)) def get_iso_packet_list(transfer_p): """ Python-specific helper extracting a list of iso packet descriptors, because it's not as straight-forward as in C. """ return _get_iso_packet_list(transfer_p.contents) def _get_iso_packet_buffer(transfer, offset, length): return string_at(addressof(transfer.buffer) + offset, length) def get_iso_packet_buffer_list(transfer_p): """ Python-specific helper extracting a list of iso packet buffers. """ transfer = transfer_p.contents offset = 0 result = [] append = result.append for iso_transfer in _get_iso_packet_list(transfer): length = iso_transfer.length append(_get_iso_packet_buffer(transfer, offset, length)) offset += length return result def libusb_set_iso_packet_lengths(transfer_p, length): transfer = transfer_p.contents for iso_packet_desc in _get_iso_packet_list(transfer): iso_packet_desc.length = length def libusb_get_iso_packet_buffer(transfer_p, packet): transfer = transfer_p.contents offset = 0 if packet >= transfer.num_iso_packets: return None iso_packet_desc_list = _get_iso_packet_list(transfer) for i in xrange(packet): offset += iso_packet_desc_list[i].length return _get_iso_packet_buffer(transfer, offset, iso_packet_desc_list[packet].length) def libusb_get_iso_packet_buffer_simple(transfer_p, packet): transfer = transfer_p.contents if packet >= transfer.num_iso_packets: return None iso_length = transfer.iso_packet_desc.length return _get_iso_packet_buffer(transfer, iso_length * packet, iso_length) # sync I/O #int libusb_control_transfer(libusb_device_handle *dev_handle, # uint8_t request_type, uint8_t request, uint16_t value, uint16_t index, # unsigned char *data, uint16_t length, unsigned int timeout); libusb_control_transfer = libusb.libusb_control_transfer libusb_control_transfer.argtypes = [libusb_device_handle_p, c_uint8, c_uint8, c_uint16, c_uint16, c_void_p, c_uint16, c_uint] #int libusb_bulk_transfer(libusb_device_handle *dev_handle, # unsigned char endpoint, unsigned char *data, int length, # int *actual_length, unsigned int timeout); libusb_bulk_transfer = libusb.libusb_bulk_transfer libusb_bulk_transfer.argtypes = [libusb_device_handle_p, c_uchar, c_void_p, c_int, c_int_p, c_uint] #int libusb_interrupt_transfer(libusb_device_handle *dev_handle, # unsigned char endpoint, unsigned char *data, int length, # int *actual_length, unsigned int timeout); libusb_interrupt_transfer = libusb.libusb_interrupt_transfer libusb_interrupt_transfer.argtypes = [libusb_device_handle_p, c_uchar, c_void_p, c_int, c_int_p, c_uint] def libusb_get_descriptor(dev, desc_type, desc_index, data, length): return libusb_control_transfer(dev, LIBUSB_ENDPOINT_IN, LIBUSB_REQUEST_GET_DESCRIPTOR, (desc_type << 8) | desc_index, 0, data, length, 1000) def libusb_get_string_descriptor(dev, desc_index, langid, data, length): return libusb_control_transfer(dev, LIBUSB_ENDPOINT_IN, LIBUSB_REQUEST_GET_DESCRIPTOR, (LIBUSB_DT_STRING << 8) | desc_index, langid, data, length, 1000) #int libusb_get_string_descriptor_ascii(libusb_device_handle *dev, # uint8_t index, unsigned char *data, int length); libusb_get_string_descriptor_ascii = libusb.libusb_get_string_descriptor_ascii libusb_get_string_descriptor_ascii.argtypes = [libusb_device_handle_p, c_uint8, c_void_p, c_int] # polling and timeouts #int libusb_try_lock_events(libusb_context *ctx); libusb_try_lock_events = libusb.libusb_try_lock_events libusb_try_lock_events.argtypes = [libusb_context_p] #void libusb_lock_events(libusb_context *ctx); libusb_lock_events = libusb.libusb_lock_events libusb_lock_events.argtypes = [libusb_context_p] #void libusb_unlock_events(libusb_context *ctx); libusb_unlock_events = libusb.libusb_unlock_events libusb_unlock_events.argtypes = [libusb_context_p] libusb_unlock_events.restype = None #int libusb_event_handling_ok(libusb_context *ctx); libusb_event_handling_ok = libusb.libusb_event_handling_ok libusb_event_handling_ok.argtypes = [libusb_context_p] #int libusb_event_handler_active(libusb_context *ctx); libusb_event_handler_active = libusb.libusb_event_handler_active libusb_event_handler_active.argtypes = [libusb_context_p] #void libusb_lock_event_waiters(libusb_context *ctx); libusb_lock_event_waiters = libusb.libusb_lock_event_waiters libusb_lock_event_waiters.argtypes = [libusb_context_p] libusb_lock_event_waiters.restype = None #void libusb_unlock_event_waiters(libusb_context *ctx); libusb_unlock_event_waiters = libusb.libusb_unlock_event_waiters libusb_unlock_event_waiters.argtypes = [] libusb_unlock_event_waiters.restype = None #int libusb_wait_for_event(libusb_context *ctx, struct timeval *tv); libusb_wait_for_event = libusb.libusb_wait_for_event libusb_wait_for_event.argtypes = [libusb_context_p, timeval_p] #int libusb_handle_events_timeout(libusb_context *ctx, struct timeval *tv); libusb_handle_events_timeout = libusb.libusb_handle_events_timeout libusb_handle_events_timeout.argtypes = [libusb_context_p, timeval_p] #int libusb_handle_events(libusb_context *ctx); libusb_handle_events = libusb.libusb_handle_events libusb_handle_events.argtypes = [libusb_context_p] #int libusb_handle_events_locked(libusb_context *ctx, struct timeval *tv); libusb_handle_events_locked = libusb.libusb_handle_events_locked libusb_handle_events_locked.argtypes = [libusb_context_p, timeval_p] #int libusb_get_next_timeout(libusb_context *ctx, struct timeval *tv); libusb_get_next_timeout = libusb.libusb_get_next_timeout libusb_get_next_timeout.argtypes = [libusb_context_p, timeval_p] class libusb_pollfd(Structure): _fields_ = [('fd', c_int), ('events', c_short)] libusb_pollfd_p = POINTER(libusb_pollfd) libusb_pollfd_p_p = POINTER(libusb_pollfd_p) libusb_pollfd_added_cb_p = CFUNCTYPE(None, c_int, c_short, py_object) libusb_pollfd_removed_cb_p = CFUNCTYPE(None, c_int, py_object) #const struct libusb_pollfd **libusb_get_pollfds(libusb_context *ctx); libusb_get_pollfds = libusb.libusb_get_pollfds libusb_get_pollfds.argtypes = [libusb_context_p] libusb_get_pollfds.restype = libusb_pollfd_p_p #void libusb_set_pollfd_notifiers(libusb_context *ctx, # libusb_pollfd_added_cb added_cb, libusb_pollfd_removed_cb removed_cb, # void *user_data); libusb_set_pollfd_notifiers = libusb.libusb_set_pollfd_notifiers libusb_set_pollfd_notifiers.argtypes = [libusb_context_p, libusb_pollfd_added_cb_p, libusb_pollfd_removed_cb_p, py_object] libusb_set_pollfd_notifiers.restype = None # /libusb.h �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/lsmd.py�����������������������������������������������������������������0000775�0000000�0000000�00000006211�12262477515�0017176�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python import usb1 import libnetmd def main(bus=None, device_address=None, show_uuids=False): context = usb1.LibUSBContext() for md in libnetmd.iterdevices(context, bus=bus, device_address=device_address): listMD(md, show_uuids) def listMD(md, show_uuids): md_iface = libnetmd.NetMDInterface(md) codec_name_dict = { libnetmd.ENCODING_SP: 'sp', libnetmd.ENCODING_LP2: 'lp2', libnetmd.ENCODING_LP4: 'lp4', } channel_count_dict = { libnetmd.CHANNELS_MONO: 'mono', libnetmd.CHANNELS_STEREO: 'stereo', } flag_dict = { libnetmd.TRACK_FLAG_PROTECTED: 'protected', 0: 'unprotected', } def reprDiscFlags(flags): result = [] if flags & libnetmd.DISC_FLAG_WRITABLE: result.append('writable media') if flags & libnetmd.DISC_FLAG_WRITE_PROTECTED: result.append('write-protected') return result def timeToFrames(time_tuple): assert len(time_tuple) == 4 return (((time_tuple[0] * 60) + time_tuple[1]) * 60 + time_tuple[2]) \ * 512 + time_tuple[3] flags = reprDiscFlags(md_iface.getDiscFlags()) print 'Disk (%s) %s %s' % ( ', '.join(flags), md_iface.getDiscTitle(), md_iface.getDiscTitle(True).decode('shift_jis_2004')) disc_used, disc_total, disc_left = md_iface.getDiscCapacity() disc_total = timeToFrames(disc_total) disc_left = timeToFrames(disc_left) print 'Time used: %02i:%02i:%02i+%03i (%.02f%%)' % ( disc_used[0], disc_used[1], disc_used[2], disc_used[3], (disc_total - disc_left) / float(disc_total) * 100) track_count = md_iface.getTrackCount() print '%i tracks' % (track_count, ) for group, (group_name, track_list) in enumerate( md_iface.getTrackGroupList()): if group_name is None: prefix = '' else: prefix = ' ' print 'Group %r' % (group_name or group + 1, ) for track, real_track in enumerate(track_list): hour, minute, second, sample = md_iface.getTrackLength(real_track) codec, channel_count = md_iface.getTrackEncoding(real_track) flags = md_iface.getTrackFlags(real_track) print '%s%03i: %02i:%02i:%02i+%03i %s %s %s %s %s' % (prefix, track, hour, minute, second, sample, codec_name_dict[codec], channel_count_dict[channel_count], flag_dict[flags], md_iface.getTrackTitle(real_track), md_iface.getTrackTitle(real_track, True).decode('shift_jis_2004')) if show_uuids: uuid = md_iface.getTrackUUID(real_track) print '%s UUID:' % prefix, ''.join(["%02x"%ord(i) for i in uuid]) if __name__ == '__main__': from optparse import OptionParser parser = OptionParser() parser.add_option('-b', '--bus') parser.add_option('-d', '--device') parser.add_option('-u', '--uuids', action="store_true") (options, args) = parser.parse_args() assert len(args) == 0 main(bus=options.bus, device_address=options.device, show_uuids=options.uuids) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/lsusb.py����������������������������������������������������������������0000775�0000000�0000000�00000001344�12262477515�0017371�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python import usb1 import sys def main(): verbose = False filter_set = set() for arg in sys.argv: if arg == '-v': verbose = True elif ':' in arg: vendor, product = arg.split(':') filter_set.add((int(vendor, 16), int(product, 16))) if len(filter_set): def test(device): return (device.getVendorID(), device.getProductID()) in filter_set else: def test(device): return True context = usb1.LibUSBContext() for device in context.getDeviceList(): if test(device): print device if verbose: print device.reprConfigurations() if __name__ == '__main__': main() ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/mdctl.py����������������������������������������������������������������0000775�0000000�0000000�00000001216�12262477515�0017342�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python import usb1 import libnetmd def main(bus=None, device_address=None): context = usb1.LibUSBContext() for md in libnetmd.iterdevices(context, bus=bus, device_address=device_address): MDctl(md) def MDctl(md): md_iface = libnetmd.NetMDInterface(md) import pdb; pdb.set_trace() if __name__ == '__main__': from optparse import OptionParser parser = OptionParser() parser.add_option('-b', '--bus') parser.add_option('-d', '--device') (options, args) = parser.parse_args() assert len(args) == 0 main(bus=options.bus, device_address=options.device) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/upload.py���������������������������������������������������������������0000775�0000000�0000000�00000015246�12262477515�0017533�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/python import os import usb1 import libnetmd import string from time import sleep from struct import pack RIFF_FORMAT_TAG_ATRAC3 = 0x270 def main(bus=None, device_address=None, track_range=None): context = usb1.LibUSBContext() for md in libnetmd.iterdevices(context, bus=bus, device_address=device_address): md_iface = libnetmd.NetMDInterface(md) MDDump(md_iface, track_range) def getTrackList(md_iface, track_range): channel_count_dict = { libnetmd.CHANNELS_MONO: 1, libnetmd.CHANNELS_STEREO: 2, } result = [] append = result.append track_count = md_iface.getTrackCount() if isinstance(track_range, tuple): min_track, max_track = track_range if max_track is None: max_track = track_count - 1 assert max_track < track_count assert min_track < track_count track_list = xrange(min_track, max_track + 1) elif isinstance(track_range, int): assert track_range < track_count track_list = [track_range] else: track_list = xrange(track_count) for track in track_list: flags = md_iface.getTrackFlags(track) codec, channel_count = md_iface.getTrackEncoding(track) if flags != libnetmd.TRACK_FLAG_PROTECTED: channel_count = libnetmd.CHANNEL_COUNT_DICT[channel_count] ascii_title = md_iface.getTrackTitle(track) wchar_title = md_iface.getTrackTitle(track, True).decode('shift_jis') title = wchar_title or ascii_title append((track, codec, channel_count, title)) return result def formatAeaHeader(name = '', channels = 2, soundgroups = 1, groupstart = 0, encrypted = 0, flags=[0,0,0,0,0,0,0,0]): return pack("2048s", # pad to header size pack("<I256siBx8IIII" ,2048, # header size name, soundgroups, channels, flags[0],flags[1],flags[2],flags[3], flags[4],flags[5],flags[6],flags[7], 0, # Should be time of recordin in # 32 bit DOS format. encrypted, groupstart )) class aeaUploadEvents(libnetmd.defaultUploadEvents): def __init__(self, stream, channels, name): self.stream = stream self.channels = channels self.name = name def trackinfo(self, frames, bytes, format): maskedformat = format & 0x06; if not ((maskedformat == libnetmd.DISKFORMAT_SP_STEREO and self.channels == 2) or \ (maskedformat == libnetmd.DISKFORMAT_SP_MONO and self.channels == 1)): raise ValueError, 'Unexpected format byte %02x for %d channels' % \ (format, self.channels) self.stream.write(formatAeaHeader(name = self.name, soundgroups=frames, channels=self.channels)) libnetmd.defaultUploadEvents.trackinfo(self, frames, bytes, format) # LP2/LP4 is always stereo on minidisc. def formatWavHeader(format, bytes): maskedformat = format & 0x06; if maskedformat == libnetmd.DISKFORMAT_LP4: bytesperframe = 96 jointstereo = 1 elif maskedformat == libnetmd.DISKFORMAT_LP2: bytesperframe = 192 jointstereo = 0 else: raise ValueError, 'unexpected format byte %02x' % format bytespersecond = bytesperframe * 44100 / 512 return pack("<4sI4s" # "RIFF" header "4sIHHIIHH" # "fmt " chunk - standard part "HHIHHHH" # "fmt " chunk - ATRAC extension "4sI", # "data" chunk header 'RIFF', bytes+60, 'WAVE', 'fmt ',32, RIFF_FORMAT_TAG_ATRAC3, 2, 44100, bytespersecond, 2 * bytesperframe, 0, 14, 1, bytesperframe, jointstereo, jointstereo, 1, 0, 'data', bytes) # This creates an ffmpeg compatible WAV header. class wavUploadEvents(libnetmd.defaultUploadEvents): def __init__(self, stream): self.stream = stream def trackinfo(self, frames, bytes, format): print 'Format byte', format # RIFF header self.stream.write(formatWavHeader(format, bytes)) libnetmd.defaultUploadEvents.trackinfo(self, frames, bytes, format) def MDDump(md_iface, track_range): ascii_title = md_iface.getDiscTitle() wchar_title = md_iface.getDiscTitle(True).decode('shift_jis') disc_title = wchar_title or ascii_title valid_chars = "-_.() %s%s" % (string.ascii_letters, string.digits) if disc_title == '': directory = '.' else: directory = ''.join(c for c in disc_title if c in valid_chars); print 'Storing in', directory if not os.path.exists(directory): os.mkdir(directory) for track, codec, channels, title in \ getTrackList(md_iface, track_range): if codec == libnetmd.ENCODING_SP: extension = 'aea' else: extension = 'wav' filename = '%s/%02i - %s.%s' % (directory, track + 1, ''.join(c for c in title if c in valid_chars), extension) print 'Uploading', filename aeafile = open(filename,"wb") if codec == libnetmd.ENCODING_SP: md_iface.saveTrackToStream(track, aeafile,events=aeaUploadEvents(aeafile, channels, title)) else: md_iface.saveTrackToStream(track, aeafile,events=wavUploadEvents(aeafile)) # TODO: generate playlists based on groups defined on the MD print 'Finished.' if __name__ == '__main__': from optparse import OptionParser parser = OptionParser() parser.add_option('-b', '--bus') parser.add_option('-d', '--device') parser.add_option('-t', '--track-range') (options, args) = parser.parse_args() assert len(args) < 2 track_range = options.track_range if track_range is not None: if '-' in track_range: begin, end = track_range.split('-', 1) if begin == '': begin = 0 else: begin = int(begin) - 1 if end == '': end = None else: end = int(end) - 1 assert begin < end track_range = (begin, end) else: track_range = int(track_range) - 1 main(bus=options.bus, device_address=options.device, track_range=track_range) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmd/usb1.py�����������������������������������������������������������������0000664�0000000�0000000�00000142220�12262477515�0017107�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������""" Pythonic wrapper for libusb-1.0. The first thing you must do is to get an "USB context". To do so, create a LibUSBContext instance. Then, you can use it to browse available USB devices and open the one you want to talk to. At this point, you should have a USBDeviceHandle instance (as returned by LibUSBContext or USBDevice instances), and you can start exchanging with the device. Features: - Basic device settings (configuration & interface selection, ...) - String descriptor lookups (ASCII & unicode), and list supported language codes - Synchronous I/O (control, bulk, interrupt) - Asynchronous I/O (control, bulk, interrupt, isochronous) Note: Isochronous support is experimental. See USBPoller, USBTransfer and USBTransferHelper. """ import libusb1 from ctypes import byref, create_string_buffer, c_int, sizeof, POINTER, \ create_unicode_buffer, c_wchar, cast, c_uint16, c_ubyte, string_at, \ addressof, c_void_p, cdll from cStringIO import StringIO import sys from ctypes.util import find_library __all__ = ['LibUSBContext', 'USBDeviceHandle', 'USBDevice', 'USBPoller', 'USBTransfer', 'USBTransferHelper', 'EVENT_CALLBACK_SET'] if sys.version_info[:2] >= (2, 6): if sys.platform == 'win32': from ctypes import get_last_error as get_errno else: from ctypes import get_errno else: def get_errno(): raise NotImplementedError("Your python version doesn't support " "errno/last_error") __libc_name = find_library('c') if __libc_name is None: # Of course, will leak memory. # Should we warn user ? How ? _free = lambda x: None else: _free = getattr(cdll, __libc_name).free del __libc_name # Default string length # From a comment in libusb-1.0: "Some devices choke on size > 255" STRING_LENGTH = 255 EVENT_CALLBACK_SET = frozenset(( libusb1.LIBUSB_TRANSFER_COMPLETED, libusb1.LIBUSB_TRANSFER_ERROR, libusb1.LIBUSB_TRANSFER_TIMED_OUT, libusb1.LIBUSB_TRANSFER_CANCELLED, libusb1.LIBUSB_TRANSFER_STALL, libusb1.LIBUSB_TRANSFER_NO_DEVICE, libusb1.LIBUSB_TRANSFER_OVERFLOW, )) DEFAULT_ASYNC_TRANSFER_ERROR_CALLBACK = lambda x: False def create_binary_buffer(string_or_len): # Prevent ctypes from adding a trailing null char. if isinstance(string_or_len, basestring): result = create_string_buffer(string_or_len, len(string_or_len)) else: result = create_string_buffer(string_or_len) return result class USBTransfer(object): """ USB asynchronous transfer control & data. All modification methods will raise if called on a submitted transfer. Methods noted as "should not be called on a submitted transfer" will not prevent you from reading, but returned value is unspecified. """ # Prevent garbage collector from freeing the free function before our # instances, as we need it to property destruct them. __libusb_free_transfer = libusb1.libusb_free_transfer __libusb_cancel_transfer = libusb1.libusb_cancel_transfer __USBError = libusb1.USBError __LIBUSB_ERROR_NOT_FOUND = libusb1.LIBUSB_ERROR_NOT_FOUND __transfer = None __initialized = False __submitted = False __callback = None __ctypesCallbackWrapper = None def __init__(self, handle, iso_packets=0): """ You should not instanciate this class directly. Call "getTransfer" method on an USBDeviceHandle instance to get instances of this class. """ if iso_packets < 0: raise ValueError('Cannot request a negative number of iso ' 'packets.') self.__handle = handle self.__num_iso_packets = iso_packets result = libusb1.libusb_alloc_transfer(iso_packets) if not result: raise libusb1.USBError('Unable to get a transfer object') self.__transfer = result self.__ctypesCallbackWrapper = libusb1.libusb_transfer_cb_fn_p( self.__callbackWrapper) def close(self): """ Stop using this transfer. This removes some references to other python objects, to help garbage collection. Raises if called on a submitted transfer. This does not prevent future reuse of instance (calling one of "setControl", "setBulk", "setInterrupt" or "setIsochronous" methods will initialize it properly again), just makes it ready to be garbage-collected. It is not mandatory to call it either, if you have no problems with garbage collection. """ if self.__submitted: raise ValueError('Cannot close a submitted transfer') self.__initialized = False self.__callback = None def __del__(self): if self.__transfer is not None: try: # If this doesn't raise, we're doomed; transfer was submitted, # still python decided to garbage-collect this instance. # Stick to libusb's documentation, and don't free the # transfer. If interpreter is shutting down, kernel will # reclaim memory anyway. # Note: we can't prevent transfer's buffer from being # garbage-collected as soon as there will be no remaining # reference to transfer, so a segfault might happen anyway. # Should we warn user ? How ? self.cancel() except self.__USBError, exception: if exception.value == self.__LIBUSB_ERROR_NOT_FOUND: # Transfer was not submitted, we can free it. self.__libusb_free_transfer(self.__transfer) else: raise def __callbackWrapper(self, transfer_p): """ Makes it possible for user-provided callback to alter transfer when fired (ie, mark transfer as not submitted upon call). """ mine = addressof(self.__transfer.contents) his = addressof(transfer_p.contents) assert mine == his, (mine, his) self.__submitted = False callback = self.__callback if callback is not None: callback(self) def setCallback(self, callback): """ Change transfer's callback. """ if self.__submitted: raise ValueError('Cannot alter a submitted transfer') self.__callback = callback def getCallback(self): """ Get currently set callback. """ return self.__callback def setControl(self, request_type, request, value, index, buffer_or_len, callback=None, user_data=None, timeout=0): """ Setup transfer for control use. request_type, request, value, index: See USBDeviceHandle.controlWrite. buffer_or_len: either a string (when sending data), or expected data length (when receiving data) callback: function to call upon event. Called with transfer as parameter, return value ignored. user_data: to pass some data to/from callback timeout: in milliseconds, how long to wait for devices acknowledgement or data. Set to 0 to disable. """ if self.__submitted: raise ValueError('Cannot alter a submitted transfer') if isinstance(buffer_or_len, basestring): length = len(buffer_or_len) string_buffer = create_binary_buffer( ' ' * libusb1.LIBUSB_CONTROL_SETUP_SIZE + buffer_or_len) else: length = buffer_or_len string_buffer = create_binary_buffer(length + \ libusb1.LIBUSB_CONTROL_SETUP_SIZE) self.__initialized = False libusb1.libusb_fill_control_setup(string_buffer, request_type, request, value, index, length) libusb1.libusb_fill_control_transfer(self.__transfer, self.__handle, string_buffer, self.__ctypesCallbackWrapper, user_data, timeout) self.__callback = callback self.__initialized = True def setBulk(self, endpoint, buffer_or_len, callback=None, user_data=None, timeout=0): """ Setup transfer for bulk use. endpoint: endpoint to submit transfer to (implicitly sets transfer direction). buffer_or_len: either a string (when sending data), or expected data length (when receiving data) callback: function to call upon event. Called with transfer as parameter, return value ignored. user_data: to pass some data to/from callback timeout: in milliseconds, how long to wait for devices acknowledgement or data. Set to 0 to disable. """ if self.__submitted: raise ValueError('Cannot alter a submitted transfer') string_buffer = create_binary_buffer(buffer_or_len) self.__initialized = False libusb1.libusb_fill_bulk_transfer(self.__transfer, self.__handle, endpoint, string_buffer, sizeof(string_buffer), self.__ctypesCallbackWrapper, user_data, timeout) self.__callback = callback self.__initialized = True def setInterrupt(self, endpoint, buffer_or_len, callback=None, user_data=None, timeout=0): """ Setup transfer for interrupt use. endpoint: endpoint to submit transfer to (implicitly sets transfer direction). buffer_or_len: either a string (when sending data), or expected data length (when receiving data) callback: function to call upon event. Called with transfer as parameter, return value ignored. user_data: to pass some data to/from callback timeout: in milliseconds, how long to wait for devices acknowledgement or data. Set to 0 to disable. """ if self.__submitted: raise ValueError('Cannot alter a submitted transfer') string_buffer = create_binary_buffer(buffer_or_len) self.__initialized = False libusb1.libusb_fill_interrupt_transfer(self.__transfer, self.__handle, endpoint, string_buffer, sizeof(string_buffer), self.__ctypesCallbackWrapper, user_data, timeout) self.__callback = callback self.__initialized = True def setIsochronous(self, endpoint, buffer_or_len, callback=None, user_data=None, timeout=0, iso_transfer_length_list=None): """ Setup transfer for isochronous use. endpoint: endpoint to submit transfer to (implicitly sets transfer direction). buffer_or_len: either a string (when sending data), or expected data length (when receiving data) callback: function to call upon event. Called with transfer as parameter, return value ignored. user_data: to pass some data to/from callback timeout: in milliseconds, how long to wait for devices acknowledgement or data. Set to 0 to disable. iso_transfer_length_list: list of individual transfer sizes. If not provided, buffer_or_len's size will be divided evenly among the number of ISO transfers given to receive current instance, rounded down. Providing a list allows overriding this (both the number of ISO transfers and their individual lengths). """ if self.__submitted: raise ValueError('Cannot alter a submitted transfer') num_iso_packets = self.__num_iso_packets if num_iso_packets == 0: raise TypeError('This transfer canot be used for isochronous I/O. ' 'You must get another one with a non-zero iso_packets ' 'parameter.') string_buffer = create_binary_buffer(buffer_or_len) buffer_length = sizeof(string_buffer) if iso_transfer_length_list is None: iso_length = buffer_length / num_iso_packets iso_transfer_length_list = [iso_length for _ in xrange(num_iso_packets)] configured_iso_packets = len(iso_transfer_length_list) if configured_iso_packets > num_iso_packets: raise ValueError('Too many ISO transfer lengths (%i), there are ' 'only %i ISO transfers available' % (configured_iso_packets, num_iso_packets)) if sum(iso_transfer_length_list) > buffer_length: raise ValueError('ISO transfers too long (%i), there are only ' '%i bytes available' % (sum(iso_transfer_length_list), buffer_length)) transfer_p = self.__transfer self.__initialized = False libusb1.libusb_fill_iso_transfer(transfer_p, self.__handle, endpoint, string_buffer, buffer_length, num_iso_packets, self.__ctypesCallbackWrapper, user_data, timeout) for length, iso_packet_desc in zip(iso_transfer_length_list, libusb1.get_iso_packet_list(transfer_p)): if length <= 0: raise ValueError('Negative/null transfer length are not ' 'possible.') iso_packet_desc.length = length self.__callback = callback self.__initialized = True def getType(self): """ Get transfer type. See libusb1.libusb_transfer_type. """ return self.__transfer.contents.type def getEndpoint(self): """ Get endpoint. """ return self.__transfer.contents.endpoint def getStatus(self): """ Get transfer status. Should not be called on a submitted transfer. """ return self.__transfer.contents.status def getActualLength(self): """ Get actually transfered data length. Should not be called on a submitted transfer. """ return self.__transfer.contents.actual_length def getBuffer(self): """ Get data buffer content. Should not be called on a submitted transfer. """ transfer_p = self.__transfer transfer = transfer_p.contents if transfer.type == libusb1.LIBUSB_TRANSFER_TYPE_CONTROL: result = libusb1.libusb_control_transfer_get_data(transfer_p) else: result = string_at(transfer.buffer, transfer.length) return result def getISOBufferList(self): """ Get individual ISO transfer's buffer. Returns a list with one item per ISO transfer, with their individually-configured sizes. Should not be called on a submitted transfer. """ transfer_p = self.__transfer transfer = transfer_p.contents if transfer.type != libusb1.LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: raise TypeError('This method cannot be called on non-iso ' 'transfers.') return libusb1.get_iso_packet_buffer_list(transfer_p) def getISOSetupList(self): """ Get individual ISO transfer's setup. Returns a list of dicts, each containing an individual ISO transfer parameters: - length - actual_length - status (see libusb1's API documentation for their signification) Should not be called on a submitted transfer (except for 'length' values). """ transfer_p = self.__transfer transfer = transfer_p.contents if transfer.type != libusb1.LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: raise TypeError('This method cannot be called on non-iso ' 'transfers.') return [{ 'length': x.length, 'actual_length': x.actual_length, 'status': x.status, } for x in libusb1.get_iso_packet_list(transfer_p)] def setBuffer(self, buffer_or_len): """ Replace buffer with a new one. Allows resizing read buffer and replacing data sent. Note: resizing is not allowed for isochornous buffer (use setIsochronous). """ if self.__submitted: raise ValueError('Cannot alter a submitted transfer') transfer = self.__transfer.contents if transfer.type == libusb1.LIBUSB_TRANSFER_TYPE_CONTROL: raise ValueError('To alter control transfer buffer, use ' 'setControl') buff = create_binary_buffer(buffer_or_len) if transfer.type == libusb1.LIBUSB_TRANSFER_TYPE_ISOCHRONOUS and \ sizeof(buff) != transfer.length: raise ValueError('To alter isochronous transfer buffer length, ' 'use setIsochronous') transfer.buffer = cast(buff, c_void_p) transfer.length = sizeof(buff) def isSubmitted(self): """ Tells if this transfer is submitted and still pending. """ return self.__submitted def submit(self): """ Submit transfer for asynchronous handling. """ if self.__submitted: raise ValueError('Cannot submit a submitted transfer') if not self.__initialized: raise ValueError('Cannot submit a transfer until it has been ' 'initialized') self.__submitted = True result = libusb1.libusb_submit_transfer(self.__transfer) if result: self.__submitted = False raise libusb1.USBError(result) def cancel(self): """ Cancel transfer. Note: cancellation happens asynchronously, so you must wait for LIBUSB_TRANSFER_CANCELLED. """ result = self.__libusb_cancel_transfer(self.__transfer) if result: raise self.__USBError(result) self.__submitted = False class USBTransferHelper(object): """ Simplifies subscribing to the same transfer over and over, and callback handling: - no need to read event status to execute apropriate code, just setup different functions for each status code - just return True instead of calling submit Callbacks used in this class must follow the callback API described in USBTransfer, and are expected to return a boolean: - True if transfer is to be submitted again (to receive/send more data) - False otherwise """ # TODO: handle the special case of isochronous transfers, where there is a # global status and per-packet status. def __init__(self, transfer=None): """ Create a transfer callback dispatcher. transfer parameter is deprecated. If provided, it will be equivalent to: helper = USBTransferHelper() transfer.setCallback(helper) and also allows using deprecated methods on this class (otherwise, they raise AttributeError). """ if transfer is not None: # Deprecated: to drop self.__transfer = transfer transfer.setCallback(self) self.__event_callback_dict = {} self.__errorCallback = DEFAULT_ASYNC_TRANSFER_ERROR_CALLBACK def submit(self): """ Submit the asynchronous read request. Deprecated. Use submit on transfer. """ # Deprecated: to drop self.__transfer.submit() def cancel(self): """ Cancel a pending read request. Deprecated. Use cancel on transfer. """ # Deprecated: to drop self.__transfer.cancel() def setEventCallback(self, event, callback): """ Set a function to call for a given event. Possible event identifiers are listed in EVENT_CALLBACK_SET. """ if event not in EVENT_CALLBACK_SET: raise ValueError('Unknown event %r.' % (event, )) self.__event_callback_dict[event] = callback def setDefaultCallback(self, callback): """ Set the function to call for event which don't have a specific callback registered. The initial default callback does nothing and returns False. """ self.__errorCallback = callback def getEventCallback(self, event, default=None): """ Return the function registered to be called for given event identifier. """ return self.__event_callback_dict.get(event, default) def __call__(self, transfer): """ Callback to set on transfers. """ if self.getEventCallback(transfer.getStatus(), self.__errorCallback)( transfer): transfer.submit() def isSubmited(self): """ Returns whether this reader is currently waiting for an event. Deprecatd. Use isSubmitted on transfer. """ # Deprecated: to drop return self.__transfer.isSubmitted() class USBPoller(object): """ Class allowing integration of USB event polling in a file-descriptor monitoring event loop. """ def __init__(self, context, poller): """ Create a poller for given context. Warning: it will not check if another poller instance was already present for that context, and will replace it. poller is a polling instance implementing the following methods: - register(fd, event_flags) event_flags have the same meaning as in poll API (POLLIN & POLLOUT) - unregister(fd) - poll(timeout) timeout being a float in seconds, or None if there is no timeout. It must return a list of (descriptor, event) pairs. Note: USBPoller is itself a valid poller. """ self.__context = context self.__poller = poller self.__fd_set = set() context.setPollFDNotifiers(self._registerFD, self._unregisterFD) for fd, events in context.getPollFDList(): self._registerFD(fd, events) def __del__(self): self.__context.setPollFDNotifiers(None, None) def poll(self, timeout=None): """ Poll for events. timeout can be a float in seconds, or None for no timeout. Returns a list of (descriptor, event) pairs. """ next_usb_timeout = self.__context.getNextTimeout() if timeout is None: usb_timeout = next_usb_timeout elif next_usb_timeout: usb_timeout = min(next_usb_timeout, timeout) else: usb_timeout = timeout event_list = self.__poller.poll(usb_timeout) if event_list: fd_set = self.__fd_set result = [(x, y) for x, y in event_list if x not in fd_set] if len(result) != len(event_list): self.__context.handleEventsTimeout() else: result = event_list self.__context.handleEventsTimeout() return result def register(self, fd, events): """ Register an USB-unrelated fd to poller. Convenience method. """ if fd in self.__fd_set: raise ValueError('This fd is a special USB event fd, it cannot ' 'be polled.') self.__poller.register(fd, events) def unregister(self, fd): """ Unregister an USB-unrelated fd from poller. Convenience method. """ if fd in self.__fd_set: raise ValueError('This fd is a special USB event fd, it must ' 'stay registered.') self.__poller.unregister(fd) def _registerFD(self, fd, events, user_data=None): self.register(fd, events) self.__fd_set.add(fd) def _unregisterFD(self, fd, user_data=None): self.__fd_set.discard(fd) self.unregister(fd) class USBDeviceHandle(object): """ Represents an opened USB device. """ __handle = None __libusb_close = libusb1.libusb_close def __init__(self, context, handle): """ You should not instanciate this class directly. Call "open" method on an USBDevice instance to get an USBDeviceHandle instance. """ # XXX Context parameter is just here as a hint for garbage collector: # It must collect USBDeviceHandle instance before their LibUSBContext. self.__context = context self.__handle = handle def __del__(self): self.close() def close(self): """ Close this handle. If not called explicitely, will be called by destructor. """ handle = self.__handle if handle is not None: self.__libusb_close(handle) self.__handle = None def getConfiguration(self): """ Get the current configuration number for this device. """ configuration = c_int() result = libusb1.libusb_get_configuration(self.__handle, byref(configuration)) if result: raise libusb1.USBError(result) return configuration def setConfiguration(self, configuration): """ Set the configuration number for this device. """ result = libusb1.libusb_set_configuration(self.__handle, configuration) if result: raise libusb1.USBError(result) def claimInterface(self, interface): """ Claim (= get exclusive access to) given interface number. Required to receive/send data. """ result = libusb1.libusb_claim_interface(self.__handle, interface) if result: raise libusb1.USBError(result) def releaseInterface(self, interface): """ Release interface, allowing another process to use it. """ result = libusb1.libusb_release_interface(self.__handle, interface) if result: raise libusb1.USBError(result) def setInterfaceAltSetting(self, interface, alt_setting): """ Set interface's alternative setting (both parameters are integers). """ result = libusb1.libusb_set_interface_alt_setting(self.__handle, interface, alt_setting) if result: raise libusb1.USBError(result) def clearHalt(self, endpoint): """ Clear a halt state on given endpoint number. """ result = libusb1.libusb_clear_halt(self.__handle, endpoint) if result: raise libusb1.USBError(result) def resetDevice(self): """ Reinitialise current device. Attempts to restore current configuration & alt settings. If this fails, will result in a device diconnect & reconnect, so you have to close current device and rediscover it (notified by a LIBUSB_ERROR_NOT_FOUND error code). """ result = libusb1.libusb_reset_device(self.__handle) if result: raise libusb1.USBError(result) def kernelDriverActive(self, interface): """ Tell whether a kernel driver is active on given interface number. """ result = libusb1.libusb_kernel_driver_active(self.__handle, interface) if result == 0: is_active = False elif result == 1: is_active = True else: raise libusb1.USBError(result) return is_active def detachKernelDriver(self, interface): """ Ask kernel driver to detach from given interface number. """ result = libusb1.libusb_detach_kernel_driver(self.__handle, interface) if result: raise libusb1.USBError(result) def attachKernelDriver(self, interface): """ Ask kernel driver to re-attach to given interface number. """ result = libusb1.libusb_attach_kernel_driver(self.__handle, interface) if result: raise libusb1.USBError(result) def getSupportedLanguageList(self): """ Return a list of USB language identifiers (as integers) supported by current device for its string descriptors. """ descriptor_string = create_binary_buffer(STRING_LENGTH) result = libusb1.libusb_get_string_descriptor(self.__handle, 0, 0, descriptor_string, sizeof(descriptor_string)) if result < 0: if result == libusb1.LIBUSB_ERROR_PIPE: # From libusb_control_transfer doc: # control request not supported by the device return [] raise libusb1.USBError(result) length = cast(descriptor_string, POINTER(c_ubyte))[0] langid_list = cast(descriptor_string, POINTER(c_uint16)) result = [] append = result.append for offset in xrange(1, length / 2): append(libusb1.libusb_le16_to_cpu(langid_list[offset])) return result def getStringDescriptor(self, descriptor, lang_id): """ Fetch description string for given descriptor and in given language. Use getSupportedLanguageList to know which languages are available. Return value is an unicode string. Return None if there is no such descriptor on device. """ descriptor_string = create_unicode_buffer( STRING_LENGTH / sizeof(c_wchar)) result = libusb1.libusb_get_string_descriptor(self.__handle, descriptor, lang_id, descriptor_string, sizeof(descriptor_string)) if result == libusb1.LIBUSB_ERROR_NOT_FOUND: return None if result < 0: raise libusb1.USBError(result) return descriptor_string.value def getASCIIStringDescriptor(self, descriptor): """ Fetch description string for given descriptor in first available language. Return value is an ASCII string. Return None if there is no such descriptor on device. """ descriptor_string = create_binary_buffer(STRING_LENGTH) result = libusb1.libusb_get_string_descriptor_ascii(self.__handle, descriptor, descriptor_string, sizeof(descriptor_string)) if result == libusb1.LIBUSB_ERROR_NOT_FOUND: return None if result < 0: raise libusb1.USBError(result) return descriptor_string.value # Sync I/O def _controlTransfer(self, request_type, request, value, index, data, length, timeout): result = libusb1.libusb_control_transfer(self.__handle, request_type, request, value, index, data, length, timeout) if result < 0: raise libusb1.USBError(result) return result def controlWrite(self, request_type, request, value, index, data, timeout=0): """ Synchronous control write. request_type: request type bitmask (bmRequestType), see libusb1 constants LIBUSB_TYPE_* and LIBUSB_RECIPIENT_*. request: request id (some values are standard). value, index, data: meaning is request-dependent. timeout: in milliseconds, how long to wait for device acknowledgement. Set to 0 to disable. Returns the number of bytes actually sent. """ request_type = (request_type & ~libusb1.USB_ENDPOINT_DIR_MASK) | \ libusb1.LIBUSB_ENDPOINT_OUT data = create_binary_buffer(data) return self._controlTransfer(request_type, request, value, index, data, sizeof(data), timeout) def controlRead(self, request_type, request, value, index, length, timeout=0): """ Synchronous control read. timeout: in milliseconds, how long to wait for data. Set to 0 to disable. See controlWrite for other parameters description. Returns received data. """ request_type = (request_type & ~libusb1.USB_ENDPOINT_DIR_MASK) | \ libusb1.LIBUSB_ENDPOINT_IN data = create_binary_buffer(length) transferred = self._controlTransfer(request_type, request, value, index, data, length, timeout) return data.raw[:transferred] def _bulkTransfer(self, endpoint, data, length, timeout): transferred = c_int() result = libusb1.libusb_bulk_transfer(self.__handle, endpoint, data, length, byref(transferred), timeout) if result: raise libusb1.USBError(result) return transferred.value def bulkWrite(self, endpoint, data, timeout=0): """ Synchronous bulk write. endpoint: endpoint to send data to. data: data to send. timeout: in milliseconds, how long to wait for device acknowledgement. Set to 0 to disable. Returns the number of bytes actually sent. """ endpoint = (endpoint & ~libusb1.USB_ENDPOINT_DIR_MASK) | \ libusb1.LIBUSB_ENDPOINT_OUT data = create_binary_buffer(data) return self._bulkTransfer(endpoint, data, sizeof(data), timeout) def bulkRead(self, endpoint, length, timeout=0): """ Synchronous bulk read. timeout: in milliseconds, how long to wait for data. Set to 0 to disable. See bulkWrite for other parameters description. Returns received data. """ endpoint = (endpoint & ~libusb1.USB_ENDPOINT_DIR_MASK) | \ libusb1.LIBUSB_ENDPOINT_IN data = create_binary_buffer(length) transferred = self._bulkTransfer(endpoint, data, length, timeout) return data.raw[:transferred] def _interruptTransfer(self, endpoint, data, length, timeout): transferred = c_int() result = libusb1.libusb_interrupt_transfer(self.__handle, endpoint, data, length, byref(transferred), timeout) if result: raise libusb1.USBError(result) return transferred.value def interruptWrite(self, endpoint, data, timeout=0): """ Synchronous interrupt write. endpoint: endpoint to send data to. data: data to send. timeout: in milliseconds, how long to wait for device acknowledgement. Set to 0 to disable. Returns the number of bytes actually sent. """ endpoint = (endpoint & ~libusb1.USB_ENDPOINT_DIR_MASK) | \ libusb1.LIBUSB_ENDPOINT_OUT data = create_binary_buffer(data) return self._interruptTransfer(endpoint, data, sizeof(data), timeout) def interruptRead(self, endpoint, length, timeout=0): """ Synchronous interrupt write. timeout: in milliseconds, how long to wait for data. Set to 0 to disable. See interruptRead for other parameters description. Returns received data. """ endpoint = (endpoint & ~libusb1.USB_ENDPOINT_DIR_MASK) | \ libusb1.LIBUSB_ENDPOINT_IN data = create_binary_buffer(length) transferred = self._interruptTransfer(endpoint, data, length, timeout) return data.raw[:transferred] def getTransfer(self, iso_packets=0): """ Get an empty transfer for asynchronous use. iso_packets: the number of isochronous transfer descriptors to allocate. """ return USBTransfer(self.__handle, iso_packets) class USBDevice(object): """ Represents a USB device. """ __configuration_descriptor_list = None __libusb_unref_device = libusb1.libusb_unref_device __libusb_free_config_descriptor = libusb1.libusb_free_config_descriptor __byref = byref def __init__(self, context, device_p): """ You should not instanciate this class directly. Call LibUSBContext methods to receive instances of this class. """ # Important: device_p refcount must be incremented before being given # to this constructor. This class will decrement refcount upon # destruction. self.__context = context self.device_p = device_p # Fetch device descriptor device_descriptor = libusb1.libusb_device_descriptor() result = libusb1.libusb_get_device_descriptor(device_p, byref(device_descriptor)) if result: raise libusb1.USBError(result) self.device_descriptor = device_descriptor # Fetch all configuration descriptors self.__configuration_descriptor_list = [] append = self.__configuration_descriptor_list.append for configuration_id in xrange(device_descriptor.bNumConfigurations): config = libusb1.libusb_config_descriptor_p() result = libusb1.libusb_get_config_descriptor(device_p, configuration_id, byref(config)) if result == libusb1.LIBUSB_ERROR_NOT_FOUND: # Some devices (ex windows' root hubs) tell they have one # configuration, but they have no configuration descriptor. continue if result: raise libusb1.USBError(result) append(config.contents) def __del__(self): self.__libusb_unref_device(self.device_p) if self.__configuration_descriptor_list is not None: byref = self.__byref for config in self.__configuration_descriptor_list: self.__libusb_free_config_descriptor(byref(config)) def __str__(self): return 'Bus %03i Device %03i: ID %04x:%04x %s %s' % ( self.getBusNumber(), self.getDeviceAddress(), self.getVendorID(), self.getProductID(), self.getManufacturer(), self.getProduct() ) def reprConfigurations(self): """ Get a string representation of device's configurations. Note: opens the device temporarily. """ out = StringIO() for config in self.__configuration_descriptor_list: print >> out, 'Configuration %i: %s' % (config.bConfigurationValue, self._getASCIIStringDescriptor(config.iConfiguration)) print >> out, ' Max Power: %i mA' % (config.MaxPower * 2, ) # TODO: bmAttributes dump for interface_num in xrange(config.bNumInterfaces): interface = config.interface[interface_num] print >> out, ' Interface %i' % (interface_num, ) for alt_setting_num in xrange(interface.num_altsetting): altsetting = interface.altsetting[alt_setting_num] print >> out, ' Alt Setting %i: %s' % (alt_setting_num, self._getASCIIStringDescriptor(altsetting.iInterface)) print >> out, ' Class: %02x Subclass: %02x' % \ (altsetting.bInterfaceClass, altsetting.bInterfaceSubClass) print >> out, ' Protocol: %02x' % \ (altsetting.bInterfaceProtocol, ) for endpoint_num in xrange(altsetting.bNumEndpoints): endpoint = altsetting.endpoint[endpoint_num] print >> out, ' Endpoint %i' % (endpoint_num, ) print >> out, ' Address: %02x' % \ (endpoint.bEndpointAddress, ) attribute_list = [] transfer_type = endpoint.bmAttributes & \ libusb1.LIBUSB_TRANSFER_TYPE_MASK attribute_list.append(libusb1.libusb_transfer_type( transfer_type )) if transfer_type == \ libusb1.LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: attribute_list.append(libusb1.libusb_iso_sync_type( (endpoint.bmAttributes & \ libusb1.LIBUSB_ISO_SYNC_TYPE_MASK) >> 2 )) attribute_list.append(libusb1.libusb_iso_usage_type( (endpoint.bmAttributes & \ libusb1.LIBUSB_ISO_USAGE_TYPE_MASK) >> 4 )) print >> out, ' Attributes: %s' % \ (', '.join(attribute_list), ) print >> out, ' Max Packet Size: %i' % \ (endpoint.wMaxPacketSize, ) print >> out, ' Interval: %i' % \ (endpoint.bInterval, ) print >> out, ' Refresh: %i' % \ (endpoint.bRefresh, ) print >> out, ' Sync Address: %02x' % \ (endpoint.bSynchAddress, ) return out.getvalue() def getBusNumber(self): """ Get device's bus number. """ return libusb1.libusb_get_bus_number(self.device_p) def getDeviceAddress(self): """ Get device's address on its bus. """ return libusb1.libusb_get_device_address(self.device_p) def getbcdUSB(self): """ Get the USB spec version device complies to, in BCD format. """ return self.device_descriptor.bcdUSB def getDeviceClass(self): """ Get device's class id. """ return self.device_descriptor.bDeviceClass def getDeviceSubClass(self): """ Get device's subclass id. """ return self.device_descriptor.bDeviceSubClass def getDeviceProtocol(self): """ Get device's protocol id. """ return self.device_descriptor.bDeviceProtocol def getMaxPacketSize0(self): """ Get device's max packet size for endpoint 0 (control). """ return self.device_descriptor.bMaxPacketSize0 def getVendorID(self): """ Get device's vendor id. """ return self.device_descriptor.idVendor def getProductID(self): """ Get device's product id. """ return self.device_descriptor.idProduct def getbcdDevice(self): """ Get device's release number. """ return self.device_descriptor.bcdDevice def getSupportedLanguageList(self): """ Get the list of language ids device has string descriptors for. """ temp_handle = self.open() return temp_handle.getSupportedLanguageList() def _getStringDescriptor(self, descriptor, lang_id): if descriptor == 0: result = None else: temp_handle = self.open() result = temp_handle.getStringDescriptor(descriptor, lang_id) return result def _getASCIIStringDescriptor(self, descriptor): if descriptor == 0: result = None else: temp_handle = self.open() result = temp_handle.getASCIIStringDescriptor(descriptor) return result def getManufacturer(self): """ Get device's manufaturer name. Note: opens the device temporarily. """ return self._getASCIIStringDescriptor( self.device_descriptor.iManufacturer) def getProduct(self): """ Get device's product name. Note: opens the device temporarily. """ return self._getASCIIStringDescriptor(self.device_descriptor.iProduct) def getSerialNumber(self): """ Get device's serial number. Note: opens the device temporarily. """ return self._getASCIIStringDescriptor( self.device_descriptor.iSerialNumber) def getNumConfigurations(self): """ Get device's number of possible configurations. """ return self.device_descriptor.bNumConfigurations def open(self): """ Open device. Returns an USBDeviceHandle instance. """ handle = libusb1.libusb_device_handle_p() result = libusb1.libusb_open(self.device_p, byref(handle)) if result: raise libusb1.USBError(result) return USBDeviceHandle(self.__context, handle) class LibUSBContext(object): """ libusb1 USB context. Provides methods to enumerate & look up USB devices. Also provides access to global (device-independent) libusb1 functions. """ __libusb_exit = libusb1.libusb_exit __context_p = None __added_cb = None __removed_cb = None def __init__(self): """ Create a new USB context. """ context_p = libusb1.libusb_context_p() result = libusb1.libusb_init(byref(context_p)) if result: raise libusb1.USBError(result) self.__context_p = context_p def __del__(self): self.exit() def exit(self): """ Close (destroy) this USB context. """ context_p = self.__context_p if context_p is not None: self.__libusb_exit(context_p) self.__context_p = None self.__added_cb = None self.__removed_cb = None def getDeviceList(self): """ Return a list of all USB devices currently plugged in, as USBDevice instances. """ device_p_p = libusb1.libusb_device_p_p() libusb_device_p = libusb1.libusb_device_p device_list_len = libusb1.libusb_get_device_list(self.__context_p, byref(device_p_p)) # Instanciate our own libusb_device_p object so we can free # libusb-provided device list. Is this a bug in ctypes that it doesn't # copy pointer value (=pointed memory address) ? At least, it's not so # convenient and forces using such weird code. result = [USBDevice(self, libusb_device_p(x.contents)) for x in device_p_p[:device_list_len]] libusb1.libusb_free_device_list(device_p_p, 0) return result def openByVendorIDAndProductID(self, vendor_id, product_id): """ Get the first USB device matching given vendor and product ids. Returns an USBDeviceHandle instance, or None if no present device match. """ handle_p = libusb1.libusb_open_device_with_vid_pid(self.__context_p, vendor_id, product_id) if handle_p: result = USBDeviceHandle(self, handle_p) else: result = None return result def getPollFDList(self): """ Return file descriptors to be used to poll USB events. You should not have to call this method, unless you are integrating this class with a polling mechanism. """ pollfd_p_p = libusb1.libusb_get_pollfds(self.__context_p) if not pollfd_p_p: errno = get_errno() if errno: raise OSError(errno) else: # Assume not implemented raise NotImplementedError("Your libusb doesn't seem to " "implement pollable FDs") try: result = [] append = result.append fd_index = 0 while pollfd_p_p[fd_index]: append((pollfd_p_p[fd_index].contents.fd, pollfd_p_p[fd_index].contents.events)) fd_index += 1 finally: _free(pollfd_p_p) return result def handleEvents(self): """ Handle any pending event (blocking). See libusb1 documentation for details (there is a timeout, so it's not "really" blocking). """ result = libusb1.libusb_handle_events(self.__context_p) if result: raise libusb1.USBError(result) def handleEventsTimeout(self, tv=0): """ Handle any pending event. If tv is 0, will return immediately after handling already-pending events. Othewire, defines the maximum amount of time to wait for events, in seconds. """ if tv is None: tv = 0 tv_s = int(tv) tv = libusb1.timeval(tv_s, int((tv - tv_s) * 1000000)) result = libusb1.libusb_handle_events_timeout(self.__context_p, byref(tv)) if result: raise libusb1.USBError(result) def setPollFDNotifiers(self, added_cb=None, removed_cb=None, user_data=None): """ Give libusb1 methods to call when it should add/remove file descriptor for polling. You should not have to call this method, unless you are integrating this class with a polling mechanism. """ if added_cb is None: added_cb = POINTER(None) else: added_cb = libusb1.libusb_pollfd_added_cb_p(added_cb) if removed_cb is None: removed_cb = POINTER(None) else: removed_cb = libusb1.libusb_pollfd_removed_cb_p(removed_cb) self.__added_cb = added_cb self.__removed_cb = removed_cb libusb1.libusb_set_pollfd_notifiers(self.__context_p, added_cb, removed_cb, user_data) def getNextTimeout(self): """ Returns the next internal timeout that libusb needs to handle, in seconds, or None if no timeout is needed. You should not have to call this method, unless you are integrating this class with a polling mechanism. """ timeval = libusb1.timeval() result = libusb1.libusb_get_next_timeout(self.__context_p, byref(timeval)) if result == 0: result = None elif result == 1: result = timeval.tv_sec + (timeval.tv_usec * 0.000001) else: raise libusb1.USBError(result) return result def setDebug(self, level): """ Set debugging level. Note: depending on libusb compilation settings, this might have no effect. """ libusb1.libusb_set_debug(self.__context_p, level) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmdcli/���������������������������������������������������������������������0000775�0000000�0000000�00000000000�12262477515�0016352�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmdcli/.gitignore�����������������������������������������������������������0000664�0000000�0000000�00000000077�12262477515�0020346�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Makefile Makefile.Release Makefile.Debug netmdcli debug release�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmdcli/netmdcli.c�����������������������������������������������������������0000664�0000000�0000000�00000062222�12262477515�0020321�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* netmd.c * Copyright (C) 2002, 2003 Marc Britten * * This file is part of libnetmd. * * libnetmd 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 2 of the License, or * (at your option) any later version. * * Libnetmd 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #include <gcrypt.h> #include <unistd.h> #include "libnetmd.h" #include "utils.h" void print_disc_info(netmd_dev_handle* devh, minidisc *md); void print_current_track_info(netmd_dev_handle* devh); void print_syntax(); void import_m3u_playlist(netmd_dev_handle* devh, const char *file); /* Max line length we support in M3U files... should match MD TOC max */ #define M3U_LINE_MAX 128 /* static void handle_secure_cmd(netmd_dev_handle* devh, int cmdid, int track) { unsigned int player_id; unsigned char ekb_head[] = { 0x01, 0xca, 0xbe, 0x07, 0x2c, 0x4d, 0xa7, 0xae, 0xf3, 0x6c, 0x8d, 0x73, 0xfa, 0x60, 0x2b, 0xd1}; unsigned char ekb_body[] = { 0x0f, 0xf4, 0x7d, 0x45, 0x9c, 0x72, 0xda, 0x81, 0x85, 0x16, 0x9d, 0x73, 0x49, 0x00, 0xff, 0x6c, 0x6a, 0xb9, 0x61, 0x6b, 0x03, 0x04, 0xf9, 0xce}; unsigned char rand_in[8], rand_out[8]; unsigned char hash8[8]; unsigned char hash32[32]; switch (cmdid) { case 0x11: if (netmd_secure_cmd_11(devh, &player_id) > 0) { fprintf(stdout, "Player id = %04d\n", player_id); } break; case 0x12: netmd_secure_cmd_12(devh, ekb_head, ekb_body); break; case 0x20: memset(rand_in, 0, sizeof(rand_in)); if (netmd_secure_cmd_20(devh, rand_in, rand_out) > 0) { fprintf(stdout, "Random =\n"); print_hex(rand_out, sizeof(rand_out)); } break; case 0x21: netmd_secure_cmd_21(devh); break; case 0x22: memset(hash32, 0, sizeof(hash32)); netmd_secure_cmd_22(devh, hash32); break; case 0x23: if (netmd_secure_cmd_23(devh, track, hash8) > 0) { fprintf(stdout, "Hash id of track %d =\n", track); print_hex(hash8, sizeof(hash8)); } break;*/ /*case 0x28: TODO*/ /*case 0x40: if (netmd_secure_cmd_40(devh, track, hash8) > 0) { fprintf(stdout, "Signature of deleted track %d =\n", track); print_hex(hash8, sizeof(hash8)); } break; case 0x48: memset(hash8, 0, sizeof(hash8)); if (netmd_secure_cmd_48(devh, track, hash8) > 0) { fprintf(stdout, "Signature of downloaded track %d =\n", track); print_hex(hash8, sizeof(hash8)); } break; case 0x80: netmd_secure_cmd_80(devh); break; case 0x81: netmd_secure_cmd_81(devh); break; default: fprintf(stderr, "unsupported secure command\n"); break; } } */ static void send_raw_message(netmd_dev_handle* devh, char *pszRaw) { unsigned char cmd[255], rsp[255]; unsigned int data; char szBuf[4]; size_t cmdlen; int rsplen; /* check raw message length */ if ((strlen(pszRaw) % 2) != 0) { printf("Error: invalid length of raw message!\n"); return; } /* convert hex message to bin */ cmdlen = 0; while (*pszRaw != 0) { szBuf[0] = *pszRaw++; szBuf[1] = *pszRaw++; szBuf[2] = '\0'; if (sscanf(szBuf, "%02X", &data) != 1) { printf("Error: invalid character at byte %d ('%s')\n", cmdlen, szBuf); return; } cmd[cmdlen++] = data & 0xff; } /* send it */ rsplen = netmd_exch_message(devh, cmd, cmdlen, rsp); if (rsplen < 0) { printf("Error: netmd_exch_message failed with %d\n", rsplen); return; } } void print_time(const netmd_time *time) { printf("%02d:%02d:%02d.%02d", time->hour, time->minute, time->second, time->frame); } void retailmac(unsigned char *rootkey, unsigned char *hostnonce, unsigned char *devnonce, unsigned char *sessionkey) { gcry_cipher_hd_t handle1; gcry_cipher_hd_t handle2; unsigned char des3_key[24] = { 0 }; unsigned char iv[8] = { 0 }; gcry_cipher_open(&handle1, GCRY_CIPHER_DES, GCRY_CIPHER_MODE_ECB, 0); gcry_cipher_setkey(handle1, rootkey, 8); gcry_cipher_encrypt(handle1, iv, 8, hostnonce, 8); memcpy(des3_key, rootkey, 16); memcpy(des3_key+16, rootkey, 8); gcry_cipher_open(&handle2, GCRY_CIPHER_3DES, GCRY_CIPHER_MODE_CBC, 0); gcry_cipher_setkey(handle2, des3_key, 24); gcry_cipher_setiv(handle2, iv, 8); gcry_cipher_encrypt(handle2, sessionkey, 8, devnonce, 8); gcry_cipher_close(handle1); gcry_cipher_close(handle2); } int main(int argc, char* argv[]) { netmd_dev_handle* devh; minidisc my_minidisc, *md = &my_minidisc; netmd_device *device_list, *netmd; unsigned int i = 0; unsigned int j = 0; char name[16]; uint16_t track, playmode; int c; netmd_time time; netmd_error error; FILE *f; error = netmd_init(&device_list); if (error != NETMD_NO_ERROR) { printf("Error initializing netmd\n%s\n", netmd_strerror(error)); return -1; } if (device_list == NULL) { puts("Found no NetMD device(s)."); return -1; } /* pick first available device */ netmd = device_list; error = netmd_open(netmd, &devh); if(error != NETMD_NO_ERROR) { printf("Error opening netmd\n%s\n", netmd_strerror(error)); return -1; } error = netmd_get_devname(devh, name, 16); if (error != NETMD_NO_ERROR) { printf("Could not get device name\n%s\n", netmd_strerror(error)); return -1; } printf("%s\n", name); netmd_initialize_disc_info(devh, md); printf("Disc Title: %s\n\n", md->groups[0].name); /* by default, log only errors */ netmd_set_log_level(NETMD_LOG_ERROR); /* parse options */ while (1) { c = getopt(argc, argv, "t"); if (c == -1) { break; } switch (c) { case 't': netmd_set_log_level(NETMD_LOG_ALL); break; default: fprintf(stderr, "Unknown option '%c'\n", c); break; } } /* update argv and argc after parsing options */ argv = &argv[optind - 1]; argc -= (optind - 1); /* parse commands */ if(argc > 1) { if(strcmp("rename", argv[1]) == 0) { i = strtoul(argv[2], NULL, 10); netmd_cache_toc(devh); netmd_set_title(devh, i & 0xffff, argv[3]); netmd_sync_toc(devh); } else if(strcmp("move", argv[1]) == 0) { i = strtoul(argv[2], NULL, 10); j = strtoul(argv[3], NULL, 10); netmd_move_track(devh, i & 0xffff, j & 0xffff); } else if(strcmp("groupmove", argv[1]) == 0) { i = strtoul(argv[2], NULL, 10); j = strtoul(argv[3], NULL, 10); netmd_move_group(devh, md, j & 0xffff, i & 0xffff); } else if(strcmp("write", argv[1]) == 0) { if(netmd_write_track(devh, argv[2]) < 0) { fprintf(stderr, "Error writing track %i\n", errno); } } else if(strcmp("newgroup", argv[1]) == 0) { netmd_create_group(devh, md, argv[2]); } else if(strcmp("settitle", argv[1]) == 0) { netmd_cache_toc(devh); netmd_set_disc_title(devh, argv[2], strlen(argv[2])); netmd_sync_toc(devh); } else if(strcmp("group", argv[1]) == 0) { i = strtoul(argv[2], NULL, 10); j = strtoul(argv[3], NULL, 10); if(!netmd_put_track_in_group(devh, md, i & 0xffff, j & 0xffff)) { printf("Something screwy happened\n"); } } else if(strcmp("retitle", argv[1]) == 0) { i = strtoul(argv[2], NULL, 10); netmd_set_group_title(devh, md, i, argv[3]); } else if(strcmp("play", argv[1]) == 0) { if( argc > 2 ) { i = strtoul(argv[2],NULL, 10); netmd_set_track( devh, i & 0xffff ); } netmd_play(devh); } else if(strcmp("stop", argv[1]) == 0) { netmd_stop(devh); } else if(strcmp("pause", argv[1]) == 0) { netmd_pause(devh); } else if(strcmp("fforward", argv[1]) == 0) { netmd_fast_forward(devh); } else if(strcmp("rewind", argv[1]) == 0) { netmd_rewind(devh); } else if(strcmp("next", argv[1]) == 0) { netmd_track_next(devh); } else if(strcmp("previous", argv[1]) == 0) { netmd_track_previous(devh); } else if(strcmp("restart", argv[1]) == 0) { netmd_track_restart(devh); } else if(strcmp("settime", argv[1]) == 0) { track = strtoul(argv[2], (char **) NULL, 10) & 0xffff; if (argc > 6) { time.hour = strtoul(argv[3], (char **) NULL, 10) & 0xffff; time.minute = strtoul(argv[4], (char **) NULL, 10) & 0xff; time.second = strtoul(argv[5], (char **) NULL, 10) & 0xff; time.frame = strtoul(argv[6], (char **) NULL, 10) & 0xff; } else { time.hour = 0; time.minute = strtoul(argv[3], (char **) NULL, 10) & 0xff; time.second = strtoul(argv[4], (char **) NULL, 10) & 0xff; if (argc > 5) { time.frame = strtoul(argv[5], (char **) NULL, 10) & 0xff;; } else { time.frame = 0; } } netmd_set_time(devh, track, &time); } else if(strcmp("m3uimport", argv[1]) == 0) { import_m3u_playlist(devh, argv[2]); } else if(strcmp("delete", argv[1]) == 0) { i = strtoul(argv[2], NULL, 10); netmd_delete_track(devh, i & 0xffff); } else if(strcmp("deletegroup", argv[1]) == 0) { i = strtoul(argv[2], NULL, 10); netmd_delete_group(devh, md, i & 0xffff); } else if(strcmp("status", argv[1]) == 0) { print_current_track_info(devh); } else if (strcmp("raw", argv[1]) == 0) { send_raw_message(devh, argv[2]); } else if (strcmp("setplaymode", argv[1]) == 0) { playmode = 0; int i; for (i = 2; i < argc; i++) { if (strcmp(argv[i], "single") == 0) { playmode |= NETMD_PLAYMODE_SINGLE; } else if (strcmp(argv[i], "repeat") == 0) { playmode |= NETMD_PLAYMODE_REPEAT; } else if (strcmp(argv[i], "shuffle") == 0) { playmode |= NETMD_PLAYMODE_SHUFFLE; } } printf("%x\n", playmode); netmd_set_playmode(devh, playmode); } else if (strcmp("capacity", argv[1]) == 0) { netmd_disc_capacity capacity; netmd_get_disc_capacity(devh, &capacity); printf("Recorded: "); print_time(&capacity.recorded); printf("\nTotal: "); print_time(&capacity.total); printf("\nAvailable: "); print_time(&capacity.available); printf("\n"); } else if (strcmp("recv", argv[1]) == 0) { i = strtoul(argv[2], NULL, 10); f = fopen(argv[3], "wb"); netmd_secure_recv_track(devh, i & 0xffff, f); fclose(f); } else if (strcmp("send", argv[1]) == 0) { netmd_error error; netmd_ekb ekb; unsigned char chain[] = {0x25, 0x45, 0x06, 0x4d, 0xea, 0xca, 0x14, 0xf9, 0x96, 0xbd, 0xc8, 0xa4, 0x06, 0xc2, 0x2b, 0x81, 0x49, 0xba, 0xf0, 0xdf, 0x26, 0x9d, 0xb7, 0x1d, 0x49, 0xba, 0xf0, 0xdf, 0x26, 0x9d, 0xb7, 0x1d}; unsigned char signature[] = {0xe8, 0xef, 0x73, 0x45, 0x8d, 0x5b, 0x8b, 0xf8, 0xe8, 0xef, 0x73, 0x45, 0x8d, 0x5b, 0x8b, 0xf8, 0x38, 0x5b, 0x49, 0x36, 0x7b, 0x42, 0x0c, 0x58}; unsigned char rootkey[] = {0x13, 0x37, 0x13, 0x37, 0x13, 0x37, 0x13, 0x37, 0x13, 0x37, 0x13, 0x37, 0x13, 0x37, 0x13, 0x37}; netmd_keychain *keychain; netmd_keychain *next; size_t done; unsigned char hostnonce[8] = { 0 }; unsigned char devnonce[8] = { 0 }; unsigned char sessionkey[8] = { 0 }; unsigned char kek[] = { 0x14, 0xe3, 0x83, 0x4e, 0xe2, 0xd3, 0xcc, 0xa5 }; unsigned char contentid[] = { 0x01, 0x0F, 0x50, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0xA2, 0x8D, 0x3E, 0x1A, 0x3B, 0x0C, 0x44, 0xAF, 0x2f, 0xa0 }; netmd_track_packets *packets = NULL; size_t packet_count = 0; struct stat stat_buf; unsigned char *data; size_t data_size; uint16_t track; unsigned char uuid[8] = { 0 }; unsigned char new_contentid[20] = { 0 }; error = netmd_secure_leave_session(devh); puts(netmd_strerror(error)); error = netmd_secure_set_track_protection(devh, 0x01); puts(netmd_strerror(error)); error = netmd_secure_enter_session(devh); puts(netmd_strerror(error)); /* build ekb */ ekb.id = 0x26422642; ekb.depth = 9; ekb.signature = malloc(sizeof(signature)); memcpy(ekb.signature, signature, sizeof(signature)); /* build ekb key chain */ ekb.chain = NULL; for (done = 0; done < sizeof(chain); done+=16U) { next = malloc(sizeof(netmd_keychain)); if (ekb.chain == NULL) { ekb.chain = next; } else { keychain->next = next; } next->next = NULL; next->key = malloc(16); memcpy(next->key, chain + done, 16); keychain = next; } error = netmd_secure_send_key_data(devh, &ekb); puts(netmd_strerror(error)); /* cleanup */ free(ekb.signature); keychain = ekb.chain; while (keychain != NULL) { next = keychain->next; free(keychain->key); free(keychain); keychain = next; } /* exchange nonces */ gcry_create_nonce(hostnonce, sizeof(hostnonce)); error = netmd_secure_session_key_exchange(devh, hostnonce, devnonce); puts(netmd_strerror(error)); /* calculate session key */ retailmac(rootkey, hostnonce, devnonce, sessionkey); error = netmd_secure_setup_download(devh, contentid, kek, sessionkey); puts(netmd_strerror(error)); /* read source */ stat(argv[2], &stat_buf); data_size = (size_t)stat_buf.st_size; data = malloc(data_size); f = fopen(argv[2], "rb"); fseek(f, 60, SEEK_CUR); fread(data, data_size - 60, 1, f); fclose(f); error = netmd_prepare_packets(data, data_size-60, &packets, &packet_count, kek); puts(netmd_strerror(error)); /* send to device */ error = netmd_secure_send_track(devh, NETMD_WIREFORMAT_LP2, NETMD_DISKFORMAT_LP2, (data_size - 60) / 192, packets, packet_count, sessionkey, &track, uuid, new_contentid); puts(netmd_strerror(error)); /* cleanup */ netmd_cleanup_packets(&packets); /* set title */ netmd_log(NETMD_LOG_DEBUG, "New Track: %d\n", track); netmd_cache_toc(devh); netmd_set_title(devh, track, "test"); netmd_sync_toc(devh); /* commit track */ error = netmd_secure_commit_track(devh, track, sessionkey); puts(netmd_strerror(error)); /* forget key */ error = netmd_secure_session_key_forget(devh); puts(netmd_strerror(error)); /* leave session */ error = netmd_secure_leave_session(devh); puts(netmd_strerror(error)); } else if(strcmp("help", argv[1]) == 0) { print_syntax(); } else { print_disc_info(devh, md); print_syntax(); } } else print_disc_info(devh, md); netmd_clean_disc_info(md); netmd_close(devh); netmd_clean(&device_list); return 0; } void print_current_track_info(netmd_dev_handle* devh) { uint16_t track; char buffer[256]; netmd_time time; /* TODO: error checking */ netmd_get_position(devh, &time); netmd_get_track(devh, &track); netmd_request_title(devh, track, buffer, 256); printf("Current track: %s \n", buffer); printf("Current playback position: "); print_time(&time); printf("\n"); } void print_disc_info(netmd_dev_handle* devh, minidisc* md) { uint8_t i = 0; int size = 1; uint8_t g, group = 0, lastgroup = 0; unsigned char bitrate_id; unsigned char flags; unsigned char channel; char *name, buffer[256]; struct netmd_track time; struct netmd_pair const *trprot, *bitrate; trprot = bitrate = 0; for(i = 0; size >= 0; i++) { size = netmd_request_title(devh, i, buffer, 256); if(size < 0) { break; } /* Figure out which group this track is in */ for( group = 0, g = 1; g < md->group_count; g++ ) { if( (md->groups[g].start <= i+1U) && (md->groups[g].finish >= i+1U )) { group = g; break; } } /* Different to the last group? */ if( group != lastgroup ) { lastgroup = group; if( group ) /* Group 0 is 'no group' */ { printf("Group: %s\n", md->groups[group].name); } } /* Indent tracks which are in a group */ if( group ) { printf(" "); } netmd_request_track_time(devh, i, &time); netmd_request_track_flags(devh, i, &flags); netmd_request_track_bitrate(devh, i, &bitrate_id, &channel); trprot = find_pair(flags, trprot_settings); bitrate = find_pair(bitrate_id, bitrates); /* Skip 'LP:' prefix... the codec type shows up in the list anyway*/ if( strncmp( buffer, "LP:", 3 )) { name = buffer; } else { name = buffer + 3; } printf("Track %2i: %-6s %6s - %02i:%02i:%02i - %s\n", i, trprot->name, bitrate->name, time.minute, time.second, time.tenth, name); } /* XXX - This needs a rethink with the above method */ /* groups may not have tracks, print the rest. */ printf("\n--Empty Groups--\n"); for(group=1; group < md->group_count; group++) { if(md->groups[group].start == 0 && md->groups[group].finish == 0) { printf("Group: %s\n", md->groups[group].name); } } printf("\n\n"); } void import_m3u_playlist(netmd_dev_handle* devh, const char *file) { FILE *fp; char buffer[M3U_LINE_MAX + 1]; char *s; uint8_t track; int discard; if( file == NULL ) { printf( "No filename specified\n" ); print_syntax(); return; } if( (fp = fopen( file, "r" )) == NULL ) { printf( "Unable to open file %s: %s\n", file, strerror( errno )); return; } if( ! fgets( buffer, M3U_LINE_MAX, fp )) { printf( "File Read error\n" ); return; } if( strcmp( buffer, "#EXTM3U\n" )) { printf( "Invalid M3U playlist\n" ); return; } track = 0; discard = 0; while( fgets( buffer, M3U_LINE_MAX, fp) != NULL ) { /* Chomp newlines */ s = strchr( buffer, '\n' ); if( s ) *s = '\0'; if( buffer[0] == '#' ) { /* comment, ext3inf etc... we only care about ext3inf */ if( strncmp( buffer, "#EXTINF:", 8 )) { printf( "Skip: %s\n", buffer ); } else { s = strchr( buffer, ',' ); if( !s ) { printf( "M3U Syntax error! %s\n", buffer ); } else { s++; printf( "Title track %d - %s\n", track, s ); netmd_set_title(devh, track, s); /* XXX Handle errors */ discard = 1; /* don't fallback to titling by filename */ } } } else { /* Filename line */ if( discard ) { /* printf( "Discard: %s\n", buffer ); */ discard = 0; } else { /* Try and generate a title from the track name */ s = strrchr( buffer, '.' ); /* Isolate extension */ if( s ) *s = 0; s = strrchr( buffer, '/' ); /* Isolate basename */ if( !s ) s = strrchr( buffer, '\\' ); /* Handle DOS paths? */ if( !s ) s = buffer; else s++; printf( "Title track %d - %s\n", track, s ); netmd_set_title(devh, track, s); /* XXX Handle errors */ } track++; } } } void print_syntax() { puts("\nNetMD test suite."); puts("Usage: netmd [options] command args"); puts("Options:"); puts(" -t enable tracing of USB command and response data"); puts("Commands:"); puts("rename # <string> - rename track # to <string> track numbers are off by one (ie track 1 is 0)"); puts("move #1 #2 - make track #1 track #2"); puts("groupmove #1 #2 - make group #1 start at track #2 !BUGGY!"); puts("deletegroup #1 - delete a group, but not the tracks in it"); puts("write <string> - write omg file to netmd unit !DOES NOT WORK!"); puts("group #1 #2 - Stick track #1 into group #2"); puts("retitle #1 <string> - rename group number #1 to <string>"); puts("play #1 - play track #"); puts("fforward - start fast forwarding"); puts("rewind - start rewinding"); puts("next - starts next track"); puts("previous - starts previous track"); puts("restart - restarts current track"); puts("pause - pause the unit"); puts("stop - stop the unit"); puts("delete #1 - delete track"); puts("m3uimport - import playlist - and title current disc using it."); puts("raw - send raw command (hex)"); puts("setplaymode (single, repeat, shuffle) - set play mode"); puts("newgroup <string> - create a new group named <string>"); puts("settitle <string> - manually set the complete disc title (with group information)"); puts("settime <track> [<hour>] <minute> <second> [<frame>] - seeks to the given timestamp"); puts(" (if three values are given, they are minute, second and frame)"); puts("secure #1 #2 - execute secure command #1 on track #2 (where applicable)"); puts(" --- general ---"); puts(" 0x80 = start secure session"); puts(" 0x11 = get player id"); puts(" 0x12 = send ekb"); puts(" 0x20 = exchange randoms"); puts(" 0x21 = discard randoms"); puts(" 0x81 = end secure session"); puts(" --- check-out ---"); puts(" 0x22 = submit 32-byte hash"); puts(" 0x28 = prepare download"); puts(" 0x48 = verify downloaded track #"); puts(" --- check-in ---"); puts(" 0x23 = get hash id for track #"); puts(" 0x40 = secure delete track #"); puts("help - print this stuff"); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/netmdcli/netmdcli.pro���������������������������������������������������������0000664�0000000�0000000�00000000451�12262477515�0020673�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������TEMPLATE=app CONFIG -= qt CONFIG += console link_pkgconfig link_prl PKGCONFIG += glib-2.0 id3tag libusb-1.0 INCLUDEPATH += ../libnetmd SOURCES += netmdcli.c include(../libnetmd/use_libnetmd.prl) unix:!macx { target.path = /usr/bin INSTALLS += target } mac:INCLUDEPATH += /opt/local/include �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/����������������������������������������������������������������0000775�0000000�0000000�00000000000�12262477515�0017422�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/.gitignore������������������������������������������������������0000664�0000000�0000000�00000000106�12262477515�0021407�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������*.qm debug release Makefile* ui_*.h moc_*.cpp qrc_*.cpp qhimdtransfer ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons.qrc�������������������������������������������������������0000775�0000000�0000000�00000001172�12262477515�0021250�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<RCC> <qresource prefix="/"> <file>icons/upload_from_md.png</file> <file>icons/add_group.png</file> <file>icons/connect.png</file> <file>icons/delete.png</file> <file>icons/download_to_md.png</file> <file>icons/format.png</file> <file>icons/help.png</file> <file>icons/qhimdtransfer.png</file> <file>icons/quit.png</file> <file>icons/rename.png</file> <file>icons/info.png</file> <file>icons/arrow_download.png</file> <file>icons/arrow_upload.png</file> <file>icons/qhimdtransfer_24.png</file> </qresource> </RCC> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/����������������������������������������������������������0000775�0000000�0000000�00000000000�12262477515�0020535�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/add_group.png���������������������������������������������0000664�0000000�0000000�00000001775�12262477515�0023221�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���������āw=ø���gAMA��ą üa���bKGD������ųCŧ��� pHYs��Ä��Ä•+���tIMEŲ'2°ó[��zIDATHĮݕÍnE€ŋž™ýģģ‘ąB6†˜Ą !‚ä nžâŽä“ūōp8 äāƒėÄŽíõîĖöo‡Ínžë$DD\(Чgš§ëëŠŪŪ‚ĸXĖó,VĨÅAģC.M ßĢÅ=cˆĮ�+++ ­Vës ‘ E)Ĩ~–ekŦŦŦÕXyŋöÔ߀ÚÆ4‘ÔCãŸHúŅĖđŅĀĖĖĖĘōōōgeY’R"ĨÄĪŠĻ*ŨŪ]›>Ðēö>:û!Ô/CqÍZ钅›`įõ�F „Ð/˒íímRJÄĮ ÁCžį—�ôSĪæ[d ąLöfÓ6čŽ  äj íĐrËbcôÖZB„ˆ1cDDÆVc.Ŋ­­Ýøęęýօó'^]ܚ=qōb-/Ū“ŸÝpEČ/0þ:ĀvāœÛwÎá―Į{?aÅČ,°Tö{xoÉģ„r“/‘ŨŊÝŨ5Ėõ~#ËÛÄzüØE~Īü‡ÝyD ĒÃĢŠ> €X*óƒ.gýy*!n#ú)îd>Úũö;įŪß~ųãOÞýöËņ8įöžũøx}é"‹‹/ô“Ųú]:ómĻåŲjĻܰ“ĄwššŋÝ zþƒŦũĮ€Ģ ”V˜ĐŨŲzP=%úOâÃ>žcā/ĖþD- ØØb·;ÝEnïœ94QUUíĶ”ĻžÐÎk“7å1ēĩw €Ęĩ9Ų{@‘\lą_žb·zŸĸęėM܃‚XkÓ æyĢQÃų§ĒÖŲ|ðûåYN4v(ōˆ îv_ĪŲč0°wŠ @Œą—RrVj3E­�Ÿ)Utm‡ŪíĒâBBöŒĄēū7ąÖŠÓYDŸš{†= Lj*!)rd‘1†Þ ôĶ]tBˆÁÔQó(ĸÅ4T2ęUĸŲŠ˜į§�Þ{ĩÖ&S8/X/D‘gR8-• Ļp{�tE$’Ũ9(6ĪIŨŒq““Ý~ IښāœZ9}IIŸ čøāôļs^}H›Ģï `}}]cŒxÉМāĒkþq- ųh;čV―ƒÍï{Ó4o…WęÁŠÄÍßGŲgļC•#nΘaļ<ŠXÃwMĶķ;(ûŋÝüæ‹í钙g€đ‡Ðü_TP"pÜü“jröeZøßÉßŪ4eģĘãéï����IENDŪB`‚���linux-minidisc-0.9.13/qhimdtransfer/icons/arrow_download.png����������������������������������������0000664�0000000�0000000�00000003265�12262477515�0024272�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���P���(���æęV���sRGB�ŪÎé��� pHYs�� �� �šœ���tIMEÚ:áOrŨ��GIDAThÞÝZ]O\Ũ]{Ÿsg0`ĻÁ‚Äę€mT§m”Zą›VŠš(VÕĻ/}ėęS_úŌзVJß*ŧV[UulYJCâÄÁ|ĖĮ Ã|Ü{öęÃ0x€Á†8îãĖ=ûŪĩŨÞëÜ+―=ęR.ÕĄ‡ō2"âåPZĩÄũųÖÁ–îîĻ5ãRĀa ˜1KģĨÜĸ +~ ÝÖßrī7s4íӇ5`’ųxMāŨ‚ų6wĪ;ÝŅéqq€ ‚‰„FĻSˆƒLwąö­Å·—rÞ‰ŠŠˆŧýāóĩPŊâƒx  /Y9oĨx`áŊîHĐÏ8õO!I) N(’ˆXÐ$–ļ’Ëk.Â$­Ģ�ZûŸn ŠÂä=,„ýH ĸ<.4*Iˆ‚�(û‹úþ7+@AäĒŪčHĪÉý‹°‘noú�PD~˜îë|݉þwåág…Ĩý°4ŊL$Â>ŸđÔÞ7Ō54qîãÅüÓĐŧī’ÛŋËŪ)M@ŠxįGӝšNũ_?ũQg[ÏíÉŋtzDl?ąú9Ē%€Â ī   ŨeÆ;N\ė~wāÚøā’\—ž}§Ó›spŧČVFĒÕĄ–ŪK]gÆzG?ým*jĄq?Ũė-9ÜhīBšč1ßzđ―Žg䯛7Oũž_ĮSš˜roåūN260Ŧŧ@‹0rĐģ™îwŸ}ëøčáOZÓm$eËēĢ‹ /ģK"Ín|ã­F%aSŠ=ū}žãÄØą3Ãŋę6ÛĢ <Û59įÚK“Ųū’™ââda9keiāÉúíôØoŠ ãüXæø…ĢƒoŸøŲĩģŋLE-$Ĩ>ĨØßþƕkWUBĘEÍRZ?ýâÏŲéæJå&Tšuņ&āUĢöŅöŨ.―~æÃS―Ãföüœėėn”šÍ&<É{ÓwŽhÔLëV žÅ?”jŋÚóÖĨþËœĸ DYÃØVÓŋĩöŠ*•˜FrX čðmoŋþÎ/ÎBāāzãÍæA°­%bÕBc&^þôá_ĸôïßŊŪ-Ad_Y‚]mÅŨŽÛLég–�Såĩŋ=ý|ۘ›ZųúĘɉŸœzß@ŲYÖIjcrĩŨš$R h�ŋáũHy’ïd͕Ÿ—ŋxúāįįnötūFZÝt‘ûßޙYųÚh|!ĒŠÚDÆÓ˜ģ_=IŠÚÂng!Ŧ–Ü+.Ï=đ7•ŸŸÎ>zïԍ‹ož9_qK›GËrqéÖã[–ŋ‘—yBžäg“5°!ģįwAžŠöÎ‡Ō­Üô·ĨåéĩÅŧ3ĸš9öŧÎÖn•­Š§Š™üĖßs^ķ[ŠÚðïæ�€ĩÆhã*1ž,gįîÏåįWŠ+—ú~tmøĶąNB|? Ũč"[üpåāN+cã#ЉyÖmÏËþS˜›ÎÏägeŋđzúƒœ#Ŧn‰JøHœęŦtOÜÜ@ú-œUˆ"΁ōÜųæãĩ,}9_\]X}rųÄŧï M8·>­ß&^Å^aĀ:q;š%ņ"P(F}qŊ ‹đđŧ‹Ĩė— &F~ÕßuRU―úõWĘïęGí<FļšvÃo/'�4@–R˜Ą žXdČÆåŧOŋšÍ/åJųó}S.e­HïĶāTÎ ļįxđŅSIŠ&7A„æ ^TARbZ„ČÖĮÛšTW!Ÿ1Þ`lĄ―=óŲTvŪÕĨ‹Ŧ-ŒLϐJjP(ŨöúlÕŽlš°r›TŠž=[Y6āŽNēávD`€ āĀú”&ĄŽ:1q°85—ē8ĶČĶClHMáӍõã`kq<Y|ŽÎ‹UXaMmîljÜ=ïÆm0ÄÕĻ”€O˜Āđ ÞĐ;ƒĻƒXPš4wnÂëí5�! €úWĻWÐuokõr˜3Žd‚xýWĨ5ß;žr“A0ÔėÞo)X$NL�:2–XÉxp=! ŦExĢæDęƒcĪęUTĀHȀŨ”Š'Š_b, Ąôӑ7qHŊ�†—CH,ņåĪ8_Z1ØáþÆĢlņRye9.øûĨ•\‰ įqXŋ["‹–Ė—ó“qîĸƋ;ëÍ[å����IENDŪB`‚�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/arrow_upload.png������������������������������������������0000664�0000000�0000000�00000003163�12262477515�0023744�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���P���(���æęV���sRGB�ŪÎé��� pHYs�� �� �šœ���tIMEÚ;r1Šz��IDAThÞÝYMlœW=įū73þK' JËĒÐTŠ ˆTŅÂÖ ÖTbÁ† HXĀĒė*H•(B Šˆð§Š‚•BĮNLąe§?iHâ8ÉØžųæ}ïãŸą3ŽĮĐÛyšÅhūûūũÎ;ũž{ßūņč#ŽFĐa šũéPrIW‹ČjāÃCqä�ôÁpߎŌ}ū™Ŧõˆ‘†먑0|fäýHē \–Ũo ,#ŦëŊÚā k}‹‚ËWŒlY;ˆËãågŦoX;€ÖÍUĮƒ•ßÕaÖþÎUãĨü0�ƒ@@Ĩ·­ŠĩZôZ5I3š&ĸ=!íW ‘Œ1„`FķŊ<yÎþ‘O~!0Z\:Xƒ€Z0Čũ­Û’ÆaFšČŲ+@‹fķâFŒgÔGĮ=aXŌˆ… Ī@I€$7ēôĩëŽ&€šĀN†Ā@ßôl{2[ģ1ÜŅ•–cyŦˆÝifä ” ĘyÕ&vėZ•,æu+åÞÖĘ[ŲØŒkFózS)sKĀ 0') ”Ā”2-ÜpŦ ūˊŁūūĮ>€ŽæééręĒn6•{ޒ‘t(d j*`’�ĻT\cß*áėb*VðZ<|tøéï5Nh―rĒųúŒ_šæ’j§Æ;Íe4ĀXĄˆ ƒ°œÐ pp‰yW–T&Č0øÄÃÃâŸOÆŌ.jہ”ApC>ÄJ€'a``ĖÖęA‡hÉļ°Ë€Á†ĢĖmę{ïņÚWŋģðŌ áð_Ōčó[ģžUĘ―;dQUp@fĖ&ŒĩF§cgâVáôÝÍÃTr堝·(zōËécŸ™ĸÕ3åųņōü›šžĻ”Ų―ôbT%ģ„LF XgÆÛÏi3 :JÁí'FŽËœ’W;ôĩĖĸãdųōïZgĮËÉYÍ'Ū߆$ÚR%ÁvĖßŪGąK Ü ļŒýÛ9UĢā[ģŦ%ЁĄO}Áâæ ? ŽĩÎMëęǚūZĀ$dtw["öĻ%Ū<ú  öß%`ŪįŪŧU­Š`]§Sn<ýýƙ—xōųrl2OÍú­ÞQ·mķBėŅÓX ņøCÃßþÉšãßŌpϛïHŅ=7.Áōþ?U}ĸãõ?ü"ŋúJš0ão-(ų’‡ûv�ACˆ‡ÞÃï‰\ëNŪ"ÅáFūōÍúņÚß^LgĮóÄŊ�L›ČKï=îjAŌ-@\ƒŸxęā7~\ûüį2ö„%n]GũPƒ°P1  ―ė.öîczŨNÚëPkÛ(XÐŽ1sĄ8ų\ëĖkiō K1Rķ-€9žŅdŒļë{,‘sæĶŨĪmkíŧt.› þeëÔŸŌøŒŋ9‡ų,nķŲ>ö/hå<}ųę·ūÄZhw…·§Ģe_C#GūþÃÛ]ŠÝāĒY1unáÅgË ŌÄ%]iĒÝNÐfEÓV&Īrz6ĸŊÎh;(^ė{ōÓÝ‘đ1ëũ?óÓĸ*F'ué3ÄÎÚc›�ģ]Ög4ÚaĐf%"ĩš9‹éŅÆo~šÎOĪ‰ËšmRZIÍ+žĻ°*Ý~ũŽę4;ÛŧŦAëeŠĸú™<zšō·ëhdŪoŅö:âÅâ6ĨķxúŊÅËŋ-_KSW4W kđļÆ=|Ïð’e}ŪqōįÅŦ/ĮßČïĖc!ӄwŨîÜ[€A’KĀâđSʼngÓøT~ýšæ f lCĩ··�ð”ōõëŨŸûŪiÎäwŽp°įˆÕ>siâf™þyķ<}ÞŊÕu#q)–Ų ĩŌæ—‡=XRŦÄÅšpīOïAKn^{ė1ĀíīęKéiŦú$a{JË]åqM°ŧäûõßC�”; .héĢöHŦŽ+`ZIĩĘgÛ[·ü­7Ļh`tCč§•hðœQ–Q­Ī2yŅēVõ}aŋm@YYŠŲT*Ģßlų\vÝÃūfxCæ*[>ßôđFdÓË·oY#Ų@Dļ/‡ ”Ņ,üjņtË)ĄŲäz����IENDŪB`‚�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/connect.png�����������������������������������������������0000664�0000000�0000000�00000002210�12262477515�0022667�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���������āw=ø���gAMA��ą üa���bKGD�Ė�Ė�ĖßÁ_��� pHYs��Ä��Ä•+���tIMEŲ#•šŅ��IDATHĮí•_HdUĮŋįÎ―Ģãü‘qfXįj ĪŦĄ"ÅŪm†kĪŦЃ”QAD―$ =AQøÐ“-DýÛ]Wƒ]™RÆuŪãgÆqš;ĸŪsÓqæÎ{zđ†j[ėKÐūð;įðû}øýΏs€ĸš‘Ó6ŊööU—›LoiĨâg·nNí>Tâ3=Ũ[ūųzާéäOwÕ^|éFoooõCIþTũs]Á_Þ(Ré+JWÚ)Íþ@SĐ ˜˜(~ÚŨŨįüŨÉûŊ=ĸjnå5•LRęŧDĐ4MãÉ?h"‘Ēûûû4kãããJĸ‡CCC•šŨp댌žéŧ2ð2ƒ·QŽŧŒÖĒ i*dYĮqĪđđŲÐÓÓséðððzĐTBGGĮē Ęšš.ŋ‰–Œö‹ïÂ`š�h�dY†ÍfÅáa’$Ãl6ĮÃvww?L&Ŋ3 sÔŲŲéA= Ā;ZIU8VÝÛ?"ÚË@AąX‚Š–`ģŲĀó Ë2‰***˜‘‘ÓØØØGn·;7<<l9‹ÅvŽV+5˜ŸŸ‡ÏįËēp:Ŧptt„h4 BxžGuu5DQD*•B*•b\.W)›ÍVžÛĒ\.ũm:ūÚÞÞîĶ”’x<ŽL&ƒšš:pĢŅAX‡Ų\‹Å—Ë Ž3buu‘H„fģ؁@áL@*•"~ŋĸ{EQšÛÚÚeY–H’„íím455‚Š*;"‘0ööDÔÔļa6[ÐÚÚ IĘ2&Sųûģģģę™��,�n}}}vŋŠĨĨåq“ÉDōų<666P__Ŋ·ĖAðcié7˜Í•ØŲ !ÚVFGGß;·EúģÁ`ƒÁ WÅ|cc㇃ lmmÁívÃëý H&“X]]A,Ֆ——?>88˜“$Đt@ÓŨ�l4ÝØÝÝÝŦĐĐđR[[ËĻŠŠđđ9ƒAØívĻŠJïßũQŒ‹År™įųÆÆÆ[@@> ��%}Ā$‰H8Øíöž††C,ƒÕjËēÚĖĖÝïÆāģŲ*]ĩĩX››/VB^q8_onnĘgĻųk|3™ĖïĄPhąŽŽėYĮÃĶÓimjję‹{ũ?ßŲ Î ‚ĸKžw;xūķÞét ŸWx§ýÎŌŌ’zāļUÅū&Ër2Ï …ÅÅÅOž^ï7�]yAnWT˜âFcđ…ē'ŠņāÚÚZōĖĸāÄĨ›NČĻË ŸQ�Š)�8zRQ‘œœœ”ŽGó,Ģ�rzpAOÎé1ˉ U―b%›Íþ<==ĸÛ휊8]'Ŧ(é*čëĸíŸŲŸ•ÚÅíëŊó����IENDŪB`‚����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/delete.png������������������������������������������������0000664�0000000�0000000�00000002277�12262477515�0022515�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���������āw=ø���gAMA��ą üa���bKGD������ųCŧ��� pHYs��Ä��Ä•+���tIMEŲ(#]Û*f��<IDATHĮՕOlÔEĮ?3ŋßþķŧí–Rč(D !C 'x0Þ$&Fjb8xðâÁÄDm<éÍŦ "‰đxBŒ ˜Ā‘ (ikŌĒmwŧŧŋŋóž‡Ý.-%1““LæÍ›ÉûūũyïÁĸ}˜eáÏũ;īiŨ3"YÎĨ‰}\ƒĒYrgæ/ūüüâŅĀÁ·šwzýģógūŋÞÝøXc1Öb Xk[{kMc fõūqnÛÍåŦ__MŠßŒ#>ĀpĸÎJĢÝ7n|ĮÐ@OÃĻĩcZēm,Ÿ­ÕYk ŸûÞ=rôŨCðÛ ;>Žíí{ęđS§Î *OĖđŸóņ―Ū|_ĸķÃ�öæĖðöđrå*ŠOþĻžį‘Ïûė}þĩ]‡ÞîÛëwwö―šsû‹…—ö]Į(ŒŽîĀ0ÆŽ�kô+îbˆĒßOŲýė+ë8ũÕþRĨōÓéÓ'ŋžĸ@@W„ņ_ōĢuPЄLNžÕJeqÂ�žųîÐGý>-•Ё*Ļ(РЈ(âį‰āœĒNm}ø> ĒišÄŅąĻ<ųž`íÂąá­ƒïŒ ô=Ėi– YĶ5UŌTˆcG9ĒæGŽ(ˈ"‡ˆĒ&^4þýONÁų�~R_Hâ,1”ÕaŦ4<ĖįÖSĖwÐQ"ŠëLÝūŒį[‚ĀĢPē4Ā9ŏųų0šú―ķ�`Ž'J3“bV'°HÄó twPj JĘôlØÎðÐ:KCĻ(ĻÁZŸ (’Š(&>y’Ī�āDCküU�Š ŪÓ,Ī\ĄÍSŪˆŪÎÍT—þÆũ äüž 04ēZՄ­žhy›đČÚNâ–ņBū‡cˆ3ü9yį ū_bbú"I’ Æ  NšÜĢø6@EZ�­ē4Ŧ[›kT@cą6sŽžßI.W PčAÔQį)—ï’Ķ1ýGi/v#Nš?JņžišŪˆâ(ôl€góx^Š–œ_B€[S?E ˆ"‚ïð―AÐAĄ­ QAÔĄ*Xë“&ņ#�ÂĻnmc,*ĄÎąXūEĐ}b[/Î9ڋ―ôũ>M–†„Q…rųہ`­G˜Dõ5o$.np/Ís8QŠĩYÚ ƒ$ijØ<ļÏt–61;w“ĨÚ?čŠ"Đ*H*�pRSu(‚ļå vTŠ·ĐŨËĪY†sũæŪŅ^ėenn‚Ųûd™kÉfĐp‚YX-i%ŽÓ†MŪ(™Ēx—5t3ũŪ“f(Wî·ĻY9œaUŠMÛŲ2@ũéprą\“uëklF1FąF°(bÆ*ž'Dņū€ęƒž kĐÕC7ýW4ôw—ŌKjg·n;ĸó–-C;Ôá5ÞáAēĩ ›kĘ0ÖŽōÞđtzręÚ/—â @ķŠéy`�Þãö| ŠÍÉŋیģbĒīĪ����IENDŪB`‚���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/download_to_md.png����������������������������������������0000664�0000000�0000000�00000003117�12262477515�0024236�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���������āw=ø���gAMA��ą üa���bKGD������ųCŧ��� pHYs��Ä��Ä•+���tIMEŲ+3kAiÁ��ĖIDATHĮ••Ë‹ĨgÆUïûÝÎ9ݧOũ0=đ$ôŒŦ F C"H@ n\d#âFu-.Üļð_p#q!ˆB@Č"‚`H2‰â5™Ė3ã8—=ÝӗÓýsūï―”‹Vw.ŽÍģ)(ŠĻßóĸg}öÛÕĨįžūúVÝÔ1Å@"ZL˜‚eKķĩsũÎKßđýÜúýÕ/ßxņávũ5‰’âĜIVÁ4'GÎGx"bļžöOũYŋú>ûé]hYĖE>fa-]šSÎŋxþâå_& O·ýû ßzöÉ9o;Ó˃Ä?·Jn|°cÛH-ËuĒ_%KÅĀþ†ņÁĸØÏÐĒbeÏg{ïŽû…qí­]^ Č} U&یe~ö ē,#æQqĻ€ú 0Ā0 ėß äœXīë7KŪĸÝK16žĐ'ؘ™ÆÅęqËbm•npQÁ‡ˆājÁĖȖ1ËdN4äÃp*ˆÆ#ōroÚ]:§h@=ú0QĒ€õGäb„IÉdå·\8ĸ&Š^ķQ­I!a$#K ģ§ž•ÕcŪžð"ó`,Š€—–ađƒŽv‰ķ†KG˜=æJĶWøÂ osåĐ!{ģ†Y<„M,ės9 ĻË ÖîōÉs·Ø=ÃO_ÚĀ-Ŋ~ãû.P·HTH2ē*8Á(ålŸ.9óøŧčhŸixČÜöŲénuŽ+ïu0íwX­ÏōŧWjŪŋû]žšˆsûĻuļŪ:ų… HmĻ$ŠðUŋöðō&|ý{%6Þfw~WzED0ƒœŒâ î―3bĸũßd#ŋ‡ję)Ü.b —;|ė(æ Ęéœņņ-šv›Åņ‡þÓl=ú ?þáchŧJQy|Ĩ”ĩĢ8ĘFY]ZgúŅynūōUDZíPą„ÓcœÎQ 8é(å˜Úöp1ēč/0Yq Æėî<ÏŊõįŦgp^O†4ʰá\æÍŸ}žŲtĖžOd)ÐÂĩŪÃé1eąMáũPí(ôKšzZ·˜―ÁŌômVŊąõÎóžņō˜såS�8)Xzô^ûų&:ßĪj Ūœ3 ģ$„§Gx·jKNI=uĮôŽ!ąĨînpóÕ/ņĮß(Ŧl29úŊþd�‡OģķaLNe.l:ęZņâ r,ÉVĸ—Hԁ Ķ`Ē$)Éæðņ!°ž@ė€ŋüō*ŦŦŊsįÃĀĮx–Š>dvTĒŠLybtøœ Ė@5ģ`8ČJĘCœ›ŅĖ?æhx õ=.m“ÍŅrŽIØÅd™Ũ~ô9r?BÄŅ-„ū7T qP‚7ņĒ6#æ! y™`K4ÅE~D90­/cî2’eû\;|9ĮŌŠ'!‚ŠĒQgĻ|ĨsÚļŲ脘$bŲЕšf Ũ·0„@ÆSŧ}tYØ;―LÅÃ�‹ˆ°@eAĐ{ä,hUāģ,B6ˆēČg0”TÄQMlælP…·ÔsâwĘ"c:<ËbÓá3ĘĒĢļß!spķKŧļHŠŦĻŦņÎËֈX ŠD?" RUbZ‘Ę1ģú"Î,*‡sûÐ$r6ú3JÆSnuļĐgÏ VQŒ&Ļæ>‡<ĒŦb•І,YjČšApˆŦõh6°|ƒ5ŲWĪøCú°D°5 9㍖‰y@3Mũ\•,t(€PNē%Ÿœ Ap Ô =ž3žũ�tö8I–ð‰ģ„Ö@‚M°(Tí]ņ:ž3]ŦČĒ'„$=Iē UáqIqũ·ĻŊß!ï6ôiãā-Ä#Y'/_ Gsï{]Á,ãō Ï•ėBa„jHįNŅŧ52^E> ›îQûŠÎČqĖÁė,õĀðÞČݜÉZ™āÅÕķ+` =Å,â3ĖmˆXD]‹č.ĩD#9—`Ž"W„TaňÓÖN%|‘Éxú6ąēI{Ûü ŌŨ9ֈLw����IENDŪB`‚�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/format.png������������������������������������������������0000664�0000000�0000000�00000003132�12262477515�0022532�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���������āw=ø���gAMA��ą üa���bKGD������ųCŧ��� pHYs��Ä��Ä•+���tIMEŲ7ۅðŋ���=tEXtComment�Created with GIMP by Numen ( Numinos@swissjabber.de )šĮ­"��ŽIDATHĮĩ•KŽ^e†ŸĩūËÞĸÎiKĨ=ôfUšF*’ÆķVƘTE!QcÄ[Œˆš00õ2`ĀLMīMę%FÁÛ@ƒZD&"Tc r‘ĄMš^ÓīöÂųïĸÞûû–ƒĸôÔF§~Éþ&kíĩö~Ũûū þÏGö?ų—ŸwšÃ/‹Ų@D\ÎISÄ1°ÜÐ$ÃAÃĐÐdCD03Č 3Eœ03]žũgÏÎ?ļfU›™™’ĶQBPš―Š“'.Øåų$EËãcĪ(JðŠ`TuMÕŦhЊÂÃM7ĩQ ļČÕ Įēe-›ïÔģxóÍ+ä Š0Öā _F™^>EЊšÅŸÆų"MJ ûŽŸėŌ. �R‚lpî|’ĒĨx|p„P0ÕhĻŅV$–%âQC=8·ØÔ$DŒ”2>V,,-:{._nčbËJZUĄęŽjƒ.CÓgŽģã;ŸeÝþßP5™”ėÚÐL„”3đĐXĸĘ3lđĸløü]īĸu’UŦĶXģfŠ"@Qz<@Î5ÃÁˆqóöđ—ØþĮ}�Üüôï){óœøŌ7I)ÂՋ ûå>°Ø|éŠåTÓā}ĪÛ­03|6hęÄxÔCB`õ‘CŨŅlÍ O!ĢŊ~ú6™áBdĶséšâ§ïû*G•ŨNRį6ąh}Įu]AÎPg^ÞõEŠ~‡•'æ_^ýâģäN‡Cw?HãÅļĮŋzx1~aÛNN}ðNrŊĶhEZbÄšýîãwÞũHŋÛĨŪ@h\äÔ­ÂĨš·9ķ�,đtŽÕ§ænܡý­Þ[�ôgŨōúcę1Tc2#Ë ŲģũIŧtá<ãQ…šbģŠŽ5seÛÓŋÅŨãĸĶ€M†^·Ķ8ôÝ}TSK&ė2p2QTp^PË !“­ĒŪ{Īf„ĨLS9sËíúÚ,Ÿ―ÖājņĒäoŧũ2n͐šLj2Á ‚J ‚%CÍ2MN`†Y"į1)ÉđFP:kßÅ?v~ęŋ<&ŒGžûņŸšĻ az:pÃē‚%ӁWī ŅĄęN<ˆG5 â&ĘÁ€w>ũÛüėŲG_eûÞoąrî0‚Ņ6t;5ý~ÍĨK#RJ :�”D^&8ƒØĮšĢ/.<šuį6naÛSŅžŋ@ėÍsÛï~ȅũlã{ïg°ä†Iē&‚WžSÅyG­ŊÄŅļû']ũĩŊ|áۜŧu–įÖÝÂæ?ý’ÕŊ\ŒŊ<r˜•G3ũÉ8―åĔ$†Ï9cISƒó‘•ĮĸɎ?|ïÚLž}hĢëIU8ïųûgūÎŲMïcóþG ãábþĶ'~Á‘Ų Īē_ī ƒl>˜Ž=ö2[ßģ˜||į―ŧį+dəgÁÅ6åTɕ]wqð―›đíąąüøD˜Įnŋ‡ļb=EQK‡·œMՉŠ2ûÆK‹ÅŸßýcën&OŦ8,Oøm"TU !SÍŪæÐîïģöā3$‰œÞļÂ—xïhÏxK9{ïœũ‘Ũ?ú9.nÚĘų-AœĒŠ8U™Øõ‚c§”&ÛĖ+9„Ā™Ģ~k€$OŒ,c9ãÕySŊÄŌ1ĘÆĐï'愋§Š:ET46ᙩ Yð <ãzLÝāēĢ=ÕB} ÕMmĻŠ€Ažē=…ĒTýĢÞ`"ĻŦ{7e0Hyō8'8†ýó=l(„XŠĨÉæÎ^Äð>áb$FGQķÉuM]Éý+ Į1FqĻ@j*:1u5&,-#Ē%ąTÕhĖˌõxįœ‰/Ļ›DJP –ŒT )ƒŲ˜œĪ”ŒŠ[€lAņ­ĀŌĨ%ežPz̈BŊ?æßc ‰Ętępå����IENDŪB`‚��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/help.png��������������������������������������������������0000664�0000000�0000000�00000002346�12262477515�0022200�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���������āw=ø���gAMA��ą üa���bKGD�Ė�Ė�ĖßÁ_��� pHYs��Ä��Ä•+���tIMEŲ' ųáķ��cIDATHĮ–ileÆsėĖît{—ĶV EZbTĻ ‚‰Æx$ˆI#‰GPb<‚/Ä#ĒââQKÁƒD“Âe?P A* ”RN^kŧŧÝsN?tŧģÛvŅIþ™wæýŋÏó>Ïĸ}߁[]gZ>hØ_1į5đžĶÖą<^QĀŌ ÏȍþĀîf†zvpäÓh.!'xãö•e5 >žķ°J Á�Įvû%ÉïāĨ@ôZĮÂŨ6°wƒõßgZϗĄÏÍŲ+ŸuˆŦ.ÁČ�$"`gŒ—𗔐‹ĸ…ĢDŪŧŸŸ6‡nI ūŌēŨœģ|•%$E:!Ę2‹îŽâéú ­- L“ø+äëŽAvëFOÄāŽð—QxádOĻë—ŧŲ·969Á ß―/Ė]ýŽ#&=�œ=@hÛcĻōĪ.ĒÕž j 0s�ūómŋÆŨH‹Đ{ÐÓŲË6UøĶ/]ïH†'Ī@•ŅM›NôņČ·įXÞ|žÎþ8�eyķ>>âŪ+ņĐ įģíæúąg—āķđ_čĨS‹ē l9ڋĸ­VÞüá$‡ŧŲŨŅÒÏÚÓýOÕgËĘóĘųå3_E{Qt ?‘ Ëg6XĒ‘ė/ãÝC=ēfÝÓëARŨŲkac‚u‘š Š^ 0jn,xohJméøŲ3cÛ6uļÜfœOÎOŋ~ûðUēkäh>T~Ũ ÚF(Ú=x4)įž°Lļ܎ ĮhZģ˜Uģ‹�øæũ8ðÛy(š=;ßcĢjy•ŪIŦ•D+A7čQöŽ]Âęš�vŸîåųĶv<ā+D†AVóÝ؉~+nå>2‚7YQ_•o9;Ā3M§pD ōJ!2�}]ęK+vl+é*Hę]D@+qAD‡ KgãÕîvųņOAĸS ŅąGw|$�ІđčG|#‡âv Y·ô,ó*ó]AŅ$h….xV…mH*ŽžÚâZīËp2šˆ%B"<@–]0Įq@”s:ęՇ† ^ų*CØ}§7SŌļbĘdƒō_?čšgšđbŅO"Ü}Œƒ[ÃŲ;ųį-ôvžD*˜tÜÜiÅé1Įá/ĒÆGnrýôsiåY zį 1\ÐnûËkqbY]ĮŨ5ĪÛĘú}“āK–/œėm[Ëþ-ÃÏ"€æMAû\ëbļï"rĸû’CZ—ŋÁî—åúˆ@āĨī͌eïí”+ëëMUQėœZPŠLÍV‡.\Ov|ŋŽSŧNņTčã |€–qŨĻ[ÖĀžÆ—īŌę*]-ŅLÉëA­„Ĩ&‡æH`ÐļØķŸķíM˜fˆĨ"D'“@É Č$óĒxý”ÏšAņÔJ$ŲK°ïKWˆ†3fœc$֚œ 5EėIõÕĖLĀHYĄ‰TĪíđÕ_…VRĀcā™6`#ąĮý †ļģŠ4[“\����IENDŪB`‚������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/info.png��������������������������������������������������0000664�0000000�0000000�00000002167�12262477515�0022204�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���������āw=ø���sRGB�ŪÎé���bKGD�ĸ�ĸ�ĸ ―§“��� pHYs�� �� �šœ���tIMEÚ&ęÖö ��ũIDATHĮĨV]lUþîėüėė/-]HíŌ–jŲĐl‰­)PŒ‰&kBb4Ņ($$ā‹1úĶïč‹ÔÄbl$<øÖŦ%°jŠ$-Rˆ‘F Ø*–”ķ m+ŧívïĖÜãģ›ýĨDŋd2wî=ũûÎ9sΝa("c,7ƒ;g‡$1Ý!‘pgœÛö/ŦŦ™ß� ۂ‰‰É.V‰üðáCŌāĐSûáËMŅ:454"ЁîóÁ4MúknŽý15saņ†?xrnîïY<(.^š(U‡ÃŋwnßF_ Pze…lÛĶ,„Ä3šūySzíUjŽŦs|šũ(�tïÞuōX‹Üļ~ýôÁW^Ķ„iŠ,Ą‚’ÉMßšE3ģģ$„Č žúFlmn&ŋŪÏfĄlÞ R]ßĸŌ‹9â|œ9'�$IqÎ)ß&~zˆšHũjo�ĀØØX)yU8tð‰ķ6â<SŽ,†‡ Y–)’eY%69""ÕUËÓóPĪæę§Įú ž/ŽÂqr§d^Aœsz|[+iŠōI yũî]GnĒ„i–lÞā�†A†aPĖ0ĻĢĢģ ‚|}ĸ=–dÅ#„ÃĄŨũíÝ[vSũž= w…ÃáŠFGĻnã†UE–ƒ� å‚Ð3ŒēĐëë;†ó?]ĀG}}k–xMMšŠ*’Ä�ČçjZŲęj{l;�Ā4Í5$éÞ1Ā " ÐÔÜėLiŦ3öĀ JDXN-ƒ[ķC§@Ā#˃ãããø?`Œáڕ+īœNsG8™……ÅKó‰Dj8§ĸBžíĨÏØrzeÆqDš@��–RĐ3Ÿ8Á*ķûøöô~ū|DxĄŽAKkK 6RCØ[öĻüš�Ïį#Î Ë4yũ.=ĩģ‹tŊ6�šŨ[ދuĄ`Ï#õ ôÕɓĒļÆ'&'Đ··—úûûÉķíœwnßĶįŸyZ„ĪWSŨÕGĢĢ”øýšũÍÍŅĻxįí·(•L–D’…eY4zîœčjo̐ßoÉēÔĀ[éƒÃ�øÔĻÕTĨÖįՏ75lŌwīĩÓģ==Žek+dE9?ŋĸįGFéŨëŨŲ|"q-cYïŅ<€)�&pŊL‹Š�ltIU”.ŊŠ>§*J‡ĶĐðH8·°ĘųJ†óáŒÅãBÐU�ŠËqĀ �^N �`3€ ykä[�"�4�ĸ�HđĪJGŸ�î�°ĀSô€Œŧ(ŧeĖܱꊮšĒŠŧ.Üų%�ģ�Ýįō}WTq_–îzŽļóžžĻŨ‘Œ+š―ėûþU­1ŨK)ï9?Z*š—ā_)+íJr6‚����IENDŪB`‚���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/qhimdtransfer.ico�����������������������������������������0000664�0000000�0000000�00000424531�12262477515�0024111�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000��������������������������������������������������������������������������������������������������������������������������������������������������������������������������� � ���č��ķ���00���h��ž�����(�� ��00����Ļ��. �� ����Ļ��Ö������h��~"������� �“ū��æ'��€€��� �(�yæ��00��� �Ļ%��Ąî� ��� �Ļ��I���� �h��ņ$�(��� ���@�����������������������������4‚I�=N�o’™�Xķh�BūX�3šĄ�Gķ­�m̀�Ę’�ƒžÚ�ĘÃ�:Ðæ�Öí�gÖØ�ŌîÜ�����ĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸ��ĸĸĸĸĸĸĸĸĸĸĸĸĸøîî€ĸĸûßĸĸĸĸ����Žîčč�―ßĸĸĸņDDDîîîîč6ÛßĸĸĸņDDDHîîîîîÝÛÛŧĸĸņDDDîîîîíÝÛĖĖŋĸņDDDîîîîĶÛžĖĖËĸņDDDCŽîîîkĖŧžĖŋóDDDAˆîîč4FĖĩkĖŋóDDDDˆˆDDlīĸžŋóDDDDA1DDFßĸÜŋóDDDDDDDDDDAoĸûŋóDDDDDDDDDDAĸĸŧĸóDDDDDDDDDDCĸĸŧĸóGwwwDDDtCDAĸĸĸĸóGswwDDD4C4AĸĸĸĸņDDDDDDDDD3@ĸĸĸĸņDDDDDDDDCĪĸĸĸĸóDDDDDDDDFĪöĸĸĸóDwwwwwwwvŨ�öoĸĸóGЙ™™™™™–Ö�VĸĸówĐ)™)™™™šÚ UoĸøwŠŠ™ŠŠ"’*­ÚŠeVĸøwwwwwwwwwŠ­ÖeUoøwwwwwwwwwzŠ­eUoðƒ333333333†jffĸĸĸĸĸĸĸĸĸĸĸĸĸúfoĸĸĸĸĸĸĸĸĸĸĸĸĸúoĸĸĸĸĸĸĸĸĸĸĸĸĸĸöĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸðĸĸĸā>Ā��€��€��€��€��€��€��€��1€��q€��y€��ó€��ó€��ĸ€��ĸ€��ĸ€��ĸ€��ŋ€��Ÿ€��€��€��€��€��€��ĸĸĸ‡ĸĸĸŸĸĸĸŋĸĸĸĸĸĸĸĸ(���0���`�����������������������������#l2� †�a„‹�9ĄQ�CŋX�)ļ �hĖ{�€ÂØ�@Ëá�~ÐÅ�bÐÏ�“ÚŸ�Ôî�œÍØ�Ûōß�����ĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸð��ĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸ�ŧîë0ĸĸĸĸĸˆĸĸĸĸĸĸĸĸĸĸĸĸð>îîîëĸĸĸøØĸĸĸĸĸĸð�����îîëŧŧģ��ŠĻĸĸĸĸĸð33333>îîîîîŧŧ3ĻĻĸĸĸĸĸðDDDDDCūîîëîîîëļڈĻĸĸĸĸĸðDDDDDCūîîîūîîˆĐψĸĸĸðDDDDDCūîîîîëūčzψŒĖČŊĸĸðDDdDF3ūîîîîî덈ˆˆĖĖĖČĸĸðDDdDFCūîūūîîîZψŒĖĖĖĖŊĸðDDDDDCŧîîūîîëaЈĖĖĖĖˈĸðDDDDDC;ūîîîîŧ4HŽĖˆŠŒĖČĸðdDDDDD ŧîîîëģ4DˆĖˆõŠĖʏðdDDDDDCŧŧŧŧŧ3DDHŽ…føŒČðdDDDDDDŧŧŧģ4DDDˆ…OĸˆČðdDDDDDDC0304DDDDH˜ĸĸúʏðdDDDDDDDD34DDDDDCĸĸųĘĸðdDDDDDDDDDDDDDDDCĸĸųČĸðdDDDDDDDDDDDDDDDCĸĸøĸðdDDDDDDDDDDfDFdDCĸĸˆĸðdDDdDdDDDDDDdDFDCĸøČĸĸðdkkKŧīäDDDDfDFdDCĸĸĸĸĸðdKŧŧķkfDDDDf46īDCĸĸĸĸĸðDDDDDDDDDDD3DC6dCĸĸĸĸĸðDDDDDDDDDDDDDDk40ĸĸĸĸĸĸðDDDDDDDDDDDDDC™DĸĸĸĸĸĸðdDDDDDDDDDDDDIĐC�ņĸĸĸĸĸðdDDDDDDDDDDDD9ĐC�ņŸĸĸĸĸðdDfffffffffffYĐ6�ŅĸĸĸĸðdF·wwwwwwwwwwĐ�•Ÿĸĸĸðff—rr}"'wwwwwĐŠŅ�•ZĸĸĸðffÝÝÝŌÝÝÝŨwwyŠ™‘ÕU‘ĸĸðķd―ÝÝÝÝÝÝÝÝ'"y™™ÝšUYĸðķfi™™™™™™™™™™‘Ų™™ŠŠUU‘ĸðķfffffffffffff™™šŠĨUYðķfffffffffffffa陚ŠĨUYðķffffffffffffff™™ŠŠU‘ĸðkŧŧŧŧŧŧŧŧŧŧŧŧŧŧfQ™ÚĨŠĸĸĸ����������������ņÚПĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸņՑĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸņŲĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸņŅĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸņĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸ��ĸĸĸĸĸĸ��ĸĸāĸĸĸ��ĸĸ�?óĸ��ĸþ�ãĸ��ā���ĸ��€���ĸ��€���ĸ��€����?��€������€������€������€������€������€�����€������€���Á��€���á��€���ã��€���ã��€���į��€���Į��€�����€���ĸ��€���ĸ��€���ĸ��€���ĸ��€���ĸ��€��� ĸ��€��� ĸ��€����ĸ��€������€����?��€������€������€������€������€������€������€������Ā�����ĸĸĸĸø?��ĸĸĸĸø��ĸĸĸĸøĸ��ĸĸĸĸųĸ��ĸĸĸĸĸĸ��ĸĸĸĸĸĸ��ĸĸĸĸĸĸ��(������ �����������������������������;—H�D™]�@ūU�Mž`�jĀy�aĀ‹�9Âą�lÄī�Îœ�ŋÓ�\ĖĘ�œŅĻ�CŌč�Öę�ŌïŨ�����ĸĸûîŋúĸĸ3NîëzÏĸ3NîįŽÝÏ";îåmÝß"4‹C&oÜ"#32#ĸÏ33"33ĸÏ33"33ĸĸ"""#PĸĸUUUUpĸy™™™wvĸXˆˆ…wĶoDDDDGzoĸĸĸĸĸĸwĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸøo��������������� ��� ��������������������ĸó��ĸĸ��ĸĸ��(���0���`�����������������������������IJN�\(�a�`#�`/�e,�"i0�#l)�j3��nR�*{2�)y:�#|5�%~.�1zA�,|=�.@�\my�8‚@�,„?�-‡7�9‚I�5‡@�+Œ@�.:�ƒv�5@��†{�8’D�8‘L��Š~�l}‰�5˜B�/™F�B–N�8œF�?šL�8šO��ŠŸ� –x�6ĄE�f…–�FœU�”„�™y�+—}�7ŦH�>ŠO�'ŦV�–­�&Ÿ†�L§b�t‘Ą�;°M�`Ķj�/Žh�UŠb�6ģS�0ĩW�?ĩR�W˜Ž�:ļN��œÁ�`̊�HīY�8Ŋr�8Θ�<šP�DđW�:Ļ•�\°p�+ĩs�>­‰�?―S�B§œ�]ģk�°•�uą��ĢÆ�Sļd�jąu�7ŧg�V·j�G―[�BĀW�GĐĐ�CÂY�Būg�īĄ�LÄX�LÂ`�Ī·� ŦË�TÂg�g―u��­Ï�nūs�\Âl�QČ\�OÆd�'ēļ�Nī§�XČc�WÁ|�u―€�Ašœ�{ŠÁ�Šŋ�#ŊÐ�ąË�:ŧĄ�SĘh�WķŠ�YČm�*žĻ�#īÆ�q·Ē�Y°Ã�‰­Ā�`ā�]Íi�]Ëp�cÉu�gŧĢ�bČ|�dĖo�jÉ{�8ĀŦ�đÕ�+ļÓ�`Ïu�d―ą�uūŠ�mÎw�ģĮ�fɎ�zɉ�DÄŪ�`Āē�TƧ�9žÔ�nȚ�wÐ�oĮ �oÁķ�qŅ‚�kÓ~�PĮķ�xÆģ�‹Í•�LÁÓ�†Ï’�€ŅŽ�{ԋ�[Ęđ�‚ÆĀ�PÃÜ�}ÂŌ�„Ëķ�eÍš�xĘĀ�ÁÞ�‡Āã�gÏÃ�‡Ïš�NĘā�šÓĻ�‰Ú—�ƒÜ“�„Ãį�•ŨŸ�‰ÍĮ�ŠÝ‘�}ÏÅ�pŅÃ�Úœ�WĖß�ŠÆâ�ŒÝš�Ņë�ĢÕŊ��Óî�žŲĶ�ŠÖ­�zÔÅ�’Ô―�“Øē�hÏā�•Ęå�uÖÉ�Øė�UŌæ�œĖå�ƒÖĖ�ĒÝŠ�œßĶ�—âĪ�”ÖÎ�žßŪ�˜áŦ�tÕå�˜Ýū� Ðč�$Ûð�ŽÛÏ�§âŊ�=Üï�Ļâ·�–ÛÕ�ĐÓę�Đáū�°äķ�XÞî�Ißņ�―áÄ�ĢßÖ�šáÓ�ģåŋ�Rāņ�‰Þë�wßņ�qâî�žéŋ�áō�^äô�†âņ�ĶåÝ�ūéČ�fåõ�­æÜ�{åņ�ŋéÏ�ÆëĮ�īæā�ĮíČ�pčũ�xéö�ÉíÐ�ęõ�Âëâ�‰íũ�Īíũ�°íó�ÕņŲ�Ŧîö�Ÿïû�Øōâ�ßôā�âõé�ëøé�íųō�öüņ�ũúø�������������ýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýý  ýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýý P·ÖÖÖ·6 ýýýýýýýýýýlýýýýýýýýýýýýýýýýýýýýýýýýý *ãöóóóãíóīýýýýýýýýœôlýýýýýýýýýýýýý FóöũũóÍÓÓÂÍķ"&ČėÝlýýýýýýýýýýý ###### #$čũũũøíčóííÞÏÍŠ6$ +ÛðÚælýýýýýýýýýýýcTTTTTTTTTI—óũũøøóŲúųũóíęÞÓÍdôîäāæNýýýýýýýýýýý bIIIIIIIII=ÃũóóųųųãÍãũøøũóį–ōėëäāîõßŋ\ýýýýýýý bIII=IIII==3ÍũóÞųúúúųũãÏÓíïœņėëääāÕūĩūËÔŧýýýýýý oIIDaIDDIa.8ÃũøøÞúûûûúúųóŌmôāääāāÎĩĩĩĩĩĩ˰ýýýýý oIIT}IcZIzD*ŊóøũÓóÓüúúúøøö‹ČðāāāÕĩĩĩĩĩĩĩĩūČýýýý oIIIIIIIIIC§ÓøøųíÓûúúųøøÍ`'ŧėÚÕūĩūūūĩĩĩĩĩÎlýýý oIIIIIIIIII!8§ÓøøųúúúųøųŲē=G–ėĩĩĩÎĨĨÜāĩĩĩūĨýýý xTTTTTTTTTTTˆ§ÍóũųųųũóƧ8 TTGŒÕĩĩÎ\ýimßūĩĩæ>ýýyTTTTTTTTTTT5ˆ§ŊÃÃÍÆÃŊē8TTTTQsëĩÎn}…ýNŋūĩä\ýýyTTTTTTTTTTTT5K˜§Ŋ§§˜ˆ"TTTTTTQsÔÕnfýýýlÕĩā\ýýyTTTTTTTTTTTTTD("*5TTTTTTTTWsásýýýýýÜĩëNýý‚TTTTTTTTTTTTTTVV;/(/SVTTTTTTTTTZ$1\ýýýýýÛĩÝýýý‚YZZZZZZZZZZZZZZZbbbbbZZZZZZZZZZZ$ýýýýýýáūŒýýý‚ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$ýýýýýýÚÔýýýý‚ZZZZZZZZZZZZZZZZZZZZZyyZZZy}ZZZc$ýýýýý€Úmýýýý‚TYZTZ]SZT]TZTTTTTTTTfDD]ZcD;]TTb$ýýýý_ģ_ýýýýýyI]•^ķSķ˜•Ó=ÖIIIIIIII=…z=II]™DTIZ$ýýýýýýýýýýýýxIZˆķŠh˜Ŋz™ĶzaIIIIIIC.Ž~...a˜5DZT$ýýýýýýýýýýýýo====================5!(5=9(!R|9b%ýýýýýýýýýýýýc599999999999999999995=99959gšAZ#ýýýýýýýýýýýýý o==========================AÉĪ0SýýýýýýýýýýýýýýyIIIIIIIIIIIIIIIIIIIIIIIII:đ‹ƒC@ýýýýýýýýýýýý‚TTTTTTTTTTTTTTTTTTTTTTTTT7­“pI@ýpýýýýýýýýýý’ZZZyzzzzzzzzzzzzzzzzzzzz}HۚŦ7O åBýýýýýýýýý‘ccyJۚØER―ýýýýýýýýĻyyyĒą)j[jk4)žąąąĄĄĄĄĄĄĐUŨ-ĖLeýýýýýýýĻzzyĀĀvv†Ęʆ[†ĀĀĀžžžžąąĄĐuŚĢŪЛ- årLr ýýýýýē……fĀĘĘŅŅŅŅŅŅĘĘĀĀĀkkkMą�<ŦŪŪŪŪļâéé˚LLrŠýýýýŊ‘ŽqgžžžžžĪĪžžžžžžž„„t„”??{,éŪļļļŪ̟ššLLX­ýýýꙎyyyyyyyyyyyyyyyyyyyyyyyzJÐļÁļŪŪ̚š“XLLX­ýýĮ™™™™™™™™™™™™™™™™™™™™™™™™™™™‡JïÁļŪŪ̚š“rLLX ýý𑑑‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘w2ÅÐÁļ۟š““r ýýý^ēēēēēēēēēēēē§§§§§§§§§§ŽŽĻĻĻĻĻχHBpŨ““‰Ģeýýýýýýýýâ““Ūƒýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýâ‰ĖBýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýâĖBýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýé+ýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýý+ýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýĸĸĸĸĸĸ��ĸĸĸĸĸĸ��ĸĸāĸĸĸ��ĸĸ�?óĸ��ĸþ�ãĸ��ā���ĸ��€���ĸ��€���ĸ��€����?��€������€������€������€������€������€�����€������€���Á��€���á��€���ã��€���ã��€���į��€���Į��€�����€���ĸ��€���ĸ��€���ĸ��€���ĸ��€���ĸ��€��� ĸ��€��� ĸ��€����ĸ��€������€����?��€������€������€������€������€������€������€������Ā�����ĸĸĸĸø?��ĸĸĸĸø��ĸĸĸĸøĸ��ĸĸĸĸųĸ��ĸĸĸĸĸĸ��ĸĸĸĸĸĸ��ĸĸĸĸĸĸ��(��� ���@�����������������������������!b&�e4�!q1�"vI�*|3�*{;�2|:�(;�Krj�1ƒ;�1‚C�,…?�B…J�1‹<�8ŠB�5ŽI�6B�&‡k�5ŒW�2•?�2”H�A“T�H“R�>™K�K—V�;ŸJ�5 M�9ĨI�@ĪO� ’Ą�NĒZ�3Ī]�TĄ_�š�8­J�>ŦO�8ŦR�QĶ^�CŸ{�?ŠX�GŦW�i–—�<ąN�NĐd�I­Y�6īI�6ģS�>ģQ�VŽd�R°Y�FģX�:ļN�Tąc�B·U�S­q�RĨ�<šP�Pĩa��Ū”�gŽx�>žR�\ēj�=šZ�[Ŧƒ�9ĀN�€Ū�GžZ�DŠ�Gŧc�@ū^�:ŋa�Iŋ]�\đl�KÂV�@­Ą�JĀ^�bļq�DÃZ�:°Ÿ�Qšy�Kžu�MÃa�TÃ_�kšw�TÂg�ˆĨ·�MĀq�_đ„�xĶ―�Fģ§�PÆd�rŽą�xŽŊ�sŧ�a―�'đĨ�oū|�PÄu�Pŋˆ�vŠÃ�2šĨ�PķŠ�|―…�ZĘe�<ŧĨ�_À�gĮp�Rū–�`Įs�_ķŪ�\Ęp�tÁ�m°Å�MŧŊ�dĘv�TŧŪ�8žĩ�oĮ~�Ošķ�cÉ}�|ć�9ĀŽ�kĘ|�fÎq�}°Ï�<ļË�eĮŒ�WŋŽ�+ļÓ�ēÆ�mĖ~�h͂�SÅĶ�SÂą�g―ž�FÃī�uͅ�Fš�bĀđ�hĀ·�‚ĩÕ�bÂĩ�”·Ë�iÄŪ�1―Ų�q҃�~·Ų�WÃŋ�_Åđ�rĮŊ�…Α�sžÔ�xɧ�RČļ�yÄđ�,ÁÞ�gĮš�žŨ�|օ�[Ëđ�}Ս�šÍŸ�„Õ’�ūâ�…ĀÜ�wĘĀ�„Ęž�€Ø�;ČÞ�~Îī�ŒÆĖ�sĖÄ�‚Áæ�+Ëã�™ÃŲ�™ÔĄ�hÐÄ�?Ėâ�VËÞ�Åß�HĖá�Úœ�AÎä�rŅË�rÓÅ�:Ïį��Óî�’ÍÓ�€ÓÉ�zÕÆ�“ÏÔ�Øí�|ÖÎ�œĖå�GÕæ�„ŨÍ�ŌÖ� Úï�—ÓØ� Ųí�-Øė�QÕė�ŦÞ°�ĨÏå�tÕå�ĶÜĀ�{Øß� âą�ĄŅę�hŨę�2Úô�<Ûî�2Üð�‰ÝÓ�ÞŌ�sÛí�ēæ·�Žčī�Káó�ĀãĮ�}ßï�Tâó�ĩčÁ�°ãÖ�^äô�mãø�måó�ŋęČ�gæõ�ÆëĮ�‚æð�vįô�}įō�ĮíČ�ĘîŅ�‡éú�ŅïÏ�ÓïŨ�ÖōÚ�áõâ�Ûõå�âôé�ëøé�íųō�öûņ���������������������������������������������õõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõ õõõõõõõõõõõõõõõõõõõõõõõõõõõ;ÛðîęĄõõõõõ€Ėõõõõõõõõõ fðïíÞØØĘ }čŨõõõõõõõõ /*****#îņņęęîíéÞŊWvæāÜõõõõõõõõ#@@@@@@"xðíņņęíííîßÎëâāâđ­Ļõõõõõ'FKGK<R–ïåîôôïíėßĖįääÚŋŋŋĮđõõõõ(<IIQ<Qxíïíęóóōņ͓áāÝŋššššŋķõõõ(<<<<<<3%Ųïōņóóōî–™āÅšÓđŌŋšĮõõ(M<<<<<<oÏęōóïãĩ+*F‰ČšÂh„ąĮŋąõõ(MMMMMMM>`ĩĩĩĩĒ$MMEtÔÂVõõđŋąõõ,MMMMMMMMB0=/MMMM<tŅõõõēšąõõ,MMMMMMMMMMM//BMMMMMMM(õõõõČĻõõ1IQQQQQQQQQQQQQQQQQQQQ(õõõõīÉõõõ,MQITKIQQIQQQQQTQZQQQM(õõõõ­›õõõ,IzuuˆzˆzQ<MMMBlGBTT<M(õõõõõõõõõ(MjzTjzrlG888<.H*-29DM'õõõõõõõõõ(3--3----3....*""*$^O5 õõõõõõõõõ(33333333333333333PĐV�õõõõõõõõõ,<<<<<<<<<<<<<<<<>kŦaõ!õõõõõõõ4ZZrwwwwwwwwwwwwwi·bõseõõõõõõ=gnšŽ|c’cXŒŽĢĢĢĢ̗аœq_eõõõõõL{nĶÐUËŽAŪÐÁģģĪp†ļ―Ĩ&Š__YõõõõS‘r˜ŧÆÆÄÄÆūŧŠ\\[)m―ļļÕÖž‡:dNõõõ] ‘ƒƒ‚‚ƒ‚‚‚ƒƒƒƒƒƒƒiÃĀﰟ™_:yJõõ]§                ž~•žÕ―°Ÿy_dYõõSLLLLLLLLLLLLLLLLLL6?7Ŧ™™…Jõõõõõõõõõõõõõõõõõõõõõõõõõõõ‹™”Jõõõõõõõõõõõõõõõõõõõõõõõõõõõõ‹œõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõCõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõõĸĸĸĸĸðĸĸĸā>Ā��€��€��€��€��€��€��€��1€��q€��y€��ó€��ó€��ĸ€��ĸ€��ĸ€��ĸ€��ŋ€��Ÿ€��€��€��€��€��€��ĸĸĸ‡ĸĸĸŸĸĸĸŋĸĸĸĸĸĸĸĸ(������ �����������������������������+„:�2‰@�I‘U�5™E�;˜J�=˜M�?™N�@™N�@™O�BšQ�D›R�1–u�GV�S `�@ŽT�^Ĩj�;ąO�>ēP�9īK�FēT�EēW�@ĩS�;ļL�9ļM�9đL�AķU�;đM�BķU�@·U�C·U�?ļS�<đQ�AļT�?ķ^�Jķ\�?šS�CđW�DžX�@ūU�Gļn�Tše�CĀX�AÁW�BÁW�IĀ\�EÁZ�aĨŊ�Lŋ`�EÂ[�S―h�HÂ]�FÃ[�LÁ`�KÃ\�dšr�AÁg�JÃ_�bļ}�IÄ^�JÄ^�_―o�WĀh�JÄ_�Zŋk�^ē–�ZĀk�KÅ`�NÅb�g―v�h―v�OÅd�g―w�]š…�&·Ģ�SÅf�gūw�hūw�`ĩš�dž‚�WÆj�UĮh�XķĄ�_ž‹�^―ˆ�lĀz�^―Š�CļĐ�]Įo�mÂ{�6šĐ�`Įq�]ƒ�`Čq�`Á�5―Š�`�j�aÐ�WŧŊ�]Á�}ģĘ�yȆ�ŒÂ•�gÍ}�a§�tȗ�EČą�Č˜�t͑�w˙�‡šÏ�iÆš�|͜�<ÉĀ�hĮđ�}Λ�WÉđ�kÉģ�{Ν�}Ν�“ūÏ�{Ջ�‚Æž�[ĮÕ�KÏÁ�”ÂÕ�’ӝ�vÍŧ�jÎŋ�—ÃŲ�2Ëã�IËá�™ŨĢ�CÍä�sŌÃ�Ōå�$Óâ�•Éß�8Ņį�Õė�Öí�ÖĖ�Öî�Øï�(Úð�ZŨę�Žāŧ�–ÜÔ�ķáž�Mâó�qáð�ÁéČ�oäõ�ŋęÆ�ËéÐ�ÍėŌ�ŅíÕ�ŅïÖ�ÐïŨ�ÓņØ�ÔņŲ�Ûóß�įũę�čũë�éøė�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ĨĨĨĨĨf›™kĨĨ{ĨĨĨĨ6šĄŸ’u–‘ĨĨĨ+, e—ĢĪž“˜•Œ‚Ĩ*)&(” ĒœN|ˆ‡ŽĨ3-0<~„X7qjĨ‹ƒ >22:$B5'ĨĨŠĨ PZ\WC;8O4JĨĨ…Ĩ/?A=%#"1ĨĨĨĨ!RĨĨĨĨ F[UHS]_ach� ĨĨĨ gzx}‰nd.†@QYĨĨylwspvmi`€^IĨTKLLLEGDD9MrtVĨĨĨĨĨĨĨĨĨĨĨĨĨobĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨĨøo��������������� ��� ��������������������ĸó��ĸĸ��ĸĸ��‰PNG  ��� IHDR���������\rĻf�� �IDATxœė―wœŨuįû=·:Íôd` `� 0“bģHQķ‚e‹–wmYZʒŨaMI–lĒÖûÖϏ0)ÉaŸ%KNzĒí][kKēžJĖ9į€@"gLžéTUũž?nUuõä!A–ú‡OcšŧŠoÝšuO>ũ\hlj&šhlj&šhlj&šhlj&šhlj&šhlj&šhlj&šhlj&šhlj&šhlj&šhlj&šhlj|üVVnÞJöTũã sŠ;ÐD?аÂíĒ|hó­īžęūü Ðd�M41ŦðiāķÜJïĐîÎMÐDÓCE@„Đðđ-·ēæTwčdĢÉ�šhbˆ€jōņFāŽ-·röĐëŅÉG“4ŅÄ ˆ˜€Š‚ W |mË­\|ŠûuēÐd�M41;DAqÚĀ:…ïmŲĘÕ§ļO'MÐD3@<ÏcAïb)īPĮ:PîŲr+ïÚ|+rŠûøzÐd�M41 ŒÉ°aÝÛxÓUĒĩXbŨ€ð5>ēy+ųSÜÅF“4ŅÄāI gŸņŪ―ōCôô,„"Ę'7oĨįwņ„Ðd�M41ĻZT…3Ũž‹kŊüm–-ëk#& |øËÍ[Y}Šû9_4@MĖb@kCú–_ÏuWláôuįJ:& ðóĀ·låÜSÝÕų É�šhbEPkC-ļ€k.ÛÂį_—fWĄ|iËV.;Õý+š  ‰&æ‘øoUĨģm5—ž3W]ņÅ:+„ ĀŋnÞĘ §ēŊsE“4ŅÄ õgžûŽ|‡J­€ÖÂbÎÝð>ŪŋúŨ$“‹˜�ô |góVÞsĘ:<G4@MĖ "ĘĩĢžēû ŒWPČvģiýŧyÓÕ–b[1ÎPØž•OœŌnς&hlj9ARï2øķĖ+{ūĀČøNČxmlX{#Ũ^u3==‹ĒbøķÜĘį?~+m§Šį3ĄÉ�šhbVLHø<T•ûŋĘąÁ'°6ĀHžuŦÞÁĩW~˜ĨKŨˆ*… Í ·y++OIũg@“4ŅÄ ’~/K0(°ïčw9pü‚°„eåŌkđöʏēöô ‰s~åŽÍ?baÂ&hlj9!­ļ"ˆ8&ptā1öþ6U!Coũđ\ué‡ļāüŸŦÎ9(Â5ĀßoŲʕ§ę.&ĒÉ�šhb8BĀéóņ?A4fĘĀčKė:ô/Tü~Œäč(öqá9ïįŠËY0Ļĩ p6ĘW·lågNņmMÐDsDJũŸˆcŽ/ļãĢĨ―lßûŋ(Wâ™<ÅÂ6Ū{Ũ]û[’+ĩ.W`‰ÂW·låŨOÕÝÄh2€&š˜œĖwïb�ŒÓ D•„1Tkƒžžû Œ•öãyy đÖũý4Ũ_ó1iko‹5<ðđÍ[đíÔÝU“4ŅÄÜ 1Įf€‰œŅ߄ ļũĄ­ņʞ/08ú2ÆäÉfŠŽ]yŨ]óQééY„j&ÜžųVþîwĸāԔo2€&š˜ąü—ˆDĶ€ų" õވ ;ũ…##d0’§oŲĩžųÚßaņ’Õ .L(Â{M†Ŋmū•Ĩ?ė;˜č7ü§• Ed‰ˆ4N‚lljS‰ę"2ŪŠĮ_ú➁ŨŨhōŸûû� ãŪp ûÚ-R‰ëˆyė;ú=ŠÁË^…‘,‹ūŪíäG>ÏŪ]OŦ*"Â;Ú·låC·ÝÂóŊŦŋóĀžĀÆ›V]*"ŨĻęEĀ: SUOzïšhbžÐzß0("û6ÝÔũ,ʃęéC/}aOíDڕt"@ä�tïˆ4―ąiĻ[ExtāQ|”•‹ÞL&SĪģļ–7]ņŧ<Þv‡<ũÂwÔZÄŪAđcËV~ûķ[ļũDĮ`>˜3ØxÓŠÕ‚|\Ņ7ĐęÚx�R>ašh⇏ô|ŒpĐĒï‘=(ošĐï/^üâîŧįÛŪHÚZŽˆ_+.ˍ$~Žku a`äEüpŒū%o#Ÿí!Ÿëᒠ~•ķķ^yôņPŋ†xį+Üąe+ŋ{Û-üã Ä1'ĀÆ›V]|áƒkĢŊ݂‡ØŌ$þ&~0q>Æix*šJT~^EĸqãMŦ~ũZžðN"|Ä!Á8Jņ…Ø/9 GĮwģcĸ—)WÍī“ņZ9ëŒđöŠ›Ĩĩ˜Ó0DV―åV>úzĮc6ĖŠlšĐïĀ— QYd7šĒŠNëQ�ŠûþĄÉ ~œ!Þ†4#ˆdą,�ý䯛úVūôÅÝ7ÏÔĶ*AԚ4Ūˆí}wb$í‰b `°X$Ū&îļ`ĻTûyyïŽ[þn:ÚN§Väôū·ÏĩË}}VG††Õxt"üŅæ­ŽūýfėįëÁŒTąņĶU—‰ČC‘—ÂÝ[äąPU ]9ŠË[Čä2tæŧ(vķ`ō“NLF\bý$b†5úwŌ5Đö‡ĮøæÎcįxâœO›ųÄSéV � Ŧŋæ3ZedÏ8þhŸ&ÓRUÔ3VĮĸęâeý‡–uĀZNSe!Ð ī�€|ŪUŪ―âcœ{Ö/ĒVŲąïK íÄ5č’ý5ē4ZĪ‘`ąîsę;ÔFãié[öģôv]@­6„ÃácOpŨýĸƒÁĢ€+B$ðĩüĮĸûNú OKĐÞ·ē(FvŠČœ&% ˆšWv°þēĩŽ\ē’Î\m^;;íd:ĩzF‘Û“ÛbúžNīíÄļ8)trîYĐÛÔÓĩ5ÆŠ3|Š!čüXķLø bØwôUžðYúwaak­eŠīįUEæÂŧsđŪŧōũ8wÓĀÆ `üՈüA4Ūęˆ<Í\ę_ž"(bЈDbɆ,ë―†å―WããņŲÆũîų$ĮŽí% Ēð„ũÝþqŽÎcXfÅī&€ņĖíĀbâĖU2yÕ—ŪāĖóΠ7·„ÎLŠbílŒi Žs›HŊSĩ>›É"SLûIý”'ä“yÏéķâ~ŋÞÖ5-5_o;ģ“üÕšZĖĶD 6Ļa+cĨ!zŽîâōžãøëĒĄĀV!#Mð x^ÏËđ—É`Ē— äōmäóí)fåˆĩ(IĖ/:N2nØháP< ’:18v7~0Ęi―ŨĄjéę8ƒ·ŋåVîžï“ėÝũžŠEDx‹*_ÝüGü—Û?΋ó i0%cßôþūuŠ>ˆŌŦû&cXsņJÎ~ÃŲ,Î/ĄÕ+N9]ņD˜ü'Ū§ŽØ‚ÎÂN�s’Jsž”3ßĮĐŨoĶïÃëŨô―þpîó„4CXĮ:HåøŦToÃï?@ī?Ōf@ īķīPl]@kK--ÝīšÏ­ h-ôÏwËÉfŠx&‹1ŲL+ų\'ÆdŲđĸ+ΈĻÚljškNƒ‰$ŋ:u?­ļüúqÅŌÓą‰―Ũãy%°c<øØgyå•ŧ4ã"OĐðŅÛOR˜pj @yБ$UtŊėdÓXZXFÁkЏ}ôŋ 6 P?)–þÃD<Ųgũ>Ė­5ėŽŌh’âzÂ8ųÐÉéÛL æ‰99”EĀxhĨDpd•ÃÛĻÛIX*8õ<TČea႕ô.XOOũzšVŅŅūŒŽöĨīzÉxŒä‚ÕÄF<ŅwŠH8sá>+ŠX"-€DĖ;‡™DĖ u<5ĒRwÐ?üA0ΊÅo!ŸíƓŪžøÃīËSÏþĢ–K™ |aóVnđýūōzĮyJ čÅ"’lw”Éeč;s%KږSÖ”ŠãžĢõŠ P +„Æĸýâ”õÍĘĐč՜X——ĀGũ―€ÞI8r[­Ē∁åKûč[y9Ë_@gĮJÚÛÓRčÁHU‹ĪŊĩBėð―ýjBõQ ACÅ?ΈU|ˆ8ą’ a*(u\Ģã f€ j@`xlĩ(W XXNh•ó6ý"mÅōðã_ԑá1ÍdX|vË­Žží|ęõŽu6þ§UKEä[*zū ŠŠŌŌ^ām| Ŧ[ŨÕOŒ4ƒqœãÕĢ„ÖĮ&·ßD? ˆÏÃî{ ŧûit||Gž~--pæš7ģ錟ĢŧótZ Ýäēmļ05‰ínÄP ÆĻÔúĐֆĐųÃøÁ(~0F`+Ļ Ņ(đUą‘dw[óGīŲ‘ķH~KžŸļĶ=þąy v3 6B2™6ú–ž•îŽMøþ"°ĸÐĢÜũð_08ÐŊžAT(_žý~óD‡s’ Čr MâH§ÅŪV–ĩ­ĀSÏyûq^ÖJPæXõV-ˆiŪ,jâ ņ2čØ�áKũ`ûũĢĄ#|ŦPhÉrŲyŋĀđÞC[ëRDē É@"BŽ3ZŲOĐ|RåAPÁâ$žÕØ[oë&@LīÄÄëpĶ€Zڏ-…DâGý–û5OĐý“īœ8ąH<‚ ÄŦþ™þ0K\AÍáīĨ—ņ–kŧøþ}Ÿ–þþC*J‹Üž•%#yÞýđÍ?ēðþUW_Dé‹pŲ‹đé—>@Pó“ÁīŠßCH0Ĩ·ž‰&N&ÔZ‚/áŋ|/ęWįðž įŸûs\váÍīG*{ݧâcŒŒŋÆðøkTkĮSŽ:§’ÛXbĮĄđD2Įá<Gä‰`Â9X9ģm=õ7īķA+HŽKėkhÔ�%ī5jÁ(~PBĩÆŌžËYŋę—qá�ąŌūsįp4&DđS•_žýŋrl>ã:•`Tãd?@ ۖ%ƒG€­FýĄ(ÓĐ)ũ›øÁ–Gņ·?H°įEðÜwŲl5}—rݕ·ÐÝđŽ Ļ b5ÄZŸņō~†F·3V9@ĢýIöˆTœTOÅÜ]Œ0ÎދÔÅ܄ðhũsqÅFđg j| GcĀŠOĨ6@Đzß%yõāĸĶ\;ÆÆÕŋJÆkĨ­u9ï|ëóíŧþ;ûũŋĪÖŠˆpĸ{ó­üęíŸā•đŽí”N‰yýųÖ,† žļÓEĄTðěëušhbžpb-ØOí…ïC=Čx‹{ÏāōKþ gŽyAX#ŠX Ļų̕ö28ķĀEÄÓ\ƒ Ÿ&pŽē`SđûI°Þý‰ <Öä/$ąPZ‰Ĩū4ķÓpG“ݛֆTjýŒ–vãã“J9Ģķŋ— ,ģaÕûi),!cÚxû ·sÏCŸ’íÛPß1†+DøŌ–[đųķOðĀ\FyNŦóđBr"BĻŠ94ŅÄɅˆA5Īķïy*/}­ųXڊ]œģéF.―āWiméÅ*�”ŦG+ïexėÕ$›Nžœk+^Ŋ‘ú_„Hpķ@4]Ņ4ŧU~qßRėŦSvœéԈ$iCŽ3RÚÃxe?‚Á˜ĐÉQD@=ũ?L–9cÕûč,ŪkļæēÍtī-‘§Ÿûš–Kõ<ÎCøûÍ[ųÛoákģõŽ @LÆĐ*&âJîū Æ45€&N"ÄļLūĘöûĻūúh”hËŸÉ—~ˆĩŦŪA$ƒĩ?ex|ĢãûĻųƒNâ{đ”ĮTļ°MļNÏE‰ĸ$Ē?24-ņ‰ŋ1ΑÃ/æ&õ/õðÃQ†ÆķQŪõ#xģŪĶŒÉq|čü`”õ+ßËâęsþYïĢXė•Įžø†††ÔóčøëÍ[Yqû-üŲLíÎđ€Iė(ĮD ?hljŨ ņ<īVĶüŌũĐí}QÅáŽ3ŊįęË~‡žîĩ.·^axl;Cc;’M:E"‰Ŧáj‰%p"ÓR?ŽÍ§žō1­ĶŨ]úõ·ĩˆôûrHûęúĄVÝNĨ6€™‡-"x^žáņŨxáĩÏQ9­ŸūĨo' ŦŽ_ýSīzxčŅŋ’ãĮŦ1t lÝē•շ݇§ksN @Ä`ÄsŠ•ž„dð˜…i5ŅÄÜa Ќūô}Š{ŸFj>\uŲļôĒ_'Ÿëp‘�[áøāSŒ•ũZBĄŽ”#/vÚiø%ˆíø„JÓæAr|útĪŲŽ]34§‘ų02ķ“Š?ȉJOÏäĻÖúŲķįï(WēaÕŊÚ*+–^ÂõŨôpũŸ–ĢGö+nEãolū•åï―í”'ķ57ßB}ƒtŒ1?Ôe°MüøBD°Ïøķ{Đėy€Z�o―~ įõŒqûðUýAŽô?BĨ6@ė(“ĪGĪÎĮý#ïūĶēðÜÅĒųÜĻæKÄ%&ŪóŒ5„z~ßÔĮ$åÁ5Eüņe<ÆĘû(UÍ-ÕyÆ1óÂ2ŧ}“jmsÖތ šÖóö7oåÛwýw9tč5!‹ōs ßÜē•_ūí§Û9Ą^\!ÕuDšŊæëÄ^‘PQRÞó8ãÛ īðķ7ĸWÎ?û―8‡ RŠâĀŅ;)ŨŽ!iÁĐĐöRï]”OÁ§“sRģxŽ“―|[ĒT9ˆĩĩΟŊ·Mkŋ—§ķßNhSī_Č;úOXĩj“K;�#pðŋ7ßĘštsŌ�❠’ÏąW˜ėį<Á›i:~"Ð0_"ŅX=ô #Ï~;™cŨ_õQÎŲø ![ÆË9xü~TÄxhDčˆĐ;ÚęÍ1IôNþĐû'iÎÉGßP \=FĨvâŠĸ @Q°ŠgZ”JuãÅYɝŠÄUŽæÆ�’˜Ļ:BUÅÆđË'3ŠjZlâĮ‰IUÁüÁý =õ5§†ļø‚›ļāė_ÆHUeīī›ƒĮ€T*VĻcå;ŽĖÅv f˜P"`íDŊÝ " )Lą0§T9 ļlū“ØÔYšð 6­þ52^   ėáîoãā=j ‚Ë_þēUnþÔ'h(‘>į(@=GŽZB 5˜õwÓÁ`4 ŒQ ËøÖw)“MMāĮ!kr2-īf;`|‘§ū†ú8sÝ \rþÉfZąŠ mįðĀÃIx0!vĐ'Ú4ßä―FŅ€8@'Yï õßÎ0åd7%ÝOøBUĐÔĐÖú9Y{ņÄiÁŦ–ž•3Vūcē€rôøóÜũȟsäð> qũũ9ņø―OmĶ4ąđi�ŠKąŒBDŲÏÉš€ųu\1b(‡%ŽUŽ0îPÓZÓø‰’5y:rÝŸŧŸ`ļ ,Yt&W^ōaŠÅEXŦ ―ÂŅÁG“ųĒh’ã|uŊ}<ÝįxÝ~œņ§I6/ÔóôcÄڈģ&SŧF ë„Ãņ4$ęHė\D°ÖgŽž?đÞë…ĩž—cÝiŋDßԟ‰4#ˁÏóĀ#ŸįøņCđXø}”Ûoی?U[sÔ�\Փ˜ëĶ‹&ĖŨ›)Õ°ÂĄŌ>JÁ dä„7(jâßTņPÛþđĢ;Á@>WäÚ+~—=ëPŦŒŒŋĘąÁ'°Q˜/&þDFhëOiҁzbNžð†zø/Į' hHų$”Tķ ̈#�lĢ~―ôņĐrĸT•Z0rŌĪŋĩ™L+û>Čē…WđûeρļĸĄÏ1<<ωQų€Â·búU‚s§<­KüdõÓ U‚ŽUSJÄOôGŧœx'Æ#?xŒÖÃŧĒūôĒ_aÕi—cm@ĨÚÏąÁ§Â2Diđ1uÕ%šM h8ÁœrîÕÔ+ņšĪ 8C0YŅ—°N āTˆp Lf<ӜiĢĨ=Ņï^Ÿô·6 ŸídӚ_gQũpaPŨö}{îĸ åR5&þŠÂ/ᛷÝ2óáyˆ^Đ\,Ku~Šŧ@9,QąåD=Šāž­Ö4fąÎš85h ĪÍōÔҰ`åYiÛ·ŊZEĨ‹7qŲEŋĩÖú~–Jí8qŒ?YĀûŲ’6ē&\=)Ė‘^~›rd§ĪšąÄëĸާnĢ~ĢÓ0Gõ4€h€Â 9ĸ^Ÿô·Ō’ïeӚ_§·ëT-ÆdxåÕæîû> ‰‰ŋ_•ũĻåŧôûģûÕįa„‘§>f�š ō\a0Tà ÖZL”\  ĒâĐø— Ūӕ-…âĒv“m•†Đ•ĘøšĖI&xV§įķ“æDļō$î?&4õy“ÏMÎK NHęX|þÔJĻkv“OīĩtûÓý^›ĩ1ĄÅĶ~›:‹ÚHšFÔb­b"âˆÃæ1K·AėąGū’ÝÝY2īĩÜEvxĀxû ·đŌ\ĀðøN†ĮwĶŪk‰ 'ÍâĄRQÄNfHu-ĀÖ?'cŌļž?f“―yŅqÛxŅFó!9s’ę+íqã"'Æ�âņoÍ/áŽ5ŋFoŨ…Xõ1ÆãŲ—ïāþþWLø‚ēøĀíŸāûsmVOUM‰đr✇öŪ!!n@R“XĶ-á›íŠ‚)övØl+U‰ŨiF“Á-æĻkÉ$œ?ŅV0î˜Õ†d‹Äa‹ƒä{Ũ‡đ0‚†}“ŧ‘vˆĶ}%IŧjÝ+Ō{ÓŽÄN+’0V―:!OŒÄíXʕų\† É8JdŨV/ïIÔUũû °„Ö’ÍzTŠ…ŽĄRõ#äēF$n y栄aČČX…ãƒ%žŲv˜BĄLĄņrUKŠdаtAŽ<Ïļ[0^f%=KnkCĸäooËݏņ W\özšNĮڀjm€þ‘°šüøäđ4Ķč&óMR>ŧ' ‰í_·ï‰ŋ.L7‰A4ķ›t ŋŽDšęO’n,ŠjČhy'*ýãyTlYÎYk~ƒ…įÚ*V}žzöoyė‰o&Î>…—~óķ[ļg>Ũ˜—ũ-™āļ›īóôHĪFz* ÃËį3­ų “G­u§ÄÄ °{8îCC&Ulį  Ž $ąæTßëĐÉStŸįŨMƒ\NsŽbNÎH›Gó$þôq™ÎûŽÎî!ĸð§ø…Ÿ>‡'_ÜÏĶÓÓÝQāýëÓlųāĩxž;Āó /î<‹;rųųŦø—ïŋÄÏŋe#_þ·įYķĻ3úēéôE3YĩŊÖyæ5î|d7ú}2™K–zœķbÅÖ.^Ü_åȑ:[”‹Ö·ąau;­…\ž“”i“BOöøaēCĮą ]] đøž`CŦ!CĢ;(UŽā™\ƒÚ q"yc‚Ŋ;ė'ôīÁ̟fÄÖuͧq\ĢŋIioMæŸëK]ƒHú“bJõ€ažž'Ęú›?p‘‰Ūķ38{ÍoŌŲv:VkÔüöoxþųïŦHrÉĮUø­Û?Ácó―ÎÜ€ąâŊ6Jŋ°s"˜ĐÚIÞ§Yw\_!žíiį@šhЏ1L ę˜@#ņĮ“)-64‰™ĖÐyfË3"-õ]?Ĩ> g"~'Õ$âOûŸĨlj…–{ÛÉEgŸÆ ÛģŽ·}‡†8cu/íį6ūðð<ÃácĢ<ðänĘŸ'_<ț/_ËcÏïį?üôŲ|ûtwķ°rI‡KôJõeûŪ#|þKēûĀ0‚âû>­­yV­XFgg'ÛwėĒĩØÎēå§ņÚū ž^āíWŊ§ĨUP1• ųcûUBßÂå—ü&ŲL+ŠJĩÖOĸČsÉÔ}<Ä1=%šŒIūKĶOĪÃŦĪ‡Ķ ū1‚ÕņŪKö)˃tŪAâ0L3ø4ƒ‰5ˆx EÓØ9ĸNĖÄīZcqũ%l\ýŦ ˰0^>ĘĢOý ÛķÝŊQE…ï‰ōĄÛo™{ 4fg�Ņ`†IáD°ÖâþÍŊĄŅ(Ī3Ø=&†–s5NEäņ]§$öd&  !Ļi“%tƒšŸöÍÄÓęOķ.ĩã_Ķ%MÝ5IþĐ%{]ĪŲäýÄ~Ɠr"b韄–GžÞÃxđFÆóČf ßšũ~æÚ˜,lÛÕÏķÝĮ8kÝb2Õ§uóė+‡YđŽڋyŪšpGŽrl`ŒUK;RŨŽĩ,ŌJ{{ĀāĀ�GŽáÂsNįWÞđ‘ƒG‡xáđ:ÂáÇččė♧˜ŲŨÅ9g,U%;Nn`@B`é’>ÖŽžŠ8gĸøÐӄacr‰S.)ĻI#Ó'2Ór"ŅRZFŒ$ū„x%U zFqDË&ÉnvŧŠÎŽĪē`ËīÁD‰ÔÁ0^9Uø™PUŽ­ēbņ[Xŋâ=ō PBÆJyāŅŋāĩ]O*urøŸ›oŧ…óšH sÔ�ˆØĨ9‹&>ų q–Dƒ{’úf2ÁΏ 1!ÉŨĐÛ­#v7LðOLøœū^úœz{ądĻŊD›DüP_ģ>-ņĮļQú'įYI>h)dđôžU<øÔ.ēÃÎ^Ag[Ö–œ ­Õ†G+TŠahYŋj!ï|ÓūúžOTŲŠ22^̐ËĪ$bÝÜęnoaÃ}äZšŲ·o/Ŋ―ö{äé—ģgß!FÆĘxža||œĄáar™8EĐUvŒ… „ó6ý-ųn�*ĩĢ íÄĨĮڈđ™Ä‘^šŸļƒĻó퉊hLô Ąšˆ Ŧ*ØUKĻ1B>ÓEÆ+’ÍÉzmx^Ïä0&į4’˜ĄGmÉrāØ]ŒU4˜)îV뇑ŌkĖ,Q&Ã1Ą€5ËodÍōw‘Ët€*ĢåÜuß'9p`ŧRŸķŠpëí§^™€đ§“öøÏ_ýŸĒÁFé;IUšˆVŠM:Þ 2ĒMĒZk1#˜ģ{C'2’ī—?53&ŠýĖ@üĐģÎi7ęoî æ‡,^PÄó Ûũį_îz‘GGļåOūÍŊūû"6Ū]Äڕ=[rėÜÓO&cXß·€ŠŠēįĀøđßhķ�� �IDAT{ļú }œūē‡ÐĶ50ÖŽčæįBŲ,áŽģÎ⁔Jãí?ŽķfYÐ[ǧ§?9tð?uykWõĒÖ2^fįą`ŅÂ%,_zÆd GŸˆî+-QmĪęG2>–ē #hôMõLâgā~Ē6DÄÐRXBఌ–|/ų\7B†8ä(˜džĪ5ūīvč™<žŨ’|v•ëęŋˆI {N%<ĶCí9ýīĸše?GÆ+ bßË·ūũû ôĐŋō*üÉŋéĢ#gßęū|įt‰˜ÔŧMïïŧøĸ€Uņ›Ū_ÏÛ.ųjA �ßú.ïŊï4Ë•ÃqƂą öŽ Ûø�gīvĨl_AÕUr­/óL3A#‹ü”Š>Ņ€ŒÏŠpJ]Lz7ÃÚĖĪ>GŌNū‰"+õûIÄßå$â%šh]õ·éŪA’ņ„Ð:BēaäŊÅó &u_aĪÚzA`ãþxÆų ęý·xÅ VĨZcĸ1Ÿ‡|Önz#CĢ2žĮž={8tøŧ_ÛImžŸK6-āúËÖŌÕނōˁyhũ`á ÞČU—~”lĶš?Ėķ―!2ŨDĻ—æ’ÄÞ‰ė{ÜqЏþī&ķSŨÝ}ĩĩ,§Ŧý Š…ex&ŸōŲ52W"7Tã“ęĄOKÆ+°cĸ—“―ÝuRåūáčāã”*‡’ūÏUŘ Ŧ—ý,§/7q‚Ïāðvūņí3>6ÏbUáũUøÔ7FūëˆŅ€‰æ•)ī!^–įoyÃŽŨŒ1 Ĩ~Ķ>ÏĮĮ+þFLÃï,å3OPɉÃW’>î�bCã<Ö&Œ"i#i2RÍĢMLĒžLč\úҧĩ‡TšŨ u[1&øDAĐ3̆ȇ~7…äotúՉ?>Ö@üąĨJÖsKb3nų'FŌ6pãōŒIĪŸËzÉuâzy“L!”B>Ëš9–t•Pžãðþƒôõ­b”ÝŽ<―…‹Wô°a͙ī2‘áBŽ;Ž?ƒČ ˗œO!Ũ…UKĸðģNJ­[n‰ŋ$c�ƒØØÉĐŲüHĐG…ˆÁËčnß@Oû™d―vâÜwžE­ģų­ĩø~™Ri€áąCŒŒĪTé§\ÂŊáÛžxl<ó­Ž]yuâðsóĐŪÆŨ-USŦ ΋ø3^ÕËÞÉšÓ~Ŧ.ýųðą'ųÖwĸ€jĨæd†2Ū­ĸ2ú?ŠoVĒ! ÄZly ÎúÇČķvōôĮ6Ízý91€PCõ ÔmZß žĖÏ QOÞCH1Sr’˜ ęų�Ú�‰4Œ%ýT6ū6<ÔC[ĸ]RėQRŨÎMé Ų“õ/&ũ{’#/î@ōÛųüūĪ†lúš“ˆCcŌPŦņû‰é,ņDïÛ9ÛÚ €rõ…ËÃ2+ÎëĖŸ"ĄU‚0ÎFŦƒí'#°pá:zŪwÎ628š-ęB”ÃĄņøkŌ5đüĪžsó„ú“2â‘ÍvÐÕķžžŽMQHŅĒâķ°ŊųãÔŠcŒŒæÐŅ9tä9ŽõŋÂĀÐnõ}ßbĢšÍfdé’3‘ū7E}Äs!ĩ`ĩÆXy_’Æ<T-ŲL;k—ßČé§―› Ž�ĘŪýũpŨ―JĩRsq~Ĩ_„­˜{ĸdigãÓ ­R ,U?$óĘĢ„åQÎĸãge `ōŸ�þį4*Ž:ë=6ķ=FoB\T" `úīâ:AOÍÜ#Q랞įŒ°ÞgÏ3XŦ”+>ų|#‰ŒŪsôYé$ļ*4$Ï8ųej|2‘.„ĄKJŠĖ~ÛHüq+ÕþīYIþÁÆŌg"“˜ė<Œ=ƒØ:JĖДô›M›aQō6ō–GŽī˜ëĖ·‘ņ ÂŦĮ_tf…ž5ôtö0<þ*Ą­ų ]~?&Â4!Ö}Ņ '—Šß_>ŨMgÛZz:Î"ãĩ:æ.†Š?ÆÐÐ>ŽßÁÞýēũāc šmÍÁõMÏ#aH„ē*5 �–mžÉāœ”BA'Ļ…ĨĘaĘÕcŪÁYĪŋĩ>-ų^Ö­ø%V-y+AXF5`ĮŪïðā#KĨ\‹+’øýÅîüÛwĶˆøe`ĄT Ŋē°Ėžãã”*>TúũsÞ§Ÿį™ß9{Ú~40€°<ӝšĘŠÃmĐ4_€3RÜ}JŪQBNVÅ''øpčØß{ðŒ2žaņÂ.>·Ö–<ŠĘūCƒ<ðÄNŽĨ­5ÏÏūų\š;[ëNÃ9ˆpäø?ģ Ayû›Îáā‘!îzd;Ŧ–ũpÖšeÜĸÄNFĮ*īēŽXÚͅ›V`LdÛĶ4–x ‰Ÿ†AĐk )âo,MJ:æ=‘‰Äû`9Е’þÉ ÆmŨ5.W}7Œ˜TīCî!Öš&BUņŒĮîW0@6ïŅŧðtē™Ž ÛAln8& ˆÍĻä: Œ >TVCŒÉÐÕv=gӚ_„b1ÆcžÔÏūƒO°{ïÃėŲũ(ĮúwĢ Yē(û#Õ Ĩ C%Čā‡ĶAKåϖw” ,U`X•?Þk…u=Čˆ5I·Ųčø.B[›ĩŌoVč(ŪæĖUĸ‰%=o$ËX[ãĨíĸĖãO}…’Ŧï/ ;Eų_øå‘ŊOŨ–,†ņZČÞþqžÛ?ĖãŊöspČ-ýŊœą/óðØh+0Im:Ā„n§Mnm§‘SE$E V ãcqόg8xt˜ŋû—G9à <OØspÝûûų•wŋ‘Á‘2~Į]ė;4ÄÆuKyöĨ}žņ‚5twķÎŦŨÆŽöōõï=ˑã#\séÜũøNîøÚÃ\uņ:–-ęäkß~ŠÖBU(W}ÞzõFÞũģ—PĐųLƒx�Ķ Ø„°§ ~iĪŽôGį=ŸÐéØYŠnēΉß9ŲÜnījÄÐ56-trÂŨ\ŸđˆPJ?ŒīķtÓŧātԆ„Ö-I›>Ž9ITČ36ią:ģtĩðrŲNũ\Bgq ÆäÂÐį•ßäåíßfĸÁ'%ãA΃ Gic„"#Âč”ƒ ū5�™ĀšŨ>ŧå‘ŧã{ļû_z]ÍI·\EQ° ïĪâ2ÛVyAXͧã,Î\u= ­ÛŌėĐþžgžû†V+>ž‡�OšúĮ:2Z~œqóēāÖ-ncՂ" Ûō|ë؃*ĘŲø ÏĸþåSþ>a�ËÞzó·ÝxÚžWlūy�?ÔFĐkp“ąîŨŽ3Áęjhývc&k u_@{ąĀ[ŊŲÄ/XÍ'þø›|ũ—ųĀŧ/ãЗöņęžãüŌÏ\Ä Wnd`ļDOg1ęÏÜí˜xÂæē―=ml{í0Oū°—5+’ņ#îÞ~ęę\vÞjþė‹wó­{^ä†+6° Ŧ˜xā|Ķ#þzÞúdâŊKI~ci`œ‰:ĩšjčbâ6LÚsŋ=1‚ŸÑŅ}ÄkiŠ­=ô.X‡[ŧp„ÐV'hrŅ܈Ē(ņrXkIkVk ËYķðJZō‹0Æãhĸ <ôøįŲģïQJĨQD ƒQ›ã ĶHM3ø’ĨâųT‚ (xFÕ™Œ^8Z ŋš<qöú8Īu�M‚>#cŧ+íŧŨˆB[Ĩ·ëB6ô―ŸöÖūČũĄ<ðøĸāå—ïÖ °1ņ߭ʇÎËá†+3kŲ dŒPō”V?ΘũļlmeßōOíĄ„åąi?§$eMČ>ú§õD ųūš―Ÿü“īõ=éØ[žx„Ó*r]rJ\ú9šhÝ-twīÖCbŠlÛu„=EÎÛpÅ<+–tŌZČ$vl&cČdœ=MxÆāūÏHä1węqh-įœđœoßũ ąáô%ĄëŸUĨ­5ÏōÅ]\rnĩZĀkûŽ!&ķų-S‡ųˆˆz‚·?í™J$sAÖ}"õņsųÖåŲûeÂę(Aeŋ<HXÁÖÆQŋŒ†5ÔSχcĸʉkxnåįĄ‘―ŪëÚÚzhk] ĀxåĄ­A2Ö#–h~%ŦôĒWü=kkī·ŽbÅĒëiÉũâ"–ķ™üÆŊģmĮũ)—ÔŊ…†g†ó,k9Ī=Œk_2ˆ*đÝ+Éx+þûŸ_š­…āOŠvŨČĪĸC-ífhl[ô Ķ'~ՐEÝoāŽĩŋA{ëŠĻɐïÝûßxņÅ;5 ­ƒĻō-…œuýĄüP™ËŦė[FĘÃUËX͍ŲE}Ž^Ԟôúœ[žēo) ŅĄŅp4fþÅ!•xmĀžÞ˜Ž‹ŦöZŦ”+ YÄx/‹xî}ã˜ė<QŠĩ?ûâ=|úoïbtžÂŧn8Ï9þJ5r™ …BÖåļGbI†FJÜųÐ6<ÏPČgđ`Ó /ėĀ<öÜnö §ģ•Ŧ.^‡ˆK―=įĖåüÍWdíŠ^ZōFĮ*õQT—.Ý^t1įņē`‰WäMķũë*ŋDLB’XJĒkŽū‡~$ŅmDÐS=K―}é‘|D>D GĮö#ļÐcwŨiˆdąâSĐCՏq&ņgĶnÏųýÕÔĢ<*XBÚZNcYïÕäēÎYe5āĄ§>ÍC|)!hc`į`;ŊëÂīį)vx‰;3š ^Þ ž`‹DęĪŠ.–ˆš}ķaXâDēôýyŒ”vŅ?üüŒã3č…]įsļė>Āj™o}įãėģû�…Ŋ‹á?Ÿ}ý‘Ģģo<“$ų`)S hÉdiÉzœŋē›W GÂięþ% `‚i9ÅMÄŌKę'ؔsB*Õ3õ%ąä·aÕʄđH0ŽˆÉ8Ķyg%ã6Žð<aÃé‹X―|ëúqÞÆÓðƒÖ–ĩ  \ĐENŋšŲ00\æūņų\†žÎV–-îdéĒN<cxėŲ=ÜûØN@YŨ·ˆË.Xahé[ÞÕo8ģŨ/㙗ũGãÔĻ$ŽŒUbk&ԜęĮ`â{Gônģ•XŨ˜n,Ĩml̇X2]˜zBΚāé$BKn{^ŽŪΕ‘ÁRõG°ę2óÔÚH;’DHœÍq˜YÝīBŪ›Ĩ .̐íFąøA‰ïÞĸ1ž{î!ēQÖn9ôxîðŽŒ·J.đũúĸņt3YÁŅéz-ė›iZŦZG_ŠR˜§Pw/†…įpþúߨ< TŠý|ûÎĸÆĄÃŧbOˆōõLĀû6üô‘ņŲ(*í—ĻdĖD+ĄR •|ÆÐŨ[ă C‚ōč”mÍÍ ĻąÏpW=€$ęCóSœ—–Žę&|RøĒņF„ZПLÆãęóqųų§QõÁ/õc1Ž[Qä·ĮyæĨ=,î.0<^ĢĢ5OKK–e [øÔï―=XØÓFāŨEļņ†ģyËåëČį3ä2âúūχßw%5?äņįv;·"P*W860ÂÃOŋF>įąfY'A­‚ Ģþ'6§ūj^sÄKL dD&‘Ļyĸ eŋD%p;Qy^–ŪŽåĻ*~0J:'’EĐ @Ģ JëJŊĀĒî‹hm9 EĐV‡ø?ũ~”—_~’lÆÍ—J[Ïtsļb‘™ŠEŨ2Yew^TAļKŪœ7yFĶŨyô?ĮāØö~Š#ũ\Âyë>šø·†FwqŨ}ŸæpLüJ áũ]Â{ßŅuxēŠ6 <œ•l#afIöMŽJKVé)fČxøÓÅœ—Į6žÓ�܊Đa�žĪļp„FĀDČsžņ PŦÔj–jĨJĨ4ŽÔ čŽÕ­Ž^ÖÎŨūóÏūļ›ÝGøč/ŸËš]ˆV-ðˆLàŸęĻkīŧ`XÐŧŲj„åĢÔJýÔjÕR?Ģ–0īøĩ2ĩj ŋtAųƝÏóõï?‡*Üpé šr#T†f!Ö)ž! úï"†ąĘPōŲ3Úځ:ĐmĩZwų&jū4æÄÛ7ÐÝą Pjþßčķo{’ŽįqŲå—mĪöÔŦįDFâĨ=O‚ĒEE‹ÛŽOÔ@ó4JA•Z0<Ģék5Ä39V,šŦ?˜0úĢý/rĸÃÁáÃŧ]―~Ą&ĘįŠîųș!ėčŸÞÛ?á1 †Î‚_AˆJęEŲģYēÓ°UÂDĖk1RwÂü…{ â2Sŋĩ­ó>AiĶ ‹īōŪëVģŽ·ˆĩ9Å<ŋņîģļũɃŠpÉŲKYØÕJ ‚Đ9äÄŊ=#,hóxû•Ŧčn󰡛ČoØļj-ĪģčņÖ+V1:îӒũč[ÖÎE{ĐÔläĮøÉ€ Œûu•Ó˜ ų|' „ZÅF>Š(=!q…Æ>Š$"M‡BŪ—EÝEÎ:ŸGŸų,Ŋžō`r^æīMdÏšЌ!vî{USŸo‘6’$ŋóĻÓ\–&ĮBJÕcԂP™|įÖúd3mŽYö.Ö,ŋLý‡įÁGĸŠĢĮĻį‚%”?8īō•OrtŌžģöÛ3ʒķÅ\Œ?ļwŪŠKH‹éĸŒý3Ûþøįښ3ĢÍ@ĐŊ›žũrāč&ŽP#&6P§ũXLÕfäÁ]Þ[äĶwœ‰8Đ<qaÐōÞ"ïųéuTj!ųŽž˜Wũ ­ēhA+ŋø–uԂ0šĪÂU,œsðįŊ[CžXÉĨÅÎó"? ļ4ļb$niŦ% +XëjK&uþā\[ŽÄúaé‚7’ņœ=ûĘŦ_įđįŋ A,xËŨ“Ût-&[€ŌÐ|=RpéĶ5ßČŽ5ęwĘí6%BëSČvģ~å/qÚĒë�‹1Y^Û{'>ō7 öŦį6FDųíáu;îˆ3Q ĖÚwBUj‚tæî8ĖBĒóÜ(ÎyķøĖ{g UðĒ=�Ō*”FO[Ģvî1&tŦP­… ßĨßĮųéÏLXî:w­#N@ŠN°Đü >Ę5ōˆĸ <í?š|[#Rø0ž!cZĒčHāĒH‰ŊõÂÎOžâÏŠŌÕv:í-Ŧ”Ąí<õܗ/a€ Ŧ›üYoB3ŪîÁ|r:`ŠYæáŊ\š€Ŋíl<8ŽõiÉ-dCßûYÜs d3-žļãyč‘;/i&ƒ(DųÍß[úz܇đÄâČz†ýCeîÛ1ČŅŅęI1įáąQęo= 8~;Ý/|lÕSãujhŅxmėIÄTdū“͉9@ LU*#ˆ1ŽK'1ô„í'áđ4#pĮB–.ž<*>kŲūëNöî{҉#ŒųZģyTTęŠs…ĶīģhMDĨēū·0ŋvĒ’Ýg­ų v]�(ŲL O<ĸŨ<öÄ?iā'Ų}ŧnųĻ―35TsŧPČ ž ÉeÍ<ïtzĖ™ĀÔs>ŌMՕĨ“XŽJÅŧ?{ŽōF镌ÉīŦ eÞ:z?0&ƒgr_Æ)Ðą)JrRcHHY°QŽ}gq-ųl‚p|ðU^|ųë.wĀÂøúó[ÛĖÐyk�ķ~~4ĮĮƝߜÎįz8oÝĮčîØˆjˆņē<øäŸōôÓßÂZSČŦĀ{nûļ>šþýPU u rÆëļä$?œs `N˜W=€t•8`žƒÚ�žI~�EČ>m?‘ĻũïŅÞ˜ fýĪĄ[Iâ …GŌ?vÚxĐ·ėfĐ.ŋ~aũ-:;pø)ÚG> ~W7ĩEˉýŠq=‰đÍÅX�ؚM‰ˆ �óqÛīä{đðŒÓQ\ƒUՀýsžá;jmRžpðó§_īïÅ[ŋš“ÃUŽ –Xĩīß|[]íyįpžiķk=Ö?Ŧa?Ė9ĀÖĐÅÚų?€Ŋ>Õ°JF2ąÚ•8<„”ûĨIüĸna ӂFZ^†øþ(ųLÏËCī™e’›ąz‰RĄAÉzEÚZN R慗ūNÆ Ķžr=Ą—Mr)âtâļ’ņlˆ é[?ŅlUDDUĮœR1‘đĪļÎķ5\°~ -…%X ĻųĢ<úÔßōâKßsYÕέýĪ*7l}aoĸŽ2-yĄĩ―RāņŒUtðSų_Ó^õ Ïà åeŧ €Č‘sbœĻŒâ‰ĄāĩÖ#MyĸãUČÕíčÐøÁ(ųl/FrLcČ—ęŋŌŲķ.1‡GēïāËdj= ņÛš3"^;ÏĖđ"τɿ1ĐĒ,‡ïúw‚™sŠ–…]įqÎé͐ëA5Ī\9ÆĢO}—^đŨ­crsųĸå―ų3ũŊP!“ÉrڐĮNųžŸ3°ÔTë*Ü A•˜Āú2-d$‹'q2Nĸþ!hĄƒ0ŽÐXKđ2L{‹āy9—ó‘N"v�FŠyčÓŅÚįÚҐ]{îw–CŠ –æ $&(õCsŠ"FĘ ‘œxâí6ŪkdģSģ�kk,]p ŧÎ%Ÿí”ņŌ!|ėóėxõq5’Dŋ`āĢ•ūá‘’XgŋŨ|h)„ô…ŒÔ‹ŧÆË>Ķíũœînþ˜ũūÜņZņß8iˆ1”JXÁ#^“üŒ FčˆĶmúŒŒbqÍī#’uŌZLÃRßXþ“̐ïÂ†!Ŋíy�Ï@ÐRÄoïŠ ĨVĄHĐԘ/L‹$,<Lüū7O.ī5–ũ^“ahä5îyāÏØ·ĸ5&!þOĄüáŅ%ĮG‹*t=: †Ö‚GÆ(6 QëÏO€þ€8œ7Ũ.ؓÔ!ԀĀú'Ĩ―&~t ™ Å|+^i ú ïĮ…ĮŠÎ/0kČp͐_ˆgrnåePãČŅWð*Åvü֎z}UÂh^&;VÍan†ÕÐOŠŦÆ.€#"ōD|ÎĖ&€’É8>ðß―ûvúûÅÄ�|zÝUĨrũpHĸH™GŦ<7TbhŽĘĒžVn|ãFKóx2áïIÂÜ€Jlõ{^}ëÏ;ωŸhhĐķĩS,ZŸĄ‘hó—íéļ€Ē7V Ų\ >aph~�ŲÔZ‹Ô<ë*bËÄüđYhNýũĮÃôBJ‰ĖÚwfũk Đ Ó ›iáĀ‘GøÎ]Ÿb|l(ޝ·ŽðßÄðĮũ?­O|―9z;ģôõäđļŊ‹åóß>@xņ"§ōĮ~ŒØÃ?cįA―éûÕPœz8ąD }õ�𸉀jHĩ―‹Ö㇭Ĩp?­ šĢ%ŋƒ!ćČ!(*ÎĻ–lķÝ­e`p·+ė’ÉRk-FŦ%•Ú ačô:•Đ "h øcAC�0|3Y} ÓRRÆËóÚþŧļëžĸAŲUÚ„1”gúv~ĶŧXāŨ:3īä=Ú †ķ– m… ]­9úĮŠ|ö_ũŠbˆKޓ˜-3đ1f‹þ `ÅåZÍG?Ÿûrā˜āSŦgð&~‚ĄBĨģ ëePŪ 24ķ—îķĩ[–ƒÉ A-Z,ï5áLÍŽWŒĪŧ0<zČ1�/CËGó.^öEĪĒ<€XCĩą€°VŊiåä+ņLžÎ Ûvýũ=ô—Z.—0Nú Đð‘7ŋs莎– m…,íÅ nĄĄ[č ļjSƒåZÔ;‰‚ ÎаsH~Ũ Ŋ ·E(N;ÐynD<z�ąÓOĒˆĀ‰å4ņUŠ­EÂ\ãCđ2ÄąWéj?Ö–åˆŨJ”Ýōš(Ā…C</ŸTāД‡œtó A6‹Mí‰k�ŪDÝė;VÛXú‡—h‹ééKßĸĖŪR"`'IQ!+žžãëÜũð_jđT‰S{Šōkų-ûŊÉ&,qh#ųiDäI&ĪIĪÜ^8’DAæėœpžU⠏įđ;ŅČÛę>[ O`k°&~Ē`…ņŪÚúRЍpŽkW݀HŽķÖՔjƒ.(õ9mˆŒđBšĩĻ)C`ęĄĐŠ!qHš$ĢhzøĢ ĸđß)Îþ?ĒĄþIī„žĐZQ Ų―ũÆÆúĩ\ЈįēÕ^þóG?lrgÕEŊ īš+Ä]uWžCC&ūgIŽŋIm?ŋޜXĒÐüō�’ēāCfîu?ŅP Ü―ÖÁjķFĸĀŦ”+Cr],ė<‡CCO;Ą)õ(@(‚bÜL‹JapkĒØ\zĐ·U·ķÄĪķ› AÕRŪ%ëYRĸčÎÏėŒ%·ŦĨJ0†aȑ#ûTÜ"Ļrŋ7äf}Ö&ۈ§W šúWQņūh§4”:Ŧˆa“*pģ91§()‘f 'BŠsf�Iú$õeÁsMūhâ'•bA>–‘]ÚÉōÅŌÞš’|Ū‡ņZ?&ÚZŨ‘ŧšý"Q2™<jĀz^Ē}Ķg<éVĒ U:%XĻôW ŦÉū ąģāа~.NþąÖÅĸUÕqÔxÄŜĸ á·?rģnwĮf1šSáŧĪöĢ1§ĖJÁÓ9ŒÔ#ÓbŠŪÎ1 āöŒ—[j*ŧ‰&f‚Š0ÞŲMĮ`ČĀčŽ žÂŌEįcðXÜ}!;Ž|'’öDÚĨÁ}7· äōEŽįÚšú.’nþŲáLíŊ TņĮwž“úqčïŨïûë}~,õ’ęĐmØŽÂ?+üÖĮ>Īmīx'fs‹TĻ.ÞN"ÏýŽ!Lįā{]7ƒ˜sĀDoŋcķģx]›h(utSĪĶû?Áš•oĒØē˜%ݰãč}ŪF .' DφĨHËÚږEûā ø!ęeĻ vŪ L)‚Rč–ÐBŽō;ę‡ĸ x*>OÕrOOIįH#øÂMïøŲ‘ąØÁŸ–ļ –@äOh Œ ËÜc:�� �IDAT]sþt‰ėsd�q;'Jr'ŠļNšJĀ^°JX7ŅÄT!Čä(;(–”―GŸĄxÅÖňfYđāRķ―‹Žd°ĘÁ8Ą†U:Û\uŒïCŪULÆų “0 JĢú/’Ôý'ŪýĨ ރōŲŧ?ŧ;„$ļ#|åK+ß0øžo<°›wĪڏFâ7H�6ĩđųįĒ‘”/@ca:m"ÓÂ�ÂúžŽóĮ‰j�Ū1ĸĪLxMĖUŽJmäŠeƃavėŋ‡E 6‘ËYÞ}1ŧĮK˜Čų7V"ÔĨģk%^Æĩãų5ŽÖ·JŦŨ§Ôhfƒ'^ƒLІq �Pö |øŪÏė꟩ŧą�@_”ŋY|þąĸ}Ķį“ä|˜‚ PĸŽŌëÜ­FĄŧ8ô;māÕFžýȉĻȀoį.œæŒũHØ>jš�MĖ jųʅ6žŠeÛūŧذö,î:ãeXÝ{5/üž1(Ģĩ~W}B…\ūHGĮ JåĪæGÄ)uJĄðēžLã”N…û@9 Ü|ŨŸïznŽ]ĸÛŨēÏ<°8ú`mīøtũĩř6"ÞĪøpôŨP§ j>Ôüšš?Ik'SėÎ9oHÅ-܈5$…"fgÍWó5Ã+4*-mTžÆBŸgvüĄ†(†%íé,öQĩ!ąÚ0 Ŧ!!Ęâ…g#ę“ņ}<?H($ķbm4“7dóÞD ‰~‡ýØÝŸŲýÍđÎųwžkāDÚGŠ„˜xŨæ „dęÚCBTéž %ŲŨ&ÎĒ2_+AÆŪuđ·;[°áD1/@|ŨVC·›ÕY~ØDDĻåZĻä*,ÛÞÏš#ofÍŌË1^žÕ ÞČPåAXÅZáØø^ōŲvT-ËzÏåų}wbŊZ%,īÔįbžŧ1ŪĖ\ū=‡É aMĢË Ā8ðÉŧ?ģûNļĸę‘3)žÎG‘ŨŌmŪ‘:ï9O5—lˆ“n31tęĻÄÉÆ<øJT Hë;Ĩw‘mūšŊ_@˜ÉPk)RÉķP5yîéoŊb5Ḭ̄”eįāóĸģũÞq’]åũũœ*WW‡é4==A•GII @$ËílóúąÍâļÞõŪŲ5ķ_óbĖē€ö‹$I F!$(43šœ:WžņœģÜ[ÕÕ==3ÝĢĀčĨóĐéęęÎ=užį<ų-,&[â€Č„Tz7‘Ëö`ë;SĒI(%6i*đ1e(q óž‚T:p…įßø‹ÏŠ;ËžÛ1iC·uúj{’Þ™Z'}!”2Ļ.i� *ÝåÓĪG„čŠAHĸÖųŸK,KÐÆ$q�î‰ŅeUXÅJļYŽ0Īi`ēu‚{ôsãÎ_BÅHy;ÓÞQfZ‡9Ņ8ÄĶ~ ‰trŒô_Huâû؁ČäŅVŌp5Š#Ī“ķÆ1š\%Ky]ŋķK~cŒžÍhcÝøsßýŊūoŪ{Líh>y‡~ĮŠHĐ;Ū<“ĘøJAlĀócj-…ƉÝĀ‚Œ#Đ6âDĮ_ŊÔnŠÕ―ëw)#8“  Ï’S,S0é4|CŌču•Žbe0<·€‰5ByōÄwčÛũķŊ―I†ņž4‚Íp–ÉæAzģ#h)^s{ĶÁ|dĒ26Æ@†ļö| rĄV˜;X'˜ įo ðv$/đņ6þOcĖĮūúgĐPĪ‘ˆÂtSą@6oӟeÍ;øH,~‘6LŨBž<ŌäčT‹Ų–"c|•T<ü@c[R$R‚ī$2ė–�šƒ‹ÚÞs&Ð―Ė)#—Ā2―�iBCgBÚ ĄûģUŽâĖ”eer ΁ïîŧ‹baˆūâđL/c―ēgęAÍíĶ0؏1š|q”ūŌZžÆ$™Ā#v2aäSCÉ&U(ä―Пƒ_›@J,ĀcĖ_ūņ6~ß`ö“ūüđ?Ú}wРī$Š Z'§kÚþũ„IÄqrK?Ō<ôäíĐrxÆgŪaY•’ƒī’ÎĨ C+Â0äŠóŨ`[Ĩ’đĖK†„XrÞ-˜<Ó&5Õ$ĨŌVī⚀ Bv· \Å*–DŲ,EK P>ßÚûO\ŧõēN‘Jv”‘ĘvÏíĒUqĪ‹•)24°ƒÉ`ĨClg’ĘÃ~ssĐþlZÐŧķõÍŅoN%€é5ņä'AApĨ0âĘ4ÓÕųäŨÝíĮ‰h_ĘŲĖÔ<ŠKĶąöBcŒ ŽAAiūōð >ũā đúüAķŽíĄ§ ˜mjæŠ9Ï)ƒc ēŽ ë ū!ŒTŌË u귁îŠ@l‰Ôëy*J€Jđ…–]ĄˆËĀY1�ŅöoŽîþŦ8K ĘåūGKKŽ·ŽņāÁÏsÉšWâØ.ýųuD:âhó #…q4†rÏF*sŧð―*Ų°EÓu1ŌÂũ}\;ƒēģ$]‘Ąž;ksė)ü™u|tmFšęD ğĸÞ,Ž-‘RĒ”"#ĘYŠ9?Ô-:‰BÆvŽņ—ũä%róåÃÄąĶáĮė:SkBĩĨ™nižpūėWÎlą™˜kRÎ[8ö<ĄæÉVģPh-EÖ韹$ĸåÓåYJ�$þÐÕ<€U<#â\ĒO öÕv#åØ6|5BXôä†ĐzSxĘðģú{·2=Œ2 <‚Bc ~āQČé^üY+‡=ė{y–Đ]ģԏīðŦ:\z/}ĮkķĄuÚėU$*€*l[Ē|?Ų1Haóéû°ežŸk/ZÃøXēķ R‚P"Ļ&;1,äIY>{Ėņ†Ŧ‡ČeíDįOĮÐ&fÉBi@īc “œŽ3ÖB:%– ˜č> {Ūīŧî*Î-tūŋķQKtœúÔm°#Ũģõ=w_GHÐąIãÛm!0–dOõ b!8o`'B€mįðU˜TĢPęŲHđyߛDę'3YÂ(Äą2Nڐ$ĨqKX”J%ō—įð·†x3>õMĶvÍĒ"―āđ~ļßcĶĨiúmÃ]1#i. KjĪ”‰hn4‡Ķ<Ū<€'DĖ4 Ž•äËÆJ„?N‡ŠŽ$Ÿ…ž:jņýýģlÍō’ úÉ8ąJŽ~R§ŠF:žL!õ$…Ō#ÓYx–m”XČ4™đ{į_ÍxaBĒzDä)t”d°’gg-Ü'oue>ģ{" öa5BÝÉÔ38–ÁÍB― Í―—íšcH›ūÞmTãą Ņq„-%ąãŌô›;›D §Á8�ķp(õ8ôô—Č–\föTQ‹Zđį]b‰Ņ†HkŽÔÆ1“Õ&c―Ū•čåķmąss/î›âŌ-Cd]›X ”Jrē(å%ķ�aŌ„ĖĖøšlēcm–·ßž‘\ÆNĪ B§;~[‹ĪT{yķĐmY  íépïvp‡\Ýý_ˆB`īÁŸ ŠŅ|LĮĒÕĨBMÔR8E›Ü@iūęΙîĐ•ÆŸ ëq"i,š–Â�žzDŦū‡F°mā’4>>ƘĪ*•ía ēoî ĪHcK‰6 ŋ‰v 97—ØšefH9§ĘĶi‚ R ĨŒĪ˜•2ŠZ­ÉąĐ:Ŋŋj”bÎ!Š ŪípûKÆø>õOžfļ’GJ›Ö'ēŒÁĚ 64žˆđZ@Ö5žýåĢ\wa?^d#ƒÉņmâ25áuImĄ9… ā™`e6�Ó_ī:JÉŠā…“Æē+_Ҝ0Ą&‰oį4ĖÜ5"T Č dp vûãåCâVŒ7tv]iÃŌZkŌ]ĢÞ0ėyúõÐgÛÐXÂę„ý4na€^5Îdó0 FaŒDcŅ Z„:ΐ)`wÕLŪ~ęõЌĄœ“ļ6ØRĢcc'šÔ>Ŋļī/@AœšðÖöeyßO_Ä]ß<ÄOÍAÆh ĘhüPŌ›7\ļū‡+ná’MEžIŋ Zvrچžķ7`)•āŲÖļ—Į�!‘2‰ĪėķķŪŌĸ ‰‰HôÄóĶÂĪ2Ū-—øúڔ―ð/ÆžĐ�åk܊“ęĪ <Ø'―7iz[0T#„IÔÞIw4KĶŽ™Á7?`Cĸ&ēVcTj‹"—&Ŋ#ęÁ FĪV!0REsŅŽcStKØVRo ŲĀÄÂŧ§AŅA+"/dšQm„Ž)KÞņŠq.ÝTƋ’°ÞäŲ ˆ –%yÛÍãüėkƙ­Ã\3&Ԋœk1Øc“qĀÁũaķAĮ–!HįūKėo―§fÏ6ÎÞ @;ZéĖ[éüwšë%ōÚĐŊqšó—æŠâ$qõTũX<ūvXæ™ïąÔq§Ž%TĪ æ"PđhĮ–Ā’Ņ)c${i5į6"b_‘Đ8Ø9k#€ÎžPžÆŸ ŅJ#­Eũ“IčmŌ�ĪÝĄWĢ•îĖiûŒđ5ö‰= –‡ÉYytZ Ė ) „‹š‰Íčų4u!Pą"°lËĄÓģŧ ÆDj(821ƒ(ЊÍ#9nņ—oé é§ý‡ŋe ëÚd„ZƒR0Ũ˜%Ūl ‰eŪ™<)Á›ä'Ėïôíđ€”øÛL }„öïÏÕŠZXĀЗôI,  “úi\/Í1u@ĪĢīIčĒcHŽ‘rvWšHaĄ&Ô>­8)ĩļŧ°ÁĩsëÅ:ÆW^R0b$ŨÎ` ‹ØÄ„* cŧØÂĄÝŽĒ·–›c982ƒ�b(ĸœT‹Œ6ÄM…Ā`eįį@Črô”Kô”+äA3nÐĻՙ›ÃũüDwîzް–0;kađóĄ1‰í NŠŌYžëlŨĄX*PĐT(åĘ8Â%Ô!uŊFuŪJĢ^'Ž–œoU=&ėcôd{ÉY…ôŧHĪžüڟ‹›É3™$LŨxd*ýĖĸäïG#nļ°ĖöÃcķ›Af\ČF6ŽĨŧŒ‚Ð Ģû„ŅÓō1ą˜P‚�-"īeĢÃ―í Æ$‰œäiëð‹ôûΈd`>H§FÂį+Š ,:Õ[Û:㙗šēvŽ›Öū–ĩųõĢq„Ä&‹=ĶZkfOí ĶýɄHD:"oØŅsëŠ-ŽSÉôáĘdÁĖxSjîgmŧkOé°ĢóÅ:æĶuŊc4?@-šãŦĮūĀ‘æAlá,XģvŽWŽÝĘÚüzžŪ?Åŋŋ+tļmĮ[ɒÃS-þåčg9ÔØŨ)]e�KHnÛøéÏ P įøâþOãŸĨë%  #Ž5ēŦíĩPč)2Ô?LŲА“y\é‚ĒUĶÜŨĒ\îáÄĖqjs5Ll‘Ø‹‰[ézóáēåžlērs.ýkčϐ·Šdd[:(SīĘôä+LÕ'™ž™"ō6ü˜Š=KDDÞ.âĘĪÉĻ’Jn�ZxqsB’Ŧ“„zAÛí):G$ņĸĀžå†ĩ|ũcˆH!üVÍÂąķ›Åē,ÛÂFb –)•0:F(…Ž3ĻØ'ö}"ú”PŽ đÍD {H%įEĒ}gDrĄÕŋÍ$ĖâƒÏVÆ�Rý)áĶËó ŪårŲĀÕ\Ü{uUå+ßËLušĒSfžŊđāM4ã?œyˆĸoßĮ8ÐØKl"vT.æ5ënįĒūËčsûųîÞûŲûÔn|í3”ᒝWpËØmnîįŧSßäó‡ïdŌ?Ž-”Q\Ü—ũ_ÓËyåmü͞ģŋą'e"_†ËŪáüĘĨôNũóĀô78Q=Îãß}’ũūņ?ĢĒ’éã#ŧþ_yHaáŦ?ąņ§yËĶ·Ģ”æOŋü>Ķž ŽđlÉčyƒ1ĻP/üūä+Yú{(Z%ŠV‰’ÓCÖĘ_XXĢéëéGKEcķy’2šx HŽĨŸßÎZTú*ôd+äe‘§—žĮ–‘ i‰&"•Ņ2ffrĶÓÆ ’ļĢ MÕ 4!y;OÞ*Ķ6)I9SAJI3n0ĄN~NHÛfsMØōfa⨧„ÕTÄąÁ B2–Äq3XķƒådÉJ WhŒeŧ­$N,°ēY"x>ūįá=ýO"v]üą[MŦģĢģ ĀBk?€4 mgés,; ãlëg‚eg ō˜ &ļįā'Ų?ą[đd‚</Úûb~ûõĸk_ĘĄæ>·öq^ņÞĩýŨY_<‰Æ1~î#?ÃoQ!@K…ëgqŋ’įÕ7ž–Ÿ―þĖ’· |bï_Јë~Ü"Ō!-Õ䐷ËúŊĶd—ųßOý {ëO&ÖcOģŊ<�"“Ôfē‹’/ïû ō.É{Þø;\1p-ûĮöpũÁĀWMŪū‰Ũ­{ ß|ýŋņÅŸĶēИē”sĖ mN[N™‘äōy\‘!#ģė"e§‡ž]DA+j`Ð:Ā•.ŲlŽ  |uv Q 2Å Y'‡+3äí<EŧHÉ­I%:KXD&ÂS-ēvŽLÉÅŊ%ƒÛ7Ú`Ų’X‡ÔĢ?ö(8EēV)$%§Œ-mjŅÜ ˜Ddcæ§käÍFJhÂ―ŸAŽņ”GA†”­�åfˆÜEË%Äv?S ŒJ‘Å EĐ~āSoÕhîĸ”‘ÔĮo5ĩÅL�ąp·ï0Úž ŽÜÐąĒŠeNî"š‚üp†b)‡0Į-ę•ųúŒJ)žĻÅŋßø3Ž-ŒãĮ->ø/ÄîĘ(nΑĩ3ĐOŲ‡ î|ôŲ1zŨm~W­đžïM‡Ķî[0ķFŦÁîy?w\óSžôž›ųĩ ĸ+xüũyēúXš{t‰„ĖĮ9ôn*ņĩ―Ÿ§|_‰w^ũËžjíŲ]{‚i‚·n|=n/ĸöGøÜĢwąæÂDŧåõ9iīÆr­ÎĘ2Ú`đKØØŌÆ––°ÉXYJNHT(WđØÂF KXÉ5Îf'JÓÜ,ËÂ6Nz?Įʐ·ōė"ļgy8"ų›VRã//žNGtO~F&ĪÍáÅ-ŠNWšäíķpĻFģ(/Ûu–ÖŧN$‡”›n71?}§ðĪFôD!k|ßqÐų<―*f@Y„™"ģų2UŊIOÐdĖr0™-ŊÎtÐ<øJɉuŊ3ÕÅL`ÁXšÕ„ö1œ|Ü3Åē݀@ŌÂ9ÕĄÄrŒŪ/ ceŲ\ŲNOķBŅ.ģąž•›G^ĀãĮ~ČWŋ—žbĢųu�(49_§ēŪī`wĩmÉÝÎ|ƒëx·ė ‹Å=˕ýuþāŪĸŒšEsã7ó[—žŸ?}ėŋðÐôýK?, ãĘotđį‘Oąū#·œ+·­ŋƒēSa]q_zôģ|ä_?ČØKÖ@š‰vŽĐĸÉļ A’ĨFĐÔōnÐaR#f€@tĘmcL*@§;Ý[Ôr!HiRƒjŧ—6ŠHGøĘG™ˆ >Ûc3&ŅáY8·]Âhb63á$Y™Ĩā”q,‡~9@=ŪuÖĖž`i MXGB&“\?JMŽ“Üúԟ4&VDžĮԉϋéV“5b, ĻšĒla3ä8TËýïéãH―ʀŨdļč°ķÓh68ôļ[ԑėÛðzÓb‘M cŸ’‰MĨÍ~Ī^�čXÁÅǧƒIsž!q‰ôgŨðģ[~5ý=éęZ fųŧþŠ;ŋüOd· å,:m<* ö ãĐæÉ>\“Ÿ*―‰Ŧ&61a€9y\đJ–Ė6øýŧ~“HÅžô‚—óދßĮ‡w―Ÿ‡ĶŋĩĀ0ĸdËw“æŊūōaÆĘãėŧ €ï~€ßûÔ{ŋqĻŧöür§óyƒÁ -҉á@€ŽcLdˆt@d"āĮMŲčšŊ<ZŠIhBBë˜8LZyÛîĘ*kmˆžĮD&"Ô!ōiÅM,ahP…īâņ;ãRJĢMķb/O8iåuYt}åã+ŸŽ•#g(Û=XŌFcP:FÅŌãÂJĮ|ýŦÎÛŒŅšƒöĢSþ384ÂeW^ÄČkĩQŠ !ĖĞēÖų-օ>Góeĩfdę8cÅ2‡ĘĶK=4ks ų-† FcŸiŋÉqĨ=ðiqPDėŋÍċĮÓöstŧПmU`Ų @ Nļ<˅.„äDp„?ø§ßcĸҧŅ(&“ÔÕéßTaėę!ÜĒËÜ܏O>Âāø–īxÕØ­Üuā(ĢN"ė>w€G^öN=ɞ™'ąd;jlFēå Ε6ŋ{įŊņõÛžōÂŨóŪïážĸˆbéNĮÆܜCcã ũîū‡‹Ævðá‡þˆu/]Ó!þsĪÝÂ+ĶĐ"C‡øą‡+3ØąûÄ-‚P4ã-ÕÄSaėĢ#ƒ•GŽl;ŌÉNE ?öðeÂld$;î_Â‹[4ã:-åáÅ-TĪ0Š$)Đû~§’>EÛŽ ūōðT WfčË Pq*øÚ#&îØ~ãûßû>Ãđ§Éd2ÜĸŊĄ”b°ŊžÝOá>ĢĢc|ïÁoó֟ü,ËÂÃæ7›C‡î'ÅÖÚ,"“%ʗŊÏqßĒVā@o?ģq‰fm–ąH2nŧŽ<emģþĀgÄcJplÓë^J €īŲōĶ{ŲXAcSž_–!p^nŒcC!2áØ6› kqË.Ī™h:֔{J|čkLĸƒėŋ’Û6üŒ1<<óžļ…6ŨĘПYÃÆßš ›ĮđûOōdë1JƒEĒ%fÁ(ƒ“uXý0ĸýsŋÍdu‚Ÿļú§xÃú;˜ gN2ÞĩŸÍhCķeÍxįoãĮylf†$’ė3ú-‚óŌīeˆZ‘/hXõŽí"ēCė8)Ŋ›ˆ@y‰n5ükܜ―d,Åé`„AˆåÅøŪG]Ö”‰Ét‚hí'L Š„>qK!-ÜŊ#Îwt›Ó<7‚H‡Ôãpe†Œ•Å–6–īP"ĐsŲfāũÜõI”RÜōʗsþųpŨgū€‚_s5õz0Š9|ðiš-Gūĸ=.đüJÚëzÝL<úôb0 ŲRÁd ŒÃČė †óeöËLũpÔŦÓĻŨ“’ ‡–ïq8 éš―îOŪĐjC'û/ {ZĻöœþ𗏕;.ą@%8ΐä3y� ™"Ĩþ"ĨL1аjĀóqÚm1_•›üÞį~7n~+ŨœĸÞrÞOņÆóîāhó ąŽ)g*ŒšãóóÅ?Ë―ÞÃ#áƒôoéIlēnGšä3ų4ę,‰e°,‹íŨoæãßý'&&yį-?Ïp)iA•u“ā!‰ ŧóŦ6šN ÓîîįôîŸB đ€ˆŽœEP‰›1ūHžą‰ðTG&ÏĻīÂW-üØĢåyI‘”8Ū‹#ė­2#Ae ÍŲA#Đį% #]„LPĻžļ…ķ*Ôd{\év<NŌjEóގËðuĢa zLÖI{]?z­5_üü(ä‹XŽ Zãû-įm?ŸcĮŽpĮ[oãÛ=Ė…_Šå:IĖr:œM·™‰ƒũŠŲ°ÁVŊ†‰CČåm*.UG‹―Î 3y5Ŧø^“!đÜv9úôĮ#ûŋŅėiLj#čėiÏâ~ģėl@‰ėē$‹jđî.?ðųëÏ|„rÐOËŠ312‘DĢĩí:‹ŋK•ÁMÛãĢŧþŒ/ïúrˆūÜ�Ĩ54BŠ5&ŽĢLFĮðĘu†ķ tÂJsnŽŋųüĮøLøY"+ >\ĮÉv5–4pÞUëđï‰{9üņŽ+nÄhC=7Kc°~R‡[Ø|ãû_cÏW�°h7ēôukx–!…Ä•™Îũ%l— ð>Q#FŦQ6ÂqZõΘĪânčE(? "Ęģi–ÝʙžČ |Û'öÆĻ(ÆÏøX–Õ‘č•R„AHė+T AŠ…ķ˜ũ`Ä:Zq[zA' S/–21aÄH††ŅJÆ1a#I“0‚lŪ@o?ž/äˆãm ŽՎÔK/5þJÃc{þYĖDūŽqry„ŅlŽý•ö:AąB=“'jÔņl’ŅÐg ôXsð.1š‰øöð›MÔvHƒāģŲ$dE6€NĖöwā™ĄDĖ.ũa"c9eYÂÆ:í.bzóä+9š33ėŪCi…™ĶĢQȒÄÍ9ä{ģô“Üō4cQbģĮ}„ØÄHKŌc•°ą. #Û8~l?Ã'p—’(œ$ÝXX·ąŨMŽ+Û%2ļįžÕ ˆTšéD(ĻôV˜ &P‘Æ4ĘŨ„vˆ°9SëĪÎū‰ĮrlJåŽå,ŧād7,ŨĒX.P›­Ą}Mj"G!ŽÄĢ”Ī$ƒŽ“­N+Mïš2vĶs ÓŪŋŸ(ûË~zDĒ2īCŲŧWn·ÛV™äĩるâņ]ŧ@ąX`vō8?x Æš‘!þúŊĸšWžúv\Į™ßS*íJC`ÓmæØūO‰šÖÔ[MŪÍh, gOPéæ1Û&rĻô1™ÉÖgŲ$āRËfŨ 'p=xøÂøëLõYÏNą m�l‹“bŲn@i *C=ŨaĮŠyšsÓE!„ Ø—§ØŸO˜OWXe'ēÍÐĐdÓYãÚP*wˆOvÓĨcĐ —€bĮļtŌøŌKĘy =‘ûJ�� �IDATđäĢs[퟇ItpmŽ•éØ+l)é`ęød'7_-* ÛŪw/-Iß@Ū›IėŲ ĨX.Ŧ˜V­Z Ã…†“ÞÔMe —bąī`“Ņi=€• Ų+ä)7Ŧn āõoüwXķÍôä â 2™<Būųíû9zô�3Ós  ģaë\|éeI<JŨ:1]1üøø7ūÉ4ŸūS|Į€ï·xĨ6ļZģeō(W މH)5Ō‘ų’Ģ2yqpvĒ5ÞŠĮ[ e[u5š5û?#>=þ:spEūLŽČ0Ÿ °<āIX”åuæv―Ũi€N7'ė"Â3‰ĨâVãyB§_·ëļŦŠësžųŽÃ€2Š,Ëē;LĀu]rcyĶf'hT[,îy+æčĀm3Å+ĐTĻQ‰nŠÛKF ŒRÍÎ13=‹Q‹ˆŲ$’BßĀŠŲ…ÄoÐD‘ŸŠËŸôÅŦôtį^þĒŦ8tā O<öĮŽÆr]Ëbbb‚í_ÎÐā0ųB›ķRé-&ã2†IMūvđ°ö+LÛlūÝĖÍCO~R˜ĀãÕÆvLąŪ^ßûˆŽ0––íČÁq{jvbŠMώzčmÕųVüĮƒŸwm~ƒyüŲÞwV–,æīÅĘåžģėÏWzåŋŌq,įüņ§cLē'C Ō]`K›ĩkÖõE4šuĒ(Â`p—|!OÖĘÍÛzšC0Œ!Ö1^ėé Ó5J %]rVG:K2æþŌúJý4Zu‚ Ö1ķīÉæēäģ$ÝÜ݃§B"/o͝4bÁÏSĄŲ˜ãáï}‡c‡ũ1ķv”6ąũ駙˜8FréWãåÞ ÍVDuvi9lï§Ú„Xk‚0ÂąŽ;ĖŽmãīždގ9Aß ÓߛûzŋúÜ" „‰·Ni]6īa|Ž%°…ķX;äeōĮ§íYŸ+ÅŨM~ĮÜąũNņÏö ‡W<m,1uË3 Iû€F`K;‘Vņ‚Ō1‘ŽČŲų“ӑ.ųÞâB­'ĩũĖC`Œ&Ō!~œTݰĪĩ0ļÆ(ZqKÚė"ŽtSÂ]ļõĨŪ]þĪû%§øÚ#Ō~ĮCąRXi(ģÁt…~ŸŒRĐÄEï$Ÿ+€ _·Ž#ĮŽS(õðôî'øČw32:ĖÔÔRhJÅŲ\–ŋ;zŒwŋį7ųŦ|ˆŒk391Áe;ŊāîO~‚·ŋã]ü埐ĄĄTÓðĸøþWŒþjÁũČecšgŽÍȁą-Į°ĪĀ’[”ú777râøÓcjWáą+Žļ#þZÖ<}vLœĖΊ H[G‹Â|WqnÃ`ðâ&R$ĩÚDą­h~į4"áÅÍ$qĘ0PsŌ%’―VkE=œ#“Fåđ–ƒāÔÞĢn”QøĘĢÕÏNål?ˆHžeIS Å";.<ۑėŲĩ‹X+4‚ĄēRóé{>MuvÂqųڗūČÐÚQō‡ ÎŋˆÝŧũphïnv^v1w}ýë8Bqčā!ūý­oÐ[vų‡ŋý…RƒÃĢĖMĸÆWnŋð}åĀĢWH*ÕéÉņLq(lh#$Ø,‘-–ÄÚm7OŸØû­Ģ^„ĄĮžýUӛâŋīžxdå“q2–'O-QY§“WݙāÕŨđþjo­ļI#Šę�KXØÂÆvg§ī°:ŸÛÂFE+nR įðcNüÃēî' īO-šĢ5Q&î\·sŋŪWûóHG4Ģ:ļÖņ@ÕsCũ›ÓB)ČļđlZtF'mķēŲcëÆŲže;/đņ&J…;w^J1—̧ÜÃ5/ūŠc‡“/æąüÔ;đZÍįmĒ\ęáðĄĢŒŽŽēeóyx­&į_ī“§­ŋŧ ɃA‹™8ŌÞĖą‚VÜ'­b^ˆ\ވ\ō'Ũë ođđVėۜq\ķX— xįĸĨvlZÖCËb�KņëŠ|KÏ=jásÁ,­ļ™ÄÉ#ą…ƒ#]$ ÖĢ*Õp–FTC›øėb�HT‡fÜ`.˜ĨV uˆÄÂŽpXhT^ŠģTÃY<•„%?+0gŽØlgæ)ĨR’Ëe&Q] …<ĢkŨąuÛv‚ĀãÖ[_eÛØķÍšuëÂŨqņ|Ÿ—ūü&Įa`` qņäSOŅ70ˆeÁÚá5K%lËFÃߨúĖ­š37q`ĘlIXų‚vVëŠ-Dą`g{ĄM7ĩJ;rŽÃF)Ø žûÕ›zŸéīœuMĀBė*N !’h?O7 Ō"'RĖŧËÚŲzĘĻųčŪĸÏą‰hš_ĩ]eÜڙ‚Ýmč۟?īk4št―žnÍZiÍĸL&ÃÜÜũ}ãD1ÄQÄýũßOĪÅR™ ›Îãþûï§Õl0=5͗îýķ^r5'&&8~ôoþПcrrŠZĩÆMc[ˆĒGLTë ­%Ÿ/ō­ïÞĮ#Öï7oŲü;2šĸĖ4fŒûŦĶÔ·ÎÃHĄü‡ë)ŽĖöœ›+0īéUŠÃē™Úŧ> ąŒÅïŋōLæį0€/„PØU,Īf]’‘ŲMt'ũė~ĮÆ$ĐĮpRÜsvÏŨ<Ģ$ņĶŌ;ĀE—]AĢZĨX*áļ.ӓ“Š% ÅŨÞðr†ļėę—âû>}}―lÚš•Wŋá-x­xí›~…lÝv?óŪ_&_,x>ŲB‘ įm%ŽB2đ<æāïė5’PŠwûZPŸ9Ü[čŲ(-Û5vv§Tĸ~֕oÍY™íđLĄ`†·ž1:äĸMIÕ'ÆâˆkÏß3úž―;ŽĸáŲÎÉ3f�ŦxaãGÁĀÏÕMC˜$Ô6Ÿ/°cÛVtŧlÜī1í‡iģ~|Œĩ#ÃI D9&-›Áë0F!€nļ!éų'_ ‚N!,ú_|B Ž+ĩÞs§üŒ1ÜĶ…ÚÔþžĘÐeŠP)‡Ōݜē'kĸf*?—îy™|OŲ n~ģ9úøGû1-GžeócÃ?xjĮņ{!ĩvŽ VjY ā4›Ã*VņĸĖ4âNÞ?€íŌōIėÐqj`īæ‹uÓ SFØh?FJ‰ŅmRÎaÁ$ Mí°l‹i4Ÿ0š?ôkqģ:]ČũŽ—Ōr]ļķ7˜ŧŧÖ?e{ߙCYýkŊŅ~ý˜žØũéaĐZó[Ûv ?ļkĮŅéîČÄåāėʂŊŠþŦxâT HÚøėc“§Ü=—ĻÚĩ€–C§ôšŊ;ŠŪ<0zŋ1ė6pYmrÛ7šSIËÁÎ^î„ânĢĢ#„õ{TķōÓYĢĢÛï0™=Ē1õÃ!cÚð_īæįےÆrąėîĀݕ‹­;O|ÎĀ\Å*#5þ™.cāRxč`íyØ<ېDóŊŪjÍ<aB_gœlNI;‡åŽ+ĻčQÞw‰3;pJŊq„īXé/ņÄŋýŠĢumĀnŲņÔčëžÜvėžįTč~ŋJüŦ8ŨŅŪÔ&|mô)ŨíڊûüŪ _āéð–ĐM"˜ °YĪÐ7.RXđ‹Ĩ )ƒ!ŽVZŲ‹Ĩt·Ę\i­Ýþ6ö=ôAWH6xĮķ'Gū5―srúĖwL°ēd %XËđØgŦčFgį§WÖũgŸĮQ 1ÍãÆð0TŸ~ŠÁ/ķ„°ą2Køœ-čhš°v·Čöý#Æo`ęĀ—E}ę ĪÅ+á5Āß,ũž/ŒŠŦXÅģ€3mVŪ'―.xrôEK}þ\žvo?ķÁ“B€W} ÛBGHg\ Æ ČĻyŸˆƒGÆi9bėü;H 8g€·ö=žftđsēĘ�VąŠíPéökóŪ‘{€›þ\ū€Ý đŸ8­q!DiĪï“ą†s’z†…ލôŪ―<éC*xĨ0\šÜg^e�ŦXÅ"l{j8ŧų‰á/cx­§Ļ!þAöU*"ŋš~č ‘ĮĐā�ąũm@`ŧ%7Ü$:KxßėëYÎý–gHŊÜ.ŸdüiÕļŠ:: BŲúøð°‚OxŲóŊ”Ö?4Ž ZÐ?ˆBöu ÐīŦ‡sĸˆ“ŋä+)nĨ>ųÂâßÃïÕ3Ýsy@@œÆ…·ŧÆÄ&FéĨkéŊbį,“NcĢ…Hˆß€y[4<ü øG7,(ПŸHļ”°g_[3é_,„ÕsŌą*<Hė;{™ü•áËĻO>Õn€ôæâƒƒï3æūųBoKô_Ag ųÎî]ĸ\ ë\Å*æ‘ä‹ītŊŅóŽĀ6ņ_Øįíøþ~>.7“–R\QLÝ3G*hû$…ÆQq+šDČ%<ÂڝØđŦRRė݊›/ŠČo€ámBðþØÕ~Ö'ßĸƓ.ąLāėhÏ. ĶS—ąąā€…ĮŸƒJdhWģ6šöD 6pAŊg―ųž™ë=…­u°Ũå2p­ešĘž…Đn·Ę�0:dū°ÁŌՐTð&>öō•õä{60ŨziąŲĀÖ(Ž9Ýļ–§Ž2€įâM k æ{1h­Ð‘F+“Ž–īzē ,t’’mĪaۉ‹(]Vi•āŊøŪtāôđā+É5à óæófäP^É ‚bĨËʈfu­5B@þĖdōlˆŒ # V’4ÔÕp‰øÞ$Ó9&j~·įvÜÜ…žqŠ'M–žIÅę�i/äīėÆ Ŧxną˜āĨ”ÄqDP !Ąĩ*P­Ûâb§t7Ðu>)ą2;gãl2y—LŲÁvėĪSogŸųqÁBiĻKn^7Ã6Ή’Ŧ #(”Ëlšü]bæð4ŦĸÚ9ķ”Yžðl0Um(�éĪ=ŒĒSAė}·ō�ä+p2Y>^ó{]ýšąš|Ž@Ęī?^-Ī1ÝĒ5•vŅŅ&e'%øåSm7C õ3Ûy‹|_–šųž\įÚ?ę‚IĖčū’Üūi†W Βą JCū§Âæ+‘Ōā Ėýþ‚ÓvŦ/ëō+kXē4ķ† Œ7ӓ2iQKÁÐņqt|ËJÔ�;ÓCøÃåqþÍđŸyô^OXKŦgŲ°ëģŊm䙡=Ubáï‘1wĪNó„Gė/ôŽ,žïi—” FUA5dv_ +cQĘR-‘-Ė7 Y0ū8OXÐ[@ė§Ų12ƒ•>oūÔËÖŋ—LéĒ%ė‡ŋķũtĶ–Î‡– –bĪ˧‘?^Ëļ2@Ķ0žŦÐzî”įãĢý§…AōĨuļ™2' TĀuvķðĨüÆåKžŧl7āÂrJIþģYa—–[īéJ@Į ­ ͏đƒužéiuéûK]â, 1 *í.šķ ÕMæ4ɔm*ã%ō}9,[&―„ioš/`$%Á4Ąc.z„sOvÅä{Ö°ýÚßÅÉmF뎓uåX-.Žūøú ‰ŸąŅhĪR—…°’‚"+Ā6 '€Lq�c"L|âÔ߃ ŅŅā:Ī=H&_FDšdŪzäw_ōĨSÝleÉ@K,Î/cŌY M@Œ2D~DcēEõPƒļĨ’Š0ÎÉ:f§_ÓE ,["eRA·SÃ/Yãi?6*)ikīšo―äOCX‹9ņÃė‚MÏš…þNÎIÓ \E0pŅôĢė˜ŲÝ6ŦQYģ‘ÍWĸ&–;–ĸ)°yí@į―čz#š>é-ķ|ũ0ķeaĪ…•-a—Ũ°)āÏGŊZkÛА)ĮqRŋ{„ŽŽœæ#t|đō0Ō’ĻX,―õ§Xĩ<‡č6ėųõæĪGíH“ļ'åĨŽ…íÅÛR–ŅIæš[p(ļE2—œ“'›Ë)đäÜ<Y™ÅĩēĐÁ0‘*tÚbÛŨ>^Ø$ŽGø^€5ņ[!-ŋIā…%’ûwĮ ‹ĪŽōSOTĐ”G‹úģd{2IhZ.įÃôA I.öļlv[fŸN:y X3ū“ —ý2Ō€īÚņRR–4čņF$] Iüžóqô†vŨÞ$Ļč­:8X’ÝøũËïĮļXĀÅÚ@ąoŧiE"ĢĶŅ:Bžbڍ1čxˆ1F’ɏ"ĪÁ…§ŧå BWą\īCąĪ%‰‚ˆÚŅ&c-‚z”\á·­ņJ)Œe(WJôõõŅWę§Ü[ǜ­ïÉRȔČČlB„]E-š…ÓN ,Ņ|Č„Ôƒ^ݧ֊QŦU™eŠ:EmšŽ0KZvaB ,)Pžffw•ÆņĨá<Ĩ‘<nÁM:ŋĪcPBRŽ[žxú)Îkœ „„áÍ70vþ;V/`ÐņqTļ'ĸē—Œ[\ûÕ-ĸoïM{~q֐–O.”] ÁÐé”%áfRēíŨîæÉ?zÇ{ßßaób`@+ό\ž ōSWþSžvc<ŒŠ"ė na BÚ@�0|šûŪJ�Ï2ÚÄ!,Aýx“đƒu‚jˆŅtvÝ6īÖ(Ĩp‹Ömbtx”ūb?ųbžb͈̗ ”!ŒƒíĀíą”í =}‚‘þQ ÏoQoÕĐŨkš8ÄĄÃ‡ðf}lĮNÚǧԀ‚Ļ3ótÖŒOÏš"ĨĄBRdã\fÆK‹þ°Î“ēÖŊŌ†ĩÛ^Íð–;vĻh?ÁĖÎ8Náæ—ĀÁüÐmTũ]4Ņĸ ܇áÎĩ՝HĪ“ŋ”Č”;ŽD8‰df„DGþē†,b6o2ܜkJýÛDŌd5&ö>ģÆDݘ nĶ„V:X_ĸŨŋĐĨN[q{ðUœÆĪ(e˜Ú5CsŌGŠCPãī!Š"ʃEvl;Ÿ C›Čd2dÜ ŲiƒŪ8―GāLčHĖŦBrnž|ĶĀ`ïcÃëļdk‹ÃӇØõÄ.f'įp,ga'Ÿ ësxģ›+H[ž›qÆI›Qo†WL>BoÔ",[0vÁ­ ũV„ˁpQÁcxSĸOā8K6Ú1‘īfP ŪňŨ ÁŊŊüŌWīŅpžũĄý"―gŧgĐc JÅ2aŦž˜W䙓 ŋņQ,cļIvhã/N͜üQ7ˆýĮ–ņÜÆx�Xn1 "JĘ! €gČ�LWM@ýcDrzīÅqiIüFĀäsÉŪoĖBÂ7Ĩ…JžŦw^ÅĶĄÍ8–l/“tņ}ŪvÖÅŌ‡‚Œ“%ãdé)VØ:ķ}ĮŸæáï=LŦæ#åBUE+Míp“ 2|a?NÎ9·$”ø7ī&ļqōQŠq€&ų^6\z;þCrœp‰―ðĶþĢę)ą,ų B€HĪ@DIQ1nI뎃Å_ųģ-þþĖĮ�ØŒTØ{ÄĮ‘˙#šß0Ī…é_wƒ°œ ˆZßgjŠlˆAû€Áē; iTNuÞēë’E“ÔT[E7C4Ķ›ûþþ\Ðųž#ƒĩļäʋyÓ-·ģcė2NfžøŧŪõ|yÁï2V–cpûëßĖÅW]€å$cëĻ5é+ĻEz`‚VÕ_2Aėy…1Ŧū’-cžbâŠq€,Ûbó•w°fÓO§Ķ,‡ļų5žÉũ2ļĶBaKKX"aÔRZ!-)ޜ%­ũČĸúcG‹ŋđÞG€-āžĩ}haa,a;l{ïgOyýû>Š-4ï60f4Ķwd‡Čũl aH’°ö™ßmģEûĪô“SnôËë Ø.Ķ(VIŋÝŪšú„ĮņĖ$Ū―Q$ĮYķÅКAnyÕŦđæ‚kqíĖŽ`NķČŊÆ1.Ũl{ ·Þz+CcƒXöž-Ē}ŽŽ5GœĪ6ؘŊņ#x&ÓviÃÖÆ1^6õ(b�;ãēíšĸ›ūņŸDŦ! l܋7ýŒn-kw–ČĪ…™L~ZÂÆ•Ūp„#\áKXįkĢ:Xø­G` ļp]?ŲlaYa#åiŠ ŪAðk�ķ‹X3~#™ü(`{ũĢãcËįB(:Īo�ý ĀžĮóõÎt/úú‰&'ÆÄó"B0ŠbO‘Kv^Ėkn|-ƒ…!Ē8JēŌÎąyڌ R·—Ũūôõ\~Íez Jj·ĮâģĖĐĸh˜@[õ2šm#žlęQō*FČzØ~íŧ)ߊQ ëŸ#˜ý_Ë&~Hr,a'MLĨģ ŦąBXŌ’vŋōû2ŋóŠŒcQÎ[\ģ}œ ív@sþo‹sßGðí}Īl'=ÃWĪĨПXá„tN|‚IÜKaĩ$ØY`^ï5T6˜x|6ÕÓRâŨ-4cãc\ýu\đã*L˜4ãâ,ûÜ?ÏB Iž­ŋ”—ŋô匭CXó2ÚŠÏĖSUfՒVZÏ0#’J™ÕrÃÔļZ(ũēåš_ĨÐw=FÕî"˜ý+ŒöWīĢ $ŽH +mĒjaÉĪĨšÄ2ķ°%Ž!)äûŸīgŧІ—_0ĆĄ ‘Íøüßú;~ó^�îû(#BðũÆ0 ˜BOI Ÿũj,w„CØø":Øŧ|F…"‘4ī įĨSFŌ8Õy ÏâK{!,äg&ynaÁėÁ:ÓOÎ%ŸĨߔVá.žøBŪŋæFĘcQpÚ0ßÝÞĖŨ·owï]ęĨÆýŒˆąíîÓZąĶ8Čõ/šž .š�ÛMZyÓķsĀėÞ:skóĖņđätJüWÍîæÅ3Oaƒ2Ð7|›Ūøer•ËĀ(ŒQs'Ļþ-ÆÄ+§Ĩó/i%Œ@&îRKXXŌũX—ÚÂ~ïÖíą0ÜvÕÆŠąI |ędūîû(cBðĀK�ãļˆĩÛ_IūïšdóˆöÖî\™ãM8Y�@Eĩސ1™=Õig 0 gų15JG0ģŊÆėÓĩ@ŌW>Spļ|įl]ŋ KX(?#ÂOrØuWĸ9+]ēVŨĘāgA›m"Ö1‘ ”§=īŌH!BĶ=éÄēĮÔÞŅ•QäÜ—íļœrą‡ï<p?*ԝkm˜ÛŨĀr%å‘âsę5ÖB`kōSąĨqhýcÛYņŧp ›ŌðåúD­K™ôŠoe„Â’6V•ČoĐŨų'„H#“Š· ÄgâÎÁĒÃmWóÕGģĒÁœįó7[_―U>ÜÜÖĶÆķŋ˜Þą·$iڄÕŋĮÄĮŌĩĩĖ‘ !óIð—_Į$ Ā ępôT§u@ĒМrH―Ééoæï./THKP=Údn­Ė‚?WvđęĘŦŲ4ēyQTÞĘ`LԊM-úÝAú2Tœ>ŠNŨrSĒ—KĻЄ@bƒˆĒ7ĻEUfÃiĶý Zq#qnĨ;ۙÐyF­°„ÍÖņmōūōoĸ‚æ=Zi͟ŠađIĘņs… §nž|”qošÁĀšóYŋóÝØî‰6-ü‰ĸ† ~pķďQˆZ?”0š’ŧ!SŨaûgÂ^EēÞđŨ~ßW7Dïí/fļõōõüðÐ olėļÁŸ;Mšå―áÂËĚÍŋä�ATû4qó[+#~@ˆ,BV�AčMĢ“zCíĩwœšīဓEGÞé&ƒvsÅNzʏRāUæöÕÓÝ/1†L1ÕW]ɖámĐø―ēļųö\jĢČZ9†scŽÍŊĢ/ģĶ#rŠvOŲŪæēSa(·cĶԈkœðŽrĪu€Ų`:YšË ÚŌ€‚ąuÜōŠWóđ/}u1‰X3ųÄĢ—ũcgígM$nūRėsÓä#Ž æ:Ä?ļþB6\þÛQ�$ZÍāMþ>:Ü―bBZŒąęîOĸųõō?Ūúž_•BþŽ@:BĪ„ž~ŧÉü%ĢB ‘7 ÄæÃsáwÛąTolîøI ôšÄ2o6^ú"1ļų?!„Hbï~ÂÚ?cĖЊœŒöó {M"CÐ:ŠŅÉ5„ā‰Óßa�‡>ý~FnųųÓÞlÉÖ`įĻ5ûđ€Š4ģûę„iL?"!\Įĩđtį%ė―(įl΀n‹š’ŠÛĮæōv†scØÂĶ;�<ųĒÏ.77ąWJĪ”X@ŊÕOÅíc{ÏEÔĒ9žŪïæpsQšð[ú^kÞË1Ø3Â+_þ*ūøĨ/vô[�å+ĶvUšļŸvBËYŊ“ÔاÞĻÉ˧cĖŊv]#›/gýÎĸœVĖčøÞÔĸD{įŸý,a�itžã‹[Z'xũïŊÝņĄïIøKþ?í―yœ%Ũ]ØûýŠšKïËôLÏūhīĖh·dIķ%/ė<ƒƒË#/ ð^€°ÄŒ „<„gžCĀr @xÁ`ÛÛ`ËZŽ‘„KšŅ2û>ÓÝÓËÝk9ŋüqŠęÖíîY5’-ĐóđsûÞ[§ęÔĐóÛ7Ô%aeÏ#ÍĖ”LBPø‘‘ūŸōš―2b”"|Ŋš“Šņ+nýG2šéGŌ+ Iø<íŲßÃ& —0į�ãŊÃ=Cŧ~M+vŦōôđFöØ�Œ9›8øúâôEčöBPjĮ4§Ú]o‹*Æ3\―ãjnūōV:öE#~ɔYU^ÍöĄk˜ĻŽí6ŊĖ‘ß!―ˆÁŃ6•ËXËžƒÁ7ßÎΑ9P{Cý4ãV“s"Ū“,ëÆÖsįwōĀWȍĄb„æT›ųc5F7―&ĄđŸUXãÓ{ØÐ^ 0FØpÍÛXÝûH’AHÂ―īÏü§Ë‚üų}ciMĀÎĄųđþMĸï‡Dä7ÅȀˆĻq֕îŅbÄŨzâ…�� �IDAT/éžgįþO4ʇTĻd·R–­7ý�ïLï’ð�í鏍N^ڜĨ„ 6Š&ģīë ĪÅMáás í!�Į>ũ;ŒÜģeéQŊ_üÏ7og!dáhĢëîKóï7]ą‘;nz3a§sAø™ĩĐŪzUÆ+kØ>x •5XUÉj/ãŸįŽŌM–‚4øĮ”Ø1r›Ūā@ýEŽ73ÎĢjó°Ō%gJŨfûúíĖÝ2Ë3ĸl—xÂė‹5Š#*CĨ<á‚!åü ŽmÏņŽ™=Lvt€ äģéÚï`õöí"ûÚģ#é:oØėÅÂ6öį?Đ­?2Cß%"ïr6Aņ0@)nP™ß§“SŊólįŨĀĒAĨ"ĢëŪgýŽï§Ü5jKŌ~ŠöĖÄFӗ<o1ežōՀ6ķŧý@Dxč\c/Š/@YÄáëDü·‰eáHƒĻŧ$\úÜyë]$‘Íí#į<:#ÚDe [ķģķš!Ņ„Ūeū(2/>åÂs1ÎþŒšRAŅŌ_6vßČšę&Ô_ādë(õĻæŒŽËœKUņÄᆭ7173Į‘G0øų9§ŸŸcý-ŋWDHÄpEãoyžąĻMGĄŌ_eÓõßËØÆïAm‚ā·ūFgöŋ„'/;ōŦ’lęÖÓÛČŊ&_Š?ö'Aūđ·Ëá<•pŽūö ƒĩà /ė#ˆBą@â2ûžļVVmū‹‘uoGčCŽ] n|…Îܚ؄KE~ņVaüõˆ$4įuæÁqĸ™;ˆįÁĀŠu–ÅTôģĐ/úõ�ÍŲ6õS-ÄËŽá–ęP…7ŋņNJ”Ï›Ā“Yõûýķ \ÅÆþ-”―J.Ģ-æúË"Zé‹ŧģ<PóAg?6āqĮ%$ C\7r3k*k9PßËņÖaŒ.%ĒWËUnšöfæj˟™ĮóÜąáBÄܑ:Ģ[°ņ…Q-bņļqá0ošÝĮ@}CƒlšáYûÎô†J„õÏÎý!6š―ėȟÂf}pėUEč7–ĄÛÖ]_X/AÔĒÎQ휡Ôi:q^!RĻ 3ąæF&oahâz‚Ę$6IPĪýaí3DÓ5|)Ó3ø•›pB•æÜaâŽ3æ‹ō7į}Á5mjAv^�Í-ĘŊyHƒ\ŠĒŽ1·ÞúÆúĮ/ųeĒž†#72Œ]Gt‘yŪ_DüŽXöïlH]tŨfïEÛÂâ1Åëŧb&&í`˜ĻL2 3\åŅÝ$š,qfs\32ÉÕŨ\͓?IvãjĮšô­)ã—žó{ŽDˆÅpĮÜ^n?LÅ&$ ýƒƒl―åŸ3°ę̀R!œĸotþM/ō|7ðVUJ‰Ą:Ø8Þ7T?^qŲ›îņD Ĩę CŦŪgdíŲFep-~iĩk›L-üQókØøtvŧ/üþ·‚ÆÄá ͅĢ$1šn•OŸwėÅ\č\VáŨdÚwíd“Ļį1“qsÅ5[Ųžf pþûW” ý[ļnäfJiRHŨíf!ĸō1bp!<‹^YŌä#WE JЊWv<ŅdYB°”ˆIݒķ^Cŋ?ĀģsOŌNZ=D 8fįķk9rė§ŽžĖ“Ą’NBíH“ņŦ‡HĒģÜkŪó o;ó"7֎X‹UčęcûïĢ:t`@Úg~—ĻþyÔv. õÎ%AÕftĖ*cynó‡ô ëĀЕ20z%ãŨÐ?žŋTÁ ú4#OUP[#\ø$QãŦh2åÎÍKG~UðJ›ðJÛKkáÍų#dN(kųâųÎąRč, Šā óęnÏĨŅnåĄŨmŋēþ@—DŪž–#ŨĐūl<įÍ?ōg\Õŋņ‹Hŋ7Ï>K~Ēüü&u&Ѕ1ņX2ŸTŋO4Æ`ØÐ·™ŠWáÉ3ŌŒ=ŨÏÆ^ĀŨÝČ}SstÚ.E­Ō>Ö#üę2ą…ļþ;gũrcí(W‘xdíĩlŋã—ðK“ ՘öėG‰jåB{Ïû.4Ą2ī•Ą‰ëP5‚xþ�^0ˆWĒÜ·†ĘĀ:*“øAE<ßĪÏŌžĢņIƒDõÏŨŋˆj{‘:vy |Ļ"FiÎï§đ0•üs"gÏČāâútC€.~ĶŊ"Č yԏĩHÚI}Ų‰MØąmã#ãįŊ(ŨßĕC;ąi\ķI7Jf€+†įcSÄ$GþDM=ƒŲģģėĶe}ųĒîž1ņēDQjp%ĐŒx$ĢŠL”'đeü›þ­ĪŲ{mqÆŅ­Ŧ·ņü†=Þw4?WԌiœj3ēu€Ē îĒ”lĖsûyÃÂ12&;ķņVŪ|ÓŋCĖPš2QãoACüþŧ°áal|4F‹žÓ—�IÜfbó·3ąå=ÅvÉwŽĢŧÜMfIڏÖū@î-Žëåũ‹ÓņÓ2f1Qû ĩĐŊc-x(üB|ūó\x_€ôßë!(C‚…#|CĐ*ƒĢl^ŋ™’WÎ3ûC†x;‡oäĘĄ9ōŧā “ëýŽôšųräÁO-éÐåēË!õr ČŋcēcUõœD x j1âåÉGãåÕÜ2þ&›yˆvŌꝏQqó ·püð ĒÔ ‰Ō™ ‰Û ^j p+ô%!·Ïā–…ã„)ĒŽŲúķÞúA\tŸĒķIÜø2qëQƒ˜žĘĩxšĪģËÄöKôĨgRYVĐ‹äŠ…É]’MœŠ h›$:@ŌyžĪý$IxĻŦ?ry‘ū‚Ąũ R,íú1æN>ĄÆ (§ūzŨÝįįÔgx ÆýÛģžļG†Dk'ŨēzÕęģþēãŪžš+ŊęJL’Yî3îŋTôϐ߈ÁÃëÕÉ „Áîė@(pņÂó/†&gįΈĀrę@ūĐaŌí+7.ķ1Ŧ*Ŧđiė6ŸųĄíôÄ XkY30ÉÚ-“~þhFïč,Äīį#úW{ˆšÐÞáļÅ[fũqCý4mĀx“W}›ŪûWˆ ļó% D/“īþ“ĶžæR”ņ*7#ÞIgj[—þëĘj'­ĮQíô|ĩMT›4°v§ÐdÂÆg Ÿū―ĖIöŠ Æ§4ô\Ũ …SŅnDø%@ų„XÎÞJĻ�—dxm+�.’­~Ē7/ĒÜWfÝšõ”M…(Ž–ŠîĐØŋūoۇvĪâsWLïÆ‹§WYžCS_‚üÚMķÉšĶz–;H7IŲsÕ!Eô"HHōŠOKՁŒ‰óāˆblc&Ŧëļvôfž:óhQĖĪ€Ūđ‰C/õœzZ…ˆūņ2ąįąĶSãŪŲđē9K ðK%Ö_ó―Ž―úŸ!fH-įõŋ%é<‹˜ĖîĒ]jš^° ‘2IûëXÛļ`" ĐD7!n<ŌŧĶEwņđĪûþŠÛÁJÃ߉˜q@‰ZӜ:ðEõ|D•šŸūóΞØS€•‚ ‹@ÄÅēwæ"ēšýŠĘÐā›&7‘$gýQFKc\=t-eSîr\ÉÄý^îß36Eō ų{ļ―8=ē!SíSi† Ÿëó'1dĸ .K°ļa3ņ?‹TÏí™q0Í*\žēwį‘―ēųÆ6fCßfŪÚ邙 ũeUY34ÉŠ5Ŧ\4ajũhφ4CaSû ß6ģ‡mÍY:AđĖæîfÝ5?†ņ†�'Š}ŽĪóœC~1éËsë™ūēpaãOâUŪGLÖUũŸyáV{nÝÚ.―Īûz%A$%xgþyæČßŅŠÕēy}R•g.ô|ØäŌ&ûj1К ó Eņ|Õ“ô—ˆĒhYŧėUØ6x ƒÁpŊzĒÅaîŸkÄôpéĖ}ũėÜ<4õ"1 óÖū›õ}›ÝæËtûl.éĩŽ(V‹5 ŧÅ:rnŸĢÎMļØÎ“qRÕnüAQĩØŌsáŽ7ļ$Ķl&VđzĮUœ:ō ĶäˆR­fđųĖqū•ÃŒ…-b/ðŲö†glÓũ"R Hˆę_ÄÆ§Ýw={°ĻdwŨJ�ņŨâ•C’ö“)áđ0x5xģ3ûcyč{o5"BØ:ÍņįĸŌq8üå]ũ°pĄįž0 āuB�4ÝíđMš7”Öo\MšĨŅ‹cD„Õ•ĩŽïÛHŨkĻs†Ĩ<Ún™ņ&}E1\D˜jŸâ3GĸŒ­#LwNąŊþŸ?öIZqÃĐŽž!ošąžV­ņ{ԈtBų3Í ― PŠ†ĘŁJŲ<K^™mWSõû >n7Ŋ-ŦŪĀTݚDjļ­–wuö3ĩ°ļzýWŋéŒoþ'9ōĮgëĸ›œA$X†í͟PęRĨ5―GŊīŊīíĩgąRðŦŨãWï@ÄCL‰ĢÏ|œ8ŒDDųĒáüŅEXQ âŠZDļGL/—KlßDĒˋĸSåŠĄkŧČ―č)ø§ä,••3ä+Zü^\x–vŌFðŌ€ ƒĩ―Ôã, č)š M ,!=Ē|Q Hƒ–ë…›Ó![„Ņō›ú·Ĩ…H4ŋßóŲ°n#IĒÜ68ĮũŽ:Á°‰P?0\ûŽßbxí?JŊcˆÛOÕŋˆ&õĨēö9žH ĒMÛsy•t Á}ĩ‚*ˆŨO0øŒ? â1zS‡ŌtëEļũ-wsa­ˆRø†€bÍüâë|c–“H.tė9Ŋ'5’ĻPôŌĢëF(-Ŧŧ1lė߀?’ųðŧŋwuųLE–žņđ{.ý)3&š™í�znZpzþ9x\î)ȉ@7 w‰ũ •r)áœËļL'c#“ÕõŒ”ÆšRîœk7ŽæĶū3üãUĮéũœŋž\­rý·}Œþą·“ĩ™O:O5ū„ÚĶClõPõPŌwõP5hĘõ]H°qs&‹ģpkãW߂˜āUO2n0ð-ø}oÂy&ZxėwĀ=ÎD”/ÜyũÅqļˆū�ųŧÂåXŅlóûÆ'0%|äáĨgCä☥ŌŦ+k™ĻLŌïā‰wAc=ņŒ+ņėo 7‹[IOԊ lۄ=‹ßŋėUļbðbģ= …%./&āÄ6"Î+ļt9ēĒėū~ŋ?-–`ą\=tCĨĄü<į" đÕ?+V0..:;=ËĸĶŠ cŽŪŽí>GŒ&ÜQnðŦOÅ*ôŽfį;~—Ęāq…čl*öĩ!ˆß3ߞŋÓ`*q/M^ h&%8—Ĩ˜*~õMâûęƒlÞ^åzĘCߛۅáÐSĢӜŅTôß§Â.åüÞ,­2‹HŪį]*d!ąƒÁ#ĨUT―*‘†Ėuf™f‰mī4˜%Ýy%SbĒ2Éxy‚Šßĩ–Z<ÏTûģéÔMφÎÎUņЌ”Æ FzTãL8C+n8nn„ļcãîý‰ã“ĢXŧt)ʖíx`õņ[ ]—Z6ŸNŌf_íyŽ51āqÕÐNÖTÖumЌUVņ=›O™Žm3Zį[Ũ~Uŋ‰­aņýšŦĶ]Q“ÏsąĻŸÛ–Ĩ―ŪÁ^ŧCw„ĒLVÖsĒy„zŌÄK:ŒŸ|u‡>õ]âĖðęml{ã‡Ļ ÞāFhLŌ~ŠĻþ'ąä’–9/žkņ“ģlÂM—€Ŋ|Iû™Kˆøæ�ŽĨ<ōCˆŋ‘„éÃ_`ęā}™ÕFøåŧîæÄĨœû“.msDa0aēšÎ!ēŨGhCŠĶ#ÂLg*͑ï^7ÓWûü†KĢŽ*Ŋaļ4JŽ ~' īšqÞ”Åâ·˜Ŧ*kX]YËP0ŒÃB8O`ƜlĨ7@ IĮæ@UÅø†U}ŦŅØ.đ—Ā”Xß·y R=`Š;ƒĮƒ§ūÄŪéûsĒúÜüŨyÏÆïc}uSrnÚÉöĄÔĢ#ĨQCŽ]"™e =ë–Ï5—ΗäUeQ†KĢ WÖОß͚#ÊĪ­ŋŽÍ7ĸÕĄëPkQˆZ“4†žÞ@WYn%SÚý”Å*Ļc…ÎöĄG*Ķ|5jk$áĄWPã SýQgӐ˜ú™g9úėŸ`“(“l~ĸŪŧųo—z‹ÎHcĢ.éb"‚ĩßxT―>ü!ÆĘŒ–ÆhÄu"ĻÅóĖufIH–JšĐ e*~•‘ōĪC=^§BØD1‹ÆA9(Óï2ReMe]:C3iPõúhF lbþoA<GtĘ#%:ÚéáķŠemuôķ}šD„Ųp†§f#0ĨœĀlgíy&ŦësŊ�@Ē1” †ÓDž8_O 73Oņ.đ/TÁŊ0‰Gųā§8ý6―ôÄæ7°éÆũSļĘ!ŋm5ŋLŌ~ÁĮIFÝpåģÍ:}ŠÝëijXÍ Ÿ6 p„@q9 ^åTÛØčÔŦ‚ļhŋ*åąŸÄï{3BD§qŒ#OßKŧ~:̃+Â/ž”ë\ HËTũ„F]8Wšóg•nMnáN-šę pzAwcŦŧšũaŌĶī˜g‰mL'ikDbc’(q.Ŋû„“(AʒúãÓĖ-/Ëā’ėü)ũ/lށĄþeC­ZÖũmBądn>·2įϗ„vŌL7gW*Pks&.œ7ӗ™‹)D.†W*‡Cü*áüóČÓŋÁĀôcN5O`ݕ·ģáÆ_"(ŊK‘ŋNTĸIx0E~čÆ3Ü g…Ô%]Bā֒4^ŧ‡ĪĮ‹éĮŊÜLŽŧ°ņė5ņ› ōWĻŪúyüę- 1QīĀ‘gĸ+ó§w;…N8ĪðcwÝ}þŒŋsÁEīŋ<ÉFJŽ1íĪM#Ū1ž!Ö0ĸÜIÚDqD&=�Ŧĝ˜VÔĪ^Z`š}ŠfÜ Ņ„zž@-^ ķą‘… ·ãnÜNû"šqƒZ4ïŒóá<íĪI˜„ÄQ ąôøĸQ藐;UKŋ?Č ?īhÎ·>nŨŲTz F˜ §ÓDKÕŦēŪo#%ŊLdÞsYĢēėĶĩį)ΒĐ&/‡,'JÆ'šy‚3O|€ÎĖŲlđáLîøEŒ7€ŠÅ&gˆę_ÂÆĮpJ†ô&įüŲØŒPøÚýĶ)ōwí*’{Üo*ķ{ĻļŠ7‚WyÚ|ĩoJüWãPYõóxĨ€Åڈã{þ˜éƒdš\ åŸÞuû_ęõ.-čĨޜBØĐW8cJ$šP Ë$6Ē–Ô˜ïœĄÓlģ8ĢBŒ`cĨÖĻaŒ!L:ŪŽ–*ļÁB8GģÞr\Þ,␉ĨÕj2ïÏbÄÐHęˆBÛķ˜íœĄÞ^Āķ-Æ3=@Q*ĶšÄ„lQFËã‹\tį[”Þc,Ęũmýa>}äO9Ú8DÕŦōŽÉwģsø&".ŠN/YBd–ãú‹“Œ$'―ũÖ{‰sŊîÜóĘBŲĩŌï;ķÃĐæ!ĒöI|M―t J~0ė:$!ˆ”RCb›ŊaQĸ—E—-šņ3ßą$R38*ˆQ\Í�ņR"áŒŨ0þjüū77ļč>/7Ļš•ņŸÅ+mM―:–ã{þˆãÏ.ŦōƒĀ?3œŧØį…ÂEH�6…‹›ābøŠ ˜Ā5c°ƒ–VŌÄ7Ö&4âzĻ™PózÎ/ž`‚īÆ\2KŦŊ‰ïų(Ð ;„ÍÛķøÃs!<&ðhÍ·9cfˆ’ēWEp›ķÖ^ ―āzÉiĪ^É+/] ĩŒ•Vå›ŋĩ—Ђģđ%-ƒÁ0?våÏkLɔņO3næÜž7#ÐĒY Î"įųÖ\E—J Ú;ŨŪ”°ˆ0äŨĘļï,–ČFLĩN0ݙĒՐō Ĩ?ÉčsŋGP;?ó)ÂÖ[oý5 b ŋ‹Ļöyl|8õqw%MÄÝYåĶÓ.L:ãø1P SÐTHČ\ËŲ―+ƟĀï;qó>ļĪėÁËEšæWß@eė'\  ĻåČģŨcŧĸJž�AI€_Påŋŋųžs4ōšļΚ€ļXĄRQž’qD –°ÐY ŲŨ@ŒÓ_“vLŌķ˜Ā`|“‡Đf:qÐįc#%ŽĮDÍÄéųŠØP%čóņ+ŽKjáUĻӜiö…xAšÅ$-‹&P GZDsEĻCĨáÞ– ŋ#–Ū ÆâM–!n#n8ýÝ*íŒØĨˆŸqåŒË[žŽN€ēl oq­sΟr’â|‹6…âu2™ÝJ6ÏÄ&ÄҊ›œéL3Õ9M=ZČ#=き‰·0sÝO3úÜĶ4įšŌœÜũâč_ēå–_"(ŊG$ z/qýK$á‹hZ9·äóî]ĸ\JÉîIēđg@ ęAQH‰�Ö Šo„ ĸۈ›B2ó !ŲV3Þ~ĸ? <ōƒļph%îÔ8ôõĸÓû/�…Žŋ1ŽüÆõũ\>mî‚@N—YĄ‹ą d›Ŧ4€*IĮŌ>9"î8Ŋd(—zÅx!wɕ‡š`ĢŪÁÎóŊėôû=\3Ÿž‡W‹ˆj1ąûނB0⯯ÍdÉ.H–)Š˜€’T ˆho Bepó)þ―ˆĻ8ųŠ'Ý·‡<‰$íö\ĒÐ Vqmģ:€tŋ‡û§įōëÉC‚;ķC˜īi&MæÃYf;ÓÔâų” ŧŽļ―ꐄD•1ĶŪýLėýʧB­eúÐ#$ŅŋaóÍ?Ouč:%x'Ō&î|݉ãļ`'­K!Ę4ýt!ēMáÞDœëOlWāRâžé‚:IĶ1ĻEL• ĸíÄí'ąáaē–\/7!Č_D0坔ßKÐĸvÐDiÍíåĀ“ĸ™…Ó{ēßÂoÍōÁ;ŋûō!?žÂ5ģMm<Ą<\"n§a·Ö‘_ã ~ÕÃx݈Ā+yFFJhdą)0ūÁø)2.B°ėsPõ1ž!î$đO_Œā•=üŠ—ïī^Ӄ&― ?Ĩęõu‘’Ė.ãNÐŦsgc,”1âĢĒyy­ áT+Ö!^qŽtuüĖ+ 8d.Þw߅äš<ĸ‚ß3ïė:YØq”thÄ5QųhžFž@-œOįā<6EâܕNœŪ]2eFüa†úķ2rĮG öý §vĸ’(äĖą§‰Ģ_dËM?ÃĀÄÛ@-~õv0Ã$íGŅd‘ ;ģÂýåūÅų EnIĨ5]"ÐåZ)w—”PĪīE3âáWÞ@bÆ°á‹Ød.Ģ+į7ë\$äÂeŠëûýo%ü‡o!Âj›3Gîįčž?ĨĩpJÅÅ5ÕDøĨ;ïæ·.ïlžâEAsmœHïgáÅÂēˆŧėX$0˜ ðã2ČŋxŒW2x%'nC†ėÝãÅë5 ЌKŽdJKUƒlĖ2ö@Uåđųg8Ų>ƀ?ϑĻx}ų52Ū\tį9<ŽAjīyÞÁŌ]ZäõÝ1…oģ�ĒÔ%ÚIÚĖ„SĖvfhÄ5ZI“fÜȉÄrMA2;€ë*°š<ÉXy‚á`„~€`c<âޏĐŪåä“"nÏģpz?{w}„-7ýĢŋ›„øåŦ1^?qs69 â§+SžĶäȟY,œŸQóĢ–·hĐÆāœŠíJ)Ā+mÆøĢ$álļ—T^lņó( ū Æ úŋŋïMxĨŦpõü-aóĮŸûĸ™>rŋFvFûŽ üԝwó—/}ËÃ7Ī*ð’üô"·Ė6ĸYVþ\FŊóÉÏm–'4ÆÄïU=ęam’đJđË!đãū]ĪÎïņ3ŧxlæABâ‰Įú ž{ýwSņûōëdâ=JŪ Ha“Ķ—î p’.bũÜo~ŌÞy€ïņh'-΄SœjpîWÛ!JB,iņŽėß"ĒŽiiq_&+ëXS]ĮHiœē)QöŠãJ‰Į6B“Eūâû‘Ę8§þþį ŽŅ\8ÍÞG~M­ãŽÝņsÄqlĀïï#i>HŸ@ņšũŅŧÐdIWm�ЈØeˆ€äN6ÆĨ[$3°Š3ŠÄ+ïĀøkIÂąŅ‰—fČh·‚ VQ|7^õ6Œŋ‘’“^aúðg8ķįÓīŽ;ÞčēûþV”ŸŧóžžÄŦ_žĪ‚ įģ@Ÿ–ĩ)žŒ ØųŪįT Óe4@sšíŠĮ™5މÂų’d\DšƒÜx·ņ:I›‡Ķūė s Äjy~áYŪđ%-&―b{–ŸŊÝjĀ™Ÿ“#æYž‹öüïÞ=ņč$Ķ:'9Ų<F-^ Ņ8/žŊÁâĶڕN|ãģšēž }›\ÛrņņÓę<KbcĒØĶچ3gmÏúÖ}k‚!N?úģ„s{‰: <ņīĮØzËo$ ÆGūmÞïŠ|€îĨĒ{Žô‰?ģôŒÁdJZķž™„‘]%U+Äo ŋōl0‹ ŸËëþ]ˆZ°Ø‹äWß@0ðmø•A*ˆø€ÁxeZórðɏS›9DGîōîüĸð›wÞÃÔđŊöŌáž�K6šæ"ā+fúJ€*^Iō–Ö�Q3ĶÏS‘>ōīĩä"v&Ķ“ŠŲšōŪtYq0iũš­Ōˆk=zxvžĪXB\ŧÜK "ŋŠb­í‘”ŠnžρZNķŽrŠ}‚™Î49a(<ÔåÄûü7„Éę:6ôoaĒ<‰gžé#ķąK”J‰Wņ�ŽMRRB0þV―ųũ˜Þõ/gŸÅ&1ĮŸĸQk–+Þô;@L?ĨwÕŋ‚ÐKåRä7éŧ*Ī>~·T&7úåz~n Ό‹äRgž!‘Đ™-�ã!Õ;0É,6|›ĖÔą|Ëô€˜Ō5”úeĄ)á��IDATފŨ'b†{ŨX|ĒÖ ßó Nú:jm1sú°*?qŨ=|–W^š °ŒūûjŊd\@ÆņÕrjþ[†ŊČÝUYļn14WSŪä g:`ÐĶÏp•s ‹ĩķoãâ™ŧÜ2"uZÆF’{ 2#aN�,௜nŸätûÓíÓųžrQļp­žsä.=ŸU•ÕŽëÛČdežņsIÁŠCčDW%›Ū- K8k“ī QúY-6ސ-ŒÞy/ģ_ûqĒ™ĮQk9}ðA’čŸqÅíŋŽW^xƒï"nÜïjëgÆ>2†æč"ŽšĨŋr’šš ÅvžwÃv‰ožM EŨĒ[Yã`Š·ĄÉ6:čpeč7ŽWđŊr#~å&ÄƕOŌ5N°IDÔ:ČÔÁ?ãäūŋŨŽŪlþ°€ō)āgéģí͗V:@žŠ‡ņwŋ›9~†mĢÛIŌ:‘F9·íuÃĨÂŊ*L‰oYûíÜę‹Ä!n3›ú·Ōąģ.“4ũßĮïŅa— ËĀŠĨÍsŽyˆãÍĢÄw{ .#ÖŧŲjZĄDŲ”.ēķšžÕÕuø& ą1V-Ą Q-īSŌÜ›Įdj‚ĩ։ĸę”�RI1_­$BƒA†ïü}æų9Ē“_FmÂôŅ'H’ÅÖ[>DečzÐŋרּ"é<Úyf†ĖÔŗŽ>`Ķļ;‘=Ũ HĐhūæÎ *ļdĒ*âõáÖõčP;,õJ[Ąĸ­ e@1Þ&؈ņFœ Qm:Þõ°Iļ3Oŧū›™Ã_`æč …ˆņœžĖ*<KįýŌKŲŧ— —ĻžÆØ~ AŸ ī3ę­›>Ęmæö\ïîÄíņ_ +ۄ63c‰°cčzÖV7rēu„‘ō*ŪÚA˜t‘ĸŽÞ ”H#W-8•4šūðT!ķG›‡Ø_‘0éā‰į*î+G@ĩxƧÏë§Ïïg8eUe5c• ĘĶâėi‚•jV„ĪāV$‹+p'NŌ>ũ™$aS™ ũx‹’8‰=ƒEĻÞþðôoüsˆÚœ9ö,IüólđųßĪnÂŊr#xƒŪfŋ] 7ī*)ōfũ˜éôtÝ}Ngrŋåƒ–Û―Ŋ| ĨwĄÚJYA<ē^„Hær*xPÐÁųïą5âð4as†Nã0õ3_gþÔÔÎ4qÏC<ũXĶ€'€?žënþøŌ7ėK‡ó�Åų͋ÆēBþųk üŠsB—S6Ķ›ĖķÎ0čĄ(Û&ēŊÚŦw;AN ,‚Į-GKĢLV]ąFX+pÎN vWđ7û>#Ą yaþŽ·Ž�ԃøEž'†Ą`„áŌÃÁ(#ĨQ†Kc”― ąÆXÓJšdņį™XØđÐŽ*–L%H>'Θ!―ÍĪ -Ę6§x; [™ yņ^LkŽųSûŲ·ëlšņ§ÛôQ›ā[АīÃÆÓ…ĩ^ltHž—],J{,x])ÔSāäņ’“0LĄCđå‡LY@,jįŅä a{†°yаyŠví­Úšóûi-4‰Ó.―brĮÓQUū(ÂgUøė]?ÄĒĪW–€åŒCy‰ė‚ū鉇―<áČß4āÐPōi*Gqȑ“‡đ~óyĩ zīĀ€?˜sęŪ>Đ8ÔĪV}gŒŠ5&ķĩüZ"‚gü”;ŸƒĢ�)īKsįũĖ=ÅÉÖņīï`áØÔŽ0^ž`ž2Áhiœ~€>€’)cIHlâŠ!Ņ5ęöæyX›<sĒPDô"‡OÅ}ĩđȏ*VšĮgĮ95ÁØü^Ī< Ï} ŊvœÆÜûý5ÂĶsÚ$Áøk‘ę[ˆ[bããnzôz- yA§_|LÏąKv� D­ĢDícØĪ…Új›$q$Š“„ģDíyÂNļS#ę,uf‰Û ĒÐi'=1^>Ģû>Ü/ðԝw_XӎW–€å6bĶÔÍc(Ę~•0 _V·Ý+ .'_Ќ•]cЌ�D1Įįš­7äœx.œaM5-,‚Kņ5˜ŪŦN2+|Ú@SŅ4―–Š’ØÏønKĶÄĮ1ĶĨÖÕb䥊+Đķoá9N·Oö Ē žø\5x5ëú6PöŠĶD A.Mt’VW:(ļëœũĀæÜū‡(Dz‡ôšEŧQ€ķxD†ôÖvĨ„ːå’äÄF`õ[Ð`yö·1 [M=õûtęĮŲzÛŊcõFņûî$n톇–ŽŅōˆÖ§MŊQÐ―ŊĖĖ‘/rrïŸcãNäQQë^6mĻÚ3ԙŌPĒ<Īðyū Ę1āÔ]wŸ·nÜ+ËI�ĄˆØ"HĒ˜Ø†^ū9Pö*īãökŠ .1ČZ'ôĐ2?·ĀÔė)V ŪÆŠM]jô暊€ÛÜŨ/‹ó—Ė2M—Ð&6ƈ—F�f…G–— +þŨĒŽ6đï Č?Zã†ą[ô‡sŸūÅÚN.Ō‘>ƒĖ]Ũá“ģ"}Ŋ˜ßExwÞŅ3nŸęÓvŌ;äɌŠ!­ļIŧoÝų3šįc”Ä'öþa{ŠíoúˆSÅïŧ‹DâÎ —QíúũâĻN§1…MÎÓ\WšZ„(ŧUøŠĀߥ<ŽÂJûÎŧ‰.Û_XN˜šŲgU%lÄīĒ6ý2ët"Ð `5!L"šQkŊÜä_§įU'ĘԚ ™ZŋP›įðņÃŽÞ1‰XĄÍÓL øƒ9@ŨÍĶāôWãĄ*į$‡TF<ŌšŦg%ŠŽûûŠïíéS`Õ2Rå†Ņ[FąØīJR’ĐÜRŸUKbŨÁXČŨŠMýäšswŒvU€ė|Öæö€ĒJāÄ‹Z›{ē8 D‰lD;iҊ[Î;’I8ÕIfnxcÏü6Ĩųįą‰eúðCÄŅģýŽßÄŊlŋï.D*Dí' .;…žŋ/ô}ŅZkþģmUjŒÓĀ!Uö{Qž ”Ýwüðų[q3ÂĮņ!ÏóæŧūmH: 'ë”Ö–ð%Č-ūŠĘ@0HĮthÅ-Įóĩ|õRĩÐŋĶBýH3EH! Nœ8ÁܖYKCX,'šGŌ† š#LŅ;�Ýr]‰@áZEūŠŦŊĶõņē Ÿ‚KDhĮ-æÂŲ/BɔØ2°ĄŌ0Ąm;•ģøčՒ$1=>zÛÕýmÆÅ]žutĨk‹Ē|Qī·]ŊíšEģø„vÜĒe›Ž0Ö ĸ[-ÖïcúĶũ3öėïP™~ÔræØÓžðĀOēíķ_I+ 'xÕ7‚é'n=”šá ŲÝZáĄēÏÏ―E5›Ú/Üy7ĸî\Gūša xþŽķwÞ―y?ʛDDT]ÚîėūVWĐ,ŌMq…ēWĶ䕈’XSŽōáō’‹?[iЧMÍé˜Āgf~šSS§Ų4†ą†­clÜąl$]7BÏI]V™õy9đÓéó_zîÃā1Íäâ{†ØƒÁ0åI:qįŽ>ú\ŋ?›~‘˜îÎŅEúŪ} Ũ°W4ú9.oó`ĄXc:ķíę6Ú(ÅÃĨq ÅusUý gŪĸY*ÏýgO|•2Ę뉨ûĩŸfË-d`üN Á+_ƒ˜ Qã~ÔÖáĖHY–3@æÔ|=X, °ÜįŊaXÖ ("ŸVô;Q3ÃXíp“đ ˜ †ēTzbÆģWōʔč>ā‹…îã)~ū4(–ÔĖĒô.nž°ú cíS9ũHâ˜Ã§ēmō úË$š0Õ9Ådeݝ=ËWs *qP ~ëģYüó&Ëē+'4âzOu“šø\ĐīŽÓNx^Dö%>úĒ‘ŊëĒërũĪ—ËÎUíÂŧ&'Ąí&!Q–cŸZįÍbâ—DA0ÆCÕԌÔã ŅSãW3Þ>Áį0HÄüĐcėýÚŋfËÍïctÃ{Q5˜`ÁĀ·7ĀF§ÓÅLŠÄ-H QļĻmņšƒåã�Šü-~VÛ3Q(ŠĮœþû9L`ZĢTĪ‚—5―\īYõBVĩ ’iaĖbÃęÅB1Ę­âÚ=c&ǟo^ŠRé+Ó7ZĄ1ÝBŒÛ ĮNãāšý\ģþZáhã�Ŧ˓éEŠFĀâXPƒM]‚B–Ķ›nþ‚ b‘,Ũ?UzN%Ў›9’ƒ#�eŊB”„.zï,>z›{ršŠ[ģ<|§@�,ÖfßڞseHBŽĄ ‰lDdÜ�dœ~9bÖåônMĒyf;ÓĖ…g˜ Ï0Ũ™ĶŨáðÐzę^Ā[æö1N›æüûv}˜ÍŽđęĮP-aüIüū··†‡ÓEÓė‚… ĨųgĨpĖ’ŋ_ā-ũåÔĢs:qÓČ„JĒ€k›Õ:Ýqé #.ßx.,É }uđH0ēŸ/–9Ŋ3ŪeŊbKĐîë|sSÉĕŦO7ŧÛÂt}š-ëķR *DQōĘ —FrãYfÍŊĩXĸL-ýÅÉ AŠæb|6Ė`˜jŸL‘ÁÃhiŒŠWuÉ9iąÅ’h&ļwŦ‰ëđŲė5q1ÅwMōþ EWl]i°F\§‘ԝ?iđ€Ē4n?sMæFŅtýŒ|Ïĩe›g9Ō<ȋ ŧŲ_žCÍýœhĨ/ā ĻÆļ(šŲō�SåAVE5†mHYĶ# 1žæv0}ˆ)c‚uĻmΉ;Đ;6§ĒĐĶ‡ŠšÏÆ[ƒWū 1†ų“P›~&õĘ𕏊û.tKūÚāŽ‘€ŧ?qčïŪ―gËŊŦęû�ÍėđˆĐĮį˜ßÛ m…ęX…ę`…RЄ’†<ƒ‚ęĨ‰ä˞ęrj%õrt­ú(T†Jīæ;�ÏÐŽ5ŲõÜCžëĶoGQŽ7ģŠ2‰/ÝLđb–_F4­dcŌó§‘ú=SČ xäó kåvƒ)™ĘCc#Ū3ĶŦHˆŧV{–ņŅũˆú―>úb°N&d™…ąšðāvŌ"Ō.‘)>Æģy.Œ<ß'Į9rō§jĮiÆuW‡Ā†ä*Î9Čĸ>*˰o—―lōę$ąrâųÏ6Oąíķ_Å 6 ôŋ 1âÖãt)°ãü=Ō{öáë‡ëáœĄĀŠú~`ðOpD�I"KkĶC{6DL-ehîÁxŊ­Ūãb 2^ĻSϰũéýŽŲÅõ›nb. Ų·ðŨ _‡M QĻ,ÚP™ø/t‘3=D ĄÕ™{0#!Ål=pþúŠWu]2ŋ~š&aęR,øÝsĪώ󅈞ĖGŸ€‚^ ïßÐNš.!Ļ ™ä·ĩؐ—ęŲ™`ŒáXý0Ï>ý,{žÛMíTŧųŦęžcœ―*æÚą6ÖÂôá]ĝÁ·ĸ Ĩūk›v jü’V*r͉Ábļ<ĖéÕį$�ŧ?q(ŲyũæD˜Vô§ĩr6–ĪW{OTá›/āé%AķÉ+ãĨžœĀÃėbõwŽa|`‚ÓícŒ•ĮYU^ģlĩÞÜč9ũÎļŦĶþ|É܅iõåLä/ŽU”Šßï܅Äđý ī˜ g‚§vˆbýÁܐúčQ%I}öâ[MhÛ­ é5§Rų-ŪÔSĨGЎ·ģũÅ}<đûq͟+tjz閷Âxj’Ý9Åmk 0{b/<ôÓ\ņÆSū!qĐđf°öWÝė>·öŲŌĒ!‹žÖë–ĩaęÉyzrþŊ'n9挂T�#…]ng.x­―TMĀ/(īŲV8xō�Wl―DˆlÄHi _]ÍÆfšpķų v]# ’)ŲeGÕïcš}šP;ųu‰4Jk šÃ$ÍÝwķ€KœÚlũ7uCÍļÁB4ĮB4G;iånÆ| {bąۘNÔátýŋũQþúáÏōČŪG9rč ›ŪÔZūž\†gâŪŋëô�eÏēmļƒg đ0O}úŦôn%Hë-o SZ ũĢęú?Hö_šN,€ņŨā•Ŋ.Ø�ž}]Ø�ÎK�2˜zrþņ‰›‡ĸTTUUÄĨLā0ŋŨōýqŪPMŊ’ĨvđˆÛ §ÏœbËÆ-ÄiÔįp0ԃā™J}ŨåB];A!Č8PÁ–ÐĩLļ%SbĶSĻ%%BÛÁ?% Đá/5þYRW‰4Ė[Ĩ-Äóī“vĄ!IČĨ°øŲzâQņŦīã6ïy/=ōŨ<üØŨ8~ô„ÆíD<ņhÏDhŌ VšĖO”§ÏôQ [‡:TĨÝhëÂÉ/Ņ7žNĘ[ņ0flĀF'ĀÖSU õdÚ/OÜOmæ™,Öå5M�.Š Čî{~îÚ{ķ �wĐęõĀzTUOdąâûÚâvbãŽ]øæ‚ôĐÛÕ2ujšŧŸ7ßōŽËa*^•uՍ(֕ŅÎ$€‚4�Î@·ŽL—NIāôXũ'VFKã ĢioÁīcĩhžNŌĶ?$?mJâl�ąMˆ4týmÔC„ŨĖî™A L@ŲT({†K#DIÄß<ō9xô~ĘA™’WÉǜ“Ļ&é$ ŲýœÍ@ø’@ÜþĘņ!†J6øŪms·z>Wĩ/<ô‹šõæējëũ#2€ņŨR|7QãïHÂä1ËęüŊŲmž.Đ"ÐģũŽĸ3}―ŪāĸýFo~wø_đ‡TåQUŽ<Â.ĸanŧņvʋøâ3Y]ï’}Œį,þŌ­3°X-XB2ïAz|æũïÚŽ#ķ lĢ=ßĪ•4ócČFĖvf0âá§yíŠJœšsÉĢ@Œ2čĢ°”ž2þ UŋŸŠWĨbŠ ”™íœáøūöÄCT+Õlj’žãÞÍïžøŋþâ[|ÅōÅĸ=ðž{yŦĀo›“ŲĸØïjŧ~LÖ_û“xÁZŒŋš`ā]Hã~ŨŒĪų—wKŋÖá‚U€p°ïÏO醷M<�܆°EÔE sģs,4į_5NK›ĶÄHi4­š“YŨ—ŠËAOlÄYė †9/“éųYíSŒ(øč<8Ļė•*0Y]ϚĘZÆ* #TL…jPeŠyšßĸŌGytũ#ā„%ĩ }ø™/ýČã /ÛC8 Üûiýð{ųŠĀõbØŽŠÔ͟§Óx‘ĄņŦð‚Il�1Øč .x ŒŋŊ|5aîäýÔgvŋ.T€p pėūéÖÆ·ŊþkAþ7`5iœ ó œš9ÉŠĩŦčØ Œ•'ÐÔí• €þ-ï˜Ō%ßgDĪä• Fč$-šq,”8ŋÆĒWÏy !ŋūŽŠL°Ą3kŦ+3 ĪÝW' Y8ÄïýõGyzßŨģdEäßĨŠĸ|ŨGöžž+~áp慄ūį―|V`‡WŦĒ­ųĢԜ{ŠĄU›ņŦ›0þzÄ Ģás(ļ&5Ū€8―oŠąáíŸTÕïÆD$'­F‹ýGö2ēj ”ÐvŊŽĶ`ĪiJŪéáÂQXŽ,ÕŅ<%Ũ7>ÃĨQSĒŨ{ōü—Cz7ÞR’€ņĘ6ômfãĀFŌhBÏøų‹úĸî™Ŋóŧĸó·9phwN‚ĪāįEäv}dÏîËŧŌũ~šæ?ý~þĖDŽnī]ŸĄ>ýˆ Œn ”Õ˜`ķģņWĀ}ÔgöŽ€87―oŠąám žWDÆ2B„–―{ũVš P įÓf]<Ŋģ‡ä-ÁŌsļwzßÏŪF€Į`0ÄDu’Ā„6ĖKˆĄė•+O°y`ķ1RĨâu“ŧēēß=a4á‘CņŧŸþͧ§1ŪĪmæöUU=|įŪėyö%-če„ĸú?Ð{?Ågø―D"|‹ŌnÖY8uŸŒn’Ru"ãā•Ŋ[Ã[ã1ōŦŊð2˜f_pûwŽ‘Ï�·ĪHœK‰ĩŽÞ°Š;Þø&6 meĮðõ #]khCÞŦ/GxYųÏa;č‘"Äؐ(Ŋ$”L™’)e2Čƒ_1ÃÐM_YhÍņđŊšO=ô?(Û>ŒÉė|š@_‘ũ<üáÝ/\Æ%―ŽðĀ'øAU>&BÕZ(—Ņíw|@†Öž L)U Š^ÐÏĄ'~…Ï›$ˆðĄ;ïæ#ßč{xđ`Eļ pėūéÚú·­ú,pĩˆl“šĐÏ7Øh?-ĐÓðj”JeŠ^ß=AEÅüģđĒ–ģÜË@Q—xcJ”L™ ―V^ī̐ĪQß%ëø,tæŲ}ōë|ô‹ŋÅŪĮv‘]Į$McAPÕûUõÝŧ>ēįðå]ŅË ĸOýČĸÎSĀ[EŠcäĖŅŊjđߗĘЕSE5r^ŊÄüÉŊžn$€p™āØ}Óĩ o›øĐ7ŠH!Š1YŽ?ÎÉ3Į™ęœĪãĩč/ũ˜%)9ä-āuš[ ÝũÞ  ^ÐeþulžÝŨkŒ4b(ų%šqƒg?Å_=ņIþôËDcķIĐTęąôŦjK{­ĩ?øčŊ<?ûĘŽðKƒŠ~ø―<Ūpģ&U‘3ĮW#3Ō?z^0†j‚ņJ˟ļúĖs+`.ŽÝ7ÝZĸķU_‘#Šz30œþĪbD ͅ&'NįčôŨÐņZ”ŦeĘĶLŲTČsša)AH‰‚ŠÍ_Kū[ ĻûęČžîžūņ)ų%ÚķÅÃāóĸŸŲõžxā)a<“b~f r@jĒŋüČŊ>Ũy%ÖõrÁĮ?ÅĄy/Ą\#ÂV@Ķ^$iï§t~y‚°pō>jŊ `Åð2ÁÚy#ð (ߗ6öÔÔUæ8ŧĩ˜’axhˆUã\ģmŨmš­W2䍀’·âZŪzPg ą]îø4p/ó?`_íî1žÜũG§Ž2_›ëF/rŌ4įO ōŦxũĢ—mĄūðĀ'Xüā{ģ`ËąĩÛeӍ?ÅĀÄŧ8ðčû9ņâ_bûš·Ž€—îøāÎa}Ęo‹ČÚbŌΙ帗*}UÖMŪcۖmÜļņ6ũ_Á?Œ` eŧŧ)đį Ŋ͋p`0ÆÃ3îýpsOïý:ï{Ó'OŅh5h…- Ý@ĒÜĘįÎ3+"ĸáÏþĨÝõs^ôU|‚>U~Y„ŸÉˆĀāØjđâķ0}ä~Ž?ũŊ #ā x™áŽïAVŲÄūODþ•ŠúE[ĖÁÅ8}܈a`ēŦ6ģmíl[·­ýÛô‡)™rFōq‹sëģˆÃH#Ž5ņÂÉįØtŧ>ÃüĖ<6q%ÁsŨcŠzhwBî+•ßUôƒ"ræáï~MÅČ>ð ðãĀĘ"ýÃĢâų>õŲ™īû XË·pĮvų·Ā·Ŧj%õd?į7ĸBŧÜ^U_(øŒ°šo-ƒþŊ‚o| ‹%!ļÆL8Åą™Ģ4§ÚYÄPð"…OšÕ þå}ŧ>ēgĸË·"ßðĀ―ü øÚĨŽŲ’­€ļžpĮ‡v^ŦŠ?+"ïTÕ1 Zз‹Ąĩ=Đ ÅÞål�EËþbïBá\ņŧõ9ÚĀāKĀŊíúȞį.į=ģßāŠrŊ“Ī˜f6Ū€xyāöÄI[Ddā oē\ĢĀK€ ዆= QÕã"r�øð‡xũ‘—z­W+Ü/w |ázÕžĘÝ X—nĸЎ·ĒžļIDķĢlSŅAŅÞīā ]žÞqéß ŲŊŠ{ž+ũŦ§ũíúĨ=Ŋ­:n—ũßËÍĀoŠðޔހxåāķėĻOŪŪPÕ­W ēYU7k€ą,Dx9OĀĒr]ģĀ)ā°ŠöŠČ~”―Víóüōsß4mŠŋ™āþ{Ų"ÂŋUåĸ>tŨ=+`ūApĮ‡vāІ~ ePŅq•˜  D@(" Ā,ÐPÕБyUÛõ‘=Ŋ Þ+ũßË(ð~Ē;ïæýßčųž\°B�^ÅpĮ‡vzÖZąÖЈč#ŋü܊(™āOPՄŅŧ~„ãßčđŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ŽĀ ā+Î ?” Ą”����IENDŪB`‚(���€������� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������*8*8)~7*8*8)~7*8)~7*8���������������������������������������������������������������������������������������������������������������������������������������������������������žÃ�Ã����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������)~7 )~7)~7'*8M)~7w*8–*8Š)~7ģ)~7°*8Ē)~7‰*8e)~77)~7*8)|7�������������������������������������������������������������������������������������������������������������������������������������ŸÃ� Äw� ÄL��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������)~7*8E)~7‰*8Ð)~7ĸ)~7ĸ'}5ĸ&|5ĸ&|4ĸ%|4ĸ%|4ĸ&|4ĸ&|4ĸ'}5ĸ(~6ĸ)~7í*8Ŋ*~8f*8/*8 �������������������������������������������������������������������������������������������������������������������������ŸÃ�ŸÃ›�ŸÃų� ÄP������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������*8$)~7m*8ŧ)~7ĸ(}6ĸ$z2ĸ#{2ĸ-†<þ@MþLšYĸWŸcĸ\Ągĸ\ĄgĸY eĸP›\ĸC“Pþ2‡@þ#z1ĸ$z2ĸ'}5ĸ*~8æ*8–*8I*8�������������������������������������������������������������������������������������������������������������ŸÃ'�ŸÃ°�ŸÃĸ Äð�ŸÃN����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������*8)7k*8Į)~7ĸ'|5ĸ"z1ĸ4ŽCþ\Ļiĸ€ŋ‹ĸ™ÎĒĸŽØģĸļâŋĸÂæČĸÆčĖĸĮčĖĸÄįĘĸŧâÂĸŊÚķĸ ÐĻĸ‰Á’ĸfŠqĸ:ŽHĸx-ĸ&|4ĸ*8ė*8 )~71����������������������������������������������������������������������������������������������������� Ä>�žÃĘ ĶÉĸHÃÜĸĒÅð�žÃO������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������*8"*8°*8ö(|6ĸ#{1ĸ>™Nĸ~ÉĸŽÛīĸÄčĘĸŌņŨĸŨōÜĸŨņÛĸÖņÛĸÕðÚĸÖņÚĸÖņÚĸÕņÚĸÕņÚĸÖņÛĸØōÝĸÖōÛĸĮéÍĸīÜšĸŒÄ•þC”Pĸ y.ĸ(}6ĸ*8á*8o��������������������������������������������������������������������������������������������� ÄY�ÂÞ ĻĘĸáïþ”áîĸ�ĄÅð�žÂO��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������*86*8ā)~7ĸ%z3ĸ4DþxŅþļäĀĸÏîÔĸÔðŲĸÔðŲĸÕðÚĸÖņÛĸŨņÛĸØņÜĸØņÜĸØņÜĸØņÜĸØōÜĸÚōÝĸÚōÞĸŲōÝĸØņÜĸÕņÚĸÕðÚĸŅïÖĸÂåČĸƒĀþ0†>ĸ&|4ĸ*8ø*8Ĩ������������������������������������������������������������������������������������� Äp�œÁëŪÎĸĨęóþËũüĸ•áîĸ�ĄÅð�žÂO����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������)~7=*8ø)~7ĸ)€8ĸQĐ`þĄÝŦĸÏîÔĸÓïØĸÕðÚĸŨņÛĸŲōÝĸØņÜĸØņÜĸØōÜĸØōÜĸØōÜĸŲōÝĸŲōÝĸŌïŨĸūéÅĸķæūĸļæĀĸÄëĘĸŨņÛĸŲōÝĸÖņÛĸÔðŲĸÕðÚĸēÞšþH–Uþ)~6ĸ)~7þ)~7ŋ*8������������������������������������������������������������������������� Ä�œÁö'·Óĸ·ðøĸĮöüĸšôúĸ—áîĸ�ĄÅð�žÂO������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������)~7<)~7þ)~7ĸ0‡?þeđsĸīį―ĸÓðŲĸÕðÚĸØōÜĸŲōÝĸŲōÝĸŲņÝĸŲōÝĸŲōÝĸŲņÝĸÚņÞĸÚōÞĸŨņÛĸđįÁĸŸÞĻĸžÞĻĸŸÞĐĸŸÞĐĸžÞĻĸŸßĐĸŊä·ĸÃëÉĸÓðØĸÕņŲĸÖņÛĸĖîŌĸZĒeĸ+€9þ)~7ĸ*8ž)8�������������������������������������������������������������ŸÃ �ŸÃ‰�žÂĸ=ĀŲĸĀōúþĀôúĸhåôĸĄðųĸšâîĸ�ĄÅð�žÂO����������������������������������������������������������������������������������������������������������������������������������������`* a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+ a+V%)}71*8ô)~7ĸ4ŠBþoÁ}ĸļéĀĸÕðÚĸŨņÛĸŲņÝĸŲōÝĸŲōÝĸŲōÝĸŲņÝĸÚņÞĸÛņßĸÛōßĸÛōßĸŲņÝĸąåšĸœÝĶĸŸÞĐĸĒßŦĸĢāŽĸĒߎĸ ßŠĸŸÞĐĸžÞĻĸÞ§ĸŸÞĐĸŪãķĸĀęĮĸÎîÓĸÓōØĸ`Ļlĸ*€8ĸ(}6þ)~7Ģ"f-]) a+ a+ a+ a+ a+ a+ a+ a+ a+ a+a+#Z“Ĩ�ŸÃ—ĄÅĸRĮÞĸÄóúþđóúĸaäóĸQâóĸĶðųĸ›âîĸ�ĄÅð�ÂO�������������������������������������������������������������������������������������������������������������������������������� a+ `+M`*Œ a+Š `*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ!d,Š)|7æ)~7ĸ1ˆ?þnÁ|ĸģčžĸŨðÛĸŲōÜĸŲōÝĸØōÜĸŲņÝĸÚņÞĸÛņßĸÛōßĸÛōßĸÜōßĸÜóāĸßôâĸĀéÆĸÞ§ĸ ßŠĸŦãīĸļįŋĸŧčÂĸķæūĸŪã·ĸ§áąĸĪāŪĸĄßŠĸžÞĻĸÞĻĸœÝĶĸ ßŠĸŪãķĸžęÄĸY§eþ8ŒFĸ,‚:ø!n-Â]'­_*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`*Ŋ`+Ŋ!^%ŊoMŊ—ąÆĨÉĸgÏâþČöûþŪōúĸbäóĸUâōĸVâóĸĶðųĸœâïĸ�ĄÅð�ÂO����������������������������������������������������������������������������������������������������������������������������a*: a+ķ`*ĸ^)ĸ\(ĸ\(ĸ\(ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ](ĸ])ĸ](ĸ_)ĸ%r2ĸ)}7ĸ*8ĸfŧuĸĪãŊĸÔðŲĸŲōÝĸØōÜĸŲōÝĸŲņÝĸÚņÞĸÛņÞĸÛōßĸÝōāĸÞóáĸßóâĸßóãĸÞóáĸĪāŪĸ ßŠĸŦãīĸËîÐĸĖîŅĸČíÎĸÅëËĸÃęĘĸŋéĮĸ·įĀĸ°äđĸŦâīĸĨāŊĸ ßŠĸžÞĻĸÞ§ĸžÞĻĸ áŦĸ„ˏþj·wĸQž]ĸ7}Bĸd+ĸ\%ĸ\'ĸ](ĸ])ĸ])ĸ])ĸ])ĸ])ĸ!]$ĸoNĸŸĸ ŠÍĸ|ŨįþÎøüþĨðųĸdåôĸYãōĸXãōĸWâóĸ§ðúĸœâïĸ�ĄÅð�ÂO������������������������������������������������������������������������������������������������������������������������a*6 a+Ö_*ĸa*ĸ(}7ĸ3Aĸ7”Fĸ8–Gĸ8˜Hĸ8—Hĸ8—Hĸ7—Gĸ7–Gĸ6–Gĸ6–Gĸ7–Gĸ6–Gĸ6–Gĸ6–Gĸ6–Gĸ6–Fĸ6–Fĸ6–Fĸ7–Fĸ7–Fĸ7–Fĸ7–Fĸ7–Fĸ7–Fĸ7–Fĸ7•Fĸ6•Eĸ5–Eĸ0Œ?ĸ-ˆ<ĸ(…7ĸ]ēkĸ—ÞĢĸËíÐĸÛōßĸÚōÞĸÚōÞĸÚņÞĸÜōßĸÝóáĸÞóâĸßóâĸßóãĸßóãĸāôäĸãôæĸŌïŨĸĄßŦĸĄßŦĸÅëËĸØņÜĸÓðØĸŅïÖĸÍîÓĸËíÐĸČėÎĸÅëĖĸÂęÉĸŋéÆĸļįÁĸģåžĸ­ãķĸ§á°ĸ ßŠĸžÞĻĸĒāŽĸĪâ­ĸœÞĶĸˆË“ĸt·ĸ\ĪhĸF™Tĸ1‘Aĸ+<ĸ.‘?ĸ0’Aĸ1’Aĸ4“;ĸ‰gĸ�•­ĸŪÐĸ•āíĸŅøýĸ›îøĸhåôĸ^ãóĸ]äóĸYâóĸXãóĸĻðúĸœâïĸĄÅð�ÂO�������������������������������������������������������������������������������������������������������������������� a+ a+Ī_*ĸ!h-ĸ6 HþHš[ĸMÁaĸOÃbĸOÄcĸOÄcĸOÄcĸOÄcĸOÄcĸOÃcĸOÃcĸOÃbĸNÃaĸNÃaĸNÃaĸNÃaĸNÃaĸNÃaĸNÃaĸNÃaĸNÃaĸMÃaĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸIĀ^ĸ8ĒJĸ,Œ<ĸCĒSĸŽØšĸģåžĸÜōāĸÚņÞĸÚņÞĸÛņßĸÜōāĸßóãĸßôãĸāôäĸāôäĸāôäĸâôæĸäöįĸįũęĸÍîÓĸĄßŦĸĄßŦĸÕðÚĸāôäĸÜōāĸŲņÝĸÖņÚĸÔðØĸŅïÖĸÎîÓĸĖîŅĸČėÎĸÅëĖĸÃęÉĸŋęÆĸščÂĸķæŋĸŊäļĸĻá°ĸ ßŠĸžÞĻĸĄāŦĸĢâŽĸœÞ§ĸ”ÚŸĸŠŨ—ĸtЃĸXÆkĸAūUĸ@ūOĸ$ą…ĸ�ž·ĸ$īÓĸŽéóĸÓųüĸ’ėũĸjåôĸcäóĸaäôĸ^äôĸZãōĸZãóĸĻņúĸâïĸĒÅð�ÂO��������������������������������������������������������������������������������������������������������������������`*9`*ų^*ĸ5œFþLÂ`ĸPÄdĸPÄdĸNÄcĸJÂ^ĸIÁ^ĸIÁ^ĸIÁ^ĸIÁ^ĸIÁ^ĸIÁ^ĸIÁ^ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÃ]ĸ@ēSĸ/Ž?ĸ(‡8ĸwɄĸ‘۝ĸÕðŲĸÚōÞĸÛņßĸÛōßĸÜōāĸßóâĸāôãĸāôäĸßóãĸāôäĸãõæĸåöčĸæũéĸčũęĸŨōÛĸĄßŦĸĄßŦĸÏîÔĸëøíĸåöįĸâôåĸßóâĸÜōāĸŲņÞĸÖņÚĸÔðØĸŅïŨĸÎïÔĸĖîŅĸČėÎĸÆëĖĸÃëĘĸŋęÆĸžčÃĸļįĀĸąäđĸĻáąĸ ÞŠĸŸÞĐĸ ßŠĸ ßŠĸžÞĻĸ›ÝĪĸÚĸ9ļĪĸ�›šĸ:―ØĸĀðũĸÐũüĸ‰ëũĸlæôĸiåôĸfåóĸbåôĸ_äôĸ\äóĸ[ãóĸĐņúĸâïĸĒÆï�ÂJ����������������������������������������������������������������������������������������������������������������`*`*__*ĸ%s2ĸFīXĸRÅeĸQÅeĸFĀ[ĸ>žRĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ?―Sĸ>ŧRĸ3šDĸ&y3ĸD›Sĸ‚ŅĸĪāŪĸÚōÞĸŲōÝĸÛņßĸÛņßĸÝōāĸßóâĸāôãĸāôäĸßôäĸáõåĸåöčĸæũéĸįũéĸįũéĸéũęĸĨāŊĸŸßĐĸŊäļĸïųðĸïųðĸęøėĸéøëĸæöčĸâôåĸßóãĸÜōāĸÚņÞĸŨņÛĸÔðŲĸŅïŨĸÏïÔĸËîŅĸÉėÎĸÆëĖĸÃëÉĸĀęĮĸūéÅĸŧčÂĸēåŧĸĐâēĸ ÞŠĸ ßĐĸ™ÜŦĸGžļĸ�œÂĸOÅÜĸĘóųĸĖöûĸéõĸpæôĸmæõĸjåôĸgåóĸcåôĸ`äóĸ]äôĸ\ãóĸĐņúĸžâïĸĒÆũ�žÃĄ� Äh� ÄT� Ä4� Ä������������������������������������������������������������������������������������������������`* a+w^)ĸ-:ĸLŧ^ĸRÅeĸIÁ\ĸ>―Sĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ>ūTĸ?ūTĸ<īOĸ.‹=ĸ$y2ĸhŧuĸ‡Ũ”ĸūčÅĸŲōÝĸÚņÞĸÚņßĸÜōßĸßóâĸāôãĸßóäĸāôäĸãõæĸæöčĸįũéĸįöčĸæöčĸæöčĸéũęĸÉėÏĸŸÞĐĸŸßĐĸīæŧĸæũčĸōúóĸïųņĸîųðĸėøîĸéøëĸæöčĸâôæĸßóãĸÝōāĸÚōÞĸŨņÜĸÔðŲĸŌðŨĸÏïÔĸĖîŌĸÉíÏĸÆėĖĸÃëĘĸĀęČĸŋéÆĸžčÃĸĪßŧĸ>·žĸ�Æĸ`ËāĸÐöûĸÆõûĸéõĸuįôĸræõĸoæõĸkåôĸhåóĸdåôĸ`äôĸ]äôĸ\ãóĸĐņúĸĄäðþ ĶČĸĢÆĸĢÆĸĒÆĸĒÅĸĄÄĸ� ÄÞ�ŸÃ›�ŸÃJ�ŸÃ� Ä����������������������������������������������������������������������������`* a+x])ĸ0„>ĸOū`ĸTÆfĸ@ūUĸ>―Sĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ9­Lĸ(}6ĸ4ŒBĸyɆĸˆŨ•ĸÐïÕĸŲōÝĸÛņßĸÛōßĸÞóâĸāôäĸÝóáĸâôåĸãöįĸæöčĸįũéĸæöčĸæöčĸįũéĸįũéĸčũęĸėøíĸšįÁĸĄßŦĸœÝ§ĸœÝ§ĸŊã·ĸĘíÏĸâõåĸęøėĸíųïĸïųņĸíųïĸęøëĸæũéĸãõæĸāóãĸÝóāĸÚōÞĸØņÜĸÔðŲĸŌðŨĸÏïÕĸÍîŌĸÉíÏĸÉíĖĸŠáÉĸ6ĩÄĸ�ĄČĸnÐãĸŨųýĸūôúĸéöĸwįôĸtįõĸqæõĸmæõĸjåôĸgåóĸcåôĸ`äóĸ]äôĸ\ãóĸ§ðųĸČôûĸŽíöĸĒęõĸ“æņĸ€ÝíĸeÓæþDÄÝĸ"ĩŌĸŠĘĸĨĮĸ� Äï�žÂ’�žÃ5�ŸÃ�������������������������������������������������������������������� a+ a+x])ĸ1…>ĸOŋaĸRÆeĸ?ūTĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ>―Sĸ6ĢHĸ%w3ĸIŸWĸ‚ŅĸŲšĸÖņÛĸÚņÞĸÛņßĸÝōāĸáôäĸÎîÓĸ§á°ĸŧčÁĸįöéĸįũéĸæöčĸæöčĸįũéĸéũëĸëøíĸėøîĸėøîĸėøîĸÆëĖĸ­ãķĸĒāŽĸœÝĶĸšÜĪĸ›ÝĨĸŊä·ĸÅëËĸÚōÞĸäöæĸíøïĸņúóĸîųðĸęøėĸæöéĸãõæĸāôäĸÞóáĸÚōßĸŨņÜĸÕðÚĸŲōØĸĢÞÐĸ$ŪÅĸ ĶĘĸ~ÖįĸŲúþĸąōųĸ~éõĸwįõĸvčõĸsįõĸpæôĸlæõĸjæôĸgåóĸcåôĸ_äôĸ\äóĸZãóĸˆëöĸŸïøĸžïøĸĒðųĸĶņųĸĢņųĸĪņųĸŪóûĸģõüĸ›ëöþmÖčþ<ŋŲĸŪÍĸ� Äĸ�ÂĪ�ŸÃC� Ä ������������������������������������������������������������ a+ a+x])ĸ1†>ĸOŋaĸRÆeĸ@ūUĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ>ŧSĸ3™Cĸ$w2ĸY­gĸ‰Ø–ĸ”Û ĸŨņÛĸÛōßĸÛōßĸÞóâĸäõčĸ˜ÜĪĸ\ÉnĸYČlĸŲōÝĸįũéĸįöéĸįũéĸęũėĸėøîĸëũíĸėũîĸėøîĸíøïĸïųņĸâôåĸÏïÔĸĀéĮĸąäđĸĒߎĸšÝĨĸšÜĪĸœÞ§ĸ­ãĩĸŋéÆĸÏîÕĸßôâĸíøïĸóúôĸïųņĸęøíĸįöéĸãõæĸâõäĸåöãĸ”ŨÕĸĶÅĸŽÍĸ’ßėĸŲûþĸĢïøĸzčõĸuįôĸučôĸsįôĸpæôĸnæõĸkåôĸhåôĸeåóĸbäóĸ^äôĸ[ãōĸXâōĸPáōĸKāōĸHāōĸ5Üðĸ ŲïĸŨîĸŨîĸ(ÚïĸCßņĸdåôĸŠíøĸŦóûĸ•æóþ[Íâĸ"ēÐĸ�Âõ�Â“ Ä,�������������������������������������������������������� a+ a+x])ĸ1†?ĸOŋaĸRÅeĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ĀUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ĀUĸ@ŋUĸ>šRĸ0‘@ĸ&}4ĸc·qĸŒÚ™ĸ•ÛĄĸØņÜĸÛōßĸÜóāĸßóãĸãõįĸŪã·ĸhÍyĸuŅ„ĸÜóßĸįũéĸįũéĸęũėĸėøîĸëũíĸėøîĸíøïĸíųðĸîųðĸîųðĸïúņĸņúōĸíųïĸáôäĸÖðÚĸĮėÎĸīåžĸĄßŽĸ™ÜĪĸšÝĪĸŸÞĐĸŦâīĸ·įūĸÆëĖĸÚōÞĸíųïĸõûöĸōúōĸîųíĸ„ŌŲĸĄÃĸ+ķÓĸ§įōĸÕúþĸ•íũĸsįõĸrįôĸsįôĸrįõĸpįõĸnįõĸlæôĸiåôĸfåóĸdåôĸ`äôĸ\äóĸYâóĸWâóĸVâóĸGāōĸ#Úïĸ Öíĸ�Óėĸ�Óėĸ�Óėĸ�Óėĸ�Ōėĸ�ÓėĸŨîĸ1ÜðĸdæõĸĻōúĸœįóþ_ÍâĸĻÉĸ�›ĀÐ� ÄV���������������������������������������������������� a+ a+x])ĸ1†?ĸOŋaĸRÅeĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ?ūTĸ@ŋUĸ?ŧSĸ;ģOĸ<ĩPĸ?ūTĸ@ŋUĸ?ūTĸ@ŋUĸ@ŋUĸ>ŧSĸ>ŧSĸ@ĀUĸ?ūUĸ?ūTĸ@ŋUĸ?―Tĸ<īOĸ<ģPĸ?―Tĸ>đRĸ-‹=ĸ+9ĸiŧwĸŒÚ™ĸ‘ŲĸØņÜĸÛōÞĸÞóáĸāôäĸāôäĸÛóāĸÎïÓĸÔðØĸæöčĸįũéĸéũëĸėøîĸëũíĸėøîĸîųðĸïųņĸņúóĸōúôĸōúôĸōúóĸðúōĸïųņĸîųðĸíøïĸëũíĸäõįĸÚóÞĸËíÐĸĩæ―ĸĄßŦĸ›ÝĨĸœÝĶĸ ßŠĸ§áąĸŊä·ĸĀéÅĸÔðÛĸtËØĸ�žÃĸAŋØĸ·íöĸÍũüĸ…ęöĸmæõĸnæôĸoįõĸoįõĸoįôĸmæõĸkæõĸiåôĸfåóĸdåôĸaäóĸ^äôĸ[ãóĸXãōĸXãóĸ4Üņĸ Öíĸ�Ôíĸ�Óėĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Óíĸ�Óėĸ�Óėĸ�ÓėĸÕíĸŲîĸeåõĸīōųþâïĸ2ļÔĸ�›Āï�ŸÃqĒÅ�������������������������������������������� a+ a+x])ĸ1†?ĸOŋaĸRÅeĸ@ŋUĸ?ŋTĸ?ŋTĸ?ŋTĸ?ŋTĸ?ŋTĸ@ŋUĸ>đRĸ7ŠJĸ9°Mĸ8ŪLĸ9ŪMĸ?―Tĸ@ŋUĸ@ūTĸ9­Lĸ7ŠJĸ7ĐJĸ:ŊMĸ@ĀUĸ@ŋUĸ>ŧSĸ8­Lĸ9ŊLĸ9ŊMĸ8ŦKĸ<ķQĸ-‰;ĸ/ƒ=ĸlžzĸÚšĸ‡Ũ•ĸŨņÛĸÜņāĸÞóâĸāôäĸßóãĸâõæĸįũéĸįũéĸįũéĸęũëĸîøðĸëũíĸėøîĸíųðĸðųņĸóúôĸóûôĸôûõĸôûõĸôûõĸóûôĸōúóĸïųņĸîųðĸėøîĸėøîĸëũíĸåöįĸãõæĸāôâĸÎîÓĸķæūĸ ßŠĸÞ§ĸŸÞĻĸšÜŦĸGžžĸ�ÄĸVĮÞĸÂņøĸÂôúĸučõĸiæôĸjæôĸkæõĸlæõĸkæõĸkæõĸjæôĸhæôĸgåóĸdåôĸbäóĸ_äôĸ\ãóĸZãōĸWâóĸŲïĸÔíĸ�Óėĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôėĸ�Óėĸ�ÓėĸÔíĸ&Úïĸ˜îøþŠėöĸKÂÛĸ�žÃþ�ŸÃw Ä���������������������������������������� a+ a+x])ĸ1‡?ĸRĀdĸUĮgĸAŋVĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸAĀVĸ9ąNĸJŋ]ĸcĘtĸ\Čnĸ@ļTĸ<ķQĸAĀVĸ;ēOĸ?ķSĸQÄeĸNÃaĸ=īPĸ=ķPĸAĀVĸ;ĩPĸDšXĸ_ÉpĸaĘrĸDžXĸ9ŽLĸ-‰<ĸ.‚<ĸlžyĸÚšĸ‡Ö”ĸĮėÍĸÜóāĸßôâĸāóäĸāôäĸäöįĸæũéĸįũéĸäöįĸŊäļĸūéÆĸōúóĸėøîĸîųðĸōúóĸôûõĸôûõĸóúôĸóúôĸóûôĸôûõĸôûõĸņúōĸîųðĸíøïĸëøíĸëøíĸčũęĸæöčĸįũčĸæũéĸâõåĸßôãĸËíŅĸŠáūĸ5ĩšĸ�žÅĸbĖáĸČõúĸĩōúĸiåôĸdåôĸfäóĸgåôĸhæôĸhæôĸhæôĸgæôĸgåôĸdåóĸcåôĸaäóĸ_ãôĸ\ãóĸZãōĸUâóĸŨîĸ�Óėĸ�Óėĸ�Óíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Óíĸ�Óėĸ�Óėĸ ÖíĸxčõþĩōųĸOÅÜĸĄÄĸ�ŸÃg� Ä������������������������������������ a+ a+x](ĸ2‡@ĸRĀdĸVĮhĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸ=đRĸiĖyĸ—ÜĒĸŠØ—ĸUÅhĸ<šQĸAŋVĸ<·Pĸ]Čnĸ‡Ũ•ĸ‚ԐĸUÅgĸ<ķOĸAŋVĸ=šRĸ\Įnĸ‘ڝĸ’ڝĸ`Ęrĸ:ģNĸ/>ĸ)8ĸgŧuĸÚšĸˆŨ•ĸŊäđĸÞóáĸßôâĸāóäĸāôäĸäöįĸæũéĸëøėĸĢā­ĸ_ĘqĸjÍ{ĸÃëĘĸōúóĸðúōĸóûôĸôûõĸôúõĸôûõĸöüũĸôúõĸóúôĸôúõĸōûóĸïúņĸíųïĸëũíĸëøíĸéũëĸæöčĸįũéĸæũéĸãõæĸāôäĸáôäĸÓïâĸO―Îĸ� Ãĸ]ĖáĸÅôúĸŽņúĸgåôĸ`äóĸbäôĸcäôĸdäôĸdäôĸdäôĸcäôĸbäóĸaäôĸ`ãóĸ^ãóĸ[ãóĸZãōĸUâóĸŨîĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�ÓėĸÕíĸjæõĸĩóúþDĀØĸĄÄĸ�ŸÃF������������������������������������ a+ a+x](ĸ2‡AĸTĀfĸWĮjĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸ@ūUĸAūUĸfËwĸ•ÛĄĸ‡Ũ•ĸTÅgĸ>ūTĸ@ŋUĸ@―TĸfËwĸÞ§ĸ”Û ĸ\Čoĸ>―Sĸ@ŋUĸ?ūTĸ[ĮmĸŲ›ĸÚœĸ^Čoĸ=đRĸ0“Aĸ${3ĸaĩoĸÚšĸŠŨ—ĸ“Û ĸÜōßĸßôãĸāóäĸāôäĸäöįĸæũéĸęøėĸŽãīĸkÎ{ĸvŅ…ĸÆėĖĸōúóĸíųïĸäöįĸîųðĸóúôĸõûöĸũüøĸõûöĸóúôĸôúõĸōûóĸïúņĸíųïĸëũíĸëøíĸéũëĸæöčĸįũéĸæũéĸãõæĸāôäĸßóãĸáôãĸÆëŌĸ>ļēĸ�žÁĸTČßĸĀōųĸķóúĸkæôĸ\ãóĸ_äôĸ`äôĸ`äôĸ`äôĸ`äôĸ_ãôĸ^ãóĸ\ãóĸZãōĸZãóĸUâóĸŲïĸ�Ôíĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�ÓėĸÕíĸpįõĸŪņųþ/ķÓĸ�ŸÃõ� Ä%�������������������������������� a+ a+x](ĸ2‡@ĸTĀgĸXĮlĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸ@ūUĸHÂ\ĸ[ĮmĸVÆiĸCĀWĸ@ūUĸ@ūUĸ@ūUĸOÃbĸiĖzĸfĖxĸJÂ^ĸ@ūUĸAūVĸ@ūUĸEÁZĸYĮkĸYĮlĸEĀYĸ?žTĸ4œEĸ$w2ĸUŠcĸˆŨ•ĸ‹Ø˜ĸˆŨ•ĸÂęČĸáôäĸßóäĸāôäĸäöįĸæũéĸįũéĸæũčĸķæūĸÂęČĸïøņĸîųðĸŋęÆĸ„Ö’ĸĶá°ĸņúōĸóúôĸôûõĸóúôĸôûõĸôûõĸņúóĸîųņĸėøîĸëũíĸëøíĸčũęĸæöčĸįöčĸæũéĸãõæĸāôäĸāôäĸÜóāĸģåđĸƒÕ•ĸ=ĩ§ĸ�œ―ĸIÃÜĸšðũĸūõûĸrįõĸXãóĸ\ãóĸ\ãóĸ\ãóĸ[ãóĸ[ãóĸZãōĸYâōĸWâóĸVâóĸ-ÛðĸÔíĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�ÓėĸÖîĸ†ëũĸœéôþŠĘĸ�ŸÃÆ Ä���������������������������� a+ a+x](ĸ3‡AĸVÁgĸZČlĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸ@ūUĸ>ūSĸ>ūSĸ@ūUĸAŋVĸAŋVĸAŋVĸ?ūTĸAŋVĸAŋVĸ?ūTĸAŋVĸAŋVĸAŋVĸ@ūUĸ>ūSĸ>ūSĸ@ūUĸ@ūUĸ8§Jĸ%x3ĸDšRĸ€Ïĸ‹Ø˜ĸŠŨ—ĸ˜ÜĢĸÜóāĸāôäĸßôãĸãõæĸæöéĸæöčĸįũéĸėøîĸðųōĸėøîĸéöëĸØšĸYČkĸXĮkĸíųïĸôúõĸóúôĸôûõĸôûõĸóúôĸïúņĸíųïĸëũíĸėøîĸëũíĸįũéĸæöčĸįũéĸæöčĸáôåĸāôäĸßôãĸÏîÔĸŲœĸÛšĸc·sĸ“zĸ�™ŧĸ:žØĸąėöĸÄöüĸxčõĸTâōĸXâōĸYãōĸXâōĸXâōĸWâóĸVâóĸUâóĸ;ÞņĸÕíĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ōėĸ"ŲïĸĻōûĸyØéþ�žÃĸ�ŸÃ{���������������������������� a+ a+x](ĸ3‡AĸVÁhĸZČlĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸ@ŋUĸ@ūUĸ@ūUĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸ;°Oĸ)€8ĸ-…<ĸvĮ„ĸŒŲ™ĸ‹Ø˜ĸŠŨ—ĸģåŧĸäõčĸßóãĸâõåĸæöčĸįũéĸįöéĸįũéĸęøėĸėøîĸėøîĸšįÂĸԍĸžßĐĸïúņĸôûõĸôûõĸôûõĸōúôĸðúōĸîųðĸėøîĸėøîĸėøîĸęũėĸæöčĸįũéĸįũéĸåöčĸāôäĸßóãĸāóäĸĢāŪĸˆŨ•ĸŠŲ—ĸOĢ[ĸ'|5ĸ˜pĸ�ŋĸ+īÓĸĶéôĸČũýĸ|éõĸRáōĸTâōĸUâóĸTâóĸSâōĸSâóĸFāōĸŨîĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Óėĸ�Óėĸ�Óėĸ�Óíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�ŌėĸQâóĸīóúĸ9ŧÖĸ�Âā� Ä!������������������������ a+ a+x](ĸ3ˆAĸVÁhĸZČlĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸ@ūUĸAŋVĸ>·Rĸ0?ĸ$y2ĸ^ģlĸˆÖ•ĸ‹Ø˜ĸŠŨ—ĸ‘ڝĸÅëĖĸäõčĸāôäĸåõįĸæöčĸįũéĸįũéĸįũéĸëøíĸėøîĸčöęĸÜóāĸįöęĸïúņĸðúņĸðúņĸðúņĸïųņĸíųïĸėøîĸėũîĸėũîĸëøíĸįũéĸæöčĸįöčĸæũéĸãõįĸāôäĸãõįĸķæŋĸ‰Ũ—ĸŒŲ™ĸxɆĸ:‘Iĸ&x3ĸ9ŠLĸ0ķrĸ� ūĸ"°Ðĸ›åņĸËøýĸ}éöĸPáóĸPáōĸPâóĸPáóĸJāōĸŨîĸ�Óėĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Óėĸ�Ōėĸ�Ōíĸ�Ōėĸ�Ōėĸ�Ōėĸ�Ōėĸ�Ōėĸ�Óėĸ�Óėĸ�Óíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Óėĸ�Ôíĸ—íøĸ™įóĸ�ŸÃû�ŸÃ������������������������ a+ a+x](ĸ3ˆAĸVÂgĸ[ČlĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸ6 Gĸ'z4ĸ8‘Gĸ‚Ґĸ‹Ø˜ĸŠŨ—ĸŠŨ—ĸ˜ÜĪĸÏîÔĸâôæĸâõæĸæöčĸįũéĸæöčĸæöčĸčũęĸëøíĸėøîĸėøîĸėøîĸíųïĸîųðĸîųðĸíųïĸėøîĸėøîĸėøîĸėũîĸëøíĸįũéĸæöčĸæöčĸįũéĸæöčĸáôåĸãõįĸÁéČĸŒØ˜ĸŠŨ—ĸŒŲ™ĸaīoĸ'}5ĸ,†:ĸ>ļRĸ@ŋVĸ4đjĸĒŧĸŽÏĸ”áïĸÍøýĸ}éöĸNáóĸOáōĸAßņĸÖîĸ�Óíĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�ÔíĸÔíĸoįõĸĐðųĸ§ņųĸĒðųĸ–îøĸëöĸgåõĸDßņĸŲîĸ�Ōėĸ�Óėĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Óėĸ<Þņĸēņųĸ>ŋØĸ�œÁÎ� Ä�������������������� a+ a+x](ĸ3ˆAĸWÂhĸ[ČmĸAŋVĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸAĀVĸ<ąOĸ-ˆ<ĸ$x2ĸdđrĸŠŨ—ĸ‹Ø˜ĸ‹Ø˜ĸ‰Ũ–ĸšÝĨĸÐîÕĸáõåĸäõįĸæöčĸįũéĸįũéĸæöčĸčũęĸëøíĸėũîĸëøíĸëũíĸëũíĸëũíĸëũíĸëũíĸëøíĸėũîĸëøíĸįũéĸįũéĸįũéĸįũéĸæöčĸãõæĸâõæĸÂęÉĸŒØ™ĸ‹Ø˜ĸ‹Ø˜ĸ}͊ĸ>•Mĸ&y4ĸ5ŸFĸ@―UĸAŋVĸ@ūVĸ6šfĸĢĩĸŠÍĸŽāíĸËũüĸpįõĸØïĸ�Óėĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�ÔíĸÔíĸzéöĸ§ėõþrÕæĸxÕįĸ…Úęĸ›äðĸ°ïũĸąņųĸąņúĸžîųĸ\ãóĸŨîĸ�Óėĸ�Ôíĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�ÓėĸĄïøĸ‡āîĸ�›Āņ�ŸÃc�������������������� a+ a+x](ĸ3ˆAĸWÂhĸ[ČnĸBŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸ3šDĸ)}6ĸ.†<ĸ€ÐŽĸ‹Ø˜ĸŠŨ—ĸ‹Ø˜ĸˆŨ•ĸ–ÛĄĸĘėÐĸßôäĸåõįĸįöéĸįũéĸįũéĸæöčĸįöéĸéũëĸëũíĸëøíĸëøíĸëøíĸëøíĸëũíĸëũíĸčũęĸæöčĸæöčĸįũéĸįũéĸæöčĸäõįĸßôãĸļįĀĸŒØ™ĸŠŨ—ĸ‹Ø˜ĸ‰Ö–ĸ]ģkĸ#z2ĸ,…:ĸ=ģPĸAŋVĸAŋVĸAŋVĸBŋTĸ7šgĸ Ī­ĸĪČĸrŲęĸķōúĸSâóĸÔíĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�ÔíĸÔíĸ|éöĸŠÞíĸ�žÃþ�œÁó�œÁî�œÁō Áþ$­ËĸOÂÛĸ†Üëĸ­îũĸŪðųĸlæõĸŨîĸÔíĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�ÓėĸXãóĸ§ëõĸŪÎĸ�Áœ�������������������� a+ a+x](ĸ4ˆBĸYÃjĸ]ÉoĸDĀYĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸDÁYĸ>ģQĸ-ˆ<ĸ&{4ĸGžVĸˆÖ•ĸ‹Ø˜ĸŠŨ—ĸ‹Ø˜ĸˆŨ–ĸŒØ™ĸļįĀĸÖņÜĸåöčĸčũęĸįũéĸæöčĸæũčĸæöčĸæöčĸčũęĸéũëĸéũëĸéũëĸįũéĸæöčĸæöčĸæũčĸįöčĸįũéĸįũéĸâõåĸŅïŨĸ§áąĸŠŨ—ĸŠŨ—ĸŠŨ—ĸ‹Ø˜ĸsŀĸ,ƒ:ĸ(|6ĸ6ŸGĸBūWĸCĀXĸCĀXĸCĀXĸCĀXĸEĀUĸ9ŧgĸͧĸ�ĒÆĸjÕčĸķōúĸeåôĸ Õíĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�ÔíĸÔíĸ|éöĸŠßíĸ� Äō�žÂd�˜Í,ąŪ`IūĄų.ģ­ĸĶ·þ žĸŽËĸcÏãĸĄéôĸŦņúþEāņĸ Õíĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�ÓėĸŲïĸ°ðøþDÄÜĸ�šĀÁ� Ä ���������������� a+ a+x](ĸ4‰BĸZÃkĸ_ĘpĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDŋYĸEÃZĸ7ĄHĸ*€8ĸ&{4ĸYŪgĸ‹Ų˜ĸ‹Ø˜ĸŠŨ—ĸ‹Ø˜ĸŠŨ—ĸ…Ö“ĸÝĻĸĀęĮĸÖņÛĸæöčĸęøėĸčũęĸįũéĸįũéĸæöčĸæöčĸæöčĸæöčĸæöčĸįũéĸįũéĸéũęĸęøėĸãõæĸŅïÖĸķæŋĸ“ÚŸĸ‡Ö”ĸŠŨ—ĸŠŨ—ĸŒŲ™ĸ|͊ĸ9‘Gĸ&z4ĸ/>ĸ@ķSĸDÁYĸDŋYĸDĀYĸDĀYĸDŋYĸCŋYĸFÁUĸ;žfĸĻĄĸ�ŸÅĸ\ÏãĸēōųĸsčöĸÖîĸ�Ōėĸ�Ôíĸ�Ôíĸ�Ôíĸ�ÔíĸÔíĸ|éöĸŠßíĸ� Äï�›ĮGãū�yŌ€‹{ӃüԄĸzԊĸUÛýŦģÜ�™ÂãąÏĸrØéĸļóûþjæõĸ Öîĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�ÔíĸÔíĸĄïųĸlÖčĸ�›Āá�ŸÃ?���������������� a+ a+x](ĸ4ˆBĸZÃkĸ_ĘpĸDĀYĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸDĀYĸCūWĸ2”Bĸ)}7ĸ*€8ĸ^ģlĸŒÛ™ĸŒØ™ĸŠŨ—ĸ‹Ø˜ĸ‹Ũ˜ĸˆŨ–ĸˆŨ•ĸœÝ§ĸģåŧĸÆėĖĸÖņÚĸäõæĸëøíĸėøíĸëøíĸëøėĸëøíĸėøíĸęøėĸāõãĸŌðÖĸÁęČĸ­ãĩĸ–ÜĒĸ†Ö”ĸ‰Ũ–ĸ‹Ø˜ĸŠŨ—ĸŽÚ›ĸЍĸA—Oĸ%z3ĸ,ƒ:ĸ;ŽNĸDÁYĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋYĸFÁUĸ=žbĸŦšĸ�žĮĸKÆÞĸŦðųĸ€ęũĸØîĸ�Óėĸ�Óíĸ�Ôíĸ�ÔíĸÔíĸ|éöĸŠßíĸ� ÅmoÏvtnÎ~ópÏĸrЁþuЃĸ{Ō‚ëx҇_�˜ĖA�›ÁĀĪĮĸOĘāĸēóûĸsįõĸÔíĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�ÔíĸÔíĸ~ęöĸ‰āîĸ�ĒÅú�žÂY���������������� a+ a+x](ĸ5ˆCĸ[Ãlĸ_ĘpĸFĀ[ĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEÁ[ĸBŧVĸ/>ĸ(|6ĸ-„;ĸZŊhĸŠŲ—ĸŒŲ™ĸŠŨ—ĸ‹Ø˜ĸ‹Ø˜ĸŠŨ—ĸ‰Ũ–ĸˆŨ–ĸŲœĸ›ÝĶĸĢß­ĸŦãīĸģåŧĸļįĀĸđįĀĸķįŋĸ°äđĸĻâēĸĄßŦĸ˜ÜĢĸØšĸ‡Ö•ĸ‰Ũ–ĸŠŨ—ĸŠŨ—ĸŠŨ—ĸÜĸxˇĸ@–Nĸ'|5ĸ*8ĸ9ĪKĸEÁZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸFÁWĸAŋ`ĸ Ŋ’ĸ�žÉĸ<ŋŲĸĨîũĸ‹ėøĸŲïĸ�Óėĸ�Óėĸ�ÔíĸÔíĸ|éöĸŠßîĸĒÁú?ŧágĖtøgĖxĸiÍyĸkÍ{ĸmÎ~ĸoÎ~ÌÛ~ãĀ’� Ä�žÂŸ�ĄÄĸBÆÞþģõüĸ`äóĸ�Óėĸ�Óėĸ�Ôíĸ�Ôíĸ�ÔíĸÔíĸcåôĸ•äņĸ ĐËĸ�œÁm���������������� a+ a+x](ĸ5ˆCĸ[Ãlĸ`ĘqĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFĀ[ĸFÂ[ĸBšVĸ.Š=ĸ(|6ĸ,‚:ĸNĪ\ĸƒÓ‘ĸŽÚ›ĸ‹Ø˜ĸŠŨ—ĸ‹Ø˜ĸ‹Ø˜ĸŠŨ—ĸŠŨ—ĸ‰Ũ—ĸ‰Ũ–ĸ‰Ũ–ĸ‹Ø˜ĸØšĸØšĸŒØ™ĸ‹Ø˜ĸ‰Ũ–ĸ‰Ũ–ĸŠŨ—ĸŠŨ—ĸ‹Ø˜ĸ‹Ø˜ĸŠŨ—ĸ‹Ø˜ĸÝœĸjūxĸ8ŽFĸ)~7ĸ)}7ĸ8ĒIĸEĀZĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁYĸCŋ^ĸ'ēˆĸ�ŸÉĸ2šÖĸŸëõĸ–îøĸØïĸ�Óėĸ�ÓėĸÔíĸ|éöĸ‹ßîþĒŋĸ@ŧ‰ĸaĘnĸaĘrþcËtþeËvĸfĖwójÍzAឍ�ļv$�·u#�� Ä �ŸÃĢÆĸYŅåþ­óûĸ6Ýðĸ�Ōėĸ�Ôíĸ�Ôíĸ�ÔíĸÔíĸPâóĸœįóþŊÎĸ�œÁ~���������������� a+ a+x](ĸ5ˆCĸ[Ãlĸ`ĘqĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸEÁZĸFĀ[ĸFÁ[ĸBŧWĸ/>ĸ(|6ĸ)~7ĸ:‘HĸsƁĸŒŲ™ĸ‹Ø˜ĸŠŨ—ĸ‹Ø˜ĸ‹Ø˜ĸ‹Ø˜ĸ‹Ø˜ĸ‹Ø˜ĸŠŨ—ĸŠŨ—ĸŠŨ—ĸŠŨ—ĸŠŨ—ĸŠŨ—ĸŠŨ—ĸ‹Ø˜ĸ‹Ø˜ĸ‹Ø˜ĸŠŨ—ĸ‹Ø˜ĸŲšĸ†Õ“ĸTŠaĸ.„<ĸ)~7ĸ(|7ĸ9ĨKĸFÁ[ĸFÁ[ĸEĀZĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸEĀ[ĸFÁZĸDĀ]ĸ,ĩ€ĸ�žÅĸ*·Õĸ›éôĸĄðųĸØîĸ�ÓėĸÔíĸ|éöĸ‹ßîĸĒŋĸ:š„ĸYČgĸZČlþ\Čnĸ^ÉpĸaĘq^ęĘĒ�đ|-�ĩt"����������ŸÃ�ŸÃČĐĘĸ”čôþzéöĸÕíĸ�Óėĸ�Ôíĸ�ÔíĸÔíĸHáōĸŸčóĸąÐĸ�œÁ†�ŸÄ������������ a+ a+x](ĸ5‰Cĸ\Ämĸ`ĘqĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸEĀZĸFÁ[ĸD―Yĸ2•Cĸ)}7ĸ)~7ĸ(~6ĸNĪ\ĸŅŽĸŠŨ—ĸŠŨ—ĸ‹Ø˜ĸ‹Ø˜ĸ‹Ø˜ĸ‹Ø˜ĸŠŨ—ĸ‹Ø˜ĸ‹Ø˜ĸ‹Ø˜ĸŠŨ—ĸŠŨ—ĸ‹Ø˜ĸ‹Ø˜ĸ‹Ø˜ĸ‹Ø˜ĸŠŨ—ĸˆÖ•ĸjĀyĸ6ŽDĸ(}6ĸ)~7ĸ*8ĸ=ŽPĸFÁ[ĸEĀZĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁZĸEĀ[ĸ.ĩ~ĸ�žūĸ$ĩÓĸ˜čóĸŠņúĸ"ÚïĸÔíĸ{éöĸ‹ßîþĒŋĸ5·€ĸRÅaþRÅeĸTÆfåYÆk;æŋ�ŲŊv�Ļk�ŧ„;��������������ŸÃ" ÄĸCÁŲĸŦôûþ1Üðĸ�Óėĸ�Óėĸ�ÔíĸÔíĸHáōĸ čóþ ēÐĸ�œÁ†�ĢÃ������������ a+ a+x](ĸ5‰Dĸ^ÄoĸbËtĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸEĀZĸFÁ[ĸEĀZĸ8ĢJĸ,„:ĸ*8ĸ'|5ĸ'6ĸLĨ[ĸrƀĸ„Ō‘ĸ†Ô“ĸ‰Ũ–ĸ‹Ø˜ĸ‹Ø˜ĸ‹Ø˜ĸ‹Ø˜ĸ‹Ø˜ĸ‹Ø˜ĸ‹Ø˜ĸŠØ—ĸˆÖ•ĸ…Ó’ĸ€Ïĸaļpĸ9’Hĸ%y3ĸ)}6ĸ*€8ĸ0?ĸA·UĸFÁ[ĸEĀZĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸEĀ[ĸFÁZĸGÁYĸ/ķ}ĸ�ŸļĸąÐĸ”æōĸŊōúĸ2Üņĸ|éöĸŠßîĸĒŋþ2ķ€ōNÃ]ĘNÃakáĩ~�āķ�⹄�ȖV�Ÿf������������������ Ä�žÂŽĖĸ įóþXãôĸ�Óėĸ�Óėĸ�ÔíĸÔíĸQâóĸœįōþŊÎĸ�œÁ{���������������� a+ a+x](ĸ5‰Dĸ^ÄoĸbËtĸFÁ[ĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEĀZĸFÁ[ĸGÃ\ĸ@īSĸ2”Cĸ,…;ĸ)}7ĸ&z4ĸ%z3ĸ3ŒBĸMĪ\ĸa·oĸqÃĸwĮ„ĸyȇĸ{ɈĸzɇĸxȆĸuƃĸkūxĸXŊgĸB™Pĸ(7ĸ%y2ĸ'{5ĸ*€8ĸ.Š=ĸ8ĢJĸEĀZĸFÂ[ĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEĀZĸFÁZĸHÂVĸ3·}ĸĄĩĸŽÍĸŠâïĸĩôúĸïøĸ‡Þíĸ�ĄÃó žUāąt�āēu�āēw�āģx�ãķ|�―‹K�—a����������������������žÂ) ĪÆĸsÓåĸ~ëũĸÖîĸ�Óėĸ�ÔíĸÔíĸdåôĸ•äðĸ ĐĘĸ�Áj���������������� a+ a+x](ĸ6ŠDĸ^ÅoĸbËtĸGÁ\ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFĀ[ĸFĀ[ĸGÂ\ĸFÂ[ĸ>ŪPĸ5˜Eĸ/Š>ĸ*€8ĸ'z4ĸ%y3ĸ$x2ĸ#z2ĸ)ƒ8ĸ1‡@ĸ4ˆBĸ3ˆAĸ-…<ĸ%4ĸ#x1ĸ$x2ĸ&z4ĸ({6ĸ,„:ĸ1‘Aĸ8ĒJĸBšWĸGÄ\ĸFÁ[ĸFĀ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFĀ[ĸEĀZĸQÅ\ĸ?ž€ĸ Īģĸ ŠÍĸzÛëĸšöüĸ†Þíĸ� Äï�ÄMʼn;�ʼn=�Ŋ<�Ɗ>�Į‹?�ļ}.�Šm�đy'�ļy&�ļx&�ļx&�ļx&��žÃ�žÂĀRÄÛĸšïųĸØïĸ�Óėĸ�ÔíĸÔíĸ€ęũĸ‡ßíĸ� Äö�žÂU���������������� a+ a+x](ĸ6ŠDĸ_ÅpĸcËtĸHÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGĀ\ĸGÁ\ĸHÃ]ĸHÃ\ĸBīTĸ;§Mĸ6šFĸ0@ĸ,†;ĸ)~7ĸ'z5ĸ'y4ĸ&y4ĸ&y4ĸ'y4ĸ({5ĸ+‚9ĸ.Š=ĸ3”Cĸ9 Jĸ>­PĸEžXĸHÄ]ĸHÂ\ĸGĀ\ĸGĀ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸFĀ[ĸNÃaĸ\ÉfĸBķwĸ’Ēĸ ĐÎĸkÔæĸˆāïĸ�ĄÅð�žÂOΠe�Πe�Πe�ÎĄe�Ï f�ÐĒi�ŅĢh�ÐĒh�ÐĒh�ÐĒh�ÐĒh�ÐĒi�� Ä �›ÁŒAŧÕĸĨîøĸ$Úïĸ�Óėĸ�ÓíĸÕíĸĄïøĸkÔæĸ�šĀÚ�ŸÃ9���������������� a+ a+x](ĸ6ŠDĸ_ÅpĸcĖtĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHĀ[ĸHÁ\ĸHÂ\ĸHÂ\ĸGŋZĸCļWĸAģTĸ?ŊRĸ=ŽOĸ;ĻMĸ:ĨLĸ;ĶMĸ<ŠNĸ>­Pĸ@ąSĸBĩUĸEŧXĸHÂ\ĸHÂ\ĸHÁ\ĸHĀ[ĸHĀ[ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸGĀ[ĸNÃbĸXČlĸSŧ`ĸlAĸŒ–ĸ ĐÏĸ1šÕĸĒÅð�žÃOïÛÃ�ïÛÃ�ïÛÃ�ïÛÅ�ïÛÃ�ïÜÃ�ïÜÃ�ïÜÃ�ïÜÃ�ïÜÃ�ïÜÃ�ïÜÃ��ĄÃ�›Āp9ļÓĸ§ėöĸ)Ûðĸ�Óėĸ�Óėĸ!Úïĸ°ïøþBĀÚĸ�›Āđ� ÄĮ“P������������� a+ a+x](ĸ6ŠDĸ_ÆpĸcĖtĸHÁ\ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGÁ\ĸHÁ\ĸHÁ\ĸHÂ\ĸHÂ\ĸGÁ[ĸGĀ[ĸGĀ[ĸGÁ[ĸHÂ\ĸHÁ\ĸHÁ\ĸHÁ\ĸGÁ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸGĀ[ĸNÃaĸZČlĸRŧdĸ"c+ĸf8ýžÕ�ĒĮĸ� Äï�ŸÃOįÉ �įÉ �įÉ �įÉ �įÉ �įÉ �įÉ �įÉ �įÉ �įÉ �įÉ �įÉ �� Ã�šĀg9·Óĸ§ėõĸ)Ûðĸ�Óėĸ�ÓėĸcäôĸĶëõĸĐĘĸ�ÂŽđx%�ɔR������������� a+ a+x](ĸ6ŠDĸ`ÆqĸeĖwĸJÂ^ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸIÁ]ĸPÄcĸZČlĸSžeĸ!d,ĸ `*ųkD`�ĢĖ�ŸÃû� ÄOæĮž�æĮž�æĮž�æĮž�æĮž�æĮž�æĮž�æĮž�æĮž�æĮž�æĮž�æĮž�� Ä�šĀr?šÕĸĨíöĸ&Úïĸ�ÓėĸÔíĸĐðøþ|Ųéĸ�›Āį�ŸÃNŧ|(�ȔR������������� a+ a+x](ĸ7‹EĸbĮrĸgÍxĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸKÂ_ĸRÅdĸ[ÉmĸSžeĸ!d,ĸa+ų `(O�ĸĸ�ŸÃ~�ŸÃQčÉ �čÉ �čÉ �čÉ �čÉ �čÉ �čÉ �čÉ �čÉ �čÉ �čÉ �čÉ ��ŸÃ �œÁLŋØĸŸïøĸŲïĸ�ŌėĸQáōĸ°ðøĸ.ĩŌĸ�ÂÁ� Äŧ{(�ʘW������������� a+ a+x](ĸ7‹EĸbĮrĸgÍxĸLÃ`ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÂ_ĸRÅdĸ[ÉmĸSžeĸ!d,ĸ a+ųa+QæĮŸ�� Ä�ŸÃæĮŸ�æĮŸ�æĮŸ�æĮŸ�æĮŸ�æĮŸ�æĮŸ�æĮŸ�æĮŸ�æĮŸ�æĮŸ�æĮŸ��ÂĄÅÃcĘßĸ‡ėøþÖîþ ÕíþĻðųþˆÞėĸ�›Áō�ŸÄeîÜÆ�ŧ{(�˚Z������������� a+ a+x](ĸ7‹EĸbĮsĸgÍxĸMÃaĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸLÃ`ĸKÂ_ĸRÅeĸ\ÉnĸT―eĸ!d,ĸ a+ų a+QŲĻf�ŲĻf�ŲĻf�ŲĻf�ŲĻf�ŲĻf�ÚĻf�ŲĻf�ŲĻf�ŲĻf�ŲĻf�ŲĻf�ŲĐf�ŲĐf�ÚĐf��Â+ĻÉųzØčþ^åõöÔíóoįõøŠîöû!ŊÎü�žÂ―é˧�îÜÆ�ŧ{(�˚Z������������� a+ a+x](ĸ8‹EĸdĮtĸhÍyĸNÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸLÂ`ĸSÅfĸ^ĘpĸVūgĸ!d-ĸ a+ų a+QņÕķ�óŨđ�óŨ·�óŨļ�ōÕ·�ôŨ·�ôŨļ�óÖĩ�óÖĩ�ôÖķ�ôÕĩ�ôÖĩ�óÔģ�ôÔī�ōÓģ��ŸÃ ēÐü†åóņ5Ýņä9ÝņįŸïųņOĮÞø�žÃÜŸÄ5čĖĻ�îÜÆ�ŧ{(�˚Z������������� a+ a+x](ĸ7ŒFĸcĮtĸiÍzĸMÃaĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸKÂ`ĸKÂ_ĸJÂ_ĸKÂ_ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸKÂ_ĸJÂ_ĸKÂ_ĸKÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸLÂ`ĸSÅgĸ]ĘpĸU―gĸ!d-ĸ a+ų a+Qþųó�æāÚ�íčā�åßŲ�ýõė�ÚÓÎ�ÚÔÍ�ėäÜ�îæÝ�ÜÖÏ�ęáØ�ÞÕÎ�îãŲ�áÖÏ�� Ã!ĪĮŅ>ÆÞïkčöÝ@Þņ؂ėũâZŅåðĨČį�ŸÃ`æĮž�ęÎĐ�ðÜÆ�ŧ{'�˚[������������� a+ a+x](ĸ7‹FĸcĮuĸiÍzĸNÄbĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃ`ĸWĮjĸ_ÉqĸcĘtĸ_ÉqĸTÅgĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸLÃ`ĸTÅgĸ_ÉqĸbĘtĸ`ÉrĸWÆjĸNÃbĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸTÆgĸ^ĘpĸVūgĸ!d-ĸ a+ų a+Qōïį�ĐĶĪ�˜”�žœ˜�ŋ·°�ggg�yyy�”‰�ž·°�qqp�}xt�VVU�”މ�Ї…�� Ä‹ °Ïå^ßðÔ`åôÎlčöÏSÔįâ ŽÍá� ÄuŸÄæĮž�čÍĐ�îÜÆ�ŧ{'�˚[������������� a+ a+x\(ĸ8ŒFĸdĮuĸhÍyĸNÃbĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸLÂ`ĸPÄdĸ`ĘrĸeĖvĸgÍxĸhÍyĸgÍxĸeĖvĸ]ÉoĸOÄcĸLÂ`ĸMÃaĸMÃaĸMÃaĸLÂ`ĸOÃcĸ\ÉoĸdĖuĸgÍxĸhÎyĸgÍxĸeĖvĸ`ĘqĸRÄdĸLÂ`ĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸLÂ`ĸTÅgĸ_ËqĸVŋgĸ!d-ĸ a+ų a+Qðíå�―žđ�Īž™�‡‡‡�„y�><<�ssr�Ąœ–�ƒ‚€�ono�œ˜“�A@@�qkg��žÂ[�ĻĘĘ/ÍäĮWäôŧ_æõžAŅįÏ ŊÏÓ�ĄÄ|�ŸÃ įĮŸ�æĮž�éÍĐ�îÜÆ�ŧ{'�˚[������������� a+ a+x](ĸ8ŒEĸcĮtĸgÍyĸKÂ_ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸIÁ]ĸMÂ`ĸ\Énĸ`ĘqĸaĘqĸ[ĮmĸUÁgĸYÆkĸ`Ęqĸ`Ęqĸ^ÉpĸUÆhĸLÂ`ĸIÁ]ĸLÂ_ĸTÅgĸ]Éoĸ`ĘqĸaĘrĸ\ČnĸUÂgĸWÄiĸ_ĘqĸaĘrĸ\ČnĸMÃaĸJÁ]ĸJÂ^ĸJÂ^ĸJÂ^ĸJÂ^ĸIÁ]ĸQÄdĸ\ĘoĸT―fĸ!d,ĸ a+ų a+Q œ—�°ŪŪ�ˆ‡…�Đǜ�ÉÃŧ�Áđē�Äŋ·�čßÕ�ū·Ŋ�ČÃŧ�áŨÍ�ŋķŊ��ŸÂD�ĻĘŽŋÜš8Þō ?ßņĪ)ĖäđŊÎÂ�ĒÅu�žÁŲĻg�įĮŸ�æĮž�éÍĐ�îÜÆ�ŧ{'�˚[������������� a+ a+x](ĸ7‹EĸbĮsĸfÍwĸGÁ\ĸFĀ[ĸFĀ[ĸFĀ[ĸFÁ[ĸFĀ[ĸFŋ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFÁ[ĸFĀ[ĸFŋZĸFŋ[ĸFŋZĸFŋ[ĸFÁ[ĸFÁ[ĸFĀ[ĸFŋ[ĸFĀ[ĸFĀ[ĸFÁ[ĸFĀ[ĸEŋZĸFĀ[ĸFÁ[ĸFÁ[ĸFĀ[ĸFŋZĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸQÄeĸVÆhĸUÆgĸ@ģUĸ5ĨHĸ6ĶIĸ6ĶIĸBģUĸSÄfĸVĮhĸVÆhĸWĮiĸUĮhĸVĮiĸVÆhĸVÆhĸVĮhĸE·Yĸ6ĶIĸ6ĶIĸ6ĶIĸ<ŪOĸPÁcĸWĮiĸPÄcĸGÁ\ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸFĀ[ĸOÃbĸ[ČmĸS―eĸ!d,ĸ a+ų a+Qžķ°�І‚�‘‰�ŒŠ†�īŊĻ�ĸüó�ĸøî�ĸöé�ĸøí�ĸøí�ĸóč��žÃ=�ĻʗđŨŠŨïƒÖí‰ÄÞĒ�ŽÍ­�ĄÄ`�œÂ ęɟ�ŲĻg�įĮŸ�æĮž�éÍĐ�îÜÆ�ŧ{'�˚[������������� a+ a+x](ĸ7ŒEĸaĮrĸdĖuĸFÁ[ĸEĀZĸEĀZĸEĀZĸEÁZĸEžYĸKĢYĸFŊXĸEĀZĸEÁZĸEÁZĸEĀZĸEūZĸI­ZĸJXĸJĒYĸJ›XĸKĐ[ĸE―YĸDÁZĸGģYĸIĢXĸFŧZĸEÁZĸB―WĸIŊZĸLŸZĸHŪYĸEÂZĸEÂZĸGīYĸLŸYĸDžYĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸGÁ\ĸNÄaĸPÅcĸ?ēRĸ7ĐKĸ=ģQĸ@ļTĸ=ģQĸ7ĐIĸAīTĸNÃaĸOÄbĸOÄbĸOÄbĸOÄbĸOÄbĸPÅcĸCķVĸ8ĐKĸ<ąPĸ?ļSĸ>ĩRĸ9ŽKĸ<ŪOĸLÁ`ĸOÄcĸFÁ[ĸEĀZĸEĀZĸEĀZĸEĀZĸDĀYĸMÃaĸZČlĸS―eĸ"d-ĸ`*ų a+Qjig�­ŽĐ�đķĩ�­§Ē�ˆˆ‡�ŅĮŋ�ĸũė�ĸōį�ĸóč��œÁ� ÅA�ŠÍŠ�ŧڔ�Óėm�Íčv�đؓ�Đˏ�ŸÃC�™ŋĸōč�ęɟ�ŲĻg�įĮŸ�æĮž�éÍĐ�îÜÆ�ŧ{'�˚[������������� a+ a+x](ĸ7ŒDĸ_ÆpĸcĖtĸCĀXĸBŋWĸBŋWĸBŋWĸ?ūTĸXĮjĸėûîĸ˜ØĢĸ?ģSĸ8°Lĸ<ļPĸAūVĸd·rĸļÖ―ĸĮíÍĸŊįđĸÂïĘĸÅáĘĸyģƒĸ:šPĸ‹Ų˜ĸßöãĸaĖsĸ9·NĸTącĸĀÖÄĸĸĸĸĸĶâ°ĸ8žNĸ;―Qĸ‚ԐĸĸĸĸĸQÃdĸBĀWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸCĀXĸEÁZĸCūYĸ8ŦKĸEūYĸZÉlĸeĖvĸ\ÉnĸG―Zĸ9­LĸCūXĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸDŋYĸ:ŪMĸAšUĸVĮiĸdĖuĸ`ĘqĸLÁ_ĸ;°Nĸ@·TĸFÂ[ĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸ@ŋVĸLÃ`ĸ[ÉnĸUūgĸ$e/ĸ`*ų a+Qkkk�°ŪŦ�ĩīą�§Ą�€€�ÕĖÃ�ĸũę��–ū� Ä�ĶÉL�ŊŅ}�ŋÝx�Ïéb�Ãāp�ēŌ„�§Éb�œĀ%ĸîâ�ĸîā�ĸņį�ęȟ�ŲĻg�įĮŸ�æĮž�éÍĐ�îÜÆ�ŧ{'�˚[������������� a+ a+x](ĸ6‹Dĸ_ÆpĸcËtĸBŋVĸ@ūUĸ@ūUĸ@ūUĸ>―SĸTÆgĸÛôāĸēÛđĸyš„ĸ€ŧŠĸbĩoĸMš_ĸĘëÐĸķéŋĸ@ĀVĸ7žMĸ5žLĸ‰Ø—ĸöýũĸ[ĀlĸÕĸÓōŲĸRžcĸeīrĸĖäÐĸŠåģĸŲōÝĸ ßŦĸ7―Nĸ5ģJĸ“Оĸúýúĸnŋ|ĸ9·NĸAŋVĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸAŋVĸ?―Tĸ>žSĸ<ķPĸ>ļRĸ]Éoĸ}ӌĸŽŲšĸ€ÔŽĸ_Ępĸ@ĩSĸ=šRĸ>žSĸ>žSĸ>žSĸ>žSĸ>žSĸ<·Qĸ<ķPĸVÆhĸw҆ĸØšĸ…Ö“ĸgĖxĸFŧYĸ;ķPĸ>žSĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸBŋWĸHÁ\ĸSÅfĸ^ĘpĸS―eĸ!c,ĸ a+ų a+QĮÁš�°ĐĢ�ąŦĨ�“ŽŠ�ūķŪ�ĸøė��šÁ �ĢČ(�ŦÎT�·Öf�Äß_�ĮáY�ļŨe�ŽÍ^�ĄÅ2�—―ĸîá�ĸîâ�ĸėß�ĸņæ�ęȞ�ŲĻg�įĮŸ�æĮž�čÍĐ�îÜÆ�ŧ{'�˚[������������� a+ a+x](ĸ6‹Dĸ]Ånĸ`ĘrĸAŋVĸ@ŋUĸ@ŋUĸ@ŋUĸ=ūSĸTÆgĸÜóāĸŽâĩĸpĘĸ†Ę’ĸßîâĸˌĸÍņÓĸĪÕŽĸ4ĐGĸ5īJĸ.§Bĸqŋ~ĸųþúĸjÍzĸ€ÔŽĸÎėÓĸ˜ĖĄĸŌčÕĸ‹Ų˜ĸCĀXĸŲōÞĸĄāŦĸ.ģDĸiđvĸÓéŨĸ—ÜĒĸÖčÚĸZēiĸ9šNĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ@ŋUĸ>šSĸ<īPĸ:ēNĸDūYĸjĖzĸÚœĸĐâģĸ”ÛŸĸkÎ|ĸE―Yĸ;īPĸ;īPĸ;īPĸ;īPĸ;īPĸ;īPĸ:ēNĸ@ŧTĸaÉrĸˆŨ•ĸĐâģĸœÞĶĸt҃ĸMÁ`ĸ;ĩOĸ;ēOĸ>žSĸ?ūTĸ@ŋUĸJÂ^ĸRÄeĸNÃaĸMÃ`ĸTĮfĸNž_ĸ!d,ĸ a+ųa+Qĸųï�ĸüō�ĸüð��˜―�Ā �ĪČ�­Ï8�ģÕK�žÛO�ĀÝM�šŨI�ŊÎF�ĶÉ,�™ŋĸïã�ĸíá�ĸîâ�ĸîá�ĸíā�ĸïå�ęČ �ŲĻg�įĮŸ�æĮž�ęÍĐ�ðÜÆ�ŧ{'�˚[������������� a+ a+x](ĸ6‹Cĸ]Åmĸ_Ęqĸ@ūUĸ?ūTĸ?ūTĸ?ūTĸ<―QĸUÆhĸåũčĸūāÄĸ‡ūĸģŨšĸįøęĸfËvĸqπĸĖéÐĸēÓļĸ‰ŋ“ĸĪĖŦĸÝíāĸŸßŠĸ<―Qĸ…Ö“ĸûüûĸÞōáĸvŅ…ĸ>ūSĸDĀYĸåũčĸĢß­ĸ\ŧkĸÞęāĸ—ÜĢĸ>ūSĸŒŲ™ĸãîæĸ\ķkĸ<ūQĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ>ŧRĸ9­Mĸ8ĐKĸ>īRĸcĖtĸ…Ö“ĸ˜ÜĢĸ‡Ũ”ĸdĖuĸ@īTĸ8ŠLĸ8ŠLĸ8ĐKĸ8ĐKĸ8ĐKĸ8ŠLĸ8ĐKĸ:ąOĸ[Člĸ~ԍĸ˜ÜĢĸŽŲšĸlÏ}ĸGŧ[ĸ7ŠKĸ9ŽLĸ<ŧQĸFĀZĸTÅfĸYÆjĸMÂ`ĸ?ūTĸFÁZĸSÆeĸNž_ĸ!d,ĸ `*ų `*Pĸóč��Ã�œÂ �ĨË�ŪŅ%�ĩÕ2�šØ6�šŲ7�ķÕ0�­Ï)�ĶÉ�œÂ �“ļĸíã�ĸíã�ĸîá�ĸîâ�ĸíß�ĸëÞ�ĸðå�ęȟ�ŲĻg�įĮŸ�æĮž�čÍĐ�îÜÆ�ŧ{'�˚[������������� a+ a+x](ĸ5ŠCĸ[Älĸ^Ęoĸ?ŧTĸ>šSĸ>šSĸ>šSĸ=šRĸDžXĸhÉxĸkÉ{ĸeÅuĸaÆrĸPĀcĸ?ŧTĸ@ŧTĸOÁbĸbÆsĸoČ~ĸmĘ|ĸWÃiĸDžYĸ;đPĸPÁcĸs͂ĸXÄjĸ>šSĸ=šSĸ?ŧTĸiĘyĸYÄkĸSĀeĸjÉ{ĸHū\ĸ=šRĸAŧUĸmË|ĸXÁiĸ;đQĸ>šSĸ>šSĸ>šSĸ>šSĸ>šSĸ>šSĸ>šSĸ>šSĸ>šSĸ>šSĸ>šSĸ>šSĸ>šSĸ>šSĸ>šSĸ>šSĸ>šSĸ>ŧSĸ9­Mĸ6ĢHĸ6ĢHĸBēTĸ`ČqĸpŅ€ĸbÉsĸEģWĸ6ĪIĸ6ĒHĸ5ĢHĸ8ŠKĸ9ŪMĸ8ŦLĸ6ĢHĸ6ĒHĸ5ĢHĸ>­PĸZÄkĸpÐĸgÍxĸKļ]ĸ7ĶIĸ5ĄGĸ9ŊMĸMŋ`ĸYÄjĸ\ÅmĸIū]ĸ=đSĸ<šQĸEūYĸRÆeĸMŧ^ĸ!d,ĸa+ųb.Rüņį��ŦÐ �ēŲ�īÚ�ģŨ�ĩÕ�īÐ�ŽÉ�§Č �žÄĸîá�ĸïá�ĸíã�ĸîá�ĸîá�ĸîâ�ĸíß�ĸëß�ĸėÝ�ĸîå�ęȟ�ŲĻg�įĮŸ�æĮž�éÍĐ�îÜÆ�ŧ{'�˚[������������� a+ a+x](ĸ5ŠCĸ[Älĸ^Ęoĸ>đSĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ<ļQĸ=đRĸ<đRĸ<ļQĸ=đRĸ>đSĸ=đRĸ<ļQĸ<đQĸ=đRĸ=đRĸ=đRĸ=đRĸ<đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ<đQĸ=đRĸ=đRĸ<đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ<ļQĸ5ĄGĸ3šDĸ3šDĸ4›Eĸ4›Eĸ4›Eĸ3šDĸ2™Cĸ6ĨIĸ<ĩPĸ<ļQĸ<ļQĸ<ļRĸ<ĩPĸ7ĪIĸ3šDĸ3šDĸ4›Eĸ4›Eĸ4›Eĸ3šDĸ2˜Bĸ8ĪJĸYŋjĸdÆuĸbÆtĸFŧbĸ6īTĸ:ķRĸ<ļQĸFŋZĸQÆeĸLŧ^ĸ!d,ĸa+ųa+QŨ“b�ÛĄy�ņŲÅ�ĸöí�þðä�þïã�ĸöė�ĸøï�üïá�ĸôę�ĸúņ�ĸōé�þîâ�ĸîâ�ĸîâ�ĸíß�ĸëß�ĸėÝ�ĸęÝ�ĸïå�ęČ �ŲĻg�įĮŸ�æĮž�éÍĐ�îÜÆ�ŧ{'�˚[������������� a+ a+x](ĸ4ŠCĸYÄkĸ[Čmĸ=ļQĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ=ļQĸ<·Qĸ5ĄFĸ1“Aĸ1“Aĸ1“Aĸ0’@ĸ2—Cĸ9ŽLĸ<·Qĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<ļPĸ=ļQĸ9ŦLĸ2—Cĸ1“Aĸ1“Aĸ0“Aĸ/“Bĸ;ĢRĸfÄ{ĸv͊ĸqˈĸNžrĸ0ŊWĸ9ģSĸ@šSĸKÁ_ĸPÄdĸPÅdĸJš]ĸ!c,ĸ a+ų a+QîĪn�ė§v�ݗe�æŧ›�ĸōč�ĸņį�āۊ�֔b�Ų—f�Ũ•c�؛p�åšš�üîâ�ĸðæ�ĸėß�ĸëÝ�ĸėÝ�ĸęÞ�ĸęÝ�ĸïå�ęĮž�ŲĻg�įĮŸ�æĮž�éÍĐ�îÜÆ�ŧ{'�˚[������������� a+ a+x](ĸ4ŠBĸWÃiĸXČkĸ<ĩPĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ<ķPĸ:°Nĸ6ĪHĸ5ŸFĸ6ĨIĸ;ģOĸ<ĩPĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ<ķPĸ;ģOĸ7ĨIĸ4ŸGĸ0ĄLĸ>°bĸsˏĸˆÓŸĸƒŅœĸcÊĸ,Ŧ_ĸ5ŊTĸ?đRĸMÃbĸQÄdĸOÃaĸL―^ĸC­Tĸ!c,ĸ a+ų a+Qí›b�ė—Y�ņŠv�֏[�ýņå�äŧ›�ä p�ïĐw�ïĨr�îĢn�íĨr�įĨv�Ր^�óØÃ�ĸïâ�ĸėÝ�ĸęÞ�ĸëÞ�ĸëÞ�ĸïä�ęĮ�ŲĻg�įĮŸ�æĮž�éÍĐ�îÜÆ�ŧ{'�˚[������������� a+ a+x](ĸ4ŠBĸVÂhĸXĮjĸ<ĩPĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;ĩOĸ<ķPĸ<ķPĸ<ĩPĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;ĩPĸ4°Uĸ:ģiĸ}Νĸ“ŨŦĸ‹ÔĶĸ‡ŌĻĸ3­sĸ.ŠXĸ<ķPĸJÁ^ĸPÄcĸLÁ_ĸ=ĶNĸ)z7þ`*ĸ`*ĸ`*ĸ a+SäŸn�ášh�ėĩ‹�ݖe�ýėß�îη�ە`�øĮĶ�óÁœ�ïŦ{�ė™]�ė™]�îŠz�ؖe�ýėß�ĸëÞ�ĸëÞ�ĸëÜ�ĸéÝ�ĸėâ�ęĮœ�ŲĻg�įɟ�æĮž�čÍĐ�îÜÆ�ŧ{'�˚[������������� a+ a+x](ĸ4ŠBĸVÂhĸWĮjĸ;ēOĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ:ąNĸ;ąNĸ2ŦSĸ*§dĸĖĨĸĢÜŧĸy͞ĸ—Ųīĸ`ū˜ĸ&Ēcĸ7ŪOĸAđUĸNÄbĸKÁ_ĸ8žIþ!g-þ])ĸ`*õ`*Į`*ą a+7ëÆŠ�éÆŦ�ۚk�ݙg�ûëÝ�ĸóę�įđ™�ؒ_�äĻ}�čŠ�éĒo�äžl�ōž–�ޜl�úįÚ�ĸëß�ĸéÝ�ĸęÜ�ĸčÚ�ĸëá�ęĮœ�ŲĻg�įÉ �čȞ�ęÍĐ�îÜÆ�ŧ{'�˚[������������� a+ a+x](ĸ4ŠCĸWÃiĸXĮjĸ<ēPĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ;ēOĸ<ēNĸ6­Rĸ ^ĸqÆĄĸšåÎĸsĖ ĸxÎĪĸĨÜÆĸ9Ŧƒĸ,§Xĸ;ąNĸIĀ]ĸOÄbĸC°Vĸ#k/þ^)ĸ a+Ę a+Y`*& a+`*ĸũî�ųïâ�ܝo�ߘh�ûėÞ�þôé�ĸõë�øäÓ�ėČŽ�čđ˜�į·–�淖�ޘf�āŸq�úįØ�ĸęÜ�ĸčÚ�ĸéÛ�ĸįŲ�ĸëá�ęĮœ�ŲĻg�įÉ �įȟ�ęÏŠ�ðÜĮ�ŧ{'�ƚ[������������� a+ a+x](ĸ5‹CĸYÄkĸZÉmĸ<ĩPĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ;īOĸ<īOĸ;ģPĸ"Ģ\ĸ@ą‰ĸÄéØĸ•ŲšĸWÔĸ˜ÛūĸŽŅŋĸ(Ątĸ5ŊRĸ;īOĸPÄcĸNÂbĸ6”Fĸ\(ĸ`*ú`*Iĸôé�ĸôé�ĸôé�ĸôé�ĸõę�ũëÞ�ݝn�ݚh�úęÝ�ĸōč�ĸōį�ĸóé�ĸóé�ĸņį�ĸðå�ûæŲ�ܕc�ߟr�úåÖ�ĸčÚ�ĸįŲ�ĸįŲ�ĸįŲ�ĸëá�ęĮœ�ŲĻg�įÉ �įȟ�ęÏŠ�îÜĮ�ŧ{'�˚[������������� a+ a+x](ĸ5ŒCĸ[Ålĸ^Ępĸ=ļQĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ<·Pĸ>ļOĸ/ŽXĸ›jĸĶÝĘĸĀéØĸVřĸbÉĄĸ·įÔĸpÁŊĸ! gĸ9ĩRĸ<·PĸTÆfĸOŋaĸ-;ĸ])ĸ a+ĸ`*Å`*ĸôé�ĸôé�ĸôé�ĸõę��†x�…wޙi�ųéÚ�ĸóč�ĸōį�ĸðå�ĸņæ�ĸðå�ĸņå�ųčŲ�ܕc�ߟr�úæØ�ĸéÛ�ĸčÚ�ĸįŲ�ĸįŲ�ĸëā�ęĮœ�ŲĻg�įÉ �įȟ�ęÏŠ�îÜĮ�ŧ{'�˚[������������� a+ a+x](ĸ6ŒDĸ^ÆoĸaËrĸ?šSĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ=đRĸ>šRĸ;·SĸžbĸJģ˜ĸČëßĸ€Ô·ĸMÜĸiÍ­ĸÂęßĸTģĒĸĢ^ĸ<ļSĸ=đRĸUĮgĸOŋaĸ(z5ĸ^)þ`*ĸ`*ĸ a+­`*ĸôé�ĸôé�ĸóé��…wX�…w|�…wųįØ�ĸóč�ĸōį�ĸðå�ĸņæ�ĸïä�ĸðæ�ųéÚ�ܕb�ß r�ųėā�ĸðå�ĸïã�ĸîâ�ĸíá�ĸïį�ęȟ�ŲĻg�įÉ �įȟ�ęÏŠ�îÜĮ�ŧ{'�˚[������������� a+ a+x\(ĸ7ŒEĸ_ĮqĸcËtĸ@―Uĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ?―Tĸ@ūSĸ0°[ĸ”mĸ—ÖĮĸ―éÝĸOÅĒĸOÅĪĸnÏĩĸŋįßĸCŠ›ĸ$Ļ]ĸ>žTĸ>žSĸ[ČmĸTŋeĸ&y4ĸ_*ĸ!f-ĸ b+þ`*ĸ a+gĸôé�ĸōį�ĸôé��†xX�…wĸ�…wˆ�…w ĸóč�ĸņæ�ĸōį�ĸðį�ĸðå�ĸōį�ųčÛ�ܕb�Þ q�ųėá�ĸņį�ĸņæ�ĸņæ�ĸņæ�ĸõî�ęĘĢ�ŲĻf�įÉ �įȟ�ęÏŠ�îÜĮ�ŧ{'�˚[������������� a+ a+x\(ĸ8FĸbČsĸeĖvĸBŋWĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋUĸĢcĸ#ŸŠĸžæÜĸŠØÅĸNÅĐĸMÅŦĸpОĸ―æßĸ9Ē™ĸ&Š]ĸAŋUĸ@ūUĸ]ČoĸVĀgĸ&z4ĸ_*ĸ'w5ĸ#m0ĸa*ĸ`*ú`*ĸōį�ĸóé��…wX†xų�†xĸ�…w“�…wĸóč�ĸóč�ĸóč�ĸóč�ĸôé�ųéÝ�ܕ`�Þ s�ųíâ�ĸóé�ĸóč�ĸóč�ĸóč�ĸũî�ęËĒ�ŲĻf�įČ �įȟ�ęÏŠ�îÜĮ�ŧ{'�˚[������������� a+ a+x\(ĸ8FĸcČuĸgÍxĸCĀXĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBŋWĸBĀVĸ:đZĸ ”iĸVķĐĸÄęãĸ^ĘķĸMİĸLÄąĸnÐÁĸ―æāĸ8 šĸ$§aĸAŋWĸAŋVĸ`ĘrĸYÂjĸ'z4ĸ^*ĸ(y6ĸ*~8ĸ!d,þ`*ĸ a+Ąĸōį�ĸõé��„vXŠ}ų/Ē•ĸ‹}ĸ�„v§�†xĸöí�ĸõė�þôę�ĸöë�ųëÝ�ܕ`�Þ r�ųïâ�ĸõé�ĸôį�ĸôį�ĸôį�ĸũï�ęËĢ�ŲĻf�įĘ �įȟ�ęÏŠ�îÜĮ�ŧ{'�˚[������������� a+ a+x\(ĸ9GĸfÉvĸkÍ{ĸGÁ[ĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸGÂZĸ4ēaĸ�‰nĸ‚ËÁĸĩįāĸOÆīĸNÅĩĸMÆīĸlÐÁĸŋčâĸ@ĨžĸĄeĸCŋ[ĸEĀZĸdËuĸ[Ãlĸ&z4ĸ_*ĸ'x5ĸ-ˆ<ĸ$o0ĸ a+ĸ a+õ a+ĸóę��ƒuX‹|ų‹ŌÉĸgŋĩþ‹|ĸ�„vž�†x+ðÓž�õāÏ�ųëÞ�úėā�ۓ`�ܟp�ųíã�ĸóę�ĸōé�ĸōé�ĸōč�ĸũņ�ęËĢ�ŲĻg�įĘĒ�įÉ �ęΊ�îÜĮ�ŧ{'�˚[������������� a+ a+x\(ĸ:ŽHĸjĘyĸnÎ~ĸKÂ`ĸJÂ_ĸJÂ_ĸJÂ_ĸJÂ_ĸJÂ_ĸJÂ_ĸJÂ_ĸJÁ^ĸIÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸHÁ]ĸKÃ\ĸ-Ŧfĸ‰{ĸœŨÐĸŸāŨĸRĮķĸQÆķĸPÆķĸhÎŋĸÁëåĸRŊ§ĸ•mĸEū`ĸJÁ^ĸfÍwĸ^Ãoĸ'z5ĸ_*ĸ'x5ĸ,†;ĸ*8ĸ a+þ a+ü`*vĸõë��ƒuXŠ|ųŒŅÉĸžęäĸvĮ―þ Œ~ĸ�ƒtˆx;ák�ām�ܗg�äĢs�ݝo�ųïã�ĸôë�ĸôę�ĸôę�ĸóé�ĸøō�ęĖĪ�ŲĻg�įĘĒ�įÉĄ�ęÐŽ�ðÝĮ�ŧ{'�˚[������������� a+ a+x\(ĸ;ŽIĸlĘ{ĸpπĸOÄcĸNÃbĸNÃbĸNÃbĸNÃbĸNÃbĸNÃbĸMÃbĸRÅeĸ_ÉpĸcĘtĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸcĘuĸdËtĸ2Ļsĸ‘‡ĸŠÞŨĸÚÐĸSĮ·ĸSĮķĸSĮ·ĸbË―ĸģčāĸuÁđĸŠ{ĸCŧeĸMÃaĸhÍyĸ_Äpĸ'{5ĸ^*ĸ'x5ĸ,†;ĸ,†;ĸ"g.ĸ`*þ a+Áĸöė��ƒuXŠ|ųŅÉĸŸāŨĸđčâĸ‡ÐÆĸ‚ĸ�‚tŨ†xFðĻq�ōŦz�óą€�ݙj�ųïã�ĸöė�ĸõë�ĸõë�ĸõë�ĸøņ�ęĖĪ�ŲĻg�įĘĒ�įÉĄ�ęÐŽ�îÜĮ�ŧ{'�˚[������������� a+ a+x\(ĸ;ŽIĸnË}ĸsŅ‚ĸQÅeĸPÄdĸPÄdĸPÄdĸPÄdĸPÄdĸPÄdĸSÅfĸeĖvĸgĖxĸhÍxĸgÍvĸgÍvþgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸgÍvĸeĖvĸ,Īuĸ ˜ĸąáÛĸ‚ÖËĸUČļĸUĮ·ĸVĮļĸYÉđĸšßÕĸĐÜÕĸ’ˆĸ'ĨlĸPÄdĸjÍ{ĸaÄrĸ'{5ĸ^*ĸ'x5ĸ,†;ĸ,†;ĸ%q3ĸ`*ĸ a+Þĸóé��„vVŠ|ų‘ÓËĸvÓÆĸB°ĸĩįāþ‘ÕÍĸ”‡ĸ�‚tã�†xJޛi�æĪs�։S�ųïã�ĸôę�ĸóé�ĸóé�ĸóé�ĸøņ�ęĖĪ�ŲĻg�įĘĒ�įÉĄ�ęÐŽ�îÜĮ�ŧ{'�˚[������������� a+ a+x\(ĸ<JĸpĖĸvŅ…ĸUÆgĸSÅeĸSÅeĸSÅeĸSÅeĸSÅeĸSÅeĸ^ĘpĸeĖvĸfĖwþiˀúxÉŦųvĮŦĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸuĮŠĸvĮŦĸqÄĐĸ-ŸŠĸ)‘ĸ·ãÝĸ}ÕČĸWČđĸXÉļĸYČđĸVČļĸ~ÕÉĸÎņėĸBĻžĸ‡xĸKĀfĸmÎ}ĸdÅtĸ(|6ĸ^*ĸ'x5ĸ,†;ĸ,…;ĸ(y5ĸ`*ĸ`*æ'X �…ySŠ|ų‘ÓËĸvÓÆĸ °šĸ3―Šĸąæßþ•ØÏĸ™‹ĸ�ƒuņ�†xLęŅž�čĘē�ýöî�ĸöí�ĸõí�ĸõí�ĸõí�ĸúõ�ęĖĨ�ŲĻg�įĘĒ�įÉĄ�ęÐŽ�îÜĮ�ŧ{'�˚[������������� a+ a+x\'ĸ<Jĸŕĸx҇ĸUÆgĸTÆfĸTÆfĸTÆfĸTÆfĸTÆfĸSÅeĸaËrĸdËuĸeËwþzĮīø„Āæĸ€ūáþ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ŋáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ŋáĸ€ūáĸ€ūáĸ€ŋáĸ€ŋáĸ€ŋáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ€ūáĸ{žÜĸ1šĄĸ(žĸ·äÝĸ€ÕÉĸYÉđĸYÉšĸZĘšĸZÉšĸfÍŋĸēįāĸŸŲÓĸƒĸ—rĸnÎĸgÆvĸ({6ĸ^*ĸ'x5ĸ,†;ĸ,…;ĸ)|6ĸ`*ĸ a+ę$[ 4�†{QŠ|ų‘ÓËĸvÓÆĸąšĸ Ŋ˜ĸ.ŧĻĸŦäÜĸ˜ŲŅþ&œĸ�…wý�…wR�†xüņä�üðå�üðå�üðå�üðå�ýôë�éĘĄ�ÚĻh�įĘĒ�įÉĄ�ęÐŽ�îÜĮ�ŧ{'�ƚ[������������� a+ a+x\'ĸ>Kĸu΄ĸ{ӊĸZČmĸYČlĸYČlĸYČlĸYČlĸYČlĸXĮlĸaËrĸdËuĸdËwĸzĮķĸūãþūÞĸūßĸūÞĸūÞĸūÞĸūÞĸyēÏĸ|ļŨĸ€Āāĸ~―ÜĸuŠÅĸpĒŧĸ~žÜĸ€ĀāĸĀáĸ€ŋßĸ€ŋßĸÁáĸÁáĸwŪĘĸūÝĸ}ļÖĸyąÎĸtĐÄĸuŦÆĸ}đØĸŋßĸūÞĸūÞĸūÞĸūÞĸūÞĸūÞĸūÞĸūÞĸūÞĸūÞĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ|―Üĸ5Īĸ!š‹ĸģâÜĸ†ØĖĸ[Ęšĸ[Ęŧĸ\Ęŧĸ^ËžĸZÉšĸ‡ØĖĸÕóïĸ_ž°ĸ�…zĸ2Ķ|ĸgÅyĸ)|5ĸ^*ĸ'x5ĸ,†;ĸ,…;ĸ)}7ĸ`*ĸ`*ë#\!9�†{PŠ}ų“ÓĖĸuÓÆĸ °šĸ Ŋ˜ĸŊ˜ĸ-ŧ§ĸĄáØĸœÛÓþ. ”ĸ�…wĸ�…wa�†xŨĒ\�ŨĒ\�ŨĒ\�ŨĒ\�ŨĒ]�ŨĒ\�ÚŠl�įÉĒ�įÉĄ�ęÐŽ�îÝĮ�ŧ{(�˙Z������������� a+ a+x\'ĸ?Lĸxχĸԍĸ]Éoĸ\Čmĸ\Čmĸ\Čmĸ\Čmĸ\Čmĸ[Čmĸ_Éqĸ`ÉqĸaÉsĸwÅīĸ€ūãĸ~ūÞĸ~ūÞĸūÞĸŋßĸ‚Āßĸ‚ūÜĸ\vƒĸk’Ķĸ‰ĮæĸvĨ―ĸXjsĸ^nwĸ†―Ųĸ}°ËĸwĶūĸˆĀÛĸ†ŧÖĸwĪŧĸ‹ÂßĸUcjĸ…·Ņĸt™­ĸ]t~ĸLSVĸXhoĸn•Đĸ‰ÄâĸˆÃáĸ‡Âāĸ†Âāĸ…Áāĸ„ÁāĸƒĀßĸ‚Āßĸŋßĸ€ŋßĸūÞĸūÞĸūÞĸūÞĸūÞĸūÞĸūÞĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸŋßĸ?ĄŦĸ“ƒĸ­ßØĸ“ÜŌĸ]Ęŧĸ]Ëŧĸ_ËžĸaĖ―ĸaĖ―ĸbĖ―ĸĢáØĸÐņėĸJ°Īĸ�ƒwĸ(tĸ&{=ĸ ^'ĸ(x5ĸ,†;ĸ,…;ĸ){6ĸ`*ĸ a+é$[.�…yQ ųĄØŅĸŨËĸąšĸ Ŋ˜ĸ Ŋ˜ĸŪ—ĸ+šĶĸ–ÞÔĸĢßŨþ8Ķ™ĸ�…vĸ�…wz�†x å×�å×�å×�å×�å×�åę�čĘĒ�įÉĄ�éÏŽ�ïÝÆ�šy$�ʘW������������� a+ a+x\'ĸ?Mĸ{҉ĸ‚Տĸ`Ęrĸ_Ępĸ_Ępĸ_Ępĸ_Ępĸ_Ępĸ_Ępĸ_Ęqĸ_Ęqĸ`ÉsĸwÅīĸ‰ÂåĸŠÄáĸÆâĸĮâĸ’Čãĸ”Éäĸ”Įáĸe|ˆĸ_r|ĸ}Ÿ°ĸjŠĸ{™ĻĸĢÕîĸĒŅéĸƒĢēĸs‹—ĸ™ÃØĸ’ļĖĸnƒŽĸ•―Ōĸ`pxĸt™ĸl‹ĸj~‰ĸdw€ĸ‚Ģģĸo†’ĸ›ÉāĸÎæĸ›ÍåĸšÍåĸ™Ëåĸ–Ëäĸ”Éãĸ’ČãĸÆãĸÆâĸŒÄáĸ‰Ãáĸ‡Ãāĸ…ÁāĸƒĀßĸŋßĸūÞĸūÞĸūÞĸūÞĸūÞĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸ€ŋßĸƒĀâĸM§ķĸ�‰zĸĒŲŌĸĶãÚĸ_Ëžĸ`ËžĸaĖ―ĸcĖ―ĸdÍūĸcĖ―ĸlÐÁĸąæßĸĖïęĸ[ļ­ĸ�†yĸz_ĸk?ĸ(y5ĸ-…9ĸ,…;ĸ'v4ĸ`*ĸ`*ä,R �„wT ųĶÚÔĸžāŨĸ3―Šĸ °™ĸ Ŋ˜ĸ Ŋ˜ĸ­–ĸ&ļĪĸÚÏĸŠâÚþFŪĒĸ�ƒuĸ�…w’†xéËĶ�éËĶ�éËĶ�éËĶ�éËĪ�éËĪ�įČ �ėÔķ�ęŅģ�·u!�ɕS������������� a+ a+x\'ĸA‘Nĸ}Ņ‹ĸ„Ö’ĸdËtĸbËsĸbËsĸbËsĸbËsĸbËsĸcËtĸ^Épĸ]Éoĸ^ÉqĸxÅģĸ™Ëéĸ›ÍåĸÎæĸžÎæĸÎæĸžÎæĸËâĸi~ˆĸbt|ĸewĸfyƒĸn…‘ĸēÅĸŸĖãĸĘāĸ›ÆÜĸ Îåĸ Íãĸ›ÆÛĸĨÕíĸ_ovĸ`pxĸNW[ĸiŠĸ\jrĸn…‘ĸpˆ”ĸžÍåĸžÎæĸÎæĸÎæĸÎæĸÎæĸœÍåĸšĖåĸšĖåĸ™Ëåĸ™Ëåĸ—Ęäĸ”Éãĸ’Čãĸ‘ĮãĸĮâĸŒÅâĸ‰Ãāĸ†ÂāĸƒÁāĸŋßĸ~ūÞĸūÞĸūÞĸūÞĸūßĸ€ŋßĸ€ŋßĸūÞĸƒĀáĸ[ŪÁĸ�†{ĸ‡ÎÅĸ―ęãĸbĖ―ĸbĖ―ĸcĖ―ĸdĖūĸfÍŋĸgÍŋĸeÍūĸsŅÄĸ­äÝĸÓņíĸ‡ĖÃĸ&›ĸ�|iĸ €\ĸ…Lĸ-†;ĸ&k,ĸ!_'ĸ _(Õč˧��‚tT ųĪÚÓĸĢâŲĸZÉđĸ5―ŠĸŊ—ĸ Ŋ™ĸ °™ĸŪ–ĸķĄĸ‚ŨËĸąåÞþX·Žĸ�„uĸ�„vĨ†xčÉĢ�čÉĢ�čÉĢ�čÉĢ�čĘĪ�éÏŪ�ōáĖ�Ó§o�ķu!����������������� a+ a+x\'ĸB‘OĸŅĸ†Ũ”ĸeĖvĸdËuĸdËuĸdËuĸdËuĸdËuĸeĖvĸ]Éoĸ[Čmĸ\ČoĸvÅģĸÍęĸÎæĸœÎæĸÎæĸžÍåĸŸÎæĸžÍäĸx•Ģĸexĸ~œŦĸ—ÁÖĸs‹—ĸfw€ĸžĘßĸĢŅčĸĢŅčĸĢŅčĸĢŅčĸĢŅéĸĶÖîĸu›ĸ‚Ēąĸq‰•ĸ}šĐĸgz„ĸq‰•ĸļĖĸ ÐčĸŸÎæĸžÍåĸÎæĸœÍåĸÎæĸœÍåĸ›ÍåĸšĖäĸ™Ëåĸ—Ęäĸ˜Ëåĸ—Ęäĸ•Ęãĸ•Ęäĸ•Ęäĸ”Ęäĸ’ČãĸĮâĸÆâĸÅâĸ‹Äáĸ‡ÂáĸƒĀāĸ€ŋÞĸūÞĸūÞĸūßĸ€ŋßĸŋāĸkĩÎĸŒ‡ĸZļ­ĸĘėčĸmÐÂĸcĖ―ĸdÍūĸfÍŋĸhÎĀĸjÎĀĸkÎĀĸjÏĀĸsŅÄĸ˜ÞÔĸŅņėĸšäÞĸzÅžĸ"˜‹ĸ�mĸ�‚hĸ vVĸnGýlCŧ�›Ī�ƒuk ŒúĨŲÓĸĒáŲĸ[ÉđĸTĮ·ĸ*šĨĸŪ—ĸ °™ĸ °™ĸŊ—ĸģĸuŌÅĸ·æāþfĀĩĸ�…wĸ�„vī�†xðÞÉ�ðÞÉ�ðÞÉ�ōāË�ðßČ�Ûĩ‡�ļx%�ū„9����������������� a+ a+x\'ĸA‘Oĸ€ŌŽĸ‡Ũ•ĸhÍyĸgĖxĸgĖxĸgĖxĸgĖxĸgĖxĸhÍyĸ]ČnĸYČlĸZĮnĸuÅēĸžÍęĸÎåĸÎæĸžÍåĸŸÎæĸ ÏįĸŸÎæĸžĘâĸČÞĸ ÍäĸĢŅčĸŸËâĸČÞĸĒÐįĸĒÐčĸĢŅčĸĪŅčĸĪŅčĸĪŅčĸĪŅčĸŸĖâĸĄÎäĸŸĖãĸ ÍãĸžĘāĸŸËáĸ Ïæĸ ÏįĸŸÎįĸŸÎæĸžÍåĸžÎæĸœÍåĸÎæĸÎæĸ›ÍåĸšĖäĸ™Ëåĸ—Ęåĸ—Ęäĸ–Éãĸ”Ęäĸ•Éäĸ•Ęãĸ“Éäĸ’Čâĸ’ČãĸĮãĸÆâĸŽÅáĸŒÅáĸŠÄáĸ‰ÄâĸƒÂáĸ€Ááĸ€ÁãĸÁâĸ~ūÝĸ(—˜ĸ%›ĸÂčãĸ’ÛŅĸcĖūĸgÍŋĸiÎĀĸjÎĀĸlÏÁĸmÏÁĸnÏÂĸnÐÂĸpŅÃĸ}ÕÉĸ°æÞĸÐïëĸĘėįĸĪØŌĸeļ°ĸ0œĸ‡xþ�€pø�sí�€róˆ{þĪŲÓĸĢáŲĸ\ĘšĸXČļĸMÅĩĸģĸ Ŋ˜ĸ °™ĸ °™ĸ Ŋ˜ĸąšĸeÍūĸščâþnÃđĸˆzĸ�„vÃ�†xÏ g�ÏĒg�͜^�ÊA�·u�ū„8��������������������� a+ a+x\'ĸD’Qĸ…Ó’ĸŲ™ĸkÍ|ĸiĖzĸiĖzĸiĖzĸiĖzĸiĖzĸkÍ|ĸYĮkĸUÆgĸUÆiĸsİĸŸÎęĸÎæĸžÍåĸŸÎæĸ ÏįĸŸÎįĸĄÐæĸĒÐįĸĢŅčĸĒŅčĸĒÐįĸĢÐčĸĨŅčĸĶŅčĸĶŅįĸĶŅįĸĶŅįĸĶŅįĸĶŅįĸĶŅįĸ§ŅįĸĶŅčĸĪŅčĸĒÐčĸĒÐčĸĒÐįĸĢŅčĸĒÐįĸĄÏæĸ ÎįĸŸÎæĸžÍåĸžÎæĸœÍåĸÎæĸÎæĸ›ÍåĸšĖäĸ™Ėåĸ˜Ëåĸ—Ęäĸ•Ęäĸ”Ęäĸ•Ęäĸ”Ęäĸ“Éäĸ’Čãĸ‘ČãĸÆâĸÅáĸŽÆâĸŠÄáĸ‚ŪÃĸ™ŊšĸĒŦĸmƒŽĸeĨĸ‚―ÞĸHĶēĸ�„wĸ§ÝÖĸūęäĸdÍūĸiÎĀĸkÏÁĸlÏÁĸnÏÂĸnÐÃĸoŅÂĸpÐÃĸpÐÃĸpÐÄĸpÐÃĸ}ÕČĸĶâÚĸĘîčĸŌðëĸŅïëĸÐîęĸūåāĸĨØÓĸ•ŅÉĸ’ÐČĸÅéäþĢáŲĸ]ĘŧĸXČđĸVČļĸ8ŋŽĸŊ—ĸ Ŋ˜ĸ °™ĸ °™ĸ Ŋ˜ĸ °™ĸ[ĘŧĸŧéãþqÅŧĸ Œ~ĸ�„vŌ�†wķt�ķt�―€3�˜]������������������������� a+ a+x\'ĸD’Qĸ†Ô”ĸŽÚ›ĸnÎ~ĸmÎ}ĸmÎ}ĸmÎ}ĸmÎ}ĸmÎ}ĸoÎ~ĸZĮkĸSÅfĸTÅhĸqİĸŸÎęþžÎåĸŸÎæĸ Ïįĸ ÏæĸĒÐæĸĒÐįĸĢŅčĸĢŅįĸĢŅčĸĨŅįĸ§Ōčĸ§Ōčĸ§ŌčĸĻÓéĸĻÓéĸĻÓéĸĻÓéĸĻÓéĸĻÓéĸĻÓéĸ§Ōčĸ§ŌčĸĶŌįĸĪŅįĸĢÐčĸĢÐįĸĢŅčĸĒÐįĸĄÏæĸ ÎįĸŸÎæĸŸÍåĸžÍåĸœÎæĸœÍåĸÎæĸ›Îįĸh€Œĸx˜Šĸk…“ĸcy„ĸ†ēČĸŽŋŨĸmŠ™ĸožĸ\pzĸbz†ĸ‰šÔĸČäĸŽČåĸqœĸtvvĸJKJĸEMQĸĸ!! ĸMjzþqžÔĸ ‹„ĸUģĻþÐïëĸ„ŨËĸiÎĀĸlÏÁĸnÐÂĸoŅÃĸpŅÃĸrŅÄĸsŌÄĸtŌÅĸtŌÅĸsŌÅĸrŅÄĸnÐÂĸlÏÂĸ€ÕĘĸ•ÝŌĸĻãÚĸķįáĸÂėåĸČîčĸÉîéĸĘíéĸßÖĸ^ĘŧĸZĘšĸYÉđĸKÄīĸīžĸ Ŋ˜ĸ °™ĸ °™ĸ °™ĸ Ŋ˜ĸ °™ĸTĮ·ĸđęâĸtĮžþ‚ĸ�…wá�…w'������������������������������������ a+ a+x\'ĸE’Rĸ‰Õ•ĸ‘ڝĸqρĸpπĸpπĸpπĸpπĸpπĸrςĸXĮkĸRÅeĸSÅgĸpÃŊĸ ÎęĸŸÎæþ ÏįĸŸÏæĸĄÏæĸĒÐįĸĢŅčĸĒÐįĸĪŅčĸĶŌįĸ§Ōčĸ§ŌčĸĻÓéĸĻÓéĸĻÓčĸĻÓčĸĻÓčĸĻÓčĸĻÓčĸĻÓčĸ§ÓčĸĻÓéĸĻÓéĸ§Ōčĸ§ŌčĸĶŅįĸĢŅčĸĢÐįĸĢŅčĸĒÐįĸĄÏæĸŸÎįĸŸÎæĸžÎæĸÍåĸœÎæĸÎåĸÏčĸl…‘ĸf}‰ĸw—§ĸv–ĶĸŋŨĸŠđÐĸawĸS_fĸc{†ĸxŊĸ€ŦÂĸ‘ÉæĸĮäĸQepĸ ĸĸ]x†ĸ&'(ĸ023þZyˆĸŒÅčĸ,‘ĸ‰xþšåāĸžéãĸkÎĀĸnÐÂĸoŅÃĸqŅÃĸsŅÄĸtŌÅĸuŌÅĸvÓÆĸvÓÆĸvŌÅĸuŌÅĸsŅÄĸqŅÄĸnÐÂĸkÏÁĸhÎŋĸdĖūĸaË―ĸ_Ëžĸ_Ëžĸ]Ęŧĸ\Ęŧĸ]ËŧĸZÉŧĸXČđĸVČļĸ1žĐĸŊ˜ĸ Ŋ˜ĸ °™ĸ °™ĸ °™ĸ Ŋ˜ĸ Ŋ™ĸPÆĩĸīéáĸzËĀþ“…ĸ�„vė�†x:�������������������������������� a+ a+x\'ĸF“Sĸ‹Ö˜ĸ”Ü ĸuЄĸtЃĸtЃĸtЃĸtЃĸtЃĸvŅ…ĸYĮkĸQÄdĸQÄfþkÂĨúžËïýĪÏíĸĢÏėĸĪÐėĸĨÐíĸĶŅíĸĶŅíĸĻŌíĸŠŌíĸŦŌîĸŦÓîĸŽÓïĸŽÔîĸŽÔîĸ­Õïĸ­ÕïĸŪÕïĸŪÕïĸŪÕïĸŪÕïĸŽÔïĸŽÔîĸŽÓîĸŽÓïĸŦÓîĸŦŌîĸŠŌíĸĻŅíĸĶŅíĸĶŅîĸĶÐíĸĪÏėĸĢÏėĸĢÏėĸĄÎëĸ Îëĸ ÎëĸĄÏėĸˆŦÄĸ’ŧŨĸķŅĸļÔĸ›Ííĸ›Ïðĸ~ ļĸĄšĸ~Ēŧĸy›ēĸ•Čéĸ“Įéĸ”Éëĸ{ĻÅĸ_v‰ĸ`mzĸ~†‘ĸ}Œšĸ|œģĸˆŋâĸ‰ÃįúN·†ü�ˆpĸQ°ĶĸÖōîĸ•ÝÓĸjÎÁĸqŅÃĸsŅÄĸuŌÅĸwÓÆĸxÓĮĸyÓĮĸyÓĮĸxÓÆĸwÓÆĸuŌÅĸsŌÅĸqŅÄĸoŅÃĸnÐÂĸlÏÁĸiÎĀĸgÍŋĸeÍūĸbĖ―ĸ`Ė―ĸ^Ëžĸ[ÉšĸYÉđĸYÉđĸD°ĸģĸ Ŋ˜ĸ °™ĸ °™ĸ °™ĸ °™ĸ Ŋ˜ĸŊ—ĸJÄģĸŊįßĸ…ŅĮþ˜Šĸ�ƒuņ�†wR���������������������������� a+ a+x\'ĸG“SĸŽÖšĸ–ÜĄĸx҆ĸwІĸwІĸwІĸwІĸwІĸy҈ĸ\ČnĸNÃbĸOÃcþVÃvųnÅĒüwÉĪĸvÉĢĸwÉĢĸxĘĪĸxĘĪĸxĘĪĸyËĪĸzĘĪĸzËĪĸzËĪĸzËĪĸ{ËĪĸ{ĖĪĸ|ĖĨĸ|ĖĨĸ|ĖĨĸ|ĖĨĸ|ĖĨĸ|ĖĨĸ{ĖĪĸ{ĖĪĸ{ËĪĸzËĪĸzËĪĸzËĪĸzËĪĸyĘĪĸxĘĪĸxĘĪĸxĘĪĸwÉĢĸvÉĢĸvÉĢĸvÉĢĸuČĢĸuÉĢĸuČĢĸv˧ĸtÉĨĸtÉĪĸsČĢĸrĮĒĸqÆĄĸs˧ĸs˧ĸsĘĶĸrʧĸoÆĒĸnÅĄĸnÄĄĸoČĨĸoɧĸgŧ–ĸgđ“ĸiœĸkÆĪĸkÄĢĸd–øVÆkü#Ąmĸ�…xĸ›ÖÏĸÍðëĸÖĘĸpÐÃĸuŌÅĸwÓÆĸyÓÆĸzÔĮĸ|ÔČĸ{ÔČĸzÔĮĸyÓĮĸwÓÆĸuŌÅĸsŅÄĸqÐÄĸoŅÂĸmÏÁĸjÎĀĸhÎĀĸfÍŋĸdÍūĸaĖ―ĸ^Ęŧĸ\ĘšĸYÉšĸXČļĸSĮ·ĸ%ļĪĸ Ŋ˜ĸ Ŋ˜ĸ °™ĸ °™ĸ °™ĸ °™ĸ Ŋ˜ĸŪ–ĸ?ÁŊĸŦåÜĸ’ÖÎþ)Ÿ’ĸ�rņ�†xh������������������������ a+ a+x\'ĸH“TĸŨœĸ™ÝĪĸzŌ‰ĸyԈĸyԈĸyԈĸyԈĸyԈĸzԈĸrρĸOÄcĸKÂ_ĸKÂ^ĸIÂZĸHÂZþHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸHÂZĸIÂZĸIÂZĸIÂZĸIÂZĸIÂZĸIÂZĸIÂZĸIÂZĸIÂZĸIÂZĸIÂZĸIÃ[ĸJÄ\ĸJÄ\ĸIÃ[ĸIÃZþIÂZþJÃ[ĸLÃ_ĸGŋ`þ Žqĸ–ŠĸÃéäĸšéâĸyÓĮĸtŌÅĸyÓÆĸzÔĮĸ}ÕČĸ~ÔÉĸ~ÕÉĸ}ÔČĸ{ÔČĸyÓĮĸwÓÆĸuŌÅĸrŅÄĸoÐÂĸnÏÂĸkÏÁĸiÎĀĸfÍŋĸdÍūĸbĖ―ĸ_Ëžĸ\ĘšĸZÉšĸXČđĸXČđĸ9ŋŽĸą›ĸ Ŋ˜ĸ °™ĸ °™ĸ °™ĸ °™ĸ °™ĸ Ŋ˜ĸŪ—ĸ2―ĐĸĪâŲĸžÜÔĸ5Ķ™ĸ�€qó�…wx‡y���������������� a+ a+x\&ĸH“Uĸ’؝ĸ›ÞĶĸ}ԋĸ|ӊĸ|ӊĸ|ӊĸ|ӊĸ|ӊĸ|ӊĸ|ӊĸrЂĸ_ÉqĸWÆjĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆiĸWÆjĸbËrĸ`Ãĸ�†wĸA§ĸÖōîĸŪäÝĸzÔĮĸxÓĮĸ|ÔČĸ~ÔČĸ€ÕÉĸÕĘĸÕÉĸ|ÔČĸzÔĮĸxÓÆĸuŌÅĸsŌÅĸpÐÃĸnÐÂĸlÏÁĸiÎĀĸgÍŋĸdÍūĸbĖ―ĸ_Ė―ĸ\ĘŧĸZÉšĸXČđĸVČļĸPÆķĸĩŸĸ Ŋ˜ĸ Ŋ™ĸ °™ĸ °™ĸ °™ĸ °™ĸ °™ĸ Ŋ˜ĸŊ˜ĸ$ļĪĸšÞÕþ§ßØĸAޟĸ�rų�…w„†x������������ a+ a+x\&ĸI“Uĸ•ØŸĸžßĐĸ‚ՐĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸ€ÔŽĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸԍĸ€ÔŽĸ‚ՏĸVš‡ĸ�„yĸ[īŠĸÛôņĸŽäÜĸ~ÕČĸ|ÔČĸ€ÕÉĸƒŨËĸ‚ÖËĸ€ÕĘĸ~ÔČĸ{ÔČĸxÓĮĸvÓÆĸsŌÅĸpÐÃĸnÐÂĸlÏÁĸjÎĀĸgÍŋĸeÍŋĸbĖ―ĸ`Ė―ĸ\ĘŧĸZÉšĸXČđĸVČļĸVČļĸ3―Šĸ °šĸ Ŋ˜ĸ °™ĸ °™ĸ °™ĸ °™ĸ °™ĸ °™ĸ Ŋ˜ĸ Ŋ˜ĸīŸĸ‹ÚÎþŦâÛþJąĨĸ�†wĸ�…w–�…w �������� a+ a+x\&ĸJ”Vĸ•Ų ĸžßĐĸ‚ՐĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸÔĸ€ÔĸDŊ„ĸ�…yĸhŧąĸØóïĸīįāĸ‚ÖËĸÕÉĸÕĘĸÖĘĸÕÉĸ}ÔČĸzÔĮĸxÓĮĸvÓÆĸsŌÅĸpÐÃĸnÐÂĸlÏÁĸjÎĀĸgÍŋĸdÍŋĸbĖ―ĸ`Ė―ĸ\ĘŧĸZÉšĸXČđĸVČļĸTĮ·ĸPÆĩĸīžĸ °™ĸ °™ĸ °™ĸ °™ĸ °™ĸ °™ĸ °™ĸ Ŋ˜ĸ Ŋ˜ĸīŸĸ”ÜŌþ­ãÜĸKąĶĸ�…wĸ�…wš�…w �������� a+ a+x\&ĸI”Uĸ”ŲŸĸœÞĻĸ~Ԍĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}Ӌĸ}ӋĸzŌ‹ĸ9Šĸ�…wĸcļŊĸĖėčĸĮėįĸŽÚÐĸ‚ÖĘĸ~ÕÉĸ~ÔČĸ{ÔČĸyÓĮĸwÓÆĸuŌÅĸsŅÄĸoÐÃĸnÏÂĸlÏÁĸiÎĀĸfÍŋĸdÍūĸbĖ―ĸ_Ëžĸ\ĘšĸZÉšĸXČđĸVĮļĸSĮ·ĸRÆķĸ@°ĸąšĸ Ŋ˜ĸ Ŋ˜ĸ °™ĸ °™ĸ °™ĸ Ŋ˜ĸ Ŋ˜ĸ&đĪĸĢáŲþĶßŨĸ>Šžĸ�sû�…w‡�†x������������ a+ a+x\'ĸG“TĸŨœĸšÝĪĸz҉ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸy҈ĸzԈĸvЇĸ<Ŧ~ĸ�„rĸEПĸ°ßŲĸÖōîĸ­åÝĸ‰ŲÎĸ~ÕÉĸwÓÆĸwÓÆĸvŌÆĸtŌÅĸqÐÄĸoÐÂĸmÏÂĸkÎĀĸhÎĀĸfÍŋĸdÍūĸaĖ―ĸ_Ęŧĸ\ĘšĸYÉšĸXČļĸUĮļĸRĮ·ĸPÆķĸQÆķĸ7ūŦĸēœĸ Ŋ˜ĸ Ŋ˜ĸ Ŋ˜ĸ Ŋ˜ĸ °™ĸ9ŋ­ĸŊåÝĸšÚŅĸ,Ē”ĸ�qð�†xw�������������������� a+ a+y\'ĸDŽPĸŒÔ˜ĸ™ÝĪĸ{Ō‰ĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸuЄĸvŅ„ĸuЄĸIīĸ‹sĸ’†ĸzÅžĸ―åāĸÔóîĸ­åÝĸ‘ÛŅĸÕĘĸrŅÄĸoÐÃĸnÐÂĸmÐÂĸlÏÁĸiÎĀĸgÍŋĸeÍŋĸcĖūĸaĖ―ĸ^Ëžĸ[ÉšĸYÉđĸWČļĸUČ·ĸRĮķĸOÆĩĸMÅĩĸMÅĩĸ=ĀŪĸ ·Ēĸģĸ °™ĸą›ĸPÆĩĸģįāĸˆŅČþ˜Šĸ�€rå†xc������������������������ `+ `+s](ĸ:„Fþ…Ï’ĸ–ÝĒĸŠØ—ĸqπĸnÏ~ĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸpÏĸsŅĸYĀ}ĸ' wĸ�„uĸ.ž”ĸuÃđĸ·ãÞĸÖóïĸÃėæĸŠãÛĸ•ÜÓĸ„ØĖĸwÓÆĸlÏÁĸcĖ―ĸ_Ëžĸ^Ęžĸ[Ęšĸ[Ęšĸ]Ëŧĸ[ÉŧĸXČđĸVČļĸTĮ·ĸRĮķĸOÆĩĸLÅīĸJÄģĸIÄģĸFÃēĸ6ūŦĸ6ūŠĸoÐÂĸīčáĸsÆžþ‘ƒĸ�‚tØ�†xI��������������������������������`*V_)ĸ'p3þsĀĸ’ÜŸĸ‘Úžĸ…Ö’ĸuŅ…ĸoÏĸoπĸoπĸoπĸoπĸoπĸpπĸpπĸpπĸpπĸpπĸpπĸpπĸpπĸpπĸpπĸpπĸpπĸpπĸpπĸpπĸpπĸpπĸpπĸoπĸoÎĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸoÏĸnÏĸnÏĸnÏĸnÏĸnÏĸnÏĸnÏĸnÏĸnÏĸnÏĸnÏĸnÏĸnÏĸnÏĸnÏĸoÏĸrŅĸiËĸOđ|ĸ!›yĸ�†yĸ–ŒĸNŊĨĸŠÏÆĸĀęäĸŨõðĸÏņėĸÄíįĸŧéãĸīįāĸ­åÝĸĻãÚĸĻãÛĸŠŲÎĸ]ĘŧĸZĘšĸXČđĸVČļĸSĮ·ĸQÆķĸNÆĩĸKÅīĸIÃģĸGÃēĸC°ĸKÅīĸ’ÜŌĸķéâþažąþ ĸ�„vÃ�†x.������������������������������������ `+2`*č](ĸB™Pþ€ÕŽĸÚĸÚœĸŒŲ™ĸŠØ—ĸ‰Ũ—ĸ‰Ũ—ĸ‰Ũ—ĸ‰Ũ—ĸ‰Ũ—ĸˆŨ–ĸˆŨ–ĸˆŨ–ĸˆŨ–ĸˆŨ–ĸˆŨ–ĸˆŨ–ĸˆŨ–ĸˆŨ–ĸˆŨ•ĸˆŨ•ĸˆŨ•ĸˆŨ•ĸˆŨ•ĸ‡Ö”ĸ‡Ö”ĸ‡Ö”ĸ‡Ö”ĸ‡Ö”ĸ†Ö”ĸ†Ö“ĸ†Ö“ĸ†Ö“ĸ†Õ“ĸ…Õ’ĸ…Õ’ĸ…Õ’ĸ…Õ’ĸ…Õ’ĸ…Õ’ĸ…Õ’ĸ…Õ’ĸ…Õ’ĸ…Õ’ĸ…Õ’ĸ…Õ’ĸ…Õ’ĸ…Õ’ĸ…Õ’ĸ…Õ’ĸ…Õ’ĸ„Õ‘ĸ„Õ‘ĸ„Õ‘ĸ„Õ‘ĸ„Õ‘ĸ„Õ‘ĸ„Õ‘ĸ„Õ‘ĸ„Õ‘ĸ„Õ‘ĸ„Õ‘ĸƒÕ‘ĸƒÕĸƒÕĸƒÕĸƒÕ‘ĸƒÕ‘ĸƒÕ‘ĸƒÕ‘ĸƒÕ‘ĸƒÕ‘ĸƒÕ‘ĸƒÕ‘ĸƒÕ‘ĸƒÕ‘ĸƒÕ‘ĸƒÕ‘ĸƒÕ‘ĸƒÕ‘ĸ„Ö‘ĸ„Ö‘ĸ{Аĸhčĸ2΁ĸ‰yĸ‹€ĸ”‰ĸ1Ē•ĸZ·Žĸ~Éŋĸ›ŨÏĸ°áÛĸūčâĸÄęåĸÐïëĸĢáŲĸ]ĘŧĸYÉđĸWČļĸUĮ·ĸRĮķĸPÆĩĸMÅĩĸKÅīĸHÄģĸEÃąĸNÅīĸ āØĸ°æÞþQĩĻþ‰{ĸ�…wĻ�…w����������������������������������������a* a+Œ`*ĸa*ĸ=”Kþsςĸ‹Û™ĸÛ›ĸŽÛ›ĸŽÛ›ĸŽÛ›ĸÛšĸÛšĸÛšĸÛšĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸŒÚ™ĸ‹Ú˜ĸ‹Ú˜ĸ‹Ú˜ĸ‹Ú˜ĸ‹Ú˜ĸ‹Ú˜ĸ‹Ú˜ĸ‹Ú˜ĸ‹Ú˜ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ—ĸŠÚ–ĸ‰Ú–ĸ‰Ú–ĸ‰Ú–ĸ‰Ú–ĸˆÚ•ĸˆÚ•ĸˆÚ•ĸˆÚ•ĸˆŲ•ĸˆŲ•ĸ‡Ų•ĸ‡Ų•ĸ‡Ų•ĸ‡Ų•ĸ‡Ų”ĸ†Ų”ĸ†Ų”ĸ†Ų”ĸ†Ų”ĸ†Ų”ĸ†Ų”ĸ†Ų”ĸƒŨ”ĸyӐĸ>Ģmĸ {]ĸ‚oþˆ{ĸ‰{ĸŠ|ĸ Š}ĸŠ|ĸ“†ĸŠÜÖþĢáŲĸ\ĘšĸXČđĸVČļĸTĮ·ĸQĮķĸNÆĩĸLÅīĸJÄģĸFÃēĸSĮ·ĸŪæÝĸŦãÛþC­Ąĸ�…wĸ�…w‘�…w������������������������������������������������ a+ a+ū a+ĸ`*ĸ b+ĸ'v4ĸ1}>ĸ5†Bĸ5†Bĸ5†Bĸ5†Bĸ4†Bĸ4†Bĸ4†Bĸ4†Bĸ4†Bĸ4†Bĸ4†Bĸ4†Bĸ4†Bĸ4†Bĸ4†Bĸ4…Bĸ4…Bĸ4…Bĸ3…Aĸ3…Aĸ3…Aĸ3…Aĸ3…Aĸ3…Aĸ3…Aĸ3…Aĸ3…Aĸ3…Aĸ3…Aĸ3…Aĸ3„@ĸ3„@ĸ3„@ĸ3„@ĸ3„@ĸ3„@ĸ3„@ĸ3„@ĸ3„@ĸ3„@ĸ3„@ĸ3„@ĸ3„@ĸ3„@ĸ3ƒ@ĸ3ƒ@ĸ3ƒ@ĸ3ƒ@ĸ3ƒ@ĸ2ƒ@ĸ2ƒ@ĸ2ƒ@ĸ2ƒ@ĸ2ƒ@ĸ2ƒ@ĸ2ƒ@ĸ2ƒ@ĸ2ƒ@ĸ2ƒ?ĸ2ƒ?ĸ2ƒ?ĸ2ƒ?ĸ2ƒ?ĸ1‚?ĸ1‚?ĸ1‚?ĸ1‚?ĸ1‚?ĸ1‚?ĸ1‚?ĸ1‚?ĸ1‚?ĸ1‚?ĸ1‚?ĸ1‚?ĸ1‚?ĸ1‚?ĸ1‚?ĸ1‚?ĸ0>ĸ-{:ĸ$m0ĸ`)ĸ `*ĸ `)ĸc1Š�ˆ|3�…wV�†xi�„u§ €üĶÚÔĸĢáŲĸ[ÉšĸWČļĸUĮ·ĸSĮķĸPÆķĸMÅīĸKÅīĸHÃēĸ]ËŧĸđéáþĶāØĸ3Ķ™ĸ�‚tþ�…wƒ�†x��������������������������������������������������������a* `+Ž a+î`*ų_*ü_)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü^)ü_)ü_)ü_)ü_)ü_)ü_)ü_)ü_)ü_)ü_)ü_)ü_)ü_)ü_)ü_)ü_)ü_)ü_*ü`*ú `+õ a+éa+k�����������������‚tS ųĨÚÓĸĒáŲĸZÉđĸUĮ·ĸSĮķĸQÆķĸNÅĩĸKÅīĸJÄģĸmÐÂĸūëäĸÜÓĸ"œĸ�rņ�†xw������������������������������������������������������������������������`*< a+ˆ`*Ą a+ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž`*ž a+ž`*ž`*“`*f a+���������������������‚tX ŒųĪŲÓĸĄáØĸXČđĸTĮ·ĸRÆķĸPÆĩĸLÄīĸNÅĩĸ~ÕÉĸŋëåĸŒÓÉþ“†ĸ�sä�†xf�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������‚tX Œ~ųĪŲÓĸ áŨĸVČļĸSĮķĸPÆķĸLÅīĸSĮ·ĸŽÚÐĸ―ęäþwČūþ Žĸ�ƒuÖ�†xO���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������‚tX Œ~ųĢŲŌĸŸāŨĸUČ·ĸPÆķĸMÅīĸWČļĸœßÖĸđéâþbūēþ‹}ĸ�„vŋ�†x5�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������‚tX Œ~ųĒØŌĸžāŨĸRĮ·ĸMÅīĸ[ÉšĸŠäÜĸĩįßþPīĻĸ‰{ĸ�„vĪ�…w!�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������‚tX ‹}ųĄØŌĸāÖĸNÅīĸ_Ëžĸ·įáĸēäÞþ=Ŧžĸ�‡xĸ�„v�…w���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������‚tX‹}ųĄØŌĸ™ßÕĸlÏÁĸÁęåĸ­ãÜþ*Ą“ĸ�„vĸ�…w~�†x �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ƒtX‹}ųŨÐĸļčáĸČíįĸĶāŨĸ—‰ĸ�ƒuó�†xt���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ƒtX‹}ųœÖÏĸĘîéþ”ŨÎþ ĸ�ƒuį�†xe�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ƒtX‹}ų–ÕÍĸĖÃþ‹}ĸ�„vŲ�†xM�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ƒuX‹}ų@ޟĸŠ|ĸ�„vÃ�†x4���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������…wX�‡xú�„uĸ�„vĻ�…w �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������†xZ�…wĸ�…w�…w�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������†wR�†wv�…x ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������…y�…y����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸüĸĸĸĸĸĸĸĸĸĸĸĸĸĸ€�ĸĸĸĸÏĸĸĸĸĸĸĸĸþ��ĸĸĸĸĸĸĸĸĸĸĸø��ĸĸĸĸĸĸĸĸĸĸĸā��ĸĸþĸĸĸĸĸĸĸĸĀ���ĸĸüĸĸĸĸĸĸĸĸ€���ĸøĸĸĸĸĸĸĸĸ����?ĸāĸĸĸĸĸĸĸþ����ĸĀĸĸĸþ�����������ĸĸĸø�����������ĸĸĸð�����������ĸĸĸā�����������ĸĸĸā�����������ĸĸĸā�����������ĸĸĸā������������ĸĸā������������ĸĸā�������������ĸĸā�������������?ĸā�������������ĸā�������������ĸā�������������ĸā�������������ĸā�������������ĸā��������������ĸā��������������ā��������������ā��������������?ā��������������ā��������������ā��������������ā��������������ā�������������ā����������� ��ā����������� �ā�������������ā������������>�ā�������������ā������������ĸ€ā�����������ĸ€ā�����������ĸĀā�����������ĸĀā�����������ĸĀā�����������ĸāā�����������ĸāā�����������Oĸāā�����������ĸĀā�����������ĸĀ?ā�����������ĸĀ?ā�����������ĸĀā�����������ĸ€ĸā�����������ĸĸā�����������ĸĸā�����������þĸā�����������üĸā�����������ųŸĸā�����������ĸĸā�����������ĸĸĸā�����������ĸĸĸā�����������ĸĸĸā�����������ĸĸĸā�����������ĸĸĸā�����������ĸĸĸā�����������ĸĸĸā�����������ĸĸĸā�����������ĸĸĸā����������ĸĸĸĸā����������ĸĸĸĸā����������ĸĸĸĸā����������ĸĸĸĸā����������óĸĸĸā�����������ņĸĸĸā�����������pĸĸĸā�����������pĸĸā�����������p?ĸĸā�����������0ĸĸā�����������0ĸĸā�����������0ĸĸā�����������0ĸĸā�����������0ĸĸā�����������0�ĸĸā�����������0�?ĸā�����������0�ĸā�����������0�ĸā�������������ĸā�������������ĸā�������������ĸā��������������ĸā��������������ā��������������?ā��������������ā��������������ā��������������ā��������������ā��������������ā��������������ā��������������?ā��������������ā��������������ĸā�������������ĸā�������������ĸð�����������ā�ĸø����������ð�ĸþ����������ð�?ĸĸĸĸĸĸĸĸĸĸĸĸĸð�ĸĸĸĸĸĸĸĸĸĸĸĸĸð�ĸĸĸĸĸĸĸĸĸĸĸĸĸĸðĸĸĸĸĸĸĸĸĸĸĸĸĸĸðĸĸĸĸĸĸĸĸĸĸĸĸĸĸðĸĸĸĸĸĸĸĸĸĸĸĸĸĸðĸĸĸĸĸĸĸĸĸĸĸĸĸĸð?ĸĸĸĸĸĸĸĸĸĸĸĸĸĸðĸĸĸĸĸĸĸĸĸĸĸĸĸĸðĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸņĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸóĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸ(���0���`���� ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������(}6"y1N&~5 2…@Ė5‡CÖ1…?―${2 x/0'}5�����������������������������������������›Á'�ŸÃf��������������������������������������������������������������������������������������������������������'|5$~3ëkąwĸŦØģĸŧāÁĸŋâÅĸŧßÁĸĶÓŪĸ]Ģhþ#z1Ø+93���������������������������������”žE-ķÓö­ÍŠ������������������������������������������������������������������������������������������������*7'}6ķJ›WĸÁęČþÜôāĸØōÜĸŲōÝĸŅïŨĸŋéÆĸÆëĖĸÖóÛþĶÕŪþ9‰Fĸ%{3F�������������������������ŸÃMOÄÜýąņøĸ&ąÏˆ������������������������������������������������_*[[(“['”[(”[(”[(”[(”[(”[(”[(”[(”Z'“%w3ŧ_°mĸÐïÕþÚōÞĸÚņÞĸÛōßĸÖņŲĸĨáŪĸģæžĸŽâĩĸĢā­ĸĻâąĸĒÚŠĸD—Rúa"—Y$”\(”[(” \%“�‹žŠyÖįýxčõĸuãōĸ*ąÏˆ��������������������������������������������^)§)x7ĸ9™Iĸ;œKĸ:›Jĸ:›Jĸ:›Jĸ:›Jĸ:›Jĸ9šJĸ9šIĸ9›Iĸ1ŽAĸB›QĸÅëËþÛōßĸÝóáĸÞóâĸâôåĸĘíÐĸÄëĘĸŨņÛĸÎîÔĸÆėÍĸšįÁĸŦãĩĸŠåģþ•Ö ĸcĐnĸDœSĸ7˜Iĸ“ĸŒÝíĸˆíũþXãōĸzäōĸ+ąÏ†����������������������������������������\(#k/ėQČeþDÁYĸBĀWĸBĀWĸBĀWĸBĀVĸBĀVĸBĀVĸAĀVĸAĀVĸAŋVĸ)‰9ĸ…Ð’ĸŨņÛĸÜōāĸßóãĸâõæĸæũéĸÖņÚĸīæžĸóûôĸčũëĸÞóáĸÖņÚĸÏïÔĸÆėĖĸ―éÄĸģįžĸĪáąĸ'ēļĸĶčôĸ€ęöĸgåôĸ]ãóĸ|åōĸĶĮÍ�–―}�•žM��������������������������������Z'+x7ïQÉdĸ>―Sĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ<·Pĸ9’GĸĢãŪĸÜōāĸØōÝĸÐïÕĸčũęĸčũęĸęũėĸ―čÄĸĶá°ĸĀęĮĸÜóáĸäöįĸæöéĸßôãĸŲōÛĸūčŅĸI―ÎĸŊėöĸ|éõĸpįôĸiåôĸ]ãóĸ€ęöþĒïøĸƒäōĸ[Ōæĸ.đÕĸ­Ė“�š��������������������Z'*y8ïQÉdĸ?ūTĸ?ŋTĸ@ŋTĸ=đRĸ@ŋUĸ?ŋUĸ?ŋUĸ@ŋTĸ=đQĸ;īOĸP§_ĸĨáŊĸßôâĸŌïŨĸžéÃĸėøíĸėũîĸîųðĸņúóĸčũëĸÜōßĸĀéĮĸĐâģĸ­ãĩĸĖíÐĸĮęâĸRÂØĸĶíũĸvčõĸpįôĸkæôĸdåóĸ]ãóĸHāōĸÖîĸÔíĸ ÖîþŲïĸYßðĸgÍáō�œÂ_����������������Z'+y8ïSÉfĸ@ūUĸ@ŋVĸAļTĸ[Âlĸ@―UĸF·YĸEļWĸA―Uĸ\Ãlĸ:ŦMĸWĐdĸ›ßĶĸÞóâĸãõæĸäöįĸŧčÃĸîúðĸõûöĸôûõĸóúôĸîųðĸíøïĸėøíĸÕðŲĸŠâžĸŪÉĸŦðųĸ\ãōĸhåôĸgåôĸdåôĸ]ãóĸ?ßņĸ�Óíĸ�Óėĸ�Ôíĸ�Ôíĸ�Óėĸ�Ōėĸ/ÝņþWËáĸ�ŸÄj������������Z&,y9ïVĘjĸ@ūUĸ@ūUĸEĀZĸbĘsĸ@ūUĸUÆhĸRÄeĸAŋVĸcĘtĸ?ķRĸHŸVĸ“Ý ĸŨņÚĸâõæĸãõåĸēåŧĸÐïÕĸģæŧĸöûũĸóûôĸïųņĸëũíĸįũéĸäõįĸÚōßĸSÂĶĸsÔįĸîøĸ[ãóĸ]äóĸ[ãóĸHāōĸÔíĸ�Óėĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Ôíĸ�Óėþ ÚðþrÔæú�šĀ-��������Y&,z9ïWĘjĸ@ūUĸAŋVĸ@ūUĸ?ūTĸAŋVĸ?ūUĸ@ūUĸ@ūUĸ?ūTĸ?ŧTĸ,ˆ;ĸŒÚ™ĸŊã·ĸãõæĸæöčĸėųîĸÍíÓĸŪä·ĸôûõĸņúōĸėøîĸęũėĸįũéĸáôåĸĶáąĸn―wĸ—xĸkÐâĸzčöĸRâōĸLáōĸÕíĸ�ÓėĸÕíĸŨîĸ ŨîĸÔíĸ�Óėĸ�Óėĸ�Ôíĸ�Óėĸ?Üðĸ&ąÏÍ��������Y&,z9ïXĘkĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸ@ūUĸAŋVĸ0–AĸYŽgĸ‹Ų˜ĸ°äđĸæöéĸįũéĸęøėĸîøðĸėøîĸėøîĸéũëĸįũéĸęũėĸīå―ĸÝĸ5ŽDĸ>·Oĸ.ķsĸQÅÚĸíøĸÔíĸ�Óėĸ�ÓėĸCÝðþQČßĸPÉâĸuÞņþbįũĸ�Ôíĸ�Óėĸ�ÔíĸŨîþRĖáĸ�”ž:����Y&-z:ï\ĖnĸCŋXĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸDĀYĸCŋXĸ0‡>ĸ|ˉĸŠØ—ĸĪāŊĸŨōÜĸãõåĸčũęĸęøëĸéũęĸãõåĸÖņÛĸĒā­ĸˆŨ•ĸSĶ`ĸ1•AĸDÁYĸEĀVĸ*īsĸ=―ÓĸJāōĸ�Óėĸ�ÓėĸBÚîĸ­ÍŠWË|@šœĸ)ēÉâ}ßîĸÚïþ�Óėĸ�Óėĸ}čõĸ�™ŋ™����Y&-{:ï]ĖoĸDĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEÁZĸ?ēRĸ1ˆ@ĸyʇĸŒŲ™ĸŒØ™ĸ—ÜĢĸŸßŠĸ§á°ĸ ßŦĸ—ÜĢĸŲšĸÞĸXŦfĸ1‘AĸEĀZĸEĀZĸEĀZĸFÁXĸ8škĸ/·Ėĸuéũĸ�ÓėĸBÛðĸ>ŧĻęiÍsúmÎzũ˜·ĄÅƒXŅåĸŨîþ�ÓėĸkéũĸĻĘĘ����Y&-{;ï^ÍpĸEĀZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸEÁZĸFÂ[ĸ>ŊQĸ*ƒ9ĸ`ēmĸ€Îĸ‰Ũ–ĸŲšĸŒŲ™ĸŒŲ™ĸ†Ó“ĸxĮ…ĸ?”Mĸ.Ž>ĸEŋZĸEĀZĸEÁZĸEÁZĸEÁZĸFÁYĸ;žeĸ)īÅĸYāōĸGÜðĸ9đŸũXĮdŌWĮi%īw'�����ŦËąIÜïĸ�Ōėĸaįöþ­ÍÐ����Y&.{;ï`ÍrĸFĀ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFĀ[ĸGÁ\ĸDžXĸ7 Hĸ0ˆ?ĸ8ŠEĸA•OĸG™Tĸ<‘Kĸ4†Aĸ1@ĸ>°QĸFĀ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFÁ[ĸFĀ[ĸGÁZĸAūfĸ&ģĀĸ‹åóĸ'ēŖĸĸ�ӝU�§m#�‹C��Â.zßíû�Ņėĸwëøĸ� Ä―����Y&.|;ï`ÎrĸGĀ[ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÂ\ĸIÄ]ĸBīUĸ<ĻMĸ:ĨLĸ>ŽPĸF―ZĸIÄ^ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸHÁ\ĸLÃ_ĸ?œOĸ–ŽøĻˈáÞ�âÞ�įĘĪ�äĮĒ��đ‹Ýėí�Óíþsßîĸ�•―s����Y&.|<ïdÏvĸJÂ^ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÃ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸKÂ_ĸNÅbĸ?™Nĸ`3˜�ĢÍ@čĘĒ�čĘĒ�čĘĒ�čĘĒ��”ž …ßîóØîĸ8ŧÖĸ�_™����Y&/|<ïeÏwĸLÂ`ĸMÂaĸMÂaĸMÂaĸMÂaĸMÂaĸMÂaĸMÂaĸMÂaĸMÂaĸMÂaĸMÂaĸMÂaĸMÂaĸMÂaĸMÂaĸMÂaĸMÂaĸMÂaĸMÂaĸLÂ`ĸLÂ`ĸLÂ`ĸLÂaĸMÂaĸMÂaĸLÂ`ĸLÂ`ĸLÂ`ĸMÂaĸMÂaĸPÅdĸ@™Oĸ['‰ëÁŒ�ïŏ�ïŏ�ðƏ�ðŏ�­ĖNMÚíóZÛíöŦËpŌ§p�����Y%/|=ïfÐxĸMÃaĸNÃbĸNÃbĸNÃbĸNÃbĸNÃbĸNÃbĸNÃbĸNÃbĸNÃbĸNÃbĸNÃbĸNÃbĸNÃbĸNÃbĸNÃbĸNÃbĸNÃbĸNÃbĸMÃaĸQÅeĸbĖtĸ_ĘqĸNÃbĸMÃaĸNÃbĸ]ĘoĸdĖuĸSÅfĸMÃaĸNÃbĸRÆeĸAšPĸ['ŠÉČĘ�š›�žžĄ�–•˜��$dļÖĮXāņŌēÐĶ�ƒąŌĶp�����Y&/|<ïcÏuĸGÁ[ĸIÁ]ĸJÁ^ĸFÁZĸLŋ_ĸVÂhĸHŋ\ĸNÁaĸEĀYĸRĀdĸHÁ\ĸPÁcĸGÁ[ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸHÁ]ĸVÆhĸEĩXĸHļZĸWÆjĸPÅcĸVĮhĸKŧ^ĸDīVĸUÄgĸHÁ\ĸGÁ\ĸLÄ_ĸ@šOĸ['Љ‡…�ŊĻĒ�čāÖ��žÄ �ŪσŅ閭΂éĖ�éÍĶ�ŌĶp�����Y&.};ï_ÍqĸAŋVĸWÆjĸÐšĸiūwĸŲ§ĸIū]ĸ›ØĨĸŅĸˆĘ“ĸŦāģĸ=đRĸŋâÅĸ@―UĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸAŋVĸ<·RĸjËzĸcČtĸ=ļQĸBūWĸ@žUĸXÃjĸy҈ĸCšVĸAŋWĸ@ūUĸNÄaĸ?™Nĸ['ŠĒŸž�Ŧ§Ē��ĢÉ!�đØ]�šØi�ŦÍ.�­įÁ’�éĖĶ�ŌĶp�����Y&.|:ï\Ėnĸ>―SĸTÅfĸ~ƌĸœŲĶĸ•Ö ĸs―ĸЍĸŽØšĸjĖ{ĸx҇ĸœÔĶĸdĘuĸ`Âpĸ>ūSĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ?ūTĸ>ŧSĸ7ŽKĸśĸjÉzĸ6ĐIĸ:­Mĸ8ŦKĸ\Ámĸ„Ó‘ĸ>ŊQĸDŧWĸQÃeĸDĀXĸ;˜Jĸ[(Š�ĸĸ�ŪÐ�ŧØ.�ŊÐĸņæ�ĸîâ�ĸóę�į’�éĖĶ�ŌĶp�����Y&-|:ïWÉjĸ<·Pĸ=·Qĸ>ļRĸ;·Oĸ:ķNĸ?ļSĸ;·Oĸ<·Pĸ<·Pĸ<·Qĸ=·Qĸ<·Pĸ=ļQĸ=·Qĸ=·Qĸ=·Qĸ=·Qĸ=·Qĸ=·Qĸ=·Qĸ9ŊMĸ4›Eĸ5ŸFĸ;ēOĸ<ķPĸ;ģOĸ6 Gĸ3šEĸYļnĸfĮĸ;ķUĸMÅaĸ;›Lĸ['ŠæŠ��ļÝëÃĶ�ëŧ�ûíá�þïã�ĸðč�įĀ“�éÍĨ�ŌĶp�����Y&-|:ïTĮhĸ;ēOĸ;ģOĸ;ģOĸ;ģOĸ;ģOĸ;ģOĸ;ģOĸ;ģOĸ;ģOĸ;ģOĸ;ģOĸ;ģOĸ;ģOĸ;ģOĸ;ģOĸ;ģOĸ;ģOĸ;ģOĸ;ģOĸ;ģOĸ<ģOĸ<ĩPĸ<īPĸ;ģOĸ;ģOĸ<ģOĸ7ąNĸVū€ĸ”Øąĸ;ŊpĸIÁ^ĸ:Jþ a+į a+ræĢq�ëĮ­�ãœj�ë•X�ā”]�ĸóė�ĸðč�įŋ�éͧ�ŌĶp�����Y&-}:ïXÉkĸ;ĩOĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ<ĩPĸ;īOĸ<Ŋvĸ›ÜĀĸ‡Ïšĸ+ŦSĸJž\ĸ\(ņ_*$e4íÉ­�ņŌđ�ĸúõ�úįØ�ܘi�ĸíâ�ĸėâ�æŋ�ëΧ�ŌĶp�����Y&.}<ï_Íqĸ>žSĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ?žTĸ5ĩWĸ“ÔÁĸ[ĘŠĸcŧŪĸ<ŧRĸGģYĸ^)ĸ b+―ĸųņ��†xŠ�p#ĸüô�ĸĸû�ݛl�ĸũï�ĸöï�į•�ęÎĶ�ŌĶp�����Y%0}=ïeÏwĸCĀXĸDĀYĸDĀYĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸCĀXĸDÁXĸ6ŊmĸŅÅĸVÉ·ĸ\ĩ°ĸAūZĸMĩ^ĸ e,þ#k/ĸ!]%R‰|ļX·Ŧņ�{l1ĸĸĸ�ݝo�ĸųņ�ĸúõ�įŖ�ęÍĻ�ŌĶo�����X%1~>ïnŌĸNÄbĸOÄcĸRÅfĸ_ÉpþaÉuþaÉuĸaÉuĸaÉuĸaÉuĸaÉuĸaÉuĸaÉuĸaÉuĸaÉuĸaÉuĸaÉuĸaÉuĸaÉuĸaÉuĸaÉuĸaÉuĸaÉuĸaÉuĸaÉuĸdËtĸ:ІĸpÎÃĸXÉļĸˆÎÉĸ*ĻgĸTļcĸ e,ĸ){7ĸ]'ž�‡{ĩ­æÞĸ<Ϝĸ�€q@ߎU�ĸýų�ĸýú�įŘ�ęÏĐ�ŌĶo�����X%2?ïuԅĸUÆgĸUÆgĸ`Ëpĸqɛý}ÁŌþ|ÁÐĸ~ÅÕĸ|ÁŅĸ|ÂŅĸ}ÂŌĸ}ÃŌĸ}ÄÔĸÆÖĸ~ÅÕĸ|ĀÐĸ|ĀÐĸ|ÁÐĸ|ÁÐĸ|ÁÐĸ|ÁÐĸ|ÁÐĸ|ÁÐĸ|ÁÐĸ|ÁÐĸ‚ÃÔĸ@Ĩ ĸqÏÂĸXÉđĸ›āÖĸ;Ļ“ĸSĩgĸe,ĸ,ƒ:þ]'ІxūyÖČĸ@ÁŊĸnÁ·û�‚sWüņã�þôč�åŋ�ëÏŠ�ŌĶp�����X$3€@ï~ŨŒĸ]Éoĸ^Épĸ_ÉoþpĮ ĸ…ÁâþŠÅãĸg†–ĸ|§―ĸĢĩĸŽÂĸŠŋĸs‘Ąĸ\nwĸk…’ĸ‘ĮãĸŽÆâĸŠÄáĸ†ÁāĸƒÁßĸ‚Āßĸŋßĸ€ŋßĸūÞĸūÞĸ„ĀâĸHĻŦĸzŌÅĸ^Ëŧĸ^ĘžĸĪÞŨĸ.œĸj3ĸ*8ĸ\%Ė Š|šÜŌĸŪ–ĸ;Ā­þNē§ĸ‡yiÞĩ~�âŧˆ�íÓą�ŅĻp�����X$5€Bï„Ų“ĸeĖvĸfĖwĸ]ÉmĸpĮŸĸžÎčĸ Ïįĸ‰Žūĸ‹ŪÁĸ‘·ĘĸĒÐįĸĢŅįĸŽģÆĸ„ĨĩĸŒ°Ãĸ ÏįĸÎåĸÎæĸ™Ëåĸ˜Ėæĸ•Ëæĸ’ÉåĸČåĸ‡ÃāĸƒÄäĸ…Įéĸ\ąÁĸÕĖĸ`ËžĸjÎĀĸrŅÄĸ™ÜÔĸ†Į―ĸ+“{ĸ�oQŨ�tŨŦæÞĸ0ŧĻĸŪ—þ.žĻþ{Éŋĸ‡yˆíŨ―�ęŌē�ŋƒ7�����X#7DïŒÜšĸlÎ|ĸnÎ}ĸYČiþlƚĸĄÎéĸĄÏčĸĨŌëĸĶŌëĸĐÔëĸĐÓęĸĐÓęĸĐÔëĸĻÔëĸĨŌëĸĒÏčĸĄÎčĸžÎįĸšÉâĸ†­Ãĸ‚Šŋĸ~Ĩšĸxąĸ‘Éįĸl}†ĸGJNĸY˜ŽĸŠÍĮĸsŌÅĸnÐÂĸrŅÄĸoŅÃĸ{ÕÉĸĐæÝþđéãĸŪâÛĸ“ÜŌþ[Ęšĸē›ĸ Ŋ˜ĸ&đĨþbĀīĸ ‹}š�F3��������W#9‚Eï”Þ ĸuЄĸvЅĸYĮkĸ[Ä}ýĘ·þƒËķĸ„Ėķĸ†Í·ĸ‡ÍļĸˆÏ·ĸˆÏ·ĸ‡Í·ĸ‡Íļĸ†Ėķĸ„Ėķĸ‚ËķĸĘĩĸČīĸwŋĐĸxÁ­ĸq·ĄĸržĶĸxÆīĸ`Ģ‹ĸaljĸižĄþ™yþīįáĸsŅÄĸxÓÆĸ{ÔĮĸwÓÆĸpÐÃĸkÏÁĸeÍūĸ_Ëžĸ[Ęšĸ;ŋŽĸ Ŋ˜ĸ Ŋ˜ĸ·Ąþ{ÍÂĸ ‹~ī��������W#:‚Fï›áĶĸ}Ԋĸ}ԋĸxŌ‡þ^Épĸ[Čkĸ[Čkĸ[Čkĸ[Čkĸ[Čkĸ[Čkĸ[Čkĸ[Čkĸ[Čkĸ[Čkĸ[Čkĸ[Čkĸ[Člĸ[Člĸ\Člĸ\Élĸ\Élĸ\Élĸ\Élĸ\Élĸ\Élĸ]ÉlĸbČxĸ@§™ĸ˜ÝÔĸ|ÔČĸ€ÕĘĸ|ÔČĸuŌÅĸoÐÂĸhÎĀĸaĖ―ĸZĘŧĸNÅĩĸą›ĸ °™ĸ °™ĸīžþ}ÐÅĸ‹}Ä�~pW#:‚Gï›á§ĸ}Ӌĸ}ӌĸ~ӌĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~Ӎĸ~ӍĸԍĸgƈĸGŠĸŋëåĸ€ÕÉĸyÓĮĸuŌÅĸnÐÂĸhÎĀĸaĖ―ĸ[ĘšĸUČļĸ0žĻĸŪ—ĸ Ŋ˜ĸķ þwËĀĸ‹}―�~oY$2z>î—áĪþtЃĸrЂĸsЂĸsЂĸsЂĸsЂĸsЂĸsЂĸsЂĸsЂĸsЂĸsЂĸsЂĸsЂĸsЂĸsЂĸsЂĸsЂĸsЂĸsЂĸsЂĸsЂĸrЂĸrЂĸrЂĸrЂĸrЂĸtŅ‚ĸbÅĸ*ž†ĸ›ÖÏĸ’ŲÐĸ…ØÍĸ{ÔČĸrŅÄĸeÍūĸYÉšĸSĮ·ĸOÆķĸ4―Šþ3ūŠþ|ËÁĸˆzĒ��������^) ^(äižwþßþÞ›ĸÞšĸŒÝ™ĸŒÝšĸŒÝšĸŒÝšĸŒÝšĸ‹Ý™ĸ‹Ý™ĸ‹Ý™ĸŠÝ˜ĸŠÜ˜ĸŠÜ˜ĸ‰Ü—ĸ‰Ü—ĸ‰Ü—ĸ‰Ü—ĸ‰Ü—ĸ‰Ü—ĸ‰Ü—ĸ‰Ü—ĸˆÜ–ĸˆÜ–ĸ‡Ü•ĸ‡Ü•ĸ‡Ü•ĸ‡Ü•ĸ‡Ý•ĸ„Ú•ĸm˓ĸF°þ3 “ĸTģĻĸnĀķĸžāŨþVČļĸQĮķĸFÃąĸlŅÂþSĩĐĸˆzt����������������!b,3\&Üe+ã#k/ã"j.ã"k/ã"k/ã"k/ã"j/ã"j.ã"j.ã"j.ã"j.ã"j.ã"j.ã"j.ã"j.ã"j.ã"j.ã"i.ã"i.ã!i.ã!i.ã!i.ã!i-ã!i-ã!i-ã!i-ã!i-ã!i-ã!i-ã!i-ã!h-ã `&ā"Zv�M`�…wÃĐåÝĸRĮķĸNÅĩþvÓÅĸhūīų�€rX������������������������_*\'Z&Z&Z&Z&Z&Z&Z&Z'Z'Z'Z'Z'Z'Z'Z'Z'['['['['['['['['['['['['['['^* ��������‰{đĶäÛĸFÃąĸŽÚÐĸ6Ģ—ĸ�~o5������������������������������������������������������������������������������������������������������������������������������������������������������������������������ˆzđĐæÝĸŲÏĸ7Ĩ™ã�vg ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������‡yđ·æāĸ—ŠÍ�o`��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰{ū‘ƒÁ�ZK�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������…wG�pb������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ĸĸĸĸĸĸ��ĸĸĸĸĸĸ��ĸĸāĸĸĸ��ĸĸ�?óĸ��ĸþ�ãĸ��ā���ĸ��€���ĸ��€���ĸ��€����?��€������€������€������€������€������€�����€������€���Á��€���á��€���ã��€���ã��€���į��€���Į��€�����€���ĸ��€���ĸ��€���ĸ��€���ĸ��€���ĸ��€��� ĸ��€��� ĸ��€����ĸ��€������€����?��€������€������€������€������€������€������€������Ā�����ĸĸĸĸø?��ĸĸĸĸø��ĸĸĸĸøĸ��ĸĸĸĸųĸ��ĸĸĸĸĸĸ��ĸĸĸĸĸĸ��ĸĸĸĸĸĸ��(��� ���@���� �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������'~5/‚=60…>ŸE“RÚN˜[ã9‰Ež1ƒ?c4‡B������������������������ĪÆq�ŸÃ#����������������������������>LLL L L L L "p/9‹F|j­uĸŋäÅĸÝõáĸÖóÛĸÏïÔĸ™ĖĒĸG•TÏ#z2%��I@� ’§ /·Ó˜sÕæĸ�‚°������������������������!e,%o2T,{:‰,{:‡,{9‡,{9‡,{9‡+{9‡+{8‡2‚@ž|ž‡ĸÞũãĸāôäþÐîÕĸīæžĸ°äđĸēæŧĸŠÞģĸUĄaÜB…L3|<†$vJ‚AļËžæóĸrÜėũ�pĢ������������������������"g.12ŠAĸBēUĸ@ąTĸ@ąSĸ@ąRĸ@°Rĸ?°Rĸ>ŽPĸSĨaĸÖóÛĸâôåþåöčĸĘíÐĸĖíŅĸŨņÜĸÕðÚþÅėĖĸđéĀĸ˜ÓĄĸađ„ĸRŧīĸ„åņĸ^åôĸ~ßîų:ģÐW?·Ņ/�ƒŪ����������������#h/YBŠSĸ@ÂVþ>ŋSĸ>ŋSĸ>ŋSĸ?ĀTĸ=ŋRĸ;ŪMĸ|ÁˆĸÝõáĸÐïÖĸæöčĸæöčĸÎîÓĸÐïÕĸŅïÖĸŅïÖĸÖņÛĸąäÖĸ|Øāĸ‡éũĸoįõĸbäôĸmãōþ:Îåũ2ĖãÛ@ÉāŸ7ķŌD��/��������#h/VBĐSĸ?ĀUĸIĀ\ĸIŋ\ĸLŋ_ĸC―WĸSÂdĸ:ĪLĸ‹Ð–ĸßõãĸÄëËĸÖņÚĸôûõĸóúôĸāôäĸŅïÖĸÏîÓĸŊãÕĸuÖčĸyįõĸmįõĸgåôĸPáōĸØïĸÖîĸØïĸ%Öíĸ?Ïææ1ļÔZ�iž����$h/VEŠVĸ@ĀUĸHĀ\ĸHĀ\ĸNÂaĸDŋXĸQÃcĸ<ĐMĸ}ňĸÓņØĸßôãĸÓðØĸÎîÓĸðųņĸņúóĸëøíĸãõæĸĨÜÃĸUÂĀĸräöĸ`æôĸVâóĸØîĸ�Ōėĸ�Ôíĸ�Óėþ�ÓíþŨîĸBÎäí&ēÐ.����$h/VFŦVĸ@ĀUĸAŋVĸAŋVĸBŋWĸAŋVĸAŋVĸ@ļSĸUĶbĸŽįķĸāôãĸéũëĸãõæĸíųïĸėøîĸęøëĸØōÜĸ„Ė‘ĸ7Ī]ĸRČšĸ_áôĸŲðĸ�Óėĸ<Ûïĸ=Ņęĸ6ÚóĸØïĸ�Ōėþ-Ûïĸ/―؜'ŊÎ$h/VHŽXĸCÁXĸCŋXĸCŋXĸCŋXĸCŋXĸCŋXĸCūWĸ?ĪOĸvÃĸĪâŊĸÍîÓĸéũëĸîųïĸäöæĸÁęČĸ‘؝ĸRŠaĸ;°Nĸ?ūbĸFÂļĸ3Úïĸ�ÓíĸMÖéúAŧĨ•RŧýFĖâå"Øîĸ�ÖîĸCĘáōVÉß$h0VJŽZĸEÂZĸEĀZĸEĀZĸEĀZĸEĀZĸEĀZĸEÁZĸCŧWĸ?žNĸpū}ĸÚœĸÚœĸ’ÛŸĸÚ›ĸ‡Ô”ĸMĢ\ĸ:ŠMĸFÂ[ĸFÁZĸ@ū]ĸ>ūĩĸ8ÜïĸJÔåĸLĀvöhÍqxÛ0>ÏæŲŨïĸ@Íäĸ+ļÔ$h0VL­\ĸFÂ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸGÁ\ĸE―Yĸ8 JĸA™PĸXŦfĸ]°kĸLĄZĸ5”Dĸ@īTĸGÂ]ĸGĀ\ĸGÁ\ĸGÁ[ĸCŋYĸ=žģĸmŨéø Ī„?ū‡@�����XĘߍŌęĸ@ĖãĸCÃÜ $h0VLŪ]ĸIÃ]ĸIÂ]ĸIÂ]ĸIÂ]ĸIÂ]ĸIÂ]ĸIÂ]ĸIÂ]ĸIÂ]ĸJÄ^ĸGĀ[ĸAīTĸ@ēRĸEžYĸJÄ^ĸIÂ]ĸIÂ]ĸIÂ]ĸIÂ]ĸIÂ]ĸIÃ]ĸHŦVĸ’ŸÏ�ĢßæĘĨ�į˧�eĘÞs*Öėþ>ÆÝĘKĀØ%h0VPŊ_ĸMÅaĸMÃaĸMÃaĸLÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸMÃaĸNÄbĸNÄbĸNÃaĸPÄcĸNÃbĸMÃaĸNÃbĸOÄcĸMÃaĸMÄbĸJŦZĸQL�ĸĸðȕ�ōʕ�HĖâPÖęüģŌY�“ŧ%h0VOŊ_ĸLÅaĸLÃ`ĸJÂ^ĸSÂfĸMÁaĸJÂ^ĸQÂdĸMÃaĸKÃ_ĸLÃ`ĸLÃ`ĸLÃ`ĸKÃ`ĸPÃcĸSÂeĸPÃcĸOÅcĸQÃdĸRÃdĸMÃaĸKÄ`ĸKŽ[ĸZ&Q˜šš�Ÿ Ą��­Î40ËãĢ3Â܀0īÓĮ“O�$h0VK­\ĸMÅaĸmĘ}ĸqɀĸnÄ|ĸuĖ„ĸpËĸz·ĸnĘ}ĸPÂcĸBĀXĸDĀYĸDĀYĸCÁYĸEžZĸcÆsĸLū_ĸF―ZĸTÁgĸXÂjĸEūYĸGÃ[ĸHŦXĸZ'RϜ��ąŌ šØRđŨM�‘ŧėŌē�Į’O�$h0VHŽYĸEĀYĸdÅtĸjÆyĸXÁiĸhČwĸhÆxĸfĘwĸbÅrĸLū_ĸ=ŧRĸ?ŧSĸ?ŧSĸ?žSĸ9ąNĸ]đlĸ@ąSĸ9ēMĸIģZĸQĩaĸLžbĸFÁ\þEŽVĸ[(U�ĸĸ�ĩÔ�ķÕĸņč�ðŅŪ�ėŌē�Į’O�$h/VEŠVĸ;īOĸ:ģNĸ9ģMĸ;īOĸ9ģMĸ9ģNĸ9ģNĸ:ģNĸ;īOĸ<īPĸ<īPĸ<īPĸ<īPĸ;ąOĸ9ŦLĸ:ŪMĸ;ēOĸ:­Qĸa―~ĸSŧwĸCķYĸ/‚=ä^)=ëÂĢ�ގU�ãœh�ĸøō�ðÎŽ�ėÓē�Į’O�$h0VGŦXĸ<đQĸ=ļQĸ=ļQĸ=·Qĸ=ļQĸ=ļQĸ=·Qĸ=·Qĸ=·Qĸ=ļQĸ=ļQĸ=ļQĸ=ļQĸ=ļRĸ=ļRĸ=ļRĸ8ĩPĸNžvĸ~ÎĩĸNŋtĸ6”Gĸ a+”i?�wiĸĸĸ�尋�ĸōč�ðÎŦ�ėÔī�Į’O�%h0VNŪ^ĸAĀWĸBŋWĸAūVĸAūVĸAūVĸAūVĸAūVĸAūVĸAūVĸAūVĸAūVĸAūVĸAūVĸAūVĸAūVĸAŋUĸ>đ\ĸR―˜ĸrĘÃĸRÄxĸ6Fĸ$p1ũ j?&!šĖ�jZ龛�ĸüø�ðÖĩ�ėÓģ�Į’O�%i1VUąeĸOÆcĸTÆgĸaÉvĸdČ}ĸdÉ~ĸdÉ~ĸdÉ}ĸdÉ~ĸdÉ~ĸdÉ~ĸdČ}ĸdČ}ĸdČ}ĸdČ}ĸdČ}ĸdÉ}ĸaÅĸXŋŽĸuŅÉĸPŋ‰ĸ7ŽJþ*9ĸ#e3YžąþSļŽË�o`#ĸĸĸ�ōÚž�ėÔī�Į“P�&i1V]ģkĸYÉkĸ^ÉpĸwÄšĸ„Áįĸ|°ÎĸyĐÃĸ‚ļÖĸyĐÄĸwĨūĸķÔĸ†Âäĸ‚ŋáĸŋáĸŋáĸ€ūáĸūáĸwŧÕĸ`ŋ·ĸlŌÄĸhÅļĸ5‹Yĸ+‚<ĸ"e2˜NšŊü'ļĪĸPķŠĘ…x+åŋŽ�ōßÅ�ČF�'i2Ve·sĸfÎwĸ`Ęsĸ‚ĘšĸĪŌîĸ†ĨķĸēÅĸĢÏåĸ“·Ëĸ€Žĸ™ÃŲĸ Ðčĸ›Ėåĸ“ÆāĸÄßĸˆĀÝĸ‚ŧŲþnŊĮĸe―ŧĸsÓÅþ}ŨĘĸzÉÁĸBž~ĸ'‡l°gÂļþ)ŧĶĸ-đĨĸFģĨΔ‡0ŌĨl�����(i3VlđyĸsŌ‚ĸdËvĸxČĐĸ•ÍÕĸ™ŌŨĸ›ÓŨĸœŌÕĸœŌŨĸœÔŲĸ–ÏÔĸ”ÍÓĸÆËĸ{­ŊĸxŦ­ĸvŽŊĸk—•ĸLrgþbķ­þ{ŌÅĸtŌÅĸuÓĮĸŒÝÓþ‘ÝÓĸÕĘĸHÄēþ °™þ2ŧĐĸ>°ĒÖ%œ7’„(j3Vsžĸ~֌ĸsЂĸfĘ|ĸj˂ĸk˂ĸk˂ĸkĖ‚ĸk˂ĸk˂ĸk˂ĸj˂ĸjĖ‚ĸj̈́ĸj̈́ĸjĖ„ĸiͅĸi΃þ^‚þlÄŪĸˆŨÎĸ€ÖĘĸsŌÅĸiÎĀĸ`Ė―ĸVČļĸ(đĨĸ�Ž”þ9ŋŽĸ?­ æŽ€(i3Wrŧĸ؎þ|Ջĸ}Ջĸ|Ջĸ|Ջĸ|Ջĸ|Ջĸ|Ջĸ|Ջĸ|Ջĸ|Ջĸ|Ջĸ}֋ĸ}֋ĸ}֋ĸ}֋þ}֋ĸ{ՉĸhĮŒþqČŊĸŅĮþ‹ÜŅĸ{ÕČĸjÐÁþYÉšþ@ÁŊþ$đĪĸ2·ĨĸIģĶ· Œ$&h10J“VĸišvĸeđsĸeđsĸeđsĸeļsĸeļrĸeļrĸdļrĸdļrĸdļrĸdļrĸdļrĸdļrĸcļrĸcļrĸcļqĸcļqĸcļqĸbļoĸT­qĸYŦƒĸQĨüg·ÏxÍÂĸRĮ·þVÉšĸUÂģĸEŊĒ�€r����!d+*o5TDŠP{EŒQyE‹QyE‹QyE‹QyE‹PyE‹PyD‹PyD‹PyD‹PyD‹OyDŠOyCŠOyCŠOyCŠOyCŠNyBŠOyBŠOyCŠOyFNy6ƒFzjAM4 —2hĀķĸXĘšĸbÅļý@ŦžŒ…y�����������������!������������������������ �� �� �� �� �� �� ����*�����ĖÂiĀķĸjČžú1Ē•|�wl������������������������������������������������������������������������������������������������������������FŽ  CŠžĸ&œj��������������������������������������������������������������������������������������������������������������������ˆzˆzV��������������������������������������������������������������������������������������������������������������������������������������������������������ĸĸĸĸĸðĸĸĸā>Ā��€��€��€��€��€��€��€��1€��q€��y€��ó€��ó€��ĸ€��ĸ€��ĸ€��ĸ€��ŋ€��Ÿ€��€��€��€��€��€��ĸĸĸ‡ĸĸĸŸĸĸĸŋĸĸĸĸĸĸĸĸ(������ ���� �������������������������$j0 "h.5"h.3d+1q,GŒÂ•ŅÍėŌĸŋęÆĸČ˜ð2>QjD0[ĮՕ^Ïäy������������2‰@žAķUĸ@ĩSĸ;ąOĸdšrĸËéÐĸÛóßþŅïÖþÓņØĸŽāŧĸkÉģĸqáðĸZŨęŧ$đÕF%šÕ ����;˜JŽBÁWĸIĀ\ĸAļTĸyȆĸÁéČĸčũëĸéøėĸÐïŨĸ–ÜÔĸoäõĸMâóþØïĸÖíĸ2ËãĪ*đÕ =˜MŦAÁWĸCĀXĸ@ūUĸTšeĸķážĸÔņŲĸįũęĸŅíÕĸdž‚ĸKÏÁþ(Úðĸ$ÓâüŌåïÖîĸ1ūŲJ@™OŦFÃ[ĸEÁZĸEÂ[ĸ@·Uĸ_―oĸ’ӝĸ™ŨĢĸmÂ{ĸ>ēPĸAÁgþ<ÉĀĸEČąĘVžĻfÕėíIËá…BšQŦJÄ_ĸHÂ]ĸHÂ]ĸIÄ^ĸCđWĸEēWĸEēWĸBķUĸKÅ`ĸKÃ\ĸGļný9§™dȖS�8ŅįÔCÅÝWD›RŦUĮhĸ`Įqĸ`Čqĸ]ĮoĸNÅbĸJÄ^ĸJÃ_ĸWÆjĸLÁ`ĸSÅfĸFēTã:Š@C�ēðCÍä‚�ĒÆ @™NŦLŋ`ĸZŋkĸZĀkĸWĀhĸDžXĸ?šSĸ?ļSĸJķ\ĸC·UĸS―hĸ@ŽTá3„B?�Æü�“žŲąz�?™NŦ<đQĸ9ļMĸ9đLĸ9đLĸ;đMĸ;đMĸ;ļLĸ9īKĸ?ķ^ĸ_ž‹ĸ5™EÉpJFũĘŠ�ĸėÛ�ÔŽv�GVŦOÅdĸ]ƒĸ^―Šĸ]š…ĸ^―ˆĸ`Áĸ`ĸaÐĸ]Áĸa§ĸ+„:Ö1–užAą§kýėÛ�ÖŽv�S `ŦgÍ}ĸ‚Æžĸ—ÃŲĸ“ūÏĸ”ÂÕĸ•Éßĸ‡šÏĸ}ģĘĸaĨŊĸsŌÃĸ^ē–ðXķĄô6šĐō8­ŸqÚē�^Ĩj­{Ջĸt͑ĸ}Νĸ}Λĸ|͜ĸ{Νĸw˙ĸtȗĸjĸvÍŧĸÖĖþjÎŋþ5―Šĸ&·Ģû9ЛkI‘U›lĀzĸgūwĸhūwĸhūwĸhūwĸh―vĸg―wĸg―vĸg―vĸbļ}ĸ`ĩšþhĮđõWÉđĸCļĐÛ(Ÿ‘ ;G ;‚G,:ƒG*:ƒF*:ƒF*:ƒF*:‚F*:‚F*:‚F*:ƒF*7€F+ZiÆšŸWŧŊÐAŊĒ#����������������������������������������������������,ž‘L.Ÿ’&������������������������������������������������������������������������øo��������������� ��� ��������������������ĸó��ĸĸ��ĸĸ�������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/qhimdtransfer.png�����������������������������������������0000664�0000000�0000000�00000077224�12262477515�0024126�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���ú������žËgD���sRGB�ŪÎé���bKGD�ĸ�ĸ�ĸ ―§“��� pHYs��Ä��Ä•+���tIMEŲ :īÍ(e���=tEXtComment�Created with GIMP by Numen ( Numinos@swissjabber.de )šĮ­"�� �IDATxÚėwžeeuþŋëÝå”{Ï-3wzïCĪ# ĒÁŪ$æ'ķDŒ1&ą†Ä(0€‚‚)&ŅhÔX–hT,("Ē‘Hï0Ãô>s{;uïýŪß{ŸvËôAŧųŒāÜ{ÎŲįÝïzŨZÏzÖģ`ęzN_ūsé5‡Ŋ™ZĐkâËL-ÁsüRVŦðÆKŪĄý“WĀ%SÆ>uMúïäU>…ðÕKŊaÎõWĀ%ŨN-ĘÔ5ečŋs>]„AUþ�Ã/―–ãŪŋ|ĘģO]S†þŧgé ™ŽKđĖ)*Üzé5žäú+ā’N­ÍÔ5ečŋ3WĀ Žŋˆ—ŋėÏ$ŠX`áG—\ËKmGüóK§Bų)CŸZ‚įþ%•Ę0gŽđ˜Ũ―ęRõýT‹Zî0#\pÝåSÆ>ečSŨs?tCdŽ]ö&yÍËŊŌÖķ6Žåۗ~œ]~5æšË§@š)CŸš~žĪ jYŦ˝/oxÝgĩ―̃0äŠÐå+ũ ŌŨ_—~|jĐĶ }ęz.ð�ô?!wÜDgû2ÞúúŊēxņj‹TđõŌk™uÝeS+5ečSŨsØĖMbėÂîþŧŲšįVI§frÁ+>Íʕ§hqžÂũ/đ–é0ÆOúÔõÜ5tDp,{úîfóŪū꾏ˉ'žBAÎDyäÃŨpĖõ—ĮŊŧäSk7ečSŨsČŌT ‚āđ-ô ?Æšm_“PËú{/úˆœyúE*†yĀ=—^Ëë�Ūĸ;ļd*o~úō‹N­ĖģāZöķáŅ‘äŋ$6xĮIS úذý›2’߯'ýĐžîUWŦUrÖōKŊå=�Ũ7äíW}îŋ§þ9v}ô�ž™ŒÝXoÜŠ·/ō·Ŧę,UĩSËų žÆĻĩv3ðĢ7nϏ}.cŊ_Ãâ0â–ģÏxû1įžy1›wýˆžÁ08(ŠÕ4BEXĩāhÍÎcOũÃú€ „‡^WþíGáĸ>~Ï+?ûÍUƘũĻę""SOåŲsĐ*"‚І*ō cí—þþ=oyļúóŦĸã[\ų—ošØÐ—_ī 7lŦzó9Āg€?l|óĐ뙌Âkķõ3ā=nØķ`ÅE‹XÃÖĶß―äZ–T*üøEgýÉ1/:ãb6ïú!=ƒ ÆkąD1GV-•p˜• ÞĘīķãč^Ïoŧ\v‹þÝoųŦŋvRįœŅg€cãįÆČÔó–Ą1 ąÁ7:čUøðõŦÞýæ‘+?ûMŪ~Ï[&ũčË/Zx Čý hĪŠÆŠI9xž‡833Žėųô ‡GëõČܛ‚,A9@BQãš8W^―þÆm·NâŅį·Ÿ{Ö;;įŒũģeũÍt<€#. jQ,j-ˆR*ũądî˚vĶn“ŸĸęíķmŨ_ēĮo―tķĘ4|Wĩ­%‹į:"":vŸL]ŋ]§ˆ*DÖjĄT’‘B #‚ˆÜĄŠšú=oyčŠÏý7W―ûÍuC_ņö…ŽĸŊmŽxûĒSUõ6éj-ӗNÓy‹įI{G;­­­˜”‰?B'Þäz(ö ö€ũĒóIič:þԜЋéøŊ0é=éaŨ>î_A#Ę̃ĢÚ―ĢWvmØĨaĪDęH‹üÉ_œžãÎÝ#ŽPe†ÓŽ’˜žãÅg―söŲgūŸ-ŧ~LÏĀqcŨäMž{•él?–%s.Ð •_üïŋčkïϟŊsæý―ŽYuógvâšÎ”…?‹­]ÕŌ74Š›wvËķ==:R(‰TÕ7]ýž·üīŅģKœ/hW•ĸÞ–C]~î29õŒS˜Ũ1G†sdâ}F /šÏ˜Øá,RrlčÁ-,LJõ`柧“Ŋ„ÄʁōؓģågŋŌ%#Ō‘ ó9ŊēĐ0h3Y#` „!žøė?ŨģO{lŲ} ݃āˆ‡Ú+TQ ão­j-*­™,›wĄ†aAžXũ}îøåtuÎÓŨžĸuéė<kƒ†?u=ûøjš§ ŽøåƒOęĀðψČ.U=ëęũžekÕØC_tēŠÞiCÛ6óļ.^ųûŊǞZ‹‡ČäÃQĖ$Õ8=ėÍ ûðā‡šG>H·G WUėĪũí—īۊĘŒ>tĨ=O $NYæĖ›Í Ŧ_ÏÜY'“IÍĀq\ŒqD|Ŋß˰­û§uŪšäčÕ(Éí,V#”U‹#)Ö,ĸ�‘–ذéÜöóO‘ō<^ûēÐÞņ°ˆAÐgŅ N5yTAĩÌNEð‡lÚŊÅVá{wüFK•@Tõ'W―ûÍŊ Ɲ+"wUĘ^þöóõôgH`#ŽFô”ö2Xäđ…―>=�a€YûkžíkQ nĘaõōó9fÕkX<ĸ,2Đa‰( 90"`m…ļ0Ēėė―‹ÞĄ‡1â‚Zlâ―ąŠ•(ųŧDcÏNˆ*·ô]ĪýélØüSîüÕŋ32Räžsþ‰Ĩ‹ßBų­o€ ÚŠbä0Ąą‘Š‚N–đō›Iô’7ŅóCēņ_U‹īĪSøž‡aëž^~vÏĢøžŧKUĸčŠwŋųW}îŋq“tQ°juņôĨĒ †þJų0ïøSąŌQ3p)Bũ&ėC?ĮuaÎÜXķø,Î9ýŊņœųŌ^JĨō…=”‚ōÅ]J{(Uú‰lđš@Ąj1âã˜T\RKjęωļގj5ŲāåŅ ĸΊ…oã˜`Õō›{ŋʝŋú ÅR+—―ĮIĄņÛĻķõÚÕĸoâ2Ó!ݓV3ą1F­ÄžQä0cÔzlÜ}Wïũï]AD1Ļ*…Rc Ūã°zņ<xrĢį‹sEx ð‹ŦÞýæØÐnFü” ”m™BXė)#?j—ãĄ=‰žú%ķŧ›%ËNgÕĘó9ýÄ?C5bht ÅrÅMKÝIļ­ĩ‡íđY\MĮ^ZĩQlðÖĒU#ĻųA46ĸÄCĘá A8J sßSWądÎģâ­tīÍįĸûYþïÞëÝÎ)/ļ cžgĖØ Ņ`ÆĮĄÞK\šjŽžŦgŸ‘šg?Ôo:öžĮþ―ˆú―K=j­ū_ĐКq(”Ęž`Õbđóþ'ð\gÍÕĸņ­Wþå›zš ]\Ás]q0" d?Œ= xYÂuŋ"\ũK<8ĸUÏĘeŊĪĢm=00ü$•h„0ĖĢHbdš€k1ȇï*UŽ7€&ŧļJ\•øw­`ą <M)ˆĢIöÁšm70ZÜÉÉŦþ–WwßũEōë ?ÍKÎ―ĮĪã|ĸhûDÞP’häHEÕ >å:2 ādF~$ĀÆĸŽ"KY\ŨkÉ&ĮŦUuÐã6ހ1‚IļŌFœĪ+ję:’Fnē”þũKŧŸĶ­eoųÃ/0―s%ĨrOmþ/ŽD€‚qüļ^#IŪZEaj_jH, 6ųoŅø@ˆwœŌ3ð a8JÜãPuōŠĘΟ3”ßĀKNþ"/=ჸ~ŠGû97Ý|*Ŋõ}ø~KîqԍM°#}°H=L7rô žąF}ļŅPlŦ6 ßdž|-xŪĐևr@ ˆCũÆCÎ1žãiDĘņ§<ú‘ūŒGáĸn$Øņ4ģg-įoų!F|öößOßÐ#8 ∋ŠMĻŠZ’gaą'™‰ĮwŽXMrΆðV›ø|ƒKßč“Á0Æļ‰§ŋ™Fō›đãþ·söšâ%g_‚�OŽýßđųdVŊþ<-Ų•X ŸÛðH=Øyîļ UĶĩ·ŅŲ֊ĩķnė _Â1NœĄŦŠfœĄG7eŋĮ›<—‘îĢėđ#Äjh\xä‡6=Îʕ/âOßōú7ģ·ĸįŒķã:éZŧĐŠE4vģ–ØĻ=vCÞM’yŨ?LÆFĶĩ …ân†F7áđ™ ÃČztį’/íâŪ‡ÞÙĮ}œWŸĸI\ũJ|øĮŽ]û^–-ûGZZŽ‹I8ÏýĮôė?”ĪÁÁīžŒ3FwüũVŽZĒäÏū2Ējf8Œi4eۍ8›8īļ­1ĩė9ØúĢkïåØUįōÆßĸ*―ýëØÓw7…ōI7"-ÍņĨÄkm'|Ž2)‘ ‘ļ 'I~Ž20ōŪ“ž4Œl,ĐFøn;‘-22š“lķ“ČÂīl'ógĩÐÚ:㙠៍ĄĀ3úqB%ØÓ7<ģƒŋq†iHhÃøßÆ^e’/kmÄÖüfĘķ|D™kŋ{ÁÐâf™“™k|4?ĀčC7ģréižæüOR*°}ïOĒ<Fžë.æĪWAۀ Wņ;f­ulØÐ%Ŋqy*Þö ‰**B˜Þū†ÓVĮõđã—ĸĖcOü‚såmoø!­­KQ[yÞ>Ýg4ÛĄx„Ý}xŪsHï1ÎÐm R”HCĖ$9šQÃöÂVFÃQŒˆZA*lƒSĻĶ ûŽ‘äˆEPōŒ=ûȓˆYqUT‰d°2ĻūIËôô *ŋø<mŲéœsæČĪ;Y·íkDķTՉ;Ėb#Žģûb�.Z’rYýCãŸÅN[ëtŪ†ô―~(W(•{ũ U? ˟ų2Ö,{aTäö;ŪäéõąjŲđží ·$5õ�cĶð›ƒÉ­”;œRÜäĄŧ*‘F„ 7ÚN”$g$Á3VVD-ý/tåRév/Đé€i$Ošú•ņĄ§ėĮ<ĩ†čØŋŽQÕ]ƒ:&OķÍųŦĩõŨ%ė ÕKĐū‡ÄugUMr#0&ūcŦZû<Žōƒßq··{UTú5OĮcáX˧ūe‹§·~‹0œäs#ˆÆÄð°Xš$ũ(lbÉÕu‰―֗DōvJ•~‚0ŋߍF%Íy-Į/ų ŽüôWąqãSLë:—7ýÁ͈ļŒexM]2Ū(Ð\ũ111ÉQKĪ`Õ9`ũv$ ã=šFąqŦŲhBĘQ9öö"ĪÕ)_ĻK:dWŒÔÝļÄHÆs’úhrJ5ļsMr‘ą>đÁ“%ĩÔš!W_ŸÔ”ĶķÁ^-ŌАR.‡KeʕöŸÞ< æt bŲēs\‹Owß(Š–iíš:ē m …<đ‹'7öQ‘6.˜OĘöąfyģ§§5mfvlģųÞ{.Ïļęî‘pÃÃ˘ĩ„ģN{/ŧ{~ÃHq{NÛäŒ1 ĻeÆ<|$ÔËkŠÆå5ŦÔ]xýPQlÂüˆ—@QŦĘŧ m1ĶÆîãZ<ûĩ·ôÏÉšđã—ŨģqóZæÎy%óæ(<°ÖķwŦyφgŠŠąATOŦ#Pw>X’ú― M$žŠšO”)ó”JĢ”JyŠÅŠ…Š…a …aF†ũÐÛ―‰ūÞÍtï؈ņĶó‰šû€JkĸPuĮžLšä€V-;ąĄ#ĻhÕXÕS“ \ŸH՚*8[īmXĩ Œ‰7ĄĐŨ6jtD[=ÂęžU{ÜtLR`ĢÚÏīĘ|ĻF!ZÏuĨū§čåïßD%yበɗéęĘē·o„ĸ{t;ö38\`æīVN=n.­­ŽĒČōÓ{ÖsÝîĒŊŊ‡?úƒ18ÔËŊîßĀōE3õŋŋRN^9G[ÔïTÄHįæuĻŊ}Ų'(WFčzœČ–qčŨ‚ä@ŠĄįuĻ!ŽÕ|―ÉāãÃÍ&‡œjTãŧŨW+6ø ĨXîÁˆÛd44MՈ ÞĖęÅą§ûq~rįGéíécõĘ?ĨcÚEXußč?ÓŠ†ķÖIš Æ11iËČ3jčUƒJĨÓxIfR ahχáĄ^†‡z(ä‡)– ąqóŒ ïĄXØÉðp7…Ņ=Ļ ð}ÏũIųmđģĶ·pˊYärŦøÁŨ%</}@^]äðŲ;îØ 7TKĻ!!qø.ãJlŠĻ‰kx$b„Ō˜‡kC°vĩ.þJbŦ<Ý1ņ‰ÖĄFoŪŌšW š„šÉ{U―ŒÚąØq]K­šĄŽ%rąjŲŅ=ÄĢëvģx~ýCET•Wģ‚ŊÝü0F„”ï4l�%“IqÖYgēníSėÞÛÍĶÍÛØŅSbíÚ§å%'wrԊ9ņw1.™þ―8ƒÝ,[|óæœÂÞū-íĀ1Đ$ëķqŽžĪ–ąEÝ:^ĒŲ J„ˆ‡#â8‰ĪI~ÛR †ĢBÆK|øŅA˜Į1^ƒ‡Ž\9~é{Y2ïvîy;îúšŧû8ýäąpÁÛŲąw Yë#cDad ÂhB/U=ŽĢ0ŠmrÏ1ĩÞxåČ0Ėö ~9.ũßs ëÖÞËÞ]›Č†ĀąķTpĨ-įŌŌ’&—KәkcîLŨ›CÚ_€ãPÂF†2aFÔDvVBģ5Ïhmo‚=î‰ī6ÚaІõ*ÔųskŒI8Šu_cLOGÉŦĀÔÚöd ÅQ“üXjįGGĩôū~čÄ<ėφ—U”zÎd™1­•—ĩ‚(ē'ۜE6írĖē,ßIkÆåƒo? Áũ ŽŽ{ŋÏ=y­Ų>ĒŨžOąbØžy<ô�'.6œĸÂĨ`Áą‘dûöPėWÎëe”JCt܋`Ïk’ %ĸĸ―1ÉZ$ø€ĩ!V#<'ÃĖÎSimY„ÁC$f/bbšēF!‘ ŲŲ{'―ƒĮH~âĐ{‰wœ‘(å ĀŲkŪĢŦ} =}ëļųķËĐðŠ—~…ŲģÎĄP 8’U›Ū„aí”ŠŽŠJ%TÂ0Âũ―šīÕŅ0ōjęPČqË?ÍüŲ#ŧĒ‹ķŽéx^c Æq’=\&Ž †#TĘ=ØHąe%_Žŧmĩï?‰Č%ÎÖŋÛ3œŽļ•Ė"°Õüp‚‡,"Xĩ8&5IZ-ėG$„œcŦc\ņë5†įlQå`Æ9Ŧ$ųj” üIl_5ֆ–ó*ØQ áĩî­âŽ.Đyuk-Ēąq;bP7îþņ=ĐŲīGd-đ–T5$ĀĢ11;Íó„žÐE9ØCĄPäŒ9ðÖģŨВņ ÃøĄqņÃ3ÔËĘcVÓÞķ˜J0HĐ܋ëdjéD= ēĩT$ŠlŒ(F|fwA{v Ū›S%ŠÂ†GũŌÛ·Ņü^ŠĨ~æĖ>AįÍyˆ$ Oē^ĨJ/֖ŪžÖƒ'UDÎ>átĩŊĄŧï ūóý!ĀËÎû"sgŸWëa?"p•@Z Œó]™\‹ŪúLqbþ€Æ€dđâyq—ÖŅ0öj„E–LŠÄYgŋ˜B~/•ōĨÂ^Ē0ĀFŽ ’2ĻĐåéņÞ#Šë·MMĮOwāyYŨÅ1)ÂĻBĐ%(úAV,Sōa<'qÞgÕNþ ’<\ƒŦŌ€hK’ËŲcĒ(bOïųb…Óstuī’/”Ų°­‡YÓs˘ž‹YöÚ\ž XčeÆī;ũ2of;›wô‘kI3{FŽšœ4 įÍA­­ýqN›ðĻEī.Â5IŪņŠÃÔĩĄp4$—Ūþžy’~8bð*ÜūAŽ=åÝqŲÞó3Dœä4·ĩ{UDM_Ýâŧtķ­ffįiDQ…þÁ-ôôþŠ―{ÓM[{ŨS*3jōF ēL;ïė7{ 杚�“IŽo#z‡BÄi:ĪU-ž“cÍōũ3{úélÜz'7ýøZ2­œqĘu,˜ũJŽ­úsÂäKŲJ"IInĸ†7UđŪ!Œâuą6"ãõ­žGC'q$QÐ―ûQŒ‰ÍÄĮqņ―VŒëâ8Æņ1ÆEŠGy %úóT‚>JĨ=lÛÞÃĖguú!•ŨŽRčŪĩR’Ž%QãēRŲЭŊ5Ïn“°\-ōÅoýPF ŪûÐð›ïgý–―œsĘr^õâã0Ūi óŠõÍÛzøØ§oá}ĮõŸĸ)ĸ|ųĸãƒĸ.§­YČkÎ;žSŽ_؄:7•Ų’ž―ŽÜÛąĪڅ%ĩ_\uĀFĩôĨú{jƒþ”†’`-›r(þ`&„öÜ\ÂĻČðč&<§%ŅÅ$퐍ZxÓڎgNŨY€°nãOØķã>{ėëôį­ô—Ą=ŏÚ3<•JņĪ›ŽĨ3 ųWŨI/Ūķ5Ä@ĐCÏā―DQ€1uEēéŲŧä]Ėî:‹'ÖÝÄO~þÚs38yÍGXšøÁH―1æ°H"R‹æ‚0j2Ę}môZïHđ$%ŠĪĸ:ˆ"RÆåhÉ\ICū‘kŸK*•Áũ}Ô*Ģ(•"†"Š…<Ĩb?~*Eķ€q(–ϛNķu)‹–ÏŠcÎ`ÓÆGyôūĐ FPõčz˜HcSËAĒî‘Ú$·„D“3ãPqP!öÄjÃļuŒ†žŧŦģ…SŽ_Č՟ū•Ņ|‘‡žØÆgŪ|#a’+—Ë$9Å5Ad\Į`UđûÁĪS.ާ­YÄËÎ^Å/ïÛšÕsņ=Ó`ØÔØĢUūŠÜW7‹j"ąd=5sc^5vųDÓ ­·2ŽŲīFŋg+3Úho›GĄī#1ø'Õ2*V“üš�ŨΘ?óetīŪ hwþúŸŲĩýŨô+ėÔélÝë‘\ʑóéM7n――úYū†ųV)4Öþ‡þá§(”ũ4yČĩ,åÔ՗Ӛ]ĀĸÝĸîđï[tīÍã•/ýéĖōš‘ŨRĒ&z2ķ •°Ęė;ĀŨ"›”—īöų(”­Å8Šc„#]Ę7 BV#Ú;W°aÃÖ­}ŠB1Âó;ðS­īwĖgæœSXīr1đķīĩÏ"—›F:݂į§ņ<·†ëlXĸ@ē—L-e‹qĪ8Í>oƊY0ęŪDX “zz„™ôÄLN%M ļ(ĪRéŪ‹8N܉åø8Žˆ’/Vļũ‘-üëG.$Ũš%ēJŪ%EĄXÁó\þüōo2cZ+―øĩlØÚÃ?|ņv–.čâOßp&Ŧ–ÎdõŌŲÜũč֘‹#B&įÓąĮ6ĩŠ^-,HÚ;ą!Q’[XÖ~§ąl?ž―ÔėÉ―ũūĀĢĀH?s–œC[n{îŦ˜ŠĶ&ú�ZËõæÏ8ŸÎÜ*vvĸßüΟAēÞNgŦL'ˆ CĨBĀiĮâ?šÏ–ŊïĻÞĢŨ˜Ĩˆ†F728šŪÉ{†Q‰Îķc9yÕeīĪgrũýĸÆ=ũýˆiÓsÁËŋG63—áühí6ÞĢ7‡ĩ“XFQa—ô‚FUĐŦņ=ĪŠJ%ˆHûîߛY ņZŧn7'ų>N9íĩ `ęāļūŸÆuýæQÝ?ÖZĘåXųĮóRĐÖûÅô`BŒftó`jëfbÂEd#"&č ÍŨņAŽJŌčŽjU’xKƒ ˆŋl(P.“KG\pîBfN/QÞÎėÎĸüŸ·ēx^gŊ™Ãŋ|č<ÄķÔĮ’ŲŸųŧW ް~k73;Ōžõ•ËųŸ[ (ēuwßūõÎ<~ķÔCĨ\Ģž51ã&2ÞZc€ÐDÚØßĐ(FSR1jgÛ2ÉĪš-ėJjÅuė".“ b\æÍ8iĮņȓ_á·\‹ļ†§ė\vÓ—E oĩCčQ#?°Ę=Ėo wč!\'ÓPŊčj?‘“V~˜Öė―íÎKäąĮĢ™–cäåį}lfÎA5§xz)cRąj…īÎ6lŽ4VI"šJÕ*JŲ†ōé‘ ßß*n$RĮcÖėeīĩÏĀÚ°IøĄÚ>‘ƒ˜˜öw1ØčÁũØNŦU=C‰2U%p3ĐĄ“tfU… WHTÆĖōÉĪ=N^ÝEÚ7Ļ”wýájūsĮFē^+D%ŒˆbųâŠ3Õ:2N^ÕÎPĸ^.xņbÚŌ!/<~&+īsÆ 3A‹Ōð?ī ŽĖFĐđ#‚cÁOeãSŠtĮSSLÖŨ6ŪÚs‹˜Ųy k7ý?šíZÔ1Ü··‹žt-mɆ‘&€r†1R+ITĨ ˔*ý ;kØF•8ģã4NZõ!UEūÛX·îēđIå>€ŌY7ĀĢÃ@!ēURŒLĻâ* lImāPĄÆĪlþ―8ŒŽ=j|ãS?Ó48‰ÃÔôpõč’ýs F>ĄĄ‡6$°Ą mšŒŊ‰:Æ!+1Ö,Ąg<ã­ĮhMW‹ïrÆ13‰lˈ„mi.~ӚļėéĪĄĘėÎæMo%,ūt)AhyŨïCdëĖ*™ČėžŲŽ:PW‰DGŌę:iE­„a!>t4B1Éæãąhö+éî{œŸÝųOĻ뜯öŅÚ[#ĀčA†cĸĘ+ýĻ­$\t�,ϒđŊeÍōũ3šï–Û~~ĨîÚĩI2ŲķïĶZ?ôĸÄd­dŽîÂT1ÕĪåAG!DV›―=ā$Žļ8!AĩĢ1锯™™sėØ|hŸ1þ5ĩšÏņ- PļGĮĒRõéKpĻ&Ė8ĩ”Åš‡ĄŅ~&+6ÚwÝØŸFAüýÝøf aü6˜äüV/‰ŒæŸbÔņc/ Ö ŨÞPãŋĐ`5dfį)X…{ú*#}―ėZp,[%•ķM•8š`ØÛt‚8[š†â6ÏŠEĖŠoe4ŋGođý*öölĮá?ũŨŸFüĸ‡†å[”Cã\Ũxė"Ī<Ũ1”ƒˆ0ŠŦzųūïâŧN,k&B%ˆ(•ƒZîÛh@vÁČ#ĸTĐÂũýuĒdŧÆîÖC|Ÿƒ?l&dÆEĩō’NzōXk l€oRjTÍÃfļåIÔ4ÐYžo’3I› ™ T›2�$�� �IDATã'­:U^zĖî4AŠÞ/ĨoāiÖŊŧ ]uÅėžŒ+ã"ŅļTĩÍu]ŧŊۈŽręę1wƋ)”úõßy§T*!"ü‰ _wܓZTKïVôāšÖĪĶųį“)ߋŦ&ÆÁu #yK`#$ A=Ũ!›ōðC•aŒ„ahĮģĩú y3ūOā@ŨŽąĸjėhˆyŸIŅ9Ē’ũš'd™Pãq>“ķ ýLũŧÄ5VÕ)Õe…žšRR‹ĪÅ` ĢrĒ—4ˆ[’ŪXK[ërŽ Yŋé.†FžŲKąÃĨ‰―aĪ^`tÝW6íĢ,årüŌ?Õ3ΗĄüfýÚ·ĸRÔÃ%Ũ]Æ\õđ’›Ð Iũŋ*dŌ.Æ‚0$ōhk…ūÁĻÖm—IyøžKĪĘčpÏwiIûīfS į“ÅFV>Uš€ÝÉ sēþþ wˆ˜š ecč=ųArhÓAûØÝ‰Á‚ú)žŋ>ņ―Ĩ―dœ ŪļL]ɇ<AXB‰ðÜV*•AÔÄeĩȖhÏ.%Fyä‘oâ,˜O”ëB‡ķM`ļBy0ĻęąEdp_ ÏÂYŊÐÎÜJŲđįýÁ-— JÞŪšî2þāÃŨDîwH%ĩI <Įe8_" -‘éÆĩZļÄßUD*Ä%9Ā1†īįâ8Na6#ųÏP Vó荈ûĄUÐDĄ{ĢfãÏŽÕÃþūæčķæÕ'W˜i\‡Ņ`ĶĪĪęāXŌn Ÿï%FÉĶgSŠô!6ˆĒ"đ–ĨT‚"Ãų^ėĒ3Q?uĪ]%‚Ę`EňˆČĀúI?Wmo]*ë7ĸL~ŨŋIąĮŪžî2ūpéĮã týåpÕįĖØĮnčC Ĩæ,T•0ˆKJĨJėÕ“ž(RĒ(n`‚ÐâTBŌūSk>īûp*ûĘŅĶ›NļÖę8c"ƒ–ęd#ič‘ 5 Ԁ@ƒI+N]û0t,A6KwߓŒäw“Ë, o葄ënpÄĮũÚ(ũRRiŒ Ŋfo^ę+ĮÜŦðÓ ĸĩu`ųE ŲpÃxïoŒ'=ų=ýõ=_’JPŲ.Â_wŋžôãpÝeœÕžúB…Đg U ÎKX.Ņ’Ö„z hŒˆj0ŠZMzĒPAŽrŽXŊé7 NL°VôųŨˆU zcÕÞŽ(ǁ °ï4ā((ĖÄm“UnmO™šęē(Ģ]3Øģs=ƒ#ŧhk_@ÅFxÆ�!ūŨ Be ð<\6ûĖ„CP DŒĻŠnn›ė3Įãą§ūĨwýúsĒĘcļðúËļįÃŨļ‘ IsƒÝüa‘Í͈F d=‹#Šį'“F,ąfEri-qZ2>ÖÆŊmÖNKĘoûāzIsÛā3a/}ÓðÄz_―lĻï3ĄŒĢĀZ­YŸ’j?DOf Ý]LÛą•Á‘Ėžy2!‚J,2á?)ąFÃ&Ūū€vÅV{…EnßxÃķõ+.ZČú1ÞÜuáņ§~LĨ ÂZ\wë/đ6Õø€JĶ“îŊ6ŧŋütBuYJĨ€öÖíÁ11!F“ÆĮЇų™ī%í'"™6bī5{X•Z_š>õMtö%ĻŲøï(ē‰š™ÅõÜfŽĢz0›fÝŅӘ@ŨÝŲ0nn‰,FĶŽýPۊį1Ō‘c{ÏĢ,_úÏ―€uŧ~€k|‹BđnŠČŦIÏuTÔ(BMF7lÛxÃķũ�㌞öy•�1<)–Ũ]w›/―ŪŧüāîY/L1vwėŊ–žŊjmDX)☘ß_õqՑK5ApĀĻEĩLօ "„šŒŠ”}ۏÐTĮyôĶÏK(këĀ™ˆãÄ=õbpŠÆ9R‹RЁƒý.‡ÆŒK&„TĨ…5īØĐ‘L‡tę0’›ÉĢĖi'ū‹™m'ōÄîÛ°*„áH,"åúā9Ø( аvâÛPąAXM Šō^€eo[ĀÆ·Oôq"üD".šî#tŠ‘ˆą6’x&2īɀЩģČúą0Cžņyb‰. ‰`&sÝÕÆÞÏ7MHml Ðr’nĮƒ1ōąÃ '_­Ī6ðęcpLČĪS  ąaý}ôũîĶR.†AŌĐhHųiķm}’(Ļ4åÜē{™lâdũĻŠÛĶ ĄFļ%:f2ĶZļ'†BKÃŧxhÝ·9ûïeÞôēūû.ЀJTÆx)R^†biˆëšĩVúę™ŊĘ;6ÞļõÖå-bà ['ú(øUūtýG>\#?\āmē1OqJĖõN:$b݂ŅāFMŅ„;PĨÆZm,ŦÕ7vY\Įīq7z7ŨëûÕ2Ē1Îļ߉åĢbǘŠâ:ĢĢÜúĢoðÔã?CīlÖ!ŨڂŸō“{RËQđĀÜđӐšĢ3áÁŠ ûbäÉÉģÏœ;EJ(‰ĩķ%r9SŨĄ\/Ëpë|îÝpgø~ævžĖŽáõ ķÓ_ØIΟAÖM3V#Kš-…§Ķ{ÛũÛË/š;™‘lþí“W}øšýų5_üNCÛčŽ&@Įn­B d”'ĩÉ4q؛ƒǐċKM/4ˆbNžˆâšq†QŌØóá#däqĮ—C:íT"JåQzŧ·ÓÓ― k#:ĶÍĶ57―v”Tkڊ4É\wwoå ĸöįtķðŠóÏ">!$ ‚~‚J>Ö)q2ø^ĐLg5ųĐĐėėï <p9hÝ/2?áėĩ8G~+zÚŋK—�…lŽþĻČ7~ņ>Þvþ—čĘ­Ķ·ļ—mCëX9Ģ“ųģ_ĀŪÂVˆf“iO“™ĶŌ_Đv&”P6Þ°Ŧé‰7–Ũ>yĩ‘ĶŸžbĸũtÅŧÞĀUŸûoĢ:ŅžāCóäņfģ– Ũ"Šë9”*!Ū+Dą C%Ýmģ_ãÜXPã!ŪÁ8eĒ0Î}ßÁsŠåļ ŠĒšøe#ęU‹ŠFd-žŸĒŊg7|ņoŲēųĘå2Đ”ŌžóHĨ Ã#ƒCm­ r&ÕÁÕ]UД‹üë'/äԓ—púéŊ PØKöbm…0Č…y‚`„r)~4ųûęč\„Õ6Æ5|(ãÖ.Ö)LDRėĝûÏÁšŲ'ÖĖ õHė…įs�OÁËâĶ:Ø4šƒ‡·ÜÂâYg°'ŋƒ#[X4íÎ?ü0…ržēdXōŠ…Žûïą~|fÅÛ}ÆÆZÆI�đƒ;ƒŽĖƒmôBûs ÆžįcCˆÂļ9É$áēCœŸĮÓc Šƒ8nėýŽ’r] Iäã„Ï5ļŽ!•0ŠÛUĮĸH$ū“\{ýš{đõ‡ĸ–MŋæÔSŽįô ÏaÖĖ2éTX‹ã8DQČČpĄF6 </ÅÍßûæÏq8ýôcč{ĮI!N*ÖÔ 6ø°z@Äû ›F{į"nüڏxÉ+.§TŠ9û� #€æõgŋģÝ}…aãnę:ØËĻ%ŸÍAÞrëS_á‚L' :Nâą―wē·° 7;Ūօė(ŒĨ3d[3Ė~á Ų{_ÚēŠļō>U}_B}ýðāY7Ýp2ūķ „Q,}ŒqcuŨÄØ­ ãĖPŦyš�NŽWŸ ›0"āRŠËU‰ąXÏ?LŠQŨŲ―Dû―ŅS*āđßĸŸëyäÁoązÕ.üÃ?!Œ AĨH>ŋ—ūž^*å*•0>t\Tšr9GKnqŒš'Ææš†ŸÞúYÞõg@oũz‚Ę ŽģՆa…0Ļ$’ÖJ*ÝN{ĮlF .7}ïV,y9g―ø”+…ą#;&Fô›ƒ”úၷĻNjčĩ3?i|ÞĮßĩ]s0kŅ Ŧ"BĐĩÝÅan_ĸMÎYöM;…Í#ë™Ũē„é]ËØÓóÚÖIäzĖ9~é\Šž'zedk^ϑY—9ããūgÉ2MÔ&š1ÜcŒÁZÅļ>6rbÐ7QœÁ˜Xą6™kgLŠSð|—t*ĒXŠ`l%Jc”(Œ ―éy!ļŽËMĸó ūï~ĸ‚—ŌšóŽõíqņü"Ŧ%ÔÆĄ~aī—ŽémTĘĢŠÓŧæcm„ĩ°ęØņč#OðâŸÄā€ĨR! +‰qšĪŌīĨsīīt/<øð&6męã§þ1Ŋ|Ý{ąa�ķõļc}js/nL­ å<„~ô&1“šžÆó*ÚŪr6īDE‹ -NÆÅMÓД ûÝø6īų0n·oq(dsŽ/ėFķÝÆ‰óÏ#ãMg(ĄsÚjZ‡6Ó?ԏ隇1}Ņ4éœÛŪjGo|R5°’Čę>+ž1älė0 ÃĻ&4ԚIaœXFKmĖ|§æÕŠ5rÁĐĒāԇødR.•J+c›j~ Ļ(aâ{nÓÐΠRâÎÛŋĖŋõEø^Ņán'‹ãĪ“ŧˆ •J2Â/Ž2fÏ[ƒãæøü~Ā…|ét–rđHĨRâíö)þõ“oĪįŧwrî‹N§­s"É$ĩaČî];xøáûŲ―7ℜϟ―ïÓLëZP uba*―vrzG 'sĮîrƒƒ'ÖΖĢÏ(~ÖŲđÂČÖķŌĻm_Æøđ…YÄĐnŊI˜RÅîåĄfZŦãē33<YØBĸķ[8eö‹(Û"ĘīŪÕôv?ˆí߃7m6ŠÅøF܌‹bå™>mĮešï°― ՑāXÏ jéŒOĘw­­Xĩ–ÞTÍUŠ^ÜÔüKõĀ0"xŪC:åQ(5Müj”eĩļŽâ8Ķ6u% +”ËEĶOÏągŨ:Œ‰pœB­†e*•0ž:g,ĢĢs O>ų87ß|ï|ïpĘiŊĨR)Õū_Ū­‹Ë>ú3ļį‡|ũ>N!?HMÅČ|Ž\}&Ŋ|ý§Y}Ė؈ã4ũō'ó5$újĄ>ôũŦ:Œũčb0Éļ qĖÄ"þÕОÉ)Ė„đ|C-°F8hþ™ ãvS-7Q 2îį‚•~9[ŒČï.ÆkíKSũžZet{Ôt?įÕBĖzÚĪD%KЧ„­Xœ”iîFģJūŧ‚™f›3Āhũ/YŅq NJiébZįRvî 4ļ—tk'žãýÖŲq:rēĸ°―đ4Ĩr·š:B.ã7ý~Üvjk›Ų1ą|”Ó,ĩÔ8Að=·Ķ8SÝ>ŌāËAHš:LR•tš•Ųs–ðëŧŸäÔSN Tę# (!ĻC:=–\HaÕgÛķíüčĮ?"•]ĘåŨÜÁü…Ŧ)—ŠMúlņd8ûÅoæĨįŋ™‘|‰ba„ȆĪR-īwī!@Đ… €W―NžŒļŽ3Mīþãô&™ÆuDÝ,%•ņq|­ü–õē1øŽOĻ!ƒå*6 mŌBŲ–0â0;; ÏĪč+õ2X$ãd01dž,ĨĻD)*⊗ ‹BÎÉQˆ īú­DQÄ`e/ķĀŅæ·ĢXōAþȁ€JeĻ‚›Š=Jk{ ­ĐŽq(GeFF‡)ĘC*NÆÁ8R›C*#!b7ëԚkĄ%݊#å°Äp~˜JąBe( NӍōČāĢĖÍĖÃ5.nf&Y-3X$Šŋ5CŸpoéþļúFķ”+AÍ9eÓ>ŽSŋģã$âĒÕÚ2q(ĄukÅw ūgBÛ�HIӌ― šŊ'Ïõú&ßšņj~rûī·Å2͎ãĒZ! ó”JÛ(—]BF{į ^ýúwpÚŊ! C*åRÍț…!ĄR)QĐÄũŸmiŊ­EaīØÐž"ãė'VMBw[U NRm&|4=:É\(11ãÃöbTā/Vž•mŦđýņŸóÚXšjÛ [øÞ–o“Gđpé[9ĄóDķnßBĨ°æÔŲ2·ßÄöü6ffæówkŪb8æÆ _bíÐSxÆ#ãeøäĐĸÆŨķ|…-[ķðÁ]Âŧ~ÂŨ7ý'Ãۖŋ“SŧNįŠ_}ɰá‡v…•ņ â)đi­,ąŒY™ŲøÆg(fįčvķïÞNPŒ… ĒbkęHÂÛ/iÛī6–ĖXÂŽô\ã2 ē}xŧöė$(‡„ųL6EÅVØQÚN›ŨFÎk§5;‹Ðõ â9ĐŋÂRã>;X^ŠR*1Á…ļ-5ōę^·6øBĻt ņ™4ÓkF_pb$JM$›#Ab4> õ­U::įðŪũ– ëîcŨŽĩŒŽe@hKeÉķv0sÖ,:–ŽŽ.Ē(Ē\.í7GŦZ;vjĘDčųļƒŧ:ÛÁˆÖķj y=ziĮ4ݘ$uöeđœÐų>Øó~ ―^9ðZ.yÅÜđũv^?ûžjÆ\ûýŦY<†ŸõųæÝ_ã?ßuģWÏå_žü$Æu8ķãę―Ÿ+Oųĸā‡ŲœßŒ1ÂŌÜrf§įrKp3ũ<~yÎÅŽ}šœÛÆ[V\Ä[?ûĒÕ!FOúdĖMØEnĘ Ū0­c:^'sÓóiqZŲcv‘ŊŒ2ØŲÏ0ÃûDāk˜ÖŅÉ4o:óŌ ČšYv·3’aĻcŅĄŅdŪ„ÅņŽZĢA ķĀ4ŋ‹Žt' ˆlp””É=yQyE†F0ŪR ĢzW™įšÉœīz‡ĐÚ|ĪÔô―R7I&ÚT?#!ŽxŽĄB=ŊÕÆÞO­\‰PŠÆ“ŋVs&+WŸN… aļÁqÜZ~]Д›Cė1eÃņž]&ŒjÆÖÃEd|ļ”4é`ϞD&VĨ9jŨĢáŅdˆÔĮ&JӝÕÔ7[t<sWÍãÂEDoą‡CÛyõÉŊcãÐzžšõp<ŊАÔ,‡Ũ™‹Oþ~;AĒāú݇ŋ?”á3øeþäî )„…äS,-mū>ü%æ>6—ËŨ|Œ@Ę\ņĩK(-ATG0oō ëÄFZ%HTįŋ1HŌ‰âMėiŦĨĪŽ#'’!ÎA0~žÆņŽÅę%ĄĒešËŧÉ8feæ`0Œ2ōŒWm<.ž8s5ô0ēTBOLŠĒ›ĖˆŋsŽÃc=UIņ&ĒH5JJŒkkč―ã˜Zp+īRk€iœSЄ8’üūjƒdīÓ ÅŽūņ^ļŅcW™“Q}ĮþýDĒö˜oJŒ]THÆÔČDG%twÄÁ1ƚÚM4( ųTŨÞY Žðw?û[žöžĒmE+ë{ŸfVįšZfÄSū“âøyĮģch;…°ˆïÆÛū oïų&­ŋháËg“Zĸ‰ð2-Y>öāGļiņ­Üŋõ>žęzĮwŽŽj•+ļ-qN\ę+1Ž2ēŧļƒ”I1 1 QĘąČNNA(õ–ÉĢ ė*îĀ3ƒ•AFƒa*Ĩ ✔“Ôq%Ņ’Ŧ‡uų(Owi/ģŌs˜™žMÆÏP Ë 9$ŌĢęŅc<ÖŌõčÕ1DqČnL2á$9#› Û›ÔÅĨÁ؍B•Ú|<M",’Ú Ņ/ÄïŸō\J•ĩu ‹`)ĨJ@6åí·LÕ <ŽũČfĖØÉšxÆēŦM0ĨãĒĐWm+ûÅAĮĢk=Ī@Æ-†)7ž|kðüVŸôĐiæęl4R>ûðŋōŽđÉߎūŒ …ĩXŦLOu1'?Ÿ/<ōYúž^æåæÅ‡Šu˜ūx_ßüJŋ,ōîÓ/Ž‘UĮO:…”éK;Ņ”Ō:ĢŋÏ'īáQŲäÁļ.Æ%Ę ģ‡]ĢŪļ”Ē"ý…~J#eüī‡įz&°b e)344Œ#;)Dyq)Fyúóýó%ēí\ŨIšē"&Š| G*•xTŊ Š5‹f.1›ØqTŒÜjg~āĐaĶQŽÏîT;ÉTãeÆ`ŒÔYnÉkŒķJ”ĐÁėZËŨEâ 5bĐcŽV”l&EA9qƒÃØÏf!ßw'Ķ45Ž6ĪÛĩų}åé“uęýy“îÞ$Ŋiïĩ6äBĨOX^ŦzGL2 ~åü6ūtĸÐĄtķO‹oŪ^í`Ļe€?ōNę9•éé™ĘÚā)ęūŸrŪD6—eĻ8ĖÕw\Æ&Ų€k<,^ĀÏoa۝[˜Û6Ÿml&ífc―š>õŋŸdT†Aį(ĐÍ ā›Ž80ÝÐŋŦŸÞ°áÔp<)$ ĐD mđ\L‰œDČÏL3ôíí§7ėeČÆ! CĘų žįӚiÅC),NŽZUNþ† ÃH(xŪwTÁ99°jژÍoĮ0ˆš€ž 3ĪüØØ›(›UĢČ2‰ŋnhMËmFéÔæ D‘’Ëø [Í"NRŊNJÞDŒiø&Š0%%.SÍņ›}^mÔDĄûþÚsäwĮĶ,uŊ U‡ĢP^3â$LŸņj>>OEcmDĘIŧ Ũļī-Ëąķü8ZĐK#ys=ZM ŠJ…ßĸ‹ëšļ⠑Ĩ­­íÁfķV6âļŪë&õEx4| .Yđ.G‘Ŧ`0xâáĨ=˜­ôï Čq)ÄZ\ßcÆėxŪ›8LM 1s3.QWÄ`ρ„IųMņÓ>Ó§wâđÕÁ‚a\ÓUIÅÔ=JĖíÆÝO?ėļũįqØÏW‹‡FÆkeŒCK:…ã8ņ†ÕïXe" 5{­•Ų”:7Ô&ŋũąWg i­53“rЄŠëƒÐĨbÏņð|0 éîéĶ{Ï–-]F[[kÍāR~ Į•ĪÞÄV)H! #L‰hœÕÅ)U)hjUmėÄëOfėc9íõ( ‰?žˆuâ`ŽDŃņLíūï“Ngï?æÄŋï§RĪRéøO:4ó'ïjRé4ŽëRoŒ;›Ré4ŪëUņDâũō<âÏ;B@5Ä7>i'ÍŒÜ V,_NŨŽéär9æ-˜Ëē…KÉų­ĪMšŒ“Áb††)GåÚkÓ&ÍŽöY,[š”i]īĩÅŊ_219?GÖÉRŽĘq 2ņ=Iýû7E Æy ëûfjÔĨ‰Ä$­―j<ŽÁóœH;ėē&ĢD6”NÂŨúVĐ t$ŋ%“æËĸųyN?y 3Ķĩ‘Éīðųĸø ­i—ïïŧ|čo.fû–|éË_$›öŌé4åG˜ŲÕÅé§ÎæÍ›čëï'—ËqĖŠ•|õ+_æŊĸęŽ9þ8ŽYđßũ9ĸe/gïž=MĄę―ĻôØ<Bâ‘J‘z$•nÝąįļIxÆÆÆ„˜įýU•’-ŅîwbˆđË-đ8ô‹õˆąj)EEFĢŽZ<“},–‘p„īI“óÛ„ī#äšÚã ,y―Ē ƒņējD4ÁQëƒāTĐRÏčsĻ~^<{^īDØ`ˆČ %:)MŸR1žvh$·‘:­éT] nėæÖļ1™āļįõpLÃäæ›oæĪ“NĒ\)3oî|ūð…Ï3{ÎlæĖžÃM7}Ÿ—ŋōUDÉĀFcĀũ|6mÜČŋ}æÓ<úč#üėöŸēnÝ:‚ āĄ‡ĨīĒČg>óiÞųÎwēlŲ2–,YÂ{ßý|ýŋŋ‰ëĶj4ÝÆŠÔylöĢ߈þŨFm5Þ$Eýžų#FĻØ å>JQÅâˆÁ#PķE†‚A†ÂÁaĀzļ…@Ņé+õPŠŠņëqp‰ÃÍē-1Pé§•öyUÍ4Ž|ņ ģuID}ðPņąQ(čŖwŨU6ĢåMTFŸ$,í%ã1c0ņ›ÂŨ͚ýÄÍA:CĒķ<ëš ōē—―Œ{ók*A9.ï)lÛū7ŋųMlÝš•ū!vîÜÉĀĀ0"ð›{îÁˆáķ[nåÞ{îåâ‹/fÛķmĩ(eįΝĖ_°sÎ}1CCCÜ1<úČc8ĩQÍÔčđûSØa2ĶÜ$ēŅcŨëˆúóq:bSn,BĪCÁ }å^Ęýô—ûé/ũŅ_î§bË1 6ąHjmúiüúūĶŨ”û lų€p†š@į!ÎÝ:áMC\MėąÝ\ŋ75ĮŸ‡UŸba­ėÆD;1ô!•Į°ų_SxаÔW]”†ū‡šęËdīŧ&O>v?N0@Ąę!į͛Į/ïš‹ūžēŲ,Њï§xýë_ώí;øÉ-?&åŧ\óąŦãpAĀ 7Üœ9ģyßûÞĮÎŧČįóĩķPÁó<Î=įl.ZÄâ%KŲšusĒŨð˜j끍B”2Ņ™ōÚD ĸ<1ý1ĐiĪ…ĻP?ðm T<Ą#D!ԐB6į`Ŋ?Āuĸ­ūãšZųĒȂIá8iŋ“R˜#}Ŧ;]īO_Šï”)þŒĒiĮÏŪ"Ó~,Ūß6^Fz2�k#ŸL ĄV1ņ}ūņoðøÚĩÜvËmėÞģ›Îģ€˜(#FøéOĘwŋûlrÚégāy‹/Ą-—ãSŸúïĸĀ_Q*•0Ž[{ĸ‡zˆŦ?ú1fϚÉÝwßÍåđ2‘ŪŠlĩŪ3dĸä˜ äĒH―ötŠ›‰ åÏkáWĐY#čŌTZ9#•Ã{}óXúgËA[ï*ÅĪf“™ųH@ļú~1eZ§ÍÅ5ä{~HĸķïRxĒAšļAøhėa2öÛÖ"öŦ'öööéøūO†ĩBđŠ2wÞ<>ĸŸ_ák_ûßûþ ̈RĐÄßøF~ïåŊāŦ7|t*M†1§ĀZ:::øÛþ úŽ?ahh˜T:Þyóbä]dÂsjē‰ĻLđéĻŪqó>8B―Æ<Nj‘Z3ü)ÍįßFä$p�� �IDATžŒžuéM•„a­Þí·―�/5 §ü }[ïĒĨs>ŲŽ…ļū2ÜóôïXÏhĸqL_øû·ĨFV›<ÆÓ‚”°RaddĮqho;ÃFFF‚€ÖÖVRĐTÍĻ~ïüßã[ßþïüóŋ BÚ;:đóį?į…įœĮË_ņjþęo>Čųįŋœ0 b@ÕZN;õ4îļãv^ýęŨręЧP.ėŲ―››nú.oļðī··óáK.Ĩ―― ŨõxÁI'ņþŋšļIģŽ5P˘ĖčŦ‡ÜāĀ�ž+éĪŌ™ĪŦoßã(qÝuŒĪÍģÉĢ<ÐM&1=ێؘXbĻA“Ė°Ú–ÎÕdÍL† CÝß'(ï"Ũĩ‚ŽYËĸ{įgWYįĸũũ9įÜ2}2%R&―PR0Ą ļbAA`!ā*Åu–ýđ‹R‚eWýĐkYE]!(EĎŪ(Ļ”’„PŌ{2)ÓË­§<Ïïsî{'“B hžžæ•ÉÍm§|žoĸ|HuŊ#ÓýŋėH­cDëeÄkĶwÝÜWcXēd K–,aĮŽÜz뭈 ,`ʔ)īķķrá…Ÿ>ũ­s™ûÖđ@&ëqî;ÎáÂwœƒ7s6šúrþō§G8ýŒ3ĐŠŽ@ žóÂóyį…Q&ļïÞ{ĐŊŊãŠŦæ“N§;v ĩĩĩLŸ>ƒ™Į…rQHčË\Ũ%—YJßð}Ÿd2ŽįÅ\[Û6>õņĸƒ�Ūįņĩĸú&ã'LĀũCNĸ|>õŠ„Ĩļ ðí|ígŒ.G@þFšÉoðfģ§Ø1ÐŨ JH@ˆJeNE3õc/@”MŨĶÛ1~?ÕMÓĐjœˆkĢŋãyvŽÚNýļKqԙCšÂKqétš™3g2aÂūúÕŊ2zôhš››9á„Øū};wÜq;wîäŽģÎBkÍ=ũý„[nû<ŋþÅ/Øļq=ãĮO`ëÖ­|ôcĸ‡Õ+Wa4ÔÔTð__û/ßĢšŠ ą,nļîZ�ęęjiiIGGMĪŌi2é4 ÜĘīiÓp=—Öq­tuw1aüx6mÚĖŽŲģđčĒwņŲÏÞT ōųïŧøý˜5›k?ō1N<áDšš:9æØãXxį|čšŦųÆ7ūÁ˜ąãXīč ūĸ―ۙ>}kŨ­į“ŸúWþãCŽZĩŠl6ËĻ–QœyÖŲ˘qôÁĒ2|Ö―hIBLJĀųy―tdɋPĖúžĪ~DJd‰ūb_ÄčjŲ•Ô9Ÿš1WŅ―c3éžõ?KžŠ™ĢŽA‚UīŊų/zķĸ)š)šęJ>Ïķm–/_Îc=ÆWŋúUnŧí6ŠŠŠxøá‡ĐŦŦãūûîã’K.áÁĪĒĒ‚–æFßįį?ŧŸŅ--ŽZņ ýåOūÏ%—\Âų\Ā‚[o#›`ËæM<õôSüáũĸ @&įrîđį1ŪuŧvķóôSO‘Íåq}Ÿ/é?ééîâéŋųÖ·ūIg{;/.‘þū^=þK–,ĢmëVÞ~֙<đø N=åm<þØĢÜsũyë‰'ðė3Ĩ­mÏ?ũ,ÖŊcÞžyžuî\<ßãÉÅO`Y°â•WîĸÉ}üïï~Į•W\Á+/―ČúukXģfuĻās`ŨPŠ%ČaŽAG7Ý}ôŨ?X8ĸåUgy]­đ)éĒĨm D`ÍFDnV‚c. Ũ·‚]î§uf vŽ ;^Mó„ģØūęėXų5,§ĶeÞ e/9Ō\.ĮĒE‹ļóÎ;ąm›øÃüó?ĸsX ƏëšÄb1ŠŦŦÃZm ],\x'Ũ^ĸQī1TWŨ`+ÅąGÏ mÛVƌĮwoüwķnÛN>ęŅ·‡ęęjâ‰8B2‘$OÐØØČŪövųËĢ<ũės\qÅeĪ8ũÜs™<yÛwė Y‘$ŸÏsŲW2ēĨ…õ6ÐÕÕÉûÞónnđåęęęøÎíßgęôélÜļ‘ÕŦVqþų0wî[đōĘŦ@āÔSNĄđБuëÖ1fĖh–,]ĘÃ?LOŨuę:o҇îáoķÆÂąĮâŋUŠ•~°ÛOAŋÚH°•5Ŋ˜Ũýû–&Ôĸ~ ôïdnŽaÓÃŅTĄ)qã}_cĐ!ŨĀėx= ã?ˆŸÆķUĄT c\,ĮfĖ1W"Þj6-ý4í&ÛĖ`…S„L&Ãe—]Æï~ũ;ž{î9>ðāšnŲDX*•Ē··%ŠD"ÁĪÉÓļûž{øÐ?ýųĖ�ŦVŽĀķ­0,ˆ_ã'Œ§Ģģےa›v”T\ÅbĖž5›Ęd‚ûïŋß>ø ÓĶNĨĐđĮ‰…óîJ‘Íf™:u••UäsyŪŧþĢ\yÕ|š››đéĶ›ļûG ņ\ŊØ+Jð<ÚÚâą8‹-æĄ‡ĒĒĒ‚ööv.đôƒáLšR‡$þ·eŪĢ,nØ+lȧ\R;Óômî§gm+ŧéxđ“ö:ØĩŽöåtžŌEŨŠnzÖõÐŋe€LG?į7‰C•õ<Īh|ÞzĸÄýÂqS%†˜ ŽM$Ļ0ü4VՈcĐuéÞôumA‰ÁÏ,CŲÂØYŨCÐÆ–n&›ÚJ)ĨT.—cõęÕL:•3fPUUÅûßĸ~VŪ\IOOgœq?üáŲēe+ßúÖ·Øĩk'žëō˟?ĀUWÎĮķlvĩ·SUUÉĶéîîbóæ-ėÜđ“…?ü!·Ü| —^z)‰˜]ķĄe2ÖŪ]KÞÍc0,[ķŽH+UUYÅōå˙5įxVžō [·nQėØą“Í›7#"ÅÏúÍŊÅøqãxį?ž‹UŦV‘LV ”âå—_&•JqÎđįōó_ü‚úš:>xųeL˜8I“'ÓÔÔȋ/ūļû}}čģlõ$ë7Æ%b~Éõšdvfðó>đÞ<^ĘœyޗķlŊŦŠáT:TŪĎ[‘šįëƒøbøDČĖōz9î…Y‡"XũðޘĢό)â`„ŒŦIį\7 /Ũ`3ĀČĐfŨÚēkýĢԟúžÜJÜþß“ĻŸÏØcŊaÝ3_gûË_Ĩõ„/ĢŽ8Ē“&MâôÓO§ĩĩ•óÏ?€ĩkŨröŲg3aÂÎ;ï<þûÛßæSŸüŦŨŽQXķÍ'?}#“'MD͊WV2íčc˜šj%œ:ït~ņģŸōösÎ%sčíí/ŧŧmÛfÖėŲ‘ÕŸČø Y―j%g}�į_x!›6näÝ―›5k֐ŽH2cÆtÞqÁ…TWW3eęTV­\ÁܓOåčcŽĄŠŠŠņ­­Ž_ŋžŅcÆÐÜ<’^XƕóŊĶuėXŽˉL:)S§ÐÔØLËQG1sæ,ŌŲ,ï}ßÅäóþĄÝŲ'_9î,c˟Ņœņ‘ÓI&“äü,íđ‡}W\8Wa‘éÎ1°i€lw k­ņ=_ûXU•ąJâ*^Íę,Ųl“3Øķƒe[EĘ'ޘEeK’šņÕØąðƒŊÝqÅ­IŦ'éðč7ž@ē]đkÛþ·=_xÞû;Ÿ_œņÐŦzï·ßßd í–%œ7w6õ5ZÓ;.ãfĮŌŲmÝm8ãęT$bĔOĖ)ˆ�F“v…,$ĩUáˆg!>aÝÓŨÓąþ͟öUbąõä{îÆĐ<—xýUėZũk6.ųĮ]ð'jGŌXEŸ/ƒ5Þōj€Ņč Ö–e“ÎäýøÃũÂzđ‹Ģƒ ĪgŽ–bŽƒïŧ䒇Ŧ.”>ŠŊŠĒ.›ïûh­q'JJöî %™Ð:€ī,ėĻ?ūð~Æ,ËÂó<‚ ĀēŽb}ņ9…{Ė@*ÍãK_Æą,FÔVS_S5ĪĶoĻŪĻ æØĪ29~úð“Ä;cŒ9ýķ>øž―Ķōð„zĄqCv>·“|§[ĖþĒCŊĉ9TĻfԌIL5•Ī•Üã(awŪ›5[VąyõfēЁ„Ž&ŪĶsŠūÔ]Gí˜ęhpëĩÓTĘ&ZØŅėĪ?öŠé'ĸÛ YA\­uög<�\üØųüüUþ@ķUK ķčbÔ'Qš―2ņÖį<ŒÉP_“T &Ÿ|;m/}ÞÏrԔ·Į"ßĸSėĘS1æ4:6?ÆÚÅó9þ=+ąœŠ=†ÅöQ Ģˆ)ęŊcL1Km" ž”dĖ ”G()Ï>?ĢŊ—K.ŦÁĮĘîrÞöÂkKGS žÁޟÃ`Ï;{!ũ·vTRŧ!ę0h")ïÓF“Ų™Ĩ{u/ÚÓÅ^KŲ4OhdQSQƒc9APÜ]ũŠÔÅę8yę)žmúĐxžĮ–ÞÍ,}f)éū4~Æė=Ŋô’ÚœĒņļbUN‚9Dã„Ãïhå(ÆÎ;ęŌÚą5—~Øŧ-"Þŏ_ð”ˆÜh‹― čøð_/įæÞ{°'žt0KØļņEâ‰,Ĩ)Ėõ”ąŊĄ/cðˆ;6uÕIT”ðRv-võē[ąâ— Šņ;Éu|‰šÖŸ1rŌylxæÛŽ^ņ~ō”ø%ĐđŌÛ0L”ißÅđŸÎ2ũ‡wēˆŲPS–�ģŪSb‰ÁÕy“0‚āš^ÄÔÃnÄþčŊ [^ÓҟÃ-/Pí~@ïš~RÛRq‰ÕTW3qÂdĶN™Jcu#Ūį†ō8ĶDՃ=Ó6…ęœ>1ōMl˜Ė”wMeËÎÍŽ]ŋ–›6âå<ütĀŪ%ÔMŪĨzLåE™C]â ÐĄå”Ā Œ—ņM4ÞōĒAN‘§”ϧŊzę_þŅÛøÍĸĖ―—üõJ~0ũĮþų…šķ8XšƒĶūOģ3w™ØI—iØW•dÝ·ėde5âpãĻu@Uzdþō―?ĄŪåd’uŋdįó—ŌÖüg0ÞŒLiē°ĪÅTí7akwá^zóĩtK”CЅYģŋÉÓ=°ĮúpŅV,ģä–āĨ=šVõÝ•C,!P>'"ĢĮŒftÓ\Ũ%WBūŋ/K[Ī3B9ė~�G5ŒftóhƍĮ–ķÍžōŌ ’ {U/ހKÓĖWߎ­cīTÆ7ų "[T!áuXŧ6JĘĻ“EÔŊ?üô7îčúĘæþXßð뇸îIw؍e FlÓNCύÄÝõT6TKVÂåŽ"ð_Âhą’aŸžŌļéÅԌŧŒšQ'ø ą5‰9É_ËðïMXX*P™íŊ5߃E/>―æ%žWeɕ%äÓ>íK; ēFŠŠ+9õ”yī4ŒÂ‹\>WÆĮ―§DËpÛĨ°;Ha6]|ĄuÔxF7fĈFžî9ŒŊhKãå5-Į7† @8Ė―hĩŒÁˆŸõ3 ËĨK”ą°DD‰ˆ PÆ%"ÖĮÕ•þû@A^ĸ5ų-˜ÕïĮÉ·�õ5UHM݁]l‚L=:įcUQœ„ÕîÜþ'9ņ|:6üžšÜÏqÆŋãîzMy“k―J t‘‚59äōOąë nÆĢci'A.Ā`hhnāœģÎĨŌĐ,–̆Îzåō2,ąĘæĘ †ĀčÐÛ>Žh ÁR6ĮN:–ĘD‹Ÿ\ŒïųäŧrėZÖÁČã›0ÁĄ1Ã“Ë AJũĮt,aYVm(!ĄQÆ+Žˆ`‰Ĩ”Č—>ĩô†ŋ~íøï>@7ŋXhw;đe§c9M­3čïXÉ Ō~a“.äĀÅûÍ}x™Ĩ$æ#Ę!čy1yDYŊ χ&―\—“J™āãYô°ïØč°ß]Ó!oėÎgīĄg]^&Ā ĐnĻæ=ūãïnĩM‰RŦEČÓ^íÔ2ąj2̒̉[ņ(ĢŠ[™1†žvŲ‘kcÃĀ:üū°,'>ÚčÁŲāĻd2yėį$øËŸÅuód;rôŽíĢvbÍ ĘČĄ)* ^KčÞÔóĮ§ï\rýuĸõéėš•ĪDnQïēDU*QĒBy ĢDU ræK?ą4iWč[f~qŋ= ZNþ•ũ`Åâīó>*æÐ·óĸða…ÆÆÝŽē!SlÐ_FāĄý](ËĒjD#=;wôüŦöô(V?ðo8ïâpũp ޟpt?ģîŧ›ð7DŅ3ŦCĸæémŒFŽnæÂ·ŋüÁ$Xi&ÞC•]EKr4c*ĮŌoĄŌŪÄ7~q`)'+’*ɔęiLŊ9†ŒŸĒ#ßN[f+ÛģmĪžH“.ėåö|qM­œsîÛųÃĸˆŸwéß8@Ž6FbDü ÏW‘>:jšÁ JũĪšúõĮk>°ļâSKnx‹%ö/iUÆîĄ­W_îšeæ;öß―Vø]ĸK~í'ˆÅ“L|ËGhžüA:7=t(N˜ôJŽÆņYLā•KJíøn-“ÞAŨö žC՞`œū?éÃäÃÉA ĩÞō―Õð.c‰ŪųĶÏÖsÝy6`ÄPÛTËŲ§ƒh…F—•ĩ|íWqfŨŋ…SGžÉÉM§rTr –Xdƒ,žņŠ}ëĨtь'Ïxä‚,–ØŒJŽæ­§0ŊųLÞŌpq5ã"‚ž›gTÝQĖ;eX!ËkÏŠÞA9›C°īŅQŠxPē'Y›T�ŸZr�_{Ëw—ØbÆVNÞ‡ļŠWq·$ėŠĢũïæŌ(ŦĮĸ[û)ŠjŦ™úķOŌ8þRžl;CĶ_ˆũuf&ߎ“hDûmÓ_Ė ÚïĢfä)áázíˆĻjFÎM/ÜSŊ&Ū}#ÜóÝÂÍ!Oš9Đán.ĩū†ŋŋA?Z#1čYҋ҆DU‚y'FŌIyį žósLĻšÄ™-į2ĩvuąz\í†ð•ÁØ]k‰ØĐPc.ú6Cȍ„īΞöĻsę™R=ģZÎeZ͌=:ų^āŅ:Š•“N: ŨwņR=kúŠŊ?āŸĻųuo‰áŊ―åŧ|ö…Oðsū~_R%zâVRâVÂÄT\b*FLbûšAc%Žb`í-ļŋDUm=“įÞLÍČ ÝņMīŋ°bÃcUâmü4›ÆÖ3 ō0š·$':čÁč,–3 ËãũōŠö˜―Å­ĨŽ–|8€ˆ${š‹:šČÝm"wøõþÛÐŧĶ?ãĢŅL™8…æ†æÝb,?ð8Ĩų4Nl˜K•S]މ—ĘԆúÓ!O―ĢląË€î('ŒÝEéģŠ'?ŠđV;ĩW7›SšNGcĘvÚÉ­S˜<u2(HmIĢuP<“ŊöļĢ/mķė5CōÅŲ_ãæþ/�Ž_Sķē%ĶbÆGŲcũ•ōSvé^ú6~›ŠÆfœö9’ĩģI·ßˆÛũËPbö ž: r›0é—ITŨ2bĖYøųÍ=P~ß�,ЙWíIšŨ† LŒËûzYō=ρx ژ‚äĩ‘ĻiĀÞCö~PŋZޘŽ{āiR›Ó  aDĮ;…B‹.;ð3[ÎĨ)ŅÞR)”UĶLi+;Ú�ˆ.Ę.íW·ÅWÎĸŠ‘âļŠ­Z+ĮĢ–v?WlÆIƒŒ;ŽmÛķĄ=MĮó]Œ<đ ãéŨôæš}õ7ļ~Z$L)Ns(Ï,ÆK”ēPHïÐŨ|îû ĩq#9gÓ―ô=Rá>Ke] Įó- šĖŪņ2Ï ’(ÛYlÍþÛUA~ýĮ Üãį^—ŲˆŸ{ąĖšī"op…1þÅĒQ_š[b_ÛxÜK^F­ýŪ†Ņ`ߛÛ$%d•…ömĀ5&lēũTĢ{Ģš ÂvIEķ-éī+ƎKMĒŨsK@épbÃ\šÍĢą,§,‹[�yAIĨŸ‡ /I2J +gTOŦxčú—6ëD||ÆWMÄRÏt>M`Â!‡fóĶÍlÛš /íã xXIë oĢ=ՑŋŋæÛ\;õc�|gõŨo&*ąŒB‰ˆ6þŊúš3bāÁĖSnZđ|ŠZ8+™{Öԏž.SÞv+F[äšūŒŸy&Ô57åY›dÜ!–L ķ˜í뛋Cfû=ø}ÏR?j#FŸM~ā)üĖģû0ÖKŲTW$0ū{h€ũŠM4Ø9ļ2v8-ØŅž}:Wœyę2{°čf§šŨߚ‡ī―šôŽlXæģ 3ž…į{ŝÍŨ>'4ž•ą•ãðī‡ĨėĒå-&čJ@ŪDáĻ‚Á žÝĶEC–A"bG9ø&*Ŋ•€]‰"ä[1ŋ!`ņŪG‰Û L`?~<Ûķn éķ u3jŅŪÞo>…Lƒmė(ˆŌÃ^…k§~ŒÏ}FŠu#ÂgĘ$Ė9ˆ’PT–•ūfŅ0ïjøÝ—Û™šĪŲÅĻĐgËļŲ7�BĶýüėË{Ąc[ÄŧĪËbx)™Ð@ĮČw/"ĩî?I&}&ŋõFt`pûî.ÓS+7há.­ˆ;I1­þn—yõØą-e^XģQÂ~ž‘ÍÃÝ ųûõ�·Ë ŧߌaōīÉTÅŠČđđb mjÍ &TNÂÓÞŦķē‹ ïq{xķó)lesÁč‹ðĩWä'ĪΙƒ˜4…ĮKÁn) Wį[1ŽįēĪûb&ΌIGóŨ៯Ïäš\t^NÔ îBōÓÕ.Ģ+ÆPA`R^?=nĘĻēc\ŧhs�ðÃuß=ËsŦ 'ÛĘr Īr*ņY>#Jv,\ũŪžü‘äŨĀĒ;hAmü“Ā„QSÏ1ĢđAŒÉ’Ųy#ÚÝ\&|Xæ īũô#^Ũ Ÿ•ýĘ@—Š3?&·þflk€Ioý7ėøtrÝ_ÃÏm,J!—é.Š"qŒÉā{`|‡ķŽnR‡ÐˆžĨb1XĒđà úîßó]ß§§/eķėę”Îޔą”JŋYpýĨđ݁~ˆĩūö5ëŧ§åg}L`Š.qÞËAŪÄbfÝ,‚ßyX3.ģæ UÂnXŌý ‹;ÃÈxóšÏ$äŠųĒÃ' (&ïJÁŧļĪl4ÆÐZ9žMĐ ôš=8:ÆīĐÓyų…—ŅžÆí󈏈•é6 m”ØÔĮF0Ĩz “ŠĶ…ÉĀȂ+Qdž4/æ–âûķeĢŅę‹ũÜ:mÔȖï ę$%J)ąDDLQxӄ’ô"ōóË'ĖŨ�‹î‚yóaņ4aņē1ŒhžxãfĸŦnéŨa‚þA-ōa$ŅlÛ♕č2•Hi@mJĩ03ėsA9“Nšš‘įïĸ-ųÞßQhv+•Iŧąjȧ–Ē5īuxŽh{Kē‡đŲ•7šĄŽ(‘AjK‰‘‡n―…y™Ÿî‰afĸü†Aš_ėHŌÚuÚéaK!ĨŊō:ėzÈÚúâWņīĮyĢÎ+& )Ü,QėmJ&›,e›cŒŅ:lqíqŧ‹„—Åï5É)š z/É4Ë P Ð!7#1fÖÏᱝāûÆNāÅĨ/Ē…Ÿó‰ ŋG”ėSXÄíĮÕÍfrõīČewÃï~m4 §‚Ó’gã^ĒŲž}ģyįYþcmžþĢ€CĖ“ aĶ!LClAÉ —O˜ŋöÞ wqųÄųĖ›‹îâ8møŦáĻ)§1þøÆMŋ$ŲŽäC-mđE4ý‚ø…Ä&ˆ1Ē…S&WS­ķĻãœŊšĪ5 VĒ‘§Ü@ēî4ÜÔäšū>ügDŨQŲĢPN-k#JșQØķ`íŦī'Q)Ų·ÍA€6<ˆ (ÞßYÉbŋ( Zk­”úâ­Ũ]ōíÛūũSīÖÜrí%ŧ]—Ĩv—Ōj‘ëœzFÄčũúéĘu„`ŽēöķØŒŦœ@s|$Ýn[ŌÉë|Ų‰ŪwĻÕE u`ð3>AP7šŽ„•$ïåŅhš#Đt*Ų=ÂüÎÛģmlN­gRõTÆVī"ÓkeWnJįī\@6Č :š%–6uđ”o™Ŧ7„d īŊqę[ŲĘölĩÕumðō^ÎĮ‹j§†:§žą•­ŒLŽĒÚŪAÖéËJ?Å·LfÝ,gŸx–ĨČįóĨŽ"*ŠŠ)‚a9˜]>ņęEũnž‹ąÎ'ēčgÍ]–m™0įJÓ2åjÉõ?)ŲÎŊa‚N ĘĖ{sī|g”zâ_wysŸMH{,!ÝņjĩĐūJmķ―5ÉÆ‹kŽîŠXe“4ķžÅčĢŊ‰“ëđ›|ï݃5õ!ŸSČûŠÕ€Ĩ’tn~ĨbXÕ§3ZUÉ=fŸv ŊYy ~øpDĘCÔĻ<7x…Ĩīä°{PōÚ@k^^ŧ­ Ž­ū—LÄ?ë-" ĖjlŅýcŒ1iĨTį‚ë/Ý °āöûļí†ēĮd\čZęaģĨsáq‰3―fãŦ&ą#ŧĨÁsôš―X‘ĘDeފą­LŪžÂ–ôf:säƒ|ąÎ”$GŨCkåD6§7ēžw)Ýý]øŲ(bÂø Eē_ûLŽž\tӇ;ā>··ýœ­™ÍÔ9õüû1 ˆa3đz “Ŧ§ī*ČøéhļÅF�_{ezkƒėŊ{ŽæĘÁoˆ)‡šX=m™m$ãI‚XŒ G3mĘ4ŠëŠk !ވŊ}4žq‡ÕŅšŸ˜H<ïæ E”Ōc/Īä ü‡ ?ū|ŌÕŦï]'c›ÏiŨĀĒ…|Ā|ÕIÄĮŒŸu•išx…d{&ßóŒŋ ï ĄÅZtájŅl ­IÃX4'X6‰cįQÓ<ÓÔ4#• 'ïû=ųþ_d—G݄{ųŽX+žÛ› 0ŠUý*u‚3<ūʀ&ŧÅ&Ęϔ·:3„šjøtģ0tŠąôßÊC'��§IDAT7ņøÔmóôË_þÄU‹Þ(_~ÁíũģāúKËCŊÝ/i8ÉĩWFí` FJ„ãt>ĀŠPϐģr ø}ėĘíĪÏë!—ËĄŅXķEāiŒUð"‚‚Š—ō ō!Лš#1CĩSC­S·W5RM€Ŋ=âV‚·Kl ā.ķēI—$vŒ Âï.ĨûķyUĨŽPt Œ§›Ģh‹mCDļö―ŨS]YvņEŪy.~F~Ŋģōƒ^…1b$"É0áöRĪHy�ø–1æĐ+&]mî[s;cŋĶ�ōáߝDuÍôSo2ÕMó$Ûõ}“ï―_ _2å·w‹ēąœ cŒu‘åÔā$ĻĻi%Y=ŠDe ņŠĢLĒrīXņZņþhķ]/A~5F§ö r@9­ÄjÎĨwįģ'UųAl”2öœČūŠB‚*MĐ ŅF+ĩæûú>ýi,CQGMDŽOýGō•O^õ†ïCA>,ÐuÉôÕ0xƒ'ÂRôũ °ąb=―n/)ŋŸÞÞ ũŸ čï`ĩZÉÎÜvRnŠūTv…]<ņý}ýŽŊ\K§ÛIŋŨKo_/Æã…eĨšX}qÃiˆ5Sņ=N‡cá4pÁč‹xšs1įķ\ˆ%*ęŒ,ð}šeĪĀÝ>„ąÃėÅĶ4–XļÚĨßëg{ķŪ|1+ÔājŽm 'â‚<1ĢB%pO>Čaa―úN­(‰Qü+t ĸ ČŋæRđ•T‡&_Į=rŲ„Ŧa*,š“ĸ4†O:‰ŠØŽwÜaœä ɧÁÝb%&Ģók0QÃÏÞ@hīOMã,fŸĸ#Sžūáiē@gŒö·‹Ÿþ•Éėø­~GĄkhČp-!qclvŽ…]kÂøŊębķÆÞk Z ÖpâôU4™@YSĘނâRyæ―?ÛēīF qU6MõÃZt­ƒbY)ÐÃóŽ)ĨЁfÓķMlŦÚF ēšdKíĻļ@ÚÐą­ƒ.§ 펄E―j?ØÐķŧÂ_ŸŨØÕv$`ˆIžš˜61fâUĪðЙT5•cęf†cĶÆk߄ķē[JwJÁ!š“ē:ķDáƒ6šŊŸõé5ôš―Å^áf°ÄÆV6qį˜Úã•<*L0>[ē[XÞŧ{Õ #"ĒĩNcøü•“?ôåÂĸÝģ~!WLššE aÞÄŦØ|!Ÿ -y'ūûAzņR&H=’%:“PÎXüėRŒß^lAŒšíw`L "íwĄý6‚üJüÜóh·§(―†�·Įpv7âÄŦĸū]O“éÛL`ŨCÅą8ĶĒMq_ÏþXÝB$ûH.+UlÄDŪĸ Å“a>·ðŧįû8ķeW "Į bĸįÂßļ7^}Ņá ôĄē§á|c ‰úų~ŊÏG,!ŲĻ’ÃŨ'FÄršĀÓ8‚•īĘēōņ:·ß|}c?ãĢTÎL!Ab0c-ŠXó.dÎN• • 0đ ‡#NØö*aßļ˜ĻJĐÁŽ{I7y ƒĒæĄ7ā.™ ÀŨώÜvú―>\í~ū1#i%ЋÕ3:9–ņ*Ŧ]Ō~[4Ä8Ķv&+ú^&0ûĮŲm Đ9umkōđÓūôåŌĸŋbŌՃåģᘀ[īæĶÚæ)Ė8ývĩâĶĮOĸÄ*ņŌ’8É·âgŸGû;ŪōĪ·f,—…ØØÏkН·+ނ]y ―ŋ—î!Ýú�–d(@Ý1Ô>@]~)y—’ˆO†anÝßMdOÃ1ķeSWS)í]}(%ï3† pØZôýËér›'ęcmÂė§)OpV [AMyņŪPÖJÔĮ"b‰ēŊ‚ÄÉ(šs4T6”YÍB§ZxĢ)z―·?A`<fÕŋ…)ÕÓBąB‚°ũÝDM&äA QV đĻ)ŠæÍ}4Ûē[čĘu’ ēôy―du6·)šõc+ĮŅo&a%ĐujаŠð‡§=úü>t”ïîcŒĄÚŪĶÚĐĄŨëÞÏ~Œp°&“˰―mŧ$€\áĸŸX‚,ä^cxÓļ·1yîe·ïgxų刊—Y·°$ĮNĖÁË `tjØ,ĩėgïŦQŨ.€ÜH4ü ™žh_ũ ^ōX$>'L§–2eh՘2QŽ‚ /ēoŦŋ7�ïųļdŸđË2ŒnÁÎÎ^c+ŦQDÞņŏ]þëÏĸā>nþČe‡7Ðũܕ3˜ē ―ÐÂßĶž$°{Ûž”7˜ŌŨ‡@·J)ÚÛ:˜Ö4‚ÝģÝÚh*Ž$ËšŸį•ūå˜4ĮÕÍ&í§Bj( 밅n· âà §ËwsG9xÚeCj]n'?M6ČāŊčÚk­AÁÔęi4'Zϰ*ϰ*°Ä& ĀŨ>þ@˜Č,ĻĒŽÛ6ž‚ËŪösÎŋīO!ŸÎóė_ŸĨōTGŌ‹―"ČOŧ[Hý# 4§œx’™x—EYՒï―ß]‡HExÅĪPž+\ĻJėŠÓðSŋ,ū†ƒLEkŪĄbäM(ŦžŽMũÍĪ1>ã$öą™Č~ĮÔŧ‡2ĪB:ž%—a^kĒäÞЗ―ŒĶúękŠ$“ÏĢD~�üšĢÃåķïý”[Ŋŧä0ú^ûfd_§û�j† …]acYë6ŊåŒãτ LōZ4–ąÐ& ÎĐ/ÉĖW—ÍĐûÚĮHXÏ/ÍuɐĘŪÜNķĪ7ą3·%Ö`į{Ô{S1š͌ŊšÄ˜äX<ãĒu@`4žņÉk— š#ŒŽ�h]Ž` >V3ü}ļíĨĩ}­Ãc{ðŅßÐÝÖÍØĐcYĩxCąoý‰ŧĐāũūĮœ–I'›Đ§.$ðzČö.Dû(‰GÍrƒ …MqĻGŽJėŠÓņŌ‡ąčk4äP°šZCŽæ\œäņôw,eËōßaz/TΎ`cö;6ßŊRō˜ėÖþ ĨÉîŲóÝÛ%d8‡b&ĻŠL2ŠąŽmíF‰4Ýōû–}îĢ—Í ŧÓā–k?p˜�]Slv)sģöZU>”ŧ―ATčî+Káv{ x88čĻäW˚+C^į9ąņdjbĩ xýœÕr=nwYV;0F›bķŧpéŌ~ŠįšŸ!í§ŠDÆlec)›„Šs\Ý,F%ĮO{ĪžĀā5Ėu1?ā/d45:ü="ÔŅs}たrÃÖŅ+ƒu!cyüaV?ŧšdeß7‰yŨĀâ…LӚŧpüØcÏ3Oú^v―ļA° KbÅÉĶŌ°É’ÐÃŅč°9Čĉ•œM{á5f*KŒ;9‡Dý5:`õĒÏâÔM hþ0–]IÁ}“ēFŲkrOJjÛ{Ûd·Öƒ='}Ö(ĪT{HÜ ÉâO?šÞTFúS#"ģÜ~ĸK"rūÖĶ ķŸũÖïþĪØØōš―Š@]íļ‹­ŸŊÃ*jkĮUŦkĄ―cc›Į…œo:ĀRVä~kČųY&WMÃV6đö0ģ^⛋nė‚]{My<ŨýŨ"Hã*AÂJPŦg\ÅębõÄ­8ŪΓōúC–ØČ*ëbĖãoMĐE­đÆ:‰Iôš―ätŪĖó($w,ąĨČ9ēA†>·WÜåüų—SY[Q’ƒÅw1Į°lgrëĖųfԌ/ģ7õŒ·$đāj؆(Á (k„4 V|"&čB{[ũYv{ĩŪzÁ]W‰éT4}­-^úÓõÂnýgœšãÐAŠR6›Ō g7ÐŦ,üâtœĒlHýUeņũõĸÚ’ņĮNËō՛Ī/1ķekŒŲ Üëwï�L—RŠČc2ZëŽÛnø`nÁíũ#"Ŋ™‹oĐš ĪP'ķÅÆ ÜŨ•7NŒ`Wڈ-XÅō/0uÜ42~†Ā„J*…ī˜óī‹ՄķīŠŠ­­Ņ†ĶæÅūð"—ûčÚciJ4SįÔSaUājO‡Üq&ŠûCe:ŒÅu1áVØLD.š.šĸđļŪöpuūœBZŽĻė#ėĖí`ÓĀR^Ё î|ņĘq'^ĒŅ)Oé@ŋ2šÖĶIgę–éŨ+Ģ1^ú1Ņ^JU•ļcå!f%‹ÁļÂ`ĪPšOb'OÄ79īßąÏF—W“]Į€Uq ŨøIÖ?ĸr}8oÂnųG$čeëåí5ī|•Þ‡4ĸÝÞCŠ@kšGÔqÂ1“ˆķvŲ°m—QJÄRrЈš4ēęŧŒ1i O)ĩåķïýô™[Ŋŧä� nĸ Ūĸākô‚ŋ$ˆ ĪLeu…‚3ƒį{ŊЍ18Õv……›ŨtnïdKûfšjšÉë<1'>čöJm…á“ĻK/0ĒBw―Ø`~GĶ>Ŋc 3jŽfZõŒhģðčõzÁ€?hĩ#ZĻÐõ6ĄÕ.ÆäaüMÕØ‰ėcÖϒŌÆĮŨ^19XpËå`)›Đõlč_Į€Ũπ7@&HĢŽļŲąÂōĢXĄq6°cįO6å#}ᗝ[ŸŽŽų€išpĩ8§…4T~" ŒQCLaT1ˆô‰Â=Ø8š\ėŠSðģKÜ­Åšø�ū(Ð@ēa>ąęwāû°öé[Øđ’Ä”/`žtä›Ý}žCÎ s<lûS·E jŦ+e֔V3fdƒėččacÛ.ã>JIRDÆۊRęmƘ‹oýîOĶ[–ų—[Ūý ;\ ëĄrÝģ"’Kâ]ŊtKíQÕĂ8"BuŽße‡ÍÞ=ŠÕĩƒo%ÔOŠĢkehX·aĢOÃŪü.*íŠ"ÏzY—œ”Ë*΂+QE+Ōką°Ļt*‹kÜčØLäŠ!ĻĢQŌÐĒZōð1ČcĄõη˜ą!Īí)Ĩ°°Ðh:ólJŊgÝĀÜĀ+rՉ„r;ÅėŊ }/ôå(1-"ŧ įčīkxxŅœŽÝôŊW<þĨ‰“3fĖq7 Š7õÆßšíĨ-Ã&ž>F…―ëÍ3ðJI Á.Ö+Ų—ŠmŽûƒĄBÆūP>SV U#ĸ ;q~ū—U‹o&Ýĩ™lÓGIYį"]=ü /1@Kc=- uŌݗ"•Í’w}h-žį3ÍK)ļÖĩøz!sȁ۔ÚlŒyBl9§wEŋŲŅŌ.#§6‘ˆ%Bëc98–ģŨĶĢÍ~‰ –6Đė-$ˆ7%ؖÆËyėėŲIOēƒņp,§ØŪŠC cÐŧš$MÕZĒŽĶB/Ā‹øÄëc (ĨČų9īņ ĒLđ)‚]S�{8Bę/*™…–―āēgƒ þĀ w!RėŠ L€đėSëyĨũE<í…<vNJô?Ĩ―Ē ZōíŪéXÚ-ĘRFkģŲþR8?‹ÂĐWóŌwqŪípĸšgï8!Ó·ÖL<é›’Ļ―wāh[QšļøʀÖaCIxMŅeįð ‚ÆŽÏ@ŲÍxéÅ“ß―ī4t-J蹊ąsĻhü7īöČôŊcųCŸDlHŨ_GšōJČy„„k_†Îq,FÄŠĢ}<ä…Keģēą­­ Ā- nŋĸąŨ_šôï8SŪjeí63éĮž/"?CĻ4ū1ÕSŦĨiF=‰xˆRēg�ŋÚ ^3$f ģ4Ķl,KĢŐČ1°%E@ĀĪą“8uÎ<fÖÍatÅļÝ\0… EŠJnėŌ:īDĸũDû_ðŒGK|*' R3Ģ‹ ށ‡õoĢ _ûøÆÃŨ>™ CNgŅ&G[%$ĄGH ĪHeHįÓlJo`kz đ îŽ{ĒF*i(Ō^HEÕ―žh#""Æüŋĩwoýôä+ĮąîĮ[ĘęčßE•ŋÎns<“Oþ†ą#ÅëØhwƒ˜ēųŪÄÖđDcL€?šbÂ<ƒÁ'Č―Œöw†ƒ*C\óbnËŠ@Ž‘ØņiÄG\…X dûWÓķâĮėZũNíD25óÉT―Ņ™ƒpĨå@aøŠÃČŨ:L­J&ðĩfņēU&æØ\iŒđgÁõ—Ō/;cSŪj―Ės7 īŊMTÓËVĄÖŽ '*-yŽÍ·‘°mÖŪcíđ'žĖī Ó8­ųlŠėŠēîķbŌ­H�)EŋÐ]f‹Íģ]O“öÓXb1­f1+ööbíČ}/ÔæÃrX>l Ņ>žņЉ?A°-ĨūöŲÚģ™KVÐŲŅEGw―Đ !­Õþ$4%Ž r?eIĄŽĸëîÞōY€IĸØĘúŧ7_SûBŠ,0†OÕ6Ï`ĘÛūib•ãÅÏ,ÃÏ>ųįŅŽ=AdzuÔÍ t�`Ā *Āđčų tbüNīŋĪ"đōvb&V|&*6 'y,–3–Tũ"vŪý=m‹ÉĨ=j&}”ØČũáÅgĄtßA�–7Ĩ ęž.xĖvÐZ›ŋ<ĸŠīwũb[Ö€ũÜzÝ%đCôR+1åŠÖ“Œ1·�ã.˧Øb - °0Ē„wūë]2Đn"'5œ!Ę)} `/XyAčózyūûb§ĘĐĒĩb<~!îŽ&ÝЉąĀŅyPv|퓈'Yĩu%ŊŽ~ŅĪÓiéØŲIįÆ.Š(Ąt@Ûnqāƒ•Ā§}ü~ÓÝmzŌ•ãX]§ŌU�ûw DņqĢųZĒz$Įœų=“Ļƒ—}I‚ė3íFđŒŊ?īÚËíA”‡)hÎ؉ãAœė6Ē*Âįé<"6Ēb(ŧ+>ãĩąkÝ=tïXMĶoŲÞ4ĢNĢjüĮ‰ŨŸUô5GÖî{ÖʍÛĖ“ËWKÜąjŒ1‡ēķ^žKÁ>ųĘqÐb0ïd,`―QäũÆŦuÆÄꝋ1aĖ{éŗ2ĩ~:3ëæ„ Ÿhx…!īÍEũ―D!UÍ+}/3āũQ`M­sę°Å! ]r?N°1( UaĻąk_7‘ß.ų<rŋą-[6gwåĸdƒŽÄɊ˜D:€GDäE­%ŋþîMeŨgļU xâNŪáŋAĮūýŋĨĶå"ãį։Ÿy Ģģ€)‚\[v ‡�C”x5šDÝ|”ÝŠ$–uŠåöķHĶo=ĐŪ—čÝūØôķoí˜�ėúϜøoÄëOÃũï ĩŊriĢŲž―ƒEËV™DÜcĖÔŨ_šö5s݇ýáēfß<íģ _�ð ļø=›YsdJõô°ë­`đKīՊQ%zAHy)Vô―‚YBĩÖb”HIĶ Ąē‹ēiŠ7ĮNđėgÜũðÝÆķmÁ˜ī1rÍ _XųĀĄ<æņÕâ44°öÎ ûõüE C‡äīk`ņü ŠÛŒĶnÆé_2õc.‘ĀßaüôŸEûý„3ãA(”`4>Š—ãGā7$ę?„›ë§kÓ}ÆÍîßÝN>ĩė€K.Ý@ZŦĪēė ėš9ØãŋŠ8Íh?yōæÃėëĻÏ&"ôĨ2fņēUbY āí ŪŋôÏŊE―lN ŸõŲé,ĸâ*|_ĸ?Ûķ§ŠpĨ­-óŧßĸV:ævāLw[ҊĢbQXŠĨī2KL‘ŋjŧŠé5Į°%ģ‰lÅ·ŒÝ=&1#ĶãÍÔ;#°Å&€l5ŋ|ægōë§~a,Ë"âs/|aÕsnžÁēÏŊ<dĮūé7}@ß~?ÞÕeųo=q/ß_ųÄŋO?§ÍŒšņ1‰U_„;ð[tÐQÜéËZžËþ’UæÓ;i[ýļŲÔ„īŪ™Xœū”>jd›öąÁIL ãG&ð0&…m `<KŠ9ļôïYÛ!ģëæ€Þdčæą' ƒ5ČWûš”Ũįĩü‹Ŧ˜uÓ4–aĩ;įģ3Ū7ĘĪnpģŪyzņSēsŨsŅÜũČŽ†ã‰‘ci}pœUJxð„�C­SĮīęĢéũúČę nÆŊ I°“TX$TMD`a+z2懏|_–ŽyΈ‰(ÜDþiŲįWÝuÆĮšč=LT:O―šHņü—Åwņ:ā[›–~ûœėĀz3ņÄŊāTĸƒø™§ðó/…ĩ°ĄĪ=f7°e9bYÜfO)ČjMï)óéüÄwY%[îĩÄ5mŧvĘ@Š/d)ڟ;üM”{*ßu@ŊßËōž2 *ųŧ:Āō/Ž&ē–™Ų7Nĸ$6+”Rĸ­ÍڕkļsŨ9vÆqžgîûgMĀ <|üКúįQeŒ!Úhląiˆ7†ā/áÉ+tÜåuĮrĻŪŪá‡ūįW='›vl41;&"’.Zöđ•ūåæéüXþųU‡Í9›7ß§ÎgÕĒŧļ͝;ŨüþĒLï:fžũSĻ<° ēKà 6Ģ‹Íîð w1ޜ7Ÿ—J?§VV„VII{Oŧš{‡ą„‡A‚û |õþ~„ léŋK ,ûüJfv:/|qU~öÍ3nģcîQbUũöôšÅO-’—VūhN›{šœ;õZbĢpĩ[Ō–ŠËîšč ôūŧ{nq'Ɠįū?ßÃŪΝ�&f;žd Xþ…UŦfÝ4ÏF�/ģėó‹ ï~úÞãđ<ÐßąæâĨžcŽ=įĮâTaGüėâbč"Ņ0ÅžE™|ŊĩŧÛЖ„įÐ”ą Aßīų5c^7%֒óžóðÚčÞā5į–ģŒ1?Ž$n0äģyáșsÏ⌱o§Đj$ 'c9Ņ\úðm0x‡x äúŲÚģ™ïýé;Ķc{‡TUTzýƘ?ØķóKžėF!ÅažžXæÄNû'X|'?6ÂĨądģsô™ß2ÉÚãÅË<eüĖ“‚qÃFÕŲ1$G|„þÎ5Ž}úFüLïY§~ˆG ï[ TøÂĸü|Ez!e­ĩïûށũ’QОīvŊ*Éņāŧ:j=;DY<ũGŒáår99cøÄeįŋęšâĄ&Ŧ71ČYöđ0ņ5ëĶi%W`˜."•Zk<ÏC+m ™0q"'Œ;Ņī֌—J§Š8ęķ~k<í™ū\Ÿžļýž[ųŽéííÁũ}I:I”Ĩ0†0kDäĸ,ûÜĘ%�ģožÎ ‡Đ%ßÓZž9õjĖĒ…üģøBĒēŠvŌI LݘwJÛ€›ú FũG1{XkO6\[ôū2 ÃOĻpdý}Xô"ØįÜ4ĢNĢÏ‘‹€w‹4&tÍ?0nāŠķĩIÆ·ĄŽ°ßøĪý~60ŽåģãbYАĄß ü ä·/|~å#…ÏÔZŋ),ų°`ãvÝÅûĩÏwbÉxÓøŲ5-ÓnĀÍŽ•pž―­8/lļ~Ŋ@?ēŽ�ýõ|IYkÎ-3*ƘāŠč§ØA7löģܟïūƒáQ#f—ĨŽÕKo[DžÃ›āíEwqĒ xÐrŽ–‘Ï3“Nųūxéä{1ÃZ$ŪĢŋs kžþ Á ú―fß<)Zøðą10q`$0ŒF&"s@ŧ1fGĪ#―R„^˜üō/ŪJßûÍæĶï5fŋ3lŠxâ.šEóBscëÉfęÉßmãöþX‚üj’MŸ ŋs5kŸþė‹~dūŪýl/kŅ]%ŋ/dÕcĸƒYņČÉ:ßûãįV™ôˍ›úƒéÚômóŨŸÔ˜Åwpæ‘ŧęČ:ēތ`ŋžüfėŋ}ôûø+þ8ÝĪÚïÕA~…ņēϛ΍ß8ô7ųRGNÁßũšw9HĪLl{žÛ‰ó•öÍŦôęEŸ’ö?b9U†ƒob=ēŽ�ýČzĢŨÛ>Nŋü·Ú1.Mũîdõ“7ë]Ŧū#ķS}éoō%GNÁ‘UX…Ō[䯟 ,ē„Đ9Eú;6āįŌgz͑dÜ‹~d―ĐWäO„*0‹aŠįæR[^Âͧœ #@?ēþ–ÖiŨKpk•bĶeąJŽø~G€~dým‚ýĐÃĐóŲDĀ9– õŽ�ýČú\A�‹ï„S?Ä6Þg ˎœ•#ëČú]‹þn:Žœ7ãúĸ@t"ðbMé����IENDŪB`‚����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/qhimdtransfer_128.png�������������������������������������0000664�0000000�0000000�00000040353�12262477515�0024511�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���€���€���Ã>aË���gAMA��ą üa���bKGD���c�%øÖA��� pHYs��Ä��Ä•+���tIMEŲ 5äÖ���tEXtComment�Created with GIMPW�� �IDATxÚė―wœ]g}įĸþ>§Ü:}43ęÅj–-wŲØ–ÁĮ8Øī]HÖ&°’ ac#ɒؑ)$!K`gC*›žPlãÞŦ\dKV/S4åÞđí”įy~œsïܑF͆Ÿ­3ŊûԌæÞ3įœoĸ|œ>N§ÓĮéãôqú8}œ>N§ïßņ‰›p?qîŦų7ÕéĮþƒsá]FøØ7Q<Í�ŊÃC ‹å ŋuÃMĖ;Í�ŊģÃZŒ("cųĻĩüŅ 7ąė4žžL€ÏÍÚukŊÄũ―Ÿī–ŋļņf.:Í�Ŋ þ{Ι?ÁÕoŲd3gĢ1üå7óÎÓ ð:b%>ŦW\Ëŧßņy[(äWk͗nž™žf€Ũ‰+("4 ™?p‘üÄŧŋLĸАÖüލ7óņÓ ð:°J\*õÝžļįktæō_ÞņŧdÉšĒ1|ö†›øô7“;Í�Ŋå`q™ŪíáųÝ_Åsórí[7ÛĩkŪ@ĸÛ~놛č?Í�ŊEōKjåŌ'xaÏŨ04äÍoīį­ĸQ<Ïý˜ĩüÁ 7ąü4ž5€HúŊƒ‡0.ģ}ßßSo”Ë6|Ø^ēágl&ãŋŨZūzãÍl8Í�Ŋ5'0eic‚XWŲ=üL”ž• Î~/oūâ—m.ŸŋRkþüƛų‘—ûŨŽšxXwÝŌ"ōkí|ŅÖÚÓīyŲj]HŸ_Ø""_öÖ]“G#ĸ (ƒE!âĒuĀþąïDS翌·S(Ėģ·ũ·ÏŸĸ73ļy_zÅ °îúĨCbåÞb­-`qŒ53(ÅëŨ/{ųÎ―ĩĐ4c‰€ß<ëúĨŸyöÖÝ_8ė­Ō.ý lúģM~ķhF'%ˆ&YąðÝōÎk~‡ï|ũĶ…{ũïøė7Óģy·žė[;ëúeK[7[k%äú3ä3yܜ;wĖráMō­=ɇũĘBŠ“―f{J/"ýļķÄąĶVŪLG‚ēŽþėĩŦöþmĪ9C„>mxc!Ũņã?öÎ?užŒfũðblŒĩ‹Ŧ1Vc4đė<V/yŸ­ŨĮåŪû—mÛģŽÃM"üÖæM'Å�ëŪ_ę rģĩöWX~á{ÉåË`q…;ëŅNÄï…y°'D,{Šĸæ‘,pÄß°sģŠ=ƒMŨxéÉû˜Úú―™š-úV… °Xōđ~ôšÏ[Į dũČ7ą&ÆbR&ÐXŦ“ï­ÁÚÏí`õŌũbīķũ?üEynëí�üú-Ÿdę„āŽë–]`ąß0Ú ŪÝļĘūqãĨËëÆbŅV“˜û2 5·Z<.IíĐ!ōɝcöŧ_ķöOâ9lXGWÆĐėz˜ÆþgČ(!—ëĨØ9Äāž3éë]IwįbŠųyd28ĘĮũŠL”·°gä[3 Å�‰&H˜"ŅŽĘąrá{ðýnûðΖgþMâ8ú[āã·|’}'äXėJkí`Ą/oÏ;ë|éÉôbĨW™ŽĶMx”‡!§Næí)<ÝЀä^Ūàëč‰č=OÃØNúš—ērõÛYūl#K^Lą0H7ˆâ*q\G›€HOԈ"jT[dÓĀ&áĄI.Ņ&ŽbŽŦlßĸu– ^-—]ôA›ËtÛĮŸú۟ŽŨk ož™Ÿßž‰§ĐΚn™üĒÖúsKÖ,ķïļöZéîėĄUĐÄ [ÞééãøÄ7“w=ŽŲũKœÃŠUWģjŲ[čé^J=§Z?H##ˆ' Ģé„ tkãĪ(�_1˜–Ä›–ä7MA"8š šÂC―—ētč*ķíļÓ>ðČWĪTšzÁuųå͛øĢk€„šūĩ–|>/ū—AáPKļâ+Z<}īŦ|k‰ö>Cíų;čËtsņ›7ąrŲ[éėdēü{†ŋMNÆÓ 1ĀQ>Öš€AĩÚīÎÝÔmh8Ņ•úÞ•Ķ_dšķ›ģ–ĸŽ óėÝüņšáá}_ūņfųôæMö+Į -€ë9ļŽ›pģĩ)œ>ŽG|kbęÛ ōÂ―Ž_}—møyæõ­frúyvx”(ŪĒMâ˜+qąĒ°Fc0mąūÅķÚķB@°$ĸΠ….ÕÆJ•mÄšŅšmö~›F0ÂyŦUŪ~˧đįÁ?\ðŌKÏüî7Óx˜čnųDŽrqEá8.§ ŠóĻžxÁķļâǟåŌ‹>Œ%bÏðÆŽą6%ž5X1ĐD+̄ļ" ÁÛ!!iúÝIāhI!ba<ÁäôVŒ‰f|…ôsÖZÆĶžâgn`ÃÚ_ģo―b“äģ_ėzöųŧ놛čá7šaĒ{ļó#Í/QļâžōPë5H}ŠÛ Üö�—]üsžņ ŋDĐēąÉĮ1V'hž8€ÁZbSP'ސŠxJÜÄÛ”Ļ­_5m‹fĒžkã6‰<VjûļËŊʅk?ißxéG%›épŸzæßoī–ūnâWnų$ÓîáNŒĩöĪp›~―.{Q4ö?KõŲïpþyïåĘK…ąĐ§8TzŽAÄE”ĒÞ4Å˞ĀŲnmÕÚ^âļš Œ"Į=WlęXkŽM°Ä-“?I m5‘ŽišÆd0N Ŋ+ ëči*þŦÏx3o{ã'94ĩ…ąĐĮ[Ä·Ö`ˌÓ—Ģá ģ‘ˆ#ßcLHĩq0Õ.rTč ÅÜ"Î_ýŦ֑đũá?aËģw†žËgEä3›7ŲðhŠk Æ&pãÜŌ-šÁžęKÄ&Æ1~€"ųW ę'žīh“qQԂ)kŸļ[æw/åę·|†J}Ģ“`l„ˆ˜4†7XiÅĶČķ·Đã$šĩJ)jÁq\=ęí$<Ķ·ëlÎ[õ1Ē0”ŧþ=ķūøHÅũļI)ųėoÂę9Ā&ũkÐVĢ‚þ)QŒĢØ$J°}dĒģՐĢܜ“0ŒĖVM­0æ0bGįâæ­Û9$Ąí!Îpžýû”›]G0ÆīĪŪųō=ÕöVKëä<\WP“åÚ@.ĢČúJށiÏšeWíxĖÉÔë\õöO‘ÉäŲyā;ÄšŽRތ―G‰ °)ņ[ņ|óŲĘĖuÍūOÛĶ%šZ#ĒB›pNę'‚Ŧ™ßw)ëWþåŌA{ïCĸGvíyūœņđaó&ūxøģ<Š °4ˆđá_m5JpŪ™'?ėŸ'Æõ›bŌĘi'īV€jfÄ•(á―Îþ#ĶE{i>‚ĶZ“HXSJR@Īųšß‹[·ĪŊ;OE8J1^GÁƒOíE‰ bĐ—Ž_Ö ”ðâ΃Üûø>JuapþŒoéęķœ{FÏ5UšŅƒ/qÎYïféĒËŲ?v'õÆĘÉĪ?―u+­įŨŒųmzíЌš„·-Ðž‡DØ–CØKŅäaÏm†øË⁷qödxô9{Ï_”ąą―eÏãú͛ø‡cBÁíŌĪ­AķņÜ `Uz‰+”ϋEl#+"’pŪJĨ$FQXQ‰ˌäÝŰmï™Q™‚N§MrĪÉ,éCIB&xėÅ}4!Kô`­ÅÉĖ'#z~/û‡Ë,[Ô͙+æņÂÞ1V.é!2†Ŋßþĸô­Į‰ã€üôUüŸ|ˆB!oüęurÝ;.ð vĮ^ķáÃR­`žôJđЍŸŅZķMÚæĸĨ `R4ÏX$|RīoKę=Κ#Į‰â ‡Ũņ4Ó͋Ŋæė3>ĀÎ=ũÛûüē”JĢãŽÃŧ6oâþãæfyõV·Áđ đMÕ2JSÁJj'Sg' d›?‹Õ)āĄZD=š+3„OĨ^lSډßTMbÛÄE1Ëö22>MĐŌ`ÅĒnš:ē õY<ÔÉöÝã<ĸŌ(ïšr &ežģŨ.Ãï9ƒgž}ŽGžfšR§FR.MÛCõý2=ą›óÖ―‡B~€]Ãĸ–Šü$>1éõŠ6ü~†9Áē~?Ųė<ē~·Ũ+â(?az+Œ—·°ėŪôãBUĐ6†0Ŋ Ã+– ūģÎø /ūôm{ĸC&Õji?īy/œP2h­M_ip Ņ�*‘QŦšxX!ŒÆ*E“)Ū. ĖQU@3`2Hz ķ-Ɲ!~Sꛒ#­ïĩüŨwœŸØÞÔ3NÏÂĩWŪkđęŌ3âƒÖÉyŪšd>kFžíŌĄ4]įŠ‹Ũ2ØŅāŌõ‹å™‘û™Ķ9gÝ{$ˆ&˜ŪíB‰7#Ý6AôŒXÄķÍđöžz;ÎĪģļGe[ŨUŦO0qh/ĩ` k5‹æ_håKóš,†F4NMĪz­ø+ž‹ĩKŊģ[·}Cîyā‹ŌhÔ·ˆâ·lbũņœ]ũHâkbá…æč>€#." Ž$ ‘ČKg˜ĀŖØX|ÏÁuÂ0&ֆ\ÖKĻYŲv„Q„R k ˆ uâU{nbf$†ø3ęÖīĪéK4M6ņ?$er™e‡lˆ/Č`Í(ôjÞ°ī‹é˜Ĩ] ŪḚ̄ņŌ“-ĮŪÝąĩ6p$Ïí`^υtä–ëŅŅŲąë.ví{„áąįm#BGĻZ‹ŸËš…Ÿzũmâgi…ŒZŨ)U^JAĨ™{TĘgåǟ`åÂ·Ï―øŊrŨ}DÛ{•â}›O€øGŅ�ŌrFīÕsÆŦ’J™XÕôR›ÍŒóbgīÉ]žČŽ―ãŽ[9ŸģVÍįŪ‡·3rhšĸþ_Þ@.ãÍ ð<‡―ã9ú:Øwp’þž"ÛvŌӕį’s—ēhĻcgˆÚDšžtK;4™ÂÚmk9ĄĐFH…ĶWnbމ“Š;s=F’;,ÕĮ™ŽģúėÆsģ”ŠÛŌŦÖĐĐS-č֊ŕÝŦęŧ”ōôO=ũw<ąåoØ3ēƒH`Ē’ĢÔ(ØØtÝsýđĢ?õÔ0?åš™ßņģ’„tS՗ĢRa€ą1ūÛÉÚĨŨą°ĸ-vËÖĸ'wßũ%Žåߕâ#›7ąįDÃÝđÃ@R`w·1€MKEĄRlښŦûžĻa›–ý#%ĒXóÜķƒl}i˜Îb–Ŧ._ƒŦ„FĮ‰60ADoWžmŧFyiũ{NpîڅLLUé(dxðÉ]žûŠsŌ8}?Ē)Õ)j–hÝ"ķŀŅĢSsĪ5kõ,-$íEÖĒ”Ãt0E%œbh`=‘IŌļ3 ÄĖz‚ūÓÉüūËčîXÍsÛþGŸļ•wŋČī[`Ę[ĘĪtRŠD•H vÁû>ČøĮ?Ã"ąÍ0‚éÚnĘÕĻ4)§MH!;ŸuË?@_įđöҧþ\zėoø+ĨäW6oēÃ'ƒŒļsƒī57ýÚ9ņfAP6ąÕq}ŠX ǜ$ɑ–:%No FsîY yqŨ8ƒýœyÆ�Qlyčé}ėžâÍoXMĨpũ#ÛyÛekP",_ÜO_OĢ YV,égįÞqĒXã{jÆ[66Ж1&ņ/LZ=clŦzӌ―MKÍąJ4@5(cč(,ĪŒī˜&qrMĐuÝ į―‘Bn!ß}`3>þ—Ļ8ė* QëėÆõ<”ĩd ‚Đ€ŪŽũœÝëĻgRýŠ0ĶAĐō“Ó[Ór10:Ī찜ģV|ˆBvą―ũĄ/Ȗgŋ…Rü‘ˆ|zó&;ÅIGæ�c’ð$)›ēLŌÄ3ķÛÄut›-Iž`m ëŽ[ÖÅÅk‹tøßļï%žxv/ïĸ‘ĩĖï):.Žž$ïÖ/ÏŅáÕ(OWyÚUlß3ÉSÛFØšs’ÉR…ËÖ Ē ĒЁŪÍýó҉z2‡ķ†jX&—ïÅũ 4‚ # Đã7“đėđ„ŽÂRþóÎMlŲō ô‚ĩėĻF§C:;@Ĩ•‚Q"âõæ‹”$• ÚDÔë{™Šlk cš;VsÎƟĮ‘{į―ŋ'/í|ĨøĪŋŋy“­ŋlÔ=ČĢm|T kĮĮ!‚”r Õ[íp26‰Xßąq1Yß! ę,Ęōž+SkD8ķÁžn‡î<Æ6p]X―8ķÆuŨŪ ˜ 9siŽåC‹ĻmD)Ą·3‹Žj'œ°:YB•LDŨČfšpŸJ0ÅĪŲš„ጉéíZÏ`ïÜõÐïðÜģßĀ;ãÔŌ 4vލÃlīŊĐtŽĩJ‰-(ÁEe"*mÎĐĄŧc įŊþ8QŲÛïûŽėÝĸ4ïák›7―ÜûšÓhŦŅFšč(@Åo5ϊ5:ĘÉ3w. ·#CŅá‰bQĄT€TĶĒĀ`O.e}‡BÆĄŊ33ã+ž\įĐa�kŅ:Æu3ˆrŅ:œ1%"XcðÜ"ý]gąïĀÃlŲōÏ4zčXŧ‘°$ s Ú “Zk%JĪ(-gĶ0Īŧļš‹Îü5ŠÕq{Į=ŋ'Ã#/āĮEø—Í›ˆ_É}đsĨJLęĀŅKūÕļ*1š“ŠŪLˆ1þk15,FGŒx1“Vë8–F1ÉÏųėÅü"îļëĻ6JTÎĸa $xƜ‰ÝB8ãP;‡ŒeĐs‡ôvžÉ†3?m§Ęûä;wÝ"ĢĢ{ʎÃ{7oâßNÅ―Í kÐčī$yn‚ÖĒ*~&ƒ ŌPÖ{DMķ°šŨf݇Áz–•:Ƅ8â%‰“ēˆr(æ12ķŅŅįĐ,Yq―L›#œ0fņ§4üÍ ŧôŲ\ÜÎ�―8oÕŊØņ‰íō­;ob|btŸëōĄÍ›øÆĐš­Ģ &uÍ15Ād0NÁíĀ·IõŨlé°Áš> LŽ<·&`’ÃSE đųžðÂÝL7& Ö%N43Úôð#ŠéĶÐėM^%ĄsLOŨ™,šũVö ?.ßųîoS.—·šŪ|tó&û­Sy_ĮÄī‰YíĮšF\įõÐ8h•CމČ6& ‚2™\o[ŠŨĒÏédbâ%ʅ‘Ģ!ÂīŌĖíâĄƒc­ýũÃĐБ_Ė /}ËÞußI­^Ôuå—6oēũęû:J60FY!ēņœ@Ðëō°–(“aKĐr€ĨÝ&U9ÖbÅĒ”‹Ö†zm‚FąƒH ÖFcŽ€ÔE Đ°Đ1ųÚėJËSÏ~Ý>ðčmÁíŪÃG7oēÏ~/nëĻŲ@$éāÓUÁĐ ÐņÉŠ =ÊĨoAđ]„ádęá+Œ1ÄQƒ8ã§…I8zõi Ũ4qU[k­ˆČĸ{öÖ]fh/<úäŨŲ*aüRüęæM‰‰xU ™î•tzššádägŧúØ=ōÆ š:Ïfßø―( JŅ:Ŧ„ØQitk“š Ģ[•-ÖX“F"kí íÂÅ!{ũ=…ĩüqZū=þ―ž­ĢDąÍRŠÓ Ðî6:zØŧïyÆĶķ1Ôw!/ß‡BŌ·ĘæÁŒaĩNĄCû|…Ædˆ‰­Męiä>{ëŪáv°ÖúĀ-ĀM·|’éïõ=đ‡‡&IM E0mįÄÍ_·‡Ljū—§^úWŪžũiæuÏþÉĮh˜‡LŪ™ÚŽ V„ІÄDÍ"ŦC#Iä'ĸ`­ýōĀÐŊŸŧå“4^[:*,–Dœöf?qĻuðôðý\PÞÁōyWē§ô•8 ŠŦtt."7þ­1Ęi=??ãĨUt‚ĩö~kíŸŧm·>ŒŋþÞZô-Ÿ|õ<o`āünļÔûķÎÁ"ý‹z@YJÕRšQãôŦų2 kjĨíŽ]ô6”Ęr°žžßCÎÉģ{ä)&]#đLÄԘ(í›F”DĀGžŧmũ–Éqïí˜ûîxumîa ĀÛ: ô.ęÁ LWʧ >ĮË"h'CĐī_ Ë.aē1F5šf^Į Œoa"ŽđY<ßÅq\”+LíŸķ:ЎRjõĀųݕyįu…įũĻyįuEcO–ū/ķö Ð1X oQâ@đV>mŽb ŒrЎÏčä ýæwŊcēqåeŅqƒąĐ]Ô― V ßĮÉ8ĻŽPĐĄģáā2ā­"ē}ėÉĐýߏ;9Fï· ŽžöAūķ ėÉÍ;ŌųĨHqïÁos‘2tæPŽ*tũŊĄ{r ÕļNC{Ä:Æs|Îč/ë1ōĖ!;} –ސžęĸýĀ0€ˆ Ŋƒ Ē‚J„‰,Ž/øĒäØÅ$J°Ú”bę!ÔU@ßÅú…čÎÎCۘÁó84üqPqŠtį<ĮĢoq/݃]R›Šģõ;°Æ†ðýƒ[Ý9"­õSŊY Ð,­ŽDå™tzh-a9&7/ƒWpŽžõīŦ)šŽĐ 0qōŽØU.15ý g.?‹Ū\7&ÛI_Ï Ó{°aHIĶ)f xއ“uą™ˆgqÄ|€fMšRJfZļŽ “ÛV-ĩ3õ‚Íšýđ{�Ÿ9ķmÝA§2Ól­Ĩ6`ƒ“QG4ZÔĮtā’éögF0ŒN€œĻ#ŽāšjÖįĶŠužØõ4Ë.§) ōýlƒr0…‰CĘ&&—ÉSČŌ’đæ}ýĀ0Ā‘Šîð!ūʰŽc%aĒ%ĶNRŠ&ĄÓïĒĮëĢ :0Ę0Œ2ŒSŨuúēóXZ<ƒáú~Fjh6—ŽęZG9œ"ŒCrƒėŪî WqÅcMũ،ŨÆnėMR^đ͏Ę1Ē7įPė*ēx` ]đnĶeöîĨ\*a54&‚Äys•7DÏÍ)ēų Ņ_ ÐuöíãÐÄ!tĪŲ;ĩ‹ūî~ō^‘B~€ČqĻEŽ4ëgũA8iŋܓ_'—Ëā‰ÂÓĮ(ˆ,:h؈8Ūn|ĸ+Ŧ�:>HRÐКN`{ŽĀšs=üŌ9ŋÆö‘xtĮCŽ›6į-ŋˆÏmųuōn]ð^†G°íÐó u,dÚKyļ|7―ã+œ7o?·úW9PÛËŨv~‘ĮĮÄS]ĸ)îūƒ;ķ“Ūû8ũ”ŋÉ?íųkÞķðZÞ9ï'đéÁO@VNÉĪ2“Vá8ū"SðY6īœĨųtû}”üI”ĢØ)ÛiÔ-tÎDÉgÜLRũïf‹ģžxŲÔu Oy'fjr ŦĄOJ@ŅëĪ#ۍãšTârúLÛ{…ØŠ˜.–-*—#įįčt3td}ܜÄ1Ač<ôWL5&kuęoĸŸŊÜw˜Óh*9ž RĨj―Ũ)Đ &‹#lķŽ­Í€Ėįęïâ…}ÏógÏýNAh l™~+ŸzÓfžœx„ČDlÚÂãŧæG―ūė<ū{ð?ĐEŒ^h<͟<ņYŪ?ï#Ø%ð†â›øÍ{o`v'956SŽÅÉ8ˆgČä}|2äÜÝ~ąÉĻ ^Î#>JĨ1/įã‹OÖÉÓíũāÄ.ūĘâų>nÁøQĄ ˜ ‘sōdT–Ŋ‹4 Ð.o4ŊøY4P―ý‹Ôœ•l†žLŽEūOŸŸÃÍæ1aH\ŊĒ3uÜų§ėó‡˜<å&@‰B‰CsRX[6Īųqo*GCB~ũßdĘãmáĩôõũŌ5XĪŨÉg3˟?„ķšōt‰yŲA|ßãîĐoņÔðcüĖybáŠĨi3­%ŸÏņLíQ8ø]Þ·þC|æîģßÛIÖ˞<B$ŅjNVAARÕÓLãkĻDe*q…°Ą|•˜ĀÃÏâ(ĶĶŦ”ÂIŠG`TĢi‚0@œžƒRŠåšÔã4ð”OÞ-wōØ#†ĸĖoý9,Édņę]_b*“c‘ßāėl‘Þ\Aūƒ°VbĐëÜũį<ÓĻąý­Ķ|ĘL@óšTŦáaÆpÄĨ3ÓÃĻ>ĀÁý:ĀÍšøŪĮĸ}ôK\ŧôĮļaýos(Ķ'Ûe‡Ï}ã7Ų—ŲÉŲîyäÝ"ÝÝ]l{†?zl3ŨŊúV,X͖ĐĮĀ ™žOŲÄSÃî^rđ\[sé)°yŽ‹…U†ōx•Q&hč:‡*c€b.rŽô9ŽcĐLÖŊŒ!“Ņ8ą‰™ĻĒZ­âg<2ūOŽ4ÕĄiā—ŽÍĒDá(‡HGĮž·7ý*wü /ƚņ(â’ĻÁųÅnĒÞAFsz˓žĮõŲņÝ/sϕ`ÛËp‰āŽë—ųĀĮtŽ{ņđ Xų:Ïá@uÏlɰpÐĮ#Te–“n€I3%ˆ6�§S0ý!âZlŲÁN)ԐßĒcSÎĀ”ƒíŠ‘þ$7bË Æ<XÜ@ÜS H(QxN%ŠÉņI‚z?ïãx:Ō4j!…BžŽŪŽĢNāš.MSŪâe]œŒ“`õW9ôôuã8 ]?BkY,Y'GÁë Ļ<øŨO cŠČO={ëŪ<Þĩßõe2ŪËeŲ<Ũtôïâ…8$7uˆÅÓSčĸ‡ÜýæxŸ€;GėÕęû›ËéX5›įfG1ЧQ―3-Ņ�JĨ^E‡…Ēn;s]z4ķ;FĩõŌKŅb á1Ûĩ^IčâāˆĮžþ&ÆĮ˜.W[Ä.vééîA93ģLÖĶ7ÔÛӇ#ŠĐÉRĒĻ?ëÓßŨïgu0ũģk-™0ũ$4ۛ>@�ÜyÏW‰ĩáŋi#W -ézaÞâLÍ/ÔįO—?RŊēøî/óõ7~ ye/' H/Ó7ąUGčŒã锓øœä9ND&&įpÄ%?X$î ÃŨsņÝLú>CCŨĐGĩÖ8œŽ“%ëæPâï+0Ŋg PJ‘õģÉāfҰ5ĨŽüÛJJ―爿ŠũsÏÝ·’ûsžÏ%K—č[˜Q~vī8šũĨũŨ§Ãyw}•?}ÓûïļGJīq^{Aét‘ZTĄÓïÆU.ĮÉęĪ�� �IDAT§čKk@V TĒ2ÚhDĪ5.7Ð bQô;ð,ūãSð‹­^ŠČDÔâZĒe”3'°åĪ;€DĐYZōd7^Ïwîþ*ƒ#SÍvÖ;š—Vz,ĮęÞņčÏTËә{nåŪļžĘ1Mâ’—6V6:―&s�"hŦ™ÆĐDe‚ļAĪ#‚ļA)˜ĪNaÚNīÎ`(…S”ƒĐäsqHTÂ2Ĩ`mîԉH‹O…\―ņýüeØāŪą―;–ÄQfūĩŌÛ5xCŦ~Ļ+Wčø ūũVqNŌīMŽģö5ŸŪEŠTÚ`ðãú@7hčzÛįNÐvÍę`>& þĪQĐýÐÄÁ]K†VޟˆjÏDÝCoÁčLŨÞgþöcQĻĮ€ÛNLĪČ­É–’f_Ë/ÕÂ=”Ļ“úėėÏĸģ3ČÛ―Wx\q;ãHĸCųО­öcŦŰô^ĸ’Ŧd`Å;z°|ęÞ[eà 3@ģ7Ļ5ŨîôŨ)ĸ2é$ÖSĨ[­áĸĩ’ŪNW:Üė™―qýĄbÜx23īæ―NĄgų2cíæ“`€öĄĨ§ŋNåWóŲÚ#L@ōý―·ĄîđïeðĀHTŪ—GÄɜ™ÕUhLü™ï(ã,9ũCŽÕlļũÖđŨÏ7ЖÓ_§ėëhV\[1ÖâZ˧€wœ|a ĩ8  Š#ā ‰8buM‚ŌßJąw-= Îé0†ũÝ{ۑ>ߜ!ÍYķĮę>}ž\bö3ĩVXT{û·�ŋ(|TCh {u41>H6I{Oĸ ~ŨOŲÁ•ï’‰OŊÅĸrÜdP2réĸ_ ÐÜšÝîŒÏ ·šĩ‡/ą|•oŊ9x34ĄÓÝĸķjüE–u"L―œĮmūjtˆĩÍ`­&Ū|KŠ―o%ßŲ3ÔĻL^yB ÐþPäī8°9ķIlĢ-:ˆÐ‘ÁÄ­“­Ngŧ‚rŽŦPŪÂņ܌ÓÂŽgÆĩ|oQČtĪ1Â@.âĮ—ĐóįŦu~ÏųL ?%6~)þļÍÍÝDĩ;ČÞiŧϗå;Κũ67^ĮČą`ü€i€ī F9ÉDģF)$˜Ķ#ÂjHT‰:!þŽQó’TeÜŽƒŸũČ}ülW/ëĪ#íėũŽN\ÁP\ĢQÞēz˜ģ]Ïz?đâbĶ>ņēžķX<EĘÉĒTŌ–ÞžíJRė?^žcđĩŽ€ã0€më‚ø‚›tQ FQŦS­”CÂZDęûŠ,~Î'ëfQ)œéFØ Q‹šPŸJâ7į’éðČõdčĘãå―dvÏĐv“N‹”ÃŌé―\8ņ( †2,>ĸéYx%ĨáGąŦ^Æ@kȉÃE~Ū‘*˜ú,dŨF;Éáú,2†EĮÉÎØÅ˜}@ÍBS%ÔKSŧĘ4J!qCĢu2|ĄŦ·“C čëë§ŧ؍įú8)@ӜÁŊĶÚĻ1Ygdt”ƒÃhTĒzD}2`zļFĮü<݋;Ž[~ōZKˆÅaMyFŸfĻÐɊ‹o Ð{q°7ß7pTödŦÄ- š~þMųŪå˜xÖLώ2Ē}8ÞųøđbŪ^ĐĖ;ūpXøýĩõ3s€'w•™Ú]ÁD­5âšĩŦYĩ|5=Å^”R8ŽsĖâŅ~,‹‡ĢWjĒ8bïČnķūļ•ąƒ‡0ÚÕĘTG ŽëÁÏ{'ļ˜éØÎŠ•daԚĘA.yŠĄÞEŽØp#ŲâBęÃŋ†ŨņÈt‹*Ü;ïžŊüô=‹þ— ~ëĸō…ãþÞÛPÆð?ÛKgĸzŦĸ)F—gës=Žō2Öõ‹‚­ô; „ÖĻØïŋĢ—<|F·NPŪ·ZØŨŽ]Ãë/$įįætV'\û~G98ĘÁũ|Ö,=“UKÖ°ot<þ(åÉ2RĀއG:ŦÂžÜ+b+‚XËĘę0WŽ<ÍžÁ•,ŧðãdr―T‡îÆëļ†Ö4kq:\å^ä†ĸqĸmōð~⠗ýõ}ĮāŊeJÉĮ:æ­!ÛQ :üÂïĐ#âǜ,@ážŋĀđ⧓ĐĪjN[õ}ýšá™ˆ‡1ûŸcú` zúzļöíŨrņ7’ÏäĐīï:œÚG9,Ÿ?rõrÖúģņüÄ8øäSûĶg-:)ÉkXU=ČÕ#O38Ë/š?›Ģrðãč`G[6ņá]ĮÃw2’qē6Ŧē <Įŧũ—ūþgæúũ܊ ü•ŸëfášwÛĻú„čāųĢD3VhŪģ‰gÔšâð+  b<qˆÆd€ëŧŽZ―ŠkÞr úÎ,hßė•‚X&ݟ#’Ô48m‰ž&øįĩŅxŽĮåndãeéęî%Ú:ÅÄîōIk#‚k4g•ũrÍč3ô,š€eý/\/Ē6ü)LīgN7ŨŸŒĘâŦ ū“ąūĘā+ï ›ûțSý9āOW]ēpíÛmĶ0_ÂĘw°šqņEē`ĩM·Œ66^?Ó[āO ŋN DfxË8A9ÄËzŽ?k=įŪ;…"Öq+Ã63ĮČâŦ,y·@FeÉļY2*‹§ž4ŧĐ uH`:HŠ}â*‘ ÓÍ'ÉđĒ0dՒÕtutōĀ#rðĀA&_*Ģ”ÐĩļxBQą!g".˜ÚÉ%“ŧč^ū‘%į~1Ļ}í›CJ­(LäcúĘt!#i‹ž#Šę3ŸÞöđŦ>ģęã{o“…ÆØßRŨ qĨ\ųßĪ>ųũÄĩ‡įˆ\qúÐ:V€ŲeäsL Ÿņü[3î^Uâ Z[―0E0Ē\ÅųįžÏúĩį€fĶPÒn7ƒ^ŋŸþė =™>:―nŠn''CÛūąVūÞbĻëÓQ™r8Éxpˆņ`„r8ÕJí†QHŨ�ošėMÜýĀÝėÛŧÉÓ8Y•øæ(#ôX9tDuÞ0đõÓ™·öZŪŧ>Km⋘h™g°€kluÉ䋟;Ø^Æ·öŨETQ‰ē GŽōŨzĩC?ųčŲSėŊû9õĶųŦßÉÂ3V‚ōw §þę(Š_PÞBÂZ…0˜ŽDqčØQ€IW5Üs„Ōîij‡hĢđðü 9{õzŽž―$ķó2C,í8ƒþĖ�^RÞÕTĸņQF܉ūĘПd ;Ä0N0RßÏŪĘKT㠎8Ä:͘ëāō‹/įöðvÆGƙÚ]ÁË{ø—æ<įåm‰•COTåōC[YYgŅųïc⌟@ŨîĒ1ņL<Åąę\-° tðÅß9ĸóßü§?1čˆúeŨņMDOéÅÞĄá­&d:–,Z°æĮč]øC6œþ ĶþkÃĢǘŽwaíĒ€ƒŽËãā�īíŪ{uM€(Ą>P9X#ŽbVœąœs֞ÛrLEc5ŽļŽïūEų%―ŪØ›xV9ōá•Íí͊ÆÁQ.}Ųšü†r yąüjÉX>c …..―č2ūuĮ7iLTFjt/-ÎnÐ(zÃiŪ{ŽĨq‰„ÞÅï œþG‚ĐŊaM(rv"‡Å}‘EŧwþëģÓ‹uąšßÉOïą^XV]Ł3†.þYzž?›·ĩņߕļzorn™.wüųXé畉­‚e—Čė]BGÝš 94Ŋ.laú`•°“-dy×â΃–šu|E·“s{.Ē?;Güt›†å@6ÛÛŨfĘŠ”XÍmh3ÆÁ—nŋ úÞ@—ßà ĨgZ‰›žÎ?ï|xā~ĶÔČõgð‹nc }Q™}š…„ŽļäctÏÁÔWËĸœnų>ĪÐPī†ßŊļüNߨ3nßäó^ūc9݋Þ$Ý .ĄØŧĨ„ļv•_ŦĮŌ―HG?­›ßˆŽęR݂8lÛxŧNj_ÄøjIPŠhL„ÄQÄÆ—“k óŒ5tû―œŨs1ݙNŦČē(Q8â Vk―šmâ\ëbUb&f›:…ƒËęÎuäœ<ON<œĖVŠĨ –ągánîĶvρ—/ĪÝӖÞļĘŧFžd(ÓÅē‹?AŨāSI\{�kOĪ™Ũí\lÏļäc"øEĮëĀϐ)ĖKKČÁęqÂę?Uū‰‰ĮZJŽĮX^ņjĨ]”ĮGʎËG0ČŅ"�ûjû�6é―o”CæÍïgÉВķM`ÐéuqnÏzüÞôšÔŽß·ˆßķžVÚęïm;3§#Y]qgų "‚ÂA›ˆ%…åXkyrōŽ5tŧXąô †‡GĻŽSœŸÃÍ(úĢ ïy’þü�Ë6lĒsðR‚Ō?aÂ8đ ĻL] ŦË­Ĩ—GbųU܌’ūEĀFXSÁč˜ÚĢ„áKčðyL°&Û-ĮÏ\Z ^a#ĒzÝųDxI„oŸˆ}õē€Mõ74Đc5ŦVŽÆóüÖ{|'ÃÚŪõôgæÛ§­jŠÉ MâĮ&ĶĶ+ä7Ûæĸ'ũÔîī˜€8Å’‡ŠDĄ­fiqu]ek)™č68oþþ>F",G,+ÖyĮč“ôvŊ`ų†OPė; ôO诖tC*ˆęBō‰ëcãCGH­ĩšúØį>?ũo'ķœč3Mޟéz/aí cŧÃ]Ŋ;rœ:V-Ā+EóNĪŽžÄš`* _Ė1Ô?„ëĖðæ’ å—™hVõmóZ[’l-=Íßïþ îų„ÃÅm―ÚAĄfž 8é6ÎfQIģ%-61Ŧ:Ö1˜[@lbzš{é흇r…•xįÁ'™Ũ+/ý-Š―ëi”þ™ļņ,VÜt…ž‹Q9ÜÜ(·kN˃fW\Z,,Ší%'Gü& ýÎwĢüÅė}æ6Žaŋ8Ũ[Yz"ŌŦÓíbG4BĶ’ÝīßĮúœĩ–ĻŪ‰1óÉeó­ĸ/zŽę<3ąŨ2Sđß=㉇/~ ÍÛZÚŽʋÜ=ü­ÖŒÞŊZūCŧųh-đķmĩÍĸËęÎģÉĻ ŽōęïįŠÁ ŨĘnæ/―Œ3Þp3ŲŽ%4Jĸ„킸 ‹‹āĒšp2g#*sDK@“Č'MčđSÃ8™dŧ’ÉýũŲņ― Š?Ûx;įtįF�Óý{Į!~ÆÍŌãõۈ‰p<YƘ^7Cđ4jûĻĮĩÖÜ Ïņčņû`<8D‡DÕD ũtũÍf[aÛŠÎuļâ%ËĢ›’ß\Aåɉ‡ÉŧEÎė\rgũ^@ÃÔYRX‘ô62ƒīęųÓíįķIôÔ'°Ė˜dķŊFŠ^‹‹+Ų>õ$™ČígéškXļþ—q=— ô˜ø@đÎķĢ­ `Á Ü…8~<{\ïýe&QnŲÞÔ+vũÓ_„DäwŽ&ÖsNI2‚ö˜Äaan ëšÏĨ—yzâ1ƃŅÖēČyŲAÖũ^D ëÔãÕĻ’ėķ–>€sz/BķL<ÁÞŌNâzŒļP,ņ­5·Ā`vAŦ;wVĀ,ŽÝÍcw’w ļĘeMį؜ŲuˋŦČ9yÍĶ՚Ú-ˈš0[ ĖåXYkqÄcūßG°ũÛtÜÒģŒë~‘A韱š„Hfx/-ŽÓwådÖbMí>!/þdˆ/*KĶįz”ŋÖnŋïKPŦ‰ðß7^gÚ.~Ôt°á؛4ã0NšÓîAÐąÁóĒ0ĒŪëLĢD:ĒĄâÉ9čX·ÚÏAp”"5:īxū‡ïû-韟[” s˜S3 ŪS‹“ýzÆęctx]éöķކ—Ί(LT&~úz†ïfÉ9?Íüĩ?ú áô·ą6@ÄįðÁO‰†ąéžb…`�7w1‘ĐaãąSJülÏûņŠWŲýū”ÆžxũÆëŽ=4Â=Rúí,p.$0ņÚcöMï&2!Ą 84=–ĀĢ>ØČēbõļBl5“ĨÉ$f0‘atz˜-ęq”(”ũa‹‰ Ūx‰šO%Ŋ?;”Jĸ‘ýÚÆ\6ðf n‘NŊ‹3ŧÎ%2aŠþĐY˜:]ÛÖ ›Îigĩ7nH[5ÔD0Æxe'qã�ā8 9@!â͕{ŲtĐĪN\K’åL™Ā+\IT―š•>GŊåą8Eē―ŋ`Ýüēįé/ÉĄÝ·cý9ūsžÓĖ kŦÓ]xG) ģāf=ÆĮƙ*MbMĒā2]>ÖZžĒGc2`å�Xp|‡lOō;ĮwĻ”+lŊū˜-ÆŋābIFŌH›cÔéu'LĨ]ŲLũ6‡ũ)qļ°ïr<q“Ą éŽÂU?Į˜‰Lf`îĶHRCl4Ĩp‚ąÆ0‡‚ŅäY pÖ|•éeïS_EGŽûüŪĸJTųW0fÜÓ,:Ņ�MĸCÏL=īĪLðVâúƒ˜hO‹!gÚ#tå/'Ũĸ1kLŊėyōOÞþïá"ōåŨŋŠįe•„%„Täzēčņ’™{íÎVŪ7ƒIKœ•§ŌÏ \Eķ;CTOvd:LlQ* ŧtšŪ6ŦōÉÂFiß.„&`:<„'>Ý~/F4‘Múî­M**•īĩ ĖLSĶef NS „& nj”ÃãÁ(Á!B"ŪrÉ;y|'K§ŨÃĀEŋ‹îZÏþ-Ÿ#lŒąäœ_%ÓõS„Óĸ‰‡·5JsWÍú„™•ũÍR17)&˜GnS™ŧ<ý0PS”ļdŠŨāvüˆ­Mm—ýÏmæÐÞĮ§—Ï(Įýüå?sbõåîËģ‹ÉÕ)Wð;žĢö(wfRíŌ­$ÉĻIëIáøõr@‡É…)·Í,ŽMēeōqîý·ƒũŪøy·€Áīr� Ī#]ÚRvÉôR…AS*Ôâ*•ļÄD0ÎT8NC7@O<šžnō^‘N·‹ÞL?=™>2*Kl5Ņ9›L7ĢO|†Ļþq–žĸ)Š}?J0ý]LļcĶŦšöÆĄ‰LKsƒÄ$ĖĄüxn:܎‰G°šrd렀rûPÞžü…xÅ·T+vdÛŨåāķĪ>]~Ęõļyãuü'1KŌ=* œXAČ+ŽÚļÝÉ:˜ÐPŦÕÐFcķ†Jk[ęt<ĨW˜ŽJ-Į ZtēŽ:e‚v{ŪDQ §™ŒÆ™K”ĢÓQ‰Ā4’Œ™Rôdúéņ{éōšéðŧép;ņ”ķ1ą˜ŽĘÉ0,ų•ŨÓëu3õÄŊģíū_f酛č]t5aåatð<ÖF °cĨ5u%17Í{Jü“jl�ļ8þ*DõbõXZŲ+ˆÓōâøËqģŦqüå4ĶGíð핉ýHylG øŠëɟnžÎ>sē$pEPûj%ƒxų$’˜*OÉčđf2J –ØjÎí―˜ĒŨEO͟ĒÛ9ŦzI‹n%…Úïa[ųyFĐé*Ą[E%―™yôgčËĖ#ëæÉĐŪrŅVۘ0žNķZķcãôgƒģð* ™.ŠOþov<p#Ņy‡\ų^"§“ļþ˜ ĨĮ“pÏ$#ũŽEĀ•™Tî (w0qÅM'qéΘCååֆíÔČӔFþE*“/I―|ĢųKQÜ*ÂýŊ{ëãgÕŧ51ņtšÕÉNēzđ‡›wp|‡ąņ1ę:ūïšŽ“fũ0Ŧéņ{9ŋũb\ņ’+;ã{Xk12ï;âōĖäãŒ6'õpôø} å2"ãdh˜'ˆ­&ÔAkÕ[’6NžHŋi1ƒÖ1šk5î…7>ó9v?ōâpŠg~QÄÕŧ0ĶŅÖ|x_bs ķÂņ–ĒÜåDÁ>ŽŪĮãÄõq‚Ú~[/í”jijItTEG)cø ŋÅķ+Ūgę=ũ6đ·đÆhĩ'G=Ū~IŸ(j'ãéô™Ÿbē<Igg'SÁCų… ZÐĐMWâ$Ë- „žkƒ}ũT^bļždŅúsCŽïđ€‚SL–9§ŅBlcīҘÔÕÖ`hJ―NKäg~n~Ÿž,:ÓKcÝ/"[ŋÄÞĮþ•YxÖ/áŊ&Ž|kj)(fʈfŧÖ"ŠęÔ vëÝ?/FG-LŨbÄZÖîī–ہTŠéŨø,Āa€ØZ;,"4*  $“ũÉđŲ$[7ū‡Z Íæe™.Ú„bĮŪí,XĀHã�óó‹ûoõ™@TŠåTšt―­ƒ›^ãĖuîŠl.Ŋ› }—$vŸæBĮx†Ð­é)ąIĪ^›Tęgi œšN#ŪcÔŠũ{9â§n#'Y|Î'ņ;ÞI8ýïX=™Aí-w‡ÁFF‹‰k ›ŋÅĀ!`ðĖÆëūw+ä\€įnÛmŨ]·ôE„°1úÓ6Ûé‹Ŧ\rnžŽ›%2ņ1pé(ï2Έ*1ûíĢÚĻ2™'2QZŲ˜óõ›  MÆHðE)š ķ1 ÅĒü2ī Mˆ1ģĨ8Ķđ%=!ēN—f›T45„ķqŦš8ЍÓ(IÏ Šō’kČÄeÏý3qcŒĨÞLĶóGˆ*ßDG{g1ŒCh۟`ÃZþöŠëNÝzøvEäEāëVė{>zH”+ķoAŊøQj†sPݞpíā1œJ …ÎõþzTóÄ 2pņĩė­î`eĮ™É vÛŽŸŅ88Ø6 ĮX8XJáˆÐˆk3õʧW[8Cģ$l–šoiƒ&&6ÚÄ& ĄBÓHœ?å \‡(hD šÆĄ`”áÚ>F#„~†‹VĒwßOTĸ�Ë6l&ŨýÃ0}g’-īzæ‰YƒĖŠŋBĻņÕ;Z ðė­ŧÆŨ]ŋôEÉšnÎÜsŨˆL.*“ï-āynR]̘Õ8ĘaíŨGHį\• G…5-ˆ%ŽE ûöîįĐî'ȝĢ?;D—Ũ= ŨoSŌfS5IŨÝ6!e€R””|Į6j9t:e€vÛ™€ČD„&L_Æ\•Ž~‹ãccĢ:tˆ‘ņaUGoŒŲpĶÎ�áŌ͞ÚB~Ļū~˜ÅüÝCo"R9âúcXSąÉŌii{Žß‡ŽŽYaās·î~xÝõK? J>e­―ĶžŧNigmvĀþ=ôl åú|ž‚ËcO<F>—Ģļķƒuįá*Ŋ-―Ŧ[#íšj_Ī ļÄäÝbRÞmcFð?IXĨ*―đŲŧŲ(™ˆČ„D)“4abĮQėÝc‡ēįF'#åIĮÃÍq?·ãs°wˆw‡ãčøFŽĸĻ·ü=ˆĘKT―cŠ3L0Û |ĸ e‚ûÏš~ŲđeßĪĩÄZžWãâš2,Į‘—w7Zmį?üØ#6ãgĨcMKģ+‘t�oģčģđoÁJs „Īe]CđEėŪūD-ŪēŊš‹‚Û‘0…‰tƒÐiĖŊSP)Ų›ė*—ĒÛIgĶ“?ŋý+vũþRĐU‚éCՇÃÉhĖQŽōÜckę †į'sXúč͎ ƏîŌĻ1fįŊđÞú*'AųßZ`ÏũģN(8Ýg`ÝuKo2ō*ύ ĘQ\˜Ÿ=CDîiÔ…ûšß "o]ëą ģi+ûn%Žl[ĩPš-ĖΧ—8ÔĢUĻĮõÖÆ0Ӟ ÉtxÝôdz)šxŪĮãwŲōÂSbīą"ōuōóĸ_{įW…áoÍ9“ÉL&&3I֔hIÓĪH…ÐÖ“Z%ā ZņĨJ[­xÁņĄ"ĒeŽ/‚HEðĨŌŸŠPH4xĨš4Q&…ķīÆĪik.&icf2™Ė$sÎōa&“ã­Īi…ó?ž§ģØĸÞ{íýŊý/.C\ĸn),0lN‘ĻqûggSŊýzîð ™Ô8UwŋĒž’]’Ž{ōo“㕚t·$î}ģū8HĄŨĢ6ÉĢvRå­Îw6“=wŅKyÎZj1œžĖČĖpþú%ŊŠp›ŧ” §œwiūWԌ•䃎ũčûåŽÚķ-"rôáp(zÝ ›š[ðoĻēŋrMw5T\Člė(îĒ­LĮÓDŋ{.fYėŲö íHÐ$"ßĻŠG\PW_§m|\ę0ÅĖÛī^Ŧ V3g­4ģWH[)\ļðđý ĘēÕBđó― \œčŨÃ_~ČĨß.͗v‰ČƒáPdYĶhO+Ž ŊïXį]ŧõfA)ķ=Eâj?ŅÎ,…-Öo>QÕęL&C ĒDØÜĖ}ÕÛĨÜW™?Ē.4šZ˜q>QžFã°É HÍOÆøþ|—ķĸpL’É$ĶácáPäÉ厧§•—­ Ŋ+ĘŨ6Roq­ÄĮNí|iÅ `ü0Ø5>Tĩ―âSđÓ0ŒęÔtÚÝwþG‰Œ%E Ãe`&nwFÞ=gx™ÏėžrķÚŨf*gdr˜S'õãΏĪóĖqÁÃ0.ÃĄČþϑ6ÂÏ>Á`:™l˜ú*āÖ(ļäĘÅÏÓŠīĩīóģģ,―*šO§Tu‹mÛdė9‚åA­]U'k*kĻ,đ€Ŋ ŋϏŨôåę ēJSs3$R âÉcąQFû‰ö146„Įô`æU CUßï}+zæFĮÓÓĘ6ĩy· ÐŧĐlõýŒ|ģ3öž&g øG"ÔĻę#"ēCU›U5ÛĨK_‘OsŸŧ3·=Øj137C"5Ĩ“‰ß‰MÅ${Î70ÄAh>ū ‡"镊Ĩŧ…uĀ;ĀN‰Đęîͧŧy:øëqĩˆÔĐjģˆ<ĪŠũdÛÎ{ô,ūĐdÁŋ™‘(_ ôÂĄČô͈Ģŧ…U@Ø-ÂŪÆ―ī9øoDðÅ@@DjUu―ˆTåŠę,‰Ŧꈈ\PÕs°ˆ$ÔŌXïÛŅ›n‰ÖÝBĐÏ?5îĨÃ!ĀõoļTU$§@&üį���+IDATå ^Tģ5ŠØ·âŋwÁDĄißō6ˆvā8pā`þ�‚éý Պöw����IENDŪB`‚�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/qhimdtransfer_16.png��������������������������������������0000664�0000000�0000000�00000001635�12262477515�0024425�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���������óĸa���gAMA��ą üa���bKGD���c�%øÖA��� pHYs��Ä��Ä•+���tIMEŲ )q‰OL���tEXtComment�Created with GIMPW��õIDAT8Ë―’Ëk\eÆߙ/ߜK’9đVScÓJīmŠq#–R%– ^ĀíJĄ`E„þnÄĨuUĨļę7ŌĩR ķPĻĩ­ņFŌ 5™Ī“ËÜÎĖ™9ßÅEcč_āŧûÁó<ž<ï ĸũœųøĀsï2ņā,§ß9!E8ëîVÞ 0FÜøsyåĄņ#ģIēųčđó}ģŊū8·(^:óĖGû―flķ­Üö;ļœ|–1lŽÛÓë7ņķÂōÖúÂjqų˜ččí( Ō"ĀÂ9„phĢąÆķˆ ôĩī”ķnŌv•‘0ė{V6ēÄVÓuŽķv3lhd%a^PŪTÉZ –Ŧø./,U#Ų–ūV7zß>yüŌYŲ0uŠĐæ’iðSķ@f9'čpž"tukŌō&Ÿ]ŋērļW­LîŽÏŸ˜; S’ÕÖÜmÜvB{ ïôāīĨÏST#Damþ·ŋOŋũæÕovŪ�‚‚ЉčCYoŲ ^DSīXu }Ņ=›ýũĩôÅĩĄïŊ°ųô)ROzßPūBųŠ|^!QŅEtĮ]Da€õĨ<ŦōēūŽbꭋįˆĪs–ĶIHlíÎúž •īĄåА%ĒB@ÃĶ )1tl؍Æ/ðmņZ2ģklj^ZgŅNãœChŨ2†Ô&†CÉ<ŋ—~a~ãŧ 97ӓy•ļóõ//žėuČî•ę‘ iAÛ á<Œ1Äđ~žß{œáø~zT“ƒóÕÕ8Ú]äPīHĩĨ'sáw=!ãīķúĢ4X‰B·SFã}tú―Š!žį˜™dÔĸCXëđ.{9gmGœ$ƒŸë,ó•fÕ&ŽfŌ$kĩYŊ–ð ĐëšŧÝ\uÂËQ”ƒ|·Ž1nŊČÜԅÕ[þtuŦöÆþé_›ēüWõÔæRųCĀmėbŨ­Á1üô‘‡ŸšĻÛ*Ũoþ\ųâëOOĻĩĩĨ^yōdÁ—ĸėŸ^ØųƒŌA])-'$����IENDŪB`‚���������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/qhimdtransfer_24.png��������������������������������������0000664�0000000�0000000�00000003012�12262477515�0024413�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���������āw=ø���gAMA��ą üa���bKGD���c�%øÖA��� pHYs��Ä��Ä•+���tIMEŲ )h’~ ���tEXtComment�Created with GIMPW��bIDATHĮՖ[l\GĮ3įė9ŧëĩŨöŪŨWr)!n“XĶrÕĶ ļÅŠnĘC…’‡"$ŌĻ J) U*H•HĒðõĄjEŠT jđEBD ę%mÅ%ví$NėÆąŨ—ÄkïÕgϙųxIœļĐ*ó23ĸo4ß|óýūŅĀĸKûþáÎۃ?JũPŨĸ-›7 uėļûŦ§žüĄŋûFÝ―íáuÉŪŪŪ]ūį%@äšY>t3YÕQõ…ąģĘÚDÝNyCCíyņ-gĸ—Oý@íüîŽ}w|fā9å[@}ÄåĶ‘Cf.ÏķŽ>šÔR5˜jÂÆ ųÚ3{wĸņQŨũétS:Ͱ6D}ˆÔ ēŒ‰d]aIõũ?@Ą<I•šCP_dæĘk’Ëė8pøHĸIŨŠĄ•12dšČÅZpÝFŪVDQk"ŪŠ\.”ÐXŽŋ6É―ƒë6Ŋ§P>O*Ņ&JuĐÅâ˜\)әđOÍžŋpxvîÜËnd#JQ…Ųpaú2―ÛyãÜšąŽlŲTšÞ†8ÖÔÜÓÂĐåaeL cZxöäoU1éčŪĄî= Ŋ›Kæ>ķwø)�ŨHD9,ĒQüYOâ{špåŽĖcķ —u7RŨ3ā€(Eŧ Y'ÍÏÆþ"_,Đ.i+øNӓ§ũ~kߙ#ŦQ –°Æð: ĸ’FÁ@Ģĩ”%ŸrU}Đūō‰ŪĘOO―õ›?}ïÛŅKk0$"ĻÕmŪĶOnčYK–šnÆrkC/_ĨGÔ'ĸõBôöM…ĶPč˜Ķ5•%“Ę‘nhĨ-•Ģ­ĐĶd3ÚWh_Ģ}ĩ†d­ Ąŋ<ũWZÚšåãƒ=·—ë[ę#>úRk"ÐJãy1ý4XHHŠŠ.’Ōiô,Ą VŅuž$ūs4Új°°,eå#2ÖÄúĻÛŨõ}#ĮœėÖχ/ŪFp’M"fđHYŠäĢũ1„$t’ļ“ î$ˆ9^ÂÃŅ'Ķņq'ĢjV5cGÞ°'ēvî?yįī „6$’ˆČF1Wį†PB"„˅"Օ*["”ˆĀTĢ ĄĻZËÓ”ČKļŧQŊ–ģšÛ ûOŋúđ ۈ bkŨfG õyK3Yš[씋%ōS3Ä:ÁKÆĮZÉÔdۖ―ũszâ“püŨ-m‘h:‘jܚsÁˆđéa3ĄÅŧܧúîa };™xĄ 8ŧ4Âņw^aÞĖKXöûÛ2#jqĨEēą–_ŋwbčD2ņîí&tAųŅŠƒkhĨ„Ļ*ÜÓ{'_Øð%’n ‹ŊãäÚ;Iķðė+‡xĒ#―íWĻ--Ņ/ĩ=ķŒrÏ% fDÅî]˜}wúę žöQĒhЍ8ŪËluŽ;ÚïÆU.Ĩp™V/‹įxX#äÜūӛesw+ÆúļÉíD•“XĘ Úĸīš86ĸÔ]{Æį\A ŧ@ÍTÁŽCƒÓČTu’MĐÛĨNū|‰Ĩ`‘–xĐõS þI"‘DÅ”ÎH―2Z·zËÜÔðčÁÏpkĨ•ņ`.ÂKđXđ^Åar~ņ,Û?6(Ģ&Jãdý6Ō^ģĒ5ū<Į{§y(›`ӆ8ĩ°obæbiWþÜï/}ö,ßXüŽĸbn@)Õī–"ąëķw>öäžCޒÝLՔ™]™Ķ\)sėÍߍ―ðÜŅ}đƌ7p ÏxčiũWo}ô„€ņ#ZuĸwíėÎô<ޖĘõU‚JūT-yûĖ›ÏŸųÉlåÚēWŸ!•íé}ž0sæC_#øŸþ6þ bߑÄŧÆļ����IENDŪB`‚����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/qhimdtransfer_256.png�������������������������������������0000664�0000000�0000000�00000125237�12262477515�0024520�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���������\rĻf���gAMA��ą üa���bKGD���c�%øÖA��� pHYs��Ä��Ä•+���tIMEŲ �8fN›û���tEXtComment�Created with GIMPW�� �IDATxÚė―wœũuÞý=3sÛÞí‹E%€@€$ĀNą‰]”([’›d9ąe)”%ŨD’-€ Äo^B€ĪØÎĮEJbËĪíD’Ŗ9jĪØ{'‚ ˆÞ·—[gæwōĮ”;ũîØA‘įčsÅ]Üŧ·Íïīį<įH%•TRI%•TRI%•TRI%•TRI%•TRI%•TRI%•TRI%•TRI%•TRI%•TRI%•TRI%•3Gnŧƒeë7‘9“?Ģ•^æTR™YŒ°E”OŊŋƒķÔ�Ī’ĘÛMĢðEāsî ?5�ĐĪō63" §UøŌ†;X™€TRy›ˆĻÆŋ~ļkÃ\€TRy{ŪEøÆ†;ļ"5�ĐĪō6ē J ŽVøþ†Mܐ€TR9ÓA�Ûķéë_ ųB Ė@'Ę―îāƒëï@RJ*g°X–ÃyŦßÏŧŪĸ4mÅĒAÂ7DøÍõ›ČĨ •TÎ`ąĨĀį|„›Ūû4――óEAC€ðDųüúMôĶ •TÎØTĀ *œŧōƒÜtÝoąxņ€áÓĀ]ŋ‰ĐH%•3QÄUŒņXōnnūvgŊūH<?0? ÜđaĨ •TÎ4ýGPU0Æg~ßĨÜxõ.―äæĪļåŦ6quj�RIåL3ýŨAUéj_ÁU—|ŠëŊýŨb‚,„ó€ĸģ~·Ī •TÎåīßąģė?ú]Šõa�Úō ļ辏ņî~Uœlh åŧë7ņ‘Ô�Ī’Ę’€ âPĐcûžŊPŠ ŸéaݚóŪ>#ÅöbÄPŋ[ŋ‰ÛSJ*g„ˆ~rpM…í{ŋÂDi' 8v;į­ú7]ĸ)z{į „bøĸ7ÜÁ—oŧƒöÔ�Ī’Ę[Øû7ĸ‹ŠēóĀß38ú$ÆxX’cõōŸāĶë>ÃĒE+E ˄ŋj„ŋYŋ‰eĐH%•·$Ќ&ÁBýĮūĮÁĄ{ņü2B†e‹nâĶë>ËŠģ/#â ü Ę]ëßdeÂÔ�Ī’ĘœĢ€`H€�"86ō8ûŽ|‡š;†āÐßsŨ_õi.―äĮÄh�Šp#ð·6q]j�RIå­Īú"@ÏGĸSD## ŒLncũáĒęcI–Îâ�—]øqŪŋæ 5.@ųû ›øÉÔ�Ī’Ę[1āĸD#؅āþÉō>vėûŸTjĮ°­ÅüBÖŪþ 7ßôï$›·Ô\… ŋaŋ–€TRyKĻŋ„ę/q �Vˆ *ąaĻÕGyiÏW˜*Āķsäģ―ŽøqÞ}ãoK{G{ ä€/­ßÄæÔ�Ī’Ę›ÞD ĨV†ĸ@ðģoęlßûF'_Âērdœ"Ŧ–ÝÂÍ7~Vz{įĢ— ŨŊŋƒŋųÝ?|cƏ§ •Tfíĸ%īa* „8@$~ķÄ,vø:GGAp°$ĮĀâ›xÏMŋ…+@‚2ĄĩūąþýĻ?™sŠxÞŋY6ODŠH@#d*ĐžĄŽZĒF}ODJŠ:īíÎ―#Ŋ9ýoŠ�DFÐƒ%Œ4˜ÎģŲėûÔž –ĖŧK2,˜w9·ÜÔя~™ÝŧŸQUD„ŸP訰‰OoÞČ oZ°öÖåW‰ČŠú`5ÐĨŠøéņKåmŒņ­Ģ"ēÝ­ÏĄ<Īķ>ží+{ë§jXš"i A$`…?˜Ī@4č"<6ōŪ;ÉēųïÁqŠtWņŪk—'Úï’į_üŪƒX7ĒÜĩaŋĩy#ũ―Đ ĀÚ[—Ŋä6EßĨŠŦĒ/ ņ…·|IĐĪō†€HŪRôÃ"ēå‰u·üÅÖ;ũüpîĀj Œ,4ôøai°4"„‘‰­ļþ ßO.ÓK.Û˕—þ2ííýōاnąm.QļkÃ&~wóFþáMŽ―uųĀũ>‰°Š8Bc�$UþTÞ$)@ō<F4<].*?ŦĒĸ°öÖåŋ{Šy@RýC—#]â4AH`!X8YÚÃ+ūFĨv”ŒÓc·qþ9âĶë?%mÅŽú>*°øïîāģox°îցŸū†Į"ŦßŪĻjõh`f°ūo* '•3Xņ[~,’† ôÅŌúųĩ·,ÛvįžO8šĀkų[Œ€$ÁĀ8@4ð­ƒDÓÄk�XTkÞīï.V/ų0ígSŊröĀ{Ée;äþ‡ĸ\'ÆÆÕēéBøÜúMŽØē‘O―!ZąöÖåW‹ČÃ!JĄ‘ŌG@Kū;KqI'ëЕëĶØUĀĘÉ,”-ą~:cŋŋÚëðŠņkŠųŅūŲÛX=ÍӓžŊ7VõäŨ nÝeē2ÉÄÞîĪ*ŸÆĮRUÔķŒ,(–þÛ‹‡ņ ŦU"œĨĘ< (�y€\ķMnšö·đčüŸGōĘþŊ2>ĩ3<įŲ_Ã@à ó�ƒ ~OüjÂïÓ0°ø§éïū”z} ą,Ž >É=üFGŽ_{h|# ĸúĸۈų‘€ó>ķŽ(–ė‘…a$% ˆ%ô,ëdÍÕŦXķp]Ų^Úí æļ‡é 4ŽÜžÞgÔÓ[žߋ$ޟœûEuōLđÎâSKë=:7“--ŋˆXxxė?ö*/<ôÃ;2Ŋ­N_[…ū|Žœ§ŠČllw6[āæë~‹Öý+Ld�JŊ†ęĒŅtÐ@ɓF  þEAĄ!PE$tKÆgqĸ,éŋŨ+a‰ÍčÄË|ĸÞÏ38ļ°LˆÂw>ķå6ŽýHR�Ëķķ� ĒĻUœœÍŠŦ–rîÅįП]H—ӍĒcæĻ2ÓOˆūÎfBgĩ*9ų—SWäÓų™“Ï―ïŨúėšôš§˜;îõ giœâõD,ŒWĮT§ðĘcôÛÍ5―CļkĄ~ā€‚ᇑ:`[`Ûķ n–ƒÞ!›k'—ëHÐ Æ Ä5ŋDzÐøŲ„CŅŨ ‰Į"ˆëMrVĸÍĻš;Ïáï―ƒŧïĸ<ûöŋ jÞŦĘßŊĸĸvËml}]#€uX­čC(ýQļo9+ŊXÆ—_Ā‚ÜBÚėâŒ8ž8ӑ‘™=•žþð|V^iևROō•―ŅņÍņßÃkĸ^åGþ9O)rąðk%ÜąCT‡^ĨzäeÜჄýøa4 ũm+(ķõŅVčĨPčĄ―8/ø―­ķ|/đ\'Ųl‘ŒSÄķ2X–MÆi#—íÂē2ė<ðõ ĩÚ q˜EAz~ÕiQ@ĀhÜŊz;ŨąīĸÝØvEņĖ=þįlß~zb•ƧUøė–ÓT&tŽs>tÆĪ že]Žŧô<å“· ÓQAðŒ‡§n<,ýGčÏ}˜å1T0'õFrÚãôG@§į―édäf(‹€eĢÕ2ÞŅWĻy™ÚāNür$Ï}…læõ-Ģŋo ―=+éí^NgĮb:;Ņ–ïĮąóX’Vã]éHæK\8 Ę}F1„Q@ÃÍ€™„Æ qâ•DĀðøóx^‰Ĩ ÞK.Ӄ-Ūŧâ3tČÓÏýƒVĘŽÃĨ_Yŋ‰[6ōõŨÅ�(z…ˆÄ뎜ŽÃĀđËXØū„žī%B�õŒËX}„š_ÅWĸ­šëÛæEߔïjVĶËvĀsŅý/ĒGvâOÃÔjĻJĀ’E ,ŧ†% .ĨŦsí (ä{ą$ƒŠÁ„ÞŨ!ü#ī_‡Ŋ.Š>Ļßü#>@âkĻÄq D Äý*3Ī‚ĻãSŊPđÅü|Ģ\žîįi/öÉ#OÜĐãSę8Žþ|Ã,Û|;_8­)ĀÚģ|‘ˆ|[E/DUU yÞĸÉũēĒmu3ô*PrK ՎáüTRy―ރķŲŋ ģįī4 n žŪ…œŧú=Ž;įgčé:›Bū‡lĶ=pkJœŧ[bQũĶĻևĐÕĮĐŧãļÞ$Ū7…gŠĻņŅÜŠ˜Ðģ[w'ðīæaī{~ïŨ$âĨjNDЂãī3°ð}ôtŪÃu§‡ãþGþ‚Ņ‘aĩ-D… pį–üÆi‹�YīKTéĄØÝÆâöĨØjh?ĘZõ* ֎bԀXigQ*ŊŊîÛ:5‚ŋí^ĖðÔß(ä Ūūøįļ辏ÐÞķ‘LHDðý“Õ”+‡(WãyU ‡7ĄõĶ‘DJKĪž‚zbʝW4öøQt ÓïO„ý:ƒ;š‰l<ŊĖŦĸ‘Ĩî8 ûŪĨîNpÖĒŦyïMÝüāþ/ĘððaĨ Â'ŨobáDŽé·įNĮŸ||ų Ā(Ņ︜Üú ŸĀŦŧņ—iT9Xڋ7#ZžJ*§51ïā6ܗîCÝZ ØķÃ%ý W_ö)Úō ―ĐļÞĨ]Œ—vQŦ%€š $7‘ĮŽJsągŽĘy’Į@Ëc0&ģMƒú›, ÓÄũK„54G�‚â›:uoŨ+ĢZgQï5ŽYþ‹å�›ĐōAū{ũr,Q&Dđ[•Ÿßōû ūÖĀRČ~‰Čīgp°ņpÃhaŌ ™NĐßOåõS™ÄÝņÞÞ­`ĸ–ÉäY9p7_·‘žŪÕx^UĢ>Æļ”*›ÜÁTõ`Kþ‘q%īÔBÅ4ēZI°ų"ö^x‡$‘‘dyT `Ŧ_;a—āQ—j}„ríŪ;IēōęĄĸMĨ>ČÚŋŒc·ŅÞķ„Ÿzßæ;ũüGØĶÆĻˆpģĸ{ýüō–ÛŲþš@ĀV^Ū-ƒ…ƒ-NÚ@ÍŦb‹žÎT^W(Ð9@ýÅï㏠Ē68ķ͂þsļæĘË9+ߏįŨņžF=ęî8Så}ŒNíĀs'ąą%ÛÂ'<(V0 îūjSl)xÉķ@bbĄÆšy}i~žuo5ÆøTëÃL–ũāzĨÐHISó‘Šrpč><ŋÂyË?N!ŋĮjį·láއŋ ;v<ĻŪëcY\+ÂW7ÜÁ§6ß΃§l�Z%—Í7 Ÿūz(&lrH%•ÓŽúbĄęSßĸÕm?@ë.Ɔöb7ŪûW]úËīúq―*�•Ú1Ķ*ûŸz5fӉó𰊆ïMö%@åEŠ ýH*ļ„\ÂįHˆ€ŅT;bšīĪ2Q9� ß/1QÞKĐz�ÁÂēŽëÕæČð#x~…s–ŒŪâj07^―žÎö…ōĖóßÔJđŠķÍÅŧ~ŋģe#ßxÍ@,'UŽÐ*ix‘,+�R9‰>ˆ0ųŠ;î§öęc!Ņ/8—kŊú4Ŧ–߈ˆƒ1Ũ›džô “ĨýÔÝŅĀãÛŲâNĒ\Š*°I(ļķ”įaž’pýaz IO<ĪĩÎyüĻļčģqýIÆĶ^ĶRF°OÚM+"XV–Ąągq―IÖ,û( zŪĀĻË%įŒbą_ōïSÛf@āŋŊßÄŌ-ų“Ũ�Xq ‡Ī’ĘiQ~ÛFë*Û~@}ßģˆ*ŪįŸûnnļúwčíYpëƧv06õJžĪS$ôøQŪ†dˆķzýĻ6Ÿ@å#]MÞO"bˆéĘ-QDōgiųL.ĀØŨc“;ĻÖG°æF‹ķcžī‹w}‰ęYà ,ú�ū_c͊̐ïåáĮþ› QËĒG`ӆMŽØž‘Ïž& ba‰„V"Øâã`“Ž�Håī‰%ĻWcrÛĻí{QĻŧpý՟āŠwüđlgP 0U†FŸfŠēßļ-ƒ:@^Úi"OTĒ<>ÖŌdz@Óhąã*ãI؊ DÁ/S;Đđ̜Šũī­,ĩú0/ïý*ĩcœ·ü—ðMĨ‹ŪäÝ7öōÃŋ(ĮŽP‚ŽÆ__K>šųv*§f�âÜ(N„°,ëGڛʙœó Æs)―|Õ―Ï�Pũā}ïÞĀÅįË öðÕÜQŽ?Jĩ>eáÃyĒšˆîk’ĨGÍoóEãøĄķ“°<wâû(‘ hģlĶ*û)Ũ_óė ÏŊ°įð·ĻÕGđpÕ§P Ŋ{ xÏ&ūsÏ”ÇwĐ”ŸQøÖ†MüâæiŽėO Ÿmôü''°Ī·ô6§[ī\ÃøTö>AiĮÃ�øÞĸžßį’ >‚Jđz˜ƒĮîĶRlŽ<UšÆrG?UūÆĪ^mrfĖÞû Úāk4rž)SŪ˜úi™Ē%"ãqhč>žÞąß h>7Ÿúņ?bųōuí�,›ĸ―þVÏ9ˆ64R›-ōt5ąĪdĒ·KŠŊÓBäÚáíL<ũøŒ―ûúÏráڟ ŲPŠâÐÐĻzˆeĢĄĒ#VhkŠļuzŽÞ‚ÓŦÎÁĖ)?‰GW RĪZåôgAâû5lŦ€ Tk%,ŧ1·(|wĢ"Ņ”Ģđ�i\<!ø°&â.ŸËĻŠai1•3:ԇGRU°,ÜŅŒ=ý ·āŠKoåŌ ~KT•Éō =‰*Tk/Ä€ž6~iägÔYcôôčĒę‰;˜BrđzØ|§Å˜†ĐÎĒyŨēnÅŊâØ@›ØËÚĖĄƒ{Õēâđ%_3ʧūp;#s6�Á‹Ei0jðÕĮWïÔ1,<õ({STý ŪqĘd œđ8BÆĘ’w īe:Ą4ĘÄÓß@],8wõ-\yÉ'É8mUƧvpdä‘ļ<˜dčÅÃ9Ī•€=‰ûō‰)ķ­“‰âŋ=Á‘=…†pŪĻÕú(ĩú0§kOD ^ūð}œģėĢXVPŽ ―Āýþ)GėŠ!Áįû’ØüÞÖS>%0˜ĒâĮ@&šēöĖÕjYbQņË VRr'Ļk=MÞFI@ÆĘŅ™íĄøüxãÃ`ÁÂųįrݕŸĄXœ1ĘØÔvŽ>ŸEcBN€hbÂN2Žúö#ƟÆlÞFCN‹@õ8ÚQxUf)tF‹  pÁ—Đʁøõ^ŦãaÛYVŸõ ,úÉ022<ō>úe††Ŧ4†ýʖÍëqgz.gķÍ$Ķþ&‡&ĖÍ„š_åpy?eo qR―xÛčŋâZB}ĮÃdí rŲ"7]ûŧôõŪF2Qz•ÁŅ'1a™/RþØGDó}Ĩ•rŦ bNÔxCĢü§1 9зQ h°ýh4ô I.Ð ˆFÂØĖ€‰Đ*uoâīyc<§ĩŸdņžëÃĨÄĘރōĀÃ_b||Tc|Qų„Â][n?~— 3— OŽšŸNiŽ0X=BÅ+ĮWôÍ=N<•Ó›ØäFi;ē'VęŦÞņK,?ëŒņĻֆ}ÏŊŅrIŒõ’°‡> ! ŨâUÚt^ƒ4Ā44ŸDGڔ4XOˆ!L7<ĮyxuL–ũžïoŒG.ÓÅš•ŋÆüžËÃ2ĻÍŪýßįÞþŒJđ)Uáį-á[›7žļEؙ‹âÆĘ ËR[č.PņËTM%’ĻŽ ÉHãG?W,•YByÍųŊœ(t” ōnÅd|#íûw`Ũj(°hÁ:Ū~ĮŊcŒ‡1.CãÏQ­Å5þļ'Ų|Ģ4ņDK9[óÕHĩãöېðþIÃõĸ7ÝßY úÎ` ī‘*$wø^-ĸ^›ũ7ęSČõģnåŊŅß})ŠËrØþę?ōÃûŋŒņ‰”X•Ļá{Ÿûƒ“ãęsHüЏ €Æ_ō\€ŋš_Ń’‹CŦ-ķŠ{ĨŨ7rģ.+ä‹ó;ŽL›4­ãkš% †(4[i9þNÜw*Vyšõ?N$4óãĖņœ&°'qÂf~ã'ZK>ĸņþ^ãœĩ™Ðbfø !Þ4Æ[#‚1Š%‘ū'ęNĒb<ÏÛkFŽ~=ģ§ŦlŅ^8ī›ĖøHÜGó[6Ģđ€ņŌNÆK;ŊkbÅIčŦRQÄL7H(Ā4~?NÏd f˜K>ó‹6§ÉD`æˆ`Šž7Œ:NÍ�Dß[n!įŊüUúŧ/ÃĻ‹eŲ<ũŌ]<ðāĸԘVĄė>ąåv~0ÛįwNŪúáe§ĶDV9į―Ŧ€~!MÝÕ,ւĸģ4oû;MĶ ƒŠD}šŅTUŽĶõĖņ!ÁŸpLxíuڊ(‰ÉÞ #Ð�’dNŠß=5ÜŦīîKlIՄ‹#Ģ)ë+hE\ƒÖ)rk…$zCĨZ'—uð|'ÐDvaŒÞ8\ þÞó ū1d26՚G>cQ­đˆ%d36VØŧQgĒkŠïûLLU-óėËGČį;pō”*u–/,’ĄĘĒū,}]ylÛ >‚e;Ëč]x‹_û_îŽöÜąXŪ‡gāÚŦ?AoũŲãQŦ0<ņ"Fý€ŸĄ=ÍEv\“ýø‰kĐÚðęM1iļ4ðÏd šŸ7éčb{ˆäԟ˜n,ŠŠÏdeĸ){ĸč K8åŊ3Ŋë"|SÃĻËÓÏý?ų­ėSxIā76oäÞđžÆœÐ·ø€‡_š™#`EJšēØđœÓ–óœjLðÄP’@Ï4nÔhbRIc++VŪķ4)ic†[<r8„īzÍÐ5%•9yņ{äįĶüÉûåxčģHļëųüÝ??ÍÏýø…<ĩõ�ëÎ^@OgžĸųžaÃ'oÂķ%naĩm‹­;ēuį1Ūđd9ĸôƒmüė{ŨōĩyÅó;8g`ëΏeMíkuGŸÝÅݏîáā°‹ãäYļČæŽĨ}ÛšŲz ÆŅĢt”wŽiįžīåģŅ&)Ŧ]ō―™Ą#dƆ0 ÝÝóļââO`|Ģ>c“ŊPŪÅķēMa“ũ—V^ĸ ™bǟ4Ä:#`8―d—Āâ?īĪl”8͟Ą`QŠė YÖ))ŋâÓÝ~Žü šÚÏÆhš;ÁÏý%/žð•Æ â'Tøw[nįņđūÎėʀQāŊ&Ī_˜SîôxLŽhū‚ÄqĪ4)’$ŧК―v|ĸ Œ€LóÐ Cȉ‡Öi/-iDŌëGÕŦ ŽŦü" Š™ÞŊΐi7c|Ã}ïäœÅ‹/aqûqΊ~$܍,ū°ąm‹#ƒ“<øÔ*U—§ķâ=ŨŽâņðŊ~üūóā+ôtXķ°3 z%ÞˎÝGųōWbÏÁqÅu]ÚÚr,_š˜ŪŪ.vžē›ķb‹—œÅŪý—į7ŽĄÏËģŦUrƒT|ŨĀ5Wþ§-āøŨ‡žxKœ†ĄOĪš�ÞDŽĶŸČã6ÛĆC“ ß\Á įx7<û éA’k†­`cohĘĸ% þZŠiī΂ž+Yŧâ—)æcÔĢT9ÆcOĸ%/ŋü€jcčðũEųô–ģŸ47~™~<8Œ1ĸ›Û BK­›°‰ZLc@3)đ&Z8UcÄĩÃHcš‡n ũ“ˆÐÉÉÔc†P-öúq3ˆ9Ūgoļ4ĸÜú>ĢCy<ï=Îó >ģ—RĨŽcÛd‹oß·Ÿži-V^Þ=ĖË{9õĮfÅY=<·ýËw!@G1Įõ—-įčÐ$ƒ#S,_ÔŲd|1 Ž–ņiĢĢÃctd„ĢGrŲ…góK?ĩ–CĮÆxņų >ʑ#‡éėęæŲg*œ;Ðͅį,Uś";2">°há�+—]sö‡ÆžÁũkXVķígšŅ'L“~BŨ/VIm ïÐĪ1Ä,€ðE-“Ý 4mŧ’Ø�(~0/ŽJ)JL:ē(U‡~æÎ“1ĶÆŌïeÍŌÏõĄøL•ņācÁŪÝO) uøë7oäāЂ‹ģŒ�HĖQ ēq“0s‰�”Š" n�$—ŠNWØđB#ā‹ëĖÏÛ 2Ü4ŲiĶpŋņ|M0 ÔjåŽz֏ŦüŅÖP0|œ1ĄįƒB>ÃU/įĄ§w“q,.ŋ`)]íyÚ Ų īVũŸŽR­yøūaÍōyüÔŧÎãïĸï q([s}&JuōY§Đä}g=Î;g€lĄ‡ýûũąkŨ.ö<Ä3/aïþÃLLU°m‹RĐÄØø8YGâ(ĻîÕØ=ô"Žχ‹Ũý…\�Õú1ÆĶv†ôX7+Æ!’­ųīĪ-Ā8DŸVŠKnä1>Š_ b 9§Į.’ÉÉØíØvÛĘbYŲ "iYøaI†ƒƒũ0U=8…˜Ž8L”w1Wž|`„<V.ų+—|ŽÓ ŠLVrÏýŸįāÁš8ķŒpĮ–Û~-ÕgNĘ+Ę ĪsģÓë1­Ī“°SlšHžŒpĐC8kMõÄïĸdĘ>HÓôE(âdī†ýœ@ųĢ­JhwžÐß4}‚šëģ Ŋˆm[ėØ;Ä?Ýģ•ƒĮ&ØøGßá—?üÖŪšÏŠe― YvîÆq,Ö ôQs}|Uöã?}é^nļ|€ģ—õâmY- V.íáAÅZČųįŸÏÁƒ)—KBÛ2ôõ—éííÅõ|:Ė]3ĀŠåýĻ1”jãė|æÏ[ȒE—bY‹cĢO’ĪåJ8-7õĢáôÚĀ[ãße˜<­jƒ>j|D, ų…ó‹)äúÉe{œļä(Xņ9iZð—ˆm+‡mĢūƒeƒQø/bŃ=į”Š=gŸõŊXđøgpė<"“Ĩ}|ûûĀČðQMø˜?TáķldâôuCYũņ›€ŋ–GXũî5žĸƟĪîÕpË‘ʁÆ 9ž\Å/1åMĩäS°Ōoį\€ŨŽ>�� �IDAT֝Č}UŦ ôk6‚†�‹ĀtÄ?™@Æfڊ‹ŋ­ÓŲOtątƉŪQt˜�ųZ]VÔiUþØķ*ŋΐûk#ô7ÍtWÏóqlÁ7"?ÄkDąm +ņđü0īĩ<Ï VðßāpxAãý!wīÅĶZŦs`Ðeįa—UëÞÉØdĮķŲŧw/‡fÏŪÔKÃ\đŪw_―ŠîŽŠÏģâá=wƒË/ûŨ_õY2N;uwœ—ũý-vģIķ™[ņĘ Ũ?ļ_HpHäD ZðđÚ Kčî8‡b~1ķ•K`vÓŦ*Ó;%Qú48vžW|-Þ íķŒĮ}[ĮFŸ \=ŋũŲ„ý–å°bņOsö’ĮŸŅņüównĢ4UjĀ ÂĻð…ÏßFýt°:œđ8ė0ą:ZæjmÂŪŪÄß4ä3Ëīž+ð„Ö4oІÄ cZúŽ“XC‹Œ†ÕōæfZúÝ)›OFčĄĢ\Q’iDsĐēĐōaĖīŌĄķ„Ü­ĘÝŨĪüQĨJÆZb ýK’9póē-+ö6vøølÆnŠ―Ų^kĐVÉį2Ž^šeawåyŽ8ÄĀĀr&ŲÃēģ \ąī—óVžK[Þ Ģˆ äøĘÐģXŲžÅ’…—ÏvcÔ0<þ\āĨ-mdn1^B‚3a!&ųÂ0{&Ð6N,l'OOĮyôvœKÆîˆđ+1?Ā9ŋ1Ũ­P.0>u˜‰‰C”ŦÃTŠcļõ)\SĮ›ĩįūUËnhZŌÞxÝrõõú蜔߱óŽXüSŽ>ëį1П >Å·ŋũ‡ÔŠuÂĶž’ wlŲČįN'­kVĀWO]< –€øÆ ū<1sôĸÁŸūCHąfī$“OZӁf–˜"‰ÄpĶŋ ų§ą‘5þ;M&VHröAˆ8‹ÎÆpÜŠ€4a('Ļœ@ų^-iÓ"ƒÖ<Š:Ijų‚œ_›k䍟Þ1…J“~ ííy@đáēÅø~…Ĩũ‡éOß(žoâōędm”Ģ“Ã8óæ­Ķޚ�l3>Ģ“/'Â_Ŧyp_+ðM߉Ž\8Ė3iķ-ąÉd:én_Coįš°ĪhP VØŨÝõÚG8|l+‡>ÏāðvFÆöĻëšč#Ōâ?4“qdŅÂs‘w…‹>ĒģX­3UŲӘgögœV-ųgŸõa<ŋ (ŧÜË=ũý1ĩj]C‚ϰ›6oäN7ŊsíĀ3ÕQį^ŧĨ.*ap|ZąNSŽf#–iLpõlÛÂēßožgÛķ0FĐT]r9+9Jg·“>žþŠaÅē…–DΜ0–ö|? %•–$<dŌBôŅK~ å=Ba“åŠæôgzúÅķJƒ<ÕH§ÞW“Æ2‚âü8ÚQ5˜H‹īąuėD ž:ī5H+æõŪĪ·k dý―ŠojšūKf’ Ÿ4ŅwĢž_ZĶ|Ÿ/—íĄŦ}―įãØmq‹š;ÅØØ~‡^a߁ĮØwčqFFƒĩá–EðÞąm<ÆDĻĻR<` Ðn[NR6;m ËÕ#Tjƒ4Ï;ĩŨļrýŽ^ú ,_ø><ŋ‚ŠĮ+ŧŋËCþÕJ=šH~Xā6oäŊxdÎ―� BĻ™3õÄš"ĮŦĩ'ëār\#āðāßh;–%8ķły\qŅ�m…ŠĘþÃĢ<øäNŽMŌޖã§ßs=]m Ðp6eLŽMðČģŧ”žëBãžGw°|I/įŊ^ĖOîdrŠJ!ŸaéĒ.[·Ë sÛDĒtūÍ4ÝĸĪō·xįČ $kÞÓÉ1áÐKšc6ūDké šŊõC#nČmqÂĖPôÞmËfÏČv, “ģéŸw6§c|Ƨ^‰Óx‹nhhĪÝĘãï3ęcYÝíįÐÛumđų(Ëē)•‡ŲčIöė{„―ûcpxАą!ã@Åĩ™Ļ9”=‡ŠįāúÖp_Ąú'K:+y†0ŪĘï‰ĒÂ&Ė(É! XA6Yڍoę'ôëųU:‹+8wųŋaaï;ņü ÆÔŲķãyâéŊSæû‹ÂNQ~góí|“ŨI怘p˜$„žjŊŽ4ĨÜÚäNCP%šë&­é@rĒk˜>Ø‡Žó7ĸô—œ·Ûöeρa~éÃïdtĒŸÞuûąvõ"žÛķŸw^š’žŪķđņláØð$ßüþsšāÆŦÎáþ'vrŨ7áú+Vģx~ßøÎÓīåģĻBĨæōūÖōąŸū’jݝVæ;žŨo(ö Ęß2~*ųk€žÏúÁB3g=�Ų‚mījüXŅĢ­ķčtÂŨlŊđˆPņĘ •Ž m…úûÎFo‚™dęuƒiØärš&oKÃAã‘Ítą ũJšŠ+ąŽlļ�Ôeû+ßâĨßáĀĄ§˜œšÄą!kC›cī3A‘‘ ar*žƒk,�Į3ÖŪWĸöÕFŸaýá�M9>Ĩ-Ø/č1^ÚIÕ=éŠ<ÏŊÐÛy>į.ŋ•ÞÎĩø&Xiöô‹ËģÏĸģÖŠ.ķ�OŸÞ|;ó:ĘŽ›īi`0˜B;prEs’"Ô~%A4nC§(Rh`Å<ïŧqïžt·ĸįoņ―_âūš§·íįÕ―CüÂOūƒ[Ū[ËČx™ÞŪâqÐý§A"gūŋ·—wáĐũąré<[°B~ݰ–Ŧ/^ÁŸÜųCū}ïVnđö<úš‹1ßLð9žō7xëӕŋáy$þ+H“álá\DŠŪę5qã7ĨA§ŠðÓ €ÅŅÉýD―4Åķ^úûV‡― GņM­%’Ģ1Č3ZÞŲē§OcÏ_§˜_ÂâyŨQČ-ΐesløE~âËėÝĸåō$"ÏÂĪÉrˆ>Æ)RWW2Tm—ŠWÛRDĩÏqô2āïïÉjîŅ&âQTô™˜ÚÍTyXF<~Dä›ýݗqÞĀĮéhąåÁ'þ /―ôCõ<)ĸUųô–Ûy‘ŨYœđĻ#|?5"Pd2­Š? Ž'‘ßZÚ}Ņ––ŌÔßð õtčélk”ÄTyyũQúz‹\|ÞYts ™ð%ÐÉ81Ķáûķ-X–īxė�ŲūðÜ%|įþm::Æå.gēT §ŌޖcɂnŪžh€]ûždŨþAæõķĢūÆ5ï™BþÆ  Á&ij?ÓF—Þ4LĪ9U‹ž:ÆC—ððÍ\Ži ‚°~N҇'öÅđ|{{/ímËP_)Uã›zbŋÐ:ĒŦi8OĒ’ĢÆĢĢm€%ý7’Ítƕ‚w|ûú3Ķ͆PĮ†Škņâd?S―xjŕQ%[°ĻÅĮ-6ĶKŨ}| ģõŊũļ'ۘGāŦÍdy7cS/ŸÐXFiÔüžËY·ōWh âóý{ĸŊîzZUËUūðĐ-·ģ›ĖÚ�$>*ĐD―§Â<hĶãL{­Ũņ*U bŲXvąƒŸ§—[ICJ­îó'wÞËĸę&KU>xËÅðWŪ“uōųLĀq7 6áØD™ŧ~ÛķČį2\šn) æub <þüö ·ŦëŊXH@――ðÜ%üåŨbÕō~ 9‡ÉĐjmÕCG1Ļ9—*.‚‰;ōĶ+#ä—hÚR’N–Ä’pĢðÝwCnBeũ8ÞüšiéĸëīÝEÄâØÔ$,=ötŸ…H#.Õú Šnhã­ØÞ'mAĩU >í…ģXÜCĻü`Ôãá§ŋČÏ~5nEķ,Ø9ÚÁöÁnŽŽÅNŧĐÃ;g!ķ`<ƒ„ÞEU ýÓņŊāZl&ĘŧáĪĘ0Ŋû.Zý›ŧ0ZáÛß―ŧ/ļbß‹_Ų|ĮøÉ,gj"Ė”ÆDāãôAŸøÉTÏVŠŋ†jušÕ°, ŽĀˆåF!DgÅ GØķpÞŲóYąĪÕóđxíYļžO[!KÝóĻTë!čŨHFÆ+üÝ??I.ëÐÛÕÆâ],šß…mY<þÜ^î{|' Ž˜Ï՗Ūß7 ,éåšËÏæ‚5‹yöĨ ðŪSUD Øæ„S”ZđÚÄ+ÐČ8Å(Wht#nĒÝĮĸļsŽw OÚðtZ �Œ–…‘T–îŪeabĻđ ˜yjJnĘĩT4Ē2ģ hųl‹úŪ&ŸéA1ļ^™ï=ðÛ<ĸüÃdBÖnÅ·yþHGKm€’má $›•ŒĒ‘~ š˜^ūÜR˜å$)ĢÅžŪ đdÍïaY9@ĐֆųÎÝĸžÃGvGHŋōMĮãcwü{Jüev€&ʀá!6!‘âT<ƒĖĀÁ:þÖ°A"ČYgú K„zyĮąđá’ų\sÉYÔ\pËÃ,V/-rũ#%žÝķ—=yÆKu:Ûr Ï+ð…ßû�"Aõ`^o;ž[ĮáC·\Ā{ŊY@.įu$x€įš|æcŨQw}žx~O āÆCʕ*ƒ#<ōĖ.rY›•‹ŧðęUŒïĮDâ‘j&$ũDĻŧ‰‰*3“NļþzHÅ-Sõ*ĄČÐÝđUÅõ&ņýjÃąHLe˜j&c%ĮÎ3ŋįīÎBQjĩ1þï}ŸåĨ—ž"ãįĨÚÞË #=ĐäDjákY *~hc”nAšoPƒPexüyF§vœðS5Xâ° ũJ.^ýŲß›ÜÍ=ũ‘#‘ō+u„Ø%ýïþŅOƟC `âá&ė˜:`·ŽSI”ōŽ_~<Q>5Õ)õšĄV­Q-—p―†ŋĒ‹;øÆwŸįđ­{Øsh‚ÏþâEŽ^ڍXÂō>;nHō―aj“Á“öä-ú ĖVĮŊĢ^Ķ^ũĻ•‡™1øūÁ­WĻŨęļå!åŸï~oþāyTá–Ŧ–Ō :>re•ãš·ÞT4‹ĐęXãš[ííóAŊmīžØŠÛÜę;SąÃē„žŽóčé\\ wŒ<ž‘/?EÆ€ļĖ’óðŊĨþôŦXŒÎJ“Ä–ĶčHŅĒĒÅuĀøx^ÏŦQũÆO˜úõą­,KįßÂÚŸŒ ýąá­<ðČ_päȞ`^ŋPåK›7ō›oÔĩšS3P@ĄŨĶmŠs­�Ü*°„}Þ§čÍTaA_žy‹û‹ÓĖ!č,æøõŸÏ}ObhŽĘ•,b^w[\ó<ĸ8%›ãe }í6ļn9=í6ÆōåkįQŦûtmÞwír&K.…œÍĀâÞąķŸj݄8ÆÛCĄäN6"4Ë!—ëB_k˜ĢÐdófĢH�Čgû™ßóްōáōØģÎöíŏsÎZGæü›‘ębfŋŦ"xŅHNÜôóåSŪ Rũ&‚6óx~c\2N;+•K>„†Đ΁ÃOðÐcĸcƒÕŠe”?Ü|;Ÿ#ŊÕŽ €.ĪŅ7=įvā(do6�j‰•\°.ģWþĀ-é/rëOœ‹ë^đĩ1hI‘üøjŠuŸ\Æ^ĖíËō2ŋŊŸïjęž3æŪŋtqh0 ?{óĘļY) Åūý& Pũ*ņ·m;lm5ø~cžæ9ĸą0Ä 8ã9[‹úމcą,‹íŊ~“į_øgŒĖõ°—Ž!ŧî&ŽLĘcŊ-†éÖLá|ķœ8"óK>ÓÚeŋĀYóo –•aŨūŧyčŅŋdttXí`1Ō(ĘomūŧÞčk5ĮÍ@or՛óf U°Ã�Ō4`KãŊsÝÄ)šQĻÕýi�XôsÄOwlŦĨÝUæôZŠAï|R\ŊaëŪ™ wĶ›�ŨÔcķŪe[8V!ŽŽxáD)bôM“ÝĒV_ KŠÝígÓQXŽ ŒŒíāéįŋFĐTÆžîrįŋ u‚đsR5ÃRŽĖ‚Ú›ĮygAïՀq l}åxøŅŧ(•Ęę8ˆÂ!”ßx=Ų}ŊcÐo)žĘX°™ÅÅÔ\ąjbŲ]ęTõīŸq–{š“āu üÄĪbą$(rGސ�šýÉ69âQ�õY4ïšpøŽaĮîŧŲ·kā",aęÜËiËäPõPi0Tg}ü–VpĨŠRûđ FvŸŋōŨ™Ũ}) dœOūðßyüÉĸĨžģûö�ŸÜ|;wŋY.ÕŽ Āņ<æ\ž›j0^<j J’XŽIÕ~ 3X}§ô‹c9j|!UηĪX–ƒmeg€RÔ}hY)”LČąï*Ū"—éE†F_eëKß ļJk.ÆokoJCįm=ã%dne8U%—íåâÕŋMOįZT},;ÃCOý1Ï<ómŒ1‘†ž |dËF{3]Ŧ9Íhî~›™:zō<Ú{ ™gŽŅO:#ɗLƒž%-€ƒ5>LÄöP?č$ …›†•>oģ ųõóz.…°éėā‘§9tx?đ ļÝ=Ôį/‰ņ‚hālSĮČ™ši:ā"2ÍÛsO&…\?—sÅ•uQõxðą?å…ŋŦÆÄà _~vóFķūŲ.ÕŽy�ŋŅ Īcô”ÂgW]j~ Gœļ5l{ķIW*of �N!XšĨÁ>Ũ$įäąí\8%üĶ>čŦt&ci/œ@ĩ:΋Ûū‰ Ķēl ūI ôÔp­Îrž{pîŒGķ*"ĒŠƒĀāŽLˆšÚWréš ō 1ęQw'yėéŋbëķï'įÃ>ĨʇķÜÎū7㕚ó<� û ĮœŌ‹–―IląČÛm' ˜Ę[ST!›oŠú\o’\ĶKēA/HēäG@õÕļčÓÕū:NĮ'ąĸÐKdę―ópÛŧĢļÃY•Ņɜ­xU?^“Ęrdë_ï9|ōg˜Ũ}1žýōŲ^T}*ÕA{ú+lÛ~ŸJ#3þŋ–ōŅM·ŋķÁo `0M›4ÞžĘ™pĮņŒKÞ)āH[ėtEø„jū?ŠÐCĨ:NGA°íl؆ÜēU7ąÂø.mÁóĻÏî―™Cj} ņsųF Jb č,™X‚Wņ[`KAšëĐģĻïZæu_D.Ó (ĨōazüËžōęjI\þŠŸÝt;ãoæ+åĖ]w›gĐŋ/1åNRõŦØbc‰Šĸ™XBg˜“ûūËÄäaô §‘Lā­ÅjjõüŋeeÉįúÃēĄÏŪ―b[āŠļÝa̐6u ÆUГ wŠËÂ%ŊõßUõĪí·ūĐģĪĸ†ė›ØÅ―þ ûlWˊ•ĸ (ĸésŋÏä›ý:Í~€6Ļĩæ4Q–E_=<ãĶsĶ�ĮĄ˜kÃ.Oa|—ņņAnï j0kâ�&Ÿ›‡meƒÎKŊÎŅcÛąŠÅÜķÎÆ|Uüð\ÆŦfq6ýšïÆÃU#āψ<9['č8y†F^ä{?ÜÂððáHų}ā/nų}*o…ë4Ën@ĒŽŸyu;g"P*o#ājíËSøÆel"\^Ģ°Ý}Paˆ­ųLo8ƒOۏëA& õķ"uÄÔCĮ߂üëė·ä')%Lk_ŲvįÞ]ģųl§ĀÁĢōÝ{ū@ij,ÚÎ[QøũbņŸ·lā-Sŋ>5"ū†y�ĐžMp@ŸZG7mC‡ņaxô�žĐ"šĨ›…… ! (*φLĶ#œŊŒŒî ŧ8ęmŰ[2œJÕšŊï$íé"‚zŠ;å5q�€ ā[ģR;ĮŪũpÏ―ĸ…Je*°CÂĘm[nįÏÞjŨiöíĀ‘Â'šõTæĪō6ą�BĩŦc;ˆņĻTG›ÚGOû*Š…%`9ĻW›eĪéĐ!cCï.ŒO €íāesáđ‹Ķ‡А`NVJĻOyøõÆLː0(ČŨOšē"žžû_ļĸáĸŠ•J+ð~c*üææo<Ŋĸõ5�1č'aE@Sm*'ĖkmEül˅JuŒÁ‘Wéî8›ķÂÄnÃũ*A{Mž·1XãeÛđxOĩ2ôØ^&ƒIėDŒ"� įSžė<šČûû!‰įÁuë{Ę'R}ÏŊōŌ+ßäþGþŦVĘՈÚ{H•_Ýē‘ĸóV―Ls *  QĸVƒĨōķ#”š{i>Fĩ>Áāð+ŽZ~ "YÚÛVPŪÆĢŌ#ŋmƂAšõðĐ,<K‚4411$*IĢ'ÜI/(ĸŽU”Ģęë,ŲģïQĶ͆ĩRۊ°ÕķŋēåužÚû&1�!  ŪqH”B�М pĪŌ3ķŅęĶÎðČŦTŠcäģÝĖ뚐ÃcτK^U�_Å NZ8 ‹ gĀēâÐ=2FƒÞ’iƒf[ÄŦjãõĶLá?·íoöŽ7�ßũ9ztŋJ°@UáS›7ōÜ[ýÍÚ�ÄôImÁģ%_Īōö•ją/—C<ÃČÄn†ÆvēdÁetī-#—íĨTÆ WëJļŽÍĮöEĒ8NĩĀØvÓ`ú†c F U3íŦ4PŪáŨâ― Xðī_óŋtŌģ/ĻeĮ —þá·6odĮ™p}fYöF햚ā`§’Ę ώĨŪ:G}F&28ēEó/ÁÂfAÏežrôŧĄ·'Œ.-\ß 7íB6WÄØÁóˆņņ­ÆÉh™ióØŒÐH ·äE+Ī ëþĻęŊ―üÕîI Œxaģ ĸĻðï>ŋ‘CgĘõ™5`ÚÚHŊCË~*g ”;{(ŽRW›ýGždåēwQ,,`aÏĨžrėþ`F`Ø ā#Ôüre íí‹Ã―ĄŪÚ™&%fR$—Ģ6…þeŨoZ+h?üāé“GūáųūpëįocęLš6sš lÂÖMƒÓ2Â:•TŽ?{N–rą“bYŲwėY†ĮũRl[€h†e}WąãØ=d$FëŊ„Ŋ>–*]íKâ(Ôr]ČæÃ‰É!f€—UšÃ‘xî<û?Ī Þ‹ōįÛîÚëŸôÜ[Éŋšy#9/Ϝ†‚&Ģ�MˀĐĖ2|4bQnï"[ŦPōÆyåĀ―Ėï[G6SdIÏėyŨ/c…āßT} _}l”ŪîeØNð<ķ[Į$VĨ5æSjļŲÂ{ÚÄi#�@Ų‹ð™­wî9i‡ž Ū(đųv~åL―<ģ.F{�â/=ΏŌ •“cHõ\Jūŧfxyĸ=œ·ę'XÐ}.–í°Ēĸķú6ķeĄØLևƒé*dsE:;—RŪL u·ąJ,Qö‹ŠvÆÁvœû—û@9|jë_ïy~–oýŊ6ß΃gōĩąf捷`†ßŋŅô–ÞNzó-‡jĄŠ]`Ęwyö•ĸ…Ŋ>ŠÅŽĩtĻƒÍT}œŠ;pMPĖŧ�QĮuą]/ÞeQ4ęä,29ŧ5+�ŋ#Šþöķ;ũ~kķg~ËÆ3[ųįŒD Ģ~°ÍÆĪ)@*ģĮęŲÕl Ãˇ`õŅũ°rŅ5XvŽ}ïdŽ:ˆįŨ0F,í#—é@Õ°ļĸ"^Ø7–įbŨjøųBã,Fۍ ÆĖå:ēXÁŊ7E%āóÛîÜûwé…8E ėG/™ĶÐ+•Tf#ūãP/ąÔāxlûKôŪ%›iĢ3ŋˆÅ]ēkä DlË{éo?Ĩŧg%…|uãâxu\ ņ~GO]q‚é@ūŌđĻl1CĨV‹™‚@VDÖŪûĨ{ëWöĪôՄL[W3ĸ’îĀOÝŌÚqV‘ū…―4�ųęQŠL@” Ī·ô6‹›o;؞QŊ>Bđ2ĖĀĒ+ƒéP™&jÃ”Ü *n‰Eį &` ŽOdĻt_ēļ™*AĄã8Øķ§§™‚CeēJyĻũûķˆ\ Šó/ėđoðđąjŠús0�gé_4.ŨðÔĢT*å˜ôP§·9ÜTßrÏCÅfŠīŸŒÝF_ĮrT…œÓÁHåewŠŽ\/ŧ€Å—Ã[ņ}Ļ;9|+,ĩ„l&ŋ€ 8=ãûĶðŦ~ĨJ0`ābųÐüKšËýw=?øėļĶ`V þEóâēŸŊ.Ĩrđe_zKo'ŋ Šą‚ýXjŊ=2đ“ūÎēŲ"Ž“Įķ3ŒUĐđzÚ…`Ą0:đ—I·Xq`ŒĄPȓ$�drė˜<PÁxFâ*@ðCŸŠþ$pÛüKz~Ēĸ’Ūwũ_Ō}cĸÅÝŲÁgĮ·§ĀėĊJ)˜Ę\Oļų<‚OŲðŦ<üę?p͚Ïīӝ_ĖĒîs90ķIwœŒ•ÅÎĩģ`Þy ÖFðMĮŊãå‚ÉÃU·F![‹ŠĄgIþĩ†C €ƒt \>' d€ËEåō°Ó5üSj�f§þ1Ŋ:•TNŲڐj…ēą8R>Ė“ûþ…‹–ū—Œ“ĨŊm)Ūq9TÚĮĒâ2 JgŨ šĮķS­Œ“Ŋ—)eģĻeS­VÉ:9,ąâ#™•}Ëzpō‡Ē:RG]ž–Ä ķ€ ðķœoįœōī$–Ęk6^Ą�nŠvOž‚uļĀ9 ŊBÄĶŦ°ņĘŋŽÏwÓŨģ†1ũ|…\­B­ØŽŠR­U(ڛRž]ĀY˜ĄpsžĄíĢL,SŊaęiÔ:GÐX–,ýÍuŧn*o.‰Ŋ_īōÍWŒÖÔAsúŪsōyÄ &ôøøÆ!#‚Ú;Į_ÂaÕžKĮ)PõëÁ4*ŽŪt–Q­ bL­F=—§îÖÉ85r™<ÉĖÔ›ŽŽÚ.+P]S§2Reōh‰ĄíĢøŪy۟ßY�ÁÂÆîÍņÝ�� �IDAT’Ä ÄEMå-č{EK0ŪâNšļãš@áCuō6ŲŪ ™6;ŅýųÚ^ŊâSwņkwę)[Éæ•šŲN…:gũ\ ņÜ?ƒŠ–CoÏ9Œ{Sx~ãđ8–…—ÉRŠ–œ“oėßē#:š2tõuïČ2ēsß5oûsāĖNý‰:Ї'<@Đž5•_RŪSwŅĻģģEŋýšÁ-ûdÚ órXķuĘF@D0ūĄ:T§>é‘FËs ^ƒĘĪKyr'Snsæ]öxĻœ�'ßÅžîÕTÆ^ÂRÁō=ˇĐj “U ŲB€$ŨW™p%ļĶįöÔ0� •�Jú-ūUB~‚a˜~Õ§tކÖÃĨ'0æŠ;åâŨ| órdŠNSˆ=;íWžēGe°{]ˁ™gIÛ5&§”ŧö3YŊr΂uØbĮī_Ő-ÎĢĮ_Æ`é�ĻŠ…ÁĶ\+S7uŠđbĀLDŠéy= baYm ‰ķĶßį[CõĢVxŊâSŠ“qk†Ë§3^XUĨ2TÃŊēݙĀhĖļŲĩņģ†ŦšjĢ.ĩqą+cÏl˜fx'>pøāU}ށū•äí<Š>FƒOĄm!mÆeē6‚Š`A- ŨusĮČdÚģ8vĶ―6―–ĒoãˆāÔŦ�@0ĢQguüNö°ā0é �ĪýíĖï°5\=ÞkīūŋpŋÛ,^cĶĮ oVn„ïjc.øŦÅã‹-ؖã64{ŋđïĢ>åâU}rÝœ‚Ýbßŧ‚_1TGęß`Ų-Ŋgū^cCŊÁø&9ô€ąĢė–Ėï\HÁn §�ûŠÅųÔħ▂Ą!jmę"øžOÍŪáØâÝMŨ/œũ5KŲûmdųûÏō˜ @“ĨnÍŊNh,„\X§mõ*ūúÔM Ũļá’PkÚkúęc!œ"Y+‹%6F ĸ―7“ëŠïž?įœŧÔÞÕ{·Ôj-–-ÉēeË6x• ›°…@āe‚'ؐe’LžIÞ$Ã$™ŽÃL’ũÍLžðfēØ&™  –lģ°ņ†YûÚę­Ö[ũÞsÎûĮ―U]ĨnYÝZ„ûÔSOŦ[UũžsÏųmßßš€Fœ”:đŧ°Å’qēëÅ&&ÐÍĪ`ÄIC"ð%ą u ßņp„ÛiV҈KÎÍU.Ūô@lcZ:ļ(ÕLk,q]#°ĻŒęal~>K_ĐH_ĐLÎÍ#ÔãĩJ•Ųđ9‚fØÎ]Ë + #p2 å-h„Ö&ØAœ‚ŠŌ=Yę[ÏĨPĖS.—)fKļÂ#4!Õf…ųđyjÕ*qԛģӘorÜ9B_͟ŽĘ§{‘h}đQLp‚f\o[‰&@âuĐöģ0ą„IóW>ˆãųHßƒŽ‡tRÉĪnĐŅDȧ>‘$Ã6lė$JŦ…F9˜0ÆÜyïĨÁ$VTXtŠ·ķmÆÓu dœ,wŪ}ksëąÖāđ 3ˆmD3nrĒqœ#ƒ<_yšé`*!R‘‰Č9yķõ]ÍšÂÖ&)ûx2903ÍĻïeoåyžŦ<MdŽÍ›˜;Ũ―‘5đI�*Ņĸ|ä8Tߏ#Ü…5ãdyÍěX›[Ï Õgų—ĢŸA….oŲö2dięŸ;üũĻíé”ŪJ2L$oŲø# úCˇs|zïĮl€žČ€Ld0ąAšēG įû ŒŽQrËdeOz€  J””J}›9JeŪ‚m/Yˆ›1q#=‚īį^"(”·ļ܄—õf07DNðĨ#]ī)Ļ}đ2'ŠSLϜ jöÖ댂˜yg–ˆˆœSĀ“~ÚW@RÎ!BE3Ūũ$ X-“NÄīݞĒó !:&€#DĪAUQļŽĀņ’čdå($ް ląˆ51BkLėĢã€8ˆdLôðûŅŪ zųŧ‰ūw@j?‰ī˜ûrž�‹§<Ūš‰ý7PÕó|þ[Ÿaf~š‚[brpŊßþCÔãߞųģį~öÕvۈmåž~Ý[đzā:žAūūû+ė~ö90šįš7ðډ·p°ū—ŊŸx˜OüSÁQáĒ­fĮā \?xsg.—•ķð—Ïĸ {kϧŒBĪóóđ~čfŪ,_Kĸô _›~ˆcóGyęëÏðKoþ ŒÕ”ýþė;ĸ@7‘Bč?žņÝž}Ó―hmøƒüN4ĢúäŇ2[‹Mï~ ȕ3 ö QPE ŠHŅí#Ģē€%Ð- k }ƒĐĐÍÖÁ,>―ĶÄЁ!'Ģ(”é˔ÉÉ}n?9'‡#]"ŌuD :cdĖĖÔL§$qÖXęšFhCrNŽœ*Θ”Ī䗑RRk)’]ߞúd/0nO ö›ũĄęš8ķļ­_I\ÏG9.Ę͐‘ OŽrˆ=‰Ņ7ĻL†Č„īšAģIó_þ‚Øónū‡Æ%Ė�ĂÐvŲÄËt Y,-d`žhįûĸ7{ïÆŅ~+ĮËwßÂŊþĀáæ‘Wp ū‡ƒ=\VØÎOmýũŽ/\ÆņÚ~úÏ~”}Íį‰ō-ŒÔxAïó9^wĮø‰Ûĸ#Ų5äœ<ÚýÔâ*B@7ˆLHCŨ9ÐÜÃuƒ7QtJüųģŋÏîę3 zLâitŌÍ9ēX‹Sü㞏#?*yϛ†neïÄóüÝþĸE ëėŧ“7Ū{;Ëïņ?óé}ĢžĐē”‹Lû3€ąHWtTéKēđžðņe†žS äö‘s !hD5,†–iáIL&K+ŨBúĖ€_)ð >7‹'}rNŽ‚S č•ņSN Ed#ššAÆÉâ=‚JØEž PŽ$6!Õ("ˆ›äÝ•C IŅ-áH‡J4·‚�&ąãđî]č‡ ūVlhę&yRR-īįyY Ę#ĎOāį ãÅH1âdÐ:OÐ Ļ6*Ô|?!’ęŪwQđī1€Š*–EÕó1 đ1ŸB1‹°Į Šå…úŒZkšQƒĩņGY›Ÿ$ˆüáįþ+ϕ̰9KÆņSŸē%k|ä‰ŋfۚŦŲĩų•Ü8|;ߜþ*_;ņ`ÏÜjïûÄïqũÍïâ—ÝÅ/^õŸxßSïå™ų'SéŅĨēįÐŋĐČvŠŌƒE~rŨÏņýkßĖs•§™ŽóŽ?FŸŨÏ_þ3>ųÄGūŠŅny}‘E—YcPžZˆø3åI”pp΃#]”pðU†Ē[ę˜Pžöp„ƒ %Tr3ĐoÃ\)…nz?WųäTŽžS ŨhŠ&ŪHþO •Ôøóã“ÐZŅJF6ĪÍҌÜžôČ9yá2ÍĒm|Ö)+·ū‹ˆ~€ĀJæÃˆū(d8hļ.&—Ģ_Į iEč˜Í•˜oÖékՙP.ÖÏŌhV™nĩĻ?x?Ą”ŧõĖ_RnĀ\Šv/čúŊ2l.oĨ/SĶ┨Xš‚ŧÆ�€§Ž|›Ï?õú ŽÉ­Kų…áî)Ŋ+öHWĮ8ūOf+<2óŧx%eo€ĄĖČ"uOy’Ö`•ßþčo _kxÕöŧøŨüðäoņéŊ,―ؔqå6z|âņģ~p#Ŋ―ōMžeýݔÜ2ë øėϟýÓ2qÛðBŲī‹ ĸkĮũČ›ØķË8ĪČŧÅ`…MAĖ"íÎÓ.'RæßéšģŌ5 °Ft�Õv;/c5‘‰t€ķQoƒÏöÜŽMlxN.ų―°ËÆBÛb&œ"#3äÝŪr”CTãJįĖ,xÎLCŧõ,'ûĶu†[š‰°ÅžįeōŒé˜QŨeū4ČŅūUįjÖ+ļŽÍĮÔę5ŽF-ž*’=ŧ.°i°"  ‚‹“^§ũīũÔ0˜æ'.ĸ…Άk˜oÍōW_{?ųĮĸCfŦ _Ę$M Ó{ôŅÔõÅ>\›€OåþūDjؘ0n]<Ŋl9ƒŋÞûŅ_!Ō1ŊØþ}üŌŽßáOūó{|cúK=þƒ…•I”o“áýŸĸ&J“ėœļ€oüŋųá_bōUĢÝĩį/>ô‹TĒÁ�ĮØČ™‘héAÜĪ.kBt“†ŪڐЄÄ&&“ާV끈š1:މlDhBZ: ŨQBŅ2MBԈkīlЙ—ÖÝ2dĘNOxÂĒ“Ũ…č: Е%ëä)9}(é`°h#„@ĄÎúđ^óv,p8þÐX4XΕ1†ņG™(”8P*3]ėĢ^™c4h0š/ģ&˜ę՚5ÝÏ~ąûÖŋ0؈Ëf�RLzĀåt!$ĮZ‡øíĸó›ė=üÍTmŠĘ*ƒ›ĘLÜ4ŠW𘛛ãĐĐĮ™GIÅũOž‰îûÚęE„=ā ņŠņŨ–Ý'žáų™gPē5Ö{3%ũeŋþ‘_ä=úWyÍU?ĀOm{ŸØũŨhô)ð3‹—uĐmœá3Ï}‚Ŧ'vð'ßøŊŽ{Åp‡ø/Ú!@:]!ž"aš:ē„qH7ņĪ;I°OÜ@ M‹z\ĢĄë4u“00‘Eųን Q“xĒHÄM™0ɎûŨ iÆ ęq•†nԌčHc5IR’=II[JûmXÝĪĐxŌgĀĒė– L“˜ļƒýœŦqÛŧ9ðõrŽĨđĒ2‹ð3Dđ"“Õ9ķ *Ĩ!öõ2ĐWf™ˆ$“ŽĮúV“ƒ­&%ã°þĄûxR ŽÜq/æĒd�öTĸ^ļ 7Æą†ŅéGļŽÃĶüZž’i&š‰ Ĩū"ô…ĸÆāŦFØ9ų2Þēá_c­å[3_Ĩ70Öā)ŸA˜œ|G֏ōw_ûß<Óx’âHĨō<Žķļ—õ·ņ_>ųŦLÍį‡oz?ļþnæÂ™ÅíÏŌĩYcÉä3 Ovþorã$OÎĖÐΒž˜‡ ÚŒēDQ ĻĐjŧˆœ'öRm*ĒĨ›‰mÕh!&6xYgÉXŠ=;Â"DŒnÆ^“ŠŽ$]wmŒßibh™ aQ•V74RŅs?ÛÝ"ôtÁe"R+Ā“>ūĘāH%ZčĪŨÅ9`ā/ûBā‰/=ĀHrųü 6“gÂZÆg1–+ą§PbzpœÃÍ*ĩj… )Ųîš4‚&̐AaØýÐ<sÛ=ß=|`e  ](Ömœ^{äü�yŋ@q°@Ņ/ …HŠļīė"WĢ.ÕųÍOþ{ÞžųÜ|åmžýēwņæËîæp}?ą‰)ųeÖx“iäӏü=Ÿyâ<>Âāå} V ãepĨGÎÏĨQgI,ƒRŠ­·oæŊĸĮŽOņ“ŊýƊI Ќ—ID'*ŪmgķÃI“Zuæ{ą)dĐŽĒU ‰ë1hvūĐ3ļ2YĢ6š@7â&f3 "’Ũóp…ģ"ĀJÐK}ķAŦĩÔóŌ—B& (Ô-šqƒfØ U‹ÐĄ!ÓįáJoĄ 8môŠž{;.#0IŒ†…4ę1ívÛ[îáøŨþ–Ų°ÆÍ 6!›cM]s­nqļÐÏÁlÐÏq >OÐŽ3.$Ũ;GÀÁ8büÁðäŪwóüwIAėÛßĩá•Ā}Āúö'&oãšŪ#Ž3%2Į›‡Ņvy–Ĩv=ēžRk†Šrt|Q&xQ.• >ÓäÄūYÖqCr”ėÅá<HhÕBæW8Ū3ĄYŠ2ših!ŽTFöoĒĐûƞÂftoČŊ}ú[[YW؈5–jv–Đ‘}ÄNt’kčŸelz#�{GŸĪUŽs) )$ūĖtא‚Ųé9‚Z€T•UļŨu;æĩ–(Ž›:H‚ˆē… Ĩr錈%Š"f§æ0Ú 2 7Ģp}ĨTGĢŨZķBâ@Ģ[„ehlG-0ŊØDÄveærVå)ļÅN2ÔĖŅYĸ‡gˆšQûžÄBˆ?ōū―ĸö\>ũ?Ā8pR\™Í1âúŽqģĖ–‡ØíšīØ($SŦ0ÞŽ1…„a°ÉAāY?âË/ĸ7į7hE@‡ļz܁§ZÄ|Įû‘‰QŪĒ$‹8Ļ•"VCū?GۜĨ>3ÃsÕ#hĢąÓ …,JžŽKŪ?C~$É-O3%Ï{ÛĐ$}Јƒ“4ėēMĮ·qôČ^ö‡Ï�āđE‘_ĪÝ(Gėö’Ï•œ">Þ%‘ %RmĶĄhĄÜ_fŠul]ĢCč„•ØÛÆ$uömœ˜8Ęu(–ŠļĘåL,å) Ĩ<•Ų &0īBCäj„J<JIJ2˜8ĐI`īĄļßņŧÔÓYÏōŸ{Ą˜ūNϧÛvŨŧ9ōÐûĐCĩQįVß  lœ=Fy`Œ'‡ČuĄ<Ā”Ÿ!ŽÎēIĀĩĘaļYĢŊåąæĄø‡ói8+9F―ęĪXķP*AyīŊã:ė$߈ÓđŽ’Í) ä( æŌ& n Nd›ĨSÉĶÛŨ]-õ„ü.rÓĨs)B\Z4ŋôŌųRŽ|_ķíĨš4†Mlpc5Ūō;x…#%ƒ#Cœ8:ÕÉÍŨúäD™äRI†ð<?e°g6•BĐDŽc• Íbœ)uĸ•‡ú)Š=BÆĪõ�VŠâķģN…œÏqۏRð|ÕB4xąxÆpųÔan™I) Ō•đĒŦýœØ?{ž1ŲĻÆWäKŒ4Š<a Ã_žŸÝ~/û/8° °<āАDą2žÓ‘ÖI\ũŌhäé6Rœ5^ tqęųuŧŽíBĀÐÅ\ & ­&ƒLšhĪLĀó<ē9N˧6ßH­ã“ÔįB–ĄÁ!ž6ó‹ ČĶéđPČĻļÔ~Ž ­a>3ĮĖô,V›EóTžb`h˜BĶxRr—!Š‚4@Ž€ô~úB$jíz71ðïĮķšžÎZ|`ÛÔ!uóØúþĮ…t…ŽTŽ+G&ģĮŦĘôėdūþF•ĮŒæGūø�―ýžš   ;Pœ’-e`…\ā}^œåüÄ9˜Ó…Ņĸ;Ō34!yéõä8Ōaíð:ǁˆZ―JEX,žë‘ËįČĻė‚wDôÂą‰iÆM"Óęī‹“B ĪGVeqĨŧ$c,3PĪÖĻŌjĩˆMŒ#2Ų đL‰ęáîÖZš:$ēņōÎÜLāB#ļ—o>ü�^ðZEl|ÅÔĄÆuĢ&ŸÂUGXáČĄĩĢM?wüč‰ÏŊÏã]­:ߎcî~ð>þvŨŧøÖw$öĢėøO G:ˆÕŌJ—ÔÐ&&2Y'·ˆ0]é‘ë/ôZ=)ÞÓMJÖ"ÄIÕ�%UopÕ4âJ:äŪôRÂíÕ  Cˆbo}ÉEyÓ$2AĮCąbü! eķØŪÐï 3n―‡Ŋ<ô�ų I(Y[ß8sdFM\~Ô %JQÜl―ėøąĢ/|c[đ‘&߉#î~ð°ëÝįŽ œQAķ,ėĨ"WGēe–f\GŠĪķB›(NĐ8ˆÉiąD&ĒŨ“Ä)ËB@]ZæĢІsøiTž§\ōÔũė"L@[M ›ÔĒꙙœ ęjū~‘ŨÛîáóÝOĐÕĪ_HĘóÓS“~aX”†6ÔŽ Jd EąvË]ÓĮviܚÃWc)Æ1ũ~ņ~âÛïåņs1—åéSKTÖéäUŊvŧšdÞí}kÄujQ…ÐīPBá%œŽĪTĻÎßá ­ĶŨЄsqs!þaYũ“īL@%šĢÕŅ6î\·sŋŪwûĻGUjqĨã:Ģu_ĪķÚmũōQ$īĖđiÎŲ·ĄÕˆĪ*ä„ČæŽČæ!—wģýîØåwU ›}ŨãrĨļVĀO>x?›ūk Ā.óoŦãŌAÜĪÎ1ŨšĨŨ“8y$ŽpqĨ‡$!Âj4Ï|8K-Š`l|FęģHM‡z\cŪ5K%œ'4!…+\\á"Q“T^šoÍ2ÎŌԍsg·Û‹/bÓĀ-ė fZŠ;w|ßļĩ™ĒPđžNƘyGˆBÞÉôŧĢ›îl‡ķe]—R°øų‡ßOĸ1: åjO€Kv‘Dû5MVZäDŠwY;[O[―}Xl#ę6&Ð dW·vĶ ķš(ķĸ~vëlį2Ú4ûņâ9ģwÜKý‹ũóGÖð§Q‹™ÚėĄ‰Âāž-ŽkbĨÐÁ·Š)”ŋ5ëeóŒnúþ–ŽÃ’=ą{}ĒŽâŨĸûü›�§yĀŦïKïÝ]ÏÁXCl"BÝĒĨZ: Ô :ß”9—ïķáäûE&ęĸđ[įÃE$·Ža·…ĸĨ5NPŦīŠ3ûvōRfēNfį@Xýŧ–Žöƒ,dýüˆŧü͑_)J— ·>x?ïđ  `u\ęšĀʈčR―įÅ:îx7ËĮ­aŊք•{3AĢ^@f|ém. Ų— +šč°°"—ÉõmddóÛŽįį‡1,očžæüb�Ŧ”VĮę8C1āCÖā•ãq}~:o­—2ã:ų[ûM\óÂę‡#LEëŪ―Ų Žû~#5&%ÃVðūÁóŪtėąUÓu\‚Ã^ĪwŨ;Ņūb-Ï‹ĻL=ïéØzāúNæúĒäLtČ ŦŸÐXãZ#Ü5[ïķđūíBJF…`“ß: mÐØyxÁękõuqŋÚ€v ŅÅ^[É~ĸ$ĀmĖ<mÃĀøˆŽ#1OđëōXršųu'n~Īë МõŨþ,Ō-đB0žöĄûyãyŨ�š 2ŽūV_=ņÓinß)Aw1jŧÞIˆå`.lŠ>?å }™uUvGKÖZ› Ŧï˜č€īV9ŲâZąfë=čØdáĮšeĶŠĀR>YąúZ}]ÄŊa%.öĘM<e-ÏĒ:ýŽ�_ ‘•Ęßáūø&švÃĘß)LSĘĄÉ;(mր€ŨXËëW―�Ŧcu,S€n<t/ĸnÍïķ{؃ā! 9ĸ,&v„ېîĪ@ ­E"QýA·žX+ĪrÅĕw“pöw<x?kVĀęXg9žŸO�w~—oû‚°UßKœÖļ"ƒt†ÚZ�áÜ@RÏ0ßŋ‘þĩŨ[k�Ák„åÚU°:VĮŽ/ĖCũóXÞ`Å9Ļ!ū-Åē˜ŨĄ& ŌB@ÂEšã=ŸÓ­}ÄÍ/Į+2ēáNa-mpþž‡î§o9ũ[^(pzåvTØĘŦŊŽÕq1…Þ€_š1ó! Ŋž ņH‚c@ÁpŦqGB!ä@§�Mŧ)J8ũŨļđ]€ WÞHiä ŠSÏ"ĸ—ĩü:œū”˜ģžĮqÞîÛmôęŲYýP2ÆgĄąŅRÄoÁڇ{č9þÁ /ī0 B@ؘiŊ�Ązš ÃýÄÁĢ8™ëðsĢ”ĮŪĢ:õlŧŌÛžßŲõ.ôŲk�,ôĖ;Yęŋ”Â6WĮĨ:Úđ‰‘l͂#°MüW 4·=š—„ākÓRŠ"Ø4%EĮtę!3K.+Ž|'{#RJ ýWāå " j`đG~Ŋ}­ģÃ�Vĩü‹EQ]ž‹rßWÍģS™ąIŊCÓ9ÐÐķ•›ęm—ÍÜÞÔÜeL/tŠmgī&ėÚÜĨŦ!éÖ“ØøÖZråõäú6` Áf Wœî~r™Ïnu|ŨÏko+/ĄĘQW`ĨAë˜(ŒƒˆV#$lFDaDŽcŒÔHG \‰T"ĐØUëËūä8zW:pß īäe#u{ÏÖrē9Q ųū~JcBJyAÎ―ø‚x\(Ģf—LČI2cĒúC€Âˎ“ï›Ī]“UX~čœ`�ŦJþw‡āÛUo„H)‰ãˆÖ|LXK žĄŅ-5ĶËvJwwĖąvĄ&)QūÄÉ:xy?įá—\ŨI:õZûÓėzëĸŨcÉ]ëføÁsĒčÂōĨ›Ūĸ)1sðkÔįĸéBMģø�Ōõŧ$ðĐúƒâæ—ņĘ? @ŪžŨψĻ€ā Āož `uœß!eÚŊR›nÐ875ÖīcŲYhAūlur!ĶŲ:9En C~8KŪ/Ûđöųlq1™ ī䭛fxõČ,ūēhđū2›_öï(ŽÜÁĖáG/$Ÿĩ·<ŋ/eŌŦŦ§\’‰bâC(5LŪžĮï#jXËõ_úŲ[ÞAóœ0€Ĩ‰]Vēđ―*Uú{DĖŠR?Ö$ôb"~‘ß—sÏķ–`ŽAÏkZó!ģ{*(_QÍPZS$“ũ{ĖŽÎü.qžÐÓ[@Œ;Ø6>ƒJŨ›+ösÅ-ŋ„_žú‚ã&&-”�üüPš cæ^„.Lð,2?BŪļÏ/Ņ䘄ną øėY1€vW…‡“dZV Ž„ðEZ–6iƒeĐÏ4™Û_Ĩ9"ՂúĸǘŠA%qJæĄ[šų}uæöÕņKåÉ"đ,ʑ)n`ÛBó’fΧU˜˜kO<Îķđg:br}Ãl―õŨqģ›1&å]č oēð ĢéÞGØøØĐũÁ†˜h° éŒāįJHĖgÍ�^LúˆU„āôğđV[Ē Ē6Õ`þ@ļĄ2ëNEðÝL)PŽDĘĪ‚n§†ŸX�ũŒ5Ŧ‰ÆÄĢÚ_/ųS$zdX‰9ö휞Cßš<ųÁ,nÖMÓ%n"XŪnqõôl›yŪ ŦQÞČæ›~åM$āĮƒũąÖ ķ`Ā/ŒZŨuSŋ{„‰―Č#L|H€Ëli Đ$:6�ŨŊb�°TCęSM*‡ęčļƒėwU'gÝ$™k^Þ%ïðóY7G~ 2~�� �IDAT&ëã=ē^ŽŒĖāĐL &Z…I[l& Ö ŦAģE3Š4BAV3DčÄ3ÐS‚+õ6čĶæÄÓóĖj”ÖČfČôųIĻąÖp—ŠÍo„$7đnöy.Ÿ}jbÓ;ŲpÝÏ!ÕĪՎ—ŌēäwSÍė°ÃX( lRĶÍxõ4ÆDHqęsfâ) ÆZ‰Ÿ[ƒ.ÐBŪ:{°ę\9á#Jĩ"*‡ëԎ4hU“vÔ݄ßFãĩÖXe)•‹ 0PĪÔ_Ī”)“ëːũ‹I‹oģ–}2ÓiÕ)ú ‘ Đķ*4Ŧ•F…JežŲŲYN˟ 2]EX’ŠÓ.LH’Ý4Ė<7OíhƒâXŽâx/ï%ƒ/mĀZâ·L?Ëeĩc0ķų&Ūü1ĪęO˃ø(:|7ũĘEÆÃŒWX{íã?ÖĸčÕ0{^Ĩĸ_ás 0d4”ĮŊO&‹AŸēЉĪ nŦįN/?ŒÐ[Õ�.€ÔJP=Zgn•Ö|˜gČ^‰oŒAkWpŲ°nkÆÖ0P$WČQð HԂV -aÜZ‘nÏĨä”éŒŪAĢi Š*Õj…ĮpāāšģŽë$mŅÛąRÕcf^ĻИ č[W 8šOëü_ÄLĀZbĐ Ŧžję ÖóĀt`í–Ũ1vųÝH§Htī—ÖĖûî$nþŪE `nô-Ûįũ\}Í_ŋÁƒX>ōĀíŸ<v΅ĖFā‡Ž/ëŲâā‘4Y‰ƒo-Ģ w„55Ž-ãųE„PmŅ­ūx?C·ßˉģd�ŦķþrNJÖ–ߙĄ> [šCPÏKE”F lÛr%F7áû>ūį#‘6č}Z f9˜M'&m·žõräü<#ýĢLŒ­ãš+œ>ĀwžþģSsļĘííÄs!auŽæl‹ĄÍeĪ#/Î8k‰ĪÚæ ŊžzœþĻA (G0ąýMŒ^ö„Ė‚ðЭ'ižø]l|ŨÝī4YI5"°#q+VžA~ņÝūéóƚßūĸöOė=S~č>”ĩÜ)ی†ĄÉ— Ũ/ĨRĒF<đŒuGX›xû”Wh7QI7e†ā,€eĄ”’yÉ‘œžðĪ’ĩSOÏ%RßÚ^·­5ųrŽ›vÞČĶŅÍļĘAJÕÁųŒ5įMēžŽ}!ðÝ ū›ĄŊP抉-ė9úßúæ·hTĪė5UŒ6TÖiUBÆŪÄÍš—&ĸ†Æq^5õ…ļ…IũeÃĩoehÃŋN„GÜüÍĸ/VWSbK?2°‰( !Š &•TwĸøÃ?ôßĸâÖĸ‡ģžķdD~ŲZ ;ļîĄÜ< ˆ'}8åéč3�åt@ŌQP>kĀ͇ąJûK–Ĩ6]gęé9âĶîi‚ŅyØÅUWnįšÍŨâ9þi‰ôüϙüĀWķMlįē‰Í<úÜ7yúŅg0ąYDä­JāŊgėÚAr}™^Āó―m78’ËkGļãÄSätˆ”Ģļė†w0°înŒÂ%ہæôû°Ķąœį$ĐPFvÜīÖĒΐY!Ä{þí—ø Ūt_ũ7þåū3Dþaøy Ö`Önđū )C’„•Ŋ@ųnû›U‡ĄĨNĻSŌų2sŌbŠb•ô—’üÖZŠĮ›}l&qíuĪfō9å(FŨðÚï7oŋÏņ/šDķĘoŽÁĩ7ođ7―éMŒNŒ Õ"„ĀĆÏLQ™Š-ԉļ�kjŋ°–+jGxå‰'ȧÄïø[nþ7 Lū3%~kŸéĸrø•D&-ĖdōS OzÂŪð„g•PWkūņs_―įUgöāđÁ/8bxōUøđ5€"n~aå|UCw s–  ÍMV}þ‹6k-ÕcuŽ=1Tþ„`4…ūŨėÜÁë_õFōĢDq„åâÐڌ ŌeŊŸ7žâļþæëČũå{Jj·įėąYæU/ h›^Ö°ĨvˆWžx‚œŽŅēų>ķÞúó”ÆÞ„ÕM@V?IköO—MüÉ:%J8ISéöt5B%J:ƒRČýâŨôÕ+”þ“þš-G'vŌ7vCš,MkþC+æ&iĀI/åÚÄp `u,Eü`™?\ãøSģН&: Ÿ†‰É nŋ}/Ûv#6Lšq !. F*„x)Ū^-ßũŠïcbýBĨĶ í_0óė<ģ*˜ï&HUi-WWösĮ‰§ņŒ!ķP\Ãå7ĸųÛąĶ…ĩ1QåĢīfߏ5ÁŠ$Š@⊔ðQiU…’IKu‰ēŽpŽjT ų{ïyäĮ·.“øĮ…āZËĀæûŠbėēŨĄžq.aíӘÖîå3*ˆ$ŠŅčpA;`%ĩóÂ�^’MKĄ+˜Ý_eú™đäom;T„+ļjĮUÜ~óŒ—&hE­ ó])ói›díî―K―5XkΊÛî>c4Ånųílŋz;Ž—īōķķc3ŧŧĘÜþĘsīįwLJü7Î>Į-3ÏâX‹ķ00v›nø9ēåëĀjŽÕīæ 5ĸAŽWŽNK!ÞR%Œ@&îR%J*Ņų7ęZG8ŋô+ßøéūÓĸ„üp`]ąvëkČ Üœh/aå#+sž !ó‰U:Z@b2{Ö `ïÁ° gy‰ÂŌĖėĐ0ûBĨC�ZüžËõ;oāŠõ[PBĄM|V„Ÿä°LúžôČĻ,žōq…ÛÓfÛ ‰MLdBZ: išmB „DŌÛx9š€ĩm5Y/ÏuÛŪ§TčãŦ_û :4kYc™ÛSCy’Ōxážz8FóŠOryí(0'ķē~ĮOáå7ĨáËÁôûˆĸ’2é3ĪPŌA%X‰þ&Nę> „H+“Š{âãĀGNAüWÁwĩ­Đ‰­·Ð?ņö$M›ÖüĸL‹|Ž`ÎÂEČ\üTą °˜w9|–  Ó[%ý͞ĩtđd‰_ æŨ™Û[ÅhÛ#ųģ%_v›Æ7Ÿ•·rĒ7Œ58ŌeÐaĀĒėPpKxĘK‰^.aRĪ [M#ŪQ‰æ™ §™ŽÓˆk‰s+•lËõĢQÂáŠÉ-äsy>ĸ/ŸÃīڇm˜~ķ‚ō’”ãó14‚ŽiqŨÔL6§Ûi ­ŧ’õ;Į+1ķApü?Ģ[)ņcAäĢÆ·ĨPCÖĪänBČÔuØþ™°W‘ˆÁOþÖ·~îŸcgoôāƒũq‚?vĶuüí†ŦŪÛČ‚Ļō1âú—VFü$ĨÅ,‚°9Ięu ,•7Ü}ępæđ-IˆŦ= Đ !Íųs{ŠĐô[x~Áįe7ūŒËĮķĪę·]qÔ€ąšŒĘ2–`mnþpGåĐü^éi.đeFģką6a*ĩļÂąæa5ö1ۚNŽî2ī‚ķ6 „`bhŊ}õëøäg?‰š˜Dl˜zzŽ5Ũâdœsf @ I1ļsęqÖķæ:Ä?ēþ*6\ĸŦ‘$FÏМz/&|nńtō˜˜îc|ûïĸîí/|âΐŋ&Ū)Ą§ŧ›<?:ڐDÞ)›Ŋwˆĸ~Þ),�ôÛ™·Ŋ}đŲüÂ$qó+„•ŋÅÚhE8Ļ œáD –Vã0ÖDéžņô‹}eŲ€Kĩ{ ՑavO•0éG$„ëzŨmkŪ"ŠÃeũļïFÔĨ”―6—ķ2–ĀÝāÉFŸYnn‚WJĪ”( _ RöØÚw5•hŽŠÏq°ū‡(=x'#ýKí·ĩ–‘ūq^ó}ßϧ?ûi0]ĶP 9ņyFw ŌNh9ãs’‚}čę|߉'™æ;ŽŪņÍŨģ~įoĪģ&>DóÄĸƒníæ xå"Ą'­‰x}ãaxïŊ}ëgŋ)áÄ6IÂjïGš™)Ú‚…ýã‡ÞņčUÏĻ,-ž--Ë`ĨB\vÈþÉíP–Ÿ!˜ýsŒŪœÁœ]Īģ†d$Aí6­Øm-ŋĻFŧüGņŌEüÛfOõpÆT°āmąĐ$[ķmaįå7tˆđ@žIð͚ė:vūšWŋž‰ÜFTņÛۃ|ͧYtŠĪ ķHcþ‹n™ƒ7rŨÚäĘūkČ;EdGþĒ^Ē Ö ŽåķÛnëuJAc*`þPõ,…ÄBÏPXåÎĐ'˜l&Ä/Ĩ`ōĘW°ášũbL›ˆž?gÄß­yīĮ{wūï“ŌŠßĻš’ )”uRĄB!QáČčÖŊ|áÃŋ -û­ām)ģđRŸØvëÏ0°þĮR!"Ðá‚ŋ‡‰ŽžŲœ…‡t'“įĨg jŒéT>ýĘŲk�/áøŸöámUB*ë îū4ĸ~ōēuÜtí-„­ÖēčģÝĒ:Ŧē fFŲ\ÜĘpfc-ÚÆ  ÚYHüå1ƒ6#HƒĪĮķōÖ.cOí97ö3Îc­é„•žęŲl^ŧ™đëgyâOv<"B fŸŦ’-gȔžNÂJ%ŋƃ9^9ý4c­:-Āõ&·ŋ‘Í?ŽÖqŌŦ"x‚`öOŅ­}ˆóčÜnÚæûKēô!ÄkŌ:k ðâ:~XĄ<ŋێM}s2­ßiWôr3ŅŋæjÖnŧ?ŋk4ƒ#˜~&:qÆóŌGų[�KØØGĖwk_:'&€X‚!žTÔĢ •uĒzœ$ÁĪïŽŪæķvĄ#ÓÁG^ô:6҆3Ģl(lf<;mu2ß­2‹SÉÅe3åSïŅ‚VЍôû2Õ}Ũ°&;ɞÚģmĪUÐq‰kYkQÂaĮÆk™›žãĀžHœÎ5O<3ĮÚë‡W~V„@ ÉeõcÜ>ý Q@ËB&Ÿeōę·1°î­XĢ8ÄÍ/Ӛý txôœŋĩ―Yŋ{ýŸčßzú·?äęð/Š~8O&œ#LSŽî§Ŋē7 …!)9îe=ú†·‹Ąõŧ(Ŋy‚\RĮÏTˆë_ 5ũ—Il™ŋ�Ą†ÎZ„Ð4æũĩæÛûômũ°įœ0�cM‚,ĶŠŸI}Ņ/…Ņ˜ Ļk"T 7dKnyŲmxø§MāiĢúy§ĀĶÂŽËoĀW™4N[,’úKZŅwvâE˜DO·$Ēø’Ïi4E·ÄU坌fÆŲS{žÃÍýHŦ–ŽQh­%ëgđvûN*sUægæQ*ųlX‰˜;PĢc/kY Šk*ûđyv7đR‘É?ByüŪtAaíS„s‰‰fϗä_ĸÐýė°–ĒäĨĄ4ĸøŋšVX+ÜωΑmÍāĩIõ> ‘…LiáŅ”ĮŪ§4|5nf Ģ5V€#Ž~œĻþð90U$NæZ’FĄ–ÆÜ~âV’(,Ÿ9Ý·—]ÐĪrâ°Dų{H‚\šUĸØÆÜpí ä—Eü˰?ʕåkčsûŧ]G]ÄŋīÔï&üv °öëTDÝíŪmĸ46Íæ\â;ÝũOŠ™HŽH~gÆ(ļ}ôyý<Wy mõ"Ũa{ŽĢå1ķlÝÂĢß|”8\ˆĻjõq<uzϑÄBrÓÜóÜ0ŋŸŒŅh ųb‘Ũĸ…Ą[�"C8ĸWī*‹ÕõóĐöĸpŧļÖâiIķX?œ+Õg’ėÍd{" ^ķHičjĘãŨQ(o"SĮņĘXc0F`ôQå#D/câãį §pō·ƒ‰Ãi•ƒč›•ðbęäũŠÐķūŦGDÕļ—ÆqĖe[7ē~tÃēÖoąLä7pUy'žôŌïČÏą8 JnÓh4äbĒ·Ī„*zî'Ō”ÍnÄ^ŠĪėļķzIF°˜ 2uKfØ\ÜJÞ)ðäÜĢšŲÚŋsåĶí8t€cv’ĄtKS=Ð`pK b­›_pĮĖs\S=ˆk ÆBŪ”cóMï![ڑāÖÂ%˜ųcĒÚ§°ĶÅ9?‚Vc­isÐcčäÖ,tāÅÍõŲBérQčŋœÂāVō}ëpž ĘÍĨ9DŌzĖT +&ŠŦ§’kŸâ·”7‰ō6†få�ųí ðÃįÎ)xIւĖïĐ%g.vóKWmށïœ>ÐE[ÍÅíl+_―`/K•xóOCümĐę§—ðŧ‰~)iÞþ―Ŧīwûú2ujŦÍä$æąh>Đ}ŊmŒD2‘[OFextæë4âzÏýÛßu•Ë5W]ÃŋLÍŅ ’k,ÁLHX‹pēKÄtÅõß6û<ŨT"I*—Į·ģųĶßÄņÆĀŽ fĸˆĻú‰$ī—sOü™ŌFJÃWa­åPnå•ðsĢd kČÆp܌PŽLũRvíĢá Ã―DĩOŨ>‡ĩÁIæØđnņ5`-BZó/ÐĻLĩ/þI!NpF  ŦĨâũķ֟ōĻjĒƒH}ŲÚhķmÚÆ`ypYHĸöūkđžt%&Ë–éAipÝaÄ'ū@tˆŋ‡Pŧ*�wþEúö\_€°Éucâ%5ˆn­!)IĨ‘BĄmŒĩ–aŒëoâ‘_ĶĐ―ũ 8šqdÏL<ÍþÝ;ŨŠ1õc卅ž“6…ž‰điîŪŦęTíXw—ßüŧYJŸLDTĸ<Ø'ŋ îĮÄûĀÆ ϒēt0žþõ oxãŌg―[čüÉ$PŋŦgŅÁ#„ÕÏĒÃį{Á:q.Ï(áĪeĖbĒ`†ęÔ·1” DŸ3 íŪö’H�jAå@―s Žĩû Ž_ŧOųĖūSޕ}Ũpyi[‡øE‹/ššyžėæëŋ8)’Þ-՗"ęĨ@·ïþNûģÖÚeÝũB‚5HĄ:ÉGƒþŨÞĖ#Ó_"ÐÍE―Ē8bįŽë9žĸQŠXmiͅāFĨX@;Š1§CnœÛÃõ•Ä)ĄŒn|%oøõ4šÏbMƒļþÏÄÍŊ'‘ē€ĘlGŲÍčÖS˜čP[m?C_z[+S]„ÞÞ“öæ3i’Mœš Ø�íA·žAĒÃ}= UΛ…lÁ-―!2€!Ļbîč·Ž”,Į|qŨ―§—Ôg ø―*ýƒŲV§ļG›ˆÆĮÆ9%ðŨþÜeÅ-\VžbAc Ņâ‹Aŋ^â—BĒP―6ycč&úSíGw-Āžđ‰B7XĘče$IēM]”ą‰ƌpíĀËųæô— MŦ'VĀÃhaŒņ cėæ`'pŠU‰ æ#ō# a“ÐÞūļÉ­ģŧŲQ;N�HĨŧâ L^õsQHݰĒú?Ģ›ß@Ķ)Ŋ-HøĻĖN„F·žÆšæ„ĸ&eĩuó›XÛ:þƚÖ6@Ũ1fOaõ Lt Ïôh@ĀyCčHéā•ÞHŌ5(Īrė‚z„ã–û…anY�â™dßÃō?QĸôķSós>kÖŽÅ—Ē8ZŽš§jĸÚÜ$›KÛRõŲvđídŊķ|ō M |ņۅd)doĶ8Õ ŌCŌEėÓ!%ôn& ŅŠO‹Í…Î&‰%aŠą‰ËŪa{ĸN›ųzSlk;ķ^ËūįöƒU‰yÂJDnÐ'VŠŅV•]ģÏqyc–&āxk·ūņ-?†E EÎkŸG·žDČL1*šęÓ)w!|tðmŒĐ/› ˆT#Š_#Ū“ōŠzá“r›đ·åĒŊïM9XĒæ ŽíųœUÂZjBðąÛÞuę~€―NÄÕąč@č@Ӛ‹:5û­ĩ”Š%&Į&ŅZŸīëũØRڎ/ý‰ÛĐŅß+ý—’īmâï‘ö"ąŲ#2K3Ž=/I4†öK’d vØNújĐné5%dšUļ4g]&LŊö›˜‰Üz./]™3u­ËXËhiŒĄŅĄ$š0Å=‚ؐF(˜ fļsúi65fi p}Ÿõ;îeÍ֟@Šā`âÃDÕOĒ[ßIˆ_Čô­ŌPæäÝ–Î*s5Bú+’TBœ‚Ąķ;-ŦŪ[·ßâÜÛõ˖þn?náŪÎïÓþ‰fĩڞŨ‡­å‰eŧWEþI{.Ą9v‚V,å(FƆÉ{Ē(ZŌæöU†MÅ­Ýū^€’\ü“þmų*d”nŧû_šú‘‰(đ}žjüuŽÍ­_čú{2ސ"þFXŒÕ'{'yRf#mâ&<įiKRkâšM€ ų˘ g8Ü8$1ĩgb,[ķ]Áą#―„)UŦ†3‡y5û›Ä”ë°éšŸf`ōmáƒpŅáģDĩÏaâãÉßėRNZ ëY @8ã(?DĶŒg…LāĒ6O“ĨûĨ·"ÔHhÕ<Îág>šH˜>šë]T–{MđĘ�Nēᅠ5bõÂĒ]ÏeíšĩmAiÕHfœĩđuž^ NuđʖėdšÝjļ‚Đā?ø7iāDëŧkßáS‡>L3Ū§čĒ'ā§+c=­Zãô˜ݞ„öýNf@―„a{ī€nîŨž§§|6ķur]>îd^†.Cf“gYÉËóģžĶõýQCRŊËÍŋĘāúwtˆ?n=AXûŒžIRe‰Ýôw’zWX™/%kTÞF”·é{ąēādŊÆÉބ !=>ņâ0JōŠ,Ÿ“œ>úoÕxôßhCT{Ôtßũ˜œDÛĨÕĸŒĖrEiûq/ —íVĨ—æĶmâëFüĨ<Wy’@TĪØ[}žZ\Mƒ._|—ŦÐbSF 1Uū[ Hƒz™œčY’,iÆôûLæ7Ĩ…HŠ%;ĘabÍ:īķžž8Į[‡ŽÐ'#ŽĮ•låïÓ7þīË`ĮÁcDĩÏaumąŪ―Hïf a%Ö&U™kNĸũLW;kAĻ<nņHg „bþøW™Úĸ%›ƒîŧõ^‚K†tÚ^ô>­”ķ§ūÖYÝO@TŨčĻŦčĨôŊ)ãâ-iŧK!Y—ß@Á)‚hûðŧãÚ~ĸ·_›(ŧ ŨÚb]@ōbN ÃT(đ5\°ó_\ã“KâR(Æēk){ ZPú Į'Fļ67Ãŋ:L^%þr?›åę;ĸ”üĀ+:mæuëqĒú?&õú…Ŧ°VaIZ…ĩ›Jý$$X&sd;Î"y6NöV„t/y&ÐÆpÝÂũáänN=Mö<ōĸĩ·S ËgoŧweŌŲ  §Uĩåœ4 m~G:ļŌÑn'žôT„Üý’Wf$3ÎpfŒžS@&‡―ī …+“ÏJŠEŌ,nęžĪ`b`s ŋŋŊ2\VÜJlã%$\ŌÎėN‰MDÜĐāē ‘-–m};Č;ųīD˜Æ`ØRšŠ’W:%SëYwõo—― Þé< ―6ũŌ™í Æ>w€‘ĖøÂ> īš›ü:?2rWZŒ…|y„+_ųĮdŠ/ĸzĒökBNÏ|{þSY!’·M ÞĘĪüeŠXBfqē7w1ßK“øæjüŌÛŌg!Ųũ؟ŌjLÛTõßmŋz&Ũ_~I°īĘl;ðl‰_IEŅ-Qö†ČŠ,‘ ™kÍ2Í›hq0Kzō<é1œcÐ&ëä1ÆPį™ Ž1Û:‘ĒŅ―š}­ŒĘRö(đe„€ZTe&œĶŨ;}ýâ ÆÄĶĮ,ëĮŧĪäÛP،.æĪ>~§pÎŅîÛŌŧŦÏpĻą‚SâŠŌ•ŒfÖ,€mÖ2â­ëßÉÃĮĸ™– čũyõøČ:ųS‡wkmW™+;ó<YÕïāKr‚^Ũ`/î šĒŽ-c™ĩi Ķ(ÝbðčÃŽŲũ)Œ“$ÎôlbÓË~ƒLqGō ̃Įˆj_H{(Š“†Ås°‹îÚöqĘ$„ŧ ƒÎĘŋ <qÖåÁ.Ԑî8~ų„3‚šû?ËÔÞi+Y‚ũ#į•ôĒŨ⌠?Õ )šeÆēkBV9B’•yĪL·ĶŌyšĀģdÓsN>ŊŸ!”>ŊŸØjœ–KhZ4âzRðRœŽ~ \é1”e$3NÉíC I%œĮ•>G›iÆuÝ2�ÐZ‹t$Cđll­Å•ksëÕĐĶæ#Q<|ėųę‰;Lõ;óßæëÞÎÚėdqn.]ÉæŌ•ÔĒ*eŊ$ķ LRv" éyn‹ĩ�^Üd8ÜĪëßKŸŨO_f”`þ)F|†Ą#ĄÓ Ž―Šõ;™lé*Ž1X5ŋ‚n|%uíĩK-ąˆđœĪo,ü&: ŌhÕīâĶH―Ō߂5Utļï’bIŊĀ>2ý?ž`"Ķ6ó$ŸüFGmÍæėš—ŋ:Ó{Ž8 :sÍĐČŠ§Ä€?Lŋ7@=Ū؈j<Ï\k^ŽØķÉā“qē”ýZšE-ŪāˆÄ„0Ú"'}|Ũ'ï){ýŒfÖĪó‘4tŽĘ҈ęmû߀P ÓņË..-Û:)rÏ0žĀmGĶ­€‚ŲpšĮfÁ•^‡Á óBõÆēk;^„Ļc\áQrûŌDžļ‡!ũdæYąČSņ]‹āīœ c(ü―ĢpüLzëáõŨ1yÍŊāŪHˆßDFO"phgÎ-„6ŋ˜.Ō•šŨۜÔ>M0‚Ī “Dev`m€‰Ž]L ‰öËâü Nî­ú!<~Aíx›~^~ųlîģėēā&õŸ­_0qĨ%ūņvĨ[ŲAļSDŨ&8•ŧp°­'5ïCč&óá,ą‰i逨FhĢ#ļHÔÂëH#|‘úãe'&_ĩ3ļDûúĐôï:…ŋoŽ�� �IDATR~ÉÐ_cĸĸöÎ<ĘēŦ:ïŋ}î―oĻđŠįA=HBĒ%4!�Kˆ—{%NbK`;‰bƘ…ķ‚mâ,ˆíØH6ËÆŽm,1ƒˆn„ZQwKęyĻŪęŠęŠũęw8;ÜáÝWõšÕ’Z­wīj•ŠúMuïŲßŲûÛ{Ûēa`ŠÍŌ|ËÝÓS@+jt‹ŧ mÂd%Ā]āŦ=Õ{­ÚļJðTüĮóÔÃ!nŋō8ōč'š―?Í#XĸēkŲxŇņŠëãŊÔūFäLŒŸ\=ÙŅ'\”t€ ū–$ðÚyHęK˜AÜŌU„šÎũŪî{Q‰ōĘũá–Ŋ ‚*Gû *'viē])üâõ7=uĮßŲá�ÎŌFējH+jQĐø' ÕÏ~nG-‚0 ōĢ.�Ā*a;Ī4ĻŠĖķĶi„u"Ļ…UÃ*-ŋ… ,xNŨ{†­  ÖY *1ų‡Pņ+īĒ~ä!„Ō•ĸGaÐîŅ―jt‡vGžĶĄÅŧÎ&ÞÈ7Æž?›4ÚXĘN™õįQpŠÖïz-‹bīwįŸ} q–LÄåđØŽ)(—`îAN>øÚsfî–ËßÄÚmŋq†b™č$AíNlxŒN­$L~.ĻPēÃ`YŽĄš‡W‘,óĸ›Ší<4Ņ@g §ôJīqjë/JûWãŽQZų>œÂ6ĀbmĀäîŋböāŽ4–kĒüėõ7ģĸŲūß3k’gĩcð[>ĩR•“Ķ@ĪŋHdĢE*í“ī­eb*‹õEŒ1øQ;–ÕRĨÖĐú 4jÍø”7ēĖëh6TÜyŒęQ QhŲ&óí“ÔZUlËbÓ�ŠR2åeēE/ŪX’Ē“3€Ðnƒþé­oįŽ#Ÿãhýe§ĖŊ} —Œ^I`ýžqzTęéiļšN=@:%2ĸû3ŊÎgϔ…–ė‰ķm3Ý8DКÂÕ$K§  āzĢņ„$‘BB$&%žŲ5ĖĮĸēämó4~ók‡8<̉f�qWŸ$ŦÚ Œŧwāĩ„O{NāóaüNaĨïÆ)lMē:–Éݟeōņ/§*?üžáôbŸÏ`3W8ŋ žÎđ"Æ3jĩŠķ4ĢŪņ°6ĒÖĐŨjˆŌ„ÓõúâÆK4æĒyš \ĮEķ߯oؖÅõâr.s`<‡fĨÅI3Gų2’lÚÅV•Vĩ‡%îōJ―‚Sė™™(ŽėíäM{č)ģ*ÃÞ(ŋøēwjHÁqK#ld§ywG EÓB%įS]s]î%hũgíx zŠŒB§>Õ8 lĀLó8ģíjÁ"RĶpÉŊ0ūįOņÃßŋŋđĀÖWýH 1ÃxÃ?I°ølx8kZJ=šŠóe ÛĻųžø)(qAPōY%ų9―Þé+wîāwÁ3ę<ûi>Üō+)Mür\čCj9ōØgôØŪ/Šã!ÄĨŋĨĘßžîfėó�K5S�xšNĨĒ8ƒĀbDĩ]Ĩ1PGLŋF­Ļe1žÁļ&+SMcboĀÅŠ_ QįŦbĢøJz.n)>%5wC―ēCPiĖ5ņ|/éN BĒĶE#(Œxņ‰Ī§'ÐâB)Œ.? — –ą ÆŌM–n=ŽĮņŧUZđ&ī (5øØkˆpR€Sôņũ<ų““ĪÛĢČ―~î}RāĖ2ĸé°j@3lpē=ËLûĩ šU:Æ oaîŋÎøž?Ą°Ĩ™Úũ-Âāŋēåęã7 âáÜHXŧ“Č2™c' ûÜô–;Kĸ&I?ŧvž‚,<ȇ�&;ÄDÓycxƒ?JØøDs/Ī[Í8#ļƒĸ‚âØÛ’rh%l/rč‘ĸ͉ý;Äņ@Ą-Â'F•O\vóŲ‹æÜ3;đ9åiót8ts†―Xođmi bNvœS0G ÝnžtRrÅQŋ&Ø CØ9Ūā]žAwyŊ―�ņó‚Ő€0þ―ņo(~n؈–í‚Ļ‡ĻŠg< RĘĒœe•~€øó�ô–�KÆvĩûv@.ĢI„ŅÎLĀe!AŪX%$uÏuėfČ2 HĩӒāķmãG-QƒŠ?Ï|{–Ű’�r<·;Ü�"Ÿ 4ÁĖĨŋĘŠ―MqúnÔZfÝKü&›Ŋzå‘W (ÞЛæ(aû‘Ø'.æ‰―ué"ÍïĩTū8+‘8õ'6ŨÂkâFĄøŌú…4bP‹˜2Þā[aýÃŲHŪį4'ŦoŠ—Pūoð  >ˆŌ\ØË‡þ„ę‰Ýi‹oá*Ã|ðšŸ:ŧTÎóŠ ˜njãÅŅa+)ŧĩ1üWpËÆ1KÜÏÜs]CqŽ€›�€q ƕŽu·kS&?{eãÂv”åôÅNŅÁ-9ŲNëĶ?ęøõčݐlbĒ,‰đ;á“'EŒļĻh&Ŋ•œŠbÅÆ†—Ūt+úÄψ9―\þôõ5éóg‰’UpäK‚ĻM=\Ī,R *ÔÃ*‹~%K›œ.pîx'qŽ]0EÆÜQFķ2öšOáíûkĶwý!QāsōØĢ„ÁoģåĘw1īęõ ·|-˜QĒÖ}hī€ˆŨųdđŋO:ÅIūŸÄļ%ņ@Ôt@ sjuƘ‹ĪtA|ã{ÜŌ+‰ĖÖ-œ5yąSšûIŽïހ7ücgB€Õ'lįčîÏŅŽNŦÄuM‹"|øš›øƒįÂ&ŸwQÐė„6ąKïjį4ęeļ=Ÿ+‚xã-!ʞâ9NÁābw›,<ĖUđ9ÝĒ�°ūĖČ Ķ°<4ČōðôlÞSų>S­c đ#lŧœ’3Ģī4“îNÓyųūkKBZŅe.rũgÉyʒÉΝDC;j1įÏ0ߞĢ.Ԍ4Âz―†‚ä'{Æcuq-ÅUŒzc šC y#ã^þ~LyS}ˆ°UĄzb?{wÞ–+™ņó~ųļŋ1Î ac'6:âvHÁ.7°sc@0‚ŸÔiȃ@"dãÐTlĮƒH Æ�§°ãŽų°þūg'/vÃ7Þ žÁÁx-Ná"b=‹ß8ÆäžĸËė‘íī[)öxįu7ņÏ•=ū ŠĀËúÓ{”힊Ü:éõTÏÉ^Ûôãâv‡5qŲøíÎėū%Ÿ;!ąRĢN ;đî;øÖĮ‡ĩ'xˆŸĒätô‘D™,X>Þ͘þ%RߙÛÞ3dË~� cZQ““þ ÓÍãqúÕķ "‹íš=°”5‘wÅcmi=kĘë+Ž h 2ÆÄR⥠ÐČGQF/øĪī‚éï―ŋzŒFõ{ïý8›š“ŽÛö°…ņ6â5ūCGq:=R€Iš0ã�Tą=@ [Q™ĪDÅ"yÕ%1Ã8Åmw‘ĸ$68þėļŧŒ·’Âð[pĘŨ`ÜõˆbïÕfcŧï YŒÏÆļŧïĸ‰ōžënæĄįŌŸ• Čģ ð|ÏxŠũ‹C ÓUcԘmÅŠĀaĘÆĮŪ°.á'b[s^jžņÚQ‹ŧgū s „jyžú—]H‡I·ÛžöįkG 8uáÓĮd†Đ§ŧ]ÝYGÚQ›™öSc,†U" 3‰ðė,úĄïÄ5.ŦKØ8°)[..nĒÎcąD6$mmÄDq:öl`ýēÆáÄ}ïÆ_ØKÐŪsāÁ?§U?ÆÖŦ?AEw2ô#hc{,ō™ �šØVí~’ã 2Þ  :•…š ‘’t‚ã$Žœ ÜŌ+ąÞ<ÖߓéþIX°4‹ä–_‰7ôĢļĨ+â,ˆļ1 ;Eš•û8øÐgXœ;DšÛŽĸøýënfæđ>ŒÏ,  =8æÄ<§„BUq ’ī!‹a…’ tÚNÔv\lō1IĢSNĐ·.âG­îtĒUęábWžūN”—ŨÎéĨ9—_EąÖvwũåŌx]™ĩL52Ý:Î\{ķ+•w*`ėú7„ĩåõlÜŠâZãtyĄ ãFĐžō€ĩQ’AŠðVž’•ŊûSfwþ*þücØ(dōņ/4įđāĩ”Ā RzAí[ØðȒÓ'1~#Æ?ÉņkŌ"’~YœŸ2ž%dėMVĪ\Bbƙ@ĘŊÁDóXĸ l4— Įzۆ˜ÂË) ܀3xbFŧŊąļÍ'˜Ü}'=‚Z›ïœ>ŽĘ/_3_zūķüģ ^Äå”Ït9ũĪ'ūZĶ+Ól― KWĨåšųŌ\MNĨX8ģãŠŧĢ ļCąrnîb­8ï”RÜĪӀzp$Y– Ũ㟜ՄrĒ5ʼnÖqf['ēÏĩtGvÂሯ8ĨįēēīšõįąķīĮļ™§`56čHĢX%› đ`ŨÚ(™B”üŽČÐÆŊŧ•ųïþÁÜĻĩœ8øĒāįđāڏã7�Þð› ëÛcmý”ėË2ÚqËÕÄqtöÎĐĄĮiBąēŽjpÉ#;݄ rtR‹ņ•5ÎĶ| UąÁÁ°@,#nœ8ĨWā”ŪĀ-]‰8̉|x”\ã̓Ėü[Ķö}OS]ŲĪüĄŠr;ðîëoföųÜïýÉ@K<§ė`\Á†ßÍMžäüņ ‰€@ƒėī]ښovÅÁ ž)ðÆuoeûôŨ 5@0\―âulÜJÛķOI\FIïŋ‹Û{*В“ÛŠe1ĻpŽqˆÉÆQB ;ģ{ļõY]†8xĶ@Ņ-ŒģŪžÕåõļÆ#ē!V-ūõQ͍S’Þ›ÕĪa‚ĩ6vĸ5H<ÅėjEę 3zݟQđũ=SßDmÄė҉Ē_cëÕĒ4rhˆ;pbFˆÚĒķÝ)ōŅ”Čī] @ĶsĻ?s2í’[ÉA)#Î@bīņ€NulĨNa+ Þ�RŒ Šœ ŒwÆKfØäųņė�ÕÛZĩ]ĖþsGŸÐĀGŒĮųĀžÂĢI;ï/І!Ā9:@Áp1žV”ËąŲĢ\cŪÍâîvØZžóÏä·ãŸmJc‰°mä2֕ÏcŠy„ąâJ^6ē ?j/“þ^–―@ 4ˆÕ‚SUßü\@RuÞ€ĢCėŊ=‰ĩqĉ•ƒ{þĻZã2ā 2ā2ęģēīš‰Ō*ŠĶóIƒ•j*B’K+’ÖÄ/%sîSOÂ&>AũãmœūL?‡ÆÁcųÚOĀ̟ 8øũī8yė1Ēð}lđę7“4aˆSšœáXģßV;DŦĶĖ~.žčiš/•gŌhŊÝkpŠ/§0ôfT›‰!Į)Ât!’Ķœr4@ˆóũØEBĸ~cŽvý0ĩ“P™~Å“˜Üs'ū-3ƒĀ_^õBnyũLŒBCÛE…æûÏÏĩå–âTaþĪŽÏ6˜oždØAQÚķE`JNđ;îÎų%1ÁH|ZŽÆY[ŽÅ>ęþbWIë)A Į ĪĘ―éïS0ð­Ï•ï3Ų<H—áį <G #ÞĢ…1F―qÆ ãŒ&(:%B ą6Ī5ēúóԭϟîņ„œØÃąĪ!f„ŸfĸOfô6S“Ęû6yžâ\ōNliŅ“·bš TĶũģoįØtÅ;™ØôïPáx[)ĩîĮ†ģđk―””Īø'w5I7— ÞƒØ/ĆÉMĘ Žj XÔVÐč$~kŋ1ß˜Ķĩx„æâ•ý4Ŧ ÂdJŊ˜,ņtT•Ŋ‹ð%ūtýÏáŋāû}ųiŋœĘ$ēsņĶ#–sk<x:Ŋ0âŌĘ)ĄÏ‘ĐÃ\ķųŠL-ĻTr‡ģ“šOj“š„ՏÉĻPCBŧØumãvJØOã Ο-"7f,éß―ð0SÍÉdî`îą °ĒļŠĨUŒV0č1āQ0E,‘b5ĪĐÛÝįa‰lBxf 7tí=ŪI@îgé<>}\&Ä ‚›oDŠã°įq'Đ/˰ĸūßÃoÄiBEwRþ!Âæ}Øp2ۇ]ĩ‚™‘ ݖŊËŋËĐI­ y” u 5QÛFmƒ(\$ jDþ<AŦ‚ß^$l/īŦíyÂVĀO:“<1Nö‰îRø2°]āáën:ģĄ/�ôڈ‘Ÿ 2ąĒ[Æũýsj<x:ļ4QŒƒĶ�„L™ä[/ÏNâŽ5åõŲFīĕ|YŠNR>™  ‰kš›Č†8ÆM2 é0N–Í ė‚ÄXã°Ŋš‡­Đ.ã4—‹†/fýĀFŠNÏðÄËž‰vÔėxđt]œ=°Ųiß Š]žG QâÛ%'|Îč­íx )ö’d`#°ú‡Poyė“˜ęüfƒCĸíÚ$[Ŋų86rPgwā:ÂæNŽˆÞãzīĮĸũžÛKHÁīĪČܑŊ3ĩũïąa;qųCTCÔÆ_6ĻK[•qâ8ËÝ _ákŠĶŊŋé)uã^€/"6QZÁÉ6§g<ŠN‰VØ:§@�ƒŒg°ū>U* Ufæ§Y9ž+6IĐŅ=ČÍåôm|$„™Ię:SH6ē!FœĪÐfēX§ŌûKÝĸÅ ĘŅÆĄe؃ņ—OžŠaw4Ëé[,ūmg.―íĘŅw§ë:.|tJĢïvóĩËƒČ ==í“xÚ.1zÕN­B >ͰAk`zÉf|ũSĻ Žïý"~k† _û?3͌;p=‘x„í'Îb ÚÉï…Av}=Åp]éDĒėRáÛß@đG…”Öu7žĻCÞ§ā,ÐČŧÅ~=Īī”Ą,́AoŦ~äŠÖ~Ð݀8Î+Ŋ*稈ē9{ÕÅ ‡'ģzÛZÄ ĩ B#Š3äwuFæ[„ÕFIÞ\N –ØĻŒ8$šŦ§Õøôw9TÛÛ5§ĀŠeŽ0ÎåãŊbÔĮb•ĪĻSDD§-8MqF6Š'§= iÛ°äbĸ$ý‡h'H_Ïڌȇ$ý jm– Hë$%°­ĻI3lÆŲ‘ÔÃ)Ŋeîōũ2ņýORĻ<Ž,ģ‡ï& Þ΅Ŋų}ÜŌ–x@ÆĀõˆ”Zuk.S­:“ï=Š s "īTYæD˜Đē؋ō°§ėzÍ۟zũ�„axČqœJ^.;jGT§jÖpÅ뒠ō†i›6Ͱ™É2u_ā@'ĀÂāšĩ#Ä …ȏ8~ü8 [æ.Œ`ąoI‚t c–ĨõýäA Gȕ•'ÎEŦtÍȆ­°É‚?ߕE(˜[†.dĪ0Šo[ą‹zŠ―ZĒ(ėÎŅÛNėoÓS<îģÎAĮ{°6ïĘį]{ÛÉØNZ4­Oh…MšķӒð&Æ_‹u˜―ōýL<öG”fĩœ<ö(OėøÎŋæc‰Ēp„S~5˜AÂæÝIŽ%•OQģĒOéˆŋuÝMü·s5õ― �ĸėŅÖ%7mޏōZMÚvįũUZ]ĶlâbÍc"§@ų„šœ(gĮ!;ŧîÝÓX…a—Á54f›ą`•į2W™ezfšąMk8Þ<ƅÃÛzVŌu*ôĹ(đ,A/þ!"―RۊÁa!˜ËÜũÔ°‡―QVŨŌÛ§ĖŅgņýĐrôKÜôø5:Fßᚉ―<é§)ãŸÔ „Ōķ­X·Ņ]m―§šn’.žėݔöü ÃĮŋMeþøėýîŊģåę2ī⚊/GL‰ ūĩ‹‰°he’+ƗN>;åõŧštN―_ įrí‹{ 2ėEe8%Æ7X8ŊŠŲh(JĐŦf<―q§HgŪBŧTcčŲ€@^R3­Ō{zÏV_āpŽ5Qrxú įŊ―€Áâ‘FĖī§Y[Zßc dÆ 9(đžõĐĸlÆ)ąE„zXëRũ1IŠ/–JóģI;]îyÞØ—åčó$_'EŨ9ÝĢîS>ũZyŨ>6øxȉoÛø‘OöØ'ėž‘^Í=Éčã ji„ujá"Õ`™ģĒuœWW0L@eú{ŋûlđę―ŒožUƒņ6á ―‘°ąœH.ĶíH„K.<Čž}jžð%°zŨ”ų<MÞ-ČĩĐ+ÔBN|oãFÖ(%)áĪC/Y.pqFÖ.ųČMŧŒþ7`iwÛëRú)…;Ӕ2Ji ČĀx‰úl1ņ=6uŒƒëũóō —ÆýšõŽ.ŪÍôéó=eA 6Օĩé&›?ˆX$íõOÂ]Rß ™‘§�PtJ‘Wï"GoģLŽvįųģ?�kÓßÚŪŨJ…P|ë؀Āú�č’z…Þ'}|MŠA…ųö, þIæý“,īgЇ5@8<灚ãņC ûXA‹FĨĘūážÆqÖ\ô‹Ļ0îZ܁76ïÆú‡; CČänpW'å鸃s9―~9sß‚Ūšrė�ÂÏ%7Q ›Õ<ŅŽÛAĮâ~|ã8IŸuÎrÏčŦ·@Ĩ<ãïņšĐĪ\üe– ÄĖڏOóĨĒYÎÛpĐÍ6:'ķ…ŲÚ,[ÖoĨä•4 ā-ŒeäY6—OΧTXZ�žŊ!č ėˁá)/IÔzfZS‰qt�`ž0AÉ)ĮÍ9IąÅięÄß­FņĖ…”ģŨ(Ū ČŨ(›?‘Ïğ+īą4X=ŽQj1ƒ5ã‚ĒĪn?MM懝ĶCL\'ËV į9Ō8ȓÕ]ėŊ=ÎĄÆ~Ž·ŽR ŦDÄŠ1qÍ|qˆ™â0+ƒEF­OXŠ3ũųĮ]s-˜Ä1ÞzÔ֓ÆÍfĪ€ņT9ũ?ÎŲŊÁ)^„Cej‹ģßOÅDŋõ™ÛđëĨå�ŧn;ôKoÞōqU}/ )Ð^˜y`ĘÞ:ƒëJ”'J”‡K ÄK{íõī'ė3qÉ{Ÿög?hs%ý]iĪ@ģŌNōĆÆbƒ{îæÍWūE™lfei-Ūt:åš&ö 9&LōúĶĮžžLĀC;~Q—ށ‚)-#ëa ]IDØaí{åčŧ\ýî}ūX'õ ŌÎÂPãōāVÔ$ÐČtÍ,=EæÂˆÁq00UŸäČÔ!Ķ'i„ĩX‡Āúį4ðŋs\Č[e/›œQĻü øiÎŋæwpžM CxƒŊGL‰°ų@.ßŊ™ˆĻæ=ƒ—āĐF� öûĀH@�‰KsŪMkÞGĖbr %…pέĐãb ī"§SϰũŅýŽÛÉe›Ūd!ōŲWÝÃËG_M„(téðlR/ãĖRÏĶŦó=­–O=ķ6Ēė”ã)Hi^?iō#?I)ęē}‡·ËsôY-'G/ÍohEļ!čLZ‰“8;õ�Œ1ŦæąGcũž],NŨãRâΟāé†z=Žā. đtĒ…ĩ0{x'aûWđāڏQļ°Édā!‚ú7­ÁîÓ_30čj�/ šäĶÍoC˜UôKÆNÅKÔ―GŠðâ+xzv�lōԊB&'pώŽþWkX1īŠ­cLW°ēļͧZŊæĘO—+ņFYĖJĶūœšüųį*JŲŒÓ…„ЊšĖûs yÃą'<D^0ã’=ŠDIÎ>5|Ŧ-ÛĪ™}GÁē§8ėēņm  MķģũÉ}<īëf[ČMjzöĖ[á^Ë/\2Ã5kę 0|7OÜýë\ðęP}B·æšaüÅ/"؜bBūÝŨŌ%!Ýį�–ðUtæĄĘWW]5v,&)ÅY­\Æ?ÞIIŧpŪ}Đ*ņ Ž—ģ­ppę�l―�DlĀXaWÜŪ^ß/_0ÔûkW7aš mā(ŧĖķNāk;{ŸHC ­ÁļÂ0Jzũc. Ä&<€íü›ÆC°N5X ,ЊšYšą3Ē{9Қþ{hCÚA›ĩã|oï}|õž/qïÎû8rčՃXj-ŧžœ…{ŋĸÎCËųĢmj…Úė·ߊ—č-gS؀õũĢÚÎÉ &* $w NņâðØK‚pÎô3UXuÕčį$^eU‰[Ķžd#ˆę9ŠœI*T#Å)Ĩ­]ņ['NNģåž-„IÕįĻ7֭Чų ―ēLG`deĐK* sĸLđöLWˆDm|ÛÆ7…„øKČ?›”ĸ†6$P?•V +īĒVn ‰YĶËļôÞ:âPrËīÂũėþwÞûUîđĸŧL=Ūa+GZs)ųĒēģxKpDyôä�5ß°uĪMŲSZõ–V§îd`t―‡ķƂfãmÄĮÁ֒P 3G@D7GßÎâÜũÓZ——& Ø3$ļõÐ1ā=—Þžeļ^U/6ˆČ°Š:"rÎúN „­Č†mŧÚsÍ 2 ņŪ–™éYvÜŋŨ]ýCLĘaJN™õåóâō^œŽóR‚NNÓô“ĨÛđŦôīē1^XÁˆ7žĖL&‰°ThG-―a<q“Ą$I%žԏį/Ú  „–jfŽp<ãQ4%ŠN‰ŅÂAðÏũ~™ũm§č)8ĨīĘ9 jáĒvT=Ó FÏ â ü­ÉF ÖûÉó^åļ\ÔŠ<qũoëÖŦŽËĘ­?ƒČÆ]Gaø-õoų:5=cþ>pÚõØ­kĀ?%_/ĐõĶŋđÂĐėōĸ"7§!ŠräāvšũpÍŨrPžÄ—ĩå qģqbÆ_šįôō:{[r°4Ëûw8ë€-C’ ­Q�� ŧIDATįÓŠ4hFŽÄXÄ!°óí9Œ8ļI_ŧŠ&éĀ|%^Ŋ} @Š–‚SdČĶėRvʔL™ĄÂ0óí“|vĮŸóÝïĶ\*“OvŠę­›ßēę?}þßyÞúÅĸðã·rƒĀ'ÃU‘ėŋĸÓÚŠ“ —þ Ž·ãŪÆz3Rß#9Eî_û@2õũÓšņõŦv�Ũ l$I‘ÂÂüÕF…+WÐÔž)0VOTs4›ƒwĶĢ―ō^A/^Â3CÞpœ°~vŠį“ÆųĐvƒÉŨFÐMÞĨÅAE§ČHaŒĩå Ž)­cĒīŠoŒ’)QöĘĖ4Nðgw~Šûv݋'^ŌžĻi―ČW€wÝųŽŠÏũ―đõ―ýFū-p™6Ŧ"‹ģÓŪ?ÉȊ‹pžĩ.ÆÛb°ÁAR‘ãŪÃ)^ FX˜ÚNmnŨK"čĀ3XĮîšmžũ†Õ_ä_ŦIę$PĻVŠLÏMąrÝJÚķ ÅUI-]ĢŋōŲ€<?Ð –þ>‘‚S`ÄĢ5i„ĩŽ”øTĀąôīOĸsÅcei7ģŪž‘‰Â †žždúŠ{GЇøÓŊ~ŠGũ=’Ž ËĸNUý/;oŲ}ð…š7·ÞÁėÍ7ō%m"\ފ6+GĨąð0#+7ã–7Į@čn@Ė(ęïIÃŪKú •>�ôŨS­ĢwÍÔ7ūaÕ?ĻęO"’@ģÞdĸ‘―Œ­G<Å·mV”VÓ)0ŌĪ%Ũ,Ŧ”;ôJ+Ķ-đŪq-Œã™°ÖÕį*ÉoÅRĨ5lØĖyC[KŠ ã’ïáOãĸ]sðéú$íχ)’Ā‹ČÜyËî]/ô―đõ?û3ü­ Xž ÐVmŽÚė―24ū‘BŦ1Þ&l{âŪÎĀ]Ôævũ ŋÎ�^ŋęsĀ"ē"18‰|ËÞ―ûðK †F†Xô+É0NLžéė%ĨģyyîžŅ?UsUŠ4ė°ŠžÏxøÖÏ$ÄōŦč™(ŪbóÐųœ7t>c…qJN§đ+•ýî„Ņˆ{Ýͧïø#fgg1ąĪmšöUU=üÄÎ[v?öbđ7ņwč­·óĨ·ßH ÂEVĢFuú.ß$…ōĶxÖĄ3†S|ØEŒ·1•Đoŋd�@úfüėŨĩÜķ^Dū�\qæ DÖēzãJ^óęŨēid+ÛF/cÄ<“MåÍ ŪJã? wÐåEˆ!°>AĶ$L‘‚)t&ũ,!ülWßAėT› |ų‘;ļýîŋĢh0&åų4%@Ÿ‘ŋį#ŧžxąÞŸ·ņ6UþX„ēĩP,Ēūæ2ēæÍ` éDToC~Œãĸ6ŠáCŨÝÄ-} ŋNĮ ,nxýĘ/‹Č…"b’!""ĩJý‡öӔug‘BĄHŲ)ãŊŦĻĻ['Ŋ7ÝŧUxđŧŊhÜxc L/yŊLī#ŨĪ9W?nÖqĐķ+ėšz„O}ýØųĀ=ņDäxb’&ĩ ĻęvU}ËÎ[v~1ߟÏÜÎÃïøŨ< Ü ÂH"'~[‹ƒŪ”F^†1eTƒ8‹âĻL}ŦôŨӁŊ_õÏ"RŪ/5c 6°LNN2ur’™öm§É`qÏ(HaųÔīt7šĢóEA―)Ã.5ŋŽņĮfÝ}ÝdĪCÁ-Ðë<6ų0_|ðøÜ7?K}ūAĄPčbúUĩ)Č­ÖÚ·ÝũąĮįîÏgnቷßČ Wa­*rōØjdNĮ/Âņ&P0NĘņŧĻÍíé@=mhnxýĘoŠČU― M­RŒˆÁĄQmp|j’ĢģG8žx€ķÓĪX.R4EŠĶđüĸ2@H{Ôf_ô2vlŨc:Յ9ĢO^Û5.·@Ë6đįāūōĀųÂÎÏóä'ðĪ€qLbųiŸ’äƒéGïý=íĪûó™Û9ôŽđåå"lĪ:ó$Qk?ƒã›p‹„ęÔ],ö9€þz6ë5šä ā·P~:ėĐiĸDŽ·g1ÃčČ+WŽâåįoã›.gëÐËqÆ@ÉFqJ!ļ‹C8M8ÐýXÁIÜ|ÏõØ·øėđŸ‡öÝÏŅ™ĢT:Ջų1ZqÂüÎ=Ųußō―Ųq€?þMZl9ąîBŲtÅ;ZõfÜũ~Ž?ųØČžó@�žKøā%Ģ*úf”OŠČš|ÓTfiÁĢ4PfýÚõœŋå|Ū8ïj6^ˆ;Š`rēÝÚEøne"ŒqpLüýpcî}„{ö}‡SÓԛuš~C§(cųâŨ™‘ß@øÛ{>žŦv.ܛ·1 ĘGExW ÃŦå‚k>Āė‘íLîųüK‚ėĀs đDYi#û^ų5UuóķôĮãF Ck8oåfÎ_wįŊŋ­ƒ2ėŽR0Å%j=D‡’ŠÃ@ŽÕņÄÔöÝĮŪĢß§2WÁFą$x~ÚS" Ūđ—@T>­čEää=ŲuNÕČîļ üðŋŌ„Čāčļ8ŪKm~.ÁÞ€þ:KëÚnŧPD~xŦŠ–’lAfÃēäHÏŌtЀ…+Æ\ÆGĮX=°ŽawŒ’SÂ5.ƒE "ŸzļȜ?ÃąđĢ4fZiÅ^é‡ôÆM5ȄDyïÎ[vï?Ũïˎ[ų·ļÚAÖô’õ ŋÎ:?pĐŠū[DÞĪŠ@9oįKk—ĮðÚ]ÂۋČ3ûKģ đŨę(tĮ/ŅNwŋ·ó–Ý{^JũdĮmü˜*·Š°65J;û�Ð_ϙG°VDޖx[Dd}| u ŨģqŸRƒ_2û1RÕI9�| øË{>ēëČKõ~lŋ•ë>…pYn|C�úëy�ƒmŧåāJđå|ín >`XĶŽūDķŦ."ûUu/ÂÃbeŧ:zŨÎïŽúwķßĘUĀï‹ðà ô ŋžŋuÍķ•Œ#ĻęV„‹ŲŽŠ›€5ĀDZ"Ü+°DŪk˜Ŧę!`ŊˆėGŲkÕ>~ïGũ4ûWž'láwUųũ‡Ūŋđ�ýõÂņCÄEĢĀ 0ˆ2ŽčXĒÄäE �|Đó@]Uë@]D*Šš°ó–Ýĩþ=cÞ/BpÝMžŋ�ýõbĮZ+""ÖZ―ũĢ{úŪüYZ;nĢŽãŨŋƒÉþÕčŊþęŊþęŊþęŊþęŊþęŊþęŊþęŊþęŊþęŊþęŊþęŊþęŊþęŊþęŊþęŊþęŊþęŊþęŊþęŊþęŊþęŊŅúĸ˜H! \ æĪ����IENDŪB`‚�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/qhimdtransfer_32.png��������������������������������������0000664�0000000�0000000�00000004467�12262477515�0024431�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR��� ��� ���szzô���gAMA��ą üa���bKGD���c�%øÖA��� pHYs��Ä��Ä•+���tIMEŲ 4DՄ���tEXtComment�Created with GIMPW��IDATXÃݗyŒ]UĮ?ŋsï}ëž7éī3S:ķ”ÚBąĨ  ŪāĪ(BĀ%6 1QˆÆøļÄ]ŒF@Æļ!A‰KÁRĪmšLfíLįÍ{3ïÍŧÛ9?ĸ˜Ūt*ŅÄÄøKNrÏýß9ŋû[ūßsáĸ]îļÓũîļÓŋélzóßv`ųē·e–-}óƒwĸhųmģéåÄÓ2Øģjĸ•å™Ē@øņ_·|!ĻŨGâLN’={ŸýâK/nĸæwŋNxb›U^âŠųëÎ9gÁ 1âÐÓũ™õIÏ|''æ‚zátU’áŧnštõ`ïâKķú…*.)ļĄĄwíÛŧųË_ûtXŨ}tųÅį­Zķ}ņŠ^ŽĶ§>›g~ęéZ‡b“īŧ€Bڕ=ów‹m7â―ę_ĒH™ŊþdĮ ßņ­ÏsDÖÝzþ{6\Í/[{Jj­•™Øęk'Wä՞ˆS‡79ŪįJ^šōe-[ĪU‰’ Ē á0p@ĕ‘īó{ö<ýqAÁ9•fŌ$Ž§Čˆ2ÉgøĢ `ä”ĐĻ8AĩÞ`ĩ)KïÜNR Ĩ>=B’Nc]SœZĶÊSûĩkîĪ^™^#Ƌ|b1B=ĐąÎu°:čÁ>ˆÁĐ`�c IbÔ9Â(b`ļ‚s#ŽĄą;ũæWͧsa+Íä(F„rą[!fXedâY­7˜ŨšVĶkÁKC7û~fĀW”ØEļ4ÆjJ›)ÐīēyŨ+ī–ō,îé`hĪĘáĄq.\ÞMkЀÍd™ŨA]ŒKVķķčÚ.OęŲ&Hρ_æĪåĄį'•#ƒnļâ-ïŽG‡Ĩ%ŋ„4ėØ>8°û–O}lh€Ŋ(aB’@Ō jĒŦŌhNQ;2E4ŲĪ=įHĶFH5ĀÚt&s€QÅũDĘ-yŠfÕH*•?ßī•þæ4ÓýÉČÛŨ ;įœ—qį>ŋmįĢ7ßųi}ņxB}PbâlLJŸ‚QžöĮ‘îSŠŦíøōqTgĮ„\lY‘†īë<^ˆũQóŒZŦ"Ȱ1E“sŦ·<öĮ‡ßũģ{č;ÕÔW…ČFDņĻ0Ąãĸ6ÚĐ@6ķĖõ;čŒ,!•°‡åĀ>°ĸĀæk·î8øŪûŋĮÐŦmg"`#â(™Ųé$ēœ rv0ŽÛ„^JßBÚH‘�âZúcr}ûûjîĸ#ģ9ï+āÔáEÕĄ(F NÝ)"‚žĘg;ÄŒïąŊv”œôãđ€öĨ%Ķ+ŅuĢû݃O}ŋöôŲĒį āBKs‚^ÉPM*”ģsę;’$e<eĘ֐ãü%4b——1öQĖĖĄ?Ž"ŲŊčiũĘųįŒíïRÅ{ņwtŠŽš†ą3ØÐ\#äÉzYæzó)ų%ēAŽ9~Å ßũÉÁ)çĨØBķ”ĄĨÔBĐXĒT.’/eiš5"F=Tą"X—’ņ|ïʗþč]ûø=dNĐÁ3>`éâԑ#OԈąbɐÅJŠGÎ+œ†ˆ^6`2­â>ūņ°Îbqä‚*ä$Ĩ\ô.m{ØvĖ[tņ'–žÎ[·ë1ûÕ 7ėˆOƓ™{â‘Hf&2VŌcĄ2ĮVF F<g,ŠÃ9‡ÃĒbOŽWU*MITg"―öķĻt-wô|Fõč ņAqšâœ}M#ØÔÕcœSē…€  :+‡“Ē|ã­ĩ/š—m0ӂĐë0üÍį.――§īæa  ŠvĶ Î2Ō$åčþ =1íÍNš]2˜ehĮÍÉæ ŧ™ĩNiģą­Á5Wð‚ûĪxÞÉ~šZāŌaÉdĖzß }Ÿcm8“-ålėhö§Ž[üzzö‚'†T-Qēyû&ŠÓã”ŧZPÏÆžĮå‹ĶÃūėä·þþö­ ŋxێü! mGœ@ØÉĖā�Ô͚uIYÞeŽî―ˆe-Е_ˆošvšWę}äŨxfįSŒWŽÐQöđÉÏrYŨ8Ūđßŧ6Y“ÔjÂŅŊdŨ\ýņ\~ĸu5Žõ͊mŦš'" jO� č1olŽĖ5óY·ėR.,]BÎ˓ļßøäLŽsËБëĪ^ŸbËËŋå―]\Þ]" wĢ@&˜Ūž/·åóĪnßOĻ—ŋPšSG5=9`}ސ‘,�ÉÐīÓýĢĢc,ï=ŸĨ…€2’ļ„EþRŒÔÅž"kį,aÍĒE\š°g*xōFœ>‰m>ƒįAÍ�― ÚĨ15Ŋ6ū―öÝ{SŦsœ�œuĻSD š8ĘÅ2Eŋ…‘éAZ3í,--AUĐÆãL&5Ž:Úģæv,F=Ą^?–ÍĻĮ˜qۃ0\0\øäķßïÝ} ˆð#Úī`/žPąĢHA˜ŽÕp8Š~ å`SÉ$cáFĖ1ė0åTÄ֞§ģmŽŒŨÅujlkä\8`mų™Éņæ}ŊŲþÄ Į*ÎW՗+‡Št俈ƒ-=‘ƒį„=/Ŋh ÚTFšƒ†ž—ĮĐÓÉī*õļÎá‰aú‡đļŋƕ+ŨâÉiŌ–Œ ō!ņK/ũmųËáë?Kõ42rNwŨ§nŒjņzĀéŦŪÝ TģõÎ_?wĸÍļâQë4Œ ‡Œ4SŒ1†!<ýPߨ¸}Õf-ØŨŌN;qųų―éíÎNđ]OlzjãÝgĄãÝ?<˜tŋĐí‘L9xėLƟ™ĩ.+æžÜþāJ­ōĨë.ŧQķ-Ē7XJ”Flëû;ŋyî‘ũßīíĮ}ŧÖÎņGšžn\8drZđkîĒŦ>Rj'øO~°N“õŸ[ar~îņä֎ōž+ōA>?ZÛĮážïýâϟڒĖf·éÞÜí6 såͧ_ÅþgäŸWëmÓlŸÜÐ����IENDŪB`‚���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/qhimdtransfer_48.png��������������������������������������0000664�0000000�0000000�00000007624�12262477515�0024436�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���0���0���Wų‡���gAMA��ą üa���bKGD���c�%øÖA��� pHYs��Ä��Ä•+���tIMEŲ 5Wūq���tEXtComment�Created with GIMPW��ėIDAThÞíšy]UĮ?ŋsï}KwzOŌI'ĪIa $  Ē,ēđŒëp,ĀŽQ)@—ŅaÜĮQޚ‘q…QҰˆE†lBB:éNŌÞ^ŋõ.įüæũŌŲIddJŦ<]§Þ}·ÎýÝßō=ŋßï{úÁŸĮŸĮ!ããwqÁ57ãËZóĮh€ï§>ÞÕÕōØÛÞt#þ( p.ŽŊü‹?géŲÓ~{õMīþÉ âaå-į}tÁY‹Ŋ―þcĖ8bīö^œtÕtßZŨĻN,ø˜Þþڔö</~áþî|Õ�Á9ËöþŸģøŒũLuN·ÝôĐg}ų3<{XNđĶkaEY?í§|TŲ_=VMô‹Ģ?ŦVÔNĸq_}S~ë?%I\gÄ#ðĮŅŧį =uþđŌ9eÁ Ï|ýŠ/þ?8Ā_'.›V§čĶ˗]Ō1{ælœ:QĻqČ{ôĀk=ôþáõÓÃŊĀZ\ŪĪũ%õGeB[ t͘ŊÝŧ!NcâĪHKãlÝÕģKÖŪčÖŧo‹??&bÖû&wvtM^{ÝõŨ6oÞ"Š{í88zXöSÞ` CĪ_ZÉEgނxeŽæ‰“‰-%y’Ī€uŠ …rŊ"J{ÃEōËĮ>ûýŧoK–øęTē™Œxø’ņē5ÕånÂAŧ”xt7z{đðŌĄ§ĸŨļ(Äi‚u!ŪĶ4b1äŠÝ ū "ĨJŸūõÍ{ĨwŒæ+û{ýĢ€ÖīN\Ī}åŦýýôÚĸJŽžjœtuoeņĒũēĢï1Œøˆx ÉARkCōÅW0&ĻĨ؈ HĪÄߋÍȆDIAØYÞ!­Öļ7Īf‹ŠD1‚šÚ \u8U:TuŽbđ‚o„B)$„Æš/nŲSaRGF7nyˆ /û†ėčĸÆ(Šj‚sqõS-ŠE(GƒXÍLÐŪ‰WĘ/ųüÏîžĩrI5 ‰ ęˆ\…Š+#œ ĶÅ,ðg žįW=c<TĮPP›ģXkAÅĮ ÝC$6Ą!NQŪD,<e2ë6Xđj3Ë.k•ËÎļ‰ž=ŋÂi Ūú\ĘG{ÛMyÍR ‹”Ģ^Ý=īR†ó/�ÐPŨĐMé%ōČã_úÖÏ)_?–FŦ^t„ķBäBÁ_ņQ,ŠaýĶ<cČfStNnķmßÃðh‰Æú ģĶĮaĀ3ĘĖé­ uÔF%–]ÐÎ_]<™ý/dRŒ”ņ―:ŒįÓR}{yčņÏČ /oØ8ģnļö‡s†ķm IJÚŌxí —ĘōĮïþÜ=·ëmÕÁá]DhŦ2(ŋKÅdãĶ­œÐ5=EJqë`ûŪQ^ØŌĮ”ö&fīĻZÔ%ĻMPŠІKQU"Ā™€þō�ķő$ڛßĀ>þ<ôÜ�A{3ƒƒÓ‹'OŲ3T(õĖĘo ―uŅh›,öîîđ]ŋvH!“ZÎm™Š­TąÔKŒļ*â’2K—ķ“$Ä"8˜ÐQĮgĖDU ũZ…åÐlėĒ­`mį":ÛßĖĢ+ŋÆÎÉĮÆ9ŌÆĻü$ ýRÔÏäķ7’áTûôšŊüå>ÅGh%Īę!Ũ TŠ,|•M™‘Ã4Ŋ֐ĨV?bĶVKZ~hį&ņ&‚­X<ąáÄæÓy~ݓlØø•·|éxâČŊ–j*ķL))ŽU€Ņ8'ŊGþS ÆkBãėÚõ<ų‰íøå@+#‘8ĖWÅxŨ­ZûÃŅ5ëWœ{ß]Ž~ÕÖ[�Åđˆ8‰_ïFJIžņä%ĀOĨĐØ˜ī‹°Ąĩ<ūųûŊüwr7ï}jåÜw[ŽĘŠ›X‰’$īŊŧąĶøŲæļxîUDÁ�ōōJž–FÔéĻZ―þôk§Ęg?Ņóîc•göķ*Ö%`Aþį~Ýlí*l41Ol„rķNŋ(Į―ĐģAŒ<YNü[~/ö6f‰ņ@ÁŠEU L@ĒÉXddŽČ+"ōŠ―rRIĻ Äˆ/dÛRˆ/ĻUÂaåĐū- E-“NĶwxísÚÄ8™īų‰í“�ķü™yáŅ;qŋЁā{^ĘЖ™Čėā$:šĶؐmŧķŌØ6ކL݅—42ݛÅęŌJâJŽdëaa§VqÖądÁRÂĪĖęW~‡ïû8į˜Ý5›Y­sxâååôy)š&’ó8[u*ēöĮtn|„æJÜü·ÓýŠO<<ãá‹GcŠ…ĩ―ŦH{ķĘ LĘL%æ˜äĶqJÓBþŦũ{\1éôÆŊ≇sČô|t}@čĘD’iJSŨ’ĄŪ%ƒ5 eW$ĻĀ·ŒÄÃdý:|ņk‘EįŋƒíđÝä3uœģq9―ꇜúĢ;õ” *øÆ'0)ōņ(+rx ŧwî Þoāá]?"0)*Zfí+ÏP—Đį;ÛūLĘOqË BkÓķöoÆx“;5$0) …<ÏåžĨĨđ•ĒÍŨō ŦBrŋąøJķ­øýõÍÜ6uöä‹é�ũĐ ÐŪ=ņH™Ô||0Q!å§Šš,Ž„)GšôŦē0Ŧ1SÛ;ąÎ’ ‡Ŧ]ŊŦÐŌÔJĘĪɅÃ&@<ãŠKŪĄøĄY|úĢũyOÍ\øîú5­˜Õ―ķgŲåŸ$0ē— ĻþA' ą(õ3\DÕUģ‘*đĘ0{Jŧ‰l8vOkíøáčÛ·_ƕŠrOŧ:O<įŠŽ9Sn<čXEŅZĸOrāTQtLö>ųĘþũÝũĮŪiÕũ9ũ`#FvíX'Á™ˆ}8[ßÜųĨo\U…ŋŲkrĒ ÖYŽū†‰ÅG)WfĻ7Įāöar}yâ(F;6Î!Üūhčj4^x°6!q.i<Ž“f―‘Y‹ļi_ØË)k^9Vž."$ąeĪ'OywHĘdĻŦÏø)ĘEvmBģ––Ūęš3‡§™ *B]\ä–ö],\pgzÝŠo7Ē9AdL™l­b†Õ!õã|Ōõ\ |ÁŊeÞąs_f„â`™ÝÏpúžEĖ8uŲlßøcrĒ(bī0ĘĘUŋaĮÖÝL=­ý6[EļŠ2ÄÜđ ąåGŲ”nýā‡VūoIð›ũžókg=° Û8õNcWûVĀ%ýšmčhƒė#õ5ō1ÆėÂÞË#!Ã/åđė‚Ëimj…:ŋžī—!e2Ä.Īâ•I§Ō\qņÛų튕l^ũ“įÛĶN„ķp”Ú2'Ÿq Åþ{ņ3į‘5Aū)Õ2'-þš‡ŋžihĖFŸî˜―ä2—+‚ˆĐĒ Ī(îāđ#ĄĮ)ržíüKhlhdbzs[’õÆUÓĒT•ØE”’<ë†ĮžSæÅ1Ýķ2é”6Ž ųŪÎķ1}v+Åþ{ũžpüčķïîČLm)ũÝŲÚŅĩõøđï攸{jÃ!ĐŪiĨ˜]=f€ĒX—`ÕõPDØóâ0'"MMtÕÏüÖE ‚'>>ŪÆÚÄĪðS-,mŋĩCϐYœĄįÁí”Jģt„ë[N`ڜS)îšk_kā‰ķN9ýÖũHHӔ34•ė, މŦĩ^â5é@Ïą1ß; ™Û‹[‘*CS#͚ŋk UM”h4aÁų ™–Éܖ…(2―…nzĘݜÓþÖŠ3\ĩĘ[,sšæRHFY8ï,dÓwđáŽ+?ЉĻļž áBâÂrÔEØĘ ijŠb’ŌƒuėDž`ū õ>ĸÜų7ōt5Ęū Dm/&`úļ*ßmËLĪ9Պˆ0cÜ,\ SÚ§’öŌĖlœ(V-ŦžÆßjýxcÕՈĮĐ-§3/čåĶģŊeâīã°q7bęÓDP^z.DíZk1DƔW?=CK•…qŪoÓÕc“šg“Ú)œD•„°R­’đ\ŽŅBuP CâbLc])“!cŌ€`DČxYĶÔOãÎŦBĻķŊŒ| slYÃˁgiz&Qq5bĐCLņ&āŨŸ―·Ý·ßÔAP7\nąl}ö‹7Ÿ{ëâš_…Ō°ģž/å‘dÂÚ Ą·ÔÉ q>$kę@„\4Ė@ÔÏIͧáŽ#2!žxTl™B\`wđ‡°#>SęĢuÉl[w/ÓO~.^ƒjƒãO#hļĪô4ꊈɩņÚDRo`dĻąÐ―ö9įCUė`€ÖRgõH―˜――ÉØ.ņƒ:eũž>Ô8œģĪž­ĐņXMŠ!u†įsŦûhÏvÐQ7• ģ0"RqáėyqÍ―Ė™wØUĻ+ ęPBüš35Õô~‰ŠÝ†6ĘðŽõ” OÞ7īĢįģo―™ÞCI―1q%_ąĒhĘO‰ã'Īę·TÆÐWĪgp;sO'€Fŋ‰ÄExÆg(ĒâƜßq)åĪH))‘GŦĘÛruj‰âŽÐĸôm,YôiŒ· įvUY\œČ†G?ō\i$ũU֜ĸ7üÏQ”O\6ý?;ęÞÛÚՌņöü>0jí‰JūBsC ŸļâNŸž(Ķvðë‰Ïžp7‘‹hIĩÚ2ĄŦPˆ ’ÎĻæöČsëŸĢ7ßM)ÉsfÜˍßL]sĒqi ĮąeՃũœvų†O3'~ņþîũtÕôŸævÎTŽ^ËTŅŅΜûŸúæų^z‹f―:AÁŠ%ëcëČjFãaÂ$ĪâĘø& ŽDüāąû“5ÏŽûWSņŽï ðēøÚYųŧö‹Þvû;ˆc@ųŸŊų eņ'ųšØ‡šĶÍžč–Ë?Ū“ęĶHâŠä?ē†Ģ!R&MSĶYŨo_ÃŨúÏ28:pÁŠŧ6/?œž'ĸK'ųOĶÎ―ÆžøÄ­Ÿ;íōM·―Ūėgüý w8co8á㗜p.™f|ã“Ø„Á–ŊyXûâӛ2AæŋđcÊW“õč}žĨýļđFåÜ} ßđýcĸ/�,úäœö8‰ûĸŽúôļS<ãÕ%.Ų•/åWX›ü8Ī7<{įKņąČúõ·8Áø,=ûƒ|óÏ?šøSĸ S.]īßž����IENDŪB`‚������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/qhimdtransfer_512.png�������������������������������������0000664�0000000�0000000�00000323423�12262477515�0024510�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���������ôxÔú���gAMA��ą üa���bKGD���c�%øÖA��� pHYs��Ä��Ä•+���tIMEŲ ;0Uå–Æ���tEXtComment�Created with GIMPW�� �IDATxÚė―yž]uyïĸ~ÖÚ㙒“y$ @æIˆ 28UmzmĩVĮZ―Woë zÛ ÐÞkïÐđvķí­õŨÚÁÛk+"ˆˆB…@2“ųääL{\ëûÜ?Öžũ>'įd< ß/ Ų{ŊaŨÚëų<Óį ‹W>ĸ vN8v ,,,,,Ķ‚ĶÃÚÛîæív%,°°°°°xÁĀ<…ßŧm#ëíjX`aaaaņʁĖDųĩÛîæ·~ãsļvI,°°°°°x…T(!|ä@™ŋúĖĖ°Kb €…………Å+�Ē�䀟u\þũú{XbWÅ� ‹3ž�  žA _ûĖ=œgÆ� ‹W� UájŨð·ÝÍvY,°°°°°xe°�AQ`• ĸįöŧxģ]K�,,,,,^!$@AE™cþvýF>öŧŸ–�XXXXXœų$�(‰ōß·õsï§ū@Éی%�Ŋ�Öä>•sųýõw2Ûی%�Ŋ €.ð^qøóõũr–]K�,,,,,Î0ĻĸĶH€ĒhXð& _ŋínVŲ•ēĀÂÂÂÂâ 2þåî…Ēĸ ,žøÖú\ô™ûlq %�§=|–,žŒK.-=}]ˆīEAUX&ĘÎáú_ýuK,°°°°°8í‘ËusÉŠO°î柧ö h!$‚A=bļŋžã=Ÿø9ŧr–�XXXXXœĶP@ÄÅuŠŽ^þŪ[ũ‹,\žĨC$  þŽėrĮ†ôØīĀÂÂÂÂâ4Eåw@\–/øiŪŧú“œsîųĻ€1Y  üųŨ}øoŸ―ųv-°°°°°8mã�Vþđ,˜u Ũ\þ .žðjœ|; �4Œ|H|þāSũ°ÜŪĄ%�§a 1ð‚#ú{ŨpŅŋÄå—ÝLĄ€(% · Ę[óĘßÜķŅķ Z`aaaaq€pF°*"‚ëéí:‹KW”+Ŋx+ån'müBéā WðJ…oß~ÚĩīĀÂÂÂÂât€f�a`@rN‰ra—œĸ1Ūūútũ–2m‚’Õ XĒÂŨßÃĩvQ-°°°°°8íĒ�“�DpŪSâ•åÚkßÌþūķ6Á”V@I Ýķ‘wmļ ŨŪĐ%�ÓÚôKK8@‘@Î)ŠĨïáĩŊų%æ/\ÐQ+@@5 ü•ïð™õũŌeWŨ� ‹éJ�Dâ4@PÞ/ņë1 pˠʒ9oā†Wĸ +Î^…8 Ķ…KhĀ î×nŧ‡đv…-°°°°°˜†ˆý~!üS @Aā8.ģû.æÚŦ~™ĩkŊÆíÐ&˜Úäc(ŋ{ûFÛ&h €…………Å4d�’2øæo pp$ā Ax�Ũ)’sËôv­āʋ~‰K/}][›`š7 žÝĀW?sįۅķĀÂÂÂÂbAbũ?(� þuŦūĖîƒĪ,š  Ž“'ïvS.Íį’ÕæŠ+ߖiLí6j\į(ĸ|ûÝ\jWÛ� ‹éC’2@D0Ú`įþoģûāƒĻúA­@øų€ôPČõrŅŠóęk~ŪžBÛnUҰÄāl­ßČ v―-°°°°°˜ŽŅ€Ėī_eŨþãåũãûõ°00(tœų\‚°úė[yíõĶof9 Eƒ‰@7Ęý·mä=vĨ-°°°°°8åF_RF_Úþuœ/ø.ÛũýšÞ" ! ȓËõāû Î^øv^ÓmĖ™ßŸ Šˆ€*a— ū~#w|ęNŦ` €…………ÅĐĪ�GüDÎ-qpðq^Úýuj8Ž· šN|ŪĢMæÏž†Ũ]ĸk,[ū§ĨM0 ’ 8ðîœËĸļc#3íú[`aaaa1-ÉAPčšEFÆķðŌŪŊ14ö"đ˜€ļ=(ĘĖžU\ÍÎ_snĄ―C@%î;ø˜ŋ·þ.Îēël €…………ÅĐ2ōãžĖĸ \xĮÉS­`Ûîāāá'qqP5qM�ļt•qõ%Ÿā’KnĶh%u! ÛáŨod―–�XXXXXœdóOFļm€!pÞ0;ũý_ö |А(ŽļäsÝ8NŽba—­ųW]ņčęvÛI@Ē@p#ðĩõđĘ^ K�,,,,,N2hHvR ‚FeýžĐōōïðōÁ0ęgI€ÛšÝ\pî-\ũę[ééËeũž B”5ßüė]žÉ^K�,,,,,N Ð ˆ@Ðp°8Ļúė>ð ;öý Æ4c­�‰H€�—s–ūƒ›oø―ýųÎó‚Íf‹ðõũð‹ö:X`aaaaqĒM~(āŸ51Ųh€†ĸĒ!ÐPåGDpÄåĀĄōŌîŋÅ7õÔ~ōđn\§€QŸÅsoä§nÞČ܅―q: ,-°Î@rbøÛ6r§―2–�XXXXXœpŊŋS ĖĸëØh‰ÓąQrō~ŽÍÛĸŒzs8KōÝļNcšĖîŧ7Þø,;{ihõģĒAam€(|îķüîųu;RØ� ‹“Nâę€ÐUO+üH8 ”ÄqōŒÕöðÜö?aīš‹ĪžÐ!ŸïÁuŠĻņč-Åëîäü5—Ëg; Ē_läųĘgïe‘―&–�XXXXXosŸQŋ MD“m3$�—Fó0/îú ?ö bÏũāš%Ÿra>Ũ\öi.šøFJåö ‹Uy—ūēþÛ&h €…………Å ðø3]ĸ­€0W/ĐÞ―„ěH ðãāÐôFŲūũŸŲ?ø(Š^BÜnrnŸRa—Ŋý(W\ņ6šzr­‘€xš (oDųÓõwģÎ^+K�,,,,,Ž3 }‹(P8Ę/Pî I�“�4iDÃh‚‚ƒįWŲuā;ė:ð�Æ4‰2y·c<ōn/œû \ŧîCôĖĖeSĐQŪ�þrý=žÝ� ‹ãN”ve@ÉČũ‰&$@bFTã=8âĒĶÉūC°mï?aīr ÁuJäsÝ|)ēré›đųúۙ9§€ïgøGTu ",åÖßÅ'-°°°°°°8VÃ/NœÃ<ýČð'ĸÄ$�i'’ŠˆF4H Ļ20ôÏïø*Æī�·;ė,pX4įj~ęÆ/ąpi_@4ËMeÂ―ëïáK–�XXXXXXŊ@؇Ũö–Æ=0ėĐ…ŪđŠÄĪ  Ęž&.#•í<ģíũix# pËäÝ ÓOU™Ų{.ozígÅđK‚F�yDŒxJ Ã/ßv7øđ/ģĀÂÂÂÂÂâl`”5Jû“NīvhhØģB! Eb%D\jõ6mý}Æjŧã#äÜ29·*įsóšûX―ö"\7Ü­Ķ#Ļ€Ŧ›.ūþNæY`aaaaaqīŪ?’p:ĻDcÃy�AŪ? ĸK*Ĩ "‡=ü!H74―Q6ïøsGžEÕ�BÎíʐ€b~Ŋūâv.ūäF %7ŽÄ‰ €ï—?Z7įY`aaaaa1óŸŠŒŧķÍŠ}˜ÓÚ�Ģ΀ļ PSJŅkéBPˆïŨØšûėüQØ!ā„‘€.DŒúrý\qá/qÅåoĢŧ§Õ D‚@áÍĀÝö iīĀÂÂÂÂâÄDâ@ĒøŌ‚„DV8Ĩ ákiEŸĻ50ÚVŅxö€įŨØđĸÛž|ðp†€sƒî�c<rn/ũŪyÕ­ôõ—b‹UÄu|ÛÝžíLŋB§īčaõ{Ï: a–ã:݀ŠŅ1Uĩŋ ‹VįZÄsōNÕxfdӟlß?ýOYÃh@j@ÆÞš° (ڋ"éĸŧ _“”ē@ÔJ(a”@Œi°wāÍ!–/| ŪSÂu šÞÆxˆYĩė­t—įōð“ý{ĮČđЀq†`•ŋŧþn–Ý·ßīā8`Í–ũ üęë›.zÂspÂ{Âī‚XXXXXĶÐWøkßŋÜ�ÏĻęwÔ跟ýģ{O݉E5}N6Ð!(ņ‚Hš/nöŨī `ÔĪôCëœ&‘ÐÄ3rþCOSoąjéŧČđÝ8’̐ëĶéaŒˆÃâyëxÝõsųîîdŨ큀$Պ„ą‡y_ļ}#KîđƒOŸĄ1š“`øoYv8ō+ ŊčRUp"cyýÖø[XXXLdhψUõEĪĶŠŠŅß2MóO›ĸj—"Ïãģwq“ߥ�߇ŦŊx7ëŪú89·”DpĐlįų_EÄMņ%ŠÁkü_‰üo!‰Č‡ŊiøšĪXGĩväöƒ― 39Ų­óģ�c<šÞ(FýÐÖ(•ÚAzė žļy Ž$å ņ†ĀWEųðÆ øgŌýtBk�ÖÜēė-kßŋüqäûŠú@NDœīąoŸ!maaaaŅæą‰ĪŸ™ļ@^UûDäuŽëü}Ū”Û·æÖeÖÜšŽoÍ­ËNņƒĩS Žō…‚"ï>Ōˆ{þðĩH Ęý'…‚ÉkécöĪÞ8Ė3[~‡Ņęv@pœų\O *ĻYč*Íå†WÝͅ]†8ī-xŋŋž}#ģ-˜�Ŧß·ĖYûþå­đuŲwđTÕ5ŠŠ)o-―………Åņ#’ŠĶŠŠÎî‘=ĀGÖÜšŽï$žĖȀīšęä―T—�DcƒSŸi• Ξ&a"ēÚQq`įķĸY8MPqœ<đD‘‹B~ë.[ÏĨ—ÞLūāÄŊ§óįTų“ÛïfĨ%�pþ/œÕ-ĸxxmŪëÞ[XXXœ42 " tŋ+"ĸžæÖe—Ÿ ۟}ÔkĮX€j6 é Hé� ‘`ķú?Þ[ĻØÉĩLĐcL-ŧĸŽ}ƒbL“œS ŸïÁqriC>7ƒ+/úX0M°ŧØFBÎĄ*žEáÏnŧ›Ëτûåļ€5·,[čäåË"ōßUĩ‡ ?eKú-,,,N ĀĩĀ?­đeŲ-ŦÞĩ8wr-T2í/EZu�ŌIøŽ)N,ēĻvŒĪAÐ!PgįūååāųU)é�'€1ŪtqÉę[đúŠũÐŨßÝ6RX$˜(ļáŦëïæ§,�Ö~pųŲ_‘§ŠSÆŋ ,,,,,N8”�"ē�áæJđ;ÎûųĨÅĖ;ēÖšÃ'4ŠLïô‚ÏH`u[Ģ�I?ĻéĢfjËŌ$ĀÅh“=ßcÛÞoŌôFq$O>Ũã ĻËų+ßÁõë>ÎÜųý“­ Đ 8OāŨßÃGOįûã˜ŲāęũĩÃß—ķĸcđiÁ„ŨØęžBüË-,ĪÓ_äč;ĪDDR$ Øāyįþ‡ÅŸ|áë/KEûpŦutĸņ @4 îdH{ՔJpĒ–$uŲI>ŋž„þcLæąH+‡~LĢy˜•‹ßAĄ0“|<OðM=6ÂŌ7Ōuí<~üËlßō2ŪÛÂ-‚HĀ<Qūļþn–Þ· Ŋ8pþ{–öŠ#ßTÕ ÂT'ëõŦ*ę•˜C@Š·ėRœ•'ßíâŽO–ĒíÄĶ)ŊÐ)­âļŽÓÍMAý3—č3Onz­û+– Ļãi`üŒŊ˜†ÁŦúx5(Ļ*Nôï䈁ĪuT w{ >ðÉôį6~ŽÂh™>Ž@Y,0 ‡YĒĖRĄ_a6J—F•Eī�NĖãĨíï‘ä^āR›ķw$ ŠH8:˜v€Ļi?ĶqÍ`JX(Þo@<†+[yvûq§Ŧžˆ\ðH� ę3kænļæŨxīôež{vNJå8Š ôŋrÛ]ĖËåøø]·Ņ8m įTąæÖeߑϨoRfKU1žRčË1ce7Ý J”æĨ薙]œKwŪû„īF=ĢgdĻÅĻ9―ÎŲFwŽúZOŨëyŽįĶjÎØßčÔ=$ Š(5ŋƈ7Ėða†·VŲ^ÁŊđqǁ›šöwīėzŌWl°lÆČ7öVGU(Ë$fCƒÔ°ßÓT}žFSųZüĐPÏįš+nåęË?‚ë–B̐–‘Ęv^ØųWˆ8Ą€-{ýC]ÞHŦ7|]Ē>ĸ0ũŊŠą:`4!HĢφŒ ‰hæŨĢ!3ÏåšYđø?ÐßŧßÔðž Æ4’TPoæą§›§ž|8œDØâXÆs øšŋīņÎøš[—ýšˆ\ķø›ïŨ–ĶĘūe]Žļf ‹f/ÁÁÅ—þüúō3ĶõÃmZ{˜ŧŊ�ƒp<Ūó+ņũĨzæü>…ā]äQóŦl~žŸØÎĀÓC˜Ķ =ÞÄŧsŸ™Ĩ:sĘuf•kĖ(6ĪāÆÉ՟!ĨŋŲÖņœøŒg>Ą7Đú—ą§öö7c/?faIČCBČL„\dd…Óg q<oŒwþ5Ëū™đý—“Ëõāųc mWąÐÏŦ.þ$Å|?~ōĸā5“hGī·ð?ë+―Ÿ―‹_üâįØqÆF�ÖÜēė2„‘Y“ņ ÄĘsŠœ―î,ÎZūŨˑ“3ōģéËũa0ÓÆī‹'ÎcNDENĢ`sF}šEn‚0Žõ=q܉œøkyĪÓáYų\Ž84ĨÁÎĄ—xę{O2žų0}ų:sŧkĖ*Ũé/5p$ļŨ”Į~žnĐÄĮŪūōžęŌ’ #�Q”�_ÜųWˆļ‰ö?`H—Ũ‡ÞīhŨ[â“NÝ;ņ>Lō>I=F҃ ÐÔ―E âäY2ïFĖš&3lL3ĨRëĒÔųÉæŋā‰'ĸęX#&éÛ#Œš<†rË―ØtÆE�–ÜÜ/ŋ&"ģŽô`RUÜĒÞóįpîõËčgę)=đ>fįĶr>Į'Ü<&Ó-,}š’tÚe:Ýéč ·>ÓíHŊÝąžÛqŧ'ô„\äŧjrS~=ÄqPŊNĢ:ŒĐ 3hŨĖmД}HĢ’ģāŒ=Ónė'ó:= '~<ķũýkŠT/;8ôЉÜįÔčāĪ9 ø“ū ņ �Æ"ŋžA* Ų>.4Œi°sß·ðž* į\K>Ũ’€FĻč#Rä’ÕĪPėá‰ĮŋÎÐÐHšHEÍ *pðOëïáÖûnįÁ3Š�ô-é{'A_é„y5ŠäáėkÎbÕeįā4r8â2ŧ4—ÞüņĶ:–ücúfšnŽá‰ $'ó&mSĀŽņŸčžĶ{dBUqęn ‡sBūŦīŠËœJzčäPõņFð†ũŅ8īƒú-4wĄ^Ė ’Ē89ōiG—ôĸSY[\Gpsy\7ëļ8nĮ žåŽÐĮÉQ*v‡ÏŽīųo'V’ōĀIh%cĀULvôŊf&|*$ óë"ēĪĨĩË"Ž.H0HhũïÐôFY2ï& đ><ÆðL-Ėøã°vå/ÐUšÅĢýûũÄI­q\Š ŽåïŨßÚïvū:]ÏSšĢŨūų,āŸžČûŨ0ėrލgģęĒsĀŠn‰đÅų”s]Į=ŽyīûŠŠæĶMņœī{DĮ›�Ä!ĩWhŠcšŲtZdŠÄDŽĖÆ ŧ—§M$PÄÍá7*ÔönĶ1°•ÆāË4‡vcęÍØāOj 4• Pâw7åRžRą›bЛRiåR?ĨBÅâ J…^ ųnrų2ų|™žÛE.Ũ…#.Ū›GpUŠÅ^z{ã:ųð·Ķ(Ģ•a å0ĸo šŪŌŨVgĖ„…QĄ Aš€„ąÄŀ1ïÐÔöÛĢNi€ôņ―_ƒŠOïj–-x3åâ<šÞū_K"™"ļn‘―ōčã_aÛÖ-ļNÛ5ˆn͊*wÏrđgýmÓÏó˜jāZU}í‘ZþüĶaų‹8wíJÄw(嚘_ZH^ōáMĻGõ#ï‡~Ô=ēáéŧĄ.ôt0N'ŠŒīŪų+ĩæbšÍôųLåÜĶkGËÉ^ßeüO)AVĮEršÃûÛųcę{7Ó9€Đ%΂{dß6öÆÆū§'Ooßfõ/cfïršŧįŅUšMWi6åŌ, ųrųŪSĀqráŋĀÛœ ’?|fJڝWPLÐÉŅÚ~ŨАī* fþ߯MER}þqýIø~šM kސhŅ ]G6Ņð†Yąā§éëYIÁóŦąåyuæũ_ÁkŪî§ŦëŲôĖ­$ úú]"üę ÏĒ YũŒ–€ĩï_^6Šęžč‡gš†kšļęĩWÐUėĶä”YX^‚ëļĮltĶCÔāD{3§ ĖqhŨšŽm‹'óž8–hÄtMc$]‹)? 0ünžÚ-Œžǿmø1īéÁBúąÁÏÁŒ™%æÎ;‡% /cVßđô”ŅU^@ĄÐMÎ-áH‘ÄĀ·+øiÛÓïH”Oo“åK>1RŲÁ ŧþ:$ÁGĒ>þHô§5 `4iáËFRã‚UÃ:FԐŒ N·FũęxûP5äó3X6ĸ§˜Ũ9 o( ™š‡j}?Onús~üä·ĶaZĒ.|ÍQþÓÆ 8í"�ŠšxMøÅ;zĸЊ”„ĩ^@wĐG•—đĒI>\Û ģž˜‡ót Oũ°žQķå ę8ļӎ€Ėéā-Oŋ4Fâ‰YÅÕĮĄ~p;ÃÏþ+mĻßLĩQw6üĐÚDĒķųr°páJÎ^~=óg_ƌî”JsƒH§8€“ėK;PK5™gQBTĩīfbÁڙĶfóî†ęۋũZĢé"q2ce’ŨcAĄL-A*Š N.5hŦSHЇFsˆ­{þžĶ?ÂĒ9ŊȐ�PĘÅđ\qáG({xüņoā5R$ ĐatDy§/ĖY7·Þ·]§�‰ČeĄĄęhü§Ėŧt}óš#,ę:+0þIĨދB;MŋIÕŊPņÆĻ›ūiÅ&8öYaaaqęHâ‰hYVƒÄžð(ܕņô[ŸīÚAYŨušûJ,=ë"Î]þĖūŠžōŌ0LŊ‰ïž Ë+‘‘Õdķnh,ģÂ9Qi{bøÛ"W’Ý>yĶKÛðßôs?˜ú§$ĩŨQŌ5”îóG%ŠízJ09—ŽQO "ĢaAĐý§Ŧ%ãČÅAÏŊēcßŋāûuÏ―ü–H@>ŨËĨk>H>_äąĮþŽZĩIÚOŠõ”›Tøæmwņķ{?ĮK§XýÞģ`uxŦõïaŲüåtzéÏÍĶč–•q˜f;ðL“‘æCÍAŒú-ĢƒoŸ@§·ŋĩÁkÂØaĖ‹Ē{w€Ó>Ïð;PȗčęîaɒUŽ^õ3,šģŽrq!j|Œúö&cČģ#u#%>2Š}m†š@C?~ˆkDƒLˉĨĩĨ%rë$‘ĩ8ō•:Áū:hųgÞ§E ˜ÎÛ§;ŌĩãFĒk‘^—l, TôØđĸ[øĶÆâđŊ%į–ņüZ- þïrÉyĒTėæŅ~‘áŅÖn ë/Äá{Ÿđ‹7és<1í €ļŌ\<žũÆéZTĪ<ŊHAJôfN:ĪmÔgī9Â`ãMSĮ [K,,,,Î ÓXoŊŽŽBw>Ųņ\`z]:FIÓmy…ĒÌūEĖ›·”sÏđ‰e oǧž 5>ūi•ęĐÐtv‡Jš?01ø’šŅc0͉Ņ&ÆxõPõQõP5øÚĘ:ū_Į7Ž1 Ā`Ô súâļ‰</‚HFópL$"û,QAøxZþĪE}ēýĸīlŸz9–åkۆ–,Cüū!+˜œÚaÜNDvíĸ6ž_cÉžÉŧ]4ýJŠ(ūiēúėũR*Îä‘üÄšqD øZ \‡ï­ßČŧāĸā˧ĶĻgr)�ĨˆpÞÄF\éíïeÆŽôf“srLũVÖ3>õƒŒ6‡�!Îgķ°°°8ƒÜþ@Ŋāð^tÏftŨ3hÃÃq’|Ŧá7&xŊŊ·ÄÂųątņĨŽ\~sf^Œ#|ÓÄóŠYųßÉ[U‰Ãß‚`ōįWðž*žĐâû5š^ÏĨéáûUš~ßŊâųÕ@/ŠĀķp M›ÚX%Ĩ―æã'—j·KōŒ‘Î2 -ÓÛ'f;IĻĶŅ$“ū‘ÖRÚNQ„t-‚ŽS`ÏÁ‡hzÃ,ĸFʅ94žá h6+ŽXüVJŨÏâý1;ķoÉhð‰2ĘŨgÍáSŸþ2ŋûŋ|ō Mķ Ž—Ļ"9˜Ņ3“9…ųt…=Ē}žqŠ`Ä=~[@daaq†ÁqŅÚ(fįŋcv=‹Ž'áþ-üļeOaîžœsöëYķč*-ļ’îŌbÔ(ÆxøÔâđd*ú’B8ÁEAhzĢԛƒÔ›‡i4‡i ĩÐ�� �IDATzc4ýQ<o, ~ Ģ^’v•TŽÁqō ųņeyS7gûø3;ņū3F88şößÛŌ�ķïhĀE‘6_:’ŠtĄSmĢã”88ôæg-x#3{ÎĨÞÓÖaęĒŲŽ0ÖÕ\ŋ۟•ĸ„Í›C 8N %rĀuŦ,ýĖļóKĸ…á““:2ÖÜšlðLjäÆ3čNQļāšÕžæŠŨŌíôLhü#ÍÄ}ĩ=Œ4‡­Ý·°°8ģ muŽƒŋkfۓčð~Ô[ÛÚũáð.šËį―åKŪcvĸyrýĻņÂÜ~։ŠÂýQÞ<Úq0ĶNĨķŸJ}/ĩú�MoÏÔðý*ūĐ1N#W[Ŧ\ZD'ĮĮ$ĀÄí{iКŸV!žŒū?-B>᠟ļ:ߘl{^ÛöYĄ ô€NÛ·”Ļ6AC"Ė"čī}:‚ õ(æ°tÞë˜Ûõæ Æx1! T3]*õ―<ĩé/yōßĸãeH@zš üuÓåSĸí6öMŦ€ɛÜD―óâ år™ē[ŽĮ2ŽũY‡úAŠÞ.v� ……Å7‡ÖFi<ýočÁíh8BŪĩī)ē'žsæöqÕeäėĨŊ̧k!9·æåDki'*1F.Ūãā›Ãc[Đė Ö8ˆïŨÃ|~3–'LŽ1q[^ķđAÚĶ(ÆNrō [QŸ8Ō-ū{z*ßÂø/==ՏĻkĄå$##jdĪë�ŌgŲą@ēšĘqAĪ‚#BĨū—^þ:ÕÆ�KæÝHĢ9Î ˆŠ. åâ<.ŋðƒ‹=<öÄßŅŽ§H€ÆKę*üBÁ°āŽŧyĸÆ ėœ6@Uč ŧĻ”Ë%ōNßũ'TíŦųUÆü8NC€,,,,ĶDuóøŧžĄņĖ·ĄQIÚÔ:xýŠP*ŧÜpÍûđāœũR.ÎNŠå4ŠâOB‰v}āíã1Ry‘áą-Tj{ã€H/2fNoŽŽĪ‚č dK§hē#’ōœÉôéĮÅxĐ6ÂôLÖöÅĶ6Ų>îéoy?f íC‡m€ņ xŠŧ`ž6ÎÖvĀ(Š‚€šþæMoÏÔ0~=N€z’áąYđøį‚Ū‡TM€ˆÏõrņę[)šxô‡ĸ›Z͋ë… y“þåÓwō–ßø<[§KāČŸÉ ųRÁAÕë֏Ì4†ðméģ°°8s ?€6ë4þý[øŧžNŌv_ÄuļōŌ7ąîēÏŌ]ZVÝkÆÜÅÉhRáujm‡GŸghl+Ļ{ÝIî]pÁĮ–ĸFb<FRĢs%k…XE/y-í'A)N“·niÁk݇˜d_ŲíS?Đ72mŒ Éh0ÞP·ÖI@™uÎ,uŽŠTo QĐï§Þ ėZ[‹Ī„œ/îú|ŋÎĘ%?KÎ-gï UÉqáŠ[)–šyøáŋ RĐĪÖ9ÖTR”5Ūˏîļ“6~žŸœrpä89Á-đÁuC:‡õ<ÓĪĄļŠŌÂÂÂâ?Ó߯ î ŠüÆņÉį‹,Y|>7ŋæóĖ›u9žˆĨĢŽą ũaŒ‡įW­îdpøYęÍÃág%ŒDđöĀčFÞ§ã8qÞ;ch%;9/åI;ÃÁų:ˆ„$"’ĖLóKÆųBV.ļ•LÎĄ§Œ­ķxņ™bū”Qτũ;ĪÆ3ï™}·Á”ōaÔ YĐ`Žö2ūĐĮ-“2Akz°Þ/ūü5š~…s—ž“bĄ?ŪIˆŪ‡įŨ9ųÏS.Íāŧý!‡ķi„ėfķïōømykÁį[_øü‰I”įŽŨŽœœCūėâ„Ã":.˜?ŠQķ ZXXXœÖū?ę7hîÞLãđ0Õ ­ PQ/ŋë sįŽāęËoaÍđïDqhzÕÐð;-‚Āčxþ(õæ#cÛĐlĨéU‚)|LۋZę2Ō―)@j‚]ŦF€FQ�•Ô°°l˜<íÁKk=Ueßú}“}īFƓņĨc5~š č$žųÖÞaŊ?Ü"ZŧĶWĄZ?ĀXm7ÆÔgÂnķN$ į–ŲķįĐ79Ų-ôt-EŸrx•FsŒģæŋ‰7Þ<‡ï>üŋØģgg†D_A ō/ —_üÔFþäŋÞqüÛ'õíæ]:sð‰‰Øoą/ÏųŊb~aQ@B1Ÿôŋ ŒxÃ4üú)ž­maaaqlŋ8.ZĶöÂũi<ũ ę5;c §w—]üģžî5ŸįŽEŊ S &SÅĮqiz#ŒUwrhxĸ˜j} |įäbëiĖj˜—ļPļŌ="i(dĨé" Ŧâ„4 ŅVãG&Ōí€éü8B YB*ŅV (Ų~HI}XZŒ~ÚrH*ܟŽĩŌM}·t1ĨĄZßÏðØV*õ}qqáŅFĻ]§Āpe+C•-t—Ņ]^ ˜T…ā›&ÝĨ%,Yr!Ģĩ>žcZH@Č倷8Šóę›xüáûĐ_ú: Ž}ĸō•Ā‹á;óŽ^ÞôÎŨsny-ūvÎï{ĶÉ@ý�ĩõZXXXœn†rEüC;Ļ>û�Þþmã†ü=Î_ĩŽË.z/gŸu="y|ߋ=ęLßūähžVķ3RŲAĨū5~ é/ĐVĩTM@fŠ]ŽĄ“nÅk.BFx'ØOĻË)IÞĻAc"G ˆÎGÃÖ=mŅîO·ĸiJŨGģįíT’Ũév@2ĮHĮ’ą‡Ņ|�Ũ„øŧHØÉĩ’:@ĐÆČØ6*õ}ĻúÏÂtcšt•ēęŽwģxîMÓČ Z R4.ÕúžøÉŸðô3ũã5Āq3ũP4Á�Š9îļo={§U@šæ•9įž•ĖÎÏ· Ã3o _}K�,,,N/Ûyīų]ÏP{æ[ø‡ö Œŋį­^Ŋŧá—đæōąpþĨĢã§Ä{"Ý ‡GžįāГ mĄé „ ŒGëų§ōęzŌI$ íÁÓâÁKKÛ]č%ĮQ€ņ<x™Ðƒo{ž+-ݐKííO{ņÚâÅCFŧ7ãí“Ōh2 dĒI„CšÞ(ƒ#ÏRk „„Ė9ÎgÝø ôũ­ÎÜGŅÚæÜnĖŧ€|Ņp`ā9žf*’ , Ž—ˆáÂWßăßÏÐ4"�Bũœ+Ï;›Ųųđįž‹ūúTýĘļ ‹i ÄÉQ{ņûԟ{�SĒ“€i―K­ām?õ?Xĩ⍔ ýø&ōúĨÅëwĐ5°wāû WķÐôFÂC9™"8‰ÆčėIĶ�/K$Ów/ĐČÏDRcëR_I3zēF6ï‰7/ ÐŲi$E-īE1‹Ëœ IôĄ-*“"$’9†f …‚#.õæaG6ŅôÆ2déDĀ7uGŸÃóŦôũ­Á‘\K› ļN‰ųģ/ Ŧ§ĀÞý›h6Mō$Éæ�įÜôę›ų·‡ŋÍĄc=·ãS‰'MęoOÄx™Ra…………Åī0þÕūGý…‡caŸl„�š ļōŌ·rÝ՟ĶŦ<'PåS?c„ƒ‡ūƒQý‡adlq(>cˆkœČû’„ĖĢ’ņĻ?꟏žÜķ>þŽHOzRždFųĶÄw2…|éóŌ6ņžNÃwÚ EŅž ÛęŌĮÔŧg‚B@ ˆU―9ČāČ3x~=s]NĖm ōëlyųïðž ŦÎúrnW pœ<kVþ<]Ĩ™<ðÐïQŦ§ŋ[š\$Ę#·ÝÃëï―ŸzÐJÅdâ9’ϐ………Åt‚ŸęK? úÜ:ēĮ�đ\ŽŪû8W\üÉĮmsYžĀøVvēoðø~=ė�h&öÐ$Å~Š™�a€txkĘø$ųũīHOŦĻOz,p‡ýķpÍīJ‡P|ëgS�éÂÂNSzSįd&2ϙmģĢ€:D„†7ĘāČæ“bü3Ҍ[ũü# o”5+>H!ŨÛvĶÆøŽXōVš^?›ĸ{ĸ}Œ Uē‘�⹀9jøáíyË=wðö܎[  kN‰•ŦV2§0?žþ”þ ÆþÖüŠMXXXœ6žŋz j/=JuÓQ^ķÍøũõÎãæëoįŠ‹>ÔĩĨÕäB)[ßŊēïÐz2ô�6 ÞÔĄS9qIÂâqĩŋd1Ų §5Ÿ=”“Đ åĀI* ÐjĀӇHįņÛë�’ãÓ1W?ÞöņąÓ] ņŌnķ%Kbų€TƒįŨ9<š™Fs(īI'ß uœCĢÏ32ķ•Y3.$ïvg:Dc<zŧW°|ŲĨė9ð8ÕĘXG­�W…ũ\w{Ūū†'ūĸā)Œ�Ąý@cڈŒóūĩXïßÂÂbšÛ~õ›T^|„ÚģÛbüCãļpÁųÜðęOqÎōŨÓhŽe„oĒÏõĐTwspčIęÃáÐIyåíÖ,j哖ũAî_bG+]ݝXd!ēē·i]�â!:―jŊŸŋĢû=wĘČ·ŧú:Ąc/“8NVa Sú!xĮĻĮHu{Xð'§ī =į–9xøIÛt'ûIftŸƒHK› _§Ŋ{o~Ýųî#_dûÖMø~vš`*ō{n™ĨŸų îýŌ§;% XSgÜ +.Ū%ÓQAņ{áûãŊ įģŽ_s;óg_H―1šōĖ%Îõ{Þƒ#›9<šĢMœPM;Tė'‘M…í[tR#qãī€hŧ6,ā#-íxôð[Ôv:ڌqû$=hßþČ5­§ÛšįŨqöôųUw1]æÏļn‘ŅęNžxîÖŽø0 f]d2ĐH@“ŪÂ|n\·výÏ>ũ ÍF H2;Ü: nŧ› ũn`ĸÉ'�“Ļ%,,,,ĶœāŲ4ōÜ·Đ<ĸpŧņ‹ý.ŋôgļþš_Ą§{1æXÆģ† ĻŦRÝÍĀðOŦíFRĘréÔ@ôũt5ĪÜųD'GēciÃâđķzĶ .=ˆg‚būTobXuĸžģÁ>ēŨ#ņ#†ŽTfÖr8Åũ+ m‰S.Óæ6srԛƒ<―å·Đ58kþp$&Ó‹ųYžęŌĸHWŨ,ž|ęŸĻU―8Ĩ· Kų!yëïá“ũÝÎķiG�Ãï$ų, ‹iG�\†Ÿú'Š[Ð1įßhÂkŪđ•ŦŊø(ĨâL|ŋžēOÁģ͑<Cĸ朇ÃGRu)<IWýgDRyôļ/>Ĩ–w)݉=ðÖĀžLønË\ū6C/D ZũŅiû ÜýЍO‘ Ãc/Ņô+ÓīûLhzĢ<ŋóŦ4ƒœ―ääœ2F―TĪÆPČõrņęũŅUîį‘GŋJĩԈïđHVAƒ0ŅO ÖoäÖûîāŲ#ÞęöŨnaaņJGęvóŒlú7*Û~„mũü=ļáÚs͕ĢXč …}"cžxî{=ĖÁĄ§hxĢˆãŽ“sÖļ―PB™;Qâj’zšKj<n\ė§Yí™ūwéh’§Võ.ãzï―sŽáXãėsŠŧŅėvÕúŠĩ}Č45uŅ5öý[ö|ƒg·}…Ķ?‡j\<jÔĮuJœ·âíÜtÃ'éé-ķecBþ‰(W |ëķ{x•%�ڌ°ĸÞÉQŲō*[A}Ŋ… €oāÚWÝÂU—~„Bū'õ�Ozû}Sįå04ōBėÅ%Šôiï?2Ûëø‹ã ŽŠþČļ67­ž§īž9zģ;U7›N'pė mďæ+Ī.Úá‘Í0Í#ÎŅ0(UÃŪýĸÆS/ü& o85Û!rņƒÆY nāÍoļ‹™ģûZ:H’‚ U–Ļrĸíwóģ'…�ýĶÆ>M,,,N+Ï?h sĻí}ŽŅįîĮ4jqŽ5Öŋ.ŧčm\ûŠO’Ïugīõ̇tÓeũÁ‡Đl֓1…‘ą“T Ĩč§rŽ^|§ïLįķĀ)nŦzėN~ŠIŋģōßd ~ĮčƒÃÐØ<ŋvšĨ›…C#Oãûĩ ŪđP*ÎĪŧ·Ü9e•”Ē/tMtīãV F˜Ïŋ°ÄÂÂÂâÔx_�ÍĄ―ŒnúWüą‘ķ‰~"°ęėđų5Čđå8ėŸÞūŅbߥG­ūŒ8đcxĖĩLĀ›vë5íÃ9ˆōŧĢÕ§Ĩ\œĮEį~’rqn;Q Óƒ#›øÎũ6ēoũ�-5ņĮTQå]_ÜĀ7O ˜ˆļĨ%.5ó…-,,,N-LģĘčóÐ8ļ'ßîņŪXö*~ęõÉŧ―øĶŲō\sĻ5Ø;ð•ú^\§ĩýxÉĐIķĐgĪ!Žĸ;" ÐĢ$ "Gĸüm p\ŒÆą˜‚rĀ‚ÃHe+zš ‹ŒoŨrÖŪø0ý―kQõZdœ°oāG<ôčĸdĸÞÚ:G‰•w(žï‹ŸãŧG:öIéHįÉTĢfúĩާ0eaaqÚ"nXÓņč؋SÝþt›ņũ}Xēh5ošų.JųŲĄ|lŌCïˆKĨūŸ―ß§V?€ëÚ-wFÚ6ySÛō$ûˆGÚĶtSÖ2úœL‚ŒoaÆ˜ y82ģ8ÆmÃôIÓcŽķ§Ãl…éjü 3{ÏgõēÐß·:Ünüwî}€G~ôGÜ(ĢŽĻaïf8ęßUųÅ/nā“9~îx_CUÓa`”/3DĸLŧ(5Ôü*žzø!ûē°°8=áˆKÎqqp)ŧ]°ŠšLšRÜ<ĩm?ĒōüCma߇9ģņĶ›ïbFũ稸ĮûwōŒÕvģũāũĐ5p|‹ēOba}ÉČūÆ]ũ’4rGĪĪe.Ogw·ĢĻķpóKËO\āp”Ží(Cũŋcš§AUđý—sþēũ3Ģ{^ÜRš–pV^ÚņÏ<úøW940ŒÓbüC-�Tø>ÂĮŋxONöøĮ}PÐŋŠ-âévÓq\ðI7ü"88Ôü*ƒj^…Ķ61T­T°°8{A(8EJđ.fæû)đåĀq\^bô™oĩĨbž7Ýtsg­ ŋC$Ęã8y*ĩ―ė9ø=ÍĄ@ŲoĢ;ð’ķ“ōÎĢ'ļÐ&Ļ“ööÓcuģãm5yÆÆãpÓÏ_‚Qnýzäh„!üIl?nÐB§DĒâĆ7D­>+ęMgx~•Åsoäüe·ÐUœßŅø;’ãŲ­Áô·Œ W3Æ?\Š ųSøŽĀ‡ï―—ĶrĮ7Q�ŅÍÖ%e€OUČÅO=öTw1ŌÂÓĶõø-,ÎPÔýĢÞCCôf3ŧ4ęUÆ~ühĢÞÖëïųð37ý:‹æ_‰ņ―(ģÉQobwhüÓÏąØNĨ&ōĩGēaôôtžVÛ+Ōn4cŲÜ8ė ·ÎÉÕīŧpã'Bĩ]ØékoKl5øl?Q˜až!ZŦJm?ž?6íïÉĶ7ÆŲ‹ßÎđKÞE!Ũ‹o-ĒO‚ëøņæĸÉc}“ZÅë4P)Ž|+oxũ]Ÿg`ŠįqBk�Ķ[F] ŒÕcWe; SO ŋMþ[Xœ™S“ ŋÎūęnŠ4éýÉØĘ`[žŅ€Ūûį,]â‰EOZqhú#ėxˆzãP</:HÐŧŸD;ӅϭQ€(ėÏxQŠ$$Þ"ŨŦïŋsÄ!ēĄéB6ïß=H ōätü;)ýöG$,)ēÓIĸĀóĮĻ7Âvôéų@WU|SãžeïãėEoÃu ąôor­ƒÁy?xúnžzüAšMÓŲøģĒū^ŠņÎ_ŧ“Ģą{œ#�b‘oü MâðT xŌÂâ0â ģ§š“ĶßČhq[XXœĄHOļsž­Oāí߂Ób(}ÖŪ^Į%kßE.Ũ• ŧ‹€1Mö>FĨķ—HB%vN3^І=üŠ’ æI?5äg‚įaðāŨΈP%;ú6E 2Rsēß#8^Kû|šūP:ųïÚąhpÂ"D(ÖÐū}æÜ'IŌ҆zó0æÓQø'đū†ÕË>Āō…o‡BeóýF<üä<óÔðý–bŋÄģQþðÞ |øXÎë„D�ĶĢQę~•ýĩÝ4ü:ŽXD ‹W Pr#‡éÚõ"Žï·yÉģfÍãŠK>DoÏ|ŋ™‘ũUõzŠĄŅį';Ã=Ėã§ĶÏGYƒÄãŨČk—pÄo<Ļv‚įeb #ãŊĒĐĻDn•ÐíW Œ~œ‡h G.#˜âÖâÁV”ē#;pŲF:F&ū9Ō8`ŒiP­ÄŨæīÓüÖĖuōœģä],_ø–ŽÔoŠĮŋŅäҧūĖͧØķb?"^'pï―ļãXÏíĪOŒĒ'ÛøûÆg ūŸŠWÁą ČŊD…vūGũÎÉW*mųę|>Ïeŋ—åKÖáûÍē-ųHe‡žŠ [úá}†8eMDÕúqk_Hâœï8^t2˜8ķÂ}I(þŪÚ„ˆÓqú CGA6ü?đá<­“ [ÏļÕøu&G6û‘C ŅgšÞĩúi§ųõøįs=œģøįXķð-a4Åīĸąęn~ôÔïðÜsĢ&sŸi6ĒüÚ―øŌņ8ŋÜ)X’“%PU*Þ#ÍÃĄė§}&ZXž’Œ?@ņāŠ{Ãh@ĶSsÏūžË.øyŒïĮF+ī^Ŧ°ïЏPõØŧԌGį…loVøžIĒQ›_bAeœ*7IÛH cü‘xzPš0PccŊG6āņZžÐ-ð8“�;�ę„BÆ#2ŌJ:­“ ęQmÄó+8­b§þȟÉđKßÍYó_Q?ÓĄMČ=<ö?úņð O!­ð—Vũ�6Ü·ß;^g—;đKĄ§Ī―Î`jÆWÁąĸŊ0ļĩ ]/oÁiúĻ›ĩm=ÝsyõŦ>F!Ũ›ęũŨ0īÜdߥGi4#Rh1bŲŪÆĸ‰ oŊ•Tt 6Îé*ĸNx­†Ÿôv‘eȆþĩÍûÔģámņöÃð:ĸßîO&j6zÐÆ#ŽÂç“!]ÐØqßá{Æ4ŦîJ‘ģéc<ĘÅđŽ^ņ!ÎZ‡ ŧÍŌŽ“įÐð3|ĸGŋÃöm/ƒĄœĖWŒŒĸ>ā?ßw}<Ïņ„€ôõÕ#Čvšþ_}*Þ(ŽLé늏Š'&įT ~Š'0~`‰ÉņĮéîé8ÏdJßP^ąŨ+Ðôō*-f,|_ å};) ĩ?SāÚk>ĘÜYā‡}ؑMr—―ƒ0Z݅ãäCƒ(Y!ŸT`šú?ÕK ˆR)Ņn€îŋdœcÍīƃ_Ēú‚ĖëŲslÍĮĮD L!ī‚ė3žsDAŌa”V 0•B'?ZŅŽ™Þ‰ŠĄÞĪéN+ā›=å%\īōôũ­éhüsn‰}‡åÁïĸ/öîÝÔzīhû‡Yž}ïŧïūužÏóĖHBžzá ˜š˜'=ĻTýąļpRßCŅš9ßï{üjNđGskÔÉŨōåþ’›/Mð’ķ'ųĪ3"€;ĐEžr{å8'qē‹5U' 9SlݙtG―)î3]mŽâ\Žnā•sĪyq#-ų)sN3ųĩíð^įϛ#ŸÚ*…Ö)|gU5ūÓÚKe˃đsÆR·…ļ• ];_Ė„þ Î]y žũsx~#6:gærxô%lJžĘ’_+ŠNŧaÂóQZ $Iˆ>ý•6AŸNöRI·ŋ%9{T3Æ_SÆ?ú­QŠö–Âļž0U?2zŦÃ3;“>Ȝw‹Ā$"īîŠĢhQD4%ŨŪ qRŪlGę6Åįž_ĢŋgŸûËt——ftýĢĩČįšŲĩĸ[|įĄßæðĄĄxĻajĢ{7ÞwOˆs=ŪĀWO›ĄĮß*v‘܆“7 @QĶMޞÔ 1rssÁ#Ũ˜9—įT\·ÐMū{~Q$7 %āČQZ§v>ÂQÔ1L°ßþÃŅ#„§Ļ y܍§óS3Đ5Ö6 óĢ �ŠĻLpžČHËÎ_ŽrÚfęŧę5Ų5ۏÝņóĶiÐDķ,üïų8Žƒ8āyĮ ŽĐoŨq’ýLô•EÅôÍũŧ.YŲėÝņŋó;vívŠK\ •ŅQšķ?‡ãŌ?›@Ņ^wýŊĶžzbOÞũkėxUĉkä5 BÜÆIj4ôMŠüR`šI4þuâĮ‰ĶÖ]$USŽß#ÕR(Đ:ÓņZEE†ĩ"fŠ[ũ8éƒ#äĸ;ĩfO@ÚċZ :œ o„Zc`Úĸų~93.æâs>AĐ8— ý’õÏuņŌË_įŧýc#•6-eü·9Ęuũl`Ũ‰:ßãŪ˜―ørėņãÁȌ7écQYåũ>ų*3û’œJAreō―‹˜P Ŧ͘9ŲÁĖÐRo[?kŽĮ™Ö SĘV‘Á;Ô°ĄTœĖ~[{#m„ÖŨĶbĢíĮÝG“4“šHŌ:ũ;g&ŽxGÜwüÃD3!ێû›pé‡ÕÔEH"͎7˜*QIðDë,™Š*™úŅ•61’‰>Ÿ ĩiĸlb0!Uƒ1ĘūƒĢTkurŪÃŪcĖėëalt„―UVŸģ„ŪĒR­ÖčŸ9ƒžäsNčÝuþ Ģ"âˆļ%áÉō74<ĸ·…‡ÆÄ›BnčĨ―ŧ3OšHíïõ7}’Þî%üÐÆÕ•ŧîĮ7•ļ°=7.maō(œž Ûöˆ ŽĪ"{õNLŽī5 k”iYļgQHĩ†d#x+m1ĐŨÉĪDS’…=l°G2ûȊ°ë�� �IDATnũÏÓ|§ŧŊĩýPŌŪ‘ķ™ýd€Rį4ÕmņģðT!‰ŪxĖ›uœýK” ģÛäˆ#ŸÍÛŋĘũþ *cõvÃzŠ O›Üø…_eðDžûI-4ŠøęãŸä6@UŌ7‰‡áb3ģ·ĻŪĢ…ž!ųÖĖCwR7Ü iðpH‘€ BũS:‘"āÄŋîö‡ũ҉4Ĩ·IO5Ë;ý#ŽBÞ§Čøo@9"1‰>oŒi1žGđf&ð„Ó!ðĖ% ŨŌũ ÛvftŽÆšsæSČįÆy0N| dĸ|Ï$h%ãä‹IæĮ―į4ۜGÁ xžOĩZgÛîa†Fę<ųėö Î?o9ĩšPîëE›>‡ĮJļģÐÆ!L―ÉŽĄ1ŠcC,™WbųĒ~JÅ\†œfNJ "Ž7Ï Ŋ·<S đQņpTéyáIpģÆĘ˜;w1Ÿĸîā!M:óã28ú#c;PĢą[Ú8wþýĩŋåTą )"8Ï&“ujóþÓõqÆ$ĒCĄđMŌ­Æ_;* fÄRZIjAS—ŲtĖúÄwĐ1-3ēģ ’BÉÎ퇉ÆAš}Q[~Ë­$9eOü•ęnNeýKZIvÁŽuŽYņaJ…ŲãĩÝŦŠ>›ķþ ?xô/ĐVšmqĩ°\„ûs>ï8ŅÆĸĪ�9™aįīA‹wäcŠe g!NÎɗ'JKķxãĒČģ”ÂÚn‚Ië4 Įĩ=l&ŧïķŧ“yŋÕSŨIFNĪCÄĢíé‘>î$Ūĸ”8Zs*Q…Ė>ĢPõ$Œöa+ĐÐũäïëh? ÏįÅûéï+ģ`N/а}ũ!MŸUËįÆFhŽÚāOĸþ1ž|v7_đëg™7ŧ§å<ڏŊŠŠrāÐ―ÝEĖéÁ7ĘŪ―CxūaÁė.ĘĨ</í8„ãŽĨbŽ9ý]” 9Ė8k."I1ԛ>{öņäģŧ8<âņĖÖ!Š ÁÍåčꚉŸ›‡1uzûfP*ͧ{lŒđó14ÜĮÐáÃėá'?yžîŨ]šcÉ—yý]‹ųķë{—"äœüÂ"9'GqÏ6ō##™Šĸč”ožöÓļN)ÏŊ20ôïøĶķų…F, ëGaó6í HÖIԀĶĪvÉø!―jHŦų‘Đ åUg―ólDGĩ}ĀPLTÛrúÚ*$ÐA(iy”)ņ­ûāˆŠ‚Ų4Cv?.#•įQL8ĻéÔAÄaáėWģzų)äg`L3ÓæČWØžåëüðņŋĄ:æ§Ĩ}ĢŪPQ0_oäøč}wœxãŌ Ā)ci˜IĖ͎o.̓âäĘ F’ŸNÞãÖ`â-žņ䷟ 8*"6ʝĘÐeŠ•\Į)ýNk5áwj3þfJÆŋ=z01yĸœĶHš{}WøøŊĸĸžõ†5|â}Ũa|Ã―ŋĸöæŋuKx„B>ĮęģįQ*ä(rÂōĢnßyt ø·qؚEüō-Ŋf`pŒûūō ‡‡k|â―Wsáđóųä―ßĪŦT@€szļęÂÅüĖį3ģŊ<îštōÄ*Õ:›·ėįá'ķņØĶ}xš'—Ë“ÏįĄác <ûė&ŠÅ"#ÃÃĖž=›bąČÖ­[ņ}ŸÁÁA …"]3æ‘Ëxz§ÃKŧYđpˆĩ+įŌŨSn7nAļU FóųM-o{VpēvÆóāüóŪaņü+ŌJTŅ. ŽlĒV?Hš˜96\™6?MŌĐ?·“€Dō—XˆdŽ€fIrÛpiņšĢK‘úĐeCóéŠm)úĢÍÓ šģ$îđký9hŧũß:…0•�˜ļ~ •(ÄÁļ ē―7@Į‰Œõ­î:åÞŋˆ°tÞë9oŲ{ČđÝãžïÐôFxæ…ŋâ‰'þžj\·ÕõGDņŊx9nĸōg9tēūà č˜8ÛČ)čÁwÄE˜\•Ļ„i˜Āö:™ā_ķ―f29ý@ŅAī<Lž(ˆ;iŊôhŌïw"c>ų_ÆQýôwi­#ũŧƒņïčýO!"‘­jžZî]DÂĘĸāŧōnXø ŸsČįÜØĀԚž1Üxõ9øūĄŧŦÐĄû óņG(sãāāÏn9T"į]œÐq‡UËfsųÚE<ųėūqĸsTëMþãŧŊĶéųalRÛŪQúø‘|aÛ~þņþgøÉ‹Ļ7ĄXTöï?@>ŸĮũ}šÍ üŲÓÓËüųóØķm‹-Âqžþy�Ęå2år™3fÐÕÕÅūŅ{`hļʕ.föĖžÔ}ĀĀÎå)ïÜ&n―’ĐúW…RŲåŌĩïĶXč%ĢÞ'.õÆ�‡G_ĀŨŽļ?Zŋ™ütúw€ėO!éHR/ī i[%UDP’xyB@I}ũÄð·ëý·öÕ§") ‚ķ0}&ÕYŦT'EËþÛyyŌ6I‡o%ĐI‰'Šdūoīc—ąÚÎ0JsŠĶĘŽÍ9‹ßɊÅoÕ|›ņwÄĨéóøO~ŸŸ<ýmšõãŅžārü†îþŊë9™ßãļ�ƒ Š}:七›Û$ '‰é!Ĩm4ÆĪ xh˜Ž‰DšÛŅCMßpS6þãEŽ•ĻŏēÕðq3ëāO9ėßúP™Jčŋýū˜z c§+Ũuč*åņ}ŪEðzÓ3üËCÏóāc[č*(r|üÝëčë)Nš―ķ§Ŧ@>įēuŨ ›·`áÜ^ķîLqUeɂ>Þņ†ĩ\uÁbîýÇxðąížį­—БĻ­“gĻ‚ãĀXĨÆÓ›wó“įũ°ųĨ—QUšššð<ßj"[·neïž9ĖėŸÁÎm/Ðô /n؁,_ūœbąˆŠē`ÁæÏŸjއž:@ģéqíå˙ŲŨÕᒠN―Fqϖ6§ĪŲ„5įÝĀ‚ų…†ÉÄi/UĄŅ-ÔęÐē"ęęũ†eŲŲtAĶnÜT_R1~īŪýY%­·ļīÖŲt6þíũ'-žĪ ņčvoō`ËÄBMŸX‡ý·ĻûīĨh ĸ§îÝlWA$­œ4$Ïeīēã”yþF}\֜ý–Ė―·mǟãäĐ{yø‡ĸįŸß ­O°pM>-M~ëÞ_Ĩ~ēŋKîļšZU|5˜ÎDM<yãƒŲĶc8ŦģņŌqéM0dŠĐ€‰IĀĪ ˆzÄm‚ UëƒgJ‘Šãdď%ŒÖŌ=B/šHŌæ7Eãß1ó:åÐ?)ã?ÕĨīebĶë:<ŋm?ŋų§Ē #cõT æÍîaųâY<óÂ>†FŦ4šPĖĪĶrŪ“yXû~rßũvYūx&ß}l+ƒcžæŠlß}8{‡› hoÍ9séí)phĻĘÎ=‡Y{î|ÔŨ #"‘įđïĀÏo;ˆObąķÔų Į$�„ŲģûđüÂsXš ›3zh6•/ïåP_Ýû‡ØüüóĖęï§\.søðaöîÝËĖ™3ņž&ûöėĒ·;ĮšKÏ&ŸwģČu)―ž ·Vi‹ÛÓ[båŲ7R.ÎÚûâ{ĮĄÖdpdSĘ`Ĩ<XIĶûIjŌ_ėØH{Î―ĩNDS‰üīÁÍT‰w||tčÃOMũkõú[?“-ð#é ˆŒŋ Ίýēû•0ĩŌŲûĸė―w˜]ŨYïĸYkïS§7uY]–Ŧ\ŌHH# į ÜB―O…?b;á^î…XqnxČ%<! ýRœ8ÅÄ].ēdI–lÕąĘhz=mïĩÖïÝO™93šÉöyAą4sfÏ9{ŊĩÞũýūïûýRU5ŽO?\‡ü§:ˆh@ĸs“1DP*âļģK;Ũ.ŨųkËĘąwĮGč}…ß'Ēg­%Ó*įųփŋÍ gO ĩW‹}$#üʐü”›åo>s'ŦÛŋĀ|‡wM­tĩž›)dӍ""äb”uqQžl~ Ŋ*h:[O@ņ‹ï Ļ>dŪÄĶięŊŨØ8ŊóŊni_Dæ/âK“ã‚ĩũO/úot-)—Fgđ8< ,+šĶm[žúæÍėÞÚÏþÍĢL=_LbkÂ03WæčÉa\Ĩ<Ļ;esÛ õđ œ§-ŸĄŧ#;o€’ÏĶýÆCĮ?ðõ<ëĮŧJiJŽÂ1’-[·ŌÞŅÅȈýũũũ388ČĖˌįœt…ëvôņĄwë:™š)ō/ß|šbÉÅŅ#Ģ㌎ŽēqãFĪ”Œ333ƒã8ļå9lïãæk7Ņӕ!0‚‚[‚Ņó• Ė”‚ÍngÛæŨy HlėQk‡éđTœ)„°cc~IšÞpĶßWā‹šãPu|/9!Ž3 đޑ$,oę”]ĻÝ?"^mjþU|: #NŌ'ŠxüÏŽĨÄĶ Y|DB˜ŦjÞ1MƒāšÔĨ�Næ„Ũp7[<‡6ÎÉüÓĐ.nÞųúŧnЛhY2ÍtņßüÏŧšøBBŅ/pþC4‚wÉ}Ÿų•+Gk/̟ BĢÃ[Ģqƒ1@ģšNŨĖdΞ]•ŲÕÆĶAmLúĄÝžSÕA@M6ņóÕ.,Ŋˆd\ē@pÝļSmädW+0Ļ~Šß‹ĻWŠĻNwLsuPTwÜŊ‰�ĒáÏ/!’ ēĸękđJqû›øéšĨ4ŋýGßdx|6BĪ—á˚_§Bril–?ųÛýĖ*�twæø―=ëÃ@ÂhÚūvúzÚXÛŨF&=?ëdđâb ņ:Óð^xûC čéČsÓîÍ<ýükŨŪeíÚĩŒŽŽbYđ\ŽÃ‡SŪTčéíC‘Ē\q)WfæJtīeéí Ũĩ‰'O177G.—cnn­5•JĨ4mš:óU` ‹ÓÏ1SÃWÞ “Í\>ÍÖ-Ŋ!Ÿ]įQþÆîĢŦ ŒOĐdãÎ/1ƒPį†Ũ:üulĖXÔ―“IBrč­V–·:(0ĩ[ŋ*H6ÆŊqåyũÁßąš― ―‘ĐĐŅ'ŠˆTˆ{ Hl;ęHaû‰“‰kyŨWš„1:šïÆ$"ü1øßÄĪƒreœē3ąŠ‰L č—Kpãö_` ûVŊœmLBsAJ›ņ™gøöƒŸačâHN3ðAfžkߝ<xĨą•A�ę*[-•ïō^€�4ŲXˆÉŋ`|ÁlūаčŸO\'@ė;Øį â(Xė&kôúZ쉿ū„Ï!0MōÔËü3î7ïÏ/Ąņ/ž–Ö Ésēi›5}í~­žö9&IE™ÞĀБOóŠ›7Q*{e‘ö|:q Ĩ ›Ũwņ;{'ÂūþЉÏ"XRpqd†™đ2ذĶ­UÃÚâH§-ī3GÆviëZC&ŨÆšuë"N“ÍfajjšųÚ~?{–wži/Ï;ÅÓGĐļ‚LŪŅŅQēŲ,Åb‘ÉÉIŒ1ĪR)ffgén ŋ§-BÅ|OŊī˙‰ãĖVæ"ákčëŲÆĩÛ߆ÖnÚd˜˜y–Š;‹mĨc™ĩˆ1ęÅ2~ŸĒ-ûáĐĘĖEäĮ§"ø^TmŲ…šPkųø‰ šŠ"oB a’/ĄķŽÎI)}C"…EĘn'mw‘Nub[y,™ÅēŌX2ƒee°dKĶ΁ĩCÉtá4ĮĸŌkƎ9ýø$„ š+į) Ė•.âŠÂŠ"•�mŲ \ŋíà ôžĨJŅŲ;C†ĮŸäGĄ Cņ1ŋ8ģĀ †ũîŧ“‡đ lŲ€hĪQcęÖEŊŒĀR—(š >C#Ýëfƒ€ZĮģhŪ�ˆQÝÚĩhCƒō@=§\Ķ{ņAZĢëĖW’˜ŨņĮïWô4ïøŊ:į?ÏĪA^ęZ"&Ĩ4CĢsĖʔ+Þ}›Ãq\ÚÛŌīį3ŽčäĢ?ýúDĮ{ĐâĒīNÜVĮŅuēOï™ĖĖU8vj”o=všŅ‰{ķõģķŊ ĮqįA‹’5îūžvvléglnŒlW8J“ÏįĄģģ“ 6ðøãcŒaÎIsād™‹#šó—ĶA@&]$ŸÏÓŅŅA>Ÿ§RĐPĐT°,›ķ\†ëwŪcû5>`|ömÉÐĖY†f‡/€mY\ģé6š:ķSqŠ ŅW•›:„аîoüđŽÚ 6Ïo"ęŸó'Ņ@Ži­vŊQ7Ã_ļ Poïš*Ų\Ëô‰˜$™Â’iĪLa‰ ™tŲL?iŧÛj'mw`[đ؈^lŊÄJ `bâ6q42d_N6‰ÖnĒ`beŠŠöęÚ1Cĸ&;î ĨōĻæĘÕp4]mÛđ~ëÏÐŨ―Ũ-F|1äåâčc<ôØ2tq+Éá4] ā?·ïNđZžÝ2#�ĒnķĸŌ2‘Ļ9Öëę_8ðÞ/,yŒ/ĪuýŋKBAĒyų‚…œųbĒæE ĮŊ“%ągËwþ‰{ieĸ†bÉÁqTčLË—bÉSEþįï}˒ŒO)–~ĸ/BÁũ―ņZ~āÍŨáš:ĖþŦÍUšrÅEëčó+í―^)ï=9Ūbĸ3įxčĀYš;rėÞÚĮô6\Ĩ› J…ÐaoüMŨnĪėĀų‰ ý=y„ĄXębëķmŒ1;;ËÞ―{™žžfrr’RĐĖ-[čéíghhˆĪ”ļŪW†`jjЉņ1ŪßŅĮÛÞp=;ķ ÄĘ- —Ķ™˜­yīđl'7]ĸÃļn%LĮžG(™˜~G°|ųę ™Đ'ƒ� ÖāŸ{a bˆâ|{M,a?Õb­ņ.zƒÆh”iRV;éT'éTiŧ‡tŠ‹Lš›LŠË Nī‰9{6Ÿ1ĐߒQ4IfUÓ(ŋ‹~2zĄ$AT5eŊý'Š&ŠåQ*ÎŦŌ@f@™ ý]{đnë‡čnߍëÀ'J2$g.|ƒGöžŅái,‹jšä ŲïaŲwO^MÞĖ^îŧfL‡â/ fŧ�W$ˆ-æ% 76„ÎÍįû7‚Fz ó‹qx‹ŒŠsŽzõœŋĄv†iņe‘FÏģģ-Ë/ýÔëŲūĐ)’žû{™+T@.›â-Ŋۅ-%RzõXĨži›­{|Į^ßĪÜēg=ÝYÖõ·Ģ}Qœ›{ųĀÜʎkúhËĨųđ%i[bY’ŪŽ,Ũmï§ŋ§ åš5ĢĶĩû+î|ų\†―ŧŨÐ~nGNÎŊå"Óynžņ&fggüšĐŨÜ744„’5kĪP,ŌÖÖFąP`zz†™™z:3ėÜļ‘ŨîÝĖëoßAږ˜ Ŧ4šđō,į'OĒ ØIrKÖoØMÏMļnÅ/Ä ŋüVadęiĪ_ûOÎōQGžŋLIŽĩE\ĸ&‘"’ȧ TÔÞSQũÜĒq‰Õ„5w…1š”•'“î%›î'›îõ~Ї”ÝîŸÏBŦëŅfÄt�ŠËó9ęfėÕŲpꋚwO|ĒN9“AŽšŠDĄ<„F‡Ïk%aĨKlč{ķžķėF\UŽ!ø‘ŌâøéŋįąĮĸ‚Љ"ķEĩØRÐ~ņ5#øč§îāøÕ–ÎÚËïkpɋęïŋĘ ™^ū 8@ËP7ˆxū‰o–E6έB­ ęŨ ČqąYóO`Ļ‹wþĩéÍâŨl<ûoô;ÛōiÞũƒ·Ģ”ō3nÁŧū{B@ÅQīåŌüäũßZõžLXpUãW!ŨïXÍŧŨá: å^ģĄ›m›zp•'ŌóÞwݔ<�•A+•<Ļ™ $ĘÂÐÝÕÆ Ų4eG3]įųgO#ė<}ŊbÏĩ{Ÿ˜add˜]ŧvącĮN^Īâ8twũpúô JĨ 33ÓŽÛ˜f}_ŊÞŧ‰í›{ÉgR_bÕ r$Óå ÎMÂ’ՐäæÄöH°éIĶfŸĮQs‘CÕĨ<Ļ&�KôŪôĀ~#ąÏfŠ ĨûŠf;DÕr4óĨVuŽZŽ3æģëélÛF.3@ĘjÃķÛądʧBŨU―O?—HģŦΆc.<þ/™(rÆŅH„Ņ*ŧŪ žI4"Šj čšė?P*Ԕ+cGà ŦþyÎŋČÖõ?Ä΍?F6Ý‹Ō•:Î_ōôģÂSþ•Âl+)6eü^Ia üę=wpņjô`+Ō8Ŋ’˜YE‹°ŦáĶų’{Óė MfiŲ{踘—+`ņ€Ū:TD2Xd@°Ž?ņųÝÚbįeö$•ŨtSŸĩ.OĀeBĸÝŊnøü‚C°\qïŅqUâ:力MOū—…Ö…ŌĨ\âWZ›'�ž@ĢîsjØüW ~€o dŌ)2ihËj^wó†FĶÐãOQîp8wvŠƒO>Âũū㝌MUxþČ~ķoÛBtÆéÏŲxm;;6Ūeïž H ™ŒMʖ YY!Ūvļ8u†Ēã$ēc ­ģ“­ëߌŌN8úįAø#SB>ĸšlŸTõTŅïÆõĒ@Ā/DþķŠLšx’ē(sözĘęĪŦ}]íÛI[XV֟d‚`…Šq:ã /Iė^údōá—ýäD)ĨĘļŠŒëzĸÕŠ!šÚÅE{û:rŲni0ĩB?Õzqzåęėßĸ›6Ós§‰WÎWhSaŨĶũ°mÓēÛk~„°BóØÁßá™CßĒ\vk~BÁGÁĸg Ÿļį.ĶŊÖvy�qŲ/XR"ÕÜ ņ%ijĄ5Šáüc€(T•Š\ӁSüUÄ9v}öŋå ę:|•Ėt–6ļzÞļfƁkŨå Hd/zIë·ŅČ_Íýibą–zX,þĖÃäW˜ę&Ją{û=‘ڝũz˒l\ÛÅúN�,{§kšþWŪcgũ0vq†ôŽŧ·{žŨtöŅߝĢŊ+‹^_ˆđiĸ3ÄÞFE•œ|ÞëüŊ›ŧîÚ7a[ ÚXÅlņ,gŌËâ‰ĶM‚�!`$gųM8y!ŠāþˆW_DL?“‰>fÔ}„ÁīqÉĶûéïūŽüf„°<ĮM4"jąņū‡Ø;rhWQ,OQ*M1WcfnˆĐésLM 2WĨâĖâ8E\UÂu+hí ĩ‹R•ð:n‰WÜō^ũĘĸFĘÎA]ŋ0Ķ`bÁAu�ÆP,PЌ‡cš+—(vm~/ÛŨĸ–•IŨóŨĶČĢO}–ĢGôzvęĖø o9ý#øô=wRžš1ėe �4Wŧ(Ģpĩ[ũ0TÆEĄÐK`OŧüęDsÎÓïqmŲ.jš' ߋ02N8ķĨ   Ý*/i4{j^ïgī3ĸĩÄåÕÓã’ž‰ąĢ›hęŨüƒgŦíø›zFÁ{óGėæŧ֒e2:ĶrAsë§a3dT/ĶUO§CDNjóšvXŨŽ1šíÚPkŌHĐiÏHÖvũ7žŸõÞCÉ-pnjKÔÞÞëwĸˆGŧmRXŒOXî|õOãˆ9Ž?ú‡@ë*t@dŲ‹1؈ļæŊĸ;EžŽ$‚Ĩþš†LŠ—îÛčlÛR“ ‡Óĸ~N3Ŋ93(/jmÐJ3;7ÎôĖÆ&žįŌČa†ĮŽQ,MP*MâļåE-Ŋ0�p@·ņoļZE˜.GÜÁ4E€ (“ÓÏú™ũō'ÁŲjɔûŋŧ.’+„ĪâNðØÓŸãč‘Û6`ö‹ ~Í>ûĐ;X}ķĒ+�ˆBŅa Ļ: ŨeÅ*R‡õķ&Ĩĸ°YÔTOŽUÔĖų/x膎‹Û_]ķ/.ƒũŋžã5ó=B€™'ú6î<˜ĨX–MZ.8îüÔĒz15 ‰mËņ_ƒ&hՄ‚áÂŨ™Oî·)d)āžŊT4@$ŒĐaŦ=ÖýāH4ņÜïĮoF3Ę LīBúāX`|ĩ&ņ0šÆOÔ4ĸkÖõŅÛuSDûëŋQW™-ž‹eîDm3ąYĸˆ%Ï$D‡ŠUĸŠĮ<M“ĒJá/ˆärŦë˜ŌĪS]ôwßBgÛö�OZÆĮÓuā…ÂNu…r]*å"3ģ̌`xôį/=ÅäÔYŠÅtŽ g‰qyƒõáiÛFēI11)|č?‘ýDœĸÞ§gOâč‚G4īRNÐÎģmý°kÓOxSuÎby˜Į~žÃGBT vˆī("ļÓīņŲO}ôÅŅäķĘ=�WÆŦI‡îQbˆ%|†x†&FšM5‡ķĸŽâį|Ũđ,vŽ…yp—öģ+āøPuÓÄû™_jļVčdI%‰FÁTÜų7P/Ž/<īÄgZõįÍæŦ‚’ÆĒLąōHėóTģm&ļ ßá›Øý‰ë ,ö~c89~$‘ýƒGý{íŪ· °ÚÝ=đâÓ3ÏyŽtDÎYÄ ·&ÖDëÍŲ‹*UŋĀÁ&ĸžüĖ$ŋ‹-k$Ŧ?KĶÉĪšé빙îöÝþ­öĘIFÄĒãë— ŊAOkEĨ2Ëėėc§đ4|Œ —ž`høŠĨb(Ųä8vs ĻhĪM]ĩÞx™AÔ  ū ļ:aČŽįÝGĮajîĪũ Wä|ņĻ}·oøQvnz7Ū*Ôč7a1[äņƒĘ‘Ģc‰ZŪ5?~cߝ|Ž‘ŲŦý ÃQĀU”!+Æ"šč–ŒƒËÔdðĮBM‚}ψ!ņR�õÕėŠԈš2čÚ ŋtUFģ ÁÁ"œxÜ šy ÝHĘTÄzŅĮJØ4T/Ë]T†^ÃFo°kr―4pþógØóOÔ:ęÅk$ēųfęþqķy{’SņēB2Óũ|îāž$vĘeŽB*N‘‹ÓįÉÆ€īa|RŽ�� �IDATû淇3î"6Â7=wmĘqĄïd—Ļ :øŦÆ“ãŕ*g2`Ąýj"͐LĮ Šēé~šÛwÐÛy–•õŋNʇûCJ,aQŪĖ29ųCÃG8ņ į†ždrę,åēBZžÓŊžQŊyô$ËðA‘T'4Wėųœŋ‰;üøz‰ĄÅÞÚ1‰ĄĨĻ ›>>å6Ĩō™ĩėÞü^ŪYũw.ķ†―ũdYiƧŸåą'ĸ˜įŸ?ZMðÖü‹ĀĮöÝŗy‘ŲŠ�J+t˜EduË—$û"É΅ŋ‚BÉIth ĐØ4™LWkG…Nī:óH§<A“sCŒO|ýø ŨvŅžÏâļjÕļī―2ˆĄP,‡@&"eËð=+­)–œðŪåēi,)p]ïëáĩ$dÓ)ÚōŒņîŌš)gŌM‚:Îĸ2šįéøO2šyģĸčÉ_Žó7uËó&JÄ2N“ĪüōË!Ī�V\˜9ƒ2$ÆĸŒ†Þ5mtĩï"Šé{Ŋ/;“”ņM.ĪÅ­ƒ h„HjÓĮ›DãʁIĪŪvŪ_ˆļ‹ąsŅ%eåéîØCwûnēé~o|O{f&VęĪī‘R2=sžsįðÂųĮđpéc§(—Ëþk •ŪÓ^ †„ðÔ& Pr%Ũڈ‰öīsŋŒÁ†)#(bĻƒ#%cx-ð!?H<“ø[ÝúF‚)0‚ęv›ĐŲ”Ęc+rFđŠDgÛvŪÛō~Öôū Į-ԜĄ);ÏÐØÃ<žĸó ž­ëü}čP~qß]|•Ą­x�'ŽHč]Ŋæ ?ģÛī�bžCy)A€_\óÏų !ČĪmūôōüŲ‘Ë=(IĪR’þîvn―a3ŊÞŧÕ{·~Ã`pLÚæĀŅøúGđ82MĄXAkC:mŅ՞ãožWïÝVÃ5ŋ’69]āž?ų:Д…ë*ö^·‰zÛ-ä2)ī1|í;GyāņĪRŒÃÏŋũŧļvûZŽŸâÏŋē?v<ežö|†[úųîWîdMo;åŠ;Ŋ{ŽĐ'%}WÁųŨɰ›ƒþĸžâu|ÓtŨŋi"ûþĸ›Æ7þxũģzé,KØŨRJΎ=—lþ”†-›nÅķēQZk RXŠqÜŲ„c2ģ"ˆßŸx§ŌÁŨŽ ÆÅs<ÄMÄnģĐ ŒQäģëXÛó*ōđ ž"!*Y:œķī‘R09}šĢĮîåĖ 3:v’Bq"”­aĢ‹-7‰§KŊ4L•mĶËif*)æ*)ĘĘÆÕW‹ôÚ|á7ôOœm”îŪĢVũĸþ'„āýóûz<�QW1 XBRZ”Ę#LÎŽČšqÝ"―]7rÝÖÐÓq](PNs HÛyÎ\š—Gý"×.Õ8ĸ;Ō1aøŊûîb?/R[V5ĀúK RĶšb]—Qn0Z!Īu™A�14Āԝ5ÃögϏsôų!Īôï]Āėkū?rā4O:Ë/üäw§HŲũ=ô,ûoO0<6ë—Z<%8!g„íŨ ðŠ›ķ —ü™oWqøđ ĪÓ6Zk&§‹|ïwÝā�JóíGóü™lK2[(3[(#Ī`fŪĖ‘į/`ÉĪÎ―ðԑAūþĀQÞó}Ŋā­ŊŋÖCæ!ÃĐņ {‰Žįü›lú F̈́ÐK[ëUókųÉŨŨû~P‚0Zų\ïž5 ýZ­ĀÞËĪgýņŋø‘6Ū{RX äG )”/áļs~―Hč㚚 Ūa/ĪHǁüoč!%,Sį ęˊž[čūËĘų?­BŲļhĀBJÁÔôIž>ü<ę~Ķg†pœRxEŦ͇ ”ą.åđ4•fМÁņœ=JKīIĪ>m'&š6üÛg'ŽĖóēõ7L=UC‘ĖüEDŸLžœ)<=1{<ÜYîĖ įVŪÛú3tä·`jfüķ•åųsĸÄÏ~™Đ‰ÉšæH"–čĮ”Åû>ý1žįElË;€'ųÛhĖŊąPÐĘ‘Dåâ™å ę—ęœŌ§|•RЖÏŌݙĢPŽ0>áÉĒJūņČqŪÛđŽ7ŋv7ÚhlKräųóüã―ļ46ƒ%%ŽĢYÓŨÎ@_'CÃSœŧ4égm°–Ep!‡–0ĪðĸX ^glr–îÎģ…2ϝ!“öޏ%eÔ-ž,Ïē$Z\Ũ+{`IĘ—áąY>ĸĶģ#Ëm7lÆqT]Ļ;é�!ŲŦąøzÓöĄîƒ&ÅÚū„Āų_FÝŋŽãB= aÝÚϐØÅÄæžkKjWŪáW ŸŧDŅ)Ö�Đ<ôwß a3Ŋww–reÂïlj�ÎÄР·ÏĮxƒü@Y]%6UÛ·‘l$#Qē~iĨđfÍŧhËnôS;9ïĄ’ē3ÁĄĢÃSĸž™ŲīÖuĘXUŲū�Į†éa„NæDŽēR Tž^éõ9!„ÂžųšŸūæ[Ï~yP-=%Žŋ~„ÁÞ û3NQЌ/ëÚōž‹bMũíÜļýČeŨÖ-ÉJaqüĖßņðĢÎėĖ\õ―ë,}øĀ§?Æ^äķúM€††Ml+Yh~ 0Äڒž,ÍQÆ#båqÉza#‘˜7ŋf7?óîŨá*Åā…qþā/āøéaĪÜũÐ1Þúú=Ĩ)—ö?}†ÓįÆČĪm\WņŅ|o~Íī1ļJqïĄâļčÏ ^ür‚ŪDÖíī”m‘ē,;ÏöÍý<æ5pĨSVÄFWÕEŊĩaÛĶ>~íÃo%—ąųúƒĮøĘ7Q,9”Ęņ•ýÜvýæį_}_ĢûŧtĮ_}=­ÜÆë ‰Žĸ„šœĶŋôßpÄŅÔ ýÚ―ŅŪįûÄEó9øŦaĘGɅéÓIŲUž ÐõýäsQC—?ŲSq§ĐļÓ1NþúsþFhDŒæ6žBUŋ‰ô›ú qq°ĶXĘØx ac`&Ý͖ußOÚîŽ#—_Î^ļŸï<ú\šxŸŽŊ†į+üŧĸ;&hãĒîeTvF]ųdF lÜz#ŠÂ§ 1)ūKxÔĄŠŲs―™Ý6Ųŋˆõđâ9fŠg—ĩņ/Xû}]·°wį/“Nu‡™|Ģ8~ö_xøŅ/P˜užáŦā#yügaøđŧïb˜—€-ŧÐÂŊ0ąÛÕðþ‹?īD#gĶu‚ädņŲēH”ĒM 3uēXLŪŦŲđe Ŋšy §^EkÃŲóãa#Ïðø,Ï<wÛώßýŪÛxã+w⚉%?ø–›ģõŽå Ėj;ė=JÚíë{›áĀŅøá·íå‰gÉįŌėļf€ÃÏ_˜ũ! ]y~úG_ÖšøÚA”ÖŒM8tü<7_ŧ1ü|A†TžoipÍø`Ģ9ĸ&ý@eqÎ?Đžjb]ėqxÕĸŊŊЕ›˜ÁŋüBÏAJÉÐĖ TSéëÖÜH*ÕM ûÜĸgĘcĸ#ŪúW;į_ÝĐĖދŲQ€*j?X0!w}ōLˆŊÃ`kĩå6ąyÍÛ°­\U°FÔ|h\ƧŸcĸÓĖÁCßō`üy˜žĩT°ӝœĢŸ"„4Č*ū™’kaNcĖë„) ē˜øÓ+­ÔŪãčFœôG (W&˜˜9ŽÖÎēŅýžýý]{đeũŊbË\j_ReN þ>ōyʅšûRB�k$ŋīïcŒóąeėXd•‚za3&ūÞöjŸBĘĮ―øē@lÎ?ūYDĢå9ŠtĘÆķ$­p7„ §gK ^œ@J‰Ð†7―jWt9ãĸ)­}ÚÐ*ąũŪôÁŊĩæš =8Ūâčó˜+”8ôė9rŲŧ·pðØųC2ƒaŪPáß}=ĸüC( ĮåÄŲn―~§šÆŋ‡KĢô­qþušÝ–ĮųÏÍj&ŋÄ' ~WÐüžOíÄöTMpqĩ;ûųöóÐė ĩû7ý=7bË\D&<^v'}ņŸTäoēĐŊZŅ/&į#Ēɇāë&Ūyō*Roę Ŧ}ëû߀-ģ0Æē~!$ĨĘ'ÎÞË>üûLMĖ`Ûõa~)@˜3Æčä}”E ÄÄΈ“/ÕfãýŅÂúũŨc‚ĀÁ•AdĢĖßqgŸ>‚Ģf—ðĮŧßëú^ËÍ;>ŠVį/qÕĮN~…‡û ÜrŌųĮÆü\_ķ ųí1ĮKȖˆÁĘõĮā°[ý1ĀhŠË=yž…Ŧ=IUáÃ{Kŧn5g@ýÉē锎ž―0Nđâem}=mĄSœ+33["›Iąqmų\š˜'Œe‰šÖ†< +•ēéĘ_ŨßÉät‘“ƒĢ|凘-”Ųžū‡m›ûĢ kû;ČįŌTœ"ŪŦ›5]-Ÿãoäüį­ũ/ŲųŲz‹9ã H…N?pðÆõÖfL%.áėa‘ —WmĀ\ešđōtuƒé,twlEĘTb(UĒT‹Å?IiÞĪâ„=ąĀ3š›É@ ĶĮ( øë_IOĮÖõ―KzģýąčÍg5 ?ÍS‡ŋČ3‡ŋVJÕÂėAÏÃd9ÅÐl#đ~*đ<6›øsu‘+-ÚōBQæöË�jĮ!#9eÏųM=CĐ2>ģËN4ŒÂ)6Ŋ{'Ũmų€‡ßT9)STœq>ûW<ņäŋĒU•ó'ÔKRĀg3‚_ĸÍŧPžÄlYK�ūðd}/„ߨ</ĸō•�’ā ûeÄĮ(ĮsÏŌöđĻã\ĸf™˜øŠ9ޓõŨįώōwũ>Eđėrnh’§ŽzYOđâōʛķĒ}~ïBŅgŅÆÐŲ‘k<æWįýŲķ$“ēë劋늚‰f˒d3ĐšŸÆqGÕđ? Ĩ`ûæ>ŽœļČ―ß9Šm[lŲØC>›jšü „@iCwgžÉé"Ú抁ØKõXßŌM ĻéNĸæšýƒŽŊƒ ˆP t|‡ŪučøŅąŨ "ŋ2ŧo Ĩ’K3įjîģ6ÐŅŅI.ŨSģ—”.Qv&ôÆÕP°Ļ3į!IIßp–?6Ý1æPSæėíØÃšÞŨbËlÂáe‡gŋĘcOü).œ­é>–—%`Αž0ÕÎųŲ6&JY:7§HĢc4;óŸ‡2#Ģ‘ÔųŨýmĀSĻ―n’-ŋ$ã9ĸCËÃËįüĩ‹måØąéĮØķþ‡Ãý֖•ĄXūĀþŸįðŅAy“# °Íƒþ]āÎ}wōi^Ēķė�Ôaš"9uíje ÍŦčEâÚ-bœđ˜6€@HË ĪÂBZķ7†'mïkuæ|DݟĀģ'†8~ęJiW#Ĩ RqđfCßĸæÐÚøģÏŅæ·1ãŊĩaĸÓgļïáãĪSVÍũūĸ{n䚝ë<6ß,)xáÂxXƒ›ã(^yóÞpûRUŨC€Ŧ4ŧķ­!ûPŠéŲķ-đaŨW7U/ŠP&"–Cc|úĸ8ïÂå;ĸę.ĸĶŽcžÞ: §ÏzWí†Y{ÁãËĐFýû3ÄK"Ŧ_\�0ZJō:øĸÓŅū†Lš3|þþĨt9Ö�X;ɐTü̊ú79)‡ŊƒóNĔþâJ'Æhz:Ūc]ßëÔ %ڔ9xüó<öø_1=5S·É/ î9?“ãÔd'c…,-ŊŊ"-L ŒZP+ãöĨ ĪĩŲ’öXH›ReŒąĐg(;Hđ<nHk‡tŠ“ÝŨžMoN :ēf[9fŠ'xčą?ääЧÖÄGũYĀÏėŧ“ŋx)ïĨéó@Úf‘‹u|ĸbCˆq_­0qäGĘŪcõ5!$TAP „…°ė†ÁÁ|™gM?ÓßÓÎëÞ°‡wūņÖôv„õīLĘĩīíøfŸÜųá)ūóø rU―ԚWïÝĘ BøØMp� ĶfK<|ān•ã.W\úzÚxí­ÛHÕáðv•fÏķĩáÕî 7îÚĀā…ąQ’ęqūRŲ ïS&-ýRÃō9þļœo<cŽĐĮWóä‡3ãÕž?ZēæÅĮˆ*•†Ž^Ð2oŊMG’;Čũ5ímëH§ÚˆŸ‡9Tœiâä=ĩN>ÎčgBŸjē#’)Mü,3"âÂ3FӖßĖÆ7"e:ûG5čü_xęë”Kn]QļŽu38Ձ̭F`^ÓkÛJ[Ļ’^čĩ{—„ļšØ^ĻŠgIiS(]dlúŽ;ŧlÁŦÖ.™t/Ũmý ëz_WÕáï―!ÛĘ21{„ý^<^SĄ ķĩLJÃOĪ+ÜûRßKˋ�„*_ x�ÂÃPģzc�—Ÿ!Õðԇ‡v•;ŨÕaMr'‡Ļī@Øj€DXvDNËĀßøŠ|ߛŪ ģ=G{>‹mKRķAZRŌޖņ�Ĩ`xl6ĖĖW‹ė§Ų°ÆhC{[†ũĸčk<Ā’l\ŨÅésĢÉŧfæËxŪԌOyž–%éęČĄ›Õ{hp(&2BÝxZ!=™Õ°“Þõįæ_‡WžĖo#c'~‚–ģoøŽ$’ÉâhÍj–�ØV›ïīƒ?ãNĢuie*€S_ĩŒ§ŠÅ~Ē@@ÔAíDxÖĨėķŪ{BÚޙ'"NO^všûýEŽ=s(0ÕRšf\‹§.0YĘÆÖäŌ‰Ŧ�dJ,ø:cLî†lí8ōggfšMþkũJ0›čýszîôēýĢÉĶ{đaûÏģķįU^ĐŲ$Ë–ī›:Ėwų].œ?SoûŌó‚0üäÝįþ—Ã~Ze€ZĨą•wþâ ^/öyu4rĨįđķŽd0Šž]m’Ý›Û=ˆ\H!Ŧhm1īåÓŽíkgbĶČØÄ,į†&čéĖ5œë‘ĘÛ7ũóCođ9 *Â�Ä6ŽíJĀĸÁŨûšÚxįwßPó=G)nØĩËjtđŪæ ŊؑtH$ óˆ, ?w>lLÛŨvųbGfɇˆ'^ĻÖĐ$ŋ―výŊĸkfaāĐŅÜËÁ_Öþ+Ŧ"gŪĶYŌ’Ðž_‹måļ1.åĘĪįžã2Į Ļ=jöūĶI’ũÔýDÅ"1ÓPÚnÛðƒ~æŸ,#x"FS|ýĄsėčąļÞW*0!Ûxšē‰éB iŝþå­™’MÝk­ôNāĀRQá€{E—‰™cĖÎ,+Ų@:ÕÃÍŧ~™Ū[Pš’ā3 ~ÏčÔîø.žB&­xõį„ķøĀ§>ƃ/—ýīė€iāÜÃșUžð…B<ásEŪĶLđIįŪĘ8…ŅX ~MOæK i·+lßÔÅþÃ2éĸðO°eíhoKû”Ļ09įP*ŧôũī“NŲaÆrãŪĩėÝģūŪŦRJĢŠēYĨ`í@úąŨÔņcĨ5J™ÚQÃFhīŪâ;БŽl^yc J98NĮÕüÝŋĀõ€\ÖæúļŽfßA§ž}ųM|*”T ;å >―­ĐįĶ[üŠ �$SÅ1īvk–U:#Éįzž―;cŒQ”‰°ĄOÄĸü!ïjđí(ˎ8ę‘+ÅI~B>� ›ŨžLš·Žæ‡Ī\囏ýrCįoü�Ēļi;‡GÚÐÓĨiÝË=› �|Ûēī�Ÿó7ƒbŪtÉ™ãH™^VįŸË pËîĸ‡žŽ=(UŪCĶx–ûþm.]œÂķũŲMj>c$ūįc<örÚOËNÔHí/Ø|aĨsÕZ�<ð8<ũ";ōüLDÖÍZņ`w›`ïîŧĀÁãÃ|î/āíŊŲL[Îf|ŠĖW<Ëķ üøÛwĒSŊã<ęeGXŠð3!bŊ•!\ę4zŋUÜ-υw_đ%œŌķ —ŦœBxĀĐō4Na U™ gЧg‹|ëÁgöūČ —fÆš[võ°6?Kab‚°c~ũ]ĮĄŋžé^ī�‚BeĶæŒ1@6ÓA.ÛUwŸ8ÎtûãĐÏ DØĀOĢ @āøk"D ‚Û5―ŊĒģm{‹‡ž�ÂĒXâÁ§~ƒãGÕwþD:Cöú·2ڗC^:ūBu…ú樚Å\3ÎgĄBéŪ[ð ĸåĪöEŅ™ßÎ-ŧ•ŽÜ5u?.Ž>Éý}Šņá"vēÅÉŦũ{T>žïc~đí'{ų7(MŠî­f]Z‡AĀK  <ðŠ=;=ÁÇH§,?:Ę#όM[”+ WkvlęFéĄ&ÆÉfĮš™ûŌL•‹Ņ<ĩ[F•Ķ *�ЕB$Jã–ЕYī[ ?įøT‰ŋýÚqoQаF{۞~ėm;(9^‰ĪÕ(ũŌ�ŠÎ\Ý$ÃNeIĨōUkÖ?vT!™ŠXo ĶÆÁĮ ‚âōŋÕŊ3FŅŲķþŪ›}"B$g‚Įü.GŽ<‚ŠÓ"b ˆķ2Ũŋ{ýÄės+–( K4{ÆŽYĖģH WųŽ_—Â^6ôÂC_šoãÆŋD.ģ&„ýĢįë‰Ūzá>xäsLO:5Îß(‚{…áîū‹3/ĮýīŠ=�†ÕÕ�H„%Ķų—^Ķŋŧė·ZŪ( ETĩāÖB ĩĄ·+ÃyëÚr6==ÄäŽōÆýōAʒīåSG€XLķô Ž`ŪčAķ76” ;W抎õkÎúϕÜpŽQA:%éjOģiM;7îėáM·oĪ#ŸÆUšåü_€Ļ�)Û�LrÍĢQšĒCĄ(T ø'HÎú‡€˜<þÉ@€·!ęd û6ŋ QGhƒ(]äčĐŋâ™Ã_ĢRŠjø ~G{éފ5° ­ÕŠžAÍ�^ū&@góûÜP,S*cYéÐ/›ĸðËvúßĞ-ĸ•Lš­Ý$Á°0ÂåðsÏãOý…§ö―/|I~íîŧyđî§U �Ä=4d“€ j}B†ŠaŦieGóž·ïä]Ŋŋ€ĩ}yœ&ōWģū/Ïŧßš“Wßļ–ÁĄYF'‹ļŪĄĢ-ÍÆ<;6w5& Z!ëéČðūŒ`ãš|Ýßýö^þįÏū€m:q”fŨæ.îüāmQۓؖ —ąéé˰ķŨĢ{m9ĸ—PpfcL‡‘ŽĘb[ؘW ĘAW#ĩ―ØČ_ĻøK Yþ‚!šHņĐ‹žŽëhÏ_—CA!ͅá‡xâé/17íÖïöÏĩ“ūņíØý[XŠVÅJœ›F›\Ó€†biĮÃēŌËÚ&ôt\ģîėÚô^ŌĐ.?ȊģûŲhSâĀá/óôĄĨ\tęRûúņݧ|ōîŧ˜|9ï§e �ī1ļÆEUwãjĢü ―Ę Ü“Ąm}°|A !ÄŠ7zyn†=[ŧÅ0ý-äā‚ÚĨŦīŨ·―—ÝŨtãļm ķ%I§dx`ŪÖx 1†LÚâĩ7­ ?OüũĸíïĘēĶĮ;k”ö>swG†ŨÜļķ) rmVĖąeWÜ+Qv=öĮęô"mįž �ŋ‘4R Ôļn[fÂ5™ Č1ÅЀĸ#øf„Þņ@ zđô�Ý·úý:*q ˜+^âáŸa|ļXŸáÏN“đåX}[ˆFcqĖ @ĒŲ$@mōąTýC,ë"„äšuïdŨĶũb[9Šå|Ĩ°põ,OúÏ<ó5œŠŠFˆ‚Š>.āģwßÅėË};-c�eÖuīÕ(üjAėáÆ5M/ķpŊēfAäôIŒ™5ëāâҰRín&m%›Ī^ųę}&ĨMÝŊGÓ!ÉŨ4úđFŨoŲËĮT―Đ );‡%3~“ŸŨā‡Ũ-yį’‘Zb@čöđŠĻ0wð"Æð'HdýÁ™gÉ4―]7’ē;0& Ic Žý>gO§^N!€ôÍߋÕŋ5ŌéĻé \þ žÐ?+ŪčóރÅÖõßĮĩ›ß—8ÏĢBâĻiž8ø'<ôMrԘLt�ôļÏ~ōŪ=Ė­�`eMcPŽžcŌ‹ qæ !Ŋ,n‰N·å0[ö’��W;5YąðK�–ĖFę|Ú;ų]ULx‚Ðukã5̚IŠéĻÐï >R€ĀøRĀŲt}{1Æ%ß !žtO<ņ՘2`Dðc€ÔõoÄÚp-Z%ý‘$Ø7—û|ÐĘ4ų:]đRÏÚËėmķmøaŪÝō>īŪ$?p*LģĸāïqðāCÕ3þq™†Y!øŸûîā3­]īB€ņ7UĢl[jP"XÉ�`IP šm•mYËZķj;ÚÕN]&KÚ!Ŋž‰ õxS@Æ#Ņō›ũBīŽęi�‚Y1SĢúÂbmïk―~ŸÎ/ĖJÝ)î{ā8ĨHi.pþĻlØFnĮ+ŅŪS“fôŋÓÆĪ% Wæwk,™aŨæŸ`įĶĸ‚ã $”n‚ReŒGžú?s�ÛŠé­þÆðœĸï·öϊ�Õ l4€ąÄU‰ Ĩ˜ÂÐ.ĪeĪ"­Ėđe-ŧ:ĖC�ęčĘw?U­tA§}Ð`ü’€_óȝh@  āóMˆ8°ņœt>·ŪŽÝč―Ó{―%m}ö*aYÉóNG7…Ý·ŅĨ܆ãJ—5%ŒęݏU�īvÉĪšŲģõýl^óv·đôJ˜ģsƒ<øÄgxîØqRU“†ąnĸ ĀûîāK­ģŌ€ņt—u―&@_øJEē͚DpI–Ïn1í{Ø2•C;…ZA˜–ĩŽeW&@ũâü IœįÆŦï›X†Nũ‡þÕY~ŽC0&uņn4ëû^ƒÖnBŨɒ)ÆĶ‘�A�� �IDATðēŸ”™Å+Kč”MáÚÛÐÂCEëžN„ú+r&Š&{Ēī^ÍįŦt…öÜFŪÛōAÖôūWk~,™bdâÚĸYΞ$•Šmüšĸs~åSwðÕÖÎY�€`–öęr’^@ԜÞī…ā 5ąqŧî8ģÖäŪÕŌ ėŽA9ãcL+hYËې –°ÂyýęqšdĻ`bß šþ’c€"ė HvöĮPÂ9!"dČgŨŅ–Ý„ŽĢyĒ_†‡ŸøĘE·ĶîPÜz=ŠĢ'ü<ĶŪ2MÝĩ|ũQ7}íU �<Io‡Ūö\·õƒôvÞTÓP)„ĀēԜzGĸ†.\ÄŪó>ģģýFðËũÜÁ#­]ģJĀÕjŽqȐkĻRXul˜Ēpûŋš:'_ïŪ9žGwæē2ŧÈtĢ2 ÆīVOËZķʖ‘9Rē~0/Lu 2ĀúuXœą‘ŋā%ĄúΟå‹X–Ÿ`Ë ūįgŠëz_"ō­me8wé;œ9s  úB•þ5TÖl'Â`Ģ!ÞąR@ÓhėųÕpþÆļôt\ËõÛ~–Ūöā+úÅ;ýĨ”œ>w<þÆGGĐO ã;ũĸýž;9ŌÚ1­��m4áé….lÂ3'tïýĐáô~ÆeĘ ĪD“äŲ-kYËVƄaĘ*6@ŠĸŒ’:'`ČĖ)ÕE_Ŧ‚ī2^:Hģs™5éO85ā_Cž>ô‹3Éwb@gR”7ė@góģP…_Ž\ @WôBNŲ!„âÄJ;ÐôtėáĶĄ-·Ú1?9ųÂŨxøŅ?ezj&ˆĮâ™ŋðgýþY~åîŧ8ÝÚ-W]� "đÕU,h eU"eĨņF1%t{ ĮëÉÕBŅÕē–―l#�åĐbWoDZ)īq‘"é9Ĩ°=‡ Â*ą‰:ËE,ˏðä�EˆūŊīCOûĩÞucŽĘēl.?ÅÐĨc €0ėúï]KĨwm( ŽOŽVĸ�ōh…ō í.xaaŒáčÏ^ZéGÚÝą‡ÛvĸšÏîgĢ~AïØĐÁûøÏ‡>GĐāÖwþÞĮų$ŋpũ/_jß+�hŠúL€ÆčU—ä ?ĘšLÆĘ.͉OÔų{Ëų·ŽeW4�°0Đ &îīýČÜqK(]Ɩí‰ÉÛÎ{Ė‘xc€"čÆCÄx"Đ`„ð―ŠYíLއ� ŦóZï§YŠäđßfbō\äĪüãNes”ŨnÁX6BŦu˜įäZŅģr!�ĸs]ŲĖz:Ŋį•{>”Đð™ÅïĐ6ŠÓ/ÜË7ïĸĘ­jü4áp†‚’ðūOÞAĐĩIŪ@�'ŊkÔ˜Ô_Å@Ā]ĄĪŠäė|øû[ý-kŲ‹ĖŒ;íeęņ3Āã”PŠ„°ĢĖ]‰-ģ^Ũ[žŧ?h$lL4û%&b@M{n)Ŧ=‘Ĩ !™š>˅K‡PŠÄčŸ*]}8ý 61°PO’6+8mp‹jÞ3Ð?ŸŸZ)į/„` į•ÜūûŨCzøĪķ‚Dë ĮÏüßšĸKHjĶ>‚‹ †ŋÛw?ÕÚWˆxÞ?|ÝT3ÞJœEw[Ķž&ǐęģĩZÖē �€TĶŪ7pUĨJąDÃĪ”Đ 0ą2eƒĢZ~øĐ|Ā!`ŒCgû,™ŽŌ{ž�`hø(Ã#ĮĢ�&•ĒžaŦýkČēŦĢčsŪÜÁĪ+zÁŌ‚Ÿ–=�0h,™fãĀũpÃöŸũýA$›Œ)mwšCĮĸ’GýJ­óbAI>ũĮųHkg\€'ÐĒę‹ 2ĩ‹5ÍÕģ•iÚӝĪeÚã oYËZö"B�Īē üÕuËļŠTĮ™‚meQЉûĒýïwEဉ~0ā^†Ī-ŧÞgÔĄęŸŦĘ\9Îėė\R~V€ÛŅCĨg-RŦÄû6Æ+K4‚úõ23Ķúōūļ%íŅ 7~WĄâÉåýýДկÖõ?ĀÎÍ?îMgă2ĀēŌ˗xō™/ðôÓßNP(‡Î_ „aFöÝ}ŸlmŠŦ dҚ/H0ŦÞ e]FW&i·;ÉŲđh·…īŽe/ ĀĪē5‚öÂ�·Þ„€Ä’”Ï֍øų­v!`"€Øč z™Mũ’ēÚЎfg†8á)ŊA16ûPØīŒ§Ę?gÄ*dûÕį€[R43‚ ,ąlctÆ(Rvŧ6ŋ‡kÖ―Aİ9ĸ 3…ģė?ðyŽ{l>į?‚āÎŧïäO[;âj �Ež1Õ·+•w7Žv˜v&)ĐmĐ22“ KZ―þ-kŲUŠ�Dķ„LnSáõ�TœB]ĮgYYŒ3 1a°ČōŋĒ*q<�c4đĖZl+#ôŪ15s‘óC‡°bq‰0āäÛ)ũŪņzę(.î–ũ,ŌĘ +zÞúŋĸõcšĒ§—ëäÍĶûØģåýlZózBGœ B eŠĐŲ“<ōøį8uęņXÉď0ž�|tߝüSk3\å@ĩôlPĸOče_ �Ā5.Ęu(ë2ķīIË 9+-mdÃDËZÖēŦ Ũ…+k9=ĘåJÅĐę!,ŌvsæbLæ7Ô Báũ V˜D†ŪK.ӏm·yWũĨ]ÆÆOS*+ŌĐdQZw,Ôö=é:gLxfŠ$ޘüōœÅR ĘŠ)%@cĖú�ÉēœšųÜzōŲĩ1į4Pz “Ó'øÎĢĸ‡sƒ§BÔĨÚųÃ)āg?ußlíƒA�āÁ;šŽû]å)€y‚Ĩ=uŠ*3įĖ,*>oYËZvö­ôc°g K% ʼn0k7ūcÂ&“îÁ…1V’í/ÞyNm Bl+O&Ջ'ĶÂúŋãđpé2ĸ Ÿ °°öКîyW/ũF߂Î�ņ \æqô=ļE…q›Ļĸ ņ-`Yš<Y_ËáŒ9ĸāþOΜâßųM.]FˆšþNáj'Œá'îų8·vĀU�ãIbƛW€™Ūۃ%ðķ[ÖēŦo“īLĢR)d9é•‚đÂ0Ž*b[YŸĄO"…E6ÕëF#~^@ý#tŽþ/ūžoÐ7`ÛmĪėö˜ČžwNT*sœŋøtĸĖ•Þ~L:]§æĢh”QuƒYÕãpŲŲŋhmPe―ÐīB ]ýøģ>ļ,‡ H4lŠ2<9s’ĸÆLŽÍQęDęˆ“Æð}ũ|œįZāŀ�ˆZ§TӂÅnZķe-kŲRÎcpÛšHÍN%ūĨĖGpÕ,ķ•õ�’tŠ+„ėM\8$ų1Ą°Wĸņ�ø8|ĘĘcÛmU|&P*Ï15}!Éûo 8°)ĒžįžŦïŒĘ(–#O ŪŊË ]Öóį@ÞÛĸķīåôJ<ūxð12~ˆĸÆ'˜›vë:ĸQķoĸä] ĩĸÕ�øL@F˜†ð~ĀÆĨŅaMËZÖē–-ęĻŅ §­ƒ\BPĮ;ƒæ ĢTœ2Đþˆ˜Lxæ)ŦĨ˄ ~Ą1’ `: ”F`ī�XmĄ3ũŪo˜™Ēâ@6…F@đ§Ŋ!į‰Á ‘ŦwÏ0ļ%rôą‚Āó `feœŋ/ =Č7ūýiŠpþþtfāî·?ô[Ÿ`šĩęŊō� bÔjxÜŨWŧ­ {ËZÖē%:3Eđ­ÍcũÁņBĀėė(Ĩō ų ÉÏ;i,™&ę X.…īŋácņ@ <ÔÚ@CĘnóh…fÖZkFĮN$É 8ííT, Úiø9ĪL­ü― æė]ýBÎ{ú:ĀwŽ~ņleđ߇”ZW8qæ?xāŅ?ĨTÐÕĪIF™?ü ’Ÿų­;™k­øāŊ|m4šnÔķæjs·Že-kŲâ!�*m_læ^ ˜šĒTž"š�ðgĖe–LŠ›BiČoöŦóOÔöCē � °IY:D@+Íøäâ>U(uõ‚˜įœ3xÄhĶ 0 ÎŅE&fþUƒ[Pó5€!Î.+öāģû)]āčsĸČþ'ĸ/ĨĒ›(oø•’ Rü{BqŨÝ-įĸâ �"-�Ó ã5É}-Z@ËZÖē%ž5*•ÆÍæI•æ<úXĢ sšĐŲól0–HîËʓMũ{gˆ{œ`îŸØøĄ°žß!€6ķOÕė ZkĶg/&a ŌÞéŸr ļö…AŨãŽs^.g”Ņ†ĘŒƒŅfūė?€ĸŋyô‹g_XūĖΰPŠĀĢ_æé§ĸrŲMtû›‹Ãūībßĸþ ­•þbC�ŒID-kYËZķÜäîåŪėr!õ” S§pÜ9ĪÝþŒ%ÓdŌ―€D ģIôŋæï�‘Ŋ6ķ•Ŧy'J) ÅҚ@§­ų:øDõƒœå:’UÅP™všÉþ‡–3RB t‰ĮþÏúŪk<ī$îü―XŦ„āĖĨųOý*nk•ŋ�ß<čĘÔýšōK- e-kŲådĩÅŪچ/`„—ĘK̰%ŒLœĪėH§šbŠ~štš—tš—re"jZžã>3ˆđ_ƒ„°°dķæ\s•KĄ8–pz*JZ BøÂï‰jä\ŪóũÞkešŌLícĖ~!ÄcËöŒ„Æ(—žü$G{ãûņš�Â(ø•{îā[+ûE�b@qē‡Úļķ5Øē–ĩėōģËrg7H‰öģyËhĪ0ŒŒ<Ođ2CGn}xtī=dŌ=qŠœŽ d}%†‚ )l;ǜáð€r)§#i*—ĮHžtóeĮõÎÂ$ņŌŋåhĘ eĸĀŋųģ3ĨËõÆļhãâŠ9îä79qüÂJRûА|’|ðî;ųëÖĒ~1�ąRVĢ€&Ķ~Õōĸ-kYË.ãĀQĐå|;vqƒĀH‰š™é2“3§éî܁-RĄCL§zČĪû1ģ§PÂk ˖Æ/éyĻ�ðO.Ï1Ë0‰ Æĩ18 2ąQ67•ÂTõ<Õ=Ū+Œ.5ˆÏÚGĘĖ7mhLØĶøŽĖČŊ,ė€Ņšbéßzč3xfŦjÆ_ˆ°ÓĘ~|ß]|­ĩž_ĀBÐo.GwkËZÖē—điCĄģ‹ÎR„@k‰%4RĀ…‘ƒl^ũĪ•ŧü,aŅ–Û€e·ĄTÉĸēK!aˆœ―1AĒ*ŌN™aĀø#Í" �mÛ^ēģĀ9gų°AýrčŌ‹�Ąę_QáĖšóBĸ~ã_ŅóÏüŅĐÉåĖ&gNēĸĐ/ráüđ„ó!ï>†ũėû8ĩōK(�˜OėŨÔYĪ-kYËZķīģJ]=t_ĉ–F+,ËðÂđ'yÅ R&BĩQīį6“ē;pTŅĢĢ5Ÿˆeü>G@Ðāu4 0ϧ{?c4ļŠ§@PvĘ{―hÜédŒņ'�^NöŊ]MaļīPü’ŠŽþørŸ‡”09užï<üûLŒO&ĮüüĖßC[xøÐÝwq°ĩŠ_B@āüuųŠåĻkĩŽe-kY<GŪäÛq3YĪëĒ……ÁBÁčČ S… dÓ―!ÁZ“Ë Mũ2WÅ7 }ï$|TĀôO-ã#�Bz JU0>ÄŪĨ'Y§-‹…8|’{Ó@ęÏ,% ŦŌ„ƒŠčy-?XĀïĸës—=s/% Ÿó“Š~~ģū%áŋÝ}ÏķVð•7đÜ2pöņĸ‹kĩTöZÖē–- %ÅŪß[h)ņý4ƒCĒK�x―EwÛ.ĪL{1háeøáý/] ―Ÿõ~ D$e‹Äk(>2BûÍeėyZüÏRÔR1 Ą2ëR™qz­BĢÍ#Gŋxö ËæP$HŦĘųGtĸŠáC-įĸE�D˜•Ņ4ķŽe-kŲåfÆPčęĶm|-JZXZ#mÃÉßä–=ïCŠ4݌ÂĨ·ë:Ύ~WW|þŋ+-žĶå€ĨÏd§…ƒ‚ÔʄméąĸI1o)4n]·!Z ŋAÐm R JšŌx̚;c1ŋļ(ļĩĸ(?ŧïNÆZ ũ%�Äŋ2*ē›šŋĩŽe-kŲR=ŒĀÍæÂ2€+RØ(,ãg<Ášî@J_0Ȑą;éjÛĘðôï$Ō õøcz ühcÐڍč{ü’Ęy%�!�‰–QÏÁžc€DÍĶN―_ XT@€Q†ŌxUVþ­ófĸĀ=ûåÁ§WĢÂð—íEÞĸņßjüž,€ĀņÏŦ;Ýōĸ-kY˖!Å4ŌĒÔŅEnb WZh,Ī6 'NßĮĀ­Ũa!Ð~ÚeMũ­\š~#4„â@Q›zĀųï™ôŧĸuXNÚ{­”[úïCxw"˜f>Â2”E ”gœY§)įoŒ™î\!Ŋˆú$üĐ;øųÖB}�Ú\ãĒĩŪŋ þ&jyĸ–ĩŽeËám JJŠíd'Æ1a“’ īÅÉ3ßæU{I>Ô#1ÆÐŨū“LĶ—By$ÖØļc߉ Ŋ›Mhƒ2 Ĩ|Ņ�/ëŨ!$éī…ëŧīG†fīX0x P‡zIÔbĖ-*Jcą1éïüÁðóF›É•x">ĩŊ2†ŧïđƒOīéÕkËŨčŦJ[Ąˆý·õ§õ§õ§õįrĸ€›ÉRikGψ4 #%ĨŌ4§Î?ãøũú”vŲÜû:Ŋ#ÉMÂŊũīÆĸ J\­ĻĻRÔĻņa‹ķüZ/€#$R+?óŸĸ}  õĸ ›K”TES.c\3oæ’þþŲó•gĸ|pŲ21cBŠas~õžŧZÎĸe…�,Œuy+ÄÛ<- e-kŲō$ŪeSη“*ŅÂC2Ja$<wâ?ØđųÍŸá5߭횁“ĢũS.O#,ø'lčĄEĻόƒĢ ‘ū_PHAGĮF&g/xS�R Zcäüg\(CÜH ĻÉ#ē2å ĘjAŪôpPHņŋŽþŲŲå”Ú5~ïΆāŨöÝɗZ óe�Ί iÝ쯄HAËZÖē–-ĮÉcTē9\;…TŠĒH“2ŌÆĶN2<~Œu}7—û‘Âbkß8|á+Ø&IûįUøŋīé(&ßhŸ-ÐG:;ÚŨ…[K‰T.B›ųsc0VãiA LļPæmšqþô_ÂðÉ#_<s`93ŸO a8 üũ}wōO­5ųrD� IŠĖÄ 0"ŋæÕ�ZÖē–-›i*™•Lžla-$™&ĢĘn‘ã§ïe]ßMäOčČ:Ŋ#?ō�%g!d(įkŠXKīv)ŧŌįô%më=g-ZHlŨĨ1Ö‡œß[P/�˜ĸŸ―7·ãŠÎž{ïÎ|îĻyķ,Ûē™ &`Ķ@MÂÐ4I3†1iBūäK:tįy:ĪÓ: $08 iĶĪáK$a088€ƒOČķfé^Ýé Uĩũ^ßUįÜ{Ĩ{ŊdY’ÔŌSęÔŪÚĩŨŧÞ―ÖŧÐÁéĀér–düüMÖģ7œËŧŪsŋƒâĩoyŸ*įâũ+��æUĘZN Ĩ•VZiįlíQ†ĪV'Lú(ïčé˜X,N2ĸGgîbē―‡A3AatĖŽ‰ëđíāßĻĘĒÛũE9 ��Gß-āÄí… G­ íæÖ äL„(O&Ø0Zs•SĒV ˜žôƒZëkŠ_ŋžųŪčëõļGÁ ßōĶRÚũû�ĻAzËCGŪĨ•VZiÆ BR­SéĖ$ HLHė3|įĀMLŽîYÂ>æLäxc7­Ęæ“cčBÎ]l'ü Ø.™í˜Jņ} ŒĘĀ@VXįz�Aڇzs­ĪžÓŽ…B3h"r„‡R4Uėû/Ŋŧý†ûœãõÞ(á.-<í·åü>�"9Ĩ5(<y"$.eIëāŌJ+­īs} X’Tjč4Ŋ‡ïĻ*‘tp.ãĀ‘Ŋ0ĩå)Œĩw‘ËäYóqXcëøãųúøp(_'E†^ū}ĐčÛ}ŨĨÔ|‘ĻĐD#ÔëctŌ<ļvZôzČČĀŅŊŌío,ÁččģâJĨøbĨTĒ”zÕ·nļïëįø†„/)Å3ûÍ,”óŊ�ËßÅÓ"Óōæ—VZiįxáĄŨhũšyƒ 4]QSpčÄíÜwäÚ­t^öįe˜Ļï`žą›éÎwÐJs‚Ō ^‘Ú.ĐíԈÔP.Xi0aÄx{7c_AŦ MœôrĄõŠËáé ĨōíĻŌ;–ž­óÏDäŋõžû>vŪïīŅ|{ŨAžøš?Ąėíþ]lú\ū{à ļʏ2óŊīŌJ;ŋ@p& Woâuž”ŨŨ1Nœ8î=p'æî[ütáhŦá[FŪAĐ/y \ĸ_ ŧví|‘,XOA3>šŸįhƒqŽ éŊ�–ˆG‚E—.IúKEäŋ}ë=ũýÉųļÏŋó&î+É�,›ŽGŋZĀ LĄT,­īŌÎPž^­IÜí Åa芈šN}ƒŽ~™V}‰dúy`ēą›ÉæĨžûVÁPæų�.ĸ‰ëģžĀúŽh"äņ^P*dĪĩUDûBޔĻڙ'ŦÔV_늒ƒĩþđÚۜąĸ_"óÛWJýæ7ß―ï­ål(íü€bŋląpfåëÅã―ÏëhK+­īŌÎ ÐtkMģ3x‰ŠqhíųÚ―aËäĢoïHØätŧĐģ}ôŅLwũÓ·s *§H‹Þŋ"šŲÞ1zŲ<QPE(dÍīę›ĻU'˜O;(BžRÄÝddÝŠë!zí@H€f­…/Y_WwþÅâ;‡ðß|Ïūß+'AiŽLóŒå)hv90(Ŧ�J+­īóe‚Vędý.&˰ĘÐũ1u#ĖtðÍû>ÆŪ|Ą‰ę“aŦogSûJîú"Ē<>ũŌ…ó5,ĪSôíFEˆrįKĩ:ĘøČn:GoAé*ˆF;G”tI+ĩ•ó�ž 5tW] u@}C……ý}0jmâCĐyųïsûzĸŧœĨ‰ésĸÚÉP pĐ*`™PZiĨ]0 Ļë6Fōč])’bL•oÜũ1O+ïø§ōLįN,ŧÆG#žDTÞāLTÞ�­˜KĶčgųg·8,a\gž} Úhå­ðZSíĖįM‚V‰ôíŌO^3ŨNĄ―­9Ė785hĸGËEķī‡�,ƒĢÃÉÉĮ‹+ÝiĨ•v@-ŧ Ī_k� § }å x>w۟“d xgņÎáÅa]†"āĘ Ïd@zÂ™ĪĖĶĮČ|Šó'/„ī›Ûˆ‚&!ЈRDYí\Ņ*øTK}rĘzyōŅnīĐ­‘ÓĪÜíŨcï+·?·œ�Ĩ‰™3ųКGŒ?ŧ–ģGC&vŒR jCdëÅãÅé~+―īWæ�”VZi€7A–Ē�Ŧ ōlņÂúą― Ácņ…<o%ރRï> þ(•k�FŒT6æýMžGð9“ žcswÓï'ÕūöJa+ÕY�Bl*Ŧn(*�dĖíë {Žp‰ˆJĐįL>ē}ãą[gũ— īĩėœVxï— ­ļÏ/R€ŌJ+킙GÓŊÔĐtįE‡*ZuQhn―ïŲ0v›&ŊÉ%ĸ”äë˜ķ<’éîAŽ.ėC3hhĶ™ę éC`ō…ŊÍãĘc͝LÍí#KĶbD îučÖZ+ÖþđĖáÃĩĪŅó-ˆúš-5:û{ˆ^ĩíï ŅŠ…ð™―ŊÜþ|ņōéÛoļŋ_΂ŌVēsģ0˜v^-EĢ+a„Ē#āā?•Gy”GyœÏ#/Ë˂˜,Ž 2ĨéĻQ‡įóßþ+fãÄcÅKČd>áō‰ëĐEĢXïp^išķÃ\z'^,NVƄLī/%ŽÛÄĘåzJĄž'îwYĖã_ž6—z’ÄŦZÍfƒÖŽĶēö’]”ŠŌ*RJý“RęũŊ|õŽK.{ņ– twĨlįn  2ū}„jT]õ<™Oéôŧˆ•žüfI_åQåņÐUôŽÕxĨ1ÎĒ,Ģ§ŸuHē֏ėAkƒũ'‚+ķ/[•IĶš‡H]$W TĀhu3"‚/XO§<Ž˜šŋŸn 'š ƒÐ^H "š(9PÃ50ĻŒŌÃĪŋSžÁšŠ é|F2“­Î° €,€VŨŠČ u õšGv&Ų>qėÖYWšūŌÎíĀ2C \V–VZiŠ�Û!YT%Jz€Ð!„�Ë―ĮūBŧū™Ëķ>Ĩ úsĮë―§ķØ9úîœú"™íĢuĀąÎ~ķt MXČ ƒˆ'Œ›Lī/áčÜ―D6̧"ÁxK”öI*uÔIt?ëEųįVsęMĨZaäēÉlF:$ý­E >ģxŦˆžļéĘWíøĶˆÜ­”:ā?Ąž7UÝýúÛî픓Ĩ�Ĩ•VZiß;V4­ĨȂí-Æfˆ(ššBCú$.áû?E―:ÉĶņËŋ(aîÚĩõlu{Ųwâ8Ÿ’‰åXg?ëÛaIéģF11ē›úÔ­d Ļ`銅'ĖzdQŒŨ&ï8ϊF=‡‹,Z­LČ}d"ęcu&ŪöþŌ4ķëÎ`čŠ�ÅeĄ�� �IDATėQJí)h…#Ā ĨÕÐw=Ÿ\ųŠļ øÝoū{_™@ø}`x Ģ›t·Z‡ŽŌJ+­īó‚†`Ākƒņ6ÏÐGãĩ!TBâzĖöŽ1ÞÜNÔqäĒf".ïī%Ė'Óyän{ŽknÉ[Ü Ā5úéӝƒh< ! ÐÞãL€ ÂSÖ?iBžRë?ȧīŌhĢ ĒfHũpïäLDÕÔ J @ h�“JĐÍ"ēØėƀŋ?vëėąrΔ Ā9â ­bĘ_ZiĨ]hË ™Ūõ{(„Œ€ū‚XRŽwïįķûĸ™Gïz.QXü°7°°Ąq ‰K8ķ°ŽŸcš”V4†Į )­˜đ„ĢģwsĒ{ˆ Äh„8ëãâoEŅ—8T]sēPšy'ęļáŨ{6_?Á›Ķp}‡ŌgPĐ%ŽĀÉ,ÁĀ,ĨZ[ �Î_œkå+­īŌ.<P’įØČcē”"‘…(Í=Ó·RŦŽqŲæ§ ‹–ÁjPϧ<[ۗãÅqī{?‡æŋC}|$9†Ĩ„úF[;˜MŽcž#Pž ƒqa–’Æf™B`jSzķ;ÔQəFĸK­jjyü.°õéë8tóɉt ÉQēŦĨ]„�` ÔYZiĨ•vAƒ‘4ŠˆÄcÄáž"QĄ―æko$l›|čĒ’ pʈesë2œxĶû‡˜OgĻĩ'JÃD{7Į;û9ŅŲOĪb QŌŚ†ÃˆHž&)Ą1E.Ā`\i­Ž™:Ōeķ<y’Ģ·ž`áÞ aU&Z—vĀbiëé<?JŦ�”VZiŦķRA%}īšEd,Úū|ā_PaČĶ‘ËÅxũ�oŲÜރÖ!GšØŌڅ_ī ðBĨūŽņöNæŌiÄ%DxR DĻd=zŅ"�P(Žĩd6ÃDÁŠ-՗Z=h6BúAŸ cflŲŧČ:Ū�e Uڅ�gÐį§$ýK+­ī‹ÆDPJc̘ ËPâI ‘v€â+|Aąū}iŅčĖ ëõ­ģŒÕ62›LÓËš*ČÁÁ`+�ií`Ī{„ã û%gžŌhg ’>YĨZ”æš�―ĪGhB[ Ŋuý‘މj―ŽKteHm}ĖĖÝ ôŽ&Īsđīą:)8+AAiį�œI ĘÜĸŌJ+íâ0UTäkƒ ÁØ D°€"KŠįփŸå*ïŲ0ē;ïÞ7ėð8ęa '+nĀäŸQBŨoíĪ“ÎēNáéŦ�"JûøĀā‚5Øï·B?éQŊčÓ9ęŦRTÃ:.pD›bF&Û,ï0žKïhŸþt†í8Ô@ƒČK J{8��”åĨ•v1ÅKœƒbųŊēüŨÓŅ\ücT‹IÉĒ ^‘wî!…ˆ"ĀŅw ß8z3ÏúÖNœũĀ@ÂWUl H^6˜o·OĩūžVo =ŸāmƒÁŠ\Q0Jú$ĘāÍĒ6@’ĶĻ`fԂÓTLûĒC‘(Á(ƒ1 Ä[cÆķސv,Ų‚ĨģÐaáH—Ų{ŧ؞-'ziį�Čð;ŲóŦSôŊJ+­ī‹Í!j­.uØūÃ[Aœ ERYkLEcb“GŽß%Ņäē1…í{lŨâŌbŊœ<q/ c ĻjŽhM Ũį›GŋˆC†ĩĸˆāņđĢÏÝņðÃåPÐnoc!›aĶw˜P,NExrĒ0é‘VjˆÖđ`Ðï% įhíeUóo‘%+îâ6 ķh1€ĄZ ĐÖĄđĄÁt8ÃÜwš§Ĩ•�āė"|Ĩ1Ɯē &pđPZiŸSTZ!NHf3ēŪÃöŠlö“"þĨl@PŅD­ĘxTø―‹ ĮX”Óeó–þTŠKý’Æd‹cë!hīō˜Š&ŠT[†(z.áķ#_`ŊxÆë›ðøžE°*”�Œ@ąĸ?`<Ömn§kŧôģy"}â-ž0IH+•žy9(I:)óõ9šAkPË.Yl­“åė°ß@iĨ`�TA‡ÉðÏ+―˜Ĩ•Vڅ·%ņļÔӛJą ïüЇýdVv*(l/ ―c ÕɘĘX4d.–w{™ã_°t&øląUđBV›D4ū'ØnJo â†Ē>âcĮŨ}―þqŒÔÖÛðÅå‹ūČA!xåQ(âę8ĢvGæîÅŧ”P9‰<Z,ašEqŪP\Wŋ“āk3īÑpɂg ķʘŦī �rILŋŠã_úr–VZiOTė3Ą? dVná}ïŊ@ũHB:ŸQ›ˆ1UsŅžÛų8=ÝĢ)Ų|ķBųąZ ĸ€�―y!ídTš†J;āëĮūĀžņk˜Ļo*nCýĘĄ†LĀ€”Ö4ęëéĪNtĢÕĒ@ hïŽÅÁēëLš)'Ēī*­Åį$‚(JVĩī‹ �(ĨÐŽÜģÚ(ƒÖe\ �J+ía0ï„tÞŌ;žäïdåÜčr{+,î·CâŅχĩå§Ï<ÉLJo:Céģį šW*č{=!é%ÄíÛÕŨŲĄzLVķæÉwK~þĢøó@EPe"FÛ[čKŸNv‚ ØB°’Ŋ™›ģ:8E#`ķ7K-Ū™Ļ`0ō3—  ī‹� ũęIý—VڅŒ‚4ļK<ý键cÏđ$ũā|ÉL†KQ+$j„(ĢÎ{~ĀŌó‹lÏŌ;žâ26mœj QSó ‡Ķ7ëHáîô.š“}6Ö·ęļļžb Ūh:$ÅÏAĖDsé|Fb;žŊrz_[‹ ōʀ"ÚWJáœcū?O5Ž!ĄŽ†ÎĸtÛ.%H(íÂ0�(”Ō+ūH+ӌĨ•VÚųēÁûfŧŽþt†Ï:8SŲÎģø>Cū―0•áR!n˜š9o‰‚KÏi{Žt>#ëäú:Ðįxm[bFa-tĶČA’u–u• Tu-WPÅvĻäŋÏóJV™hlįðÜ>Ré›� )ŠõËKõNâ…nŌE[Ml*Ą!T žA­qõåÚ[Úy� ”.ŌhJZZiCôŸu,ýé4okôøæ|ß<[°øÔt q;@š`ČÏ ĒóÉlF:oó$ŋĒēá|Q‘Wýõg2ŽpŒl"c<ZG=leσ|�ŸWU(ŠüĻ<?@UF[8Öy�įģ|›aļŽ‚ö.ĸ?z9PäU}ŨC9…Q†JS‹ƒÍ†•`đü–vū€3ĨÚĘ"€ŌJ;ŊîĨķoéMĨE“uaß;Ĩp™Įg›8âVHX–$ŲmAúbųbķ`Ifģ\ŊĀËbs 8NHfRĶ™!Íó“Tƒ‡‰€B~}ƒdAðđxOXaīķĐÞažxᓠp€ũhr°{āb4/N°XQTB·"ûZZi�œ–#(ŧT•VÚyũ― ïr*>Ïœpü N–žŧQŊë·}ęéOåų•‘ë<0óQļDHfloiđņYŒQÛüĻ%ĀeéÞĸ™Z:ŸŅz81Æ$Õ ŽQzx/?†‰EbÕiēŽÉ1”øük%Jr>Åx‡7XvĩşUĐïSÚE�Î,3ĩĪ�J+í|9zĮō^ũ&:ó x!Ž⹈VĨET‰u ™dtíþý YŨ?čkóšĮ‚H„˜pĐ8ÍĐ-l‡Ųó D.Ōđ —äŽ_‡>â/D­€x4Ē·ˆM>F/žL2:vžnŊK:!ëyŒˆÎgčPqĖb$Ģĩ‡ę~ēœA‰ĘË•Ē5i!Ė&ÓyI ‹cAÚ{žÖKô‹eÕë85ðRkŽÖEÚÂ*ņþQčEˀ›V-üÂ{ļý8‹,(äø(Ō+*‹û01™Ŧ ‹Ā–-ø={U Į~·�5ÜĸR\x€ģ!QįŪW, ›N<j…ïUįč;Ú9ŨšKŸŨZũøÁ>ŨĩÆQ&Œžõ+H2 œÁ3�m4q3ddl„v4J BŠ@/_"ša _õøĮ|6ËņéãôOĪEæûéŲ―Á?;ëéK0‘F‡š fPzåŨÏ{ð‰#ëšb?—íU2Ð&n…ŒŽÓ ÛŽ2Æ6RõļË\6ÃÔÔýŲt˜ŲŋÚ9%Ÿ-XâvČLz‚Ä%ŒVÆQJ/Y)þōĸ5X+ëa0ŸÍá •A4EÓ!ÉŲ�ņų_ŠÅ2ËÁ9Ïþ―‘!DP j‘ DПų$šq/ę–w.~ŠÖCUvĒc…Ōej˜|b…ģ*˜KÐQ3ĸó0ØߟÁwĶņ~ÜýynĪÜn†ĸ1Äŧpŧ&ąÛW‚‹�óq‰~Øē„”A/�ĨÕ ‚įŽuh†mbŸvÆyáņXoÉ|Bâžwčâe}0Ũ88@lb*ĶJŽ+:ĖõŠ―9W4 I}Jâ{ô]ŸÄõÐhúŒūSDĻujAcEø5›M“đėÁ]?‚FÓ[D:ZvĸœdœH͇įÆ TpŠBlâû,dóg\›,ä LÆâÉe B)EæSæŌ™ō = ģÉĒĢ<- Ŧ†‘u#ŒVĮUD īŌ„**Ī―õðyyqXÉČ|F+Ą2YgŪ=ˉĢÓĪ―,wg0íSÓ[Á[GÖĩ(­ÐF-KX/ļl‰ Ū9ŧu#ŽŒ­Ĩįā&T!Ji"ĒOĢwd’ŋ?ípŒęú:ģ­fŽÍõíš\ŧŌ؜Ćūô8šb$'֕eåÐjI`-ЊGA)ėÜĒōßāAÉŌūL…Ó.Jó5UŊš°(Å.+ljÐĀPČ%LCõ0&iäËEzÁlfæŅ0cėLÜÂhPĘ; ĘĒ’pŽ$@ÁzÔČn”Å'Ŧ.ÉðĐÍĢĸš 8Btĸøø;qKvũ öĩoėoøÅ�d9#ĩ’þÝy ėĒ æGķŋˆŦGõvÍÕĮųŒL22Ÿ2ŸÍq"âXï0ĮzG8ÜÝÏáÞAīčĄã^ˉYąÔ‚:›Š[ŲÔØĘæú66V73YŲH+Ąb*D*F+MÏõČ|Ɖä8Gú9ÔÛÏ―swrļs€Ã―XąEdēše’qýú'ōƒŸģœ{S Ģ4_<vŸØĸéŲîęÜÜ ãĻEuž·ãÅ\Þū·äþę>Ā|ãP15<–k7>‘'Oþð’„&ÐĘp°{úÎ ę P§ŸZV,OÝøÃ<gˋČ|Z AhÃ?ø�7žą”Œ>�Ðshsz!Ēj@{ĒM3h;ÆPG„:F™!Ø<™Ï$$TĐOE3ln 81;M.9c°ļ]Ę )­⇠VĪ ŠįĖFÝī0„:"R!ĄŽ1Ã1šĒRßcUJ !VeĪ’§]!Ürbfšt![“xēŽÅDyĪîÄ1ĢķĻ!ópōÚ8˜Zņ(˜Ïæ ō.–aYŽĶĘēšcÅšũÅ85Ž’}#ZïÆĻ&Ļ`tˆÆĒƒšïįré,R‹ LÆčĀ€Đģï–/.Ũ‡hßAE!Ô aC .éa]įļt/R3RŲSÃųoI3G6ąŧû%ļĻķ�ÔOŠU7†ÔÕyĻF)6ÕķpYû*žļeßžķ#_|­æŌîĸ6_?ņ>søãLũ§NĄ‡ ­·ÚpÝøSxėäØÝš‚­õÅ‚)+ĄFØÂ‹cCu#WŠk�EÏuđgîn›ų ĸväÓė_ؗ/ŦÜ#ĄŽpyû*Œ2§ÜåK›W°Ūš‘ũÝóæÓYŒ>ƒĮ,ųÓÛTÛÂåKîŸ�sJR+ðšOÞüÏėúÁ=üÐæį-đϊËÚ{éš.{Ï;éŧþšũ<u {GÁköüÍ 5ŒhīŌüßú7ÝöYԄ\€rŪï Ė`ŨwEũūÕ€ʎÚ!í‘65ÝĀ™ˆXWUHÅT1*DiEĻĒüÜb tHæ3Ž7ËĀĢOŧÕféÏõv[8įŠ�ĮļÓn·ĻŠ: ˆL<cÕTŅzĀv„CPjuˆõiþn9ŸŊ"ŽvŧÍ,ģ$ó驚üJ)Ä .õÕ`áÏÛ9RIĻMŠĶķÂnā"ĨߌÛ(mXČfqâ–5’eŸ-~VįĒČúÔäĮgž…AïãėģoGëĶŌ%˜óđm=2›"2Ŧ$ŠĒē†AHXī˜° eB„ižó›(…‚:څˆŨdQˆÍ2RkɒÞ(L7#F#Į’þû_ZEúĪŨ‘•+ĀE��“w5%@Yö‚žÛïU(RŸÐs=žxŽ,F°™OųÚĖ-<Ý‹QC@+a4š`Gc7cätęŠAGŒ]ËޑGrÍØcųģ;~/g0ËčËūëą―q ĸyŨŦđž}“• XąđC,~n_ļÃ―ý$>ĄjjlĻnfoý"*žÔ%*`ïČ5ėi_ÉĩãOâcû?˧}-+oŠ*'’)2Ÿ!ZNYø”R<sӏ2Mðįßþ=ŽõŽ™čīũ<ņ =Û]vĸōû’.‚c8:”7ŋõW ĸ[ÄS'žE꓂Ð<cӏpÏÜ·đéČ'WĖðVÅ";YYÏO^ö ÔLÔ§(‘‰ųČmä·ÞóëīŊŠŌĒQ–‹>ô-^°ýĒ“käj(EÔ hķDĄ:$61‘ŠUDÅTˆM•@:Zįmž(§3zķ;Ė™ņxŽÎ%Ē^Ŋã―'Ï^öF)âVHģŲ R•|Œ:"RųQ ŠÄ&g�BouˆN,N™éÛnąĶðÚc%#’˜FģŽx!]XcŒ*_ *ĶØĄÏ]wßõÉžĨoz4ÃÖŸS­Ô1Ę0—ΐIŠZÂæÉŠ!üųĩ'ŋ~ |ė’Vã=‘ęcˆ”Gg Ų^zĪa„‹"œ2ÄqHEīö 2ðob ihH]FčRŠ^0J!ĘC#a€°ĩIŊO’Ícĩ@拝J…ýÜ;I+Ýk_Iŋ\V�PDÚk$Éäj€į/Zéeš·süҧÞÂŨ>|aĒ”"Ô!‘ŽĻÅ v?v;Ŋ|ŅkxBóé$Ū—ĨWŽ>Š7\ņFÞôåĸ‚Ņ•!Bîš.O\ũ4^zÉOēđķ AHŠˆ7Ō1Ÿžų>ðņũsÏMũ3Ũ›%q=œø\°ÃTi†-vþčF^óĪ7ðļöõ$ūũų>įÎæn^yéϰąķ•ũÝûŽeĀc)˜ZÎpä‹―Q8q8,<ŋrõoņ§·ŋ…{îĒĒ+k0—ÁRYåđ ä]“WŒēú(ŋükŋČßþņvv…—“ų/ų[ųōK~Š{æïāPwĸŠÏč5{þ_ķÔwä}ՁČÄÜtĸ§ø­ũþwâM­­2 ðÁ€A9ÜiÄ~LΠІ€­4FhetD ‹(ŲÄD&FĸJ)ŽĘũĸ•Wˆú˜ Šmë-Ą‰ĻÔc\ępVķbc,ōō>$đģt@Īc"įjz*Î5įó1jŊ“ŋ V,!!ÖGXe uLÜĖpĐÃŧĩXˆ<@GjX؟SýŽžëIBÝ4ĻÍB)ðÔũŪbbLeŒųl†ūë/'ᝠZøėW,‚Ï―“^`”§šxše‘Ô"ik4ÞV°•USĄŪ4FwÄ U.T$íQæ’>QŌĨa€ %PĻTð6"Yč1Ÿ.HžŠĶšBóóï&i֘―úĮé• ÂÃđpŌÂíşTÏõÚ.ē6 Ží―U‚0(ôÂ=IŋÃĖÔ îþāÜuĮ=ü֛›ëZO#“īHęsėl^Ę#ĮÏŨ§ŋLĻC—pÝä“yõžŸe,žĀɄFÔĸëĢŋŇßĸũtOôˆšÍ5ĒšÁD!Ūïčw8~āwūýÛ|î_ä)ŋōXÞ~ÝH}‚HžO› Ïßöbvïį3‡?q*ÍŋÂ0ĩ2<ÐųŲTۆõ(ώæn~éęßämwž…ÛN|•ŠĐŽÎ!ŸîŲ.i#ŧõúuÜûyÕ/―ŒüŅ'hБxˆc$ã Wž‘_ĸęÏ-{ö�Ûá'.yŨŒ?vqę€ÛįūÎ/ŋĸgPuXũˆą|ŧī|óšBęwõ%Ļj"“G―F‡C ܐØPGÄ&&Tņ0:ˆī'ó…ÎÛ}#y.Ęr'Ŧ Š þƒZ€tėÃt;ōRÆĻHĀ�œ�ÎИ Šˆt„.ÆčĩÏߝbÝë32ĨŅZĢ―)Ö8ęķkŨÚlÁ[_ä,›ōóZæd–ŪëÐ GˆMeϰ”ęUH;C3KÏu š_76õÁÚõŊ]·œųĢóTõmĨĐx‰E’yzĶOŌĻQ‹ŠīSÁ āZôæąa…ųæN óS4ģŒ†Ō‚ĩv…QÛ$éw™ëučĻ %y‘D<ŧ@óÆŋ$ĐXŽ?þ§č–kÃÞXJCûĒ)ÆJ‘Ü…Ī5šņņq6=éÄ)ûųyíŪåāWŽró-7ó„|úpoODÐ(ÖW6!ō%ž8Fãq^°ýĨŒĮ“‹ûüJ3ëNðŧþ þæ†ũąņę vŋh#Q+\9ŠUЛJ9üïS|ü7>ĮË_ö\þęÅ‚�ȓ‘þËeŋÄW§ŋĀ\:{ÚŽzĢ4tũņĄ}7ð†Ë•]ÍK‡Û1ëŦųŲ―ŋÆ;ïüCn9þų3JÐ[  ES$_ v>gũüÝ^óG/á?ũyÔT,l{ZWōâ]Ŋã†ŧß6LDĖ$ãÉëŸÉÓ6=›PGˆäŽĮ‘þA~þÃŊca_ŸÝÏۂT™üũ Øn^+k‚ëAÝž2ŠĻ8ŅE’Ÿī6'Å)Ė"(šÎXŸáĨGĻ2?ĻlQLQ9ĢŅ*@)Ž4&ÕļėÂvþtĪA+f8ƜSm†É SäÄ:g:2Ÿ—4†:$óiQSŒQ­ ÚiLdðĐĮ[ŋĘ>õänpå5O2Ÿ1ÏŲÁ …ŅÁē&N�FÚŅ(:3tÝÂEû~\ņ,čÝ[ÞN -FRĮĻØœĘīĖtéЀ~­IŦRe,49�>…„īZazl’9ĨYX8A#íŅē)•ĒU!TÃ#õÎ%œ˜žf>(ī“ DYDóÆũŌ5GŸôZ:å*ąšo<Į€/ēx‘ßŌãäZÕsy<”Å3jlÚ&vŒžōïáîŲ;ÐʐyËŨ=í]'å:xþíŸåĸ|ü}ė}áNv>gq;Zýš<TĮ".yî&.ûņ­|ųŸūÎßņÛD:^,A+Ímz~Nŧž<VuęB2Ņ\Į·?zŊzũ‹ļ{þŽ%Ûž‰Ęz~úō_æ‰ëžūâ38#vgŲįJ`įs6rûWïāg>ðĘžĐļ0+)?šåE<züņxqžíõ]<û‹™ˆ'‡Îŋcįųõý"ũüë~.ų‘ÍyītæĮũōą”6ĄAzÕC™<DžÆNŦ �j‚.ĶFå*Īfę`AK[%tz‰ŠFî\ƜþzÎËQl,ã`ŦC)ëœ4ÆXGTMĩĻ XyŒƒRf- Y‘3Ģ8Y}N/aL{ķËņä( ؐY<ų7Ã6ípt˜$žÚúz1Øc_―öĨâ+ļ+ƒcbpbÐb=t§q {‚9ŨGKBLJ,}ZÝvÎegFģMor#‡Ûã "2 ƒEU 0bëÄ${ę &5Äâ ―'0ž6†=7ý%{nþŸĸŦR(ņü�€%ōÔZĐâĨ9õfēž·Åp­KôˆōäÕúƒ9eë˜kĮŸÄģ6ŋ`Hĸ‰8Ø―Ÿ[ūõÂ0ĪTđīuõ ÉP–˜IOð‘þ–ÛÂØ-ð§cĄƒ ZÛël{ö$ĸþw_Æc‡TĐ<đęډĀÎōt[[Íö'mâø—æøą?{6_;üeīÎïŧó–v4ĘëŊø%žšņY„&<õYœFļiĨ#ˆ —>w+7~úFÞōÅ7ãĩG+8?sśX_ÛL%ĻņĢ[ŒËۏ ó9eœ‘ōŸúþų}ŸfïíĖÛĮJéÐÏHÝŊr�ˆó‹2ŋ§@Ča2ÁŲ’BÅÎ#§nA ģā—æĨŸŠŨšĶs}ˆäšû+‹-­U>iŒ"Ŧ֔ ņŽRIš1z'gô ĩֈæí '’ãô}įíâģR€ŠAąĘąŽOšo€§ūšĐ'ýwđŒ’ŅUđŪ@$ŠpĄÃüĖ,˜å ‘ ĻôRÆNĖpéÔqķuú4Ģ6n|;‡Į7p(Œé€Ũ„*4Ē;“ėЌ°.ŪŌ@ŠÂH@ÛZŪÏÎ/Ï}˜ēaÂ9ÝP'QŜ^ŠRÎGvŽF6T7ãÄĻÞĩ΍°ÅžÖ^žžá™ŒFd>O�ŒM…û’ŧųĩüW*Іā&iGĢEôŋHĩöē.ũļÛY·w=>-˜3ĚJ ūۊ‰3ū9ó5Ūl?rYÃDeý0CųtįtÎS[qųKķqß?åĨĸóüÞkþ”į\õ<žÏË+ĶÆëöü<­°Í'~d˜žxĶ;Í+Yu,fËĢ7ðÁŋú0;k{xŅU/ÏÅ ÁǟÜó |ņøM<uãģI}’Ÿþâ_þ˜ũžã―\ýc—RpCņšŌÎvîŸNÉQ†ŸË‹ī―øá^ũ€ĩsc“I†ņų‘ų'.ÎâōÏã‡Û|‹*ũųy•Þ &š0[:đĢV‹ß-yëÝÁuzņC ãŠ1d>cČk†ī�� �IDAT@û$ŊäŒQŠûã—4ôŒ‘ŧĢZĒØwĶã°b™IOĖDĪcŒÎŦ‹<ų:6Ņq ô\wɕĐ“.–NŽOy-ģĀėŋ―ƒķ·ÐTPu™™f& éV댙– Ļ*‹Ę,Æm—ĐJƒŲĻJēn G­%Z˜§vi:GÍ;ÕFˆéũûœČ2æģ>ÝÄēÉ+&Õ<Go|SOy5s%�8Į+b- Å.VįzBŪõrÕLßųjŨƒBú3.JFĢqBæû›xbSÁcųĮ↞‡[ŋv|Õžsxã†ŲũKĢp­ jóĪĻčAÐ0FSÝŅ·ýehJ‚BĐlé=[ĩã·Ę{ąĮ͐Ý/ØĖŸ9Ę/üîÏpčUyåÓ^G ÖghexÉŪŨ1ŊãýûÞE'›ÏŋcM`•+؟ąÝ-úģ öî·ąõĸŲÎķ?yxĨW>ŠÍK‡ĸ%ÔöŲ?ämïųö>ïš[jøÔ—YĸeþŦÓk&ČbwÚÂ!:WĻû…DxïpĘ E~ōÚ—3:’åuō~pdø% `�ž8Äå ĀY!ĻPčL\ˆ€BTĮįN:OLõÃU)€€[”Ŋæl#Wčībąƒqŋϙœ1\L~tˆ•ü^:!ÐŦQ.䞝ϘũYQĩT!Ö1Ą‰†/|=hæÎ. R+P―jļ…q1Ø_—ÏÝ@K{ÆƍĄfn~–ĐĻB/ŪÓƔĒâ=qwzŌ§Ũ˜n6™ ~īÉŽŊąÐéÐęũhĨmïˆÐDqvččŲ 'zf]F!v*ÍšÏŋ—ãNsøú—ĸæœ�°”ĄČU­2Ą‡û^į‘ĘŠ ‚`t°Ė­x#tČ!?ŸžïŸøÂ'náÓ·|į-Wž`GqųšŲl†Ųl&‘–$7†&dSk ÓÉņ„yÎ žTM‰xK‰H…âXĸ0ýĪGģÚZ™rYˆƒ 6lÆ*_ø_þVŽNáį^ø‹4t{Črüðæį3Oō—wþ!Į’#„:Z;€• `Óc&đũ3øõ·―™ŋø•ũēmtįðßęA/ŽØTxï-ÎŋûŲųƒ›ŲŲ§R:ĸ‡äôrv(Wĸ[ýåp>gŪÄ ęÝ·—<û=U F§†šŪ9#•GÙÏÕ3­dĪ.ÉÏã-Ö;Īpēūč ā­įŅApA2Õœ'CŠÜ);ąCųb/ cI]Ģ É’ēņL2@pâÉ\J&'Q–Œq@Ë ˆõā%ßë_mō•?‡p-Ļ>Ą+tt­ Ōëô}RT�|}Qķa―þĖsŸ{SJąaPI{Ø,a:АDƂ˜qĀd–Š§•$Œ·F9TĐŌÐõ6 qƒ~ŋO'é1’öũyåušFÓÏRf“ĮŽ%UÐôBKy&>‡ƒã<ðļ_øþS<·U�…ÂߊęXχe*ĨČ\ʗĶnâūônL‘ï―gÁÍqīwˆ#ũåčŨf9|ÏQŽĖĒŧÐeËuëXwõ(Q+Ėũ•bn~ŽîBįĘžję<rôq|üĀßS jzņV(6ÕķąĢqIą PŧæģĮþ…(ŒÏb1īVlxôaÃpÃßū—Đ…ãžéŋ΄ސŨí+Įc&ž@-ĻóŽ;ĸ€CÝÎnĄ*jЕVėzĘfîü‡ûøŊx=ï{ÍG‰‚xrbSá_Ž”·ŋĸOXĸøQFv5óĖuU62}ĻĶ•Æ~Mį˜;x=tˆÎ[ŽĘČtžĨ―AY 4}úd’ Ŧ8:ŅūíæRڒ #æīķ0Ūp~F_ Z5)4eŠ1Zo ”Åę #†L Ę+”+JóyNJ1ĸü’~―bŒÖgC6 ó™Ī‹l‡ËŋSŠóæ>Šāi(Tälą•Ö!6ŠĶJhĒĒŦa…ÄũéÛ^ÞK Xs5‹‰šĢ]ĸjæn| 8ę ;žg#ā“>I–r4ŒčVl2M r–ęė#―˜ãĢô ­ ÔôŠUŌĪÏ\oŽõý>ZCQ5íļĘš~c―9ŽJ.›2ęít„ĸ~w]ũ ĶJ�ðÐæęŅÜÃC@Íđþį?ĸ·ýÍ]„•Å&6">§3"Ô7T™|L›ąÝ[ō„4̆ÎĀHĀŋųŲr“ņ†ar^-Ļņԍ?Ė—§nf6>3éÝĨ[Aĸ°å…ÃʂAųO`BÞũŲũ0ēģąė:Îø Î5~Y›°ðýĶÜÞúēĸÍšpSŪũŊāō‘ŦųŲ―oæwþ=wvĨģJũĘ(v?{+ûn}`ňčĀėŒ=ūFmĪzF]#K;�ĐÔi:42LTsiąyR•ęˆĖ§. #ÍÁ­Ï#[Ģ*ĶšŒĐē>wˆĐOÉ|JâûĪ+āžÃ‰Å[‡ÏÉür–č<}4 UþÝ^–Œ1/é3*@“ĒĶï>óÃíĀĨũ3“ ëRRÉĮØũ}RŸb}V� ‡Ë<>“\čg-Í Å᨜Ņ‹k°6N,=ÛĄԉuĩĻfĻë }ŨĢïšß5āú)ŊÆs·žÛË!ïļJ 5ņHÚ§g3îŦ5XÄl”sÄ]K#M˜™äÞ8$‘Ē F5&­Lp I8ą0ÃÖ,aD4^)*q•vģą;ĮwlJW)B4“Ö1öđwqāūC|óeoÆ~?ŽÁũà šFŧÎØĢa€:TčP6BŠã!q;ÂfQMmIÅÂĀęí*Ÿųō§xÆØóxʆĻŧ›Wð’]Ŋå†{ÞNŨvÎčĨlOžô’ŸâĘŅGĐy‘<Z~ĮÝŋÏÔ·gÛÝÄËŲ/ ÅČö{^°•›?ü%^!Ïį]ĸųClĻn:Í=ždŨëŠ(ȟý%yÛÕKŧmÅ=éņh‚ąuĢĪ.9åþ–vöÏx­{™wŨ+&\âÐ&‰#õý!E<ÆZņ.k …ĘĪXŽ8ß#uđ“Ė|JZ€qđ>°ØųSĸû0ž~įqIxÄ{ýŠPŅ“!c%Ęቆ•?Hz[ąô‹æ]ƒ1&Ū‡õvqŒ"ĻĒŌfå2ĩļ-ŠÎý3$`Ķ.a.›!TE~“ŪP ÄšBÏuąĪß5súą/A€c§oþk.sž=xīd~ŽÃA…N―Î.U%h›Q>BŦÞf_­ÍôðI8T\%‰*Üӛgī3Į6ëĐ ­‰šmÆģŒÃó3ÜŊŊ PŠÝÛÖģá_ß͗žņ*ĶK�pNą:ŊhT+ĩbũ;aýšu$?īGįēČF Ģ–FSŦ9km4ĻÉ?óÓžgÃßągdïēHûĐžÅxeĸį;ÉÁÎXÉrýô%Ę^YRĢ6V7ó—ū―#\â5Z+ūxėģüî/ĸ>W―vÞ>ôðÉ;ĄđĩÎޗîāŽũßÏófžÆ_ý ķĩwæïŠ·ėđføû‡â˜ó6ŋ+O­`Xo^ÚđfÖ,ãÔ j,yŽˆwĐ'QÉImĻ‹ŽųėŊԘBŽzPDë$+ZhgC ó ™Ïð™ĮĨyô/"˜čÁ·Ö>[3B§r‰^q‚MIeų…\ņ/T!Vl1F=ŋy‹ðŽ�)Ö§$ŪOęŌĪ>Ŋö)€tĻN;ÆóÅtĖþx<]ÛĄK'ïzĻcjAQ5ĶÔlTÔ)ÎÅjOxßþŌ_p ‹xŒÆ(ÛĢ?ģĀ v†!“ ŒwDóÓ\ehqXkü`™Q@c”đj‹Ûgģđße=žH„ÛĮ&ØÐíą/í1-‚(ÃHÅðÃĸv·w<ņßŧl@ðp.ZðۆûuĘûģū.qÂÄÕmĶ?4ÏËĸęyží?þ5Ũly4Uf ?bô1\=úū:õū1óî_ļwØÖSchE#lĐïāQcŨōˆŅkņ8R—ä5õ:`ÁÏóĐ;?ÎŊýÎŊēé‰ãÄĻx}čũŨ[OmēÂޗïāŪíįđo}:ïųéōĻmEy/šŽ­‚ú“xļæĀũū­•€Š�gL†xí a=Ā)G-ïĄâÅaĩ%(ĘÎį•ĒŒnP`Å.‰ŒŌ,Ã[ÉË9 L5  tŋ�lˆ VYÄyē.„5“ƒ€bŒētŒ*ïæÉ’1.•ĸĩ~°ïŸ’šd™ÅÛbÛp0ÆĘÚcî<ÏũSÏ=x6�qS ŦījmŌNŅØI†‚\ģ]û“,�7~þŊđÜ{.ÅŅÐĶØWĐÓ­TŲĄ @õæŲã3ڍQöĮ1―%ŠĘ(d|=ûæYčΰÝ:Þ*MT­surīßå›ŅĒxŒRlû |iŪÃņgūžïđëÜę�ș}ôtŅĘŲF§;§RęĄïĮ9ļäG6qį‡āeŋýŸøųįý Ũ=á:Ų~a‘íxôøu<vâ†ĸ-õ)Ņ’,ûÅh”&6š,pë[øû[Þχ>øAFķķØtíÞË)ŨŽW)7’%Īãjã'TÛ1Wū|wýßxŲĸxo}Ãðõ\ŒqbWmqzÆz§YTō D•{ĸįpîkrą­UßAAĻ1ĄÂ%ųđíY °Xˆúđƒ7ŽLD‘đĨ^ŠČQYĖĶw.&þĨY†Oón„>-Á+ETÉå°Õ)Ė…ĐŌ@!™ Îcûų"g•úEýūCû\ $uđÆŋ&:úecī.OrL}š;ĸĖc{Ÿ-nqD•0ëVĢWþžU> ž?Kķ Vzũ2ɘKf™ëÎb Ãk-ū( ýn؊û—qĮįĸ†ĢÞsĩĀVm“36ãÛÕ;qĶŨg{vœVĢÍýõ&' åōœíuDĩ―F;æN°ąÛa―Íh*ˆØZ5Œ§}HûÁ‰°!…gUbnýÜÛđóúŨ“”�ā!`TUÐôįz hÐjXÍŧōĐÅĖųzÔĀģļH>ÄA˜ØpŲÚÆ7áwþô7Ųōų <ïŠgÏĢwqÕökļĪrÅ)4wtR‰V†ŪZāž…oóÕ{oáÎ/ÝÃŋ~íãÞ˜ŨmaÓã'PĒ1+î+jBR ęËþūÕ0Ú •Ũ1aēį?nãūóÆßûE―æ�Ŋ|úORĢqĘĮkq―Ðy?SÁ …RšFØää-Ÿ8Ž •9/sāûÝđ3[­ ŨD†4ĖpI’kFXÁö-‹Å‹#Pëģ\Ō·x惄ÍÅrĀ”Ė[ŽÍð"øÄc_8ÆBŋūŠĐčęƒÆzρH%ې˜ŸåNÍg~Čß Yžôk,FųuW°TŽ'ŊóV�Ø,w”‰Į&y‚ãuĐ*šš‹­Úƒ!:oũ@ĪXoÔðy­āE„~ÖCŲ% ‚ßEqíž”éÏü9Ÿ7—#\…Ķa-ŲÂ,ûj5ē°ÂĢ0>er~š–ËØŨœāƒÃƒWHkœc•: slčuØā5­‰*5šAÄŅīˁ4a^k*(Ū“ˆõ7ĸ%_~Âk8ņ―ģfœ]ųŠ—�wŊåx›;Š\ņīKYW߈_ĄGĶRŠÄ%L'ĮČ\z^F❰Ąŋ1ŋžž>“Œï˜;š=g“]é\cîū.Gū1Åáo§1^cŨæÝlŠoebë(íKDj;&ÖŌlŨŅ;–0{w‡ĢGŽrpa?ũš ;ëØxÍ$ëŪĢđūķvf·âų&ÛŲ―DH1ïį8\đggÆÆ}ÞzŒã_œįúëŊgóŽMx·üųudûÛw ―9ãgáŽãōÞĢ—!æ˜:Äņę!0åĀ9ĨŋžŌėęd– “v˜ŸZ@ėbõ€6 LĻQÅ>šŅš Å—kÍTðlVPČVðĐĮeyį;ĀŽgdÓÕĻrÁ™ųþĐÞPōÄTé<'!P“ƒĨ3c–okär€ T.ņ;ķy„8ˆWg%zūwÞįz CšŅÁ*Û@J+Žė;Ę·>}ŪëQzÕ<€Û~óÝûnŋØįüMïeƒxĢ`ŠAĮF+5v)M―HžīÕ&ûGÆđ_éaĢÅĨk• Ļ…F;slÍƆþÄģõ9Нį ÎaīRLáøâ“^Í=%�8 �ė}ڞĸŸ―ũģė:Ë|ßZ{ŸT§bWčÜjĩÔݒZVķ‚%Ųē1ƃ [ē=p‚ Ėew Ė<0Ý.<C°$cÂ�l ÆDĢ–°ą0ē­ÜJ­ŽÕOÜa}ũ―ÏĐsŠŠŧŦšŦŠŦÕû=ÏQ8uÂÞkïĩÞũûÖØXޜ–Î\ļ@5â'ĮDÝŪÔ4Cžüóį9ņÄLWjŽW°\úķíŒ^:”,R+8z"BԌĻOL―<ÃÄ3TŽÖŦ^ÉÃx/—4‰â$z8jÄÄMGūÏĢws™ {úØÜ‡ßëáåmēpbÁ°ūáĀþ—yiĸŅđ}N)nČģį-;čßÖÛn@ē”sPUŽ>1Ássˆ°.ˆÞ/ ļéŪ$Š/-FŒPŦÔøęŊ=Ųŋā"eøŠ~.}Ãvr%?�Ŧ@ūø§&IQ&'§hT]ã/Fk0ž$$i…Vį5™Wę—VĀ‹’HøVš_;%Ņ)þ€Įpßð9Ųæqǜ?AXį2uHÎGŽÁø›Kkõwēę:Į8)šäRō_ėóC>z‡OyĮiŒÏjÏēßwŌNŸ‹ €“āž��û“ą\%p“B(ŠŸRЗ―ÖŌ—ķēÐ|‘ĢCyˆIšžjį2Ū@’ŦLģĐZa‡*VŌŪÍa“ņz…gT‰D°Š4EųÚ­äó™�˜'�6•·,č§ås›q“Éæ8‘ WÅýŧ˜f̙֔ïL‚\!GÎũWwáq.)C‡Ô&ëč9·ĄW°˜œÁ/[JåÖ&Œgæ&äӅšÍ&a3ęZ{Œō…<žw՝Ōl„aļ `“1BOđīėkQŊ4šŨFUŽo)ō‰Ŧ:à z+–œ-tŊn‹åX#Ž' ĢŪ,–ö{Ž€Œã›đ{RÁ9mgĨt’bëŧ“vžÂðð0ū—;gÞČ…{ų8ÎđÅÏŅKŧ"ÚÄ;Ð:ĮVąĪ–óĪį˜7ŒŽŒāï”c]‹*§Ė.Ząk �€Ïĸ6VcöŠrā+8+xĨ~.ó|F4IņÓ|‘#Ģ<k,‘jG…æžP…fÞÉã\…ôīûK9fëUžŒ*"X’„‹įný r^ ŦųåąÆkšnbÄP,Ąļö‹oŦ›éšgÕPčɟvĄšĸK5˜rđđ\neŽDˆä‹9ōÅ܊]‹žÞÖ­}cr'­ž—ŸÞąĶ^žé"ĩģbMþ՜s/VŒŠ“Ü’ÜzÄũsÖũÚÏGÏøônėaúÐėâį˜zã0épēsœŋ~Đ*ذa֞žÄqō{nÕÉŅóï$B íkÞK |cĸoRË=Ā@ėp•ižė)Ģ^žÍī^eĮðF8`-Ņ|SK)–L#ŋ]ŋ6þēŧžQgD@Å0\*ÓÛŽóTģÎ8‚‡aï#ōÁiø―7ßKí|;ģš“ÐŠÅ3žņ’ĸNûkŊĶō_RßôUøÝåËüÏ,ũøVę<e^ôðJÝđš*šŠĪ.ęɞˆÐë зđÜÞęžfóįąKûœė>oĩÓ# ŌSėÁĪ„§:ŽÕ|"†þÜ―›Ę ˆ|9įØzû­0<:L!—ģžäũE ‘[ŧôqA°XdÞC/ }ķÛþ5/Ļō)r ^ĨÂģA“Cę’ĸŊUđxō8—†%§øąâĮ*ūÃÏ#ųžRĖŦóbûóĢÛËOõn°Ï‹Å*xj(įK\/ąS â9Į–Þ˜ïųÜo°éÂõ�,’ļØbĄ'QĐ2dX)/@RÅîd…˜ZÓUQü x›}ĶĖ$ņ)-ŋčŠ Î·mÞ200@đÔŧ` ðœĒôóð6zĖŸ%ŽãeŸcÛk āå=†††(䋧.―LbýÚLÖ­u'[_/ĪrÛ·}€#_ý]>Qmðv„‹ĻWxĐPÂúyķĶ6ËĨƊíö^2ÆOÜ?ƂZ‘ĪœœˆxâīG†Į&Š…Đ`ōxõ’0В‚Ÿ/ēÏzšu:G€0b}Þ·ĸ>uÛ}<~>—·âģî4*õÂqLeȰöŽŨęę—7ų“Ķ„ubĀĒgk™‰ĐÔŠuâ îęÍīϐožŠbó–bū@yĻ—[NŌdÏ #f'Yu’ëJx ‡ŠÃôl.39=A­ZOROCþŠi·?/o)‹ôöS4Å%Äé(ÕĻūĶŦ\wãÂV–ē@ŋBpí{˜zčOø?LóW*č:/#X?Į Ķ:Ín1^npĪôbTÔH +`ŒÃbŽ‘ØYéėüÂôģ'ŽœØŅĻ678‡xyöˆĄ·Yįų8Ī ‰ð·ä3ĸ(_ýÉĸy~Xļk\ ˜ī'UV&C†Õšc‘‹ ]HÁ+.i:'yF‡6R-UĻŨ4Â*ÍzRMo~qUMĒč †’WĶØS \(cņÚué—â5˜{i˜ßi5ęX;=ąXņ1"I3Ÿ4—kđ(xEF7ŒQ-Vi4ÔÃ*A-ÂÅnŅ-“3xyKÉ/S*(åĘXėIÏqŪ3ÔãzRbX͚pŪ͊DNiZ]Xëííï ņČĮų„F4^ĢŽĻQåJÞÏąQS™l\lLÎ:čœģ"V XIķO<ƒ8ĩ’/mbtۆĢSĮéėä‰1uāyl•―Í:DųÖ;_Eé'aĸ…'�tĄûiĄBįZː!ÊĢŨ°Æ#oōK"Lâ }EG3n5câ8iĪã4Nš<‰MR =›3ä―âR\аo‘xāšiĨ=MŧÛÍ7ŊCĀH3Đni,ūɑ7ųđōÄË>9{ōÄ=1AÔ j:bҌ›Ië\%ų ņņ|?9G[XŌ9ķ^\@7įÖ·5[ææ~ïTë[ū›ā ōįŠNļG•fĢÆ!ōÖg+(3“ģ;Ž—7ƒc#GĒX―äî4ĻXD”$wT1xųC[z§žâĶ?ŋ9ŽœÃPūDŅ48ŒámÝOųöũó™ C�$%þ s’PÄ`Å`Í<�2ŽēU،ëäÄĮģđ% n‹I\ų=I�Ų)'ģØˆĖ•ÍmÖ-Ņ;‘FÆ7ãMŨ ÖĪė.čiŦWjŧa“0-Ŧ]ī%<ã/ۘð0øūþÜ9ÎUˆI*æIšØ>óÓnoBÔî<ČI 2­ÖĩķbÓkģļ@™+é|aáÕũŌüâü<7ĐŌĻWyĐXĒdsŒjėdz|b‡į)LĐS+bŽ$•EOTÔ19ú†/Ū ÇøÚķ8jz"ôúyö*ä€#@ŲĀ›šŸÂíï_ßi‚+z—ĘéÜPÚQ­>‹ϐaÕÐJÁ›fč3ƒøg@”§ę)Ņ"ô% ÚîO??=x)ƀtDŦ&ރfÜĪā•čņĘ9ģ”ÃSžĢ,ÍL„˜˜j8›Ö85uđ+í~ §ėÁqÎ…›ïĢąĸwø,e”;TiÖŠ(úŽĨ7 #;yėčvŋЧđR_ÓĐXM<NĒNÄXAĩU5* ,ôE[öÞ~čČs_ÞÖĶ|cąų"{Eðƒ&GUȋrÏC…Û?°~E€·6ũįÜĢóĩ 2ŽŠ �…Ų`šū܉€ģ>„īðÐt0MėÂĪcޜCaųë€vŪŨã%ŋ—Ē-vy&ÖęüŽ™æTŧÂĐvüóœx4Û˜Ûū‹úþøS~„kUq*—Ę\‹PhÖþđ—·íėŲØœÓÄũxžĻJĒđˆŠQ‘BĐO·\zŨá#ÏþãÖúĖA_ žŸã2UlpBAá-û ší>þė‚�­”Ö€dA€2ŽĐp3L%"ĀŪMuū֞y-ŠP gÛ^?AÎΕ…ĸíÔQ Ķ m“ŋwM·ÆL5'ˆ]īŠ5N–īƊIŸ Ŋ…Ī€’΁ĻļĘß=ĀúʈĀNĢOä{ļÁVg&6L;mšd2qĨP#"'FæüEFÔQ?/ēųŌ[}þŦ›ŠOå Ø\+ÔņÍ8b*ÕbïØ?ÛÞÏ_ŋēĀĒëVŊ·|† –†Xcf‚)zü^ōķ°Š[pN ĻÓ8ÓĻ ]õ9ߌ. Į/'Á{⭊%.H2Lá4Nœ-ëhMë<–Ī"áIč wÝĮą‡äũp|ŋÃQDHįóvŦÂÔņƒsĨ-õÖŒˆ€MũĸEgÄĨ=m“zĘIo‰ąŊ>qÜFfÆŋ^pÎIŪȕÍ:§" |ĮCũS―ýýëŦ€·‚wÜIˏ. ’Ųĸ2ŽđĀ1Nđˆ’ßÓnQ―Ûq-R \@%š%ˆmŦôT†ĀjØÃģÁ4 čņzČŲ<žx ķ Ïô"QjTĢ tĪžÛ5MŒCû/+áyyáÖ{yōáōĮßøqĀTd9æųl›MoōČóó=ĢG$įGˆDLâÔ ’x4 ˆޟgôĒ›Ķ1ū7sėŸóŠąÉļ<hðt2 #žïáû™đõý|ý•%�Z}lÜrޞݍ2œ ŠĻFģŪIÁ)z%ō&?'T—ÔŠyžķÓkÄuęqFTÃĄíLs#6I1l6(z% ķHÁ–ðÄÃá–fĻīÎą#H1pļN-Ūđh­cÚ6ÂŌæw +[nŧEĀø‡ýũģ]ā] ApL ÆÐW›>Rž?2žaó%'’T@AUÄ#*&_ņ“Ļ˖'@ 6—cdĮMģĻĒGãģ�� �IDATįÏûē:›Ëąá@ÔdRā"āƒûäÜv/_Y€ĨÞdÚrOe[�2œ‚4D.d6%īœÉ‘ģJ^ ÛJ_ÓîÝųŌ= îs4ĒĩļF7Ú]?WĘŦ°ĻG5qž­SīEŠ6=ĮŪ|ų…įGJüąFÔĒ*MŨ$pMÂ8˜7*ëd“đsYl}U5Ų’;~ŋØĮn„œ#ˆBŽų9zžÉ# ö í‹==uFŒ ‚5.:ŌT)ãøŠĻbŒHâ ōrđčÕģ`†Ķ|Á"XÏįbó\1+Â>U~čŊ?Æđû}T^Y`9ũk–˜!įrþ IÛÜȅ4â:Õp6)d ø&‡'­&^^›Ôchš€z\'ˆëiõūļ‹8ŨZM|Q"R*f–œÉ§^ƒI·œÆ8‘‹SqiDėbq›@ežcķķ.w˜pĸĮų5‰ļRĄ…TŒaÚzŒDÍ:'^~bt۞›Ŧle%{þbüM6Ž|fsCŲz; ‰ëÛˆŠŠxđžŽėžmdhęÐįÅXJųĘóÎŅļąóaāg/X!C†õ!T“b8N" iÆõSVôh'õŠŪ{Ōéė’čÔáâ€Č…ÔĢęĒg§]þ‹óã3œ9šÂaßņŦÖðS •(dÜúÅPŽÃΌ\đĄoÃāt’h!ĻÁÄævõD3ŸŠHų­ž-ė-ŠFŠI<"~Η‘]wĖFAcpöÄWÕú<Ÿía“—pÄ*žņáûyþÖũó;įōüMv dȐ‰€ųmoAXũóŸ.ísßųŲóå;ÅĀâįÖ:?7Wß?kaýŠÅëŋ 5–Ï'JŲÅDQČī*ÄęäÄÁGûãČ/(ū§ę{ςąĶp̀ŠõƒŲ?­ÄͧC‘‚xxęyŠĩ9ŋ ›öžĨRčÝå9‡!›c“3äœ`Tø‡>ÆÕ™�Ȑ!ÚKyfį—á|ĮmũRQø*̐)u„ŠØúėS2;5=hmΊņ<'^NßHï—ŪïSįž`æ“Õ8x:É{āųˆõD<OÅóüBI·îyWÝ+Œzę0ÆcĢ1 ‰âĄXóó_øu6d C† 2ŽēØë“"yåόRl0‰"8gĶ|­„^Ið<ϊÉYĀÚâÍ}|ÕĀģVÃ1â{ߊąVÕz"ū-ôD›öž;0^ŊÅa}Ÿ-ÖPð†Ģĸõ ŸĀÏ@† 2dȰÆļã{hˆáģ*ž$B)ŽĐĐ#pNM}æS›Ū”1ū‡xžâyjŽ'v gü―%ĀŨļbÃŲ?Ŧŧð`Lš] â[ÅzāŲÞáKĢ ―ʼnø‚’·>1TņDđ!žæÎ_Њ”ĐË 2dČpâÖ{ų†ĀCšTKö̈ @ǰff#G…‚ˆoD<+ęYÅXŋį–^Ā!įĒq f?ŲÐh\OgςõŽõ͆­Ŋû6ūDT„^ë1"I ~I…w=|?·Ÿ·�UÍ@† 2d8oĄÂ§D8"W—txV™ÚôÓĻÄóÏ&n~ϚÜÅą―MÜų~Ô`ö“ <›kÁÚ\ūą]oō}ŧD5†~c$i1ļ øžÏßÏÆóR�dá22dȐá|Æmũō$ʗ5@.Š™LLšÚäAßÅđœˆõRũ<‘‚o Ũ”px(ž€7Ũ`æSM#9+j­âY°VUlĐwĢnžä=NžĒĻÈaH„‚*áï~ä7°į�8ĐĒĘÜ2dȐá<Ā)Ô|UÔ9‚0˜’ęôëœï‰ø<+xF$güâUO_ÁŦû5Ļ>#9+âð b‚ŧŌ oýAk,C€%ŲøÁØįÚWŒ�$Đē…ËÄ@† 2dXŨļåýüģžÁð4Ķ)ÓŽž,Ę”Ÿø%Ī.&gŒ·ÕSÎŦâAâ�žpúþ@ĢÈÉYąūņŒb Ēfãeßá }ŧQE€žąôĐbÆ üÐ#Ðŋįš‚•�įˆ>&^T$õÅ݊tæĘ!C† ’RÆ.1ļivdÄāpiõÃlí=ýxō[Ām$Īî\T?*õŲãķg`“ģV#‰ -=jóûōQý‹QJčˆ$ŠOüRØģņ<ČÚ2}ÏęöŦĸ­>ųÐũuąӏÄĀ{TųāÓįĨ@y,å=Ų#{dė‘=–ũX°ķJÚú7}ŠdŨrqÛ―ü•(Ó>`ÕÍ)ĐW‰Sk0žA<#Æ3bËÖöæPü–õO’āixČ4§~7)ˆˆ/ˆoÏϊ-]ÄØ%ïUį@ÁŠĄ(ā)„ ?ĸð ž— C† 2œO@G'4)bŸ Ė™á<IÕ>Ô!ÍʋÔëVÕ7`Šg‚1þ6ÁŨ„ø}!ā+øaõo%ŠEĔŒˆiuâŌ@6^úv-öíÂEˆ*>B.SøŅL�dȐ!C†ÓđŽ%þŒüÏÎð (yMˆÝÚŽž@ģV‘$―Ï7Īą�ÆZãmlë)āŦkøÍé?Ž‰bŒŠķŸžoeóeïk]DQÅ!8”Û?—d C† 2œV�ņŊnŋ—gž�rh’šŨŽ"hÔ$õö ⋈/b‡Ääķ[ĀŠÎ=,`]ðĪ fĸBPM6fT[ĸmúG/“ĄmwjĢ’\8ĢIá<†ĸ– € 2dȐa!ÂĢ ‚Ļ ÎĄAýˆÆ‘$Ä/V1ýbüíIj_G?ĐVCIU'aõsâšOĐā%áiģ)Ï/2ēó âå{Īŋ)sŠîMûäæL�dȐ!C†u…ø-ķ~þOÏM#›ĩ€>ŅŽĨL4+$j†@Š �‘ÆÛDšėÖ) æū+<DX{HTk IÖ\Ŧ†~ypķݎëH SAE)ŠōS™�Ȑ!C† ë}ŒWYÃW^ó­„ŊX€ō8PoĨũ!Ô†A‹ĪÓīKEė b{OæI� Ž|–8xŪ-Z_ëåĘ nš™|i/@Ē/”kų(ŊË@† 2d8įxäAî4Ž/ÁÚŽ9gPb…/ī\‚úËDaˆB‡+_1Ķ1'ÐļNXý[ÔÕ†oy 4ĒôJúF_…ęœA’í‡ *ž?�2dȐáLÉ =Ër�Ÿümäáûy—:>­JWxU!MR+ë|-ĻOĄqŧWė�ÆœÆĨ�Qå/‰ĢCĻĶŲ’üÍõ0°é&ü|oŨ%K:nzøŪÉ@† 2dXs|éãxC1ß§Âo!”ä()h N„Ŋ·-r„cÄąÎ�}ˆ=ĩCDÔA8ó'Égīýi4Ü|Ĩþ‹Zâƒ4˜U.Vå_­[ÐR32dȐᕅü raÄŋøy”ō 8Î ÜzáÉo�H"�\Ô-�0= =§—Eaõ!\ôr;8 ņ8üÜ�ƒ›oÄzđų^#Âëy€]ëŨ°Ô;"KQ͐!C†īCÍW‡’ü6ðø9U>ĒJY•äg/Œ•\9šō–īč+ Nā:%‚ā!Ķī `1/�@0ó ĀoũnPĀÅM†wžëũuūŋ5ÎŨ)+›č­ė8)ą:œ.Þ (ÆŦ#vq6k3dȐa…`EqVWeOũåYá;QŽH;ö킁BC„Ķ*ųV…°1vlĻ(‚bl?"ÕÓs\Týnā―; ipä à m―žĢÏ|ķ-ęŌm�ļãáûųģ[ßÏĖš�m°˜ü‘–D8Éß3dȐ!Ù­šĒ+čHūįđD^ĮgŨ§Ž† ŽüSꊀãĀÖö Á :C�Z]Ez@|8�HÝÎ|šüÐũ Ū™ °*΅Œ]|ĮžýëķH·D„{~ø—u*�:]RÝp:Gþ'{O† 2dX]ëĐyYu9 ”zd\ýÏ)üÓqö‹r}Ŧ“ŧ\ õ…Ã‰Pk§.Š%Í{įÃ@cIßTĸŠÜā―m>L"þbŠýWPčÝHmúe$I”4=p›Ũ~á{õ}gŊøē,€ 2dxEŠ‚nbWu§ØœVTÁĐÄwo™ŲöÕq>Ŋp=‰Õ\ĀÍŽAEĻwmųŧp‘ĄTĀ.Yl%ĸaåï@rsą�Š 1›.―ŧËĐ#‚Ķ[ï +qn™�Ȑ!C†WZîääéNģíŠIo`go3ũ֝SŋŦĘ5s1ï6œāáâúbØZĸËĄÕ˜Ļúũ€éōĻ‹ÜüZÄti6ISïÃāš�ŲÖ~† 2œKӟyÄïNģÝŠiS:ØÝ_Ũ{ũŒï.Ä#é’z―]Ûåę‚E‡GÄąËâL> ž#é8ÜzÝáå71°ņâų―T•’Ā ?xöâĖŽė—Ý+2dČpîļĘĩ‰ŋeMžš€ËĸĘĄïÛs‚‹úBĒäĢí=UpqRĀæB�ŌĘ�H}"šäý-‚åsēj°þHŨ6@Ë 0ķóNæ%Íĩâ ŋ]ölOmE=�YX_† …ņüIŌîjNóėč+š@lgÆY†ÅĖI8ų}ģȍ)Ü4Zá―ŧO°ĨI·-Í6ų‹ĀČķû†.H ` Ú1tÆä_ÕpŲJI]@Üø:h0ï;ĨĄ›ņžy“Cx‹g)žíđyŲŽÉálŨ]íŽâíh’X Ž ‰‡FŽĻ‘cÅa’šĨ4­*&F/™âÖOôđÍLÎb|Áũ|,6éÚZĮ•Ū�Ē,Ã&ÃRh­ oŲ1Í·\4IŊ„qĮ};§'Ø~Åĩô―‰ūö 5ļó�-0$ÉÆX|šEĀŌ@ŦFG‰ƒØÜÅ@Üū�Öb`㇎ķwŌ”ĀBŽ\|.�2œ3Â1G3lĖ„՘ĻÕcâzLvaum•užÖĄîŧV‡ķŨ c5ō ^Éb ŋäáũzäz}rūÅËA†ÓĒ ïÞu‚{ķÏāˆÝBōW…KŊŧ…Ąĸ† vėBŪßbĄnæķˆYŒÍ#”åŧI\|‚ļų86ŋuŅ\Ņ7^ÍøÁÏbl·[Į=™�Ȑa ŋeåÚĪ>Ų 1ĖD4§‚“†L-gáÔSü_{ąa=ZhMðËųŸÂPžÂ@Žž)œō\2\`ũ29øĀÞãÜūđ‚‘97ĸÜ=’ĖޛßLĸæ�ï‚ÝãUĨG„Īþq:†ÆëÁ,6œķÐĒŋáļð�hܝ  †žĄŦ1ōŲöuiũzð3!ÃJ=s.|EÁ%ųŅQQ­R;ÖĪq" Ūŧ9%.sÂ`1ŽášXiN‡4§BfžŦĄ(6g( į()õðÅG&[ s'šķ%̈́Á+•Á@PO”ïÞ3έ›Ŧtöļoŋ ð|ļôÆwÓŧņ;IbÎ ‚áBT�| QĮĨíŽI*#xđAŒ•a•þÉÍ&"`hmļð.:Šņ†™+l°…‹)öA―Ō!Ԓ?_ûwŸ xŨ;Đg C†3ēˆTRe- J+.t4› ę“ jĮ‚Đ�uÉ=˜õWÍR:K•ĨK·‹”Úá&՗ BŪÏĢ4–§wĻ/įcüdKAŌT°„+–S9.Ãz'MƒQJD|ŨÅĮđeŽ–„ŽčBōϗ|v]ũ^zGŋ5;ƒļ$ĩ ړÂËoč�I|€āÜ,ŠŅ™ øč.:ŒņFQÚóŲó ô ï 6óB;l?M”|…ŨŸÎ@† Ëgĸ4?)SÔB‚z@}ĶA}< 1Ī{ü‰ßÍxį)ķ‚Å$+F8152é*6ä( ų”ú‹äzrøEk ęæ<™8ϑ’Hą9ËÍþģė99ųũô—ŲqÕûč}c’xÚÄð…+;į‚*øųĄ.öóE]ĩSƒ/O�ÄĮpŅŅDšwŒŧąyzúwūÐyÝDœãŽu#�ôÍ~æ, %KbĘpŪ­"1‚X!h†4&ÓMjÓ ‚Ѝ“ŋO^Q `—@ ĶCš“!3ĶF~ЧП§Ø_ 0˜ÃÏ{āԌĶLŽ%ÛÁPÚZ_UQ1ô3\ôŦlŦ&6‹“߆ķŋꃔ‡_‹šŒüÛĪ,ˆčžž đŌp"�:…ŦB*�–;gDHģŽ  †bōäĘŧ0ÞßÍ_Æ�^s6įį­Æ}xÚn€ŽdįŠ –hí“XûÆ7ÔfT6ĻMÖ f#âzÜvïï•_![Äh’„ædHc"d6_#ŨëQėÏSÚX §Ŋ„Æ.YœNZü$Ãđŋ―“‡ÃĨūâŒe°>ÁÍGūĖX}‚ļÅWóþĮØqՇ)܀:ÍČŋÖą!†=]‚I _ޔėų·ũ§ŅxúėGt$ķ·‹Ķýüfōyh6šÅ…—­ÐiiœbééödȰšÆūķ‹îĻuT§ĖžPĢ95â$ĸ^HÝûÞ=Ųz”dusĄĢq" 9R9Z#WŪзĢDiψ‰MBYĀāš#ĸN?�ŠDÆccí(Ŋ9ôEúÃ*Ū#Š―…8‚‘mClŋúĸ!_ڃ:—e‰,X?ļ ÓÝ Ņ/ô’+ôĖ3ô ęĶP7y6“ĮQ­!ô%WVƒ—/“/įiԛs G^ņáēëÖðėš�2Ž'ōĮĀėT…Ч+•;ÚR9įĮļ<―Šb #ˆPÖbĒzƒúDŋ4KĸŪzGzXšĮ7Ã:s‰ÏŽĘKÜ|ø‹Ģ�•…áq›/cëūŸÁæ6ķeŨsÞüޞ’mŧ2bŪīÏũįí@ãI\<uv€xuõysRņž"…ŌSėúQM’yŪ…L�dČÐmõ‹P™­2õt% čKáš,ß5$öSŊņ“ƒq‘ĒnyŸ]M1 ŠhĪģ!ĮdŠŊÂāî2åþžvĮđŒ4Ö"cØ5ý,7ý'ōq˜VǜŧÕU“―æm—_ĖæËc;-Íė:vâÁßÅŌäÛ:+�â ÔŋÏÏuŒi2vOĄņĖŲ­ŅqÐZ"(:ķbŒ_Â/ƒėž§ŠQåUĀf ÅKø)ĄkZVŊVŊsâ›Ó4&CÄĖYú+ąČ- ũ4°ÎAÄ`ԐïóÉ ä(ų”†Š účņĘ―E›ü;oōí­°Å*6ĩI-ĻÐpuŠQ…ZTe:šĪ2UĨ1$9ĸÓAēóŦ§ŠÆš žælÎyAĪ™#_œ 0Repo/Ĩ|l"Ļ29'7ĸœõėž|†ëŽ?J.ŽÚ.éx›�ÛŊļ’ą=ĸc{įŪYëM’ywZØðíšpĪJڊWʃ—bmūk^Ļ6“ý{ea…Ā%Ï5ÐØáâYlŨ6›"RÂˏ`æqĶE.>ÓsĖ@†W„ĩāœĢŲ˜zq–ęÁFǜí ~Ŧ`Ž[°øžOÎä)ö(ï(Ō·Ą—ŅÂ&67“7ÅīšGjE§VVk·VU‰ãø”ŋiÅŌį ÐĮ�’Kž ȰĀîdáij“#õƒŒŨ159Åė‹ 3 Ũ$Œ“8w8:[A ūМ8īœōæƒũ‘/æ0Öīƒ€3!°FũËBTeÏÔÓ\wü_ð]Œ“nŦĀz°uïŦ―ô0Ķŋ]u.ЀT’Þô6\åóóĸ­ïQč݆Īf"ąÔM‡/œ―WQĀE‡Q é gSÄÏc=č\6ŌĐķ3�.\ōhVfŽT˜yą† bÏ>…O5mԃÄBožÞ\}―}ôn+ąa`˜‘üFrCļØĄNqãbGgE„müœd˜ģė•ķ°ķø;ؖۉ äĄÍrīyˆģãĖžPefz–J8CmĶN\w1gí#X#Ԏ4Чg}c=äĘ~"6ēę‚kcý‹`]Ė•3ÏqÃä3XÕEÉßÏ [ũūŽŅKÞ2˜t­“9ƒ‹§ˆĸˆ—⍱ÄL­Wd:ŨþąSwHŦÄ-ëųž~Z+sîĸi\p`e.kt 4‚–�P“ÃË,�Đ[@ģÔū kGþÆaQ9\gæp•fęî?›4>UEcˆ]„-ʛŠl,mehpōH‰‘ōýÞ ĪđŌNf}QĒ[mōk{>Ō-€VFƒOžíų]\Tļƒ™hšãĩĢĖ›ejbŠĢĩÃL™%Ū)VĖŲ‰%›ĖûĐg+TÕéßŌCïæ<ÏkW˰:äïDð\Ė“ÏpÍô I˜EB[ü<lßũ- _ô@j]vV4ļxšæÔG‰ƒ§ą.Yōa8ïއÞú―*žlÐį}ü'~ãķ?‰ÏũáĮ‡I’dįĔƒō†=ä‹R/^‡PĮqŅņ•đīn–vG@@Eë°>0/Č=üیÞú^Že€ „Õo}KeēÆä%Ūų3!2ÕÄšŽ#‡ZGųĒ ïacĸ&JÃy†r#męĒĒha āõ°huė:q'AKôpQÏ%˜]BcgƒÉÆ8ĩÉGĶņüäfŸŊA XÏ.;+Ē―ĩ`”Ļ3ņô,Õņ;{éęIóĘ3OĀʓŋÁw·ƒ―•#)wó‚sP(ÂEŨž—Á-߂jЋü[)f.žĶ1ņ+Dĩ/`üÍËÚÄv"9Ð_8†r8$|ņއÞō yčÛ>ýŲóqxĸáAFTyŦ(ķ3ĸßËå(íÁzĨīToëoqðėYíĸwÚóęŠiŪđ9Ķ(ž—Įz”Fg* Šx1 ™�ČðŠ·ú ãOMQ9R#ŠÅÉ&ÝîõŦSâ(Æö Ûũndũ†Ëč '_&o íýû0 ĝ7ã†â\DėĀŅü&d“°yl3{‚―T/­ņäø7yņé—Įc<ß.ŧŨAk+FUiŒŊNRߨdÞ~Žģ8——Y)ōÅPŒî>ö5ķŨ'R+qųĮPė…]7|ˆō†;QõšęË'äoō?þģDÍoĶōŒĖ�Ut#p oQÕũßûÐ[^>#"āķO?uū ąĸ Ø2oØéÜAyh'Ęž”IŨ n<ķbYEęfP܂Ŋ3ķ€õōĐ `ŪĸL~+�ÎŦÁXCĢÚäø7'i΄ĻÓ3ÎãW—áFsžęšËļ|ājŽoņßŽĖw*ü<'ŊÎãOÃ—ų!ōCŒŅžĻÁ3ģóÍy’úáfWŽĀē~ĮBÜtĖžTĨvžÁčU”Ę%\Út>gGþ―Q{Žþ3cÁĖĒäĮÐ7ŧnú…Þë�ӕR–—‡‹ĮĐýq\øōĘiÍäû=A6!lBđåûÞŋĸmĸˆČÏÝë§>ŋŪ­ĸ1Šãm…–û_Ó KĨūĘ;Ў–― 87CÜø—•ŧĖŪBį@ëÚ/tdī@°ëW�ī7Rē‰Ÿá Č_eæx…OĖ7âģú>•Ō–<Ũ\{ {úŊXŽv!ļŽĨŦŊĻāŊāqUþŪūë&žĐ>Î?}éŦԎ4‹,_$ń"y‚ÁKB·õu/fX>ųî>ö5F‚ĘI-ĸÁŅ;Ŋĸ rĨ})ųëBō_ĒvėĮqŅDz―Î>„Ŧ•§ŌęD€"blÕAÞlTÞôÁýoĸþÝGoýäŨÖã0ۘ{UļšãŨ"­BđŸĄ-Ũ&í ÃwDõ/·KŊŒ�čÞhŊÉcLū+ė2ÉOăëB�(šXNēP8u™Ȱ,ââ(fōÐ SOU–MFڑ�m$ ęŧōŠ}ėڇĻ$ũäžïŧ°ČI:ðvEųK˗ąũ ûx|ú1ūöåĮĻŦáœk/>KĢvbä˜xr† 2īģßó/Ąĩ2+jŌrŽ9͝ĮŋÎhP!îîüÜķR7ldĮÕ?FŪįJæzĘKĮ|ēÄÍoR;þģh<ÅJ ŋīËŧÏÅHzaMzėÉqxð†ïyäÛ>ŠðbŽß۟­‹čņG`·Â;QrڑûPčÝFĸØĻ›ßę7&Š=DĮiž=\…ĪŠCũ}`lc ÝcŸčoŽJŨ™+Lg―ę –dõĢ„ˆcOM0ņÍŲ3#MęüŒôqíWņmŊûv.šzNfī`îķĮ> ŲÓŧoýŧđņuŨ10ڇÉÍåú/ĩÚa‹€fT9úõ ÕfŨëNnõ§úlŠOōšcĸÂÆf7ų·ŠÓˆĀðķ-\t폑+_ ]Y;…VTĸ õņŸKČEedZËXŒLZĄ&Iö’DEŒ"ō#æŅœÍŋųûŋðĨs=ÔųÄÁŋRå&‘đŌŋ�žŸcãÎWƒéESËžÅg.:JÜxfEĮRO:,,RŸA’áÏ­ 0WðDÓędŲ"›á Čß(ÕЇ§r°ŽÍ™å‘ŽĻ8ú6õrÅ՗sÏÝoäš-7abKä ÐŌ?31ŧĪwÂŦFŊåMwŋ…Wݰ-}ĻŅeĐųĪÜąĄ~ŽÉ‘Į&ĻžĻ'N™89ųKâƒÞQ=Îë?ÆhP#4sÕýæÆFķ_ÂöŦ?LŪį:ÔudĐĪđŠVũÓ8ņŋpŅdb­ŪÐíoÄ`ÅĶĪo’Ø‘ô9wŒ&aÕdŌ‰ ją[ öӂüŨýŌ}[Ïåp—pĢ(ĸf^aND Ô7ÄĀ–ŨĒqs.óG<‚™O,ž Ŧč ZŠXX{ t§ 7C†åŋĮÔĄYŽ?6E8.+Ŋ_U ›ÞĻpåUWrÛí·rËå·ÓĢ―4ĢfFüg �‚8 čJÜxņkļýöÛyÕÕW’ņˆ‚hYn<C4qôLū<‹ÚLœô`5L�� �IDATŒüc„―ģ/sįøŨmōïxlÚĩíWý~ņj\܀4ĶESŨ€aõģ4&ĸ7.ždĨo“ĪŒÐŠčķM Flě>,_|1bԈÁˆųPĪŅĮ>ôÅïūų\ ũ~‹ð#*lß7Iķė}=b6vïý‹ÁÅĮˆŠŸ[ËŲļč+š9ģk·Â 8JFüΊü'ž›fâ‰âĀ-+ ÝEŽØDėÜ·ƒÛo~-7ėŧ‰Þa#ŦJ·BĀĐ#ˆšŒ˜\ųÜyó]ėūî" qŅ2YÁŽÉ§g9þÄÎę˜Gþ‘۟|–ÛN<A9‰!ķ_q[ö}›Ûq――M6·f ĶĸÍÉûŅx†Õ˜bL{  eéÜ H‰_,žxéë#F FSãņNā·?üÅũ~ËZydxÂŧeÞíį oÝDĸĶw ŪŽJÏIž`æOӌ€5;RdĖņxņœ €,Ę?ÃؐėbƟždú@5ijģŒÏĮaL~ÔįÖŧnáķknįĒþ]ā îHŲÉpö"@DˆÓC[û·sÓåŊæõŊŧ›ü!lDKŽ$#hŽĖūTãčcDiŽú-:,ĸÛÆįúéä\L</Ō_]b™îšþ ŒíþAŒÝŒšfšÐŅ”I|šŋF0ýûĻŦŊ"QIË―Ÿlīūƒø“-‚dÏīhGID@Û`/1ŋõ#_šïík5äû?ÆåĀ/ĖúW…\ķ\vJ)IĢĪˈÆ'ŦŧÆũ‡CæehâPUÂu �2d8CōãÏN1óBmYÛG­`īM—ōæ;ÞʞŅËÉÛBûõŒüWG�Ä.&o \4š“·Ýüvßp1ÎÄKngÜ"üڑ&Į›ž°E@ZÚWTđküë\9ó"ūs ÓüxvßøN6lĸ�búÛ~æČß�–úņŸ#ŽüEWÕšÕ@ļöÁŊMúžxsMŽŌĐÛŋ3V@’Ā@�†ßųŋŋüÁŨŽöĸÕŊâ‰ãĘÚéúŨ$rû嗑+ŋæUODJ4§\…ĩ\^Zqõ‹Č/Ļg ÃyI&.vœx~Š™įk]ģō7Öp՛/įm7~ųÁö"ļœïÉpB@Ŧģ/7Āû^ÏÍũ܀ŨoRķԅMĐkpü“Dņ(RË?į"^;þ .ŸyŊuÏģüsyļäæũÐŋå;SZ$Įß Q;ö“Dĩ‡Ó@ŦzĪûûÏxmK?!wi3—ˆ`Ó Vķ@H+>@DE­X<ãõˆĘ§äKũn\Í#/•øc”Ët^ Ÿs0ķ ķhŽôi6ðˆƒ'‰ŠŊÚ=šdõÜØYD8]Ī<`&�2ŽkËĀŎņį&™~Ķ‚ąË°úQz6yÓ;ÞĀC·đ°ÃE—ĸÚЀđkâÔqÕÐõžáo``Ī/ЙršEēíé1P9Ô`üĐ)Ē0š`ŪĄ’īô-F·Ž?Îū™CI`—tŽmō,”-ŧnx/ý›ŋ‘üÜ>[ðœ›Ą~ü§‰ë_IĸūúįXüQé"~!!ýäéurĖ­­‚–8ðŒ'éįUŒ zÖĸӏ>ýËŦŌ—øáøUޖæûCšóŊJeØīũƒxÞĶŪ1`æP7ĩzSʔad›Į5ŧ_Mü1†ŲL�d8oČŋåö?þėSÏV1þŌnEį㠛Ŋåo|cđ­ ųgĪÎ―"Bč6yÛxÛ=ogÛÞ-؂,iK@Œ'ĖžPcü@":…â+Õō(G n™x‚WÍƙîę~­Óïé+rņ5ïe`óŧ@―nbJ#ð]t„Æø'Š?šøģŨ`JHÛ sÖ|ęÞo‘ūˆéō_·ÞÓÚ&°bį„`ŌO"Õ@rÓÓĸō‹+}Ėûāß+|o+ąKĖä`ËÞ+)ôß bFðˆëĸHÜøÚŠŠ+ą}‹ödpq3ÉōčøÝī ŠËķ�2œGäïœcü™ fžŊa—@þŠāâ˜|OŽËoŲË=WŋŦ—ų­;!k„įrÜsý›đâ–Ë( äˆĢxIIË6g˜y.ŊØí�m—öŠÜ~ü›ė›9B`ŧsÐZ‘þ―C}ėžæ}ômz7ęčŠëß"ĸ8xžú‰_"Š=šūūķŨžõß&üŽbp]ĒāäĪß"‚ÅŠŦûĄĸĘũ―gEŽþûąûā‡P>"ŠŸýĩĮÚÛ>ĀĀæũ!ͧkÍJZ&OĖ|XÝņ4― ·Dpq=MóœįB"&3áü ã&™}ĐūĪĸÄ―Ó;ÜËÍ·ÞČ [oÎjĘŊs iÛä7ÝĘÍ·ßĆÍC„ņŌēlÎ0û|ņg͈y…ĨĶĐԁņØØ˜âŪņŊsImœĶģĻۂŨÁ⨠_û―”G߁sá‚Ķ>`‰›OԘøeâúcˆŽ-ųCԗd˜đ@?Léwþĩ įīöīÛïÅīATRĄ`î#~øâģ9ÆÏ>€QáDųz:ƒþZõ†ÆōŒ\ü]ØünZĄõsž–ˆĻú·ÄŊŪŪĀŌ–`ဋšļhŅ­þÃŅ3ųđ5ï˜-Ũ618'L3ób}I7CknØ2Č-ŨÝÆHĸčyEþD­kjÚÍĸKš*vĐþî93Wu}.ēzîĸŨÛĩˆ]ÄÅ}ŧé}M?_yô+|î ïīĮk|aöÅ:Œ\1„‰Ė+eÐË%Õ#žfâ)F‚*ĄY„ücŧh„-Wü…ō 8ĪUý’2ÍĒ Ķ@Tĸ‰ĸ _>û^ôgđŠKĮ}hšŠ�Ķ ‚Ōbqíŋ í€öP’ÂAm‡E`Šĸ øĀ™aIųqāĮúHÂ.ÚäÐ;wŋ‘|ß]ĖxXĪyĸnÕ–˜Þ.Û<3ˆÃQØ]w -EŽãë@�hûqēŋ:\ÚO9“,L―4Ëė‹ÕöbvÚ;Ę)vũóšŦîĄŊ؇sn]“+@QÓþŠbÅRī=äm’íĄāðMžž-ā‹ŸGIĶĒ'IÐTä"â4į7Ԑȅ„š€ nP‹j4]ƒZTĨŨÚAJ-+L։(h  ‘Ō·^_Č?‹OÄčéJ; b”ĘË LnšáKúŅčüŸXۘy‰WO>C_Ô ’…~\ [.ÝÎĶËþ-~aŠáōĮôVþ’æäoâVĻĐÏOëÄZU‘đ-õVL@§mÄ čĒĪ/Ō*$Ī…�A1FåîĸüÕūó?_û?ĸ~đĮ·ĸ~U” äӄ‹ŪŅ*•aÛe·RÚð@æm+:W%˜šOŽkzŧ<�Éą(QX'^|ÄwÜĮÄšņ�,&�ĪĨUīĨšēŠ_ŒåŸH}ŠĮëLĻâ–XäĮ…Ž‘ëúyãÞ·“ģ9\ėÖ]Eŋ6á§ĪoĮ€?ÄP~„^ŋ^ŊŊŒgüt/ÔΑtGīô|Ë9™*:oNĩ~œ&%xŽ0nR‹kL‡“Ė3L'˜'Q§]…WÎÅļušïËđ^îšön>—û^üÆÁī œöģģ/Õðr–Ám―đ;o-ĸáʙyÍä3”âųd[ŅþÛ/ÛËØžÆæ6n^$:`{ĶĸˆæÔĮPWã\O#íōƒˆˆŠŠī,þTĖÝïĘņ“Xû­k-›ōÓI[EäÝĀ’Ā_ĸ:ÅBŽO‰r— Fč&UČáĒ+ŊĢgė‡IČŋ„ŲũæÔƒDĮæyãVq<―ŅÔŽÚ 'qnš…é3ý-oÕü%š3žēĄé[P 9ņÔ4q3^RW?:Ænä­ŧßŲáWŌueÕķŽŸÁü0ōÌ7ÓïbĨ{Zc;\ûēīUDæ æûýæ,„‚-ŅË Ģ…Ms–Ķ ˜ §9Þ8ĖáúAfƒĐŪã^ËqėŒV·byýUoâŊ―OsðŸ—ķméBĮÔsžœĨ<ZÄÅįQėGjrė›=ČmO’KWņųŅþ"°mïÕlÜóC) ĖÝós^ŊÍЏLĸęšįžü5Ū;-\dĪų}"ōýŠ:fŒv–+vîūK‹�ĩšÉž= M· s[Éí#­ÏÜōSþčĩ?yÍ/~õtĮõÐGđL„ÏėhmŪuō·*ä pņÕWPÞô‘ķũAéŽĶh *Ÿ!œųĖĘķû=đ圜°7†ˆGWK`­6Ž-ð�Ļ Ŋ+! : bƟž"ŽÄ+§·ĻUŲxóoÞýŽŪn’įbŅï$M#IeóžŸgް™Å-Œä7âÛ\ÛåßĶëŽc]•-‹ÎïëčõžüŊ#oóŒØQF cėļ†fÜāHã‡j/1Ņ<NĻaÚīË­‰(č \‹oÚũ­üđþ ‡ūv4%?9åįâFĖԋģø=đĒŋzãš äoÕągöwžxĒãßJóoÝ^փ͗\ÏæË~ĖHŧš_‹ķZîĸ`úãIißUŪî·äëŠð?nü•cĀOĸȗïûÅĒĸ―ˆ|/ĘHŦŪžˆˆiŧīÓøé&=ŧH<zŦĮ@ĮüÛgÅÞœT�|æ)Īüyîøe ‡9ŦŋkÏŋP„WïĢwÓÏÎX­ûÎ5ŋNãÄĸ·ĒOĮĸâõ`ĪÔöúĩ]]°1Ž‹“{ĨãCN•'3aýy=S%=}h–ÚąæiÓýZîôMWpũĨo>§žĒV žˆÁ79ŠķÄha›‹[ŲPňM‡Kŧ„uZ4 ĘjŸÃBąŅy‰0ņmŽ=ģģ|)ĄŦæPý Įë‡ ]H A"ķV9v ĩØQ“·\ų­üEüI^úúáö>ðI?g„ƉĐfŲpi?ÖÚ%yÏ5ųû.æō؃žvâiÜ<Ŧŋ?'lÞýj6íų”AīĢôl[8đ&Áė'Ķ~Írü—‹ĸũ†*ĀG>ōÕýą#úE#ö֔cT:ŧzÍ'}ĄK$IwtyŲ’ĄAyËÏüó}â?]ý ‡æĸþ#å"ũy>|`~mĸNōïéģėžęNJĢęrõÏÍYKūHýØÏÎ;ū5ðĻØŅ4Qŧú:ÄQ°~ląëîĖaZĸÆģĮŦL>UYų‹2ķk˜;vŋ_ü.ë-ÛiŒoóôxe†ōÌ63ZØD҉4FqÄiDÚđ"ý劁Vž@‹ä7·ēĨīƒj4ËņÆQŽ61Ų<A5š%ŌhUãZ‹m‡žþĘ7ņ·á_ņÂ/bԞZXĻž\'ŨëÓŋđž~­Uœō.äÚéįđyōy"aŅšþųǰõēŧ―äûPŨÓEþíŌūŪBsæĶĸdóg=âŋ\ûKwþÄĢþuā_KReO[!ŠóIUŌāĀ– kul―ĮĻI ðz+v/Ð�ÝOŊUÞĶÂe_Šš†ŧĩÅŌ?\bÛßFqÃŧNBþ^ZSáŋĄnvíS*―0ÅyóYˆÃÍú‚ D•ÄQ € ë‹üōJ‰oÎbž%ļýqŒlæÖŦ^KOŪLėÖŪĀOËóā4ĶhKlȏ0ZÜĖpaŒ0)ÂĄ1 šRƒæŧŨk*^gĩļ–gÃáˆ]LÁŲQū˜m=;™ Npīq˜ņÆƛĮ]ļ„hýģ"ÂíWÝÉį‚ŋ內_·þI-ŪÖgĶTȗ}Š}…õŨæY•ČXĘQƒWO<Õģ‡%ĸ8†ž^ØšïlØþ^Ôå!‹‹§iNÝOXų›ó‚ü;ņÓŨüŊïý‰G?\1j~ĪeĀwúa.]0íÐėōĪĪŨX0 XAî@õïŅG>Ęëð>ïA°’ķ N—ŋ‚ņ`tëwŋ‡|ĸ)ušŪ2ŋˆOÜ|†ÆÄ/á‚ÏÁ―b‡)Ņ$ïƒIš 3§öNðõs.�ē^Þ:É&v1ĮŸÂ…ŽNïßĸÏޛGŲ‘ÝužŸ{oDž57ĨĪÔūK%ÕĒZdWđ\eeC<†iĖŽĐ2 ÆÝ,COģÍčaðĖ�‡a|ØLw›aātŒ§Áž€Ýe—ėr-Ū]U*ĐīK™Ęímqï?byoÉ|™JI)UÆ9ïdæËũ"âFÜļßïoûþzMz‹Ĩ::Ä=wÜËšŌ8ZëŦzūÚjĘN…­ål(L0^ÜHI•ÛeŦÆfʔzëęÞú!ƚÔÓ2ę3ę­cki;3Á%NÕ_åLã$ūnĒ„ģâcMöį){îļ—VÓį܉ó8nĸeIHi.>?Öŧ]”UŦe情@*Æüošzž―õ‹č^āĀð8ė8üã OžkT;æŸÞ'Ģ/Ԝú aýŸŊ;ðO6Ï:ŋĒ…Ųō{cTY�•-w‹u0ēÕ/2õ„ EĻžoĸØßüō؟ōß[Ë· ؑīÅ%K3l;ŲoëMũ0ūãûQÅņû̓ĀŧhĸÍK€n―xÕŊ·M�7#d™| OØx• A/rüüú_`ŲĨ1ÎJÎĸĩmmp`ú…9üŲ`aðŸYÏuđįŊgbxÚčŦbÕ%Ā_PTofke'eUÁS…˜s›.ÐėŌ뭒Ĩ7qIBŦîUœ*Uw˜QoŧŦû8^{™WkŊ M—1Š―BFJĢyÝūØú"sįįTˆJāφL―4ËÆýë0Ú\Û{ŊށTlhÍōĀäslkNĮ~:Ā?„ą ‡·ĸ åąûąVvĐû YĀøŊԘü-të…ëü~õŪßiüú7~þŨ„JäļÅZ‰ĐŨˊt°q΍ėŅÔË …–Ãĩģl9ũÅÃĢ3G?$,[S-üĪ)Aæ– ë&$[o~/•ņr4*óëōÚ)īĸÍĐßŧ&āŸÎk§‚t7GÏĪÕéIXÛĒU{‘PƒTœSðÅË9æZ`m[ŅÅ\*Éüų:ó§ëM!Üú–›Ų=ķ/ÎJŋōāoâĖũýÃ7ģ§z�Oy‘Đtz€SÛęŋ^P"`3Ũßb)Đ ž,0äģŧšįgŋəúĐļę@ŪØđ$.ØmC;8tũûÂãčYŧ yæO4(ÎS]_I―4ŨüEĪÅ:Ņœá­“Ï°ą5ƒVūĖÏß\fĮí?KqøîøšÛ.ðŨ­h^ü-tðęu þ)ČၸmČ>ũ6ãޗĻ.ÐGlŽ™1>Љģ_`hîļutģ ŽÝí'“<<ß&Ōõßuø&Öïznqā`Óž|˜%l=Cãâ°áÔ5―ÞRM Õ`rsĮčõ™įŧÎ-NýÂXÛV °„:dú•yīŋļWĘËÖ{7pdÃÐ&žâāŸÄŋŨ&8<v„ŠSMÏ; þŲöŠŨ›ŧYā›Č·J•#QS–Ļóܐ3ÂÝãobēz'.}ų`ķ{ÁūĖó0î\73fyņ‰—ąĄ]°<ÐZËäģģ”(%‰bWĸãó›hÍōížd,htYþ‰{wÝæ1vÝņŊņŠw“ļxsŌūÂE7Ÿ 1ųa‚37øüĘĸgð'~ņãĀYkũ%N(ÛïA,‚’Ņޟ|Œ ūNđ~.é|ŨķōE^U#!YcvþqŠ#ĩÕy/Kz―AýK4/~ -‡―–Ũ[:Hg‚,§ąÖúĐMÍwJ=[BéUîXkØōÚ°ü… sĮęøģÁÂāk‚mŊðķ}߅Öá@â@Ëýhß%§ÂM÷°―ē+wގt;DršßnÔ9œu…ķ=&wݝƒÐ„Œ6ðāĶïāđ™oōĘü „veˆ[ōý@Ü{óý\š0ÃÅW'ýŽ ,S/Ėēaĸ(Ö\ÕI˜[Ë–·Ÿ‚áÐGgjüS€ą‰ė>ō>œŌĀībë­­i…@7ŋNsōƒ˜ð<7āt{ėgĨûRïQķŨ…5ļ€g4•đWX?ų$Ģ—žEÚ8_/AúN=Ž6g X.ēõĶßý„tOē+4ÁĖGh]úóŦ#ōģˆ @ļ[jLķåŊ!Ļ?E}ūë–ģũū—3Ŧš�t–%ŲĩdD4į}æÏ7°zaũ­ąŊęðmũū klŪčJ€ŋ+=&J›94r˜ŠSEgâ€YðÏÆúŊq]jōėÕĻŅOH@§7DI'Ō<°pëčíl­lįđé§ļÐ:‡6+Ņ”ČZ‹Ģ]îŧï|ōïþžÖŽŋā>­ĩ˟nPÝ\ĒT)D$ājˆķÄāŋĨy‰·Ÿ‚’Ņ)øgv)aló6öÜõ>dáõ`ę1˜‰\ ZØü­ÉbôĨüųĨÛĸũųĸãé_ĸ"Vĸ+ŽA™Đ”nQÖ>•ųŒĖžÄðėQ”ķ)č™'T9Ðī AĄīŽu[nbóMߋSžk|°aþ:“Ļ jLx’æÔĢ›O]ÃJϞBđŧ"ō-Ú�`iĖ<E‚ãæĮ/ŸļÜãŪ(H Œl·ĐĶ­gūÆn</ĀüŲþL°`“ik,ÖÕÜóæ{qGŊÐ&dsŽ0ΞęvTvcb+64G:Wü{―\ Ôî$xåAžzē]Ü šĀ ;#žaÝ}–ãĩ—™ ĶôäøÚj6ĘÍÜųām|ųïū† Þ§ ãŌĀ[Üvú+9ŨãŸûkgų֋ÏāXÛü7ėÜÏÎÛá܂5õTâđ þÖĄ9õ‡XSŧÁŋïÕ~ė?Ģę Š@Õ (=ųŲŌ|eëy'ŽmŽ6§)ĩ.PŪĶԘ‰IUôŌ™ÖČĒčnÁĨ<ž™á73ąįÛ( Æč�Ģ[– ’i:æ`Í,Aý øÓŽŅÓŦę"JĩY86lũøĢfÎ?ƒ” @ËĮW Ū-6=:$ąŪHhå:mčąķõYīĄ5D‰baŨŋķš·îcÏȁ+fŅjŦņ„ĮöęöTũ3䎠cWušēŦÛ֕ĸNý}ŲÁŽ”PKڗ&7Î+Ąïß)Dӏ˜XepïÐMŽ+nāčėsœmœD[―$bÓëøūņđmčuLžæŲ/ŋ€[p$,ÍK>sįëT7•0æĘ1�+ŌZnŸ=ÉýÓGq,˜?Ž[öaËĄŸ�ĩ3nÚÓ!ðƒ ˜ĸ­éĸgUčú/CūðaÞg-Ūĩx\+Š·ŽÛ<6m?óČaíĻ2Īy‰•ŸÍ™č}HÃ;ÅęŠãÞpˆąÍ‡)T`Lˆ)ðCö:;X@7#˜ĸaý Ŧ"Þß9>álAđÛÁúyD ^eú‚ŸóTÄQ%Žæ‘Õå°ƒ ĒŽåÜ8›Ņ–ųģMÂFļ`ų–5ã;Æļ}ϝ(étôÜ^° mȘ7΁áCl.ï@"MëSÞ]ĘķōāŸf'nÔKfwÐcĶÍtčĻ›Î:•$^Y"Џ$jˆÃĻ;Æáą#Œzcž8ûL$št™!ÐŲ7g§Î0sīķ šĪņ õ -JãĪ’+Vē-$ŽŅÜ3sŒŧf_Eõ ^ķÝü6ėyOĪëoZ]™į�­é?%˜ýëUĢëŋ<B„üū°h*m_8yģÂņ3Ą%ķ·,PÞŌO’úœBĄM·1ēņNŠcûЌíBđÑ;_7sĨšY‚%d žD0û·„Ŋ`‹Ŧøsϙ,ā“­ ‰æŊĒ>ý‚Ļn;áŦļËïx…<�kÛkmģÖ4CæOÖ 4úąÆ"‡dĪ4šéŽ·rįaąl­ėāĶĄ[ņÆĒ9#øŅ þéBą‚āŸ�ŋ“é(ûČ/Ž{‡^ûMä~WŠäuȑ�!4Īb…Å“{ŠûvGųæô7˜ f– ÂÉ=)ĐũÝú&>qæØĶč™[’,˜‹-S>•‰b”ĸ%VlrÅŌū!ũ^z‰Ãó§PķļŒŽÚËîļíŽÛþƒ9ŌCāGaŅ4'Ÿ°öŨ5ø'ã·IįߎÅÞŅz·ãb‰žVūm[ú…ĘÕu‡™8LidÅĘ(na!°küŪēÜ,ð[3‹?ýįõG°áé\ēāęó –qĘũ‚mįŧ H‡ÉŸŽ‘^Ģ8A€ađlWúXÛ.ėf_™C_õŊ7ėÞž‹}›ĪU�+mmïŽėåÐČmИO§ÎwgĐßJ‚rJĻ.ý+!ÜŦÛ @ lÔr7dåēóóVÛÐЌ‘-ɆâoÜð-|mōK\l[R˜ĢŨ7 Mpë­·ðėū‰WpûŸghПkPqQžZ/€ĩ!(˜€7M―Č­ógS0Ëvš1ŠØuû;ŲüYl7ø›FŽîũ…ØvýŊĨû―ŒúŪõ kécÁ)”(ĪēîVF&îĒX]ëp!iЁ Sđŋl %B dŦgņįþŠ`þïąz2SûŋzŊ*ėG:[ÁfīS„„/3u:_’8œŒåão~/—-™šF�ÖķËŋP;Ó\ÐúĮZ*ëKė;ž›‚(aŽ^Qð—Bē{č�‡†§K'ø;Ō―"āŸÍ+p„Ó-ėr„ƒz Į:ÅŌ/—xäEōe‚ŽtÓKösYäūōØäWyĩþōēI@äMqŲŧcĮÎ―DýDÐŋĨī„ÚđÕ­!%OE*sâē&V &䭓ÏqĻvMŊÎZŋ�ĨŠdũïdxÓŧI\đÉelKŒ™Ķ5ų„õGoøčū> BI ÕݔGoĶ4|Õą›(V6 žČ՝uįGÓÖīc·Bj 55‚đŋ$˜û8FOgŪûjŋR §ü-QÕBÖý/ó>OŌ+ą<&ļžōŋ+N�ēėûJ•y­mŨō Üé—kŲäŽĩW°}įöVáë֊Ík-Žtļiø6 ßL`üī·|ÖâîWį9āŸŦ“―ûÓ_í<—Îc[đå­ĩqĢ™å―‹‚�� �IDATŽđŨwēä*4ÚqļāŪņŧv‡x~öéËMX6T&ļ}ûëxôÔą}%‹gí\ƒÂŧ`>Ę ĀtĀw\xš―KēGŋTŒLÜĘîÃßMaôm`|@#ŽÆĒĢŽna1z’æĨÖ]ÜD^•l_"Ĩ‡T2ķČŧshēĢ’N Į[‡WڄWތWڌWŲLąēŊīåHĪ4HĮ"ĒFÉéũŧ[ũ·'ō…S'˜û$þÜ_cM#gíŊvð·„ŠāVÞ9]!įŽþSėéčXwŸ‚ŲUI�Ēð„M&�Ö*ĸnv-üA+Ī~ĶąðB+ 2TæðĄÛuØų/{3ÖPPEn―ƒ]•}Æï“`';@LŽø'ßu…ŧj%‚ģãô„‡ą-ô Œ―[,ČÉät’†―ÃQŌáđ™§Mļä)`­EÁ֝›Øtnį^šØ—H ĩSM†·Up+Ëļ'1ø[`8lðöóOģ­5—‚?ā?ūå;ïüažęÓYČĀU4ßLxŽ`þS˜Ö 5ķ…ĩ~ę_ýVŠÅ-maÛáŸaýÜ1° !‹Ø8!U9CH§Šr+(UAšCHđí…0Ha" ?aŽÕ@H;iŊ“žv‘QâĪŚ&ÖĖĄýĢõÏÖMŨ”ë1œâVĸ7MMAĩĮ™ū0Ų%ýOŪÏ―éašŦ’�$MēĀŋfýßX›@ \znnaŨüŲ=‡w1Ū&h…ÍÉĻ{_•ÛĮ^ĮæŌÖūā/cņšÎRđ•�įŠ ]ŪW Mī\ čĨļąJþÞUŲ‡@ōÜĖ“QXĒÝ~ ckw7ēgû>ĶNO6uĸÏb™9QcýĄ‘Ĩ3ƒ`Ē5ÃÛ.>ÃÆ Ņ þĪã°~įŲyÛŧqJwct3ŊTõ―ħņį>‰ Ïã”ïëcÂILxkĶÁĖ­ęĩėÜЎîĢ:vSŽÚŋį4^š9‹>û1“žÞíû%DŲoÖĖbôElx–°ųaý‹˜āBšûÕ"æģdë_Üę·CĶ 4Īrđxâ3đ?kSņČ/"8šRįąÂ ükāÃ2�üFHsĘ_pŅēÖRž(pĮö#‘ë%Ā߄TÝa―ŽÅM„&ėŧ_ÕC觟åx­Ā)J€+Į_i`­NW&…ƒîH>Ė^§Õ= āđé' L“Ãd uȞí{9öĘ˜;qĄïų ĩģMFwWpKî’Ā_#ØÝļȃ“/06 {Õøŧ.ûÞĘփïBoÁ˜fT‰éOŌŅï…üOG j„QŨ{g#Ō݄53˜ā,6<‹Õ3Ŧ6fÝ&‘:ęR7č"Ņs_ý>Ŋ"З ŽÆ„g0Á tx ãŋ―‚cmĨGq4I*―énÂF™’[žãâ‰Įó‰‘ð>9ą* €e-ÞĢoÖZ”+™}Ąūāƒ`BÃíwݎg‹„9–ŧ|ËŋęŽpÛØl(Nôml­EIĩĒ*+ þ ?ˆhÎJĻ�v’€ðēA!"&ŠųQB§ÜwŽTö`­áŲé'S݂ĨxŠ ąįĶ=Lž―DØ ûŸ›ąĖj°nŋŧx§ĀŒåSí,ošô#aŦ+Ta ļžĮ–ƒĸ›öý0Ęۅ5 ķi{6DÝ|œ`þģ=‰^D ŌÚĻõēB†ąÎ&Lxãŋ‚ĩA—æýēn$–=Čð"Ð·ķ Žc‚S˜ð$&8‰ ÏF$ œĘ… ŊGkŋ—õoä6HEŽĩH§ĀĨ“Ÿ§UŸK ĄĩĐŠņYāŅ·ü +ĶĪ·V°ķ-yá!ÍĐւ hĨēģą›Ņ6žlð7ÖP”%ÜÆÆâæŽEĨ—ý!sÆŪ5øgÁŧðÚWGœ4!—CÂËļ7ŲEÝZB …Š ‘§ėuÛU‰Z??=ýø’Œ! 8ļéfž{Žés č HĻn0秊’rQðļeî4ũOĨĒÃŪŽ~ƀ[,ēýæɆÝ?„r7™j–ü]ÂúWjŸÃ˜9ˆŊGūo]ÆbĄ†r?BĢ[ÏbõĖu’@œEĮ+AëØ/$b‹X}^Ā'1Á1LxkjQŸSÃÚ ËĢsĢmNųĪŧ##U nŲ^ų*:hu;T,_†^ŅóXƒīĩm) ūT’Úų&f‘vŋaĻđóÖŧQĻTŒįrŽëJƒ#·ēĨž#‚?ŧõït€ëō]ĸ— þY"č]!°PoŒūĮīmŦxĐc˒�7­XŪ ë―Æēwč&ðüė7—,‡ėj—ýwíáëĸDߊZæ^­3šŧJ?›ÉÆ&Ö-ó§ų–Đqâ`kÛ*‹>įKė8ü}ŽßųÃHĩ.>—žWÉ" ëÖ>‡5Í8†―ĀX„mH(Īģ!ïF·žÆ§ŊQH@ DD 443Õč(—ÁĖcõ\ æó3 '1úl4=6ˆŦ#Ē z– ÞĻBąĐõ?ü―€Jų“ĩ)]æ'ŋJcöDĘ'ãk!ŽĨa-Ÿ}ó]ūúßXۖmý[)ŪÝ?vmĨ8áēwô`_7ý’H‡lŊėfguï‚āßœ.·ü­_™ß äA Ų39Ūó8đžč ˆÓõųlÅA":īT"―&—CÚĮ”ĐÕU=ŊWöļGnĨ֗Ī „ ī!·ßÅĨgðk ä–ϟi0ķgĻ7 ĩQsųÃs'ypōhZßß)ā*ėūóY·ãÝQį`~,ÖZÂÆWkŸÔýč§A ĸMþ31@qJŊC‹'1Á+Wý7Á)jgBČJÏó·ķЕĶåwÝہüïķ/1|m­ĢNų.”ŧŧŧdX„Lžø đKyåŋčß/(Åĸ·âįru―Ek̀Ŋgë_HAkÚG7ûkÎ[kŅĄæÐmû‘R^æ|‰Žąūļ‘ÛFï\ÔíXĸ āČ8`đÖRG?h™_Ļ•Tđũ:ʼnë YēïþģÞ%TŪÝö $)ëáSÕīË#l‹ĐfßŋuėjzŽK­‹ũ°Öâ‡oÜČŅO―Ú7^.„ l—šG i‚^ĒS+#3ĮyóĨc„ēíÍÎZþnaˆ}ŊĢÛ~Ž—’!ē$ $l>FPûX‘+=Íc`;3^ä,h‹6ōĉ„Šxã―jž€ĻÌÁęųčLõĖāß[ÁÏÝļkh<§ŠoĘAsGҘy†ųЧ#‰‘qČXBāóo|ÏĘ%ĸ%ÛUŪŽĨ^ßÖŋМō fAÔļeėŽËę—<1UgˆŧÖÝŧ(Ļõģ6— hˑïÍ{2ö\ ąÚe>?!‘ÖÍþžýŧŨþģŊķ4Ŋčę0Ļ' Q2ėôB,mÜí1g•#Xw­{e§:°yx^·î>„ŧČ8-ÔÏĩ2—#ŪŅžéŌ‹žųŌ1™—§hŦû­ãĀ―?ÎčķˀlĘÄ@oOØø*ÁÜ'Ģž'ļe_ÉâŨųūˆÚá +ĀĘÄy ŽÁ)FzûSUŧŦĩH‹%ūÖķÁÁß)ߍ*ė=)™Ä^péĖŨ™―xŠŨ5― šį%ŨnÍÚ6čú†Öl°`Vĩ ÛnބWt/óąxŠĀãũP…ō2gý‹ĖïK=ķ2ųY J!qĪ‹#”PĻLóĄ^nþėũú―z‚N2%RČeįČe, ýÔ“ūũ‹}ŊâTļmė.\é Ü*ÜÆäpËá Ø…ÂQ6 YYÍ-$Ýâ-“ÏqdöĖ'6.iŊŒmbĸßÏðĶwuôŪ1øGšþAý‚Ú§ĢLĸ4é-óē,‚ ĸ·D„€ČģānAz{s ēķ]§F”,āVDŠ ä[ šóŊ2uōóž+ĒXŅ#ũ―—§ŨĀÚvØŦÁ|HP ûšrŽĩXĮ°oėž,\Öņ,–C#‡sĮŅ‹ôčåRŋÜR―ĪíîRZõzē@K7yeþEū9ý ž›ų&g§qĨ—–%f\ ―(áô}ĨŸ‹ÉD/Pí$RČ%Yó9ŌËðdĸÎ&c.8·€ … vWũ/JēįŦ­æÖíw ^Ðw`ĩĨ1åĢĨd,ĻņÖÉį9T;Ÿ6 ėĸ҉ė{ýÏRYũQ֒ÂÅęüÚ§_DPčo ŅM čŽyýÚø•\ åBšÛŨHĀõný—^‡SžÐ―"fÏ}•Ų gōa āŨŪÔđ­hš7čeŪqēRÐ ëš?0PÝVdtd‰\vöŋķš―Ã7ąđīÃ`ûˆœõÏ2{Ņ[k—œ•ždø?3ý8O}• ­s4u%Uw„=ÕýÜ5þ67E%‘H "�ý�4GFrŸ‹\ÄݧŠČy,vāû|ĮXģäl~á—A―J(vVö0íOrĄyn ōf­eĒī…Ęέ“:nHÛ―m™Ÿ 88Ēy`ōyķ5§ŧĘüð_·u?;ŋŸŌH>ė”tÂÃčģóŸAû/ÅāŋäYFWY`g ?þ;Š888…› m ž_[ŪÃMŠQÜĘÛr$ŨöĀo^āĖ PyëßFņĸÜĸ0ÏŪzíåžķÝp �üđĻdGĘ>î­Ų>ūĄŌðēģĸĩՌyëØ]Ųģ î�”Ë%<ƒzpx|ęŦüÓŲORįĢfCq/Œųp–sSœŪŸāÛ·~7Û*ŧŅ6\@û“HB7•Ięø; sy’ąäĸ ų—åAąUÓnÁŽÍÂZÉ5,9v`.˜ĨĐˆ―{ũōÔņgq”Óó|īuӗxۅģlhÎũ€ ÛąãöŸÅŦÞIÜÍ(öĘ'">:<I0ĸiLpb/ŅĒ\ItÍŌîŲÛüĢĸØ8JPFoÅ6ū†ÕģkąũëČúBâ”ïÁ)―rĨ�“Į?N}våvˋ҂_ūĒÄd…‡ŧvĮoÐMû>ėŧðXkq*’cUi™‹E"Ų?|3EUNßÄOŽäÎ@ËąþÅtŽĩ\hœåÓ§?FCŨcW―LãúI-ø+ĩ—xôÂ?1Î.[)3oéGâ*NĶQŋÄÅl)⠍å^ŋŪ>�KŦą†…Íl.oč|ïĮū‘Ciz|>ōcl+4yhô•Áýö›Ų}ä—)TDįœ6Š“ô„ƒ_%˜û&<õ24K.í{/š_)!Č čdī+âv·ˆČŠt Ō[ \Oö“Ãy7ŲÞ‰4NqōéŋĨ#ZfcøÛ<Äéëˆ�Žm7ƒVÝ2ø3Aw§Ōú•õE0,Ë ŨVģĢš›ņÂÆ%gāũŠĄ_Ū'`Ðï&đœĸ -ÓęYÆÖŽ­Ã‹ģÏr|þĨËŪŽčtųũ"ËíN˜írļ•ÁĨz5r‹Qž0ū•ēŠ ė­) í,wx -Æ vüôĶcŒđÝę~ ÖNėū™}wĸNņ–ÔŽą"éå°OáÏý FŸO―Ņzdý§ïeŌųJŠR2M Ė'Š8ũ�@š;ÎŽø^Ŋ­OŦü…Ī0ō.Īģ2áˈT*^yüĸÆthNĮžyRjþ·+}~k`m Ãfˆ ûŦï ŠŽ/N ·Ï~ßZÐ;ÂÖŌ.Üļö~%Î}ĐÖRO?Hü9Jė3›ĩ@æ}’@6Ė0LģRŲ2đ:~áôŽ.č,\NrßŌ―�ēgĩà^DWļė>É ð=ÏõØđe'Fk‘k7•æų7›QTķÝqŊÃōßžũvvŋþwΞļM­m[íqž OãÏþVO#„Š=L2ģ|öHðK€\ôzeŠΌÉ@ĖNðϑ‚D&6bÚŠxÔøZŌÕŠ7ž@ïÄúÎĻáOyfÎ|šĐSÏĩo,ãé1ðoÉÜXÛŪýD֖ÖlQ§č1‘<ÁØšuTĄe‚·`Si ë ë1Ö.Ļ‹1îËÍüSpša}QPOöyĐ5EK7WėÞd;ó)á, XŠw#Q@ž\/Ā š�]ž ĘÆ ëúž+=ķWwcĪÁX–;Ŧ3üÄĶHŲ#ŋ΀T°íāýė<ōŧą)jÂ#šïŊŽÓšų/XÓ@‡ÞýKyÅä@ô(”Õ�9"―—ČŧĨŨ#DiÍ °ŠÁ_ĻaŠã?‡°ÍķĘĪĩ€$ ĶxųkĸąŦÏAÜQōQ!øŊ<|åcękāšLÛõZÕįk,þlļ`â‘Wqš(cīY–V~Õfky'ĐÚ�§—æúr${—Ô˜&ãîHô&SQ•pÄĘ pæëøU—åŸĐÚ�ŨrÓVshäðĒZÖFĩRÅŠGacĮîšâ‡6œJtēC1܂dįmogÛmŋŒFŌ―ą;>øīĸ,ÁėGÁ†™ž’�ĸū1ĸNÝ�r‚A‘Ę`<&9„Sš3ū>kkęj„ 8þŊ‘j,"ž“pōÉ?&ðįō5ĸŅ€ßžĸ!ĶŊÆđŪ,°Ũ~áļ€?ŪLœÖXģjɀ5,Xĸ…ē[aÃÐFĖ2Î_ ÉĶŌVF―qĖZÄ&[ķõïēA”åđČ‚ ÅMôĒφ+=ÖÆqĪŧâũ9Ũę7“Ę’�›'.ŦtkõÖģĩžcÁ9‘(ëŧĨ[6ð–áóžcÝ9œ –fÁŋXqØuû0ąĸ1„ĩ:Nú‹Wāļ―qØøÁüßĮÄIõ�ņ ˜w%öu‚>’‡Ëŋ—>€Mr4ŌŲ†,Z"e^ÛŪėb―žĄïÆ)Ý“Įö<ŠČÔÉÏráÄWōÄÍÆi–ĸ|îjŪģ’#ŋ'a[?=_Ē#.̃\?+W ‰' œ"žðÚņu˜€ĶŪšðē2ąûŧßqw‡ūÆøáöŽĸ# RŠ2îmD‡Kp!e§ÂŪęÞe'�ېâ-HɇPÜŧņA>ōʇ‘RõΑˆ-ڝ•―ėĻėÁreęeÛe|)ãË΁Ĩ^'%ÔĒBL}ĐŅ2ͰȔŦŲ7tˆģS„ĶOģĒļ ߐ‘|§3Ŏą)\I”XOõĪDđTõØuû{Ýö#9ąeFš•­°Ö'h| ÝøZ,ý+û ŦȝC· Øãsđ·:K;2Á’:ÏŽ #óŧ°3WÞ0óhĸøZNĀ*ąþō]xÃïD`2]%-Ry4f_äÔsÅh?ûOûg?šĸajŨ!ˆGbMÔž/ŲUrĢ,CI•qTOzچ„& Đ&ļlŊFēØzŠĀ;LA•R7° Ž%°!iQ k4tFXŧėšYrSRe\åáIĻ.:$0>MÓ 4áĒDŸõcݒ>InŪ šĐŒījYý巖wRRīŅŨÄ:u΃#ÜHú‹ķmûąėõ ßĖÝãoâŦ“āÉBW)œÁPu†ļâ­l(NDóę Îëīto‚$–ķ/‰DĢ—qĒŦ1Rr%WĩĒ*ģĢē‡gŸÆéĖIˆKõĪnēýØ_3:ĸBEāŸÅL,”Šöūî'ÚôƒQJŋåÞY kšõĸ†n>Ŋa2įF° 3— Ž‹…?f3`/z€ŧRž'ø'ŋGŨKĄ 7cõ,F_ZÓļÆā/―­FލTÃéú<“&œåĖ‹EíŌ‰”7&ÓÐZĀļĸažļŠkßĘ{@l_ĐŌÕā#ˆúJN…!gˆĒSƕ’HjU[Mh|ÝĒÎ3Ė\–E.„ ĻĘTÜ*UĨĪJxēˆĢÜP-Ą އ#]žÐC!™ g/Ŧ‹ÅRqŠTaŠNGš(Ē fmCBÐŌ-æƒ9æ:–…Öė ŪÉÐÆrŠ·ū”ótĪÃŪę~īÕíĐËūĨÆý%ŽP<}é{ŽĶn0äģgč&nđ=^dÍĒ ˆ ēĀ·nyCî0œĸ ūņQqlÖbũ6ōÎ]?ÂÞĄ„6\Tï>&ZūĀA‹°''ʎ‹]ģå’ą.-€8ymĐޗäø[ËÛ96ĸbþ^$+§ Øņü‡š9 €éŅ…·Xõ8pïÏPĸ>*ZĨ„Íô鑑ŪퟛOgÖŦ č/@€éeÐ/toģ ‹’N‚‘ņÄ YEoĮÖÅZ\#\ēŒ7úÃČÂ~ 3Ü O~ŽóĮ>—wEā|Ą$øāÕ>ï+ŌxĩæØXŲŦęŽ0ä QP%JNG88ņĨˆ,Ķl Īƒ#]æüi,+đMIEI•(ĐE§DIU(9<áĨõāõЅ5$ c -ëSēš†Ūĩ]·,­#ݰ;JÕĒā)Š2ŪpS}{‹%īŪl „ƒ+]æü™ūÖŧn™6GšL”· ÜČĨÓúOD|Úē°ōēŨbĀ–ÄĘ/ĩ&ųč+Æt8•ûĸ“—ūƗKŸį;~„otÁý%ïT‘7Ŋßð&ž™~‚Óõ”U…―#94r[W3Ÿ^­€ģ mõeĀ$îßŊåðÕōēŽÄZP%ķ—wrlþh”@ƒŋ ›ėyú(ÖÏDcëĄŪ[Ļ(―ų—)ŒüK„Ր Ä`kM“`þЭįĢō�ÛnEÝi”‹vÃāūūĶ‘Íũ\člÞ&"öņg.c@q°˜ĻāPm@oE7ŧjíƒŨķ,'sð†ŋ·ü-tŽ"ŲFųųéį9õĖ_DŦD~ÚXÁYmyĸ‘‡Ūöđ;Wüâ\†U·’ĮOž‚,Q–<UŒ�R);•īq‰ÁŌ ›ˆPäÁœ?“šå•ˆÕF3Άq•GAÓc•T™‚*âÉĄ ņu dÞZ|éQ’EBéÓÐQ2T’œÖŨícI•ÓcTÕUĪäTR 5ÖÐԍhŒNBBjÁ,Ķ@č–^„�8Œ7`īYÂCíũЁtŒWtðŸõ§ų_úCZĶŲÃō”œižĘŸý ?yÓŋĨ Šđ<Ž~�jaw„û'ލ'öÄ$ÚúĄ{ZČÉ~•lK'•ËÉ YĖŠŋÞ6G:L”ķrĒv,ķ %nëŧŸųC ÍĐø;kü+Ã7?ð›ĻĘÛīâ6ŧųn…Æ4 æ>Ž^FH·i=�>ÔŽ@ €įų„m‡’lÜö- I$DĀF4!) ïÎ;°Đ7@šŧąfíŋžFŪ*øKœĘF~ŧDđ‚ÖEN?ó!ęģģ$jÕŨËZ~íũōÂ5yķŪ øösk] Ä ŽHŽqOq”CQ–(Č"wˆb ÆR*ī q“2­0ŌZ/Č"-ŲĪĄë‹æ$7=‰wŠļÏš O(Še§JY•qĨGh5 Q‹�ÂøÆĮ—-TÜN6 B„ŧpŒ^Ä+ ÅâÉŪ*āH7"*cA&c”„:‰  !”!EYėMZš•c ÁžĶoåš�ŊėQ–šas`€ąX6·P–e WŊ‰D$ˆĢø‡Óĸ•–íūR(æõŸ8õQūoįC„+ Ú_øFšųЧ”Ū#žæÚēŠ2^Üȅæ9ĘĩSė|þOņZ—zZý�#Æ8ðÆā”ïÓJCó6ӆÕčY‚đĄÃSHáĨóŲŌéîï‘Ío1ýmNÖ7û~vĸQBüģĨ›6ņw6Ę6Š „Šp+VÏa k$āŠ€?ĻŌÝŨýČ4čJ~ÓâÜŅĸĖ…ã/āxđ›—|ĸoÞô0|ÍČõ]l3n.ƒđ69�ņbŽÁEāIWzļŌĢč”(ČgˆĒ*!2ZlCŨx(Ą"Ā ó™Ô=ÄbfŪ}ƒ[pb=°Ļ>ۉũs‰Ē*˜mCZĒ‘öģOä?•p1š‰ĨԂcĖÖ}{ÂÕnL8Ęd‘Š;DA–€/|-Ą ī…dÔzÖÚFNK?ôuž`ÉūāUZï-ÉJĩąbGeũUĸØOŨŽsŪy†ÅxĐŠ—fŸĢÎQPÅ+îö^ŪhύŋÐZŠN™ņÂFįūĀķ—ĸ Ŋ5Ýŋɂ<ūu;ŧŽü:NéÖībŨø(tp†`þX=‰^ôE'ðÛ@/\|lŊŲ/r ‚’ãæīlþðđäAŅ]1&›É ŠtķþŽž]Cé+gÝFFeņĨõŋWč<6˜<þ ^}úSYðO=ZËcE—‡Ŋå0V\(}ŋ4&’†―ÆũË&íŌĶb0–BáĐž,PR†Ý ēõo{ŊËXúS…īĢÍĒ`§ĩÁfęâc°˜ļžIÛĻđ‰“ßHÉR6õ(ÖáũÍĒŪtk,&Lúƒ#*Nlô·'‹TœjT‰ ™1J„ŒęœĨT#1aŧąJ0.jFŨ2ãŒ:—2ã… Wā$’sÍÓņõ_œ; 'ëŊāJïŠ�ÝÚ֋I$02ųÛ^þ…ætl9gŪ‰u'vdŨ‘ßÄ-ß $âU6UÐíŋL0ĸqŽžJküÅBĩý―īü}d~{Čþöl$2ÄBdÎ!zY‘y'IHĖ~·‡‡"TpŠw!dqM$č aTîũŠã?+2æ+˜Ī*0uōÓ{üÃd"{YŨĸ)ā=Ŋ{õk9ge/ŒáūÞ"Ū1ô[kŅĄI…tžíú=›-Ý͏thR"Tĸq™ÐƉDQYĪąQiYhZš‰'=š–Vīt“Āø4ÆčXČÚĻ Q· ”éY‡”L:ĢMFėEöa–bD‡ėš:ÔH T/D>ˆÝŠÕjyI ąš‰ŌÖkGĢnEKšCŽpði]đsęČõČ6õyĢ?X˜å/ņŋųÛš3í꾌E%lŲ;›ýné&°&MúmąAŧ„�� �IDATƒŋD·ž%Ļĸ·Ø:VÝæžÍ ōtœGcū;)0ņËũú^R۟ų=Ų™]^Î،ųØHJËBĪŧ‡Ũ֍Ái ļWOĒûáV 0öcH5’*I&wR9ĶN†ãk2ũŪ§ę[øé7?ĖÓŨz<+L�HÁ_Ž"U hĪ)=ŅčļKčūôš†Ô‚ĀĶ…ķc Ɔ‘ķABl‹ul{íčuB‹ &Ð*Ā·>ūiŅ2.ž)ŌhŌ”M,_7ičFĪ=@@hī #+ÕFދÅ.ž Ō•ō  ‰JÎ|?óøÆ‡5X‘2ÉjÚ78^tu°˜ũF0äŒ ,n“”(n,nZtŽŽĪ R–UÕð’’7”6w…*•§]bÃdĸÉy%y$öĩŽņf-B˜}îũ™{æũ0AŅ ül?x'UØÞüaóiÂúįąĶN;)Oä]üĒĀO/0}ĸč ÎýIA– ä‰@Ī{3: 6KČĸŒƒHw Š|šþčZ>Ā ‚ŋ7ôVžŅũÄ2ŋ:Wš*2sŋˉ'þ~s>/õŦýaų•@ō·ŦaL+J�2ĨŦëÆ…#I-ņĀ6ĪÖĢ*á,ÚķcĸMÝĪĨøĶI`‚Ôz7ÖDāXXü"˜0’m™&ž)Ä ~õ°†6!§ˆÔ ‹ĄĨ›„ƧĐ4Â:-ÓĒeZ„ūŽ2ðí€cļ†DʂĄ i†u”Tˆ�Â8ŽĐ6ię&ūiZmBī °ÖD‡J4Ý\ļP)ų ęūķXĘÎgĻoŒÛ`‘—!Āī�kēoø •óÃ4iĘc­eī°Ž•]ÔÃvIf’ÚYÚgIšŅ,-ē–%ŲRĘåę\ âtmV§—žøũĖŋð'XĢÓÆ)ļŧëð6ø-Īˀ^Y·ūIXû§ČZCæĖē|GŅ[ÔGôúĨ˜GĒwŌBîũ<™ð`ŧb ũķģJ ņ�Â"-P|=aãŸđ†đØ7øîðwāžІ"OMĶ5·TęÓßä•oü đó]$‰ÔŊåOÞúĢW9ųéj€Õš™Ā€a@S6p…KSÖqPéÃÕ2­ôNEāX§e𸯧eša€öuTĮđČs.ØÐ ["ō�Ļ&MĄDÂ2ĄŒĀ>)û īO`#õÁĶnDÞÝƖ°ĐQgŅ_ øa‹–h⠏FXC9|0ŪĨišĐŧđ6iš:-ÝÄ7-ӊĮhČNÍE―@Ņ)l§ZkX_ØÐ·Ó\[ąnyõï ÐôFI—{7<Ā'N}īŊ…ėëŧķĸښvVFLýė"Ŋß^: čõþröÚ 'ļÚä`đĮŌaōË?CíøGúzāCũÜÏčî߉;õeÁŋ}OŒ”`þ�•û6îĀ—―Č;jSũ~/ĩýĨŒÉ’ï`YPå/ia˜QnY3ē]ŠÐņýžĻP’ô(―8„„otåŪmƒŋwč;)Œþ("^ŧrá:ĐhÍįøãb~ęxŧáctû“ß> ü/ũŋ—™UÃą_ 7P8ÓԘPã;> ÓDę|5ßīR@JDrüŒ4ŊŊ›ÚĮømŅæ…6éHQýžtu·–V"6ĀS>Žpš­_ûīLƒZ8OÐ ņkQlI:‹/øR L`ÐZã+Ÿ†i udŲhĮÐjĩŌÚrƒ‰*t“šŽÆØŌM�+ۖĘb"@(Ƀļ)ũĸ7‚jeïņ2æCpëØęaÏŸĸT”ˆŲQâį —wlĸ~ö$4‘<ôâäãōĮ°Ō€ÛŦ3 ąf `^î˜zZāĶ·ČTŊóˆī4ÆqÓxw/Ą=Ôk‚Ó@ĻaōõųmĪj ĄÖaõL;$ÐþéӛÉēïxßöuŅŦĘŊã—^J7ƒČ’‚Lĸb‘id§“Ø,‡č8†Iō̃ôöâØ°õÂ.ŠXžķeÁ_ņ†ū‹Â菒-õ#3Įýú^yüđtæŲīÖ?‘åĸŽ€_žïaNŊ*'Ûká&J%ĩ%ϐ­Hi.] ŽtSqcĢü�?vÉ7Ã:5ŋF،Üņ‚Ež ʋ, Ģ A=Ę6Ŋ—jčļéŦ#0Î.Č-ÓD›†n4}‚za”A┝…ņU€PÓ4„5CS4rc4ÖāJ•�Ŧ l@`‚īũ@=Ģņ—&į•+:{�é2ėŽÆB9Yũ·^qR°ÐÆįߎęū|áóœmœJsWķ”ķqĸÄ·ąkh_Ô7Aݍu:,ĸäũĪšc1ņĶ+imũîå -W xąïu&9†&’§mȅæ9.4ÏŅÚųŠFŽ}ķš’ĸ„„ãO=BPû)ķÝņ›8Å]1čŲ4û_p6â Áü?`Â3Ņ]–āÝöНX€čDâŸą}þtîģËēU�;Tƒc/ė°Čhdž"•|VĻÂAĀĒ[ςÕkyļüĨ3†7ü.žáï[ËĐHŠ8|äŨÏpüÉ?ââ‰Įså~$IpĘ ~áþ‡xlĩs @\Šē@KÛluĀUKn Š fŒŊ ë– Žƒ― p„ƒŒÝņIē–ņņM“š_C·4šđĸēđøûŽ6͊ 3o°Ą!ĻG$^{šĀ p•ŨÕ 8ãä?ß Dngé”ŧH›ZŠ æÃˆĪHĻQĘU”óāH'M'clšūnPũëč–A7 V[Ü!/ TÞWP%Ðx�°TT/]Iݙ+~KІŪģĨīƒ‡ö―Ÿđ`–z8ϐ;LÕNó>|ÝĘÉ@ !rʅ]!€ĖÜūÚqøÔÚĶO€e�z`ƒeŽÃö —$­—}ãSŨ5ãsɟâBó,ņãē?‰ęÛߎ-Žcøč_ā4/ĨUpYpæØģīZ?ÏÎ;•ŌČ]‰ĸ;ēŽ­@`jîÐwÖÁ/eĀŊĻ‹Î&�}H@Ŧŋïĸ{ ­Ĩ‡þF@]hŸ$û%ɀÉۙä@Ņ[ŅVŽS…[…öŸÁš5Đ…Ā_y{)Œ―§t˜ųT:}†ĪKcîŊ>ų!.žxĒø_–_šĸa>ąĮšōe€ÖôԄOēš“LóŦęUP10SĐ8ŪÓB ÕÏ#ÐVGÄ@kí64še0~ä —Ūˆ3‘Î/ 9_G.õÐÖ-Ɨ„ŽÁ/øQ™]üdc1ūÁj0ūÁ$`*Þp$OÚ·“›m‡�Ī'1ū!lhŽ[Ū8>ŪÓDÆš‰ĀXM†ø:@7ĢëbÂhŒĘ•ĐzĒŋWR �·ŠŨÔŊøgKč–bí !h™&S­€‚*2ę­,ĩ`>ē”Žéۆ6IėužĪ­ąD^5*eâām52“W—ÐýŋRį. ž’–n2ĖÐŌ æôÓ­ÉH–:ýŒg,:‘ÆÆŧŅn•‘́7ũjǟŨČG·aōô1Âāfũ?Gyý[aŽēa5RŽáVÞJØĻ6ŸėADo ïS `éïČ―Ýüm™S’Ņ+@ŸņŨgI@&I0‘8îM’!$― ēx·n~kk^€ŪÛ"q*RyŌ،5ĩ˜ļfzž8%f/>Ɖ'þ3įŽv ý$·dZX~îþũōįŦužWĩčp_ĩ›*,nŲ‰’øŒ%liŒ6„Ž!,‘E"eŠĻgŽÅī4Ú·‘(NÜĀAš§ R cĄ.q x7&ýhF‹ö5ÓĐs“Î'ĸÚÄ]‚7âāxraųáÄHP§ĻðƒH„(lęˆx ĒHŅ$įÓԘ *Yī&ZhTQ!]ÕVEā6Iä@Š~ÖF =éŪ(ðEᙹ<—f}kŦЇ5”P(ĄšŽæ~–ķ”ē+ūž‚ŪÕ=å}Ŋīë?)ĮėåXŠõ/„H,iĄ-šj™&į›§Đó4Lƒų`ŽVœ*‘(éö] D<&ôfĶþŒý —žï"�3NóâW?ĀîŧĶžøþvÉ}Ŋĩ6DČ2Nų9DXĸR;\`(īíX{ū‘ËâũÕŌÄ ‚."—ûmÚæÂ Q.€MI@Ž\dÂíœ�ƒōö"DÝ|"j#ž�‰yÍXýĪ;Ž;ü―xÕoCˆbÜ]1ĸlK§ÄÔŦĸČŦOĸ)ĩKgPnžŪÅā_ðũ?ĖGVóļĸÆF7M$NÉ!l„`-&°ˆÐâĮYîÂiĮŲŽķ) Ķ™ÔRā đQ‚4\ąa(Žyø3>&ī™ˆöXląnÁrp+™čÞĒctJ* !īĒnT:câ―já1JWFcTĒËķ€ęĒ/Ę2Jļ}u’Ï-§pÐFM―Čj'8ēNÏC'č†6ÄÎ%Ųcf]ĸÉĸ:=GK9Ãāų éâˆD EË48Ýx•Kþd\UÓ 0~ œ{G’$@aŠŧļtč_1ōŸQš|<BOvU›žâÅ/ĸ.ŧï8Ïš]ïZýZ‹6UĘÂCï@Ča‚ÚgōĩÜ9āOÔũzƒ―XĖüïaŅg AjĨwfôįä~3gÜĸąš|ú‘ųLũϝ[;10—A:Ĩ{ÐþÓhĸUxæ$ūSūoä]ĻÂþXLÍt€ŋD*‡3ÏĸÎ<ĸQZén•ŋüÂōðjĸŨHc·RāUŒ6˜8ģÝZ‹ c€Ũý-%[ó‘õ?Ø"š€ķ*HŠë øsaCgŽîŽpQ a|ŽĒZRįA�Đ"�o…í0B{ŒęþcŒŦÜ|l[yãëÅ­œ6WšxŠ''vŦ3ķÎ2ęß/+”€A XĮß.Wė>vZŊm !Aš`z%ˆ@ŋļ6g!Þ§%“(J:ÆįT=ęģi[9r˜vŋ[ú S  ãLßü>Ė‹FåĖōų�‰ĖZĢɋĸüav5NģéÐokM&ą>JŠ“Þ><9„?ĸwq •·ø;€Đ^ËNÚnŧš�‘ÖëÓUÚGoÐvkeEš4ÞoS+ŋ-,råíÐb"<.äŠxBŽĒ›O―æĢË#ņF߅7ô„,Åĸ0Đs2_Āįēĸ‰ģGĸúûąņeķð°6üÍõ0~įĩq“ŨĪ4V 9Å―ÉšN{€~ō―Â:ĮSKZsrŪŽ 0ęáTL”Ļį›ŪãIGâ–Uä‚W2Š\šĶ\Iqž@s:Hŧ=Æ>į(ÅąBø°Xęá<1ī(ĀļŌÃnūéÉ2-ũÎąkĒĪģä<€ÎsHrýn//@ēŋĪõlhƒvĩÄ ‘€,؇ąˆUö:fCQXË <Ÿ„6č]ĒŨŅį,'kŊpēvœ–iķ“| Ģ,— Ā(éC?Ač2|üãųŽ&1 0ĄáåĮ?IŦyŽíw|!†RK?š&ņy9x#ßC0ũIŒžŠD<Dķ1PŧŽ0Õؐgf‹ÚāŸėËFĄ3•øåˆ� �:ž6Ŧ�˜)SNĸßųýöūÓJ ëĒžQXĪųÖ4oø@â@Q…―ĮĸG”ŧ=%HídÕdęIī?ʼn§þ€sĮūÜÎÍyŪg-į„āĮßüŋ^ŪÃkC ëÆ‘‚Ō˜‡nZs6čïæô†\ÜŠ“abŲîeĀņÎ:%KQ‚Ļgˆˆ“—guK*Iy}°ĐņįBlļ‡]ÜJĸ1rv�q‹Mŧ0ŪĪ%ß;ÓÝĀ2ð’ļ·°Œ/Ŧā—õdI@;'Ā�!Õ·„pP‹<ų;ėŌýíJ�qŠVĻCÎ4Nsķq’ųp.nZ#bËrAŋ‘Då­ë l~ýïânþVN~õgģÆmîįĐįÃŊ?Äîŧål‹ýúYrîÐwÔ>‹ ÎÄc‰õ[ŌÜ�™ß:ūXÐ'íđa°ŽâöŅ‘Oöog8ڎX~r1l[ËĀdÉOŽį)&ó”D#îV\5LØø:V_l‡n"`mf‰"ÞØŧp‡ß‰°:öeE”Ú!ĢæüqŽ}ý·™92_ãoÓôL!Į­ā§îˆO^OŨä5A�š@ŌX”Ī #y_ŦãՉý$ĸJļn{-ÞĘU}ų•8–5§ pŠŠ=Æ$ÜáˆhŒ•.œýÆ( ra Q SgH/ępDÔ đ—;īŨuÐÖā Ļ `ÉŨ–ËŽKģę͔ï$‰‹;KJ:Ë %X9ð―î$9š°Ŧ<ģWē_ÖúhÜ)ąĢ{/d*Rš’WkĮЅsƒąšÚ ŲrJ)$ۈZx{#l)í`SiE§é3ø)žŌN|é' ›S=n.‘Ðĸ)öÜýxåÃĐTŪ‰gÁ ä^å_Öŋ€^‰Ö‚NĄŸ,ðŠĪ“ÍRėĖĖïlõ‰ÚŸí8^Ÿ@’8hÛŋ'9íÁŽ0@ŪÔ0úd UqĘoÆøÏ ýcXÓžîslfČBTpJũP{Đ6€ ĒëÓIČĨDģĖžû2/íũ |ČĩcøĶ€ũÝĸ\oŨæ5E�zĪTY’ųØ[Į‚ļ’qÛūW 6œŒ§ïí"ĮEƒËšžwqŨĻ2ēŽ{€bđG–’XÐî —’Í3ÔË+]†ÝŠŠŒf }iŦ—ĪįŸËˆ]Ë―<Ųý'Y jĀG0QĮ[(lŌI:ĸė>’RXc óá, ˜f9Û8Å\0C"p$…Zų&MÖĶ―*%’’SĶĪƌzcŒyëŲXÜDŅ)ĢMˆ!’ēŽr- #ÛßÁ.ũÏyõ+?CkæÅž„<-§NĮ|éßąëŪGyėÍ œīL0šū:ŋĘƒÐø šõ6icÞ ôí ÐĄØIĒģ]ýD;Ņ7ũSäãö=I@.‘0+ņgs|U@o" Ō°‘E#ÔÚ^ÄÆĪðz#iÉūŠ" ·ā }NņŪøų ÚUéģĢÂRŸ{‰ /ĸ%§žý"Ō!—ė—Ø/q§čO ÁûîûQ^šąð5I�z‚ž―ō |ퟆĨE: ŧjÁĒļøĩŠjžå€n\ `mlÍ/üY%-Ýā…ŲgxiîyĶü‹„&Ī䔨RÚÎūĄCėū !dÞÝŨg3jɞ€^$ Wb^ō·ŽÖ%Ũ ?}Ŋc1[üSOT æ ˜ .1ĖR æļØ:O]GĘgRôĻÏ_AÐOō(†Üa†œFž1F―1F ã”U%ją!Ð~OmÜĨŒņ)mžŸmũ~ˆ3ý"õó_é"H˜>wš—ūōïŲyįO2<ņ―ÉɈ,oƒEœō}YA7› úĒ7ðÓé~ïö$ކTÞ7K,Y%ŸnÐųŋĖ9D:ŨóU™sL’­Í�žĀZéŒ#Ô0Á+ĸ8F_ę^åĀoAĻNņNå>œŌ=Yëũ Ã éĄƒ‹\:õg^ø(sS‘NŨ­jË.XþH*~ņïaöz…„Ũ4XÛߔ+i"fĐÅqāÅØG$*OĢ{•IučÖ/$œ�T]Ũøâų䙙'ðŠ= sá į§yiîyÞū…Ãë^ŋhŌabĨ[ė’Ęøz‘€ėÓ/1nĐ9�―:vfûũĘȕęÉHŧálãģþ45]K='6d‰L!ŊčƒeÔ[Įxa#Ģ…1†QĘN…Ē*ĨᒖnfDŒÚ"c‰ŒwŧI“OiýķÞóûœyüW™õïŧI€‚ŲÉI^úęïēóð9Æw―PĐĩÐ:‚)AČaÂúĢXÛlW°˜åßG­ŦKû᐀Íi�ØHũL Ėy 2ŪýØŧĸ_ēÓãŧ҉dŸåîAŠ ˜ā$:xkų4‚Õæę· T§ō&œŌëq 7#ÔšøMŦGž“BJImúŸ9ûâĮ˜<ųuÂĀ UGĒ_ėRąp^XþŨĒá_ũ0ŨĩœâĘ�›Ÿ“kۍąđCî‚Y~ÖBḿX·ø}‰‹9‰—ũ Ø-–…“åëõĐKņäôŨÜĄ!‹d.œåŅóĸȰ3ÂÞáƒqöõÂ`nŽ!$L›(-5“,Pwørr�zƒl™_Oë‰#چœkžæ\ã, SĢÖðąŒEąVÖ.hƒ~Ô'aÄeĒļ…ÅÍTÜ ŽððâäPƒé’^m˜–ŽÚŒ’hnNX‹ŊkĻáÝĸ?{ooÉuÕũ~ũŪŠ3ÝyčÛsŦ5īfÉlŲ–eDĀax„@x!ž$pȋō1ãXa žG „lĮðH˜Á ā`Y–­yhM-ĩšÕÝęáöpoßųL5ėõþĻáTÕ9į=Ļ[­ÚýąŧuïęÔĐÚë·~ký~‹ÍũüVy >C:n+ĀēĄđŌāÐӟĶ]ŸfÛ­?R 3ý„A 7~ŦžĨņę!f!™—yÅĩöšūãũR;ī'ŋtĖQyS øđĶģáĶ™‚<@čé đįŌemĻĒņâ Aété:”―ã%ˆí”/ƒé‚éĀŊ)œÁũaWîB;;Qz(ĪûM+WųûB•0ÁNøNz”öĘBØĐ2„ÄĒ%<üëûÞÏ—Ū„ý―`�ŠĩúRŅkŋæYu­b53ĀNïģÚĀÓä&Ęč{ŊVÐäéđG“îý^T‹fŅ[āĩ•ýlļŠ’U^_āÝ`a>`Į‰i p>Söú•ŌYâTĻtâFxĶu’ãŨYņ–ņÄ#?ózú"5ó ˆ0RcĮĀnĶ*[ĻŲ@T~ˆĻî eÆ—FâÏÔŅˆåŠéũ ‚6ViœĐŧŧķ•Ų―ĸ.ŽßĶū:­Ás}Žūôŋh7Nrõ=Ÿ�Æ#ËčÂ]_Û[q†ū1œ!āŸDáäbõČ$―&昁ü�Ÿ”Ļ<1K;�v=‡>™žéxĪ7ß ÐŊ/ ač$1ÂQÖ0J߀.í$hĀø'.ū$ėōM8ÃߊUūĨPŠ·—8AÆVūa_ĶŌŠå3ȑ―Bse ˜ŪŊ45fĨøŽŌüä{ū—WĖþ^„ļb­ķīc%†ý<ņ[3íUģŅe$@Óm„ÔO—~š=Íē·HI—W Ę͉ÆQZA“ēUYWwžˆāá…þc‚H• žËĢÎy2]ā žwoi‹SÍãžūōËÞbl|NއįR †{„ƒŨ°đšáŌƘĖ9O)ŌK€ŸÄĄ^3E tXĖø D›{Ō *>ūÃ7~]ÝĘĖãęÚØ•§=‹Ûüöžį(ëę(`iÐÓÖÎāŨãÕŋŠņŽĒī•›Ð;xæ,éŒîÁ$ōÂÏ,JĢĒ,?éäWŠ{nP&TĨ#cü|’įŠĪËnųFĀ4ļŸĢúī`P)Š܁eöļŊbüé7Ī/_ePüœũĄė-đë9gŅõS„`ĀÆŦ?Ėą>Åė‰ÓtėÃŧÞ+mëûũ}ŋyÅ%xō›YkrœDĢ:Ï' *Ö%( Øxuŋ/“éķ=ÝyŠj Ŋ°c"I@G”ójtwĮéŪ7 ŅðžõļĖ) %a ú˜^Į“.œ H>G<(ĻĢŅÓ!2W–čŲí•UfÛg8ē|yũlō™ß}~ügļ4ÂķÚ.ķŨv1ℿP~āá~Ïï7ķîÅdäŋg?Õ0™yHí dÖāU߁.sæŅø ˆDœ=ņÁC?ĀžwĸvõNâđĨw^…ŌC8ũã7 e‚ģ›šÂÓĸNÓõ~ĪKi’ÎÚĨGP—īÉoīv„­ŲŽ_uĘ éÆ‡t͟*tš ó倠 õz™)ƒņĪEkŧz\GāîGüY HiîÏ?ЇŊĢķ‡ĢĶūŊ íœ!zŋ5Ô=„ý~óÎúÓ`ünßét`ǁ{ÅðßûO9xE2ž—ęU1‚ęMąDŦĒņęýã3íS\]Ųģę\€x a& ^eÎÁÚNtá\ēJëīđlíāXĨ _Ŧq?€…ĩ!Ÿõdï™ß ýO~ŒĀ‹īņÄĢ4x}å5æÚģâ‡2=ÔEËîãïĖŅĄ>ŋjÕØZÛÁÖę†K̈„u|7hw}Ūīmq†1ӑŽÅā@žūāPĒ~�|ãũÂĨb@ öÔ}LžįwYxę_áŨgē―8ųž?yŒWŋōc\ýöS―?T‹ĻØū8Ę&ugākPÍ2ûõ4ށ:s”= Еvvwõ§~Oe@ūxŸ)ĪĄw§—@raąĮ…Øj•Ķ.•Ęīõ våÄ,bÜØ`Ī}GŦƒésĻ*JWQzŦr+võXå·ĄtÄ t-ö;­ÂŲ'&XÄkūÎâô3}ðZõȀ­;ۏO2(füÖ}ïįĢWōþ^”�Šĩææ Ø4gÝū[o|fWÎpMõč �TO?úžCVĒiz:7™Ŋ—Ī`Ē4…­ŨĶč ØTÞLÍ8'Āj$ -úžlÏrJŊókổ‹MŋA3hÐ šL7Ž2ïžÅ?ЧëÄhébPú EY—Đ؃ ؃lŠlfSy3CĨQ$jÞkųÍ+b,â&Āôå4 ˆĸ˜T§~SIŦ�‚žL‰Ĩ8ˆŊáŌÔ;―įã,=ũ�îÜs] � æOŸÂ<þ3\uį24õm(UJ͈Ŋ;ŧvĻ*AûeDžū‘-̟IûQæžlpíŅÕ/Yy`WÏũôiT―€Bū óž4ŅKE@ōšæĢô�VåmhĐcžã‘‡@L{Õs‘‘*�� �IDATÁb ĀBë”5Œķ·ĄK7`•oÂ*ï Ëâ~4ÂXeö0Ōa‰BųšæâA–Î|ŲŨũēē;Ŋv}eqĨ°ˆâAāũ|Ï^éÛ{�Šĩv  f­Š0žĄ~Ē‰ÞŽ‘ 6âH€Ýļ‰Öū/ ÐąPŒĒkB RŠg”†oeßÂ^ŦÔóĩŒ]âÆ‘Û)ēč.œ3ˆÝü6â°QPÖé{Æåtë$u™9w–ųvô5 ―.{å.uÛ1ÔŽĢĨq†Ǩ–Æ+M0ä„Ώžņi­A?ÄA�’ ]JAj$fÂĐn;ãP= c#ēýĶĄ}3™ĶÁXWŸœÏĀŞž“áŧå•öôƒ]ū>– ‹ģ‹zâįŲyÛ ãŧ?„ R ĀD“7߁ēð›ÏĐ‡"W čÜ19 éÔXzc“ ÞÝ,€éÎæÓ�Cõf‘zúĻÞÄyd †ōîÂQã”°JŨ öv$8‹øģģJm ĄŽ ”5Žķ&PöĶ0č;;SÝûÞNĐ•‹š„bŋõ*+g_dqæiO―ÂĘRxJrēū·ŌyéŊ üÎx™ĸzó?$x+ėí�Œþ•I�(IûÓõÆ–gīĨđŠŅO &Úč;ŧIÜ Ð/ØZ)O~IIĪŌBÉ*óމũ°čÎqĒqG—š:äîŋ‡·ŋ= nįĪÓ>įRX-ãV(lm㏃ËŊēä-2įÎŌÚčXŌwyŌįÉH°3ĘXiœMÕ°kØĨbUÃÁ(ƧĒũ;ý ~<ô%&ŊM]Ė}ǁUB8Ü)đFĒ,\ĒxēifČ`rA,| TWG_ÏāÛ>‚*OÐ:ôGaŸ[ę4Z6ԗ\?ó ڍiķÝōÓĀpŌØQXĨ›Qjˆ ų&85ĮŅ1‰O@ˆĘ Čý;ÄãóĒčÏÐįßIy?[údø‘qâĨ€EÔĢŸüčßąSō;$|Ž˜ÐeQ•AW°ėM n�U‹2s8(]AéA”5†ŌcŅ>1ˆĪđŠ=zĒJÐJYHp‚öŌS,œzžĨ™ýÔÎÐj„OëÞ ~IuJqøĀÝũ~^+íïÖ XWäŌķŠf tœEĩʆŋ™öIķÚ;é[WĐ@|㓞_Öđ|ú€‹Ļ~œô0Ų™,OņÍÛŋƒ'gŋĘ Ïā?ꁆė!ÞĩéoqïÔŨ2č ģė-ž3�ČŸ0č] ÎúÕpĒņ:KÞ"øĻČwĸbÔõ„{ Ņį—F([UŠšĮMRkOĐÄ}IņzË&―h"bŌä—Ņd‡Ô~ :á*žJL”iĶ­‘ŽÄ2}Ų„}&BķÚ34 :EåÖĄj[hžð‰p�`Z&hÛ‚c/ý1­úIŪyĮ/ƒÞNɋšðUtÜÚŲŠ­§0þqNJĮß‰ą’ĄáÓ ú�]{ŲAO Ëâ7OjŦÜkôÉðÓŨŸĀ*߄R5·Ü7â^lÂa[VČ|(Š}U儉€ēÂĮ*… Š>&„ÐĄ―°īi#ĶŅŲâb|ßþm•€üÖĢŽĖ<ĘÜôAVfi7š^tŠW üawĸ’ŋĪ$žöÞïÄžÕööĒPŽĩƒVØ6î‚ÛŨĩŲn1·0ĮöĐŦ‚ ëæU(|ãu5v­Åäo~IeKy‡―ąŌgįwō5›ĸ6Ó­ã4ü&JSėļšgē.SũW"Ęúü›äbëŅÓÃq6 bÝūÃsóO1Ó>•Ü ­ŅU"†š=ČķęķT·3ZžHīųI-ADïŠûágšõƒ> y~\ËNäzūņšŋãÔkšīUē„n€’§ÚSėC:þĨƒIÄ ėJŨ~7Šš•ÆSîšíĢ4>œ9ô(^óØsïŋC9·v@� Ēƒķ'Pĩũā7ŸÂxGŨĀ$čįüþŧ†ųôËäUķ.ßÅôë!čbzünÁ tŧ|ƚ„ ž9ÅCǐ0€’þŌR?KÏģ°€jð#‹^7b$;‡Ĩm:Æ}ŠÆÜÜ=ņ"‹gëx­&/đĄ?}ČĩH*Š_ģ ŋîÂĐûߏûVÝÛ/�ĀŽŦ!Vĩ‚7#�°åA‹ö|ĸoÏ]öX>^‡- LïGđĶkÜĖF”Îü{Z‹`Č6b°Rã~“ō�BËo2RcÛĀŪÎLũčũu…fÐLe5ëŸČ·HjÕ*”ĄŲĘÞÐ0Ą8øŊøËžī°—Ewū':ß ƒ­šUc[mÛjŧ/OtĖx" ]zb:KũĨF? 2Ķ>éŨ‰ģðĀø―] ĢŨÍgúqs JOæƒ xč0�&ņ·™Q&ÉšããīĩýoSvqŸü $hw{˜›~…Wú!öÜûsØĩw#Qy"í\NŅŧŋé`ÜÝßĮ §'ˆtö=Y€\ã]ŨΙŨüũ}6ėLģ_$ÄŲ―ę�ē?“ TBÎ65Đ0yŸč8ÂۈēCņÃ>qÃŨ ņ[ŅZ|œų“/ą8Û ÕH5‘æ1MöģŠ„ļBŅPð)Ņüē)sâÝßõÖËø/8�HFŽzfUZ3Ėd4–ÖÅz“€ŌˆGú=ĪÅlc–yũ,Ãzī'ÅoÜÜVĨ’ >žžQW'ãvŧUų�?ūé7húulŦLI9ļâ%T·šîŅ™>x~Ô}ū)1”NĘ:v59ĢRŠwŽįįŸĒ47úú„ÎŽė—Ëv™m՝QПLjÁ^āõ3ĄÅēÛ úx'xĶũë�Īęú=JCQ­>éþG…“‘Ūļŋį1„ :ÏIû ĪĘĒĪKA`M―‹Ōŧ~ũ™ Íә@’ČOeĸW~Œkîų(ՑŊKalžÞeėę{°1ÞĄĻy0Ė䓘HjÜïjúû^ĸNŋéþÁ>ā!?Hχ°į€  %iYP 2ý ųŋsĸVi)hTû7Æ_Áwā·^Ī>ũ( §^cyÚÍl•$Ŋá)þdLoøØ@ K þŦXüŌ}ĸ„“ÅŽ~1J�=Œ€ōmhürþnąÞļOvÕÂ.[~ï� •bne–đ•ģŒŒŒaŒé`c„VÐÄŋg[Í ÍĪY€^Ãr@á.~ŽÝ L€ÍöŒĐhúžÎų€bč訕RØbũ ģí3<?ũ$þĮũ ú–ķpT‰’Ufku;[Ŧ;˜(oBĒ Ø7^rŊ&MaŌa[Â,zõ ïãw7Š Ž~ï, ÅßÉDuUĘgŋxˆŸkRF:"ŌÅR$ÃϜ‘?oqaâvŽŧžā…_AũwÉ•‚…Ó3žöČOēûî3ļé[@•ĢĮeåĐví=ø­ Ķ―·c/ķDÚŨ'Ûï’æeŲtE^Ïߗrí"ÖwuËšö„ūæGųŨQĐBŒīÁī&bZ~‹Ā›Áo―Šß:DkųUVÎNÓX†F=d–ãZūîƒM$EDĻŽ‰ÏĒg”â$āŨîû�3Ån~€H =iŋ8Û"5~īp|“dĸ1{ãhė!›`Ū@kÖcéŒöÜSũWðŒKŲŠĪžŠ2?�e@trmåKŦe晠aH@@‡'䂂€ôûĮvÂI€VJÂϰė.ōüÜSįüį<„RdČ3`2^ždŠē•ŅŌDÔWЊĪzņ9Κ JĒjč§ŅË Ȕ$ ú‰Þŋ—F5“wÜ Q4åßÏā'ž-ýä˜S`!í7ĶJƒI•ĄZĻņÛÐw|ģï7`æÉ.ÆÛēaņlƒ}˜ÝwÎ3šãĄÔ@d”Ífíę;T ýbVĒr@üsuũU)ų\VŋV#ßš‘Ā9$Dãž;óAÔđïĨjømbšHÐ$šŋAā.âŧgÜ3øîižÖšËÓīëāķÃÆËĀÚ"ÐeŲŦįœąWų[‡Qž�üąZáũïûaübC€ð:č4ųĪj3tīCÛčUãŠuų-ŦŽ) 9īfÛ=GÄ*ĨĀSL/c·ŋ›=ØcR4ü:ūņ2�  ÐĻĻq*=(ČVֆFöæA@\ĮíĨ.ļ@ “ý†Ô°ë·CÅBFĪÐ7b(ë2#Ĩ1FœQFJcŒ—'vF“fB_ē™~|?š(čÄA?–Ķu݆N€ėĨŅÓŪ^ýT<NiôI�B^ĢvôGŲ|Š=Hũ‰˜XV˜™Ō–)ņā!r�#”âD$ĐŅ€ōëČðĩĻÛ~ģĸwPĮĸ*b&:ŨēĄą,|âWØŲ8ÅæëĨ'#“šÔG2.Vųf”Āo=ƒ3‘L°\oÝ{•ÆŋUĮÓ㞠4—žÃkžÆ-Dž(Øû˜Āi ĶAāŨ1QĀ7þ ·Lā-ãŧ.ž ūųĀ û+â@ãíŽÉRÄbÄÎäá$Šgž@øÂ{ŋG‹û€ÔÍ$ŠÏŪ(ļ&šųLÏMT�[ÛØĘŽÆą^ģ$‹ĩ.t§īĒ4hĢ˜ÞÁŅē4ÓÓ'i\Ó`pxĻk؎BQũ—IXúũyØūöĀ‘î8­ôēũ,m'l<2•ˆ―Xe*G—xqîęþĘš‚øÆJ“lŪneĪ4ư3Ę =ԑꉟ ú1ÅvÉŦDr·–FßÄATŅÃS!Hîņ|Ð?g~Æ X:]ûD­Š73‘ÔöSÉFūl:8JÂ>Ä!$sœņkûMĻNÁÍ?„ĐlBüŊąí}rEj+ĖXėý íú4ŧîø0ĘūL3ļŦ‡vvbë2AóYŒ,4Ž!ïĀ>šŽ›šß8; ĩxKœ:ðûĖx,‹ðČšØ2ĀtžÃ2uûTĩ —1OŋLŸNëB<qQ+xái/Þũ}ÍQ�Āz6A1BāúÉ&ÕsóŒ:4*VÏx™°X—u! žXj΀ŧäõ-ļģ>§N2><‘HâŌË7KÞb’Đæ‚ÕT―JÙÐ#c Ā€ņ3 �čb.(”ÁÖ6‡—ösķ}fÝÁßHĀHi”Fnežž‰ŠUK~H€1&ôÃėÛï<?—§ÏC<d'ĢŅï’ëųĐp‘Óčģ^ūI†n~ Rr=ÕĖc "Ņ”<Rîų^…x/ŠËC tLã‚]ƒkĸíĘ8å—~=ūä: @‡ėôŦƒÛ:Ë5ïøYŽĘÛCŲ7MčtW{~ģ„q_CĄW ÕįGŨŸ€čw,QOā6ÃĀ―æýĨSĢÎé>‰&w6D8…âŊ•ð7ĀKǘ~ïũM}o`ĒÍVõÝ%ėöÕįeãįZÚĶlUhzÍÂ?čMœš…]ĩp―ūßŊÆâĩđý\·mUŧÖõ{…fĄ}–­Õ}ƒŸd•Å]ŊŅ ˜([Ü8ÐI€ˆØ€ÄÜô—<ãrĒyl]üWüÞ7 ßžá[Päęėņņ…Ķ>&ŠwŌWŪŨ=R7[ūbãŸ<SöÛÏkôSģ V‘ëõŌčwĶąÐ-ŨĢÓ ˜e%%[JĒŌBķ`Õ )Ô:ý‚k\ZAŨī &ïÄđýGßũ›hŊ•1Pœ=šŋýã\sχ)}]XÏ|‘L°úNeīŽâŽ-—ņ :nˆ…ĻīũQĪtEøē‚/+̓(öCSęũ~ o$`DÄW‰Ũe/�žķG >–ô·)7’Š]Ã5müĶ1ÅšL7�KQķiU˜>žĸÚVœy~žÆ5M*ÃÕîqŋ(–žÅ(�8=7™8ôœ1eßaGŋÞ }Ęá\īē°ī•bâŽZ_ "8ÚáŅhÍu†[ĮîbũĀu11ÞCĢ/xâöÔ觏ÛDA}u~8ąąW $ˆ‡ņˆĪšÔŨŊŅË*­ŅOÕõ“fÂT€ožĖņÆā§WÐLF}bō}�đ’TŌH(_‘ITÂ^ˆRīĮocöķcüåĸˆÝ<›1>ōūú\sÏÏRûĶ”]uę;Ðeėę―€ŽÎ ›ĶļžmT/ĪÝtĶY!Q1­bZ O)ÅÃ&Ėōũ J0ïųÞBģÉ��ā)ĨNˆČU}{ mĄīą”Ĩė57ÑŌ‹î<~b  (°ĀåŧD 2^Ē~ē…Đû=e{J),,ž™yŒŊúĶ0ˆįú�VžEVüeJšÜ[-ëčũ>y›āęoe@?V*~=%$RÕNÐ1] ā\œþ”ŌŽxKŽøKk>?þýmcwsõāu™ŽøķũzŽÔíĩܔžŋ—FŋWĮ}üß ģïÜFĨōŌŲŋ˜ÄL(―šåz’;†ī\Ï$ĸĸ}WGLņ§ÞSRÏgûqŋH|Žūøī‚­ žšQ‘*ýĻŽŪÝ―‘đ[~„ąýŋ‹ģr”L�‹ŧ8s–_ýqŪđ§ÉĀä· ”“*âĩí{QšŒßz!™1Ðt1 Ōã9rŽŒƒôT)$=2âKėH9…ŦĻE�8Ŧ‡ˆáY,ž­ø<ĸŽP/vŲË�ˆH8 ”šŠ/•îĒGŧŲĶT-ĄĨũÜôŒsš vFXf ßDSÃĪ�—/GÛU Ŋôö ī­9úô4îŪ6U§ŧ €Ālë4ãĨ‰ūĩöxZ`ĖŽ °2ëjk0€XÚÎRâIVœĄþĩԜlž î-Ŋ áúá[2Á?l° ÎMĢOVŪŨĨg4IÞ{_uęúi~ŋl?/ŨK@EJŪŨéߐūr―ėÏS’ÄÜãģýD)€ËŒ1x‘Ĩī“fԘåéóŅM§âã\ĮŲ[~ˆŅýŸĪžðJ—•ķ`eÁãՇĸ5Ũūsá­ß‰ŌÉHa"‘šŦúvP5ü֓Ʉžlŧtz ôĮŦtYžØúŦ…íÅrtU,sJ˜ÅY%ĖĢ9‹pDÁëũūņí\�ĀHKiõ*ð>éÓ ļKîr@ģÔÄÖ%,ŽžYG>r†i-ÚA_‚d*ØđlīÅš˜ @„Ŧ›Ęī<Œ/}ƒī{O>Í{ŪšŸĀdË<ZiN5§đvč†UįŨŊ$™ č  tœ#ę ˆ› ãšs 6ĘxA›†ŋ~ĶUüýl­îāÚĄëņŒ—iæ‹Ã`:ÆwMŨĢ[ĢÓð―vԌ—ÎÎUo~ÐCë?7ĄÖã9öđ^ya*žĮ „’j-þŌĮ&I\Ė*ŌÎģ˜ ĀVÐÂ5ípP™ųk\á_K0°ų›?ČčÏP™y2īëÏ)Z-ØĸÕ_âęŧO1yõũĢŽ)Äx‰X])‰d‚7Ąt ŊųĖ…žĩýēýĪO#gīžūŪÉ:XƒuŊÖ}ïįķbwž‚€ŌŠž°j@VÐ^ðhu);īü&Î`jã’ūY‰Š”ķvh›6~ā‡G„Â0črŠ“eVŽ5qWLßïĮē4ž;ȝ;ïĶĒjđĮ)šþ gÛ3lŪn[e+ʎ î+ L5’ 8„ÏÓį�"C6Ā)Īa1 zÍčâއeo)SbčõY]âú‘[Ē ëwkôe-~Ú§“Íį5úy ]/~(Ũ ’c3]}’†ŧ^r=“€‚>ýÔū`būôÐčũ úˆ‰šCÎŲ7áÄIO<<Ó“ĢssuŪumĨP‹)1ãũ3TcðÄ_wƒ€hÐkO|·>Í֛?„å܀1­D Ú؁Ģŋ– ņ(wB?U€ÄÃrRā oæŪš™QyÆáœW‘Ą]é�`ß§_nþūŦ^ïëÞJ�ĨÆ7Žo0ļĢJŧŌÂRŦŌeÔ+ã gŋ[ÔŽöĢĄ"Z]'s)Ū·Ky' `9šÚķ þĄ Ï@‘ðh‚eÃÞãOsĸîũánŨąŦakuGÄz•ōRšs—0“–Ô“æóe;âQĨt˜Ü™ïQÆÃ~ÚA“VÐXõ› ÄgŨĀ5”t9ih‹ƒd@°ūŠęŌý8ïœÏž\/ëäŨ[̟ˆöĪôõDЉ3݉oújôcðFbPÔWĢô YūøļAHíû&Þ;ü ãtán2…2>b•Yšöĸ"ĻlbäÐĒ“VčðÖ8öŌ_ã6gŲyûâ žcšĐæËð[ e‚ï…æ“îk)v)7Ū7ôŧÎBŋũĢä2ÝaŠuŲ€(PO‹ČģJĐŧčSJR–båD“Öl›ÁU~­4ŽvÖĖäãN IĄĪ7)‘KÞ++™—Yf§įoPÉĪēģJkÖEü՚s-Ž<ÎĘŪ%†­Ņô W�Á  NÅŠ&Ųf>kÎfų!§u2~ĩ“—Ŋ'+_-øĮ=�―ˉâ†ū° F ŪqÃŌ„ķûūŊ­6U6'Ak=ýpš^ŠÞŨ:nœ’cŌĩÜÜHÝėg–ĖÞÕäzið`rýÞtĸđhô;Ë Ú ĩHôóĨ‹U>Œ5kZ;īw~‹•I†ũÛ]&č!<}čžæGļęŪ§2úãfÔ+Jē†ąkũ‚.ī_î4ĶYSzÐĸý,„{eþų4ģ™ÉŸķóë-�DäðEđŦĸÍĨ@˜Ųŧ@eĒ„Uĩhøu†‘uÕbÓR"I,ŸÂŪōKuÍe,ÕI6Ę ™éŽÔībp{…åcUŋSŋðäĄĮø?nú{īžfW`žnåšĄ›{ÜÕéŲx3ędƒéI‰=­-Ųĸ ßQĀĘũ(ĪkÓákëŪßũz?_<šA#úŒýæXiœ’UNtúéé|kÔ•(ĢÞ:þôÓčį2ũ‹ŽŅĸ›ŪįĶ”‰2_ßx4ƒí Ųą1îSZžðũ˜$Ũghe˜nådã8§[ĮžØÃŨŸ}™I·‰ŊS§9ŠÏgOÆ{ė#\ýö&þnFÎŲņ Ļ`WïEQ&hïí€�c2”}ÂteōŌ#Ë_ŦPąšZ@­Šõf^Öz8ģwŅlšcī|“RŠÚ‡Āk˜vĀāÎ xÆÃŅĨ9ĩuM–zãēüx‹6ĐPģš9Íč%ãéž™ČEÝüz#�§fģ|ĶŅŨ8>æVĢÍčÖaF‰.{ā†ŋÂķęNīîŒ^} P7EUšęM^ë,}3ģ,Ē8yđaūĐ56ōïŲZœhÅ5íūĮb0L”71YžJ€EįąavíŊg&ÄŲw<ԇNŊ@ÆC?ĐtųÄūþ&ŽdzhôÓėA ~ƛ ~π Óģ>ÆDÆA’Pĸ’ĒũóŲū‰z ‚HŸŋč-°â/‡|díŒcpt1Ŋĸpï2œndßÂ^žš}„#+˜sgi—%ŧÂte„)w‘áĀëLïMí‹íF“åÓ_d`t‚ŌĀŅwÍ·ˆ<”RhgĻ⏠óĢÆÁôĄÄ‹A2#‚ŧéþˆ― $c˛ŧŽu Ŧt#JŨČXûË,œ|ˆæŌÉ|žáōOųų"”^á �€Uķūd\óEų?UGžŠō›§ē`þÕœ!›‰ÛFņ Xr—Ļ9UJš|ÎÔėü Ōð/EāϏSNhß\ĀĢÏaÜŲ]Ōe·UX>ÚÏ]ŸãhĩZžøĘ lŧcW& ‡†0†ĢõÃ\3|CBŊf�Ô/ӋƒSQíÚRAg*BĢ Øį/ĐlWõx?ßøīƒÖęŨ‘ŽrÂ`ƒ ĶũHÝt“cš­€xĪŪé2ēޑšŦiô%ĢđÏK7Åßëņ1=Ŋå` Ų’vÐĶ4ŧ< .FĶßëščØ'f[§9Z?Ėtómŋ]c{OEųLi˜ŋØt;ß8ŧmíÅĖ ļĪ__6žōðĮļþÝK mųn”.'ãŊTĖp‰ÁŪ܎Ō5üúCAŠŌÏVÉÞ{ôDÏS=Kk>Іė·.�pæéywęÎQ”R_/"U•öKÍo –båxmkŠ%”VļÆ G<*ûĒ#öõ\ÏérCü#“LÜV—4ÛïÞĀM|ŪĖÆ…8gÉtĮšŽ�6ýG�#Ðôę8c›kÛģ“mÓbse+ZéÔŽtĩŠôoĩs•ũœčdbį6ā'MŋĮ.yé†ŋôߝãčøå+Ĩh-N·ĶŧlÐ1Œ—71âŒ/ÉŌóîuFâņ―&Éî2ÉyËkôÃąŋ&œÅRˉnęZIgûéL?đ_ŌÓé°%‘ 1“Ą§ģýīwŋBB>ƒg<ęþ2+þ2+ÞŪi…�î"fũYGÅð{óŒK3hpĶu’—Ÿįđđ'xui‹Þ<"­­ÞĮĪZ„ĶUâ`m’MÞ #AëļW*Tœ=úĩ%*CoCéZ'ÝPą{ Aۓhg+Æ?ŽH;)ųgĐĸ>ŲŋHö~… ƒÖŲđ%ú3�K,L?DséTÁ�žU@X XxięÎŅŧ›Ã=o•šūĨX9ŅĀo”†ėēš”$Ã[ŽšäâSþéũH•ū rŲVļbŠĸ\7Â<­~^į-eĸšØõ*M }Zó^Ķ+=ÏxŪëzl™ÚBÅŠeŌbiØxySG;Îų€Ū,Qu@ĀđēO k‘ēīC[š —éU�NŪ �Œ„%€!gĻK*gĒ€œĄø1Ú|NĢßEņĮ�ŒŒ"5ý0ôƒĻË?H2ātÐÏŌïķ!ąŧd(ëXĢŊ€€PŲã—†ŋBÃŊģâ/â79fĨôÅ úŅð(ƒĄéŨYr8ŲŊ7Ģ�� �IDAT<ÎÁå—y~þi-ïgÉ]ĀHh ĨŨs<ðĩ́)ƒ6ã^ŧŲc/âØ‡ĻÞ‚v&CîQˆ@@ČhkíėÄøģ`–; �úHür?SŲū€PĐAũïb ]Ã*݀Ō™›?�_*�Ā[𐚉~A)õ^ŲĘĄ[YŠ…Ũę4g]ÆŪdp{FĀ•6eŠXXaĢUšķ{Ąïût1.7Šôr_įģ &šî\v·‘óĶĒaÝé‰kųúûāXú™A3č;%PĢ9={’ý§öqŨÎ{°”•įk8ëÎēŲßNÍHųÅŊmÔ˜H   _‘(čÉųąéï$ĶÔÃ!HM7mEĸ­•ÆV>nßÛEĐ0Û6b"z_ÖĨŅëčŲ.xY‡F_r}É1Ý}Rc‰cĮĀūý”jÆ xA;”ė™6^āá‰Û‡Ŧ4Ŧ…5ßĀˆÏ’·Ā‚;ÏĒ;Į\{†ywކŋ‚Bc) [9įvï)…ƒ(Å&ndŅŠðöÅĢT% ȁ�4yþKīgŲvËOPšŒÓčÚƒÖc8ƒïÃo|•Ā=‚į.y_/įĀļiÖä܄{�‡UĨēņ―ĢXW.�ØũéŨŸŧåýŧ øøšý*lÉv=Î<ģĀŌ‘Û*ÔĶ*ļĢ>Ց2øhËÂQN8íLčMk{ĨSÛLß8ú ĸzURÐčîę]ߊëĖĪhÛ| ÖV‰‘mƒĖ―ķØßG)”ŦyųÕ}ėŲÅÖáí™Į5ý:§Z'ļzpO'xrî Z ēÚýhcUįӇ’fēšóxŽYDģiKY”Ž2Í Éj:˜VÐĪmÚXĘęôŒFß$:ĸð3]ā.fTōýī,nøK‚{*XĶŧû%ŌčKjÂ`ZŪŨOĢŊP„ķŧĶo||ã…NŸ‘LpÝN|įô-eaiĢæÝYÎķf˜sgYtįYōhÍ(–œōŧïĒøÎÓŨ°RŪōޅŨn·ņR� ŠŽqōĩp[?ÃÎÛ?DmüÁ‘ Š3™RëėÚý *˜öK)ÍôėŌĄøUÏÄŠÍč €ËVô\ŽK �Ēė7”Rw‰ČũŪÉ(Vx6gÚīæ]ÕąJŦĪq†œše[؎…UR([Ģ,P–>o Áå™éŋ1=5įAûG IëÉzL`Ð%øýßO[šöēËĢŋ·ūí;p,'C•ÏķN3QšbĪ4–ét_Ë °/ûą&)9éÔk†MMÖ:Ī“ëđ9*?ũīŌT­ ĖŊ6Vü%ÚĶEÕŠõÕčĮ4qėӟg5~x.ÖÖčĮŠïõkôã7õ‡kÚī#ū°\âg­i.’\5ômÛÆhÑúĖ―ĖÂĄšÍMÓ ܐ!Rę pPeÚßÁßĐgŧÝĶmŦ†„”<{âužÖėūk™ÁMðÔ§l§ К†Sŧ_Õð›Otf $ÞtõĪ›ĸ2ô:ĀĮėNŸÄĐ��čÅȍĸxŨĩĢĶ€oîkØ ÁŦûxõˆfžiwš[âA@ĐĸÖ%…ķtŅ…z9/ŧfá Ūmútōå3|uÓđwÛßĘüÜ ZœlĢbUBĘ\;))™Ž›‚Ėģq• ÓÉ ÕŠnqi°Æ [!`°”MÅŠ­jÛŠPÔý:mŋIÅŠöÔčw<ýé?R7wŪŌėÄZýŒiÝ#uó€2îhú0ð­KĒÏŨh,Ë˰å%^8ļ—ŸĄŅhâmŒkP{)âŲ 0]™ā_=ÃuÃūtƒ€ĨģsxôŪyĮ"ÛĸIĮ-–J€Rvõí(kŊþŋ“k; þ’özˆg1Ī|/Ų`þđ―@Bą �_Ŋ|öhãm?xíwyuĸO€Ŋ_ïÕ’Ų ÄH“ÏhrÃÖĄb]Æņ_Ŋ veõÞR%Šĸf?[ŋm;ŧ†Ū%męóúĘkŒ–&˜(Oâ;r‘ĩ1ðģąsÞj DEÚøžÕo@#J]+•ųýšü,Rå ;q,ėSʈø’ŋHÕČžWŽ>čôÉfqÝAŸLóbįnëČõ:Ĩé0]ũŽÍ A+hŅ6­ŪũzÃŋԈÕũóÄkpėąS4N·ÂÏ iįÎKkh#Ā‘F‰ßŠoæûošášŅ69"Ð\ņØĸ•_åúwÍ2žýGPؙi‚1h°Ë7Ēô ÞōŸ…ó"Tæë ð"’ýqbķīš€tA―b]YË:ß8ýäž;qëČĸЖÞ-"·§(Ý5øąkýŊX—ĸR*tĀ*[(­ÖüÎ_?ö:7ÞpķrRnvBÃŊ3YžÂÖv8#B[‰ž-næZíOpӁ6nfėw}uÆþšĖsŌ}a î6(ę˜z‘ĐmÓfŅïŦˆß3ĢĨņhãNÉõŌ#tãĄ@IŸ$ „‰S_TCŽmrӕ{Q&ļ•“ë‰Ī4ú†ôП�C3hēä-ēāÎÓ Z᠝œ>ĸbKũÄ'V^į‹Įĸ'þgÎ̟{ŠŲWqWžŪ3z9d°aüęūÅSgļj°ÍdÕOĖ(&€™Ģ{ĐՎRđ­KÄ2Åt߉ķFŅĨk1îADÜhÐPVÖĸQ Čþ>ÛÁŦ�nŠT�) ·Čüôi.Ÿ)T��ČŪŲį―MwŒ|^)UŠúœ(øüŅ[ ð VYĢÕ}”Rˆ+mâú7`c'Csęþ %ËaÔKēTu.Ģ}ûyųũÉĀ;ßtƒ‡ÔcŒĪ7VĩîŒW+͊ŋD+hö}œR O\ †{0)äģï8ČũÓčįÝōš4úŌKĢßņ›Ļ CË4Yö—YrįiĪ|pąõųïLhMíŽÏåË'ĸšŋ~ø/yöÉį˜yyÆņ6v)—w ÐJðEóČé6W<ķxØšb6�`öØAJö^ŠĢũ ­‘DķŲ‘ Z KŨ!Þ ÄŽ„A\ujĸIÝŋ_͟al JDcŠH7ÞóÓ� ��―ŨĖÞÅ`fïÂĸžšsôĪRjˆl*@Ā[O°*ZŦU•Rīį<æ*§Ø=y-VæÜYFKã Øƒ)ã˜óĪĸNƒ|y9Œ%]bŲ[fŲ_Z,( NY—ĻØĩD hbKÝ>ýD%šÚÛ[™U4ú ă/Ūļ4ü:Í Áēŋ}?1#ðgĨzhaÉ_`fų ĮOįņĢ_æÁ―ÃóOūĀ‘”–kÚs^GŪúæļKÂ�Žâ‰™ĘZØ1čRąIf"ÄL� æOžDžGЍ݄]ښ=W1`Ðti7˜0 I_@bŒÕÏ1PŌe�: @ųĶn# ��`}@`áŲĐ;G‰þs‡Rj(ūhu•ŠõæƗĪ)p=3VN5‘AŸ-ãÛĒĮ‡`Þ=ËDyeŦŌō™âz@@? °ÚgIÂcníE{§ð$3E-î? 7í%o!~īÚûÖýĘšŒc• Ÿ2J—Œ„.€:ß$Æ<É4�Éëļ;}žxīƒ AÝ_ĄyîĮ™þÅ úĐ}!œūh)Îú3;ĖÁÃxæČ<ąïQ^xöN,ĄËķ°ėðxšgÛmó&,† ĀRŠįŠ4|‹ƒ.Ã%!čVææņęQÞFĐz5ņ„!‰ę ƒŌU”ģĪgÂk!=xŠWöŸ1 J•�Ę7 @�Î œššsė)Ĩž‘`‹Rj,þÝõļr—ņ ÚVXekÕ@Îđ™yj#6NAd+ėšŋÂĶƿă?Ά7Š!Oŧ æį<Žæ/Ð+ļĮnŧ’@ÔË8ýĮˆPĩj,y 4ƒÆę,@ôüF°‚BQŠęĀé?‰Þ? ó頟Nō"w―øŧ‰ôų þÏŊÓ šīM+)-\Ė þøļËV…“õc|åđ/óüþ―<ā9ūz€…SËÐP8ķƒķuHņ‡ŪRxuwŅ{ũ… @+Åë+eN7ķ ī™ĻDĐū�€Æō2…'Ļ Qļ°"ģ (1(]F;ÛQØï8`ÂļŪ2Ū ĐŽ_åT)ų�d{�Īđ<S�€�Ž ČĖޅÛî}áŊ”RGĸĀIĮĸÜЛ‚%ļX�€ m°ŦÚ^} ĪBáû>3ógctp4™-Ð6-ÚA‹ÍÕmĪ}äÃākm|Ō_ÎYtâã·6čöúÏĘîÔ*€ ķtŪZUæÜŲUm6E Í o<JV%j”4Hj@įœÄ{{gRd4ĩ�#­ ŅúË4ƒmÓJīúņ4ŋ–éGAGĒfÅēUaž<Áæęv^™‘Ï}áO8räËó+H īķ°Ž0č§ý”Vø­€öžw4ĨŦĻiOqĶépdđĖķ—M• )ÕĪA@ŧŅdyöIjC†ōā!Ã$Ķ T 8({+ĘÁļ‡Âþ™~vÁ’gô�v�Ä Āó' �P�€ Å`æđř™― /nšcôŊ”VĸYiõŋꄈ,Ds€r<\ψĸW‚–ÁŪYhKKŽ{·Č^Ëįä ķlÞĘ@e Đk7‚:žxLV6GÎ*É -me@äF€@ū ū Ð t>‡äþôb*V•w>#Ÿ[=x ŪļÔýe“ØÔĶiý,(!™/ŨōÝyšĶRûÆOyîŦ7 ÓËŽķ™ĻlbGmSÕ­Œ—&9°žOþwX™ŦĢ•Fëū DÂō’Q­9/ÔõàꀀŨæĨđ SUMU“ xm…é§ĐĖPđ/ąšV*ílĐQÖ$Ú؁xņčīc‘ŌýįŲƒŌĩ �ˆ› ;*€Ų�\IûôĨxÓ[āj%žhI[þĸJžĀ,Ĩj[Ęߊīúok}ŋ"‚Ļnwøŧũþ=ʃąēļvčFŪžßø]̀ą_Āđ KJ‚:æŋ’~ŒV‚ðÔŲŊŪÛÜ(?é°ĪĘTė Ž.‡åH:ņyxÆĢešýëBýøÜ:Ęaē2Ű3FÕŠ&ąĩÍþåų•?ųyšgÚ}IEŊ'J)ÚãŠŸŽŸl}<pƒUĨĶoū%QX,›ĸpĸáŌÍ#îWðÍĒ2s„:Iŧ†kï|›Ūû5P•”+ ę˜‰óxKĸˇė”äŒTŠÉƒē')}ڞĒcŽh7ŽrøÉ07ý2ÚĘvóūũS+vš�ŦX=Ũŧ>zsø9ų1Õá#û^{Æ7Tw;|ûŧū“ŠSM‚ŠĢKÜ8rS•- õÎzėĻOā|<þÓ9f2Ū‚`ŽrŽt8ëÎppé•s ČēNWĖ‹čcÏųøĐØðČaŽ<Áxy’ŠŪdXŠØĩïõÆ!~ņÏ>ĘĘ‰ÆŠ< þásĸ@ký|ôŕ·Â}óðïņ_”á‹BĮ'1îë‹ ŸŦnŲ֛mo†äžgQē5M°„·ü9ïDøI}!z‘ˆ  PöĶ�č�\ĄK§ X{=öą}-cĖŋþ"ÚÔóĢĖēĨ­iöøÓĮþ;KíĨ„vM›Kû˜wÏf‚[,Ųó7CmŸ"îü‰†įf(}u0s\۟,MąĨš}C=ý—ÂD+6’ˆBÖJãh‡Š=Ā–Ęvnđ•ÛĮïfŨĀՔu9cJ;ũZ~•_ýüÏ­üĢÏĐĒsó˜1æÃo•āðÞïå{üÐL5ôĮ@ œ&øŌŽ<ýüÖK$?ŽUŋĩÁúŽŌõ(IJõ�$’Ā,Ā+üĸŪėe§ XoÄ:ņåŲúÎŊz^DÞ­”Úƒ€~ue)Üđ€ÃóŲ<đ…Áę Š,y‹ 9ÃT­ZJÝŅîįģßsû›R ôĒęχˆAĀXiœVÐĒÔ/zÆ~>A?͎XĘĒbW°jL–§ØZÛÎÎÚnFĘc8ÚÁ7^fTrüĩæÕđ}üæ_þ{fŽÍŪ RRnLJEä_<ņo_yþ­vß|ōOyð߯iāÝJ1fvÚĻÏ/Ó^~˜ŅØ•] Žh’`8ĸ:TT°œÝˆī1ÁˆÍœŌW‰{�nFéZ2K4iœþZËg‹€�ŦX_Įš™Ųqĸ̓ĀýĀčšÃĢīÂ[86{„ĄƆĮąÄĒ4XōĻŲ :ÙnúīmėˆĶ•>/—öbzĸõ4Œ–ÆðÅĢáŊD;ûåԊ [9 8ƒ ;#L”7ąĨšÍÕí —F)E™ūŸ@‚ (Kĸ—Î<Įïüõo1}|:ÔýŊþ9cęøá'þí+õV―o>ų§<óþoįeāíJ1AjL_| ›K š OPĪ4°°™ Ņ=Ęw…ß‹? IŊ@ļB`�H�›� �P�€bëܙ€‡fïüÚĐÃJĐo*ë™á5|N™FWc“Ø”h›& î<e]bī4ÞeOgØÉ<õ ņY ä=ōā`Ý  rąrFÐĘĒîŊŽjôFý@JV‰a{„ÉĘfĶŠ[˜ŽL1QÞİ3‚ĢK‰ę!0~bH”g1âāĸÔÉGøôĸü]ĶO d•XíãĨŪ øg?ðō{Ŧß7ŸúS^ý§ßÎÓ ÞlÕ˜Čë-ęsOSðĐ ÝĘÎļ†ĸķ°œ(=ˆņŽ„ƒ„"cĄÐ( �T†x°���(VąÎ› ØŋýþÉW°–]īŠDÎūësæäĨ%ķLlÅĄ„o\Üy”RŒ•'2ų@ÓØäAŋNþu‚čÓkĨī‡ĐXUVü%|ņŧ>ÃE ø)á@,m3Zc{m'›ŦÛ/O2RĢfŨ°sY{`ÂaBą9QšŌ—hhRÉ*ó—G?Įgĸü3ĖÎÏRēKkĩKŠîĸ}?ðōg‹;&Įßĸ<ÜŪ„ÝŌqNþáķ<–gž§\™Ķ2ún”*%l˜RûCŲ[Ðö6Œw1ÍČŋB z U 1*�Ā•ĩŠ&Āb]’õø/ĸ1ðOĒ`Ąd•.8Ĩ@kïžúÔ!þęŲÏӔ&ZYļĶÍkËû9ļüJ^sÚüÎ?ƒ‘�ßx$øŊÆ ô*tžûzüQ&ąó)qÓČ팕Ƨŋ‹•é'ぁąŌ{†oâÖŅ;Ø=ļ‡ņō&ėAJV9aSŌß „âōKl)Ĩ(;>ņę/ōōû,Ŋ,ãØÎÚxâŽĸïWJýAq§dŨ{ŋ—ƒA‰oşĐΠÆä>Q ÚMŸƒO}ž3û‘%Td˜ÞąP°Jŧ)|7ʞBÄĢclđ^ÝĒðŠ[… °X—tÝóá›ūSÛęŋE›þšƒĢâ€XsøúŊ}[ŠÛ0bÐJģm`ŨހÕĮ!0­ĨlíœwĢā†ģí5Â_úxVüeŽÕPũ—7l}žÚđ ÍxeĢĨqFœą„„YmžąCō`čÅPÄĮ@|äKâø3'ŨunsrŋTJýįGĸÍK^q‡ô_šß~ žû“‘F€`ûĩ;Ųyį�―3c”–ËŠYÆ]þĶý*ĘŲFiøï§|�Ðļ#zâg˜?y ^AŦ(ë’ŪÏîÛ~ĸä~āï§ĀŠ%Ĩ~3āĀŦ`ŦÏÖęvP°čÎģäÎ3RĨd•ŧX:S ģÚxĀNč(˜ToSų“{ŊēUaSe ĢĨ1ãŅJ9n„čLŲģ/Mēsājv]Įhi‚JdÎĢTũĪÅô{„ˉéy.cš?6ó9Õ>ÁGþŋÅéWgÖ#G”ØL)å+Ĩ~RD~ãąí ŠŧcõõĐÏņø6\ũАv €ĐSū4·D{é oūËÞõ �ĨŦXĨ=ģ�ē‚UūĩĮ0 æO|‘ÖĘ\Q(€bëÂŪwþėMßüGĨTu#l€ [ïœäþ=›ZđŠT­7ŽÞÆĻ3ū.@š?@++8ß(v`=āĄī˜sgYrh›vXPŽR;ÚŨĢķ­0 ÛX •FvFvFą”…Iœßz›&ÅįÃ7^Ũđčuîb€áŠË#§ūČgĸâ34›hmąÞÓ&"MĨÔ/>öą}ĸķļ6Č|ŠïQð Q EMý’gÆ7ąûîŸĒ4t? |ĸqM@)…˜&~ëYtiڞ =ļ`� �PŽb]lð~āW”RIjļvúˆ „MUîšûvO^KI…ŲĸՃŨģĨšš5úŽ@8ž6^i?ĸKŌïĐŅ(ĨņŒ‹kÚļA+ī*CečMÉ*SÖeĘV5,kýÄũ=’ō­øÓĮĨ•ÅôĘ1þ|ßņŧū€―RFÛz=Ÿ+þ~—DäWāå"øŸãúĘ'ų4ĸA„ŦBƒŽ…pŒG6 sÕÛ>Hmâï T™Ė@+Q… xká�æÐ)�@�ŠUŽ‹ þRęWë ķ" Ãĩ{ŪåÆknbËÐ6L`/OēkāÆË“ŅTžõ9vƒH­.}ßlįždŌŧrøĸŌEé§?·‘ Īz˜(­v ķvð•Į—Nü%_zėAöíßGÕĐŪŨĢ?nø; |äņ^þ­âę?Oðiîøuwԃ CãevÝöÝ oų”ہHė,„d۟”Ý�ný‡žüæO,�ĀīŠ€b]VëÄCģ/mĸšÉį{•RãŽ17 VĄižböÔYNϝĒn–Ųö<ãQĩjTėJW`ėýšé·IMĩ‹ípM†x#؁ÞØëxân~eøņßIöŋ áļÉo 4Č+õøÃ‡>Ë_<ûĮĖž~–JđēNĀeþÂqþøŊRŋ °>ų9Ž~āÛųŠ7W§/•xdpŧP?ŧ—Ré ÕŅŧ@ÕRŲ>ĪiĸÎõĪð―ųĻ`ūč(€bëĒ3·(Ĩþpo0Öu―†™ŽA•abt‚ŦÞđƒŧ'ޅøaoĀŽÝl­n_UŋŋV�Č�•Œ&ū  ßûøÆÏqŌ%“ÜČë—u…ĶŠó‡û~gŸy–ãÓĮąąŨ•õ§ŋGyL)õ#}lߓÅÕ~aŨ—‡­ÚæãĀwæŌųų1P*ÎÞÎæ›þ ĻíˆīR”ŋĪþÖŪæÐfáÔĄ‚(�@ąŠuņŨ=?}ãļēÕ/+ĨþY.=Y_°°kĢcĢžíÞ[đķz#ÆÃÎ(WíaĖ_WoĀz�AŋįÛÚYŨëŽÕd·žgũŦ–ýäý ‡øX–̓gĸ‚ÏĸÍį9uōūŽ[ž˜ëįø}ųĐĮxųhq•_œõČĄb ŋ ‡bÕfj "`Y0uÕU\uŨσ}kdD6øGS �P�€bëR0%ĨÔŠČĸŧžQÂäē]ĒFgíhĶöLrÏ-ïdŌŲ"LU·ē{h5][WY`#ėĀF‚íZ ADð·Þ@{ÎÁūøÐJsĪuß{ä·9øÜá\māõƒā—•R?ũØĮö­WũÅ]ĸ.JYü0ÂĮĢŽĀĖ―#JÃäÖM\ýŽ +ïEL;”&í•Ãzē���(Vą.ÁzŨGoþ&ų`{*ļmˆĘvÞđ•w^uU§FI—ØVÛŎÝTt垃æ…į“ĩŸoĀÁS`|æÛs|fßoóăOã(­7Ô™ü§Ÿ~ü—?Y\Ío0ø4ßĨ„Ï8ÉŨ›R(`tj”kÞþĢ8Cß@š‰TI�P�€bëŌ‚€ëEä7€ŊėsĨío ,ė~ûvîžz7NÕaØa[m›+ÛĻZĄï}ŊĀxĨ­â'â‡5‚a%Xbvņ ĸãõÏōÄŸÂlÛ^ũnÛ:GÆN>ðŽųŋŸøđWž)ŪâKģūō)ūYŸTÂz€�ŽēûŽR™øÖP&˜ô�*ÚõCpļ���(Vą.ÍzįÏÞ4 ”úiā{€QŽYÓ/ Û0uë7MÜÆČČ0“CSėŽífē4EÕ jŨ2 ƒW HøXĘÆĨÍĐú ŽÍå‹Óĸ“į}íŲØŽ―Ņžäŧ‘SJĐĸð=°ŊQ\―—v}õũø>!ÂmQ•ŋK&8<ŪØuÛûÜōQj(qlŨsčɟfáԑ�� XÅšälĀ7ŠČß’ę Øð5Á耡mėššŠ‰‰ 6MNrÝðMl*maĀĪfRķĘáF‰yS‚īãĄ­,[sŠ5Í+s/rüČ ž:ų‡Æj9Ø%›c*‰ē~�yøøãžü§ÅÕz1ŸæN„ĸÅßJBxęž |†7cW}?JOAČ�<ņaN� ��Å*Öe°îųȍSZëï‘TJ]ģ^ á~ÁQŒƒ3Ž ‡åėdŨæŦđaø†õ(#ö(Îv4k=oŦ{đfúĢ,ÛæŽ{†― Orø•#;{”Wįöąr灭l,ËÚðįˆ(9 žTŠßõŧ}lßtq•^–LĀÕÆð‹Āwå™��@đÛŪ7›oü—(ëFÚ+/� ��Å*Öå·Þųģ7Ý|?ðÁ”Í­œëõ-ĶcŽã ŲÔ*U†Š#Œ\5ČUÛŊâšÁ›ØRÞΐaČĄb•ˆ\rv –í)Ĩą”…Ģ°ādë8OÍ•}/ŋÄ܉EÎīOē8·X: úę<ßWĐß‘ŊŦ<ýčO―lŠ+óō]}’1KņSĒøWŠcØQ°Øī{ŧnĸq<oŠŨûP� �PŽb]~ëÝÜR#ũ‰‘_TJ―ýá%š—��ÏIDATBáXFõēĢKÛķqt‰‘íCŒîäęá=\7t#›Ë[ēGrF))A’A=ŧ øčЌČRœnNs`yOÎ|•Ģ{§i,4hš­V ņÉLï;Į€ŸdýĀų1ā ?ðrŦļß$L§ĐáýJņ›]ðyŊ�mÁø–­lŧņ›yý…‡X8õZ� �PŽb]žëŪŲãØ#Ö?RJýŠRjSŽÔyFޞúzR­5ĩÉ CŧŠLŒOēgč&ŪžžŅŌ8ƒö0ÎUØ‘%%ģÚHOĸ+ĖØCũŽ;ÃņúëXÞĮū“ÏsüÅSļË^TĒ0FŌÁįë ĐąÍË"ōŊýzðÛĨĮ<úģ/IqūđÖßÂÅßÕ á˜Ā. Ą\ӈ/īZ’ðX�€�ŦX—ÛšõŸ_ã l.D)õ/Ed�°T€9o@ÐЙ‚3lSēĐL–š`[u'[ŠÛ˜ŽlfÐĶj Pą*”u9ĒáCÚÞRmÓ"0–―%\ÓfÞ=Ë|û,§šĮ9žøs‡—hL7CƒĻĢ_+}^™}O"$ŌōGįÏ(ĨĀj/ļ?óėĮ6‹ŦíŠ�ß Ÿ&ĢZ@F&؏]WG� �PŽb]ž+%ünŲ ”Uũ䓋ēbĮžPbö˜x4oR Åôŧ9Ubđy­tčŋŊ.ŠIPÚČĮNŸ‹œüfŠŦëĘZ|ŠŊ1ŠßáÆČxíûĢ���(Vą.ũõŪÞ< |ĸŋ―ŧ Ŧ Ã8þ<wfšÐPŦ-]”*~’ ~ īĢ›ĒXŠ(Š.ōļÜJLē‘"ĻŧĒJ݈RDEÔŠ1M­âBmâĶTkīųšûļč ™īŋŠ&™ĸouwįžÏyÏ=įHû’ôHÚ|)>\oZ[ü Óķ§$―›äāņĄÉŊĨõklT·JzNŌíŲĸē%��Xģzw]QÖsĪŧ$õŲÞŲ,ví.8ĀG’ūģ=žä-ÛG&OþĀŋ§MBĀ!]šHzĀþƒ@� ��k°#Ð)iw’;lߝäķFhŦŪ@Køi>jûMIG“Œšäŋ6ôþ°ķV*z2Ōã+m$��€uzŪ”|―Î/<$iûŋõÁāj™íki Ÿ$KōēĪ#’&‹jqúXĸ—uþímâ°6..čŅHÏ7nūļ@� ��ëĪ+°QÖeŠnIrŋí%mn™)ĮKĶŊå‚/IÓI^KĐW$(*þ•+zqĄFT‹uŸĒ—· .ï��Ā: –U™Ÿ^ŽT;+―Ūč^Ûû“\ÛēD°Šïh}ii—@’3I^·ýŠĪcQfģ ú‰§§ØŋßõöˆÜ)Ýië°ĪmËū ��€ķŧķ§Ė~Û{“ôIÚ*Đ"а]$)š'ė­þáDˏj―xí^ķKIĨĪēņ[į}åh”7>š:Å[ÄßŊŒ†e]Ũļ~+’f �� íėéïŲ!ĐŨöÍInī}M”MŠ6ØŪIڐĪ&ĐÖú…}ˌ|ÅįÖ"ßZā[ þ‚íyI IæÏ3INŲþ\Ōg‹ģõņO|õ o —ŌĢšÉŅ‹–v7)���IÚ3ÐģMĨŪēݝd‡ínIÝIķHęīݑĪŠIŠóuÝĩFÛūޜÅÛŪ7ŠýœĪyIģI~ķ}6ÉYÛgĘēüķ(ŠÓƒ'ŋgôņ_ÖÎēǃ’öą@��ð'õÜÐU–å&I]ķ;ËēŽIrQ]IĘ$s’ęķmϕe9S­Vę‹FŦÅØ!]žšžąõpß#ę`D��hïž Žą=ņ^ŋ FcmâÅ�þē―iŪúĢžýi‹ØE��������������������������������������������������������������þ_ŋ [—įšA”����IENDŪB`‚���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/qhimdtransfer_64.png��������������������������������������0000664�0000000�0000000�00000014220�12262477515�0024422�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���@���@���ŠiqÞ���gAMA��ą üa���bKGD���c�%øÖA��� pHYs��Ä��Ä•+���tIMEŲ üh!���tEXtComment�Created with GIMPW��čIDATxÚí›y˜\Wyæßđ·n­―T/jukiYķ%kó"lyÃocc2ďąIf°Ā�É6!ā°ā!ĀÖ$0˜  d`Øž!ŒWĀ–!kA–PwKÝę}ĐŪí.į|óG•Z’-Ûēp€a8ũđU·ŦęÞsÎ{ūó~kÃïÚïÚïÚĸëíŊÞOæŊÞÏšđŨü6� Âcä{ýĄÔEĸ_āy)[l_ÞßŋlÓWßö·\KrÜũþ6�páĨŪ}ųēMzŅyojĐTF/_ģfĻ\q<<:€>Û―þo ˆÁÚ?pŽ_eg6[üúūū^ÞýýŊā~û9 ųZŪĪTÛĄŦW_˜=ïœÞūö4nyÃ_·Ž―Ą•ŠžĶNõ7xķ""VŒ<ļã–Á �#Æ1“"Šįerîa]ēôtïŠËßöĘ;~øwËÞr/ĸÔ˜~ZðÖ―vEV­ÞėpoIeS6•öUxš-ĪpBéS.xúOžūEĄÅFNŽå=ĸqųĀIqöšÓ.ųþđį^ĮāÁ;ÏSŦÅÖÓÄs‹ô;·―cÛü|ōōOü-{žĀÚûE^—oÏýÅ/―ˆU+W+Ņæô„AŸ4ė'ĸVŸÃīīy< rĻMĻÜŪÞLwFdqũ*Z ‹YÜģA;ŧ;ŋ[�œÆXҚï§ŽáÖÞžgzję•ĸ^~z�k^―<åĨž/Ŋ;kíõ/}ŲÕzpnDŠIYčT~%’ýl`i!CdGö°zÉđŽ_{ ų|‘j}‚0ž%N*ĖWĐÖGqXÔÅ8I\Ļųt-éurĸƒ_Ø?:úÄ>ü.n[ā�§JÚũ[:Ú:ˆãXb˜ā7jÓÛę þÐVį—sÖUÁ2ÏÔėN—pjQĩ8ĢXŒņPįPÔZŠĩaŸ~ˆķÂv=gãĩËßþƒŊžãƒýņĖŽýŨú‰ŠxžGĘĪH{ĖĄUA~Eðt&^<?Afp'įŪļ‚%ýg09ŧ•$Đ�Šįeã4Ą!ö j‘æ1[y‚rõ�"SsÛÅššnØðēĒïĸlĖ–Žŋž9þGĸĻ]&‚ˆ4Å^°.Ör2/qĢ}þöƒó#9‚c "õHíų)/\ó Úu3:õžĪ0&ĀiüīĖ)bĻÕ'ĐÖbLcŠĒ†z8 &!—+úFžS”ļņ­Kd#""" ĢĩRKn…t€ņĖÂ(Uš—GúĻÝžðrˆLADņŒ€‚uŽ åáÔĮc°Ö‘Z·åÝ?1/?íiéhcbfžÉāp U‡ŠĒŌxļ.ôÕÐ|u ßāČfšīŋįÜ·ËîÞóĢũOÏÖĸîÓ ņÝāԑhDä"Œ †Š­ŌGA^‘9‡D— Ļxˆ4Ĩ^MŅÚCÕ!(ęÜåjÁáiŒ(KļãŪ=,ęČņ‚ĩ―뙿Ëß}ŒTáüu―œuŠ5ašŸū%뙚#)œ&ĩ(ŠsÖE8Mp.A5FĩaôÕĒ)ĒĪÜÔJJ:ÕŪ§ô―Röėy8|bïÝï~boüņŊ–Ā?4|§–ØÆÄ.Z�ĢY ĪMē4NŒiL1€9BWˆ.ȓ:‡sŒĒŠÏ@oķ@Đ\Ģ@†ģWô1_ŪÓáeö.^°útķn@ĘVK[ä’Ŧoftæ'Õ Ną8@h-ŽĪ5ŋ\ŊMŠõyÕđĘ&įķJđ6„s ~A7Žüytë·+{ņã·čŊųÔ1,AÅ:KäBb0M 9%)I‰ß@\xâ16YÂ9EŒXĮŌžvT„8ąĖ–Š„QLY–öīáûį,"āTÉËzÛPmiXž'/ÂĐį(”ë.*ōō [ą6”Íû ĪC47ÛØóŪs{Ë)īåVģ{Ïf~°ûóēwdß\GĶzĮÉ+.ūþœMŨQ;H=œDՒNučÆÕ7É=ũĸSe`ðņ?ųč{øÜӚÂGĒ ‰‹‘&�žņÔā‹&ĄâybŒaïāŧö!^vŲéLÎĖӒÏ0<:ˏėepdšÎö</ŧ|‹: NPEmėUMP— 6nœjß5wŊïųŒĖŌŨ{&óÕ}(įb<šÚÏbfjŠ/}ãÕėŠ<Fk­Ėī˛Ξ}‹Šŧ>IĘĖ–Ÿ JĘZČ.‘ÓWþđÜyŨGK†ņš―—o<­/  V-‘ ‰\ļ�€o1ËĢĄŠĐ”:ÏÕįõōØÏ'™?H‡x=팏NrÆ)ít·yė-á%%l5ln‡†ŪÆŲ&YɄЎÃþđaŪ6I{ïđTÃqœK0FČg—1>:Äwûũ( YžīŠ îßßqę•ÝąNÏï”j}DŧÚΔ“zþ€[ïüĀøčØðþØûØüŽÎs–Č5H°€’ö2ĞčļoIÔ .ĄouDÎ8·Hb-ÆĪ(ŧ2ËŨdQ ëĪ6Î2í„Q1W?Zóų‡.žÞęó0튃<Q2†j‚grdųéā·ĻõŸŋo�%ZX(4!I*8ąĻxŽt·\Ę]ũ~úįcãÃŊúØûxč8žAÅaI4&q F ŠROjŒø*ßĖD*ĮRÞĐgxræDÃ;>ĩLĨķŠņälL†ņđ ―.߂šDp‘ \ÝYڏxēĻøĒJ†‡þڏ‡îĸŊŸļ™mĮiĖË:GäB"[ĮHŲØ†ę')™>ėþŧ›…*&e™* oQ‘Z4AJZœÞNXėÆ$uÅZŸxāŒ*SfĶføŲã·ß1ļð­ĸðAvOG‘`d#B.h@ęÔų•zE"h>ĮĀÔÏ8eÅk™(ï (…sÔÛ<‚z@R·ÄՐėž&—˜]”æGŋ―wßā[?ûa†Ž·;ĸÐŌ:ĩ$.ÁZûœÜ؏æü€ÝõŪðŠÔ―,5QL%N*MĄĻÖÆCÁņÅ· ÜWú�ËTgŋ953ûúÏ~˜ĐįŌŨa PGbcläæåŊąĐ8ĶÚ{x`Ï7Ų°ōrFgwÐÞš7ĸšÉˆKô1üqcû2l„>þ>æŸk_‡IP-6ąļHQqŋ~/Øäđgęq–.ÞDėe)ä øcUžĒ!ŋ(KeĶķJ­ūtíýũ}øƒ#ðÜ'ĸÔ Ļ(âņĪyy}ŽŋđSĖaJĖ“žm”ZŪČŋîþ*‰īPõ,=ųĒJ™þóúīg]įb?ðŋ|æ—ÂųHEmŒ‡x‚xßC=ž‚§Íŋ<ÞÅĢyāéÂýĮsÚÐRŸŒĻĮDóqÃyiļØČQŸŠ›ūĩí; ÕKäZ{!‰‰’PV]ī‚žĩ  –ļŲ}ës'jaō<ÏÃKœ:ÖīŸN―^Ĩnc4ĶÃtÅ.eą’°$ŧœĨŸŅšjĮĮ' e7‡q>Ģá0ú áxHB‡­;–-YFGŪ‹‰―”ËóĪē>j•ļšÐŨÓGOk/û&ũēeøzũ’ËwRŠf‰âĩ‡Ÿ9_&Ŧ>ųí·áŦ%œĄzņëĐ7 ŠÆÄsÉēŦĪ#čfO°Õ­ëđkč6.\t).eiĄvÓI_Ũ2gũâÅ>‹[úøņčÝ ió,đ Gš=āä%§ē4ßO՟§6QALC:‚ĀgÅŌ•œÚš†(ĻņÄØ.fĢ)ēAŽL:GāČÞhđB’) „ôz)úúVRzô3{p€=Wĸ9ÕãĀƒ'i/ÍîŅ ‡C<4F„ žĄÍųųÄLJ˜‹gpV)h;ûëûĻ'5œSĢ=øÆ{Vģ!ČĨ+1OŒïb<;ĘTi’BĄ€Ÿj )ŽÔŲ7ņĨę,ĢsÉįōßŲ#faއÚųŊ&ÆøóŲV"W6Þý?yøâ?:ķUčéÏ{âã›)-ý„ˆk,ĒÂķúÃ^šjT†X1„ŪÆÜÜ4‘4ŽģGĘxég݈Úpĩii+R*Í2R+“ÏČdŌ w\<ZÚÚ(•æØ?9D.›#mĨšĖ㉇;d”ĘSí• ^C xü§_Ķ–XþlņŠŌywöý·LüāÂųÖ1%@Ž� 0‚ā°øÍĢa)&ԉ1ū,ŽnÆdIˆŽ°•€ã(‹ūÎe uWĢ’”îŊ:ŒwôáájH%.‘jFŦÅĸŦsĸ {ïû"Ÿō‡ã[–oøu?3°þþ[~’ŧðFūō- ‡c:Ϙyū­ázRc*g"e>žk†ļņƒÐ†L‡L„Ģ”Ēė‘Œ§z\ŽÉ o`WifþßĘ3Õ ÅžĨý―ŦŪ|į>Ã%ĮTƒŠkŠÖá,ÍoęqhŒf†ûn9vĒW$ĸ…éŅý­Đtķ§ĨģuMŨŠ þōÎOÐwLChĄ }žÏ§;NðyŪiđĒā‰úcĸÆ:`ýą�Ŧģsaev‹jk6ė#ŨÖó’Bgá‚�EŦöy='ŽÄ&„õˆz%ĪVŪSŊ„DaÔø8,'ōlĢžĻwnýpRøķséXYPÕįŌ$ĩmZhϐk;ųÚ;?IëS $š?-b„°S›ĐS+ՉŠ180,ã éB@ķ5Cķ˜!•öP§<[ũ8Mb.(ŒčË7l<%H™ĐÚĢ›kĮÔ8Uu=â\JŪ3…įy/öS€’ŋ —ôpH9Áš m˜Å6ķĖĖ37VĶ%U`Q{Åîv2é F V-ÕZ•ĐéiĶ'˜šĄci-‹óˆuOÃp VÏ%lÝÂÕg^$‹–­áāЎԖEmį°ũqōÛĢĢS…l1Čīžk˜j§TðRŌ›Î§ ãđĸÝs"“7ž!,GŒîœ$°i6­=—žîÅäsyŌAš™v́ēÔÃ:år™ĄƒėÜŧ“ęlŪSŠx)ƒ:= Q°bHې ĶwqÕ)ŨR,NÔî&ŌE…ąâĐïú̉Į~?øņūïÎĸę} ý$ĩ›šú/ðãĘ―*‚ĻŦĻį§ÅKÚ`æ<œÅZˆÔ>§Ãá|ÄČķq·öqÅÅWēęäÕۊxūGd#› jpÎ‘ļ„ HŅÕŲřëÏâē^ŽW Û5…]3ótøpbČ&5.™ŲÍï­þŠmƒÄåĸƒÚ’‚1AÐÚSðōWīø­Ÿ{û–7­ļë3žšsÉéonï*Ũv.ð~#ƒäâĢ8@Ĩszbą�ZÆwOąž{›6žK6ÅĐ#m2ŽlYEov)ųT˂―šÉú(ƒ•―ŒÕŌŧĻ—‹Ïŋ˜{ļ—™Á9Š+Z‘&E+Mę\VäōUŨ’ky‚ļ|'Š1 ’f:ëģ_Ž;ÛŪ Ä[åaþÓ>GzŅ’õoYqÖk‚ÚøM úŌxíbãâúÜ\�in�w˜�O„ËãU ŌΙÎ"—É!*Žk?“SÛÖ"â6·Ī‘õŒÏōÂÉ,/œĖdm”ĮfÄt6žđ‘|€°+"Ý€@6 đz~?Ÿr%đöý„sß?Š,âÖ ?ō`K~YDĨ7,-ï}įI_CŨ’“ĐŽß„šš4-OM_’ÄėĻWĻ-‡ĒBÍüúsÉtÛšĢ6s֚Óéhë EĀ9Ō•YĖ!€}ņ14ÂíHĢ?ÛLtvg{đ0u[§Ä,7ė?°ŸCCtŽņhuuŪĐLpáęëČv”ĐM~įIšÂiĶĩ·sŲĐ/þįS3>-}›4Û~ĐÄÕÛЌ}aA+Ђ,§RŠcãęÕ6"HþąŠT‘ÕqI‚B8“ũZXŅŋŸ;ÎĢ#Ý―B„R4‹ïĨhKQml5!҇#įįYßū‘ŸÍnaíšĩ Üy€be†ëĐģiý d;ō„ó?ÂÏ]€­?†ģåÆôã}’ÏɟlÐd6žS*Ģ%ŽĻņhĪæAM°V*ãU-ÏėúöĸĘ3JŠ*"‚/)bh:#JÜāÆw6"œ‰YÞģ„|&ϊėĐƒÎ…B‹š­‘6iœž—ķ ČĨ―/mdŸ4!q ūøÄãԑũ[X‘_Å|wõmŪģ)ÎÞøŌ…„pþ>ÄäÓŌXŽÚCā"\2A8wûŅۊ4&~(íĻ—^&õZóÓ~―<ÉÃOõôĐUZyŋ…3;7HÃCė/ŽdIn(d―gvn"ãeq5Ĩģģ“žŨBwfq#ī&†™p’ïø:u[cCĮFNiYƒS‹�FžFJĩđåčNwģx|+Ŋ_ŨÏ9›^K*W&Š>ŠņÚ@2 &u^zÝBôZLó”Ãį‘kiüW1upppúĀãŸ|É?\3xD…HS,dęÕ:3ÁQãģc ;Ĩ^ ™IOVC4l:KÞkĄjiļģŌ^†ūėR2^–ŪlFÍaŊŪ øĄČ‘ĒĖ…3LÖāü€Å§þ>™–>ęs[Āī6ĩ‡6Cm ^pZĢŪĨķĩY}ōd nLĖ šÅ/žŠ‘=Ûʓƒ›ßuŲ›đĸ˜!}’)™Ý3;8äzÏØÉ6žx1ŧgv€Ŋ Č2^_|á@u­Aįuŋ˜ĀΉ’Ŋ)ē6LGŽ 3Nļ˜–T}›>ÆÄΏ&tõ_CXÚ ’jDIÐfiŽ NCLĪþ(jŦG[Ī2Åk4qd`ë·kĨĐíožýÓGĮŽæ€…ęÏ#ŌŨū4"―MxÅ;,â$Õj­QĒĶŽ”—æÖáoąŠe-/Z|%‰&xâaED™Ķ8XÛÏXm”ØEƒNN*œBgzūņą8Ēģ?ĘȖ·Õ&XēîU„s·ĢXDM“ŅĒø―Īēl|�ĩÓxAŸĶr æ$ÝģY&?ūÕÆ•/žÁ>öŒ1Á&SĒڈ Đ ŸĒ ôId™Æ&Fą$8u„ķÎ+úo įRĨ‡ģOŧK;8XĒtqjëzē―xøDŧˆz\#֘ØÅxg―‡‘m!Úō VžāO‰Ę?BÝ<ĒāĄ ~zz™‹% Õ'˜ŸŲ%ģOÜKiâls6ųā oä_ž97(‚ZjūxšōR’ļäh�žĄ|UŒ}&öO09?NķF@šĀd°.AUņ―F™ÍHm?ģŅį/š„VŋČÕĐ'ubkDė5J‘k€QģUj+ŊgjßW‰ú!Vn|3.zM&$UÕÉðÎ/…ûđå>Ïg;°Ó9îžôė=ūž€`mėn›=Pš~zxNō­9Rzī[ĪĮœûáē4“M1“žåņ­œÖą^ÓЌĻ:DLÃļr ÛĒ—( Ęt8AŽ‘‰5$īáĄw­&™ŦÍRŦWĐŲ*cÞbķŒ=ÎKō Ön|5â+P°Š—ĘÍE5Þö’ŋā‘įœŲqË [ũš_ŦMŨÏß}ûĀÕđÎl‹į{MĘ=>“XUI\bIÎžÜ―ĘžðĪË4%)9Ī œS ‚o|fÂi&ëc ڐš­R·uB['ŅDĮgĮdbz"Ø; ét}Ä`ÄcĀláuõ0―áė? ‚@$ w*ęDՉņȞˆãlĸÂ@eíkWž1ĐŲKgKËUŸĨŽåA ?ã‰uãW|įoū"—ĘË9Ë.Pƒ' ÔxīĨŠL‡“ UũaðJō“Ą-ÝĄ;·Ëí[n ũėÝóÉđĄų]āKęPöŧĪCûåū|{P}mïęëÎĖ·!.šâ—i $ļãóļó—yØĶwŊųîþáæË›ŋxÝÄŲrÅúŦ5gō’ļŦ /K~%ÓŅą‹Čx]ī­jðļ{ÛfđmËũ’ĄņųyyĸþoLGĮęã―Āų}äîĻ>ýÉÞUŨūĻŦĸÐ[OxĖÏë?M ß=Y^þâžŧJå9ųÅÁ=îÞ&ęYšÚŧĩ5Ó*"BÆÏЖn§3ÓMJRšußĢō/ũü/đû=3Ģ3ĸ,—ÎzËûv‡ÏÔϗî`ėÚófïˆëŧ—Û8^įyAerč‘Ŋ}é6ö?UËŋ|;ï=ëŌIoô|ïĶlý―\&OwĮ"úڗM哐ąŲƒŒLS‹jTÃĘ?Æqôũđtþũ―įgöxûŲüi đöėßņßÖæ/}ŅëŽķō~m�,dgÞ―ÆWīWkDä<ģB ĖĐęNÝÝÎđï‰Čüƒ7ïē'ŌĮ=Ÿ'0†ë†/š‘ŧų]û]{Níĸ:NmíēO����IENDŪB`‚��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/qhimdtransfer_96.png��������������������������������������0000664�0000000�0000000�00000024351�12262477515�0024435�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���`���`���â˜w8���gAMA��ą üa���bKGD���c�%øÖA��� pHYs��Ä��Ä•+���tIMEŲ %SPĪ���tEXtComment�Created with GIMPW�� �IDATxÚíyœŸUuĸßũ>Ïó]fß'“}_Č I�Ų”‚ŠąŠP‹-Z[ýĐŠķ jÕZøŲZJPŦXņP‹" K%ē�!Ë$“eö™ïú,ũžßÏwū3“LBˆ‰ĩ˜;Ŋį5óýÎ3ũ{ŸsÎ=Ëįœ{ŽcãØ86ŽcãØ8čļæF’ŨÜHōHÏŦ‘öІ(fˆâ‘c øã�(8é37°íģ72á~ÏÃZH§kí’Åïœb-kŊų'cĀïŸ œŋüY4ĸÜFžøė,;ƀßëÐX1ęž3oTgŸų øõ5_âSĮð{J)Œ-ēaëŋ3öŜ{Ö']­Ŋ}æF>qŒŋ Ð„Q†^ý63§―Eýé;ūE2á}óģ7ōĢc 8šNJ)@Ģ”ƒ1EÖmū…ęŠFÞwéJĐĻŽđėģ7rÏ5_RÉc 8ŠÁ€R Ĩ4Jŧ8N’—ÛˆõŠ\úCinšōNcä·Ũ|YÕę”îČĮ]1ÅUĒÎä ĀĀü’đ PŋFÉWŨŊÜþԈ-`•Ö%Eä P 4"†mŧïĢ­ņtõÞKîāžŸĸÕÂö/l―æK,žéZvūķR+ųWLM�?‘‹Ē0"QįQQ‘­ö؈#þhŽ}Zþ&ýX‘ŨđĸĮ~qð[‘Ũõb…bÞ'Ė hĮZŦŪ―jɖïuį™-ÂĒښ–o\õÁœuŊÜBe1ˆŽD"jŦf2müŧdõšTO=}ĸ@2ɟÜt-*>*"ßŪiЖó.=[Mi˜ŠB#erSW^σõŽ þ˜óŠŨCC{.ýÃØĒaüAÖŊūéØ$-5(íĪqĨjŠÛxß%ßeÝŦß& 3ÃÄ·Ö ’Nķ2węXûâ<ķævÄōΛŊãŋ^“Į­˜č„ō.ŋú―4§[°bûö#ÖáĸHÍsĻ x=ž Ū‡Ýþđ͏ v2oÖrfÍx+ u3ĐH5’JVã8"k}6nŋĢī,VĒōN‰°‘tk™5ų―Ōąû9îûï/*­øüÍŨņÅ2āļN/HĮĖã§ÉŸ―ë}ŠŲ–Ý‚ˆ‰uݑņāþ0cÛlŅ3ũ’6–ÅĮŋ‡ÓOú8 Éû f7“-vP(v™<`ąÖ Jš_0ąäc°6fb00wĘ ōųųéÏ>ŦŠ~þ6ĨÕU7ĸ­Øý°Ķ MJ‰ĶŊØCBy ž7°KŊņ7>Lļe g/ý4 æ]‚‘ ;öþšbÐMå�‹ (Ĩpt 0(5$í6vIą*þRų ‡L~‘)ÐÝŋ–ųÓŊR—ūóVđïŋ?ýáūūîIĀ[ũc€B!"$’Zi”Rxú L| ûüÏp:·ō‘ËFmÍ::ĒtĮ[U Z{e‰b‚ˆÞĘJ•ĖHŽ#D)2ųvú7 ”GÍbxþ•oēhæ'Ôŧßņ/rũý}þgnØđA)–Þ|―�@ËâšFųøīYS™9ių(€Ģœ7ޅfāĐQï‡\ųÞûˆl/ŧš%2E”r‡ÕĨ�JbÛ5ôĸB ˆ-Y„ ĘÐ3°.ŽÔh}ŧ§įqŒÕi'~R|ŋ·đŦgëĨËÎaõę_ģÛÝŨPņø@šßbčÅüaƒ ėĶßPYČņĄ+fWŨjúģ›qt­]‹‘XČ&5FäÐŸŲˆˆÝøņï5ŲÍhíR_?“–ý1‹%’ˆ@BB öCAzŠôųÝXėĸB ÍĄū§‡ôæ5Žxĸėé~’þĖK(íÆūž•2dHŌGđŦRúQöĢK!čĒāwĮLÜÏû3Ll9›ųÓŊ’GûĶZŋé7ŽfųMŨąn?�X1aL4ęýHBšýN+iqqīĢŽžŦ#~ĐĘO4Æ{÷*ĀØX@īR(‘Xë‡Ymx˜sÎþ2†:ûŸ‰ Ŧ(‹’’2[R,ąÚ‘Q.ôðk)-O€þĖ+(åŒáv m§ąpÆ_ĘoVEm|éŅ~ŨaîMŨēwL(Âb1ÅŨ>(D(! E…x\ížjšSã\A`ĪÎSN Ž!ZfŒ”ôĶėûڔ()%ƒŌwÁҚ›wŅXWA&WdúÄ:ģE6ūÚÓ&ÖQ_ÄҊ_ŪÞĀ [2L˜4J/äĖEU$’*üû]ĸžœ7i)óį\ÄĶmßC)§ü9 ؒ⏠oKnĶ-é}[fLŲ”Ö™<A4ļŸę,ģ&^Æô —Č}|Vmo_ĸŠëē|$ņG3@XC$‘ˆl8jB#&vĮp”r\Ũ—0þP1ˆ(īÖ`#Pn,TJ‚2–ó!›#bb§B$Îý)ÁZAĐŌZøÍ3›™=­‰ ›;9įÔéä ũ<ēž™SČG§0bōĩĸx’ŽŽvŪxŨÉ|ũ§Ïr꒙ōÏū5Yģ}ģœųÞŊŦ―=ŋ%0đ’Î/Đ"‰―ĪdP5‚‹rbýnmD –ĪāwbmPzÞáÝ2cüÅ˘ø§ōĸî―ZuvĩoüÚį9î5Á8Ž5‰ˆ$ƒšdœU,Ĩ…+†ĪVD%—-ÞŒYEPX)ß/֖õ‰*{…įœ6‹Š”GCMšÖÆ*�Ū~ï)ôôåhmŽ$Š,ŽĢøÚ5ï`ó^—Ž=Ý\xŽâ­§ŒWÏîxˆÖúÉŠĶĶ Û~†Â‰?K•ADTLxuÕģĐМF:؈ëVá3ŠD"ŠŠšØ°õßlú2öS― g\MsíIōĢŧĸ\õöî~ÐqÕEÂĨÜŅDŽmHTRCĢuš%Ą<<匨nÃŌ#ÖDĮqð\ßũIxCâog­`ĨD\+‚į*T‰#%?~m°"Lj­A€†ÚDÉR McmŽĮ­ÕÄŽ ifŽĀÖĒ8™ČXî|ö.-~}™MXĒÕHãĄ W]õlÆ5œNd6oyˆ6ÞËķŽ§$ ̜ŠŦŠ+?þáU*>č|kĢRdŊyáĖŅTģDūŨûUāûĸõÕÏņ΃‚îXnĶ)}íŦÓīrÐâÄR[–äXōģ>ũ?ü"ŽŌL™ÐČúÍŧđøžhiŽF$ޚŽVėídÕӛŲÓ9€FLWÏЋ§1q\]ɍ–|dČ8J)ð)íēŌÏbĢø2QI–<)ÉĪ‚|˜%WėįļŲįÓ9ðT,,˜’1CŌ­cJÛdģ=ÜûĀ_ójûķ4•dē-Ô$Ãó·tŪ›|B°.AÔO&ß^V=Zŧœ4ïs(БþäCĘ/ú·|åïøøëĘ,ĶäEûxA�ŽvpÄÁFEŒÕh7 *†– ééÍ![vtóąũ/§ūĶ‚—·ėĄ" ĄŪ’õ/ïĒĩКm;zp=ŞŪAÞó''ēĨ―‹ImĩXkGđo%Îń2!ֆˆĀXcöËŨ–ãŌÁóāB]ÝLvv?ˆĩUšÅbIx5˘ð.ķėx”{~ö)öd+x91 åiB/$įU6ð&œ4ŽuŠ”ŋŠL]ÝŦĘF\)͛|YÂbĻ~tÏUJ+>ĸ•ŋ|;ļ °6&ūÝ_ÅiˆØËąaŽÐäĘŽrð3>u–?{Ûq<ąŪƒoĸ`ïŋpÖ/`T‚Ļā#Á�~ÞōÖÓ&ÓŲ›gk{7w?ð,įž2 ÛUrïl,ÝRō4FxEcü5!‡`ÆÆéDQžČËŌo•E‰fúøwðôš;xøņ[ŲžžÍڍõÓâTĄNęĄÏZrxNá ŧ{-Ŋ)áÕpÚĒ›éė|Uýũƒ7Ēŋų:n9ތ˜` Kęū ÐJã:I\qe8NVqČ(†új—ũœ?ƒ(,pĘüFNšŨ�D4TxąŪ5YæO­,éw—YãkXķčdŠÐXL?h*üĩB†ąƒ/EΠšŠkŽ bÂ)‹LiŧþþV=~+'_Bą―­^ũ”?·ÚÕHæðÃ~ޘņŦYūøVŲšmĩúŃ߈—Þ|?}=‘Ïč8@c#ėã†:Ú!"PVķ'ĒĻ*"1&ôPH ŸwNôŦ•CōqTɘ›Ø…įVÓT;ĸÁ… N?ŽæÖéČöîŅ<.EĮ"ŌIIŧĐØ[ŠŪ˜ĖéĮ…į_ž[=ūæžšøĶkåþŨŧÆýv€!B0%_x„}(y(O?œčNˆáŠ?püĐ™9˜+IģEŽETĪÛØēýq:vāÏŧ�öSuÆŌņj]1ÂMzą3Q[9ƒ“æ}A{ęõĖÚûēŪËé7]+ëg‰ûqÆŒ5Ø}#―~7IBĮ–ĸ›øC<ð28NÐ!ÖŠįōčęÃ6O$r ąŧ;ōąÂlŠx)ēč$āđ՜ēāzZõõâ†_vđŪ:ĸp‰?† *qÖ'0þ˜PĪðŋ „s•ÏÞþ]€F+‡H"Ž HzMôõn!;i<ūņãØdČh#‹ @‡ˆė&‰âýâÓj{ûsŧĩfņMŨĘÞßi}ûŲ�‰ąHĒ7DâÅš?áÐŅđ'Ņ@ô#Ö Uų*ŌDŲpįSd"ą‘(ĨÔOÖŊÜ6xá ąøųƒŸSÛ۟{FkÞū/Ūó;3�#ąúąbß püú6lþ‹\ʞėf”ŌXâļD:V―1bHÎú–|—ŊīR…õ+·}:ī XĖĐW·<ņĒÖ,ŋéZōGd‡ŽtöbÂŽ1XóÆ`�Ā`Ó6w>Ïiéĸƒō)ú] ŌP 0ŪC(afÎí)ŠRJDɅ#AĨø"|āĶkņ˜Š C‘ŒLôÆa@”Ž ]wŌÞĩ–ŲmąfÛũšĐm˜Š“í ĻŪňÁK&J‘·R _ß°rûC#ĶŲ(Â{oūîČV šûdc0!ÆūąŠe Ķ•{Ÿĸg>tÖŋR‘žÂ–ū˜2ņ4žūC>]Cdę'V•āh1Ā#§ļéZŽŠQtGĨ;Eb &īž‘F ė ÉÝÏÜÄ[ü9ÏîúĮ·žE­N0čGüɊ$ãOj–=ÏöhŧŽ[1åëJĐGEäŨîØ~t02ÄWN\ņōŋ'ßŦF%CȄÚjÖũPÕņ+Ķ6.aŋ—9ÓßBũî5‚4 /ÉäÅã•ŌšÎ{RÆ·ŨW)ĨfC\FrÔ t ũ*Øõ?=Â\D0Ą\H5&3U]bŽß’/8ü:ŧšÅQމuģP•-Ô%+é*äņ *•L]<‘)'Lāųŧ7QėũóĀQ+qGb[qĘŅE;#áŊR"E†“$jļpĶäŪ Z9åuZ‘Rī<ē°7þ›!H7ÎÂ.“ÖXō{|Â|T†Ē‚!Ր Q›•Œ 3Åū€ĻaE}ÍãÖ1}ZŽ ãĐkžĮ`ï& …,‘1T$+p”[RËÕwßCÅų]-Ã9NO'iM·a0 äĢl9dŸP1W;ėČnŪōhĐhcgn …§<ęR äÂ,i§‚žb'īULĪ·ØM$ááПbo„vM“˜6~Ą ØŌþ*~Á§ØUÄ­tŅZæ#l$ļ)‡IÓ&2Ū~<ݙ.vėh§}o;=@SE uuS ōŧ‰l@d“xn"Æa•ĻЕ{įIÕT“°‚ãČG˜BŽĀģø§}āðwȈĘ8>Þ8đžĶķF2Ņ`Œ—kLŠ™ÆMoúW~ŧų Îh>“§,%€ī}ŒÎÎ―TuüųüŋĄn<Ũãš_åøĶ7ņLßīVķņéE7ð‹-ũpã’oÓĩsZۙž9uOgGPZ―ŪËA"KŠ6Éq“ē°~ ĐfL:`ĀïEŧNđpAŧĮSÔ·ÔģpÜbæÔ,$•HSLd)„…zq‹8ŽCuŠŽP…8ÚÁU ölė",˜^ßýŋoŨŸDYĻV**˜TSK“ë1nÅET^zÅïĸœðwÛ*ÆýĩRC€픿SZq”šÎWþW,ý(ũnûO^öÖ#"Īš\–ĩžĮ=íĸA{ļ™[~ýunļāVnyéFüĻ@ŅËsõÏ/įz?k6?Æ?ūúyŠjŠÐ‡qJĘ*ÁŦtqJ„VĨĐBĢĮ]Ģc"‹v4ˆŠŸØÆy•NĖPą ýhĨĐöjq”[†Ō•WÁŌ#@ØýÔíėÍifWÖrBU=ķēŽ(UÅēĮūĮ,ϝū‚ā° JÆW ŠBá(—ȆÜēúŦôŧĻkŦá'ë~Ā%ģÞĮÆúįqīf–Zȝëo#UŸ&ĐÓt7îāë}‘ŋyÓįH&=pÆ[^ė{–UþTŨVqļŽ^ÂEyŠ\žŽt{œF•ˆÝ™$€DÃčT…D–þķĨ63ö‘ čÍôâ&<W—aAûĻóĻt*q”Woė㐜|%ØôÐŋ°ĮũY^UÃüÆVš+ŦY:ÐÍēÕwðāŌŽ=Dm óŊ˜:ËZyyÎōéĖ[<‡]Ų„6(3%(„ôoÍŌ4§ķThŋ?ОĨÐŠqTK"wåhšU‹ îĘáīĖŦGúķ’nL’ŠNvĐĢ’NšL&CĶ?ƒWå‚?Ō:Ū/‘5·ÖšŪÎ.Œ‰pRÆ7`4-㚰X|S5…[IJW°æŪįČõåw(ĨŽ_ŋr[߁ÖģęvÎĐĐįŌ–ÉlÕ ŲÛÁ‚Lŋ1!ß_þĄƒŦ%wß VAšäÕÄ#•NŌķ0…5Ģ V?ĩ–5œ=d:AËŽd\^ÔMĻAM üšqz})Ï ‡ëéŠŪrimG…WA.—Gih?Žt*Md#ã#žöðt‚ ­éïï'*R.uuõh­ðûF=ëG7œt}íE.ŧ’W­Ä7–OMœŲšwԜÆLŨÎÎwũėîžõ›S_=ë#Ō{ ē‹é*QûH§ÝįžÞï:fýæˆ{‡ŠÛöyýŧÆyūņĐt+iЇÔJY]fÃA QŪžŒ0ŽĄ>Ų@esՈĨ ―Ånœ}j:cÔ͉+ý^Į—]ÁŠGogâîmŸ™ēpqgÛŽ…ĘņÖ^ļgÛKđŋ<ãJ2cýÞ/í…ķĀ=Åný~ŠQb”§§ØI.ʎķgJؐîÂ^ōa?*’ 3ô:ąĨrËýįCļa,ŋ’;3ýÅU]ƒģĩSÛÚ6û"?sŲ9ŪÃ?čoF1@åāĢJýA_�…(Ï`ÐÏ`0@dĢR}ïþũZēa† \˜―ŧƒĖ{áwm^“PîĪÖbĸSãf―ÛŦmžuŲĢ·óõŨ`@|䯖ÎE8ĐņĮu•ˆļÂō+ŲĖĶū={›·ĨÅïŋ-1ýä/x^2õ‘GogŅÁUÐÎËņWųØQTYĩgõ‡V@Ģ4ũöí~Áq+ÏωōÏW)ŲåN]ü‰*āփŦ ‘Ûoä „?Ķ uÄ ēŽ-[­w‰0ëðŸmGŧ3 Š=ßRĩãÞ,‰tÝŌÕw°ä5sÂCŨãˆąŊáŌõ ŨÖžkZïoEĻQŠk‰Â.kÐ5ą'ėD™MÔ4ϧ§ýąŋÞ~€ð?ųā”CđlwžŽ ―ÛúéÞŌOÏķ~ú;2dŧōøŲ vĩ:*k·VhLG|愎šéģ—ĩ8ŪËĄÖ)ˆĒ2ķĐR6ŊAæ^Õ:ý|ą†…Ŧï úĀ ™ōÓüđ1T}ŽÐģe™8蓱“,ŠTÞŽ”Ēz|3ęp͑ĐՋí@ĨÍóÉY[˜<ųML;éstķŸwČQpžv åĮÛĻ8_ĄhĄ âļĀk Ę~Fč(^ĮPĮĀÎíLhÐ MC}555TUVÅøžv1b(„yr™™ė ===ôl {†š •ÔMŠ&U›UæþzŨ#JŅTėáü]1uÎۘ|Â'†„ņwky_eÃ,løRŲŧ›GDĻŽ­ĐÎÖ�АQ ÜŅÖĩZ+vįčÞÔCĖĘēääÅ7cž;|jL!‹áĨíyæégÉėΓÝS fbÍģkKP‡z]:P”bœ?Āy;Ö0ãøKi›óAēŸĒŠí‹tâ'S–ūpÅŠšŸ |äŽeũõŒ5Íę;hŽBÎh~QnåˆéÄHVķ’lžÛR†ŸåĻ~HOėÝÐK_{†dÚcÞÜđ,Yx"I7‰ąærĀGÁ™'0æžßð</Ū‘ūmD…ˆ–ãęq<ᐉo•bVnoÝŧŽĐ'ĸ9ÍSÏ%Óņa°Å!ŲWŽöž„“žX+}ņ_=yųgšüþŊÝyÆýēO ö—õm3ÆU7Lb°}ëˆm·=pžJ€š‚qr”uŋBĄ\Ŏ§:)öûTÕVráyQ™ŪDĄˆL4Jr ÝcJũ?ũŽ›―€~ós:ũt<2ņĪÖ8―z° ‚QšđŲ]œĩûfņYŠ›0Øþ~ÄŅncųÖī“VÆI‹ĢĨ•ó•I•mƒĀŋސþËīãüýī%ŸĪ8ø+ŽÁ� JcM� v.KŲðč(đD‚°ũđ^ō―E&LÏđËÏÛ‹lDŌIQëÕQáVQáVâéDœßĩ“'e ú(Ú"ņÁAO9\xöÛyôĐGxiÓKėyū›ķ%Mõ'8ąĸUÞŌŋ™igß@em#đ]W!ķ8Jé+0Iåž9éđZ91pþåúþöžÏ/ürįŠ•ü™ߛzüå’HĄēßÞGb<”Nš�vÐ :Ļ|4jC•V vdÉuhjjäœĨįŽJzXą$uŠNĒ­b"Š ï/ÁC'- { ŧXÛŧ†Ē)–ģxgœr&ŪëēiÃ&öūÐCëÂÆýJv9ģ{#K2íĖ~ëĸÅuÉtücY\-6<ýÕ{/~dŅĮÞâ(įV­ŅĘSž1ßzėvŌh.šŧôoUUãrŧ?ķßJU uŠÜ@—Ŋýc2 ļxĖ’BDŨ†~Ō•).8ũ\Į-3=ГĖŪ™ÏėÚųÃÕjØVÃį2ËVá2ąr*+Ķē9쁗^Ī` (Qœr›ŲÛđ—þî~ >ĐÚÄ~Ē~įZNŽēĖ|Ûmhĩ“üÞ8ĻŦã‰M-Þņāý;ĮzmĘ˜PÛĸēī ū|Y݄™žčCâ%ŠävõšG·™ÜĀf‰zÝ=`@܂ˊ9*; kCÚҜ―ü<'Qî§ÐlâīæģðtrT?7%qnbß\ "‰ĘØ ĶUÍabÅTžė~”îâ^ípΙįrį]? {c?OoÆFņžĄrxũžß2S‡Ė}ëíDų‡Čũ~‡ƒųšÖJËĢ ÝhčÝPYݰ€–)gĐÆÉŸGkKąũ[*ŨóxéĻíþz.Q}{ķ>ĒīÃîĨ+č>ˆ ::š?ĖüÁ––š[Ę oIį”Ķe8ÚA°gļWŅ~9Y5xĢ ­4Ūö8ĩé ~Ûóŧ ;ĐŦĻãMKNâđgž#ŧŧ@š9EÂF\ēûIæŨNe֙ßÁúÏåŸD9õˆé;@ ’aÁđßQ §Úņ’$R)°=˜`;Aĸ?æV•™·/ņã†:}ĶôtÜĐīÃʃ`AGÉ RŠÜÞ"ēxņ’r‡ŪšD#§6Ÿ hå–Âa)7VR(\Į+ŸJđF+ķlžMĐŀSjĀqJÓ2Vwþš^ŋ›YSgģqãFÚsT6%yoĮLo{ģNĸaöÂÂÓčä4ī7S|vŒV͇lĮ‡c/F _ H„ŦȃĻŪdý‡ņ3;•ŸíīKWŒ>ŠWņ/·u9ˆŨĪī"ӑ§ĶūŠ)ãĶ€€Ŧ]Nj:+ņ |Uj͆Jb”âņ·ļý•Ē`ōx:§ļʍ ĮJ-FkqW[+–OÃÓU•UTUŨPyĸև™1þԘøđG kQ*ÂĀ­8 íĩîƒ+ 6ęÅF݈DlĪ�„Ĩr˜ƒ_ŧ $kÎgÛÚ[ąFþę5āčŨnj˜ŅÄ.ÓÕÎĻũ­Ä§î!ĖG„ųˆY3f…ËÄĘĐĪŠÁUŲð{*&&âšūg؞ÛB6,ãBJi\žáĪy\ Tþė!†Īœ“*§ŠÅÓ[ų›æ—Y°ð2fžö üÁŸž•D𞘠(ÜÔÉ(Üw—AÂŨ%œŌŸ`ÏŦČĀލJóeĀPŨ9�ņë“M,k=—ņ•“ËsĘIģīõNnZާ―ōŽ˜^=›Ó[ÞB•Wƒ?‚†ņ­ãËÆ}nÍ"ö>zü.n{åëŽï_KÂIðūWņžib\zbygėKčąęv†væÜúÅĪ3íž­ïnĶ/ ?Eý96ÜŽÖ īöÐÚEk” ĘE9Uļ§ýÎŦĪę/'ēSŲņâw•vÔ_,ŧ‚ƒ2ĀÆ0(ý•NÍĐę’uDAÜS4ō#ĒŌÁū°ŋgBC]ē‘ĶT Na.Âq5ĐDaBÅ$\íŽŌy ŎėVÚs[Ų’}…Ķ.QςšÅ1á_§~ÔĘĨØ~ÓŨĸ3ģNú4“ĸ?øý?Â[P*xĨ+ũRCŊīۆ[ąė°]qąŽy‰Úwˆ‡? ‹ĩt…ÜũÚuAå6]ēĸ īũl#déÏõÅ%à r…Oėxc- H&=L`yqÏslM―Bũ`'6ˆ Ķ.ĩBnMOЉËK0īE8ąéT’LŊšC`üØ3bD?Ą‘?—ŪĄ�.ÂE“'ÐtÓėĶ6QGū “íNš~Dđå.' qD JŧčE"ī7 7ĩS\;ķky�ĐWĘ#ÕôatâlYũËŠ ß§ã%ná�Պîū %åũc€Ö1ėîŲ…“ÔxnÜ7įÞ��5IDATCĻÚÃũchÃŦp,^ĨK.Ÿ#“ːĻrŅŪ*ÏĐŅT8•eĒō›  īSŠf–0ÁĻ-ÎĻZUËpœĒŅ„°Ŧ°“ŽÜv|ëŲ0fpõLZ——ÎĮŊ&ÓýóÞō=ī7‘0ũhĐüēܕw&>ˆD8É9h·™0ũ0bý2aHUđĐđĪ›ĸŽBĶS6>ðųŊ.ŧ’ÏpRQũ� …1áh7éā͜š#nŠį͜ýŒVĒŌ-oa'é`LÜgdíĐŧœîý%Oũ<Îû§ĸ-éķē‹iŖZ;Ķ\āĨ1֐ Ʉýė.tÐUÜ[Ū‚ŦrkĻMŨ1>=Đ<—ŅÓl}ðOØðāeĖ9ã6Õgæ/wŠSåÞpCĨQC=á,JŨáU]ˆņŸĮ†;ëïãáUá&§‘Ž―Ņódũ+ũŠ/ÜYPš›—]ÁõŊĩkÜą8yP·ō0ÚÎŧUÖ}ƒ}4Ũ·”“=VG)š‹øĶX~(ļbBĐ10ū)ōjö%š‹„6ˆO―‹ĄÆŦcZõ,ÆĨÆ—Ë †L8€Cd#—}Ÿžß~’u?ŋˆįĸ„DÍ; 3ŋĀ•šļ[Ļ’R0§ä ĀņfĄÝ ˆDl'9ŊbNr*HDĮÆïģwË?ŠÐÏ­EņŪĨ+Øz($rG!Ÿ2 =RĮ”’5J)ķíØÆœis㓘Ĩ~#O~Ų(CmĒ[ú\#‹‘N4ųžØĸ,V,i·‚ÚD=ÍĐVÆWLĶĘ­!īõ m1&š 1Dņą[wLœōMōkŊgíý0ĸėïRŲøNÂĖ/3K=Ž.ųƒ%PŨŠûøp;KaÂŽ„…ÝŠŋóyúvÞAOĮúĒĩ<Ŧūđė îz=īqGĘjD€tŌDvð!rqâ<ݔbۖ­Kúƒ^ę qÃ01`CŌNšĀøhåĒqb"ˆ`”ĄŦļ—ûŸE+Í)ÍËĻK4”ÛfGbú0bŽ!"*|ĻũÝP* Íū’|ē‘|™gÜDÃĪKðïÆF―冄#°Báļ<wĸۉ‚lÜÎŌ†ĘkåI„ïĒļßqŲŧtÅáÐØ‚‚þ݃"’N+•øÆ?ĖčxĪŪR`ĩ+(öy~ÃsÔ-Šgzõœ2Ä`Ŗ gJ­ße8:ķf^ÆQon^N•WKhƒáÖj– ŋîúh%"ī L‘žÉã›"jÜĐø^ÅGŪa։;7ũj‚L  Ã}ņ@ŧƒ((þĩRŽķ/]Áö#Ą\€ wl·Į­˜ōģbgð'[ŸngꉓHŧ)RNrė ė ^ųØö#ݜ&ŨR`ûží Ėé§ŨïĒ>ŅXåDb!.4Ä-Ō4Ą„6 éĪPhēá`IŌc‰͚# †+–Ēɓ ģĢl‹VŪvŲ‘}™ÍÁĒ)§ņgÏßJūģ–~‡âĀ/ˆŠkG�ßķdâĸŊ!–_-û›$L6ēqëÕĘQ§ïþmO]vo^ę'Õ+/á ŨÝĪ\EaKX,&ü(Ëš—Ÿ§ĩŠïĪaĢ9Ô&§ %Ė||ElrQPåîūą~1bJú? ` äĢF Ūv1úúûčęédKį+ėĖmÈÁŅqĸŧo˜…\ūþAŒ 3Nŋ ĨӄųĮʝqKABĐę‘ĸŊSelXđ}ûü+Ķž€âžĖŽÂâL{a4„ĘP*ÛR<ûĖģ$<Ö7§-5Đ 1ËPį’ÔĨ]‘rŌô―ė)îĒÖŦ#R;bČEYra6Öņ gōBãģzÝ#ōŌ˛TÏķ> ųbėÛWxntĶðŅâF Ų Xpþ]’ŽŪS~ĸĨPCŒ8J@ý˜ä=nŔŲĀBĀ9ŌķīS[ҜüŠŌŠöė3ß"ïœĸUį5–W3är–ĸ9‚RÖg]ßÓDQéVâé$ņ)˜áŽ1ŪrI8)jžZōđŨĸāïˆÂ)ŠOšŠ;•>hf|kéö•Uo›öJé*üþ‚RT6‚5wR ƒčøåWōōQgĀҧ|~ÞR`•v4'ŋé$.?åÃÔđ ņåîSF;K‡ Qž—ŨãÛbų ļ�u‰ZSmΜ4 'ÉË{7ō•ŧnB1Ŋ”R—=ų~|ĻëÚôŸĻŪ<Ũ8nâKs—Ý Õͧ(ŋïĪ›?ÂS?>ĩ†o�žų ĮÜoŽĐ˜3oŽ\öæËÕŽ†yčR…ÃČŽCĖÐhú‚n ͈§<꓍q°†ĨæyxÃŊäķŸĸ‹Jy)\·æú7ÎÚVßÁį€ŋŸsúõšaŌ(íąæ?—ÃОqPbÂ,yTDÆĨ*RēhÞ"õîS/gbÅT"ęáVÏö9ýčh‡G_zˆ?ōCéîïT  ÔŲOþÆÕŋËÚV­ä\ĨøÅ„y—čĐ'~Q=yį‚bÚ7Ę*é óþC‰zŧąĶÚ*ÃĒđ'ČēygŠÉuÓĻJV‘ôRqšˆlH1()dxqį:~ĩötvï!éĶB‰ČĨkŪߘ9ëZ}gXËO§ðÁš~X4Axüē7"�ÞüųãĶĄøĻˆ|fzN$’NTĻ„›('čDøĄ/y?ŊŒ1C‰™•"ōå5Ũo|åHŊkÕJĶO(E―‹–]ņeĀ>FúýĀŧJĐ* âXņ•RY ļ[Bđm͗6úGs=ŦV’TŠÕĀû–Ūø#`Ā‘‘!hĨ”|É­đ~cņũđ–U+Iēė |ŽcãØ86Þãĸtþ}ļ[}ō����IENDŪB`‚���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/quit.png��������������������������������������������������0000664�0000000�0000000�00000002127�12262477515�0022227�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���������āw=ø���gAMA��ą üa���bKGD������ųCŧ��� pHYs��Ä��Ä•+���tIMEŲ&U‚��ÔIDATHĮŕÍk\UÆįãÞ;™iœĖLó-Ô&ĪI‰ˆu#þŠŦęÂ*Et!ĒĒ… ‚ ĐāāķVėF7qĢ;­MZ AhL“›˜&đ“đũž{Ž‹äN2íĪÍÎ/wuŸį}ޏį<â9įƁI @Ėŋ Bˆä ĸõGðÉ3Ï~šžžėŒ1Äq"’$ÆŒ1bję‚9ĄFGŸŌƒƒ!I’ĪKKKŋįįÂküđLHĶnŽĢ#_LC―^'Š"q“$ ų|DExžOđ\Ō pÎŌÕUĘ?þDđZ­Ę‡U@A€įyA€sk-B„øūÖ)[q„āPOäóyrđ\Vs�Ī”MÏóPJĩų]Ž@)E.—Ã9ŨB�Ļāþũ+ðÂpõ‚,[­5ūïï–@ī!‚ûŋ”îÞ―GĩÚB 30)eK(ĨPJ5ÁR ’DčąąŸ'ϝ{.W,nī-QÖÐLÉþŊ֚BĄÐÜFý—.Wž>}š?šuKlonN~ß4w~ÔM)mĀ…ÍþdĨÛ~ãíw891D33čž&Ϟviúū3}ô(ŋž?Ÿk!hÎ9<Ï#MÓðkgÎÐ[ė"žžFh Câđ9pg þąckÞ›kŅ6*• BŒ1;ēӔß^z™Þ|ū .ôŒ Cœ1­Qåō^RÍþęę*ÝÝÝ;‰(…ô<ĒÅEĻÕpÆāâ[ŊÃîˆïb“ÄĩŒF;’­­-”Rŧûąß]b}`�[*aÆ­ā€‹ãVûĮ5knf#RJŒ1MiÄ1ƒ__äŊwßĢÛZÄü<ŠXD‹;"ĒRÁ‚ŊïW-\ķh­ĐŨ뎭­S(äISKęĨ/͘>ûV<ÞŨ'Ĩ”úúíÛ ĸĶé>ÄđŲŲĻW ð<ÏóÐZAÓBÖï­S­UyþÔ)Ī(­ð;rÔÞ|}C}~áúÉŅŅâÆ‡ð° ԁzË)Ĩð<ŊŲāŽ4ŦkŦDQÄāā�Æ6Ö9:rÖč*—ígiúÚś7ŋUP–H[6yŋ-dŪZû§FļĩÉðð'ĮĮð=ÍVļ‰Ō4ÅĪ ųB^,Špî }ŧŲ·ZEh­%î,ÜassƒOŽÐß?Ž‚(jE{&`mónH€Ww2^lëEŲMX__ĢvwĄĄ!Ž`{;|Ø―F=ÂĮĩ”Ō™Ô°ēķLoo7=}�ÆĄ.–ÔōĄWG›xûË+W.{ĐåGðþ Õ ĸįû䕚n`ęA_����IENDŪB`‚�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/rename.png������������������������������������������������0000664�0000000�0000000�00000001327�12262477515�0022515�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���������āw=ø���gAMA��ą üa���bKGD������ųCŧ��� pHYs��Ä��Ä•+���tIMEŲ&:§3Ŋ(��TIDATHĮ­•ÍnÓP…?ĸ$vÚ$Î/Z§EH°CbŨlJy 6ŽxM;"ąHH€hSBSŠ@I”ķÔwXØNė^ۑhGŠ“ųfÎđscÅŦŨ/‡ūïŊq1fOöžú�vœôý^ĩįũžë�Į5ãœÍ …ˆ,^Č2ŊūĖĸŦ0@­bŅXģ“õuĀûŊ'L&S­ÐÆÆ-ŽĮyšÝ.~ËĨîZ$GÐ�“É”Ņh” P*ˆšÖ"ņ4ŠXĒ’pKũz["DļV6iŽ[ đr°4Āü"`</šMF§ÓĄ[ĩiTl”’b ė$‚L@˜ åIkĻšõu,ššÖŽmē―u' ÁuLŠŽ…WąPJRg.Å ˆÓÆŌƒĢÚB<~p—v9aō ‰‚@ER#G:Ŋ”,:!đ(Ĩč4ëtšĩÄf.jēėmųl~Ą8<=§ęšÔ]ģ�ŅOO˜N§™Ý^•'ųüŅýÛԜr\({AĐ !Q^Q=·ž2r% ĩly5Z^-\&mKÃo~úð–ƒÏyöüÅäUL@ižŲ …Qüú3e6›vÞßíóåÝķ[ĨåF'nSĄP"ĩRĒXŠô;+$’ðČ=ô›ˆ4RæĶîzĀŦX‰#™Q끈b§íĪĮ―Ōˆ0 ØßߢBōĐDK“65[†~7qũä˓ԔRæŠÎģõÖŧVJ™€ œŲ€l‡‡į–i™"b\ą4ócVFøÓĢïÃ3`ņ@;Ē–Ūóß\3ā'0ĸà îf["x‘����IENDŪB`‚���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/icons/upload_from_md.png����������������������������������������0000664�0000000�0000000�00000003024�12262477515�0024231�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������‰PNG  ��� IHDR���������āw=ø���gAMA��ą üa���bKGD������ųCŧ��� pHYs��Ä��Ä•+���tIMEŲ-–Ęó��‘IDATHĮĨ”ËŦÝWĮ?k?~sî=įū’æ’h‚iMąiĀ€ĒŽ$‚œ(ŠEČĪØ‘q":,Bg:p"ˆ"ÎĐÄhK,I{Û$7{“{rÎ=ßŲ{Ŋåā ‚#lÖdąŋßõåû]ðÔ5ðķąņ‡'på̈́—^ūņӇšŦ’!‡ó&ęsZ<Šąü’TšĻ1Ø―ÎĨ/ŪsüÎÁ•+ũūÅíD3jLčï ČéįßīÏž0åėŪq0î1čÞßŊļņö=!šķNŪ6Ča •!ō˜ïþ˜Wŋ’iÞđmËÞĻáÛõW›Äã}ÎÄė­ũ6Eķ/ūkáp’8A—SĻ•ž1dڜCe€X‰3øōŅoųÅþÄā`Æc˜NáÄ þúũŽ/u?da| #Î\ ؐc;Ï<o!CčNo1;q aņCÃĀ„OøüėsdFóJčáÎ>}ŅņóęGˆŪĄƒ!ŪâžÃéˆĶĸ/Ōæ‚,`Ë Ĩt$-ä" Ԉ_ïžÆÉŋbý_%ï―ËKŸ^ŊÂF;‡Á: SúÕMÂÚ!b_&x!yÚaŠ„4åwé;œŋ| F#aõb\uį�ĻÞšÆ7.ļzðKD2~°õĘũ}QĮ[jĪęxÁˆHfqŸ_ŋËįŋz9xÞ?Ĩ,ŦūX€ę Ė9âøˆ/þq‚óïpÖáŧ�K‚4†“BnōõĮŋįÅO·ïb9sæSĮ―ŋ“ ĖįPŨ+PįŸ{žG·î#ymïUäėģoXĨĸDӄTzĻ25ŲũĻü$gfÝYRïEæ7ųË7ĸF}xõųSiČĖļvīÆÕéŨó˜-bïŽ7§hDĪāH[ ؘ-?ĘløUF#Bąy]ýþ‡rĨó9jÂ|nˆ+TU$D?%JG.ĮTqŽ–šŽëx™ē\îÐ5ÏÐļ}†“7q6a}ų;žŽdĐëHÎĸq•G݂#g#@ÆŽ�ĄāÝ$c8īėR\ ŋžÓc’ßƗûķb#,—PĘ*ŠīNŲÞ.Ž#û· >ĒđB­Á°ÕšnuKˁ‰C%"*4ią%n6…ÍÕ!|蠔ˆŨoqė3}T“s h‰˜s UÁð ŽĒ}žŸŅÎï1î?‡UđĮ-wŽWÞļOŸcžÏ‡ây/sÜ  Vž`HÖĮ،Ž=Rę“t@ēuÚļOÔGTģĢæ.!Zø{Č ™QŊÍĄxÃĖ0qqį\&ÔnÎ4oƒ]Ú$kBKŪZšj“ķÝĮ/§0„„Ļý „ƒ“Ĕˆ,:„NTî1Š‚Ŧ#Ae@JjeĄ§0ĨŠäĩ†ÜķĖŲĨNSüúōix‹r†qĸ4‹yübF;❙ƒ·CĶ‹ó”ž…ó Áûdj­ˆ5ā9ŽQú‘RW˜Ŧ)ՐYsoŽ€[iíýīUcyĘĄŠý?,ō)ÄjâÚ&ÎéR“ŪąL[Dž`ĩ‘b‹JJq ‚G|ļ€S‹Z,6hĻ) OXĶu’mcŽÜ ­%díŅfĨíĒuÅÂ=D ˜éJ&ÁƒDh îxNĸö]xéė,EÖ –ÉģBČւ É6ą,ÔÓčåŧļáœŲÚģ`5*n•â�ÃęðÅáïėÓ\ßC[–ewu-Q$ *Č ĸœ&ó–n3ÅëŒĀ„Z!ĐîÓų–~Ĩ&H!ęˆnü˜&Pw†æ!ĢŲišž‚ĄÝœÍ!Le“ ūąCŲKXZg™ 0·>bᧈ;Ī‘„ļŒjæ‰Z“JÅ5NîöØÞ)„Ļ(åī°ąž)ðoĀÜāũy·ŲĀ����IENDŪB`‚������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/main.cpp��������������������������������������������������������0000664�0000000�0000000�00000001631�12262477515�0021053�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <QApplication> #include <QTranslator> #include <QLocale> #include "qhimdmainwindow.h" /* stolen from Qt Creator */ #ifdef Q_OS_MAC #define SHARE_FROM_BIN "/../Resources" #else #define SHARE_FROM_BIN "/../share/qhimdtransfer" #endif int main(int argc, char *argv[]) { int status; sox_format_init(); QApplication a(argc, argv); QTranslator trans; QString transfile = QString("qhimdtransfer_") + QLocale::system().name(); QString transdir = QCoreApplication::applicationDirPath() + QString(SHARE_FROM_BIN "/translations"); // try cwd, then standard translation directory trans.load(transfile) || trans.load(transfile, transdir); a.installTranslator(&trans); a.setOrganizationName("linux-minidisc"); a.setApplicationName("QHiMDTransfer"); QHiMDMainWindow w; w.show(); status = a.exec(); sox_format_quit(); return status; } �������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdaboutdialog.cpp��������������������������������������������0000664�0000000�0000000�00000001032�12262477515�0023437�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "qhimdaboutdialog.h" #include "ui_qhimdaboutdialog.h" QHiMDAboutDialog::QHiMDAboutDialog(QWidget *parent) : QDialog(parent), m_ui(new Ui::QHiMDAboutDialog) { m_ui->setupUi(this); m_ui->VersionString->setText(VER); m_ui->BuildDateString->setText(BDATE); } QHiMDAboutDialog::~QHiMDAboutDialog() { delete m_ui; } void QHiMDAboutDialog::changeEvent(QEvent *e) { switch (e->type()) { case QEvent::LanguageChange: m_ui->retranslateUi(this); break; default: break; } } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdaboutdialog.h����������������������������������������������0000664�0000000�0000000�00000000662�12262477515�0023114�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef QHIMDABOUTDIALOG_H #define QHIMDABOUTDIALOG_H #include <QDialog> namespace Ui { class QHiMDAboutDialog; } class QHiMDAboutDialog : public QDialog { Q_OBJECT Q_DISABLE_COPY(QHiMDAboutDialog) public: explicit QHiMDAboutDialog(QWidget *parent = 0); virtual ~QHiMDAboutDialog(); protected: virtual void changeEvent(QEvent *e); private: Ui::QHiMDAboutDialog *m_ui; }; #endif // QHIMDABOUTDIALOG_H ������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdaboutdialog.ui���������������������������������������������0000664�0000000�0000000�00000036010�12262477515�0023276�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>QHiMDAboutDialog</class> <widget class="QDialog" name="QHiMDAboutDialog"> <property name="windowModality"> <enum>Qt::ApplicationModal</enum> </property> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>400</width> <height>480</height> </rect> </property> <property name="sizePolicy"> <sizepolicy hsizetype="Maximum" vsizetype="Maximum"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="minimumSize"> <size> <width>400</width> <height>480</height> </size> </property> <property name="maximumSize"> <size> <width>400</width> <height>480</height> </size> </property> <property name="windowTitle"> <string>About QHiMDTransfer</string> </property> <property name="modal"> <bool>true</bool> </property> <widget class="QWidget" name="verticalLayoutWidget"> <property name="geometry"> <rect> <x>20</x> <y>170</y> <width>361</width> <height>291</height> </rect> </property> <layout class="QVBoxLayout" name="verticalLayout"> <item> <widget class="QTabWidget" name="AboutDialogTabs"> <property name="currentIndex"> <number>0</number> </property> <widget class="QWidget" name="AuthorsTab"> <attribute name="title"> <string>About</string> </attribute> <widget class="QLabel" name="HomepageLink"> <property name="geometry"> <rect> <x>0</x> <y>110</y> <width>341</width> <height>16</height> </rect> </property> <property name="text"> <string notr="true"><a href="https://wiki.physik.fu-berlin.de/linux-minidisc">https://wiki.physik.fu-berlin.de/linux-minidisc</a></string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> </property> <property name="openExternalLinks"> <bool>true</bool> </property> </widget> <widget class="QLabel" name="AboutTextLower"> <property name="geometry"> <rect> <x>0</x> <y>20</y> <width>341</width> <height>71</height> </rect> </property> <property name="text"> <string>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> </property> </widget> <widget class="QLabel" name="AboutTextUpper"> <property name="geometry"> <rect> <x>0</x> <y>150</y> <width>341</width> <height>71</height> </rect> </property> <property name="text"> <string>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> </property> </widget> </widget> <widget class="QWidget" name="ContributorsTab"> <attribute name="title"> <string>Contributors</string> </attribute> <widget class="QTextBrowser" name="ContributorText"> <property name="geometry"> <rect> <x>10</x> <y>10</y> <width>331</width> <height>201</height> </rect> </property> <property name="html"> <string notr="true"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt; font-weight:600;">Code:</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans'; font-size:10pt;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Thomas Arp</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* MÃĨrten Cassel</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Kevin Chabowski</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Adrian Glaubitz</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Michael Karcher</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Philipp Neuser</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Vincent Pelletier</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans'; font-size:10pt;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt; font-weight:600;">Translations:</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans'; font-size:10pt; font-weight:600;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Arabic: Hossam Elgabarty</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Czech: Martin Vican</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Danish: Peter Kyster Slot</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Dutch: Jurgen Konings, Mark Ligtenstein</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Finnish: Anton Isopoussu</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* French: Daniel Berthereau</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* German: Adrian Glaubitz</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Greek: Pliubis Apostolos</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Italian: Marco “Space Dugong” Starace</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Japanese: Wolf Laaser, Toru Shimada</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Norwegian: Adrian Glaubitz, Sindre Wetjen</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Polish: Piotr Patoka</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Portuguese: Rui Principe</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Russian: Sergey “Wedge” Lichack</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Spanish: MÃĄximo Antonio Chicano Díaz</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Swedish: MÃĨrten Cassel</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Turkish: Nadir GÞl</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Ukrainian: Andriy Navrotskiy</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans'; font-size:10pt;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt; font-weight:600;">Artwork:</span></p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans'; font-size:10pt;"></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Anja Diesing</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Kevin Chabowski</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Sans'; font-size:10pt;">* Tobias Sautner</span></p></body></html></string> </property> </widget> </widget> </widget> </item> <item> <widget class="QPushButton" name="CloseButton"> <property name="text"> <string>&Close</string> </property> </widget> </item> </layout> </widget> <widget class="QLabel" name="ProgramLogo"> <property name="geometry"> <rect> <x>20</x> <y>40</y> <width>161</width> <height>81</height> </rect> </property> <property name="styleSheet"> <string notr="true">image: url(:/icons/qhimdtransfer.png);</string> </property> <property name="text"> <string notr="true"/> </property> </widget> <widget class="QLabel" name="VersionLabel"> <property name="geometry"> <rect> <x>200</x> <y>40</y> <width>181</width> <height>16</height> </rect> </property> <property name="font"> <font> <weight>75</weight> <bold>true</bold> </font> </property> <property name="text"> <string>Version:</string> </property> </widget> <widget class="QLabel" name="BuildDateLabel"> <property name="geometry"> <rect> <x>200</x> <y>80</y> <width>181</width> <height>16</height> </rect> </property> <property name="font"> <font> <weight>75</weight> <bold>true</bold> </font> </property> <property name="text"> <string>Build Date:</string> </property> </widget> <widget class="QLabel" name="VersionString"> <property name="geometry"> <rect> <x>200</x> <y>60</y> <width>181</width> <height>16</height> </rect> </property> <property name="text"> <string notr="true">VERSION</string> </property> </widget> <widget class="QLabel" name="BuildDateString"> <property name="geometry"> <rect> <x>200</x> <y>100</y> <width>181</width> <height>16</height> </rect> </property> <property name="text"> <string notr="true">DATE</string> </property> </widget> </widget> <resources/> <connections> <connection> <sender>CloseButton</sender> <signal>clicked()</signal> <receiver>QHiMDAboutDialog</receiver> <slot>close()</slot> <hints> <hint type="sourcelabel"> <x>343</x> <y>20</y> </hint> <hint type="destinationlabel"> <x>15</x> <y>119</y> </hint> </hints> </connection> </connections> </ui> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimddetection.cpp����������������������������������������������0000664�0000000�0000000�00000015642�12262477515�0023137�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <QDebug> #include "qhimddetection.h" void QHiMDDetection::clearDeviceList() { QMDDevice * mddev; QNetMDDevice * nmddev; int i = 0; while( i < dlist.count() ) { mddev = dlist.at(i); if(mddev->deviceType() == NETMD_DEVICE) { nmddev = static_cast<QNetMDDevice *>(mddev); if(nmddev->isOpen()) nmddev->close(); delete nmddev; nmddev = NULL; dlist.removeAt(i); continue; } else if(mddev->deviceType() == HIMD_DEVICE) { remove_himddevice(mddev->path()); // uses platform dependent function if available continue; } } if(!dlist.isEmpty()) dlist.clear(); emit deviceListChanged(dlist); } QHiMDDetection::QHiMDDetection(QObject *parent) : QObject(parent) { } QHiMDDetection::~QHiMDDetection() { clearDeviceList(); cleanup_netmd_list(); } void QHiMDDetection::cleanup_netmd_list() { if(dev_list != NULL) netmd_clean(&dev_list); } void QHiMDDetection::rescan_netmd_devices() { QNetMDDevice * dev; int i = 0; // find and remove netmd devices while(i < dlist.count()) { if(dlist.at(i)->deviceType() != NETMD_DEVICE) { i++; continue; } dev = static_cast<QNetMDDevice *>(dlist.at(i)); if(dev->isOpen()) dev->close(); delete dev; dev = NULL; dlist.removeAt(i); } netmd_clean(&dev_list); dev_list = NULL; emit deviceListChanged(dlist); scan_for_netmd_devices(); } void QHiMDDetection::scan_for_minidisc_devices() { /* create device entry for disc images first */ QHiMDDevice * mddev = new QHiMDDevice(); mddev->setMdInserted(true); mddev->setName("disc image"); dlist.append(mddev); emit deviceListChanged(dlist); scan_for_himd_devices(); scan_for_netmd_devices(); } void QHiMDDetection::remove_himddevice(QString path) { QHiMDDevice * dev = static_cast<QHiMDDevice *>(find_by_path(path)); int i = dlist.indexOf(find_by_path(path)); if(i < 0) return; if(dev->isOpen()) dev->close(); delete dev; dev = NULL; dlist.removeAt(i); } void QHiMDDetection::scan_for_netmd_devices() { netmd_device * md; netmd_error error = netmd_init(&dev_list); struct libusb_device_descriptor desc; QNetMDDevice * mddev; if (error != NETMD_NO_ERROR) return; md = dev_list; // pick first device while( md != NULL) { libusb_get_device_descriptor(md->usb_dev, &desc); mddev = new QNetMDDevice(); mddev->setName(identify_usb_device(desc.idVendor, desc.idProduct)); mddev->setUsbDevice(md); dlist.append(mddev); emit deviceListChanged(dlist); md = md->link; // pick next device } } QMDDevice *QHiMDDetection::find_by_path(QString path) { QMDDevice * mddev; foreach(mddev, dlist) { if(mddev->path() == path) return mddev; } return NULL; } QMDDevice *QHiMDDetection::find_by_name(QString name) { QMDDevice * mddev; foreach(mddev, dlist) { if(mddev->name() == name) return mddev; } return NULL; } const char * identify_usb_device(int vid, int pid) { if(vid == SHARP) { switch(pid) { case IM_MT880H: return "SHARP IM-MT880H / IM-MT899H (NetMD)"; case IM_DR400: return "SHARP IM-DR400 / IM-DR410 (NetMD)"; case IM_DR80: return "SHARP IM-DR80 / IM-DR420/ IM-DR580 or KENWOOD DMC-S9NET (NetMD)"; } } if (vid != SONY) return NULL; switch (pid) { case MZ_NH1_HIMD: return "SONY MZ-NH1"; case MZ_NH3D_HIMD: return "SONY MZ-NH3D"; case MZ_NH900_HIMD: return "SONY MZ-NH900"; case MZ_NH700_HIMD: return "SONY MZ-NH700 / MZ-NH800"; case MZ_NH600_HIMD: return "SONY MZ-NH600(D)"; case LAM_3_HIMD: return "SONY LAM-3"; case MZ_DH10P_HIMD: return "SONY MZ-DH10P"; case MZ_RH10_HIMD: return "SONY MZ-RH10"; case MZ_RH910_HIMD: return "SONY MZ-RH910"; case CMT_AH10_HIMD: return "SONY CMT-AH10"; case DS_HMD1_HIMD: return "SONY DS-HMD1"; case MZ_RH1_HIMD: return "SONY MZ-RH1"; case PCLK_XX: return "SONY PCLK-XX (NetMD)"; case UNKNOWN_A: return "SONY (unknown model, NetMD)"; case MZ_N1: return "SONY MZ-N1 (NetMD)"; case UNKNOWN_B: return "SONY (unknown model, NetMD)"; case LAM_1: return "Sony LAM-1 (NetMD)"; case MDS_JE780: return "SONY MDS-JE780 / MDS-JE980 (NetMD)"; case MZ_N505: return "SONY MZ-N505 (NetMD)"; case MZ_S1: return "SONY MZ-S1 (NetMD)"; case MZ_N707: return "SONY MZ-N707 (NetMD)"; case CMT_C7NT: return "SONY CMT-C7NT (NetMD)"; case PCGA_MDN1: return "SONY PCGA-MDN1 (NetMD)"; case CMT_L7HD: return "SONY CMT-L7HD (NetMD)"; case MZ_N10: return "SONY MZ-N10 (NetMD)"; case MZ_N910: return "SONY MZ-N910 (NetMD)"; case MZ_N710: return "SONY MZ-N710 / MZ-NE810 / MZ-NF810 (NetMD)"; case MZ_N510: return "SONY MZ-N510 (NetMD)"; case MZ_NE410: return "SONY MZ-NE410 / MZ-DN430 / MZ-NF520 (NetMD)"; case MZ_NE810: return "SONY MZ-NE810 / MZ-NE910 (NetMD)"; case CMT_M333NT: return "SONY CMT-M333NT / CMT_M373NT (NetMD)"; case LAM_10: return "SONY LAM-10 (NetMD)"; case AIWA_AM_NX1: return "AIWA AM-NX1 (NetMD)"; case AIWA_AM_NX9: return "AIWA AM-NX9 (NetMD)"; case MZ_NH1: return "SONY MZ-NH1 (NetMD)"; case MZ_NH3D: return "SONY MZ-NH3D (NetMD)"; case MZ_NH900: return "SONY MZ-NH900 (NetMD)"; case MZ_NH700: return "SONY MZ-NH700 / MZ-NH800 (NetMD)"; case MZ_NH600: return "SONY MZ-NH600 / MZ-NH600D (NetMD)"; case MZ_N920: return "SONY MZ-N920 (NetMD)"; case LAM_3: return "SONY LAM-3 (NetMD)"; case MZ_DH10P: return "SONY MZ-DH10P (NetMD)"; case MZ_RH10: return "SONY MZ-RH10 (NetMD)"; case MZ_RH910: return "SONY MZ-RH910 (NetMD)"; case CMT_AH10_A: return "SONY CMT-AH10 (NetMD)"; case CMT_AH10_B: return "SONY CMT-AH10 (NetMD)"; case DS_HMD1: return "SONY DS-HMD1 (NetMD)"; case MZ_RH1: return "SONY MZ-RH1 (NetMD)"; } return NULL; } ����������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimddetection.h������������������������������������������������0000664�0000000�0000000�00000005227�12262477515�0022602�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef QHIMDDETECTION_H #define QHIMDDETECTION_H #include <QObject> #include <QList> #include <QString> #include <qmddevice.h> // known vendor IDs #define SONY 0x054c #define SHARP 0x4dd // known himd-mode product IDs #define MZ_NH1_HIMD 0x017f #define MZ_NH3D_HIMD 0x0181 #define MZ_NH900_HIMD 0x0183 #define MZ_NH700_HIMD 0x0185 #define MZ_NH600_HIMD 0x0187 #define LAM_3_HIMD 0x018b #define MZ_DH10P_HIMD 0x01ea #define MZ_RH10_HIMD 0x021a #define MZ_RH910_HIMD 0x021c #define CMT_AH10_HIMD 0x022d #define DS_HMD1_HIMD 0x023d #define MZ_RH1_HIMD 0x0287 // known Sony/Aiwa netmd-mode product IDs #define PCLK_XX 0x34 #define UNKNOWN_A 0x36 #define MZ_N1 0x75 #define UNKNOWN_B 0x7c #define LAM_1 0x80 #define MDS_JE780 0x81 // or MDS-JE980 #define MZ_N505 0x84 #define MZ_S1 0x85 #define MZ_N707 0x86 #define CMT_C7NT 0x8e #define PCGA_MDN1 0x97 #define CMT_L7HD 0xad #define MZ_N10 0xc6 #define MZ_N910 0xc7 #define MZ_N710 0xc8 // or MZ-NE810/NF810 #define MZ_N510 0xc9 // or MZ-NF610 #define MZ_NE410 0xca // or MZ-DN430/NF520 #define MZ_NE810 0xeb // or MZ-NE910 #define CMT_M333NT 0xe7 // or CMT-M373NT #define LAM_10 0x101 #define AIWA_AM_NX1 0x113 #define AIWA_AM_NX9 0x14c #define MZ_NH1 0x17e #define MZ_NH3D 0x180 #define MZ_NH900 0x182 #define MZ_NH700 0x184 // or MZ-NH800 #define MZ_NH600 0x186 // or MZ-NH600D #define MZ_N920 0x188 #define LAM_3 0x18a #define MZ_DH10P 0x1e9 #define MZ_RH10 0x219 #define MZ_RH910 0x21b #define CMT_AH10_A 0x21d #define CMT_AH10_B 0x22c #define DS_HMD1 0x23c #define MZ_RH1 0x286 // known Sharp netmd-mode product IDs #define IM_MT880H 0x7202 // or IM-MT899H #define IM_DR400 0x9013 // or IM-DR410 #define IM_DR80 0x9014 // or IM-DR420/DR580 / Kenwood DMC-S9NET const char * identify_usb_device(int vid, int pid); typedef QList<QMDDevice *> QMDDevicePtrList; class QHiMDDetection : public QObject { Q_OBJECT Q_DISABLE_COPY(QHiMDDetection) protected: QMDDevicePtrList dlist; netmd_device * dev_list; public: explicit QHiMDDetection(QObject *parent = 0); virtual ~QHiMDDetection(); virtual void clearDeviceList(); virtual void cleanup_netmd_list(); void rescan_netmd_devices(); void scan_for_minidisc_devices(); virtual void scan_for_himd_devices(){} virtual void remove_himddevice(QString path); void scan_for_netmd_devices(); QMDDevice *find_by_path(QString path); QMDDevice *find_by_name(QString name); signals: void deviceListChanged(QMDDevicePtrList list); }; QHiMDDetection * createDetection(QObject * parent = NULL); #endif // QHIMDDETECTION_H �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimddummydetection.cpp�����������������������������������������0000664�0000000�0000000�00000000173�12262477515�0024204�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "qhimddetection.h" QHiMDDetection * createDetection(QObject * parent) { return new QHiMDDetection(parent); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdformatdialog.cpp�������������������������������������������0000664�0000000�0000000�00000000720�12262477515�0023620�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "qhimdformatdialog.h" #include "ui_qhimdformatdialog.h" QHiMDFormatDialog::QHiMDFormatDialog(QWidget *parent) : QDialog(parent), m_ui(new Ui::QHiMDFormatDialog) { m_ui->setupUi(this); } QHiMDFormatDialog::~QHiMDFormatDialog() { delete m_ui; } void QHiMDFormatDialog::changeEvent(QEvent *e) { switch (e->type()) { case QEvent::LanguageChange: m_ui->retranslateUi(this); break; default: break; } } ������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdformatdialog.h���������������������������������������������0000664�0000000�0000000�00000000673�12262477515�0023274�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef QHIMDFORMATDIALOG_H #define QHIMDFORMATDIALOG_H #include <QDialog> namespace Ui { class QHiMDFormatDialog; } class QHiMDFormatDialog : public QDialog { Q_OBJECT Q_DISABLE_COPY(QHiMDFormatDialog) public: explicit QHiMDFormatDialog(QWidget *parent = 0); virtual ~QHiMDFormatDialog(); protected: virtual void changeEvent(QEvent *e); private: Ui::QHiMDFormatDialog *m_ui; }; #endif // QHIMDFORMATDIALOG_H ���������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdformatdialog.ui��������������������������������������������0000664�0000000�0000000�00000004451�12262477515�0023460�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>QHiMDFormatDialog</class> <widget class="QDialog" name="QHiMDFormatDialog"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>397</width> <height>189</height> </rect> </property> <property name="windowTitle"> <string>Format Medium</string> </property> <widget class="QWidget" name="verticalLayoutWidget"> <property name="geometry"> <rect> <x>30</x> <y>20</y> <width>341</width> <height>151</height> </rect> </property> <layout class="QVBoxLayout" name="verticalLayout"> <item> <layout class="QHBoxLayout" name="horizontalLayout"> <item> <widget class="QLabel" name="label_2"> <property name="text"> <string/> </property> <property name="pixmap"> <pixmap>icons/format.png</pixmap> </property> </widget> </item> <item> <widget class="QLabel" name="label"> <property name="text"> <string>Really format MiniDisc (all audio-tracks and data will be lost) ?</string> </property> <property name="wordWrap"> <bool>true</bool> </property> </widget> </item> </layout> </item> <item> <widget class="QDialogButtonBox" name="buttonBox"> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> <property name="standardButtons"> <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> </property> </widget> </item> </layout> </widget> </widget> <resources/> <connections> <connection> <sender>buttonBox</sender> <signal>accepted()</signal> <receiver>QHiMDFormatDialog</receiver> <slot>accept()</slot> <hints> <hint type="sourcelabel"> <x>248</x> <y>254</y> </hint> <hint type="destinationlabel"> <x>157</x> <y>274</y> </hint> </hints> </connection> <connection> <sender>buttonBox</sender> <signal>rejected()</signal> <receiver>QHiMDFormatDialog</receiver> <slot>reject()</slot> <hints> <hint type="sourcelabel"> <x>316</x> <y>260</y> </hint> <hint type="destinationlabel"> <x>286</x> <y>274</y> </hint> </hints> </connection> </connections> </ui> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdmainwindow.cpp���������������������������������������������0000664�0000000�0000000�00000026446�12262477515�0023341�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "qhimdmainwindow.h" #include "ui_qhimdmainwindow.h" #include "qhimdaboutdialog.h" #include <QMessageBox> #include <QApplication> void QHiMDMainWindow::set_buttons_enable(bool connect, bool download, bool upload, bool rename, bool del, bool format, bool quit) { ui->action_Connect->setEnabled(connect); ui->action_Download->setEnabled(download); ui->action_Upload->setEnabled(upload); ui->action_Rename->setEnabled(rename); ui->action_Delete->setEnabled(del); ui->action_Format->setEnabled(format); ui->action_Quit->setEnabled(quit); ui->upload_button->setEnabled(upload); ui->download_button->setEnabled(download); } void QHiMDMainWindow::init_himd_browser(QMDTracksModel * model) { int i, width; QString browser = current_device->deviceType() == NETMD_DEVICE ? "netmd_browser" : "himd_browser"; ui->TrackList->setModel(model); QObject::connect(ui->TrackList->selectionModel(), SIGNAL(selectionChanged (const QItemSelection &, const QItemSelection &)), this, SLOT(handle_himd_selection_change(const QItemSelection&, const QItemSelection&))); // read saved column width for this model for(i = 0; i < ui->TrackList->model()->columnCount(); i++) { width = settings.value(browser + QString::number(i), 0).toInt(); if(width != 0) ui->TrackList->setColumnWidth(i, width); } } void QHiMDMainWindow::init_local_browser() { QStringList DownloadFileList; localmodel.setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot); localmodel.setNameFilters(QStringList() << "*.mp3" << "*.wav" << "*.oma" << "*.aea"); localmodel.setNameFilterDisables(false); localmodel.setReadOnly(false); localmodel.setRootPath("/"); ui->localScan->setModel(&localmodel); QModelIndex curdir = localmodel.index(ui->updir->text()); ui->localScan->expand(curdir); ui->localScan->setCurrentIndex(curdir); ui->localScan->scrollTo(curdir,QAbstractItemView::PositionAtTop); ui->localScan->hideColumn(2); ui->localScan->hideColumn(3); ui->localScan->setColumnWidth(0, 350); QObject::connect(ui->localScan->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), this, SLOT(handle_local_selection_change(const QItemSelection&, const QItemSelection&))); } void QHiMDMainWindow::save_window_settings() { settings.setValue("geometry", QMainWindow::saveGeometry()); settings.setValue("windowState", QMainWindow::saveState()); } void QHiMDMainWindow::read_window_settings() { QMainWindow::restoreGeometry(settings.value("geometry").toByteArray()); QMainWindow::restoreState(settings.value("windowState").toByteArray()); } bool QHiMDMainWindow::autodetect_init() { if(!QObject::connect(detect, SIGNAL(deviceListChanged(QMDDevicePtrList)), this, SLOT(device_list_changed(QMDDevicePtrList)))) return false; detect->scan_for_minidisc_devices(); return true; } void QHiMDMainWindow::setCurrentDevice(QMDDevice *dev) { current_device = dev; QObject::connect(current_device, SIGNAL(closed()), this, SLOT(current_device_closed())); if(current_device->deviceType() == NETMD_DEVICE) init_himd_browser(&ntmodel); else if(current_device->deviceType() == HIMD_DEVICE) init_himd_browser(&htmodel); } void QHiMDMainWindow::open_device(QMDDevice * dev) { QMessageBox mdStatus; QString error; QMDTracksModel * mod; int index = ui->himd_devices->currentIndex(); // remember current index of devices combo box, will be resetted by current_device_closed() function if (!dev) { current_device_closed(); ui->himd_devices->setCurrentIndex(0); return; } if(current_device) { current_device_closed(); ui->himd_devices->setCurrentIndex(index); // set correct device index in the combo box } if(dev->deviceType() == HIMD_DEVICE && dev->path().isEmpty()) { mdStatus.setText(tr("Error opening himd device/disc image , no device path given\nPlease use connect button to set the path to the himd device/disc image")); mdStatus.exec(); set_buttons_enable(1,0,0,0,0,0,1); ui->himd_devices->setCurrentIndex(0); return; } setCurrentDevice(dev); mod = (QMDTracksModel *)ui->TrackList->model(); error = mod->open(dev); if (!error.isEmpty()) { mdStatus.setText(tr("Error opening minidisc device (") + current_device->name() + "):\n" + error); mdStatus.exec(); set_buttons_enable(1,0,0,0,0,0,1); ui->himd_devices->setCurrentIndex(0); return; } localmodel.setSelectableExtensions(current_device->downloadableFileExtensions()); QModelIndex curdir = localmodel.index(ui->updir->text()); ui->localScan->expand(curdir); ui->localScan->setCurrentIndex(curdir); ui->DiscTitle->setText(current_device->discTitle()); set_buttons_enable(1,0,0,1,1,1,1); } void QHiMDMainWindow::upload_to(const QString & UploadDirectory) { QMDTrackIndexList tlist; foreach(QModelIndex index, ui->TrackList->selectionModel()->selectedRows(0)) tlist.append(index.row()); current_device->batchUpload(tlist, UploadDirectory); } QHiMDMainWindow::QHiMDMainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::QHiMDMainWindowClass) { aboutDialog = new QHiMDAboutDialog; formatDialog = new QHiMDFormatDialog; current_device = NULL; detect = createDetection(this); ui->setupUi(this); ui->updir->setText(settings.value("lastUploadDirectory", QDir::homePath()).toString()); set_buttons_enable(1,0,0,0,0,0,1); init_local_browser(); read_window_settings(); ui->himdpath->hide(); // not needed, replaced by combo box if(!autodetect_init()) ui->statusBar->showMessage(" autodetection disabled", 10000); } QHiMDMainWindow::~QHiMDMainWindow() { if(current_device && current_device->isOpen()) current_device->close(); save_window_settings(); delete ui; } /* Slots for the actions */ void QHiMDMainWindow::on_action_Download_triggered() { QStringList DownloadFileList; DownloadFileList = QFileDialog::getOpenFileNames( this, tr("Select MP3s for download"), "/", "MP3-files (*.mp3)"); } void QHiMDMainWindow::on_action_Upload_triggered() { QString UploadDirectory = settings.value("lastManualUploadDirectory", QDir::homePath()).toString(); UploadDirectory = QFileDialog::getExistingDirectory(this, tr("Select directory for Upload"), UploadDirectory, QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); if(UploadDirectory.isEmpty()) return; settings.setValue("lastManualUploadDirectory", UploadDirectory); upload_to(UploadDirectory); } void QHiMDMainWindow::on_action_Quit_triggered() { close(); } void QHiMDMainWindow::on_action_About_triggered() { aboutDialog->show(); } void QHiMDMainWindow::on_action_Format_triggered() { formatDialog->show(); } void QHiMDMainWindow::on_action_Connect_triggered() { int index; QHiMDDevice *dev; QString HiMDDirectory; HiMDDirectory = settings.value("lastImageDirectory", QDir::rootPath()).toString(); HiMDDirectory = QFileDialog::getExistingDirectory(this, tr("Select directory of HiMD Medium"), HiMDDirectory, QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); if(HiMDDirectory.isEmpty()) return; index = ui->himd_devices->findText("disc image", Qt::MatchContains); ui->himd_devices->setCurrentIndex(index); // index of disk image device dev = (QHiMDDevice *)ui->himd_devices->itemData(index).value<void *>(); dev->setPath(HiMDDirectory); ui->himd_devices->setItemText(index, QString((dev->name() + " at " + dev->path() ))); open_device(dev); } void QHiMDMainWindow::on_upload_button_clicked() { upload_to(ui->updir->text()); } void QHiMDMainWindow::handle_himd_selection_change(const QItemSelection&, const QItemSelection&) { bool nonempty = ui->TrackList->selectionModel()->selectedRows(0).length() != 0; ui->action_Upload->setEnabled(nonempty); ui->upload_button->setEnabled(nonempty); } void QHiMDMainWindow::handle_local_selection_change(const QItemSelection&, const QItemSelection&) { QModelIndex index = ui->localScan->currentIndex(); bool download_possible = false; if(localmodel.fileInfo(index).isDir()) { ui->updir->setText(localmodel.filePath(index)); settings.setValue("lastUploadDirectory", localmodel.filePath(index)); } if(localmodel.fileInfo(index).isFile()) download_possible = current_device && current_device->isOpen(); ui->action_Download->setEnabled(download_possible); ui->download_button->setEnabled(download_possible); } void QHiMDMainWindow::device_list_changed(QMDDevicePtrList dplist) { QString device; QMDDevice * dev; /* close current device if it is removed from device list, just to be sure, should be handled by closed() signal */ if(current_device && current_device->isOpen() && !dplist.contains(current_device)) current_device_closed(); ui->himd_devices->clear(); // add dummy entry for <disconnected> ui->himd_devices->addItem("<disconnected>"); foreach(dev, dplist) { device = QString(dev->deviceType() == NETMD_DEVICE ? dev->name() : dev->name() + " at " + dev->path() ); ui->himd_devices->addItem(device, qVariantFromValue((void *)dev)); } if(current_device) ui->himd_devices->setCurrentIndex(dplist.indexOf(current_device) + 1); else { if(dplist.count() > 1) // open first autodetected device { ui->himd_devices->setCurrentIndex(2); open_device(dplist.at(1)); } } } void QHiMDMainWindow::on_himd_devices_activated(QString device) { QMDDevice * dev; int index = ui->himd_devices->findText(device); if (index == 0) // disconnected { current_device_closed(); return; } dev = (QMDDevice *)ui->himd_devices->itemData(index).value<void *>(); open_device(dev); } void QHiMDMainWindow::current_device_closed() { int i; if(!current_device) return; QString browser = current_device->deviceType() == NETMD_DEVICE ? "netmd_browser" : "himd_browser"; QMDTracksModel * mod = (QMDTracksModel *)ui->TrackList->model(); QObject::disconnect(current_device, SIGNAL(closed()), this, SLOT(current_device_closed())); // save column width for this model first for(i = 0;i < mod->columnCount(); i++) settings.setValue(browser + QString::number(i), ui->TrackList->columnWidth(i)); mod->close(); current_device = NULL; ui->DiscTitle->setText(QString()); ui->himd_devices->setCurrentIndex(0); set_buttons_enable(1,0,0,0,0,0,1); } void QHiMDMainWindow::on_download_button_clicked() { /*download_of(localmodel.filePath(ui->localScan->currentIndex()));*/ } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdmainwindow.h�����������������������������������������������0000664�0000000�0000000�00000003456�12262477515�0023002�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef QHIMDMAINWINDOW_H #define QHIMDMAINWINDOW_H #include <QMainWindow> #include <QFileDialog> #include <QSettings> #include "qhimdaboutdialog.h" #include "qhimdformatdialog.h" #include "qhimddetection.h" #include "qmdmodel.h" extern "C" { #include <sox.h> } namespace Ui { class QHiMDMainWindowClass; } class QHiMDMainWindow : public QMainWindow { Q_OBJECT public: QHiMDMainWindow(QWidget *parent = 0); ~QHiMDMainWindow(); private: Ui::QHiMDMainWindowClass *ui; QHiMDAboutDialog * aboutDialog; QHiMDFormatDialog * formatDialog; QHiMDDetection * detect; QNetMDTracksModel ntmodel; QHiMDTracksModel htmodel; QHiMDFileSystemModel localmodel; QSettings settings; QMDDevice * current_device; void set_buttons_enable(bool connect, bool download, bool upload, bool rename, bool del, bool format, bool quit); void init_himd_browser(QMDTracksModel *model); void init_local_browser(); void save_window_settings(); void read_window_settings(); bool autodetect_init(); void setCurrentDevice(QMDDevice * dev); void open_device(QMDDevice * dev); void upload_to(const QString & path); private slots: void on_action_Connect_triggered(); void on_action_Format_triggered(); void on_action_Upload_triggered(); void on_action_Download_triggered(); void on_action_Quit_triggered(); void on_action_About_triggered(); void on_upload_button_clicked(); void handle_himd_selection_change(const QItemSelection&, const QItemSelection&); void handle_local_selection_change(const QItemSelection&, const QItemSelection&); void device_list_changed(QMDDevicePtrList dplist); void on_himd_devices_activated(QString device); void current_device_closed(); void on_download_button_clicked(); }; #endif // QHIMDMAINWINDOW_H ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdmainwindow.ui����������������������������������������������0000664�0000000�0000000�00000024152�12262477515�0023164�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>QHiMDMainWindowClass</class> <widget class="QMainWindow" name="QHiMDMainWindowClass"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>784</width> <height>539</height> </rect> </property> <property name="windowTitle"> <string>QHiMDTransfer</string> </property> <property name="windowIcon"> <iconset resource="icons.qrc"> <normaloff>:/icons/qhimdtransfer_24.png</normaloff>:/icons/qhimdtransfer_24.png</iconset> </property> <widget class="QWidget" name="centralWidget"> <property name="autoFillBackground"> <bool>false</bool> </property> <layout class="QHBoxLayout" name="horizontalLayout_3" stretch="1,0,1"> <item> <layout class="QVBoxLayout" name="verticalLayout_4"> <item> <layout class="QHBoxLayout" name="horizontalLayout" stretch="0,1,1"> <item> <widget class="QLabel" name="himd_mountpoint"> <property name="font"> <font> <weight>75</weight> <bold>true</bold> </font> </property> <property name="text"> <string><html><head/><body><p>minidisc device (path):</p></body></html></string> </property> </widget> </item> <item> <widget class="QLabel" name="himdpath"> <property name="text"> <string>(disconnected)</string> </property> </widget> </item> <item> <widget class="QComboBox" name="himd_devices"/> </item> </layout> </item> <item> <layout class="QHBoxLayout" name="horizontalLayout_4"> <item> <widget class="QLabel" name="disc_title_text"> <property name="text"> <string><html><head/><body><p><span style=" font-weight:600;">disc title:</span></p></body></html></string> </property> </widget> </item> <item> <widget class="QLineEdit" name="DiscTitle"/> </item> </layout> </item> <item> <widget class="QTreeView" name="TrackList"> <property name="editTriggers"> <set>QAbstractItemView::DoubleClicked|QAbstractItemView::EditKeyPressed</set> </property> <property name="alternatingRowColors"> <bool>true</bool> </property> <property name="selectionMode"> <enum>QAbstractItemView::MultiSelection</enum> </property> <property name="indentation"> <number>5</number> </property> <attribute name="headerHighlightSections"> <bool>true</bool> </attribute> </widget> </item> </layout> </item> <item> <layout class="QVBoxLayout" name="verticalLayout_2"> <item> <widget class="QPushButton" name="upload_button"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="minimumSize"> <size> <width>80</width> <height>40</height> </size> </property> <property name="text"> <string/> </property> <property name="icon"> <iconset resource="icons.qrc"> <normaloff>:/icons/arrow_upload.png</normaloff>:/icons/arrow_upload.png</iconset> </property> <property name="iconSize"> <size> <width>60</width> <height>30</height> </size> </property> </widget> </item> <item> <widget class="QPushButton" name="download_button"> <property name="minimumSize"> <size> <width>80</width> <height>40</height> </size> </property> <property name="text"> <string/> </property> <property name="icon"> <iconset resource="icons.qrc"> <normaloff>:/icons/arrow_download.png</normaloff>:/icons/arrow_download.png</iconset> </property> <property name="iconSize"> <size> <width>60</width> <height>30</height> </size> </property> </widget> </item> </layout> </item> <item> <layout class="QVBoxLayout" name="verticalLayout_3"> <item> <layout class="QHBoxLayout" name="horizontalLayout_2" stretch="0,1"> <item> <widget class="QLabel" name="updir_text"> <property name="font"> <font> <weight>75</weight> <bold>true</bold> </font> </property> <property name="text"> <string>local directory</string> </property> </widget> </item> <item> <widget class="QLabel" name="updir"> <property name="text"> <string notr="true">/tmp</string> </property> </widget> </item> </layout> </item> <item> <widget class="QTreeView" name="localScan"> <attribute name="headerVisible"> <bool>false</bool> </attribute> <attribute name="headerCascadingSectionResizes"> <bool>true</bool> </attribute> </widget> </item> </layout> </item> </layout> </widget> <widget class="QMenuBar" name="menuBar"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>784</width> <height>20</height> </rect> </property> <widget class="QMenu" name="menu_Action"> <property name="title"> <string>&File</string> </property> <addaction name="action_Connect"/> <addaction name="separator"/> <addaction name="action_Download"/> <addaction name="action_Upload"/> <addaction name="separator"/> <addaction name="action_Delete"/> <addaction name="action_Rename"/> <addaction name="separator"/> <addaction name="action_Format"/> <addaction name="separator"/> <addaction name="action_Quit"/> </widget> <widget class="QMenu" name="menu"> <property name="title"> <string>&?</string> </property> <addaction name="action_Help"/> <addaction name="action_About"/> </widget> <addaction name="menu_Action"/> <addaction name="menu"/> </widget> <widget class="QStatusBar" name="statusBar"/> <widget class="QToolBar" name="mainToolBar"> <property name="acceptDrops"> <bool>false</bool> </property> <attribute name="toolBarArea"> <enum>TopToolBarArea</enum> </attribute> <attribute name="toolBarBreak"> <bool>false</bool> </attribute> <addaction name="action_Connect"/> <addaction name="separator"/> <addaction name="action_Download"/> <addaction name="action_Upload"/> <addaction name="separator"/> <addaction name="action_Rename"/> <addaction name="action_Delete"/> <addaction name="action_Format"/> <addaction name="separator"/> <addaction name="action_Help"/> <addaction name="action_Quit"/> </widget> <action name="action_Download"> <property name="icon"> <iconset resource="icons.qrc"> <normaloff>:/icons/download_to_md.png</normaloff>:/icons/download_to_md.png</iconset> </property> <property name="text"> <string>&Download tracks onto MD</string> </property> </action> <action name="action_Upload"> <property name="icon"> <iconset resource="icons.qrc"> <normaloff>:/icons/upload_from_md.png</normaloff>:/icons/upload_from_md.png</iconset> </property> <property name="text"> <string>&Upload tracks from MD</string> </property> </action> <action name="action_Rename"> <property name="icon"> <iconset resource="icons.qrc"> <normaloff>:/icons/rename.png</normaloff>:/icons/rename.png</iconset> </property> <property name="text"> <string>Re&name</string> </property> <property name="toolTip"> <string>Rename selected</string> </property> </action> <action name="action_Delete"> <property name="icon"> <iconset resource="icons.qrc"> <normaloff>:/icons/delete.png</normaloff>:/icons/delete.png</iconset> </property> <property name="text"> <string>D&elete selected</string> </property> </action> <action name="action_Help"> <property name="icon"> <iconset resource="icons.qrc"> <normaloff>:/icons/help.png</normaloff>:/icons/help.png</iconset> </property> <property name="text"> <string>&Help</string> </property> </action> <action name="action_About"> <property name="icon"> <iconset resource="icons.qrc"> <normaloff>:/icons/info.png</normaloff>:/icons/info.png</iconset> </property> <property name="text"> <string>&About</string> </property> </action> <action name="action_Format"> <property name="icon"> <iconset resource="icons.qrc"> <normaloff>:/icons/format.png</normaloff>:/icons/format.png</iconset> </property> <property name="text"> <string>&Format MD</string> </property> <property name="toolTip"> <string>Format MD</string> </property> </action> <action name="action_Quit"> <property name="icon"> <iconset resource="icons.qrc"> <normaloff>:/icons/quit.png</normaloff>:/icons/quit.png</iconset> </property> <property name="text"> <string>&Quit</string> </property> </action> <action name="action_Connect"> <property name="icon"> <iconset resource="icons.qrc"> <normaloff>:/icons/connect.png</normaloff>:/icons/connect.png</iconset> </property> <property name="text"> <string>&Connect</string> </property> </action> </widget> <layoutdefault spacing="6" margin="11"/> <resources> <include location="icons.qrc"/> </resources> <connections/> <slots> <slot>on_trigger_Format()</slot> <slot>on_trigger_Download()</slot> <slot>on_trigger_Quit()</slot> <slot>on_trigger_Upload()</slot> <slot>on_trigger_Delete()</slot> <slot>on_trigger_Rename()</slot> <slot>on_trigger_AddGroup()</slot> <slot>on_trigger_Connect()</slot> </slots> </ui> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer.icns����������������������������������������������0000664�0000000�0000000�00000745442�12262477515�0023167�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������icns�Ë"is32��Ĩ™�‘’��€G…FšŊĒ�UzwFvwvv}šđđБj‹‘›œ™—ŧĖŋŠĢ›`}žŲÏÕßÏĘŊ֡П�VdƒŠ…ˆ§:u§��NQMLLMMLK^‹EJ€�$N`kkhXSS\UhTBüž�Rhqqob^_j`fT@ðäÆQ_]]^€WTU`\n™�įÝO[Z[UoĢ{PgĀąĻėáMWXUežŲęՂÁðâåîŲJW\T†ČëėŨÔõóïíãÕ@USOrÐßÖØŧģðęÕÕ�0..+,•ŌƘ>DÕä€�™�žŸ��‚ƒ€‚ƒ€ZÆŧŊ�‘ū―8ļĩĮÉļŸĨÕÍÎÎÍÎËČÂÍÖÎ―·Đ ÍÆÃūÂÉšģĨŌēķš­�ÅÂ―š―ÁÂÃÁ„–ą��™đļđļīķž™p€�|™ŋŋĀĀžšļķ·―Ž„Æ“�›ĮĮČĮÅÄÃÆÁÅēŠēÍǚÄÂÂÄđēēķÅÃļ§�ŅřÃÁ·―ÓŨÂēÁÉČžÕ˘ÁĀūšáņũížÏÚÓŌÖū˜ÁĀļČéũøïÜäâØÖËđ‰ķĩąšéóïņāÉáŨđš�jhhdqÂėęȁjĮπ�™�,.��;;…:7iWA�Ilgh€g7b`hWC(^{t}}|{wtjvj5&9Sg‚—“”•‡}as^X68�GO]^]^``a]a+1A��?<€9€;9?_5€� @LZZWD??JCS@3€�lDU``]NJJWLSF:�C�BJHHICEEBKKG9�8C@FEE@_’™m>A<EVI=AC@TķÔįŅdK($1;BIAyÁčéЖoM2*2A@;dËÛŅÓŽkqZ$%�$""ŒÍŋ2[^€�s8mk������������������������������L&�� ,********+ŸÐ#�›ĸĸĸĸĸĸĸĸĸĸþõĸÛ ­ĸĸĸĸĸĸĸĸĸĸþþĸûkŦĸĸĸĸĸĸĸĸĸĸðôōq�ŦĸĸĸĸĸĸĸĸĸĸÖžk��ŦĸĸĸĸĸĸĸĸĸĸÉF���Ŧĸĸĸĸĸĸĸĸĸĸá?�ŦĸĸĸĸĸĸĸĸĸĸãC‚ Ŧĸĸĸĸĸĸĸĸĸĸýd�ÔWŦĸĸĸĸĸĸĸĸĸþĸĘfí…ŦĸĸĸĸĸĸĸĸĸþĸüïĸJŽĸĸĸĸĸĸĸĸĸĸþĸĸĪ žĸĸĸĸĸþþĸĸĸĸŧF � 531GŅĸĸðQ0•y���il32��Ōĩ�zz›� žš�Âķž•l€�+5PQ‚P‚O�N€O NFA—ķšļžy��1Vvs‡r€qoqƒ·Â·šģĒr�3Ž‹‰ŒŊĮŅČÁšŊĪĨĶ3Œ‚|†‚€„[…ƒ‚ŪÎĘÅĀ―ļĨ”Ž €3y‚vĐÕŨŨÕŨŲÔÓËŊ­Ŋ•g­ÅÅĮÓÓĘē™ĐĒ„2swsšîķÅåËŽŲčåāßÝŲĮŧÅĘÁ~lļĶĨĨ‡��1kkpšįÎÃÖÄūÔä‚á Õ·ÄļY<2ŊĪŠx€�1ecgv}~~}€~ƒ} …ŽÉ‰J93ąŽ`�0^WWŠV U\˜ÃxF1?Z‚�0XŠQ€RPvĩtG+?iƒ�/VONMOM€N�OP OLMOQ~wY=)„� 0YYtyiwxwr_R€S NlSMZab\V(ĸÔՁ� 0\a}€|„‡}cX€YZs_ZgjY[X'�ŌØŨŧ��0_a`^fa^da_`ceccdda`[&��ÎãÜÓ�0_ˆabbacbabcabZĸ��âęŌŧ0‡]^[TRY^ƒ] VŸß��ÞėÝØ0†\YJPfkZDT]\\[Yģé„��ßęãÜ0…ZWN}œœŸ›”\M[Z]ĩïåvqÛæïäÔ/„XzWOƒŊÓëïæČaNbļïíéĨ§âîîáß/VUVVWVVSbķãëæïîëܑ]šôðėïęóïėïØÎ/VU\\aXcMˆØãØÓņóíæÃĀöôóîėíėíîäÐ�/SU\\_WdL–ãËÚõôäÖÓÕčõõôōïîïíæÔž�/SV€STRMˆáÖččÓÕÖÖÛÖāũõôōåãāŌ/��.AUTS€RPaÛåčÐŅÜÚĖĀĄ„īņôîÐŅہ�,2::98@‡ãäÕžđŧģaL<JËóėĢ„�‚ /FuÅáÛÔĒT2��§Ó氍�5=>R[E?Bƒ�ÆÃĢ�ĩ�ˆˆ›�ŽŠœ„��!„„ *�ĖĀČĒw€�doŠŒ†‹…Š ƒj ĀĘÅŦ…��h“š€đŒļ ­ŦĨÂÍĮÉÂŊ€�iŧ؈ՂÖÕĮČŅÜÕÐÉÁđ·ģŒjžÖÐʀË�ˁË_ĖÍÍĖÍÎÂÄŨÖŌÎĖČđŽŋ­ŽiđŌËČÍŌÓŌŌÔÏÍÆ­ŦŽ—rķŌŌÓÝÝÕİŧ°œ’i·ÎĘĘŌĨēÏ·ÃÐĖÆÄĀŧŊ―ÓŨɞ‡Âŧđģ”��iģÉÉÄÁ°ĐļĐĨķ€ŋ ūūŧŋŌŋ‚ešļķ…€�i௯ÉČƒÉ‚Č ÉÃŋŅŋŽežļo�hŪĀŋŠū ŋđ―Ęďpjšj‚�hŦđļļ·ļ„ļĩžÎŋ”aiwƒ�hŠīģģīģ‚ī ąŦŪē­―ŧķ‚^„� hŽĀÅÆÁČÆĘÅū€ŧ žąđąēģĩžÁŽ[ĸĩķ� h­ÅĘÉÄĖËÎĘ€ĀÁžÆū―ÁÂūÃŦZ�ąšđ‘��hŊÅÃÂÂÁ„ÃÂÃŀà ĎZ��­ËÂī�hŊŇÃÄÄÃĀÃÄÃÄŦQĸ��ĖÖģ“hŪÅÂÄĀīēžÄ‚ ÃŦ’Ģ��ĘÖÆĀh­Â„Á― ™Ŧ°Ą”īÂĀÁÁŋžŨĪ��ĘŌĖÃhŽÂ‚ĀÁŧžūÚÚÛÚÔĢŠÂÁūūÜÔĀ͝ÏŨÍļhŽÁ‚ŋūĪÃâîũųöęØŠ°ūÂÚÓÖŧÅĖØÖĘÉhŦĀ‚ŋļĶįôũõųøøōĖĪČáŲÓÛŅÚØŌÛ―ŊhŠ€Ā=ÂŋÃĐÅņôðîųúøõÜÂäæâØŌÔÓÓŨÎē�hĐĀĀŋŋ―ÂĪÐõëņûúôïîãÖįįåáØÖØÖÏļi�hŠÂ€ŋĀŋŪÁõïööî€ï ņäØéįäãÎĖÉķ€�gŠē€ą°°ŽĨóôöííņðėéÓđŧååß췃�eo„{‚žũôîæäæÞĄ…|vļæÜp„��>„Lp‹­äõóïĖ•zI@’·Õ‚�~‚…“˜‰ƒ‡ƒ�ΟĢ�ĩ�›�FC&š�ij1�!*DƒE‚DCBBCF64hXb@��&Jiƒeƒd‚cbTYQgxRVUE��(r|}†|‚}{hq‹{jY@$2I (s~sfjƒk‚jii^lˆ€si`V(�9?(lsdx•™›€œQ–”{xvkLb{tuŒ‘H 2>%'ef`‚ΆĢ“€™ ›“ˆ‚nes}zB'g)-F��&]Y^w„|y‚yw†‚€w`lh5+"N'P€�%UOTaŠdaXuP7*#YS‚�%NAB‹A>RrR6$ !ƒ�$G<Œ=8N~N6 „�$E;:9;€9:;< ;9:;:aSC/„� $HEdjXhhfbL=€? 9]@9IQLFE„�$KMmqnupznPBDDCEcLFTXEGH��€� %OLLJSMJQMK€L KPSPOQRMKK€�030�%P€M�L„M€NPNMNOMMJ€�HP�$L†IJGA@EJƒIH€�e*>K$LF„GE8AX]L5@G C=m ��X@C$J„EC?p’‡M:FF@>8JLh>@+$H„CN?vĪÍéîäÁ‘R;?F3�MARF"�CV$F@AABAA@UŽāéãíė樄7R_�<=6�-/'$E@HHNDQ<}ÓßÓÎðņëãĨUr`V�&B&�#B?IILCS:‹ßÄÖôóāŅÏŊuymgP%?1��#B@€>?=;|ÝÐææÎÐŅŅÖą|‡obm:2@7€�"2B@?>SÖâåĘĖŨÕÅđ˜aR„^~:?‚�!%‚,++2|ÞāÐī°ēŠUB3$Ar…��‚"9jŋÝÖϙG#� /sŽ�'/0EN914ƒ��Ī�l8mk����������������������������������������������������������V������������������������������ ĸj��������ĸú|���T{yyyyyyyyyyyyyyyyyyyzM2ĸĸýŒ��0ĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸüÏĸþĸĸ�Wĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸþĸþĸĸþþþĸĸ·$VĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþþĸĸĸĸĸĸĸĸþĸæVĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþþĸĸĸþĸĸþþĸÖ7Vĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸþĸĸĸ°þĸĸÎ0��Vĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸ˜üĸĘ+���VĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸþË#����Vĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸũ&Ė�����Vĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸ”������Vĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸä=�������VĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸU����VĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸR� RM��VĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸQ��4Ģ€�VĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸL��üYVĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸÏ��sþĘVĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸø?��ĸĸ Vĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸöx0ŲĸĸVĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸú•ýåĸĸōVĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸœVĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþþĸí.�VĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸæZ�Yĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþũ۟D��1ĸĸĸĸĸĸĸĸĸĸþĸĸĸĸþĸĸĸĸĸĸĸųW/����T‰‡‡‡‡‡‡žĸĸþĸĸĸĸĸ܁†‚žĸũ�������|ĸĸĸĸĸĸÏ% ˜ĸ����������������6ŸÚãžc������q#��������������������������������������it32��U~����ĸ�ĸ�ĸ�ĸ�ĸ�Ö�yyû�wwxú��x€wų�wxuvwø�u}Ÿ|vxũ�t}ÍÃ}vxö�t}Ïé΁uxõ�t}ÐáįŨ‰uxô� t}ŌÕÁåܓvwxō� t}ŌÖīžáޞxvwņ� t~ŌŨ·īšÜßĻ{vwð� t~ŌŨ·ķīļÖâē}vxï�t~ÓŨļķķī·Ðäūux‘�*+*+Ė*�+€*�+‚�tÓØđ·ķĩīĩÉåɆsxŽ�*++**Î)**€+�tÓŲđ·ķķĩīģÂäӏrxŒ�€+*+4>B‰A™@’?>:0)*)1|wxu€ÔŲšļ·ķķīīēŧáØ™twx‰�*+**K‚™›š’™†˜‘—‚–‡•†”m]o{{|}|†ÖŲšđļ·ķĩīģē·ÝÛĄ€wˆ�+*(PŽœ™ƒ—†–‚•ƒ”“Ž’‰‘€‘y€‰•ŽŋÏÛâåëŲŧđļ·ķĩĩīģąīØÞĻ{ww‡�*)3€Ÿž’…•€ą!|yyŒĨÆäðėįãāÝÚÛÎŧšđļ·ķĩīģē°īŌâąvx…�++(F’Ē—€~Č$}wu”đÞïæÛÓĖÆÁ―žžššŧŧđļ·ķĩīģģēŦŠÂឃtx„�++'P˜Ī‰É„s†žāîÝŅĘÄÃÂÂÁĀŋŋū―žšđļ·ķ€ĩ ŪĒ™›ĩāȊrxƒ�++'TœĪ‰Įˆ‡~rŸŲîÝÎɀÆÅÄÂÂĀĀŋū―ŧššļļ·ķķŦœ˜™­ÝŅ”qx‚�++&UŸĻŒĮ‹wŊčįÐĘÉČČĮÆÅÄÃÂÁĀŋū―žššđļ·ķ°š˜˜€™˜˜ĪŲŨžswx€�++&V ĐÆ„yąïāËÉĘĘÉČĮĮÆÅÃÂÁĀŋŋ――ŧšđļ·ĩž„™˜˜ŸŌÜĶ€w��++&UŸĐ…�Žš!Ž‡yŠņÜČČÉËËĘČČĮÆÅÃÂÁĀŋŋ――ŧšđļļŠš˜ƒ™˜˜ŸÎÛĨ€w��++&UĶ‹„Š‚qjļi!jrƒwîÝĮĮČČÉĘÉČĮÆÅÅÃÂÁĀŋū――ŧšđļퟘƒ™˜˜ĪÕØŸrwx€�++'TœĪ‰ƒˆc_^ąZ([\\[ZZ[_`qŠäâĮÅÆĮČÉÉČČĮÆÅÄÂÂÁĀŋū―žššđ𮛘‚™˜—ĐŲԙqwy�++'SšĄƒ†ˆnbcvĒĪĢĢ‡ĪƒĨˆĪ„Ģ6§ĨĪĢĒĄ§§Ķ§ĒĄĄĨ§–“œĪĢ–kmxÏëĘÃÅÆÆĮČČĮĮÆÅÄÄÂÁĀĀŋū―ŧššļ·Ī˜˜™˜–ŊÜΒrxƒ�++'S˜ „‚ƒ…kdfĨïíėė‚íîîïîî„ïîîïîî€íîí€ė€ëėÄŨŅÔíðļšŧēééëʼnz‘šģâį†pĶîÓÁÃÄÅÆ€ĮÆÆÅÅÄÃÂÁĀŋū――žšđ𰝘™˜—ģßĮŠuw„�++'R•‚€‚kegŊęæįææįčįčįččéé„č=ééččįčįčįæįææåæå葉§ĶŨЁf†ŊÂæäp †(3ˆč‘xāãĀÂÃÃÄÅÅÆÆÅÅÄÄÂÁŋū―žžŧđļȘ€™˜™ĩáĀ…vx…�++'Q”›~‚}~kfh°ęåæįææįčįčį€č„é0ččįįčįčįæįæååæåæįŒŠ“„ČŨ™žz†ÔäåœvJQ zԄĻëËĀÁÂÃÃÄĀÅÄÂÂĘŌÚáåčééÖŧšđīž˜€™˜™·âž‚ww†�++'Q’™|‚z|kgi°ęæåæįįæįččį€č„įčįčįæįæåæåææåäååƒä6ããâáâáÚŦŽĨÞēwÖäūĀÁÁÂÃÂÃÃÄÃČÚčëëęāÓÉČäŲŧđļŽ—˜™™˜™ŧãŧ~vw‡�++'OŽ•y‚xynlnēęåæåæįæâÞäčâÞįƒčâäããāáæįįæåæåææåäååäãääãäâããâ€á/âááãâݘãŅūŋĀĀÁÁÂÂÃÉÞëįŌ°xpsr{ÓŲšļĩ˜™™˜šūâđzvxˆ�++'O”v‚uvomoģ怿 åæä́Ŧ֗€ßčé•Đ„•Ėčæåæåæååäåäåäã€ä�ã€âááā€Þ ßßā·­čÂ―ūŋĀÄÔėÞž‹mhVGCĪuÓŲđ·Ĩ—™™—Åāĩwvx‰�++'N‹’t‚stpoqģé偿âˆ|ƒ‘ÅãāÜåãÛívx[Šr‘”傿‚å�ä€ãââ€ā�߁ހßÞáÁ{Åã€―!ūŋŋūÄÝíÏi\L;,'(�tÓŲ𩗙™–ĄËÞŽuvxŠ�++'M‰rƒp qqsīåáââãäáˆ|°ŠĻîéē—ØĖŽŌx™‹‰€ģ’⿀å�ä€ãâááāāß߂ޅß(âķzŌÚžž――ū―Áßę­y_?59;4** wÔŨŠ™˜˜–ĪÏÚĒuwx‹�++'L‡oƒmqqsīã€Þßß܃Ϳ―swŲËūÛÖŧßjŅ­~VoĐâáāß„ÞŠßŦƒØŌŧŧž€―ØėĪwt='5;;6*+yŅ˚˜˜—ĶÔŨ™vwxŒ�++'K„ŠmƒlruwķãÞ߁ÞÏŨāÜÅŧÜāáßßááĘÝÖÎÄÆØß‡Þß&ÜĪ‹ÜĖšŧŧžšĖï°z|y5*5;;7**!{}ĖÆš˜˜§ØÓ”wwx�++'J‡g‚feruwīæīáÜĄÝÉđ€šŋāӃrv6*5;;6*+ {|ËÆš˜ĻÜŅwwxŽ�++(J…gƒepvw€ŦŦēŠ$ŦЊ‘ÝČđļđļÉėžxf}t6*5;;5**y|ËÆšŠßϋux�++(I}‚eƒdfvxxķv!uÛËļ·ļđÕՈld{r5*5;;3*+�v|ËÆ°ā͇tx‘�++(I{€c„beptĩu!ts‡ŨÐ·ķ·―āđ{eayp5*5;;.*+�u|ÉŨâÆ‚tx’�++(Hy~`„_�^·]\f{ÐŨ€ķŋå§m`^wo5*5;8++*�u|Éä―~tx“�++(Gv{[ĀZanÁāīĩīÁâže[Zul4*5<0€+�u|Éĩ|vx”�++(FuxXŋWVZiĐãķ°ąÁāšaWVrj4*68,*+��v}•}vx•�++(FsvWĀVUcŠÜÅĐŦžß™]UUog4*50€*��wxxww–�++(EqtUĀTS[mĮÝĒĪĩߛ]TSme4*-+*+€��x€w—�++(DorSÁRSb˜ß·œ­ßĒ^SRga5)**+*€�€w˜�++(ClpQÁPOXjĘØ™ĄÔŊgRPfa;)+**�xw™�++(CkmPÂOP\‰Øš”ūŋtROcbF(** �++(CijPÂONR^ĄÎ ĪƃXN]bV/)++*+*œ�++(BhjOÄNSdĨŧžī˜cOUb_I-)€*�+œ�++(BhjPķO€PˆOPUiŦĶĻsXP^c_N7€*�+œ�++(BikPīOPNHFIOP„OPOIGLbŸœŠ_TRbda^T,++œ�++(CkmQēPQQF€A@CLQ‚PQLC€ABR{ŠˆrWSS_dd],++œ�++(CloS†RQRRQRSRQQŠR�Q’RQGDD€E DCIPQQRPIDD€EDBJjutbTRQZe^,++œ�++(CloT€SRXx{urcTTbs~|iYPc‚jSSTyke{\RU|iQS MHHTq€sWIHHKML€HPkx]IGM`jm]SQYe^,+.�ÐŲÚŨÕÐÉČĒ�++(CmqU€TQhčĐšęv€Ðļ“ŦāŠQ“ûá…SYč­kāĢS™ækQŽT RMKRt“Ģ”uTLL€K#LKOlĢš}[KLQZfj`TZe_,**�ÃÂËŅÕØŲÕÏÉÂļ�++(DnrV€USgāĩ’âŒÓŽGJB~úzŽÓĄÕ˜XÞŦDvŨĒÚiNU SPNYzœģŸ|YƒPNTr•ģ̓`OOSTU^ea`f_,++€� ―ĀČÏÕÛÝŨÎÉŋŽ�++(DptV€USgāđ„Šo_ÐŋVML—ũlŲcrÐģÝŦNJžú|NVŽU VTSPRoŒšŽpSR‚S QPh†š“xYPSUW\fpe,++ƒ� ÁČÎÖßáŨÍÅ―Œ�++(DptX€WTjîĢSLPVr―ÍđĘʃP˜ãsNcÄĸ°NQĸd‘W XZYKYlvnZLX‚Z YMUiuq_NT[‚WV`ng/*+„� ūÄÉŅÝéāŌÉĀ‹�++(Eru[ZYYXƒZXYX[YZYXZZWZZYZZ€Y‘Z \acRKQTQITa‚b cVKPSRKO`c[ZYale-*+†� ÁÅÍÚėčØËÃŋ‰�++(Esw\Š[Z[Z†[�Z[�Z“[ ehgUHIIUfhhihi€h�Y€IOcic\‚[bme,++ˆ�ÃĘŨïíÞÍĈ�++(Ety_ą^]`nqqmgkqqph`]_goqrngiqrna]^]dof,++‰�ÂĘÜōņäÎÅÁ‡�++(Fuybēa `drvxyxvoc`€a `couxyxvqd`‚a`gqg-++Š�ÂĘäôõįÏÄÆ�++(Fuzbīa`jqtqg…a`gqtrjb…agpg-++‹�ÄÏðôöįÍÄą�++(Ftzaķ`€_ˆ`€_‡`gpg-++‹�ÃĮÞöņũåČÅ�++(EtyŅa`fpg-++Œ�ÃÐóņņųÞÃĄ�++(EsxaÐ`_ene,++Œ�ÂÉčõíõö΄�++(Erx`Ņ_dme,++�ÄÉ� ÂÅßøîíųėÁă�++(ErxŅ` _dme,+(ĸÃÉ� ÃÁØøïėōøŌÂĂ�++(Dqw^Ņ]cle,*DĖÃĉ� ÄĀÕöïėíøéĀÂ�++(Dpt\§[‚\[\š[ald+8žĮÄÉ� ÃĀÓõðėėôõĘ‚�++(DptĪ\�[€\ ZWTROMLMNPSUX€\[[”\ [bl`A–ÏÕÅÉ� ÃĀÓöðėėïøÚĀā�++(DptĪ\]\TMF@;75459=CJPX]•\ [afwĒÎæïʼn� ÄÁÕøïėííøæĀÁ�++(Dot\Ą[\[PE>843228@BA<41246:AJW\“[ Z\€ģÍëüíÄĉ� ÃÂÛųïėííũíā�++(Dot[ŸZ[\SC;743B\o„‡ˆ‡†ƒxgP7258=JZ[‘Z V}ĩÍïúøíމ� ÂÆåũîėííôðĘÁ�++(Dotž[ Z[ZJ:856[€‘“–„˜ —•’pH368?U[Z[ ZY}ļÐōúņöîŋ€]a†� ÄÂĖóôėėííóōÎÁ�++(Cmq[ Z[YC776\Ž——˜�—€˜——˜ —•yD678P[Z‹[Z[~ūÓóúïíöîŋ€aefk„� ÃÄŲûðėėííōóÐÁÀ�++(Clq›[ Z[[W>67H™˜—‚˜„—€˜ —˜š“a<77K[[Zˆ[Z]€ÅÕôųîėíöîŋ„glnpq‚�ÃÃĘôöíė€íōóÐÁĀ�++(Clq[ V=6:\‘›˜—˜˜€—––˜šš™˜––——˜˜—˜œxF77IZˆ[Y^ˆÉÖõøïėėíöîŋ‰nrtvwz€�ÄÃÆåûðėíóóÎÁ�++(Clp[šZ[V>6;h—™—˜˜—––œĶ­īŧĀĀŋđēŦ̚•–€—‡N58K‡ZW`’ÉŲũøïėėííöîÁtxy{€~�ÄÂÄÞüóėėíôņËÁ�++(BkpY™XYWB78l™™—˜˜–•§ŧĖÚæ€íėííėãÖČĩĒ”–˜—›O3:NYƒX YUbšĮÞųũîėíöíÅ­v~ƒ‚‡ĖÁĮāûõíė‚íöîŁ�++(BkpšYZH84g˜˜—˜—“ĻĮÛčėęéé‚čééęėæÖŋŸ”——™ŠG4>SƒYUfĄÅãųöîė‚íöíÄĮ�€ƒ„Š›ģÂÏéûõîėƒíųčĀÁ�++(BjoY˜XYQ<4V•˜—˜–™ĀÜčęéč�ę€ë�éčééåŨą€—˜€:6GWXUg§ÆčúôíėƒíöíÄÂÍŪĄ­·žËãôúņíė‚íėïøÜĀā�++(AhnšV D6<Ž˜—˜•ĄÐäį€éčéë„íęččééčįãĀ™—˜–k2:P€VTg­Čęúóíė„íöíÁÁËÛëũųõîíėƒíėóõÎÁ‚�++(AhmV—UVO<2r—˜˜–ĨÕåįčééčęíî„íîíé迿ə˜˜ŠM4FUVVfĩÍíüõïėė„íöõæįęðũųúųóîėíė„íėøîĀÂ�++(Agl™VG4G˜——ĪÔææčéččęí€îïððïîíéččéčåįȘ—™o5:RVjŧÏïýöóōņîíė‚í�õ€ųøöõņî€ė†íėņųØÁĂ�++(Ahl–VUVR?2l•˜—Ėčäįč€éíîęāę‚ņ�ï€îíéččéįäįŋ—™†I3LrūÐņýöóōóóōîėė€íėėí„ėˆíėíøóÃÃ�++(AhlŒV€U†V O8<„™˜—ŧčãåč€éėîîĐņ€õôōð€îėčééčäãäŪ•—[5pŋÓôýõōōóóōóōîėí€ėŽíėóúÖÂă�++(Agl…VUSSU€VTVVT€V5USSUUJ3R˜—ĢāäãæéčéîōîëškkïõôõõôņïíîíéčéčåäãԜšszŧØöüõ‚ō€óņíė“íėïûéÃÄ�++(@gl„VU\miW€Ubzx^UVUZklYTE2c•˜•Č€ä%įééčūČņðÆ’°ōôõôõõóņîííęččéæääāđ•§―Üũûõƒóōōóóðíė‘íėîũôĘÃĄ�++(AfjƒVDUUwĄ•gTUTw§ oSUTm›œoRA3oš— ßãääįéėī{…ĖóïįðôöøöôõóņïííëčééæäããŌēÁßųúôóƒôóóōóóïíėíėíõųÓÃą�++(@dh„V'RyĒ—hQVPn•gOVRnrN>8uš•đáâääįéė­q{Ęóōô€õũõôõóņïííëčééæääâÎÃáúúôóƒôóô€óōóîėŽíėíõúØÄÆ�++)?dgV‚U*VN]tnTQVOSeaPPVPXprXL<<yš”ÍāâääįééįļÆóîðóõõ€ôõõōðïííęččéåãŅūšÅáúúôôóƒô óôóôóōóîėėŠíėėíõųÜÄÃĆ�++)?aeU‚TURJMLMTUTLJJMUUSLLMKQ;=zš•Ûāâäãæ€éëðíîðņôô€õôóņðîîíįæâÓūЧĻŦžÄÞøúõôôõ ôôóôóôóōóïíėė…í€ėíïøöÛÃÃć�++)?aeƒUXTUSOPTUTUUSSUUTUTOPTR=9w™ÜÞáääāÓØčéëîíîðņóôôóōņðïíįÞÐ―ŦĨĶŠą·ÅÛØÃØöüöõôõõôõõôóôóôóōóņííėėí€ėíîõųïÔĀÃň�++)?ae—UR@4q™ĄÜßāãį·y„ßééėîíîï€ðņōïäÚΞŽĪĪĐīūĖÞïöōíŲÃÓōþũõôô€õôôóôôóōïíƒėîðõúóâÉĀĊ�++)>aeU–TSC2g– ÛßßâčĪnl݀é!ėîíîîïņåÔĮđŽĨΧĩÆÕâïôņíéæäãÕÅÍėþøõôõôôóóô‚ōðïîîïņôøûóâÐÂÂċ�++)>aeT—SH3WšÛÞßāäÓ°Áééččéëí€îĖķŽĶĪĨ·ËÞæïóðėéæäáßÜÚØÐÅĘįþųõ ôõôóôôóóöøøų ûüöčŲÍÄÂÃČ�*+)>`fUS–T5L6B†•ÕÝßßâäáåįčéččééęíÁŦ§§·ÏåėïņïëéæãāÞÜŲŨÕŌÏĖÉÄČãýúöô€õôóôóôóųûöõņíæÝŌĘĮÄÂÃÎ�*+):^e\S–TO=2u”ÅÝÞßßâãääæčé€č&ęÏĐĐŧčóņðîëčæãāÞÜŲŨÔŌÏĖĘČÆÃŧžÆāûûõôõõôó€ôóúðȀÆÅÄĀÃ�Đ�€*2Xee[R•SRD3SŪÞÝßßāâãääåč€é.ęŊĐļððėëčåãāÞÛŲŨÔŅÎĖÉĮÅÂŧēŠĐŦļÂÜųûõôõôóôóôóúïÆÃÄ–�€*F`ddc…^‡]ƒ\B]S?8„ŲÞßßāâãäãäæčéęÛŦŦÔíįåâāÞÚØŨÔŅÎĖĘÆÃĀđąŠĐŠŠĻĪĪšØũüũôôóôôóóúïÆÂš�++*-H[ab„c�b‡a„` ^J<SšžāÞÞßāãã€ä1æįęÓŦŦÚäāÝÚØÖÓŅÎĖÉÆÂŋļ°ŠĻŦާŸ—ƒkUO…·ÓóüũôóôôōóúïÅ›�*+**7AFG€H†GˆFEE?<7kĢÐ߀Þ.ßáââããäæŨŦŦËÜØÖÓÐÎĖÉÆÁžķ°ŠĻŽ­Ķ“hTA<?AA;g­ÐíýøôóúïÅœ�*+*)—(.)()278uŊŲÝÜÝÝÞÞßāáâãáŪŠīÐŅÎËĘĮĀđīŊŠĻ§ĻŦw]B+%'(‚)$NŸÍįüųôōōóúïŝ�++*+™* ,77?|žÛÜÝÜÝށßāâÆ§ŠīŋÂū·ąŪŠĻĻĶŠķÄeF:-'†*+%MąÉâûúóōóųïÅŸ��*š+%787B}ĀÚۂÝ�ހßÝšĶĐŦŽŽŠĐϧĐķĮÓØl867-)ˆ+ ĨÃÅÞúúóóųîÅÂŋ�€7?s―ŲÚ܃ÝÞÞÛÁĻĻĐĐĻĐ·ÉØŲÛŌe9788Œ� ÃÃÂŲúúôųîÅÂĀ� 7878`ŦÔØÚÛ݂ÜÝÝŨÅūĀĘÛÝÛŲÚšU6778�ÄÁÓøüúîÅÂÁ� 8873D…ĀÔŲŲÚÛÛ‚Ü ÝÞÝÜÚÚÖȍ>488’�ÄÁÎóüîÅÂÂ�€8 61N‰īĘŨÜÛÛ‚Ú ÛÝÛÍš•P.688”�ÄÂĘïîÅÂÃ�878751Ci‹ĒģŋČĖĖĘÂķĻ’qH-4887–�ÄÃÉÜÅÃÅ�8787622<MYcgge\P@1258˜�€ÃÄÃĮ�78787755‚45678›�€Ã�ÄÉ�€7 8788778787787ž�ÃÄÄĖ�887887878Ģ�ÃÃĸ�ĸ�ĸ�ĸ�ĸ�Ž�ĸ�ĸ�ĸ�ĸ�ĸ�Ö�……û�††…ú��†€…ų�…‡„„…ø�ƒ‹ŽŠ„†ũ�ƒ‹ÕĖ‹„†ö�ƒ‹ÖîŨƒ†õ�ƒ‹Ũčíā—ƒ†ô� ‚‹ØßÏęãĄ„…†ō� ‚‹ØāÅËįäŦ‡„…ņ� ‚ŒØāĮÅÉäį…ð� ‚ŒŲāČÆÅČßéū‹„†ï�‚ŒŲáČĮÆÅĮÚęȎƒ†‘�`a`aĖ`�a€`�a‚�‚ŒŲáČĮÆÆÄÅÕëӓ†Ž�a`a`__ž^_``aa�‚ÚáÉĮĮÆÅÅÄÐëܜ†Œ�€a`bv}Œ†Œ…‹„ƒ‚{m€`cˆ…†„ÚáÉČĮĮÆÅÅÃËéāĶ‚…†‰�aa`a”φÛļڋŲŨÓĢ{‚ˆ‰€Š“ÜáĘČČĮĮÆÅÄÃĮæã­€…ˆ�``]™ÕÚÚŲØŨ†ÖŽÕ!ÖÖÐÄΉ‹”Ē·ÉŨáčęïáĘÉČĮĮÆÅÅÄÃÅāæĩ‰……‡�`_pÄÜÚÖŅ–Ï�ÎŪÏ#ŅË𛆖ŊÏęõņíéįåããŲĘĘČČĮÆÆÅÃÃÂÅÜ鞍„†…�``]„ÏÝØÉÏŅĀ „žÃãóėãÜØÓÏĖˀĘËÉČČĮĮÆÅÄÄÃūūÐ译‚†„�aa\ŽÔÝŌĮÐ ŅÐī‹’ÅåóåÛÕŅ€ÐÏÎÍÍĖĖËÉÉČČĮÆÅÅĀ·ģ°ąÆįҘ€†ƒ�aa\“ŨÝĮŅŌÐŦ„ŠßōåŲÕÓÓŌŌÐÐÏÎÎÍÍĖĘĘÉČĮĮÆÆūēŊ°ŋåÚdž‚�aa\”ŲÞÔÆÓ ŌŠ…ļėėÚÖÕÔÔÓÓŌŅÐÏÏÎÍÍĖËĘÉČĮĮÆÂąŊŊ€°ŊŊđáߊ…†€�aa\”ŲßÕÆÔŊ…ŧóįÖÕÕÖÕÔÔÓÓŌÐÐÏÎÍÍĖĖĘÉČČĮÆī„°ŊŊīÜãą€…��aa\“ØßÕÄÔÕš„īôäÕÔÕŨÖÕÔÔÓÓŌÐÐÏÎÍÍĖĖĘɀČ―°Ŋƒ°ŊŊīÚⱆ……��aa\“ØÞԄÓÐÉšÆ ËÆ§ōäÔÓÔԀÕÔÔÓŌŌÐÐÏÎÍÍĖĖĘÉČČÆĩŊŊ‚°ŊŊļÞߎ…†€�aa\“Ũ݄ŌÏÄģÂ(ÃÄÄÃÃÂÃÃŋŽ–ééÓŌÓÔÕÔÕÔÔÓÓŌŅÐÏÏÎÍÍĖËĘÉČČŋąŊ‚°ŊŪ―âÜĶ€…‡�aa\“ÖÜŅ‚ÐŅȀÃ�ŀɀĘËĘË†Ė‚ËĘÉ!ČÉČËÉÉČĮÆËËĘĘÆÅÄČÉŧđĀÆÄÂÆĄ…ÖðÖÐŌÓӁÔÓÓŌŅÐŅÏÎÎÍÍĖĘĘÉČĮļŊŊ°ŊŪÁå֟†ƒ�aa\“Ö܃РŅĮÄÄÂËÏÏÐÐŅŅ€ŌÓÓÔԃÕÔԀÓŌŌ€Ņ�ЀπÎÏŦŧķļÍÏ ĄĒ›ČĮÉĻvm†Œœŋ÷ˆ°ōÝÎŅŅŌƒÓ ŌŌŅŅÐÏÎÍÍĖĖˀÉÂģŊ°ŊŊÄįҘƒ†„�aa\’ÕڄÏĮÅÅÃÎ΀ÏÐŅÐŅ€ŌˆÓŌŌŅŅÐŅÐπÎÍÎÎυ}—–ŋđw_{ŦÉĮex'2yŝ‰åéÎÐ€Ņ ŌŌÓÓŌŌŅŅÐÏÎĖ€ËĘĘËÉČČžŊŊ€°ŊŊÆé˓„†…�aa\’ÔڄÎĮÅÅĀÎÏÏÐÐŅ€Ō„Ó€Ō)ŅÐÐŅÐÏÎÎÍÍÎÍÎ΀˜…yēŋŠpzšČȍvKM!jž‹ģïŨÎÏÐ€ŅŌŅÐÏÕÝãįėîîíßĘĘÉÄīŊ€°Ŋ°ĮęĮ……†�aa\’ÓŲ͂ĖÍĮÆÆÄÎÎÍÎÏÎÐÐŅŅÐÐˆŅ€Ð ŅÐÏÎÎÍÎÍÎÎÍĖĖ˂ĘÉČČÆÅÆÄŪŊǃ―Ķ„ÝęÍ΀ÏÐҁÐÕâîðïîåØŅÐéáĘČČŋŊŊ°°Ŋ°ĘéŌ„†‡�aa\‘ŌŨ͂ĖÍČČĮÅÍÎÎÍÎÏÎĘČÍŅËČÐЂŅ!ĖÎĖÍĘËÏÏÎÎÍÎÍÎÎÍĖËĘĘÉĘÉĘÉČČĮÆÅÅÄÄ€Áū—›čÛĖÍÎ΀ÏÐŅÕæïėØļœ‡€€ˆŲáĘČÅģŊ°°ŊąÍčȄ†ˆ�aa\‘ŅŨĖ‚ËĖÉČČÅ̀ΠÍÎ͕xœÁ‹wʂŅÖĒ‰šz‰ļÐÎÍÎÍÎÍÍĖËĘ˂ĘČĮÆÅÄÂĀŋ€ū ŋŋĩŒļėÐĖÍ̀ÎÏŅÞņä؁‚vnl›ƒŒŲáÉĮšŪ°°ŊģԿ…„†‰�aa\‘ŅքˀÉÅË́ÎË~twy…ēĖĘÆÎÍÆÕopWj…ˆÍ‚ÎÍĖĖËËĘÉČĮĮÅÃÂÁŋ‚ūŋŋūĀŪ†ÎęĖ€ÍŅäņĖ›|€…†k__�‚ÚâÉ―ŊŊ°ŪķŨ巄„†Š�aa\ŅՆĘ,ÉÅÂÄÆĮČÉĮ|rŸ™ÕŅĢ‹Ãļƒ―p~w̆ÉÎÍÍËËÉČÆÆÄÃÃÁĀŋ‚ū…ŋ(§‰ŲãËËĖĖÍĖÐæïļ†zky……v``R„Úā―°ŊŊ­ļÚâۃ…†‹�aa\ÏÔɃȀÉ�Łū ŋĀūv’ĮĨjn―°ĶĀŧĪÂc·™tSh•ÄÃÂÂÁÁĀĀŋŋ„ūŠŋĄ“ßÜĘËˀĖáņ°ƒ{^x†…{`a[…ØŨąŊŊŪšÞßĶ……†Œ�aa\ÎӃČ�Į€Ë�Į„ūēļĀ―ŠĒžĀĀŋŋÁÁŪūļąĐŦđŋ‡ūŋ―šâ؀ĘËÉØóž…ĶÅ|^x†…}``\†ŠÓÓ°ŊŊŧáÛ ……†�aa\Í҃Æ�ŀËĮƒū�ŋ‰ūŋūū€ŋ›ū%žšžäÕÉÉĘÉÍįŲ—ÎÆ{^x†…|`a[†ŠÓÓąŊŧä؜……†Ž�aa\ĖŅÆƒÅĘĖĖËÉīĮ#ğãÕČÉČČÕņχĀÎÅ|^x†…y``X…ŠÓÓ°―æØ™ƒ†�aa\ŽËŅŃÄÅĖĖķÍ"ĖΘáÖČĮĮÉßܒĨÄÍÄ{^x††q`a�„ŠÓÓÂįՔ‚†‘�aa\ŽĘÏĄÃÅÉķĘËĻ‘ÞڀĮËčÁŠŧÃÍÄ{^x††g`a�ƒŠŅāčА‚†’�aa\ŽĘ΅ÂļÁ ÃŦ‰ŨāĮÆÆÎëŊ•ūÁÍÃz_x†aa`�ƒŠŅęĮŒƒ†“�aa\ÉÍĀÁÂē‰ËįÆÅÆÐčĨĄŋĀËÃz_xˆo€a�ƒ‹Ōŋ‹„†”�aa\ČÍĀŋŋĀđ”ķęĘÄÄÐæ §ŋŋĘÂz^y~d`a��„ŠĒ‹„†•�aa\ČĖÂŋ̟æØÅÅÐæĒŠŋūČĀz_wma``��…††……–�aa\ŒĮËÁ―ū°”ÖéÅÅÏįŠĻžžČŋy_fb`a€��†€…—�aa]ŒÆËšĀđš·žģëÔÃÍęģĢļđĮŋz^``a`€�€…˜�aa]ŒÅĘļÁ·ļŽ›ÝéÅÉįÁ ĩ·Æŋ]a``�†…™�aa]‹ÄÉĩÂīģĢąéŲÃÛŅĄŊīÄ”\`` �aa]ŠÃĮÄē­ ÆåĖÎÜŦ§ąĀİk^aa`a`œ�aa]ŠÂĮēÄąŦ§ĖÜÍŲūĒŪđÄÁžg]€`�aœ�aa]ŠÂĮĩĩīĩķķĩˆīĩ°ģÎŨÔŌ­ŠķÁÄÁĶz€`�aœ�aa]ŠÃČĩīīķ°ĪŸĨģĩ„īķģĨŸĄ°ËÓŅÃŦŊđÃÄÃ―­caaœ�aa]ŠÄČļē·ļ·Ą€“’—Ž‚·ļļŦ—“ĢÄÍËžŊģšÁÄÅšcaaœ�aa]ŠÄʇđļđđļ€đ�ļĄđļĄšš€›š™Ĩĩ€ļĩʚ€›š˜ĪŋÆÆŧīķļŋÆŧdaaœ�aa]ŠÄĘŧšžÉÉÅÆĀŧŧÁÆČĘÞđÁÍÄššŧĘÄĀÉūšŧËÁđŽš/ŧ­ĢĢēČŅÉģĪĒĢŠŪŦĢĒĢ­ÄÐÍļĶĄŊŋÄÅūđšūÆŧdab�ŦēīģĩīŽ§ž’�aa]‹Åʁū―ÆũāūŨøËÏéÓŋĖíß―ÖüōŅūĀũßŧęÜūŲîķū ŧ­ĐīĖÖÜŨĖīŠŠ€Đ#ŠĐąČÔÜŲÏŧŠŽŧĀÅÆÂūÁÆžd``�œĨŪĩššķ­Ķœ“�aa]‹ÅʁŋūÆóâĘĘîĖņÕĐī§ŋþÍÔėĖčŲĀōāģđéÜčēšŋ šīēūĖÚâÛÎ―ƒīēŧÉŨâÞŅÁĩēžūŋÂÄÃÃĮždaa€� ˜Ī­ģžĀšŊĶ™Ž�aa]‹ÆËŋ€ū―ÆôÛšŧĩšëéĀžžØýĀÕōžīäåōß―ģÐýŋ·ŋŽū ŋ―žķļÉÓŲÔĘĩš‚ž ·ķÆŅØÖĖŧķžūŋÁÅĘ―caaƒ� šĢŦ·ÄĮļŽĄ—Œ�aa]ŒÆĖĀ€ŋūĮûØģ°ļū·ÖíįïáģšŲöĖ·ąÖĸâž―ÔĸÐŋ ĀÁūŦūÉĖÉ―­ū‚Á ŋŪšĮĖĘÁ°·ÂƒŋÃÉūe`a„� – ĶŊŋÏÃ秜‹�aa]ŒĮĖÁ€ĀÁžĢŊĀÁÁĀū­Ē›Đ―ÁģĢŧÁ―ŊŸŪÂÂīŸž‘Ā ÁÄÅēĐģļģĐīÃ‚Ä ÅķĐąļĩŽŪÁÄÁ‚ĀÃČ―d`a†� œ ŠŧÓÍđП™‰�aa]‹ĮÍÁ€ĀÁĀŋ‚ĀÁŋ ÁÁĀŋĀĀÁĀŋĀÁÁĀŋ“Ā ÄÆÆģĨĶĶģÄĮƀĮÆÆĮ·€ĶŪÁĮÄÁ‚ĀÃČ―daaˆ�žĻđŨÖÄŽĄœˆ�aa]ŒĮÍēÂÁÂÉĘĘĮÁÆĘĘÉÆÂÁÂÅÉĘĘČÂÄĘĘČÃÁÂÁÄĘ―daa‰�ŸĻŋÞßĖŊĒž‡�aa\ŒĮÍģÃÂÄĘĖ€ÍĖÉÄۈ ÂÃÉĖÍÎÍĖĘÄ‚ÃÂÅËŋdaaŠ�žĻÍäæŅŊĄŸ†�aa]‹ĮÍÄĩÃĮÉĘÉņÃÅÉĘÉÆ†ÃÆĘūdaa‹� °ßåčÔŽ Ÿ…�aa]ŒĮÍÃŅÂÅĘ―daa‹� ĪÆčÞėŅĨŸ…�aa]‹ĮÍŅÃÂÅĘūdaaŒ�ŸēåÝÝïĮžŸ„�aa]‹ĮÍŅÃÂÅÉ―daaŒ�ĻØåÔįîŊž„�aa]‹ĮÍŅà ÂÅÉždaa� Ÿ‰� ĄĘėÖÕðޛŸƒ�aa]‹ĮÍŅà ÂÅÉžda`ĸŸŸ‰� ŸœŋïŲŌáðĩ ‚�aa]ŠÆĖÂŅÁÄČžd`k̟ ‰�  ššíÚÓÔðŲ›Ÿ‚�aa]ŠÆĖÁ§Ā€ÁÂÂÁĀĀÁÁ™ĀÃČŧcfĒ Ÿ‰�  š·ėÛÓÓäëН‚�aa]ŠÅĖĪÁĀÁÂÂŋļģŊŽĻĨĶŠ­ąĩŧÂÂÁĀĀ”Á ĀÃČŧlŒĐšĒž‰� Ą›ļėÛÓÓÚïĀ› �aa]ŠÅËĒÁ ĀÁÃÃ†~zy {‚Š” ­žÄÂĀĀ’Á ĀÃÉķ’ĐÔāĄž‰�  ›ŧîÚÓÓÕïԚŸ�aa]ŠÅË ÁĀĀÂÂۘŠ€zyxzƒ‡ˆˆ…xxz{„‘ĒšÄÁÁ ĀĀÅžĪŠÛöÞ ‰� žžÄïØÓÔÔęß ž�aa]‰Ä˟ÁĀÁÃī”…}zzŒĪ·ÃĮČÉÉČÆūŊ™y{€ŠĢĀÁ ĀÁ·ĄŽâôïÞĄ ‰� žĪÓëÖÓÔÔåäН�aa]‰Ä˞Á ĀÁĀĢ„|ĨÆŌÔŨ…Ø ÖÓÏļ’y}€·ÁŒÁĀÁÁķŸąæōÜéßĒķÃÆ�  žŽįãÓÓÔÔâįŊœ�aa]‰ÄʝÁ ĀÁ―•}~~ĪŅŨŨØ�Ũ€ØŨŨØ ŨÖĀŽ}~ŽÁŒÁĀĩžĩčņÚÔéßĒ·ÅÅÆÆ„� Ÿ ÁôÜÓÓÔÔáčēœĢ€�aa]ˆÃƜÁ ĀÁŧ|~‘ÆŲØŨ‚Ø„Ũ€Ø ŨØŲÕŠ„~|ĨÁÁ‡ÁĀÁĀĩž·éðØÓÔéßĒš€ČÉʂ�ŸŸĐčéÕӀÔá豜Ÿ€�aa]ˆÃʛÁ ĀšŠ|‚ĪÓÚØŨØØ‚Ũ‚؁Ũ ØØŨØÝūŽ~}ljÁŋēŸšëîØÓÓÔéßĒŧĘĘËËĖ̀� ŸĢŅóÝԁÔâįŊœ�aa]ˆÃƛ Áŧ|„ŊŲŲŨØØ€ŨŲÝßãå€įäâßܨցŨÜ˖|ĪÁ†ĀÁŋŊžŋîėŲÓÓÔÔéßĒŧĖĖÍÍÎÎÛ� žĄÆõäÓӁÔåäМ�aa]ˆÃĘĀ™ŋ Āū”}€ģÛØŨ؀ŨÝåėņõ„øõðęãÜÖŨØŨÚЗzƒŽÁ„ŋ ÁžŦžÆðęØÓӀÔéß ŠÏÎÏÐÐŌҘ›ĪĘóįÔӂÔęāĒž�aa]‰ÃʙĀŋÃĄ€{ŪŲØŨØŨÖÝęņöø€ũ‚ö€ũøõïæÚÖŨŨŲ͑zķÁŋĀĀŋŋÁžĻŸÏōčÖŌ‚Ôéß ›�ŌÓÔŌÃŦ™ąØóæÖӃÔï֛Ÿ�aa]ˆÃəĀÁģˆ{žÖØŨØŨØįņöũũöũöö‚ũööũöũũõïá€ŨØÅƒ|Ÿū‚ĀŧĶĒÕōåÕӃÔéß ž˜ąūģĶ ŽÏéņāÕӂÔÓŲðĚ �aa]ˆÂȚŋš}†ÐØŨØŨÛėôõöũũööũũø€ũööũũöõôįØŨØÖģz…ģŋšĪĪŲōâÔӄÔéޞ€œ  ­ÂÜîðæŨÔӃÔÓãëŪ‚�aa]ˆÂČŋ—ūĀąˆxđŨØØŨÝîõõöũũöũøũø‚ũøũøũöõõ怨͕yŸ―ŋūšĢŠāũįØÓӄÔéėÕÕÚäïņņîãŨÓÔӄÔÓïā›Ÿ‚�aa]ˆÂșŋ z‘ŅØŨŨÜîôõöũööũøų€øũøũööũöôõéØŨŲī}†ļŋđĒŽáøéááßÖÓÓ‚Ô įðņðîëåßŲŌÓӆÔÓÞņŋœ ‚�aa]ˆÁȖŋūŋ·yģÖØŨÚëõôõö€ũøøöóöú!ųųøũũøũööũõôõæŨŲɑxŠķ °åøéááâáāŨÓӀÔ�Ó„Ō€Ó‡ÔÓÔí៟ƒ�aa]‡Áȍŋūū†ŋ°€…ĮŲØŨåõóõöũöũ€øįÔßú€ûúúų€øũöũũöôóóāŨŲĢ|˜īéũéá‚âāŨӁԁӍÔŌâóŧ ƒ�aa]‡Áȅŋū€ŋūŋŋū€ŋ‚ū#§xšÏØŨÜóôôõööũøųøöØČĮųúúûûúúųũøũũöũö€ô îŲÛ·“™žėöčââã‚âÞÕӓÔŌŲō؞Ÿ„�aa]‡ĀĮ„ŋūÂĮÆĀ€ūÃĖĖ€ūÁĮĮĀžœwŠŨØŨęôóôö€ũ!æęøųęÖáúúûúûûúųøũøũööũõôôóåÕĩœÃðõį„ã€âÛÔӑÔÓÖë驟 „�aa]‡ĀĮƒŋDūūËÛŨÅūŋ―ËÞÛČ―ŋūĮŲÚČđ“{ĩÚŨÛōôóôöũøãÎŅėúųöųúûüûúúûúųũøũöũũõôóôëļžČōóæã‚ä‚ãâŲÔӏÔÓÕįņퟠ…�aa]‡ĀĮ„ŋ+đĖÜØÅšŋ·ČŨÔÅķŋšĮÚÚĘģŧÚŨäóôóôöũøāĘÍëúúûûúûü€úûúųũøũöũũõôôï― Ėôņå†äãâŨӎÔÓÕæóĀĄŸ†�aa]‡ĀĮƒŋ,ĀąŋĘČļķĀēķÄÃīķĀĩšÉĘžŽ‰‚žÚÖėóôóôöũũöäéúøųúûûúú€ûúų€øũöũũõôíáĩžĖõōååä偿€å�ä€ãâŨ€ÓˆÔ€ÓÖčōÅĄŸ †�aa]†ŋńŋđаŪŪ―ŋū­ŠĐŊĀŋŧ­ŊŊŦķ‰ƒžÚŨņņóôóõũøũøųųú‚ûúųųøøũöõôîæßÞÞÜžĮņôč…æ ååääããâŲÔÓÓ†Ô ÓÓÔÚîėžŸ ‡�aa]†ŋŃŋ)ūŋŧģĩūŋūŋŋŧŧĀūūŋ―īģ―đ‹ŧÚŲņōóôôóïðöũũøũøųų‚úųųøũõóíæßÝÝßáäéð˞ŋíũęææ€įææ€åää€ãÜÖÔÓӀԁÓÕŲåōâļ›ŸĒˆ�aa]†ŋņŋ�Ā‹ŋĀŋš‘}·ÚÛņōóóõãÍŅó€ũøũøø€ųúúųôðėåßÜÝÞâįëōųûúųŌĄķįúíƒį�æ€åää€âāÚÖÓ ŌÓŨÜæōįÍĻ› Š�aa]†ŋƗū8ŧ™w­ØÛņōōóõÜÉČōũöũũøũũøøųôïéäßÝÜÞãéîôøúųøöõõöŨĶŽßûïčįčįææ€åääãâáāāÜŲŨŨÚßåíóæÍē ‹�aa]…ŋÆū—―ĢwŸŅŲ€ņ ōôîáčöũööũũøëãāÝÜÝäëōöøúųøöõôóōņðōÞŪĶÖúōéįčဿååääãëïïð€ņ óõëÖŋŪ Ÿ Œ�`a]„ūÆū―–ū­}ŒÉŨïōņōóôóôööũöö€ũøįßÝÝãíõø€ųøũõóóōņððïîííáĩĄÐųôéįįææ€åääãðôíęæÝÓÄĩŠĨ žžŸŽ�`a^ŧÅÁ―–ūī‹yŧŨčōņņōóôóôõöũ€ö$ũėÞßæũúųųøøöôóōōņððïîíėëęéčß·Ëöõéįææ€å ääãņäĶĢĢĒĒĄ €Ÿ� �``_sīÅÅĀž•― ŧšy›Ņāōōņņōó€ôõöũ#āßäųųøøöôóōņņðïïîėëëęéčåâÞßÜžœÅóöéææ€åääãņâĒž –�``^œÂ€Ä�”Á8ÃēŽ‡ÉÛðōņōōóôôóôõöũũōßßîøöôóōņņðïïîėëëęčįäáÞÞßßÞÝÚļ›―ðũëæ€åääãņâĒš�aa_h šÁÂĊÄÂĀnjǨåō€ņōó‚ô'öũîßßðôōņņðïîîėëęęčæäáßÞāâÞÚŨÐÆūūąžīéųėå€äããņâĒ›�aa_a}”–˜€—–••–Œˆ…ēÞí€ōņō‚ó0ôôïßßëņðïîíėëęéįåãáßÞāâÞË·Ī™‘‘’’“‰•Ūāøîåãäâãð⡝œ�aa`^€\–]_r}ŧãð€ō€ņōōó āßãîîíëęéįäâā߀ÞáË·ž}d\\„] oŠŨøðåããâð⡝�a``a™`d|~ˆÁčð€ō€ņ€ōóôéÞßãįčæãáāßÞÞÝßã槌‚n]_†` ^o—ĨÏöōäââð⡝Ÿ��`ša V}~ŠÁéðņņ€ō€ņ ōōņåÝÞßāßßÞ ãęîōĻ€}~f]ˆa Z“ŸĄĮóóäâð⡝ŋ�€~‡đįðð€ōņōōņņōņį‚Þ ßäëðņņîĒ€~Œ� ŸŸžĀōôåð⡞Ā� ~~€ĐÝîïðņōņņ‚ō ïéææëņōņððޖ€~�� œ·ðöôᡞÁ�~zÅäî€ðƒņō ņņðïå†|’� œŪęũᡞÂ�€ |{™ÃÛčņōņņð‚ņ ōōéÜĔy}”� ĻáᡞÃ�€~|zŽĻŋÎØâæččįâÚÐÁŠŽx|~–� žĶÃĒžÅ�~~}z{†šŸĄĄ ›“‡zz}~€˜�€Ÿ ŸĮ�~~~~}ƒ|}~~~›�€Ÿ� É�€~ ~~~~~~|ž�Ÿ  Ė�~~~Ģ�žĸ�ĸ�ĸ�ĸ�ĸ�Ž�ĸ�ĸ�ĸ�ĸ�ĸ�ĸ�ĸ�ĸ�ĸ�Ï�@ú�–ų�œĘ” ø�ļČĶũ�Ą™lÁ­*ö� ĄN_·ē=õ� ĒžRM[ŠĩPó� ̟UPMWœđbō� Ī VSPLSŽ―w “�  Ė� €� ƒ� ĪĄXTRPLN~ŋŒ� Î ‚� ĨĒZUSQNKJmū"Ž�€  '15‹4œ3‹210-$ � ĶĢ[WUSPMKH]đĶ3Œ� =s‹€Ž’Œ†‹’Ё‰ƒˆ‚‡„†ƒy>  ŠĢ\XVTQNLJFSŪŦC‹� B€ŒŠ‚‰‹ˆ‚‡‚†Ž…ˆ„ƒ„„{h21Z~›°ūÄÐĢ]YWURPMKHEN °Q‰�'s’‘…uƒop oŒn"oriO!�NŠĀŨÏÄŧī­Ļϊ]ZXVSQNKIGCK’ķa ‡� :…–ŠqnÆo$psY'�.u·Öʕ„wlc_^[[][XVTROLJIF66oīs†� DŒ™{Įu(vuIz―Ô­‘ronmligeca^[YWUROMM=  Pģˆ�ƒ� GšzÆyzv<�E°Ö­‰~wwvtqomkhfda_\YXURPQ7€  9Ŋš,„� I”œ~Æ} z9�cĖĮŽ‚~~{ywusonlifdb_\ZXVSR@ €  &ĢĶ>ƒ� J•ž‚Ł€D�hØī‚}zxvspnljgdb`\ZXVTP„  ”­K‚� I•ž‚…�€š!€‚V�[ÛŽ~|€ƒ‚€~{xvspnljgeb`\ZXVV3 ƒ  ‹ŦJ‚� H’›}„|r_šW b`�AÖŪzx|~€|zxuspnligdb_\ZXVP ƒ  $š§A��€� H™z‚yzrOKKIĨH‰IJJ€I"JLG Úytyz}~~}{ywuronkifdb_\ZXX9 ‚  2Īž5��� GŽ–x‚wy\NOVnwvw€x�yz{{ƒ|€{z�y€x�w€v€uvttsrq€s-ronnooggikkdV#�›Ípuwyz|{zywusqomjhfda^\YXS%   ?Ŧ’)…� F‹”u‚tvYQQkžĪĢĪĨĶĶĻŠŦŦ€Ž­­ŪŽŦŦŠĻ€Ķ<ĪĢĢĄ  Ąˆ’››~~y•“”{_`~}|ˆ‰N�Q֕jqsuwxyyxwusqonligeb`^[YYD   JŊ…†� E‰‘q‚prXRSp Ÿ ŸĄĒĢĒĪͧ§…ϧĻϧ§Ķ€Ģ(ĒĄŸŸžœlfwvŠaScx€‘Q]&0ZŒ,šžknoqstu€vusqnkhda__]\]ZXV1 €  Pīz‡� D†Žn‚m oZSTqŸžŸ  ĒĒ€Ģ�Ĩ€§„ϧ§ĶĪ€Ģ>ĒĄ ŸŸžœœ›hxkc†Žmo\b‰ŽqtJE!Mq UЄilnoprsttsrnl€•ĻķÂČÉʝ^ZYK €  Tđtˆ� D…k‚ikYUUsŸžŸ ŸĄĒĢĒĒĢĨ„ͧĶĪ€Ē*ĢĒĄ Ÿžžœ›š™˜—•”•”“’‘ŽŠ‚™me‚H�§ūdiklnnop}ĶĘŌŅÐūĨ•’ÅĢ]XV8 [ŧq ‰� A€‡h‚gh]YZužžŸ Ÿž ĢŸĒḖĪ:ŸĄŸ žŸ  ŸŸžžœ›š™——–”••“’’ŽŒŠ‰ƒ€€~(%’cgijlmnnp}°ÐĘĪe0€�ĪĢ\XM ešnŠ� B†e‚de][\vœžŸžxe~—sfž‚ĢĶu‚q}gq Ÿžœœ›š™—˜—€•”’‹‡ƒ€€(€kZĘmcdfhjkjs˜Ņšz"�� �� ĨĒ[T* u·fŒ� A}„d‚b!c^]^x™›žžibefnŸ›  ›Ĩ_`Ni\npžžœšš™™—”’‘Œ‰†ƒ~,€€ƒ[�‡―bbcdfges­Ó‡&� -&! �� ĪĢZ5 ‚ąX��Š� ?{‚`…_,`w‰Š’””e_}j{Ģǃs™’n•`tljd‚o››š™–”’Œ‰‡…ƒ‚…€(ƒM�ĒĶ_`acdcląĖ[�(-,',� Ķž3 &ŠF��‹� ?x]‚\)[_`aw€~~‚‚\k‰vX^†}wˆ†w‹U…t]LXn‰ˆ‡†…„ƒ‚€„‰€$?­“]]_aabĢÐJ�(& (,,) $� Ą +–Ģ8� >u{Z‚YXaddzƒy|€~up~€€€w}ytu}ˆ€#|5!ģ†[[\^Z‡Õ_�2g)',,)#�“u -Ąœ.� <rxU‚TSadez„ī€"{1(·€YYZZfēŸng(',,) $�‘v .Ŧ˜&‘� <pvUƒS^efixvēu"vq-)·}WXYV~ÎBKmd(',,('�‘v 3ą•’� ;nsQƒPSeghĩg e, ą‚UUVYšĐ'Pja'',,% ��‘vBĩ‘“� ;lpOƒNMR_ķcd2Š€SbģuCMh_'',," ��Ÿđ‡�’� :jnK…J�IķH K-œŸRQPhÁREJf^'',* ��Œžv �“� 9fkGŋEG4�‚ĩONMlŋ@CEd[&'-$€ ��‹g–� 8cgCĀB: VÄ^MLn―8$AA`Y'(*! €�/—� 8beBÁA#žŠNMp―9&A@]V&'#€€��™� 7_c@Ā?@0—―OOnŋC$>>[T&!  ž� 6^a?Ā=>;JȀMiÂT<=UO( ž� 5[^=Á<>/ĶĀVb·p!9<TO- Ÿ� 5YZ<Á;<;"@ĕW˜Ž(5;PN6 � 4WX<Â;<6qšsxĨ9,;IOC#  œ� 4VW;Ã:;2*Ģy—`&7ANK8!€� œ� 4VX<ķ;€<‰; 4:}“‹‡3.<JPL=)€� œ� 4WX<ī;<:656;<„;<;740>sˆƒc,5?MQOLC! œ� 4Y[=ē<=<5€1029ƒ<=92110/;fvqN09@KPPJ! œ� 5[^>†=<=<<=>=<<=�<…=<==<=<533€4326‚<733€4328YdbF6:<FQL!œ� 5[^?€>=DhkeaP?@ObomWD;PsX>=?iYSjH=AmX;>$966B`pbE665898665>ZpgK759MY\I=<ERM!œ� 6]_@€?<Uåū‡ģįfqĖē‰Īݟ<…ûÞv>DåĢ\ޗ>Œã\<Ž? >98>c…˜‡d@„8:[~˜ŽlG79<FTYM?FSN! œ� 6]`A€@=TÜŽp†ßÍĪ45.qųj€Î˜Ō‹CŲĄ.iӗÖZ9@ ><:DjĐ”kEƒ;:@aˆĐœtM;;>?@JRNMTN! œ� 6_cB€@>TÛēy€bMĘķ@75‰ö[ÓReĖŠŲ 75“ún9AŽ@ A?><>]}Ž€_@=‚> <<Vw…gF;>@BHS^S! œ� 7_cC€B?Xė˜?8<AdļĮŊÂÅy:‹ßa9TĀĸĶ8;‚ĸQ‘B CEC8EZe\G9C‚E D:AVd`L;@F‚B@L[U$ œ� 7adF‚EKF‚E�I€JKEDGIFEBILHEEGLD‘E GNP?7=@=7AN‚O PC8<?>9<LOFEDMZS" œ� 7bfG–F�E˜F QVU@566BSVVWUV�E€6<PWPG‚FO[S! Š�‹� 8cgKąJIM\`a[UY``^ULILT]`a\UW_a\M‚JIQ\T! ‹�8?)‰� 8dhNēM LP`eghge]OL€M LO\dghge`RL‚MLT_V! Œ�/W_A ˆ� 7ciNĩMW_c_T…MLT_b`WN…MT^V! Œ� ^`lS �…� 7ciMĩLKKJKˆLKJKK†LS]U! Œ�>k@‚Z†� 8dhNÐMLS^V! � †59ŸO�„� 7bgMÐLKR\T! �z^oŠ!…� 7bgLŅKR[S! �c‡ ψ…� 7bgŅLKR[S! Ž�LŸ�Q°.„� 6`eJŅIPZS! Ž�?Ĩ&�Đ|„� 6_cHĻGHGHšGNZR"Ž�9§)��cĶƒ� 6_cĻH GCA?=;:;<>@BE™HGNXS 1Œ�9§)��!°Bƒ� 6_cHĢGHHB;60,)''&&'(+.39>EHH”GFN\B kˆ�AĨ$��Ąkƒ� 6^bGĄFGF>5/*'%$#)143-%#$&(,18BG“FEQ? zš†�Rš��€‡ƒ� 5^bFŸEFG@2,)&%3Maqwy{zxukXB(%'*.8EFE FH3Šĩ‡�Š� s~��d• ‚� 5^bžF EFE8,*''Lr„†‰„‹ Šˆ…€a9%)*0AFEŒFEFG/�”Ŋ2|Š2NNˆ� X€�Qœ‚� 5\`F EFD2))(NŠŠ‹�Š€‹ŠŠ‹ Šˆj6()*=FEŒFE.�$˜Š"{‹5RRTY…�CŦ1€�H  ‚� 5[`›F EFFB/():sŒ‹Š‚‹„Š€‹ Š‹†T.)(9FFE‡FEFD,�*›Ą�|‹:YZ\^a„�”z€�HŸ‚� 5[`F B.(,NƒŽ‹Š‹‹ŠŠ€‰‹Œ‹‰‰ŠŠ‹‹Š‹j8))8E‰FC'�2Ÿ–��|‹@aacefj‚�Y­6�Pœ‚� 5[_F›EB/(-ZŠŒŠ‹‹Š‰ˆ›ĢŦģļđķ°ĻĄ˜‡‰€Šx@'*9‡EFA �<Ĩ‹€�|Š?ggikmoŒ���Bģ`‚�c• ‚� 4Z_D™CDC2)*^ŒŒŠ‹‹ˆˆœģÆÖäëė€ëėęāŌÁ­–†‰‹ŠŽA%,;D„CF=�KŦ€�|Š�onpru{x��Oēs‚�~‰ƒ� 4Z_šDE7*&Y‹‹Š‹Š…ĀÖæęčįႿįįéęãŅ퓇ŠŠŒ|9&/@‚DCF;�\ēs‚�|Š€� y{zU�rļj ƒ�Ąlƒ� 4Y]D˜CD>-&Gˆ‹Š‹ˆŒļÖåčၿ�č€é�ဿ€įâҧ€Š‹s,(6BCE9�jķe ƒ�|Š€� ,I.cĄŦE „�°Dƒ� 3W[B™A 3).€‹Š‹ˆ–Ęßå€įæįé„ëčææįįæäß‹‰]#,=€AB7 rķS„�|Ё�$O†­Ūl…�X§ƒ� 3W[A—@A<-$dŠ‹‹‰šÐáäæįįæčëė„ëėëįæã⌋‹}>&5@A@6ŽËp…� z§rx…›°ąąž\ˆ�Ą‡„� 3V[™A6'8‚‹ŠŠ˜Ïââæįææčë€ėíîîíėëįææįæáãÁŒŠŒa',>@4”Í}NOAƒ� oĐ§Ē–gDŠ�<ē>„� 3VZ–A@A>0$^ˆ‹Š‘Åäā忀įëėčÜįï€ðïí€ėëįæįæãāãķ‰Œx:&90�"›Ë}PJ™�—™…� 3VZŒA€@†A ;)-vŒ‹Šģäßâæ€įęėėšžï€ôōðî€ėęæįįåāßā̈ŠO'�+ĶČ|RTUTSSF—�Qī9…� 3VZ…A@>>@€A?AA?€A?@>>@@8%D€‹Š˜ÜāßãææįėðėéYXíôóôôóïíëėëįæįæáāßϏc�:ąÄxTXYXXWVU;•�"Ļy†� 2TX„A@H[VC€@<OifJ@A@EYYE?4$Uˆ‹ˆÂáßāäæįæķÂïîŋ„ĶņóôóôôņîėëëčæįæãāāÜģƒ=�IšūrX€\[[ZYWV-“�†œ�„� 2TWƒAE@Af•‡T>@@f”\>@?[^=0$aŠ“ÜßāāäæęŽkvÆōíäîóõũõóôōïíëëéæįæãāßáÆ>�TĀķk\_`_^\ZZU’�pŪ/‡� 2RV„A'=i—ŠU<A<]‡‚U<A=\‘’`:/)gˆŊÞßāāäæëĢ_jÃōðó€ôöôóôōïíëëéæįæãāáÓO�]ÅŽg`bc€dcba`^[ZU�jĩD‡� 1RUA‚@*A9Jc\@<A;?QN==A;D_aD9-.l‡ĮÜßāāäæįäŊūōėîōôô€óôôņîíëëčæįæâßËŠ5�bČĩidfg€h ggdca_\ZUŽ� xĩOˆ� 1OR@‚?@>7989?@@977:@@>8998<-/l‡ŨÜÞāßâ€įęîëėíðóó€ô&óōïîėėëåãāÎķ ŸšG�VÂÂuijklkkjhgdb_\ZWŠ�&˜ŠK��‡� 1ORƒ@*?@?;<?@?@@>>@??@?<<?>-+iŒ‘ØÛÞāāÛÎÔæįéėëėîïņ€ōðïîíëäÚËĩĄ›œ §ŊĀÔt�A·Í…mn€o mkifda^[XX4 ‡�eī2��ˆ� 1OR—@C>0&cŒ•ØÛÜßãŪhuÜįįęėëėííîîïņíáÖĮīĄ™šŸŦ·ÆÚíõōî„+§Õ•srsrpnlifd`\YWVG# ƒ�1dϜ_Œ� 1OR@–?>3$Y‰”ŨÛÛÞä˜\YŲ€į?ęėëėėíïâÏĀąĒššœ­ŋÏßíóïęįãâå”’ŲĢzuuspnkheb^[XPKH5 (CdŠŦ•["��‹� 1OR?—>6%I‚ÖÚÛÝáΧŧįįææįéë€ė4Æ­Ēœš›ŊÅÚäíņîęæãāÞÚŨÕŲĢ$ ~Ųą~wvspljgc_\ZˆŸžĒĶĢĪŪģ›m<� 0OT@>–?I9(4yˆÐŲÛÛÞāÝâãæįææįįčėšĄœœŊĘâęíïíęæãāÝÚØÔŌÏÍÉÉŠ6�nŨūwtqmjgc`]\§ČŽĒ“€eD"’� -LRI>”?H>?<.$h‡ūŲÚÚÜßāßāãæįįææéɟŸīæōïîėéæâßÝÚŨÔŌÏĖÉÆÃĀŋžĪ>�`ÐÆurokhd`]\ĐĄ •�€%FRQF>•?A>3&D‚ĪÚŲÛÛÝßāāßáåæįįéĨŸŊïïęéæâßÜÚŨÔŅÏËÉÆÃĀūŧēĐ  ™G�OĘˁpmjgc`]\О›�€5LPPNJŽI„H@@/(w‘ÕÚÛÛÜßāāßāãåæčŨĄĄÏëåâßÜŲÖÔŅÎĖČÆÃŋžļąĻ Ÿ  ž›9�:ĀЉlifb_\[Н›� !6HM†O†N�M„L I8,CŽģÜÚÚÛÜß߀ā0âäįÍĄĄÕāÜŲÖÔŅÎĖČÅÃŋšķŊĻ žĄĢœ”ŠtXA@$�$ŽÓ’jca^ZZĻœ� (37877667„6…7650-(]—ËۀÚÜÝހß/āãŌĄĄÅØÓŅÍËČÅÂŋļģ­§ žĒ̈t\F1+.014�•Ņ›h^]YXϜ� –+%)*fĪÔŲØŲŲÚÛÛÝÞßßÞĪ ŦËĖČÅÃŋ·°ŦĨ žž „jQ7ƒ ! |ÎĨdYXW§œŸ�  ˜ !))1nģŨŲŲØŲڀÛÜÜßĀ ŦļŧķŪ§ĪĄžœ ŪžY8,!‡ !gČŪbUV͜Ą��š )*)4oļÕŨ‚Ų�ڀÛŲąœŸĒĢĒ ŸžŸŪĀÎÓ`*()"‡ #�RÄđaQĶ›Á�€)0eīÓÕØƒŲÚÚŨ🞟ŸžŸŊÃÓÕÖĖZ+)*)�=ĀĀhĄšÂ� )*))QĄÏÓÕŨŲ‚Ø ŲŲŌūķļÄŨŲÖÔÕēH€)�*‘�'·Įš—Ã� **)%4xļÏÔÔÕÖŨ‚Ø ÚÚŲØÕÕŅƒ0&**”�Ĩ˕Ä�€*(#>~ŽÄŌŨŨÖÕÖÖÕÕÖØÖĮīŒC (**–� ”Å�*)*)'"4\€™ŽļÂÆĮÄŧŊ ‰f:&**)˜� HÆ�*)*)($#-@LW\\YPC2#$'*›��Č�)*)*))'&&%%&&'()*ë�€) *)**))*)*))*)ð�**)**)*)*ĸ�ĸ�ĸ�ĸ�ĸ�ķ�t8mk��@�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������Rv �����������������������������������������������������������������������������������������������������������������������������Zĸ����������������������������������������������������������������������������������������������������������������������������XúĸĻ ���������������������������������������������������������������������������������������������������������������������������XųĸĸÃ4��������������������������������������������������������������������������������������������������������������������������XųĸþĸŲM�������������������������������������������������������������������������������������������������������������������������Xųĸþþĸįe������������������������������������������������������������������������������������������������������������������������Xųĸĸĸĸĸót�����������������������������������������������������������������������������������������������������������������������Xųĸĸĸĸþĸĸ~ ���������������������������������������������������������������������������������������������������������������������Xųĸĸĸĸĸþĸĸ��������������������������������������������������������������������������������������������������������������������XųĸĸĸĸĸĸþĸĸĪ!�������������������������������������������������������������������������������������������������������������������Xųĸĸĸĸĸĸĸþþĸŋ5������������������������������������������������������������������������������������������������������������������XųĸĸĸĸĸĸĸĸþþĸÖO��������������������<ˆĄžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžž“f�����Xųĸĸĸĸĸĸĸĸĸĸþĸäf�����������������Žîųüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüúõék����Sųĸĸĸĸĸĸĸĸĸĸĸĸĸņw���������������ūĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸŠ3Vi§üĸĸĸĸĸĸĸĸĸĸĸþĸĸþƒ������������Œĸĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸĸĸĸþĸĸĸĸĸĸĸĸĸĸĸĸþĸĸ‘�����������2čĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþþĸĻ����������VĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþþĸÃ.��������sĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸØI�������yĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸåc������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸðw�����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸû‡���xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸš ��xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþþĸĸ– ��xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸų„���xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþþĸĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸóx����xĸĸĸĸĸĸĸĸĸĸĸĸĸþųüĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸøüĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸņh������xĸĸĸĸĸĸĸĸĸĸĸĸĸþúýĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸúüĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸņR�������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸė:��������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸá'���������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸĸĸĸĸĸĸĸĸĸþĸĸŌ����������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþøíóþĸĸĸĸĸĸĸĸĸĸĸĸþĸĸÃ�����������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸýŧkúĸĸĸĸĸĸĸĸĸĸĸþĸĸī������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸÕ�TųĸĸĸĸĸĸĸĸĸĸþĸĸĨ�������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸäTųĸĸĸĸĸĸĸĸĸþĸĸ’��������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸé.Qųĸĸĸĸĸĸĸĸþĸĸz ���������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸë9Pųĸĸĸĸĸĸĸþĸĸa����������������xĸĸĸĸĸĸĸĸĸĸĸĸĸþøĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸę4QųĸĸĸĸĸĸþĸýR�����������������xĸĸĸĸĸĸĸĸĸĸĸĸĸþúųĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸæ SųĸĸĸĸþĸĸņL�������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸÞ�VųĸĸĸþĸĸãJ��������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþÁ�XųĸĸĸĸĸŨF���������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþüv�XųĸĸþĸË;����������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸõ�Xųĸþĸž+�����������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĄ��Xųĸĸ§������������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸú��Xųĸ“�������������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸg���Xĸˆ ��������������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸ­���X|���������������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸÅ��������������������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸúI�����������������������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĘY&�������������������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþþĸõĮą7�������������������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸS�������������������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųQ�������������������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųQ�������������������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųQ�������������������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųR�  ���������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųP� %2670) ������������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųQ��� 8KOMIF,�����������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųQ������ (Tf_Ye^2���������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųQ�������L}xbp„b%��������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųQ���������AŠ”mv“C������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųQ�����������=—Šƒ‰Ē­` �����������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųQ������������DŽš ĪđÂu����������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųQ�������������[ĘĮŧžÏÓ| ���������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųQ��������������‹åÔÎÏâáu��������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųQ��������������!ŅïÝØâðį`��������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųQ���������������üņäįņøÜ5�������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųQ���������������+ųþöóøûü―�������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųQ�������������Ãĸþþþþĸōe������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸųO~Q������������ ĸĸĸĸĸĸĸÁ�����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸų`ûO������������rĸĸĸĸĸþĸįN�����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸýÕĸïO������������gĸĸĸĸĸĸĸĸŽ�����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸðO������������pĸĸĸĸĸĸþĸđ����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸðO������������ ŒĸĸĸĸĸĸĸĸÚ9����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸïM������������ĀĸĸĸĸĸĸĸĸöU����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸóU������������)ĸĸĸĸĸĸĸĸĸĸj����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþōĘk���������ĸþĸĸĸĸĸĸþĸ{����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸþĸå;�������"ĸĸþĸĸĸĸĸĸþĸ†���xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸ^�����Čĸþĸĸĸĸĸĸĸĸĸ†���xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸþþĸóA��� ĸþĸĸĸĸĸĸĸĸþĸ~����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸúáøĸĸĸĸÃ�Ÿĸþĸĸĸĸĸĸĸĸĸĸĸm����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸïmtóĸþĸë_AĀĸĸĸĸĸĸĸĸĸĸĸĸĸúY����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸïG�‹üĸĸýÜãĸĸþĸĸĸĸĸĸĸĸĸĸĸá?����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸōd`ųĸþĸĸĸĸþĸĸĸĸĸĸĸĸĸĸþĸÁ ����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþóîōþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸœ�����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸņc�����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸÎ�����xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸû������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸā!������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸ{�������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸÆ�������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸõ%��������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸF���������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸg���������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸþw����������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸïq�����������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸÐV�������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸõ“,��������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþþĸĸĸĪC ���������������xĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸĸï’5�����������������wĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸĸĸĸޛJ�������������������_ĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸũĄhT4�������������������������9ųĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸïJ�����������������������������ĪĸĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸðO������������������������������6ÖĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸðO�������������������������������:ķĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþþĸĸĸĸĸĸĸðO��������������������������������MŒŠŊŊŊŊŊŊŊŊŊŊŊŊŊŊŊŊŊŊŊŊŊŊŊŊŊŊŊŊŠæĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸøÂ­ŊŊŊŊŊŊŊŊŊŊŊŊÆĸþþĸĸĸĸĸĸðO���������������������������������� 1ôĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĢ—ĸĸþĸĸĸĸĸðO������������������������������������������������������������������<þĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸž��������������� ‰ĸĸþĸĸĸĸðO�������������������������������������������������������������������=øĸĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþþĸþŋ������������������öĸĸĸĸĸðO��������������������������������������������������������������������6āĸĸþþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸøĨ���������������������pëĸþĸĸðO���������������������������������������������������������������������"°öĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸþĸĸĸáo�����������������������YÞĸþĸðO����������������������������������������������������������������������kĮĸĸĸþĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸĸė 1�������������������������>ĘĸĸðO������������������������������������������������������������������������$mŧĸĸĸĸþþĸĸĸĸĸĸþþĸĸĸæ–I���������������������������'°ĸðN��������������������������������������������������������������������������E‰ÐĸĸĸĸĸĸĸĸĸĸĸíŊf/ ������������������������������›ųP���������������������������������������������������������������������������� 'Mw–Šģ°Ē‰e7���������������������������������wL����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ic08��ã|��� jP ‡ ���ftypjp2 ����jp2 ���Ojp2h���ihdr�����������colr��������"cdef����������������������jp2cĸOĸQ�2�������������������������������ĸR� ����ĸ\� PXX`XX`XX`XXXPPXĸd��Kakadu-v5.2.1ĸ� ����â�ĸ“ÏÁ+õlŒ)Ö$éÛ-pûÎíð ‹iâdyqŲCŧ@6_jÜðĻ(įB2?Q•Ž`c_ŒÖ đņžÏLė fÛ5Đ厚ÏÁ‡ĖÍû’3€;B^óƑ6ĻōÞ­8(V;áŧôôÃáČkMįTÂāęÖĩĀZņwQφrģV9írÖŅ Ûšk\E·CÏĀčS…o;Ūe:áFķa‚ĩŽ3§óîÂ9āÍčžÝ†yF‹pæ` ‡~ņ‚ïNš ņĩN“IMūÏÁ 0#ÓđӚ=dđĶ)UļĖūJBĪZÉ-)Šŧö�CčŊôįĨū mlĶĩģˆŨÂÃÓāûÏ‹Œ€EßßANhÂŌâ„ĮNĮāw‚?� �\…áu~ƒšŸĨ„†ÅĪ܅ĸY@ ZŨrüÖÛkû édįÄôēĖĖ^KŦ<$ÁáÍ]ŨÚh? ËMūėø1ĖúĻ`‘X͟–{Չ2ýÐ*›IĘŋ›ƒé'ØPÛģWŧĻíÎ.7áHL,퓷Ír°]äHÆæ3I7bfęą/\r ŧŧ™ØómoŸEØfDĩ^ķSg"ëįDûÆv6~œä"­QįęÔÕðė%]n ŨÏËĀÜŦۗÄ}­úĪĮāwīōīė_gļËôėŽHé:ī!J2ŒÖ’!�ʝbí !mÝšŠy­AxÆ\íĸs „f6ƒņԊ‰ÓõŪðá†lĖŠģ7Đš c“_ ŒŊábŦ“P“eÚÛM|ũŧD/)Ž�ĨvÕ{KÞ)Î@ŽéƒŸŸ‘Ķ7°_―c$B<ų1îdûfpĢ›ÉĒÚoŌĘõ†GjĮ–ŲėÖŲŦ20gWƒœēĩ6‚ĖķÁaĪt:ÓŸÃí6Āîīä/ lĨUöHnũ”‰hwË5}ėČÆ―ĨūâÝĢæęS#áÝØĄĀq˃,ũg–ņÆ"íoKtĻÁŽĢX–Öø-KŧŪ°rÛōüÄvó(ïAQ„“ŋį2ÉĘFԄ2ģݝŠjLjE}btk(Ĩ{Üwó ö)âļtgx‹€R OOfsI=t…h§I―EO8e6™Ûg2][ÞŨĀvŒXFÕŋĢÏĖÆ?8üĖĀ^€ōjƒØzû‘rÖõŦ?cį}ępąúTpAP'čĩ~óīã•ĖÉþËį{ąĀlļNA9›ÆK ÍZʙiDx ĮÁ{:X|LÚõõÉrō€Âðœ,rÞIÂ6ŠŦög_W87‚'3Ó\—ėÉ'TÓæûģéÖđðÍÎKéZī}EŽ0ķŧ [‹pĨū,_ÞӈŸĮá_Ãíī!øXĀ‹>Ģãļ áŪU‚ųx„9đƒČ˜T‘fÞėM“lCáÍæQψGéöä DĘũbo­ûĒ; Ŋˆ ąmúpېČĸ@yóa tĪį2Īï=HÃ2WJéē=ĩCfԝ-zÛ""’ݝgdÐh^ viû5ļÃ^Ÿķ}(yƒöh]é„ÕŽ€/nįrOƒöŌĄ-‡7#EÞPķYÍÜO—Á?ڜ€ž8Žŧ­·Ÿņ•dŠ;đ!!ĸfšŌCŧ9Q&W285{Ë+ýēũī˜Kņ�x˜N:Tït·"ģ`syū8ÛkÞ~jÍók/w@-#Ä1íïh2_ĖĀ―QãģmbĢŽlFņĖ9öwzC€dnûôŪkĘĻeDYô21zŧĄgsÖnVāðĢ­Ė’#.ÈM ōÅF"D>Oyėë~Ļķ›ðKã§Óŋ°e J…Äcˍ‹ž\l”ĸpķÉiƒ`Ĩäũ$ÚņOœ—b�‘ILÔö‰ŨMÎŌ†‘ɐî@Ü·€Į#€ž—ĖEėšSŠX(KÄĪøs7oSˆá!āÃ7Âa›­ž5Q“ÞØ ˜%ģ9ëĀē:AĪÉ =DhÝäĪgô ‘ėÆROûNNþý'ŊŪ:ČmN›ĩ…dcsrī‰^Ōr‡Ü/dĶS‡îYŦ&RĮĖ;ęŒŦädŽiXðB›@ĢÜ{ˆðZ�A=qį3Ēå`ÃÄėr%ÃŪ}Eŧ)@WēU8žHϧQÚîbĄ:t�õü=žÂv‰ĸLa;Aø(ÛšrÛŠm ß2ĖûŽp”ĮáZCíąaøX`œÉ˜ô‚`:J'' ‰–W’ĩ—=YzŒtP*a㖅F“L,ŸˆáMˆųōĒ<ëþs*žĀbþՍcI~ãgƒÃ‡ĻDÛQz™_ËØtĮā>ĩķbFM‹ū9æ •·āŌ?ŪĪY#&CvÖÓLqÐ\`ŋpũĢ„1ú’C5éså`mAQ›8Új>Í|R/Á=Æ`/gÅ1þđš†gĸ2Qâæ:VĒ?Žuċ)…žōĻðjšvĻ#šč.kŌĢN‚ŧ;a~Ð]VzRlțķī`�íĶhNī;―j/“ÚfÖĻģ…A ž1î!ðSj ĘÃōÍeœXĻ]§øvóá�Ęūy\· mHüB”Ē펑™oĄËÓeīėüSØ6tJÉ%áÕÝ+üŲĪð·#˜TB; }jÕXoŌ“™úeÞ@ėŌņ>ĶéŸÃóžÞOÕ-Ē·š―já=Ó!yú|[*9jĸ}™ãņŋž—IcTúĮúáķ} wt’Öö“{Iڐą!Ė~`‘šl†C‘5ÉFß�rųJčƒz9Ë5å’ô@<VYF`ŽãC2HÎj+ķÉč‹…R�Rũ†‰aw,jŦéM IĖĨqWąŒō wĸ ī‚IĸdķQ§_7^ãØįĢó·ðčðü+ïŪiįū*<“W‰-?ðÔĐV{:ķæ™<ĸyhyw†ĮëwPÖ{Å/0› ]@įNðtUÃí§ĄöÖð}ĩ8mâz3ėLÐĸcŌy·kn=yŸĒ7@—vŽLŌ›8›ĢŨ•l/ũY‘ĖrŌþ ŅįÅ>`gžé‰erS;ßEIĄ˜j–‘\r-u�w’lĶ^/qŸógƒ t|ÍvŦķĖFxØ=‰Gøm)7F`\ @(ŽÍí‡Úáüņ“Ÿü―ÕÔpŸ&Z?Ŋeá.8į“Ũ w}Þ"Kũa.Eô˜ņO9OŦÁgˆäĒ Ĩɟŧ–”'Ecĩĩ;ÛUq2+e3Äu/›Ä|Īlš{†}ēƒQõqĐį%hd†CÔæ: Ų0īĸ‚žôMx)t0öoÛÄ�ŲĨöģïKät]%k―ļ7—'Q_ÉôYrŸĒū:K; ģī“/?9!.5YËŲ5î gąwũ4…Ä.–Û‡8 r,7ðZ§JĒ’‹·…(p‘€ú�Hŋ,mŧ(\žYyŌ†ÆĖØ―îĸaŲ-z§û‹ũ§I þ—ĶgįŒĒWÅÐöŊÏ I>Ŋ{mĨ>‘ý·2Ū1ޏôH2čN ,ˆļ§Ę:Uŋ{örĐm{ęĶ-ØtCŽŸ:SŠ ÞđTūŠ·t"oM•Žx†ũlÝÞ`RĪÆIšā›�óNÆŌĩŸĄsĖ&uąíînŪ―Oģ>!įŋĖv„Î<ýiÎ?‰ĮáAÏΐÎþÁ2ĸC{PIU(Ô@†›8^(öéØ ƒąi„[ðõŌóĶ C°VēW)Û·ilˆFpÎAá2ð‹[!ÛþPĒDé6@RM§=Nųl:ô†H$šBnĖwæ"ė`‘2ÍJï%ĮšĘ*ŽÏhjŅ/�Ý9_ęÕōÎéĢð‘Ĩ kv*öSĮð7_š1ŋ-ō,QŽZMÂķĶaĄĀD.gyåõˆĢ0záÝJ‚3FÞ#âӃŒ@ũ†�áU~ųąŸ †•Þqf–„z,É-§ää•[G*@čûR\—(ąˆ^ķWū3–Ïn7]ūj ūs b~·jn™;ėKÚ§téÕoŒ[_d$‹dŧšĘՈŒg–Ģø@+˜nŪD&ÎÅŌN3O\uNysĨōûf ‰Ķ6hWæôâ%S Ä2ĢáP( >īz‘a$ĩ œhĨĪûļf5†ī„BƒgĨ߅Äã~A’ž›x0—Žâm‘ƒÃÁŠ”ü‹óˆčް+æĄŪ‘„―;eū}8ļÉĨۜĮáŅd~*CðčÄÂdVđ'ĨĀ38·Lô~udŠ~‘†îQĻðhĘQņmŌĀveœ?ļ=ēÝķ|=øųJr„dŒėĨq"ô*–đƒÍđ3m‰Å’ІéY6–1Č~:ŽÍó{ĢÔZņŸ>ø„ý !įÐxWžt!ŪQĄP·~Ójų ÛōDPbĘūÔ%Ú&ߒ ÞmsҌ=KöŠTĩđ>âûđF·+%˜g0- ›éH9U ė`þȅĒĩīšôʘšË?ðXĨ ΐlÂ! c‰{P(ÃވŌģ7ō·ŲÆãyhÉôEí‚w=(%­ˆ‰yÂ.8›i%BžĀŸO€b/7đáýœ—5ÕMˆČƇó0ó–‹4Zs_”–ü-™SiK^I­ĮÓĒŪ ‰ÉÎyRmŨFŪ™žŅxĢÞÎÜޘĖüၠO4qv†ŌTūÚoâ>FCųЕöoHT$ ŽsuĸxæÓŦþ|§Ûį?ڃŨoÝ ÍšlžĢ―ÉDÓĶÏ_“Ž)@aĶ―9ķŊĪņ]Eȇĩ Ïane#Ąe‰ŒmôI€ßÔߋĄÚC^ÞrļėJį~IßÞQ†Ú`ŲžWĖÂH&ˆVM―"x%·Å‹ÄŦyxÃ! M n^ķ2īQóRRƒĘõ#ʅŲD(XŌLD=/úqQ+˜õQgzx ·ĶÆĢÞÝ0Gq@^ĆžV3ÖÁąðģ“ %!VēÓW'?~ Ęā2Ə“A’‡Ū ÕOgA·v5Wū›ÏŪŽî/đ/�57Ä=ĮÓÞĶCĒX›ėI·/C]›žŪÍėŌ6^–ģøčŽgØ·/%]ģ[óâūtðQ=éQ §ę˜~>ðĩCÂČáčĩqķ•`åŒcc5oÉzdÔI"ŸÓzˊlk+†š6Ņy9&eķœ`ŸĒĸĢī‰―Ũ·" ķô*"4Ū„ŦðūKŲvQĖíėZˆAŦˆâhOŨO5âņXŪ$ÉũW3ÔjĶPė9ŅģÕ.|ˆŪņįæilyɧÔtū‚6ĸĖå՜î&·’2ÞÞÁÞlÎ}‡MtN'å„ÃúîɊėē™Ë8Ö_ï• rV*U}ǐ2ČŽ‡Ð#žc+Žh^˜Ī�ūēóđŦxũó(S*ģõ4 ėl›˜&“áÐJ q4‰`Ņ:tGXŊë/›â7ē*"ĖK3Réäz‚3õžxNŋ•Ģ4æÏo…ŲSL|ØKˆŽ@Š-„Ēŧtbdãu_^rXbĐ*Cg óÔ7ģn„x3"UįææpÜřōœŨ"rČA™Õ…øÅEŋhDFIˆ[3 Žåim•^ÏÝ?úÍĨˆßšqļöļ=a ē˜Ā�.‹–­üžhYðG!0КĶÛéYíffîSûå:˜TcIēÆ-c.qCÔPāâ.éÏēéą` óӟ%ãí wX—DÕųī‰ æ‰AĖõ·ÅþΝĶE_Ļ|ˆĘšČ-Ĩb 9xAĶÂīëEMä!šã.ó@Ř mŠUâØāĐAķsŲNÏŦeïšĐŽ*ųņķÂņ―ōó#ųÁ2ĩݘÜĨuŊļ€+#Z=|˜™+L5ĩ<ïŪŲw3†ŧā8&FSßþÃTž—ä}üb?›Žß ÐeÖ§SōŦA·ï6Ü$?ĩcH)ŪO?0džÚŪ‚Å.čh˜.™ë~`‡ƒßķH­"6KŋssAON‡­úš-:ú°xðgGĄÏšŧК Į[rœÂ;ę@‘zßŋŒ]‚Ķ�ĨŲ1ïjš8.dĮŠ ‹Īõð›;Å3m€oʑUR§ú2}äãČš„Úwfš§‘pŸŧ›čPÔdltđ6v"S=|Ŧe,@pAXL"dóÎzhg@ŨŽP€ņ‘“Ģ5›ÍưīÜlčūƒuïWŽĩîæģ™ +žgÎĨg·ŲÎŪ‹ũB6?0Lš8SBÚđØã1ý•N‚[0, “ūoĢDIĐR8ŊŒgōËĒ‚’bČÄÚuĀI=WzåLh2‹'Mi{Œųą·ņgņĢ@Á!‘°Bš HƒÍ{kv:`.Œží%Ž%ÃļĶ‹œóô›}’ŅnåžðĖXïņ{€&TŨð•MÔ?Ī1H‘DåšxĀ‘Œųz āíð‰“~.V6JS{;‚ŋ7ađĩpn[ęK4ĪS9~ß^~:$Ī{Č"ĻG„‰Į['}ģ3F0%$ï&˜qÂĄ8ˆ™‡zð^ĮáŅ4~*ĮįҰÔsŕ_x0ĩ6õöPVĨb|ŽĻ―JËđSKĮ2ÚĖĀŽkŽųÍ*ûëÜĻkR;…W俌ŽNÂŪ8Ųk*’īž1Ĩ‹kÍ ní–3NdĖč-k�‡g . tÅÎä_+V›ĜŠ<Å~UĀ.[Qž}ÆT-ƒžũ!Oöņ–gô Đī):åޔ§ĄËý š0Ō"S­’0 LuϑšĖ1>ÓhŽeŧļðî3iÂĄŲŒāåĨąb‹? 'Œž‰„æ? üĻÄĻRūđŌŽ:íņ#7Ņ—‹ī"—ī!Ђ—ô�qŠŲ &ļ@ rot`Ķûu rLaf”{­NO Ðã<ep@ äûĩŽÝŌM?tKegR™\߆Ž$Ą~ŌJ4Ą–,ĩ/ģ"„:›ÛĢ!?3Ï]FAŅžLgKÛHæuĀĶBÂKŽ•^Dz3ÆáR‘·?‰'‚DƒDzŽ˜MĄÃF.PģÂ~:L%ŠÖ0ŸŨTxWn‰ą5õņ\*{‹2žđr ÄZ·— oįĨyNÂXgIfV3vĨKÅ‘ĒŊ=_„§§xÄ<IĄæVN’čėN…bïĖWÜ}vžžøsũ iO“Ýā#°X�"ķýem-ŨýÚÐ>‰SXÆz åĮ#Õ0ŽÅÜĻšj†ZF§~h"?*lčĸ(H°îoč8_~WÁĶð›üÖŽšī~‰1þIĘū\ģĸĘÚЗÔöĪöÎĩōĨoėé—vWøg‡Ðņžü%ÜM§đgĒįúuaîŸúĄãäÜāĖĘ 5Žmô€―|b:Ŋd ŧ ی°Í93‡XBZŅM[ €ģŌ[…„^i(Đx―€V–�T ïÕãËú81Žr_ėkôåōtNŧcĄöÓũí?ÂE#ĩį0Ŋ,”ß8p+NŌėCĄūĻôĖØ‘f5?ïôJúĩÂyōū}‘üXûĒį,ÞØ29{šGvVÖ!EąęrčĨ?ā“f*ŽAV7\ÝĮX―Æu[L„Ö*&dŠ™ZI�ÍæŸO–ƒ ú$–ĸ)ëa}4Ռ…bē… 4ë=,ð9—ląð'xénÂâfGtã>˜A‡kvŸŠîÜÁOĖåä Ąķ%[1Āũ}Â#OØęPC͚pSįËvPl4WpDŊFĖ€l Ý‘iŽÐßđŝ­ č&ĄāIŅĀŲVĮ~äʑæ@―`îfņ]öH…X˜˜UķÞiøšp)ëH.žð߀’’&BÐX~ 4sޛŨĒ͓z’ ?ÕÛbƒï*dÖÎáŋųį,…•Â|ū}QÔŽÐ7Eã… Į7IØI%ý40ŦHü0lĪîåˆyþSî˜P%Åj žđēŌþĨ–ØCÍē]"‘ŧįëD6yŨ,O$ŨϚ­ÜmÞË?·ČDĸJŒ'I\SFąA(šũėԉ…A=ÞÉxōE+ž,āĄĻoB &‡5QęrRļcðåOÄ!;ĨjčFįXķüŦ‚Ķ]eŧč€…ÏŽē3đČB2*qIŪL―Ļú͉%ÔHWG} Úá’s'#:–žĘPÛÓɅGPd† Tjņ[e6BW鐇â?éí0g+3aļÁŌŪ7čĸqbnZš)#—kvõë.Ņ ›ũÕÜdĶžZĪļqY�ƒ6c7ŸžŽ$-Z2ũīÅ ˆöÎ莕ķ―8tsíŨ”`Ĩ \―;:Ā;ƒ;öÎŋ^ÞížŪ#ktôZrÏïss$rĨŒ•™"Ģ]―æTÜR͙EwIÚúĮčSóqļ°WtZ9HÜÕDÉÓĪ,-ð0Wܔ·ohïŒX}u-°ÐĪy œÖ ŧð•ŋۅ·/ĢB]2%ŸĀŧŒy^v= ‘ÃcCEų°–F[_˜Š[ŋüÄG˜‰„]5û— I_Žg)ūßEV%=TÚã’ZšBhe ÅgŽ*s™[Ģ!þîĩ @ïć·ŨLđ‘-;áPēíßåsïâdj”î"7YÆŠ Ž-NUÁŒxÂFWZ*Ŧ šbĮ$ûL L4 ãJnx;ŨŅ4ßÏëtļ‡ŧ-?Ęķ"ÕĢFý'wâĀõÐČ,ĄûhúŽ­šëӅóÍŽvŊ›ĶzāSÉž*―ĘTvw]ÐïäģÂ)˜ũÎ^þ8NjSío|š•ČČã=QR‹Ú )ŽÛąĩĄ„baZĘПæĸh!o!{ĘݏšŽ ĨPųtną‰ŋrķņúĐ?ÉOŊð$xKqPüÃíÝh}―CðÝ ēfT !giĩ— �AoܜŊĻN{\íė”EÍÜųfĮ7㜠™ÔëhÝ^b›,Å;7ĸXÛUä­ėBÉ ›ŒáEUÜRx§p4Y‘ö(ĩũķ9 ĸEú2åE7ĮïēÉītÆĮNÃH(@?-:į$T2hhN5ĨV'+7ߞëø]øjuē„{8f7ó'ÏøoēÜ|[BˆôúeÂįÉĢeaYÝV~węÏēķHíĻhGƒ„}ųŊ '˜ÔR@æq44(åĨŒ=óāhŅD`ÆĸĪ―%ĮFėÉāû9Ŋ 7S‡ã9šÆŅŋS+ŦØýþýĖŊËeôW5 jĨG_"†™Q­nģøÆÁĸ5ļDНŠęĀÏÆĘc1˜―IóíĀĶ/ ­ÃÄĨũWÎģ ?°ÅŒÔoÜķ”ÁČČū:â‘û×ÕÅ;hð~ŽĢ’ęO§“ÄõTžhŨũŦŽ”HĢÁ蝭_”3ÃŌ1ĒcgýDŽŠ―ĒÔ“Ų°ÉÕÆ+ē˜ÅŊ3ŒšˆO‚ÖĶg6ĶėĮ…'ŽžÖäĐy.õOFŠ…ð4݆sĘXÞ*v./Û·€ėĀõ^‘îIvLœĪ“Ý8-_ āøvKēRŨnj}1îĐŨÚziģã/ / xß5ąB\,ėCážGšpÄĸGW‡ĐCU–kÁP‚ioĶæ4ŠîËw§ã’ÉųĘŠð―=Ĩ§• ‘žÝSŌÍē/âD`ĸ…Šqs\ƚAŽb~’é6ŋP‡ÔšzA™šqĐÃóeķ/čĩÏ$č@Ō,đnhũ=īųŸũ߀.Óõæ(@bŽf:įn° óaØLB­īÄ4ģâĨũá`ŅK›B”M ŅĄ€á…―Āø:s4ÐR5Ü%ũ"Gĩu�/^dĶEČxüũ ôÃÆĸPaŪŽÛš;+Ž•ŋ“§SfōŲyúhīLlɚ(âÐĖĐsH{øJš6Čē}øĸoÁŅ’‹mŦW nߘš‘ãÜbĢ'áėį áĻųu<^"ģdó™c;vëŌŽ+‡P–­Ųęí€-`Üâ“ĆkL8čķÏtÜČŊ–Č2Ĩ―œĐĘcøAŊ§SȎíž(G‰:B]s9g!OđÅtÛGƒ/Éģ°øá�BĄ~ÄÖģŽó3ąŌFœĮûiY"ę ôÜōXqš+P&YOŽP_^iZ˜šŧZlä?Z'lĸHĄ:šØ†ĄGSĩ Ļf\î*€+|ČļĒĪB1WÝ49~bYÚý­ ūŨō 5óY#H_ëLý›ëÔĮuęöéeÃä*āEƘEļaÏŅĻ‘%:›nāK�ČŨ}EØmŋ jߎŒã^m6ė˜ŧ’.YB�(WæÉϊÅX­0·:<øNĶPW<ķūvÁcÔ#ąSÝǁĨWŠđđ“^%Þ9SýWrü/’ �‡­€ē‘Sķ{~Š·*& ˜L` ĪÂx"ĻI|5Pöé=ĩÜ?hgĐ3\tHIšĮä*Ķð [Ð*ˆĮ2vkßGóv|w_ØE[ĩðð7ė|8žŽĻũą―r�å·ï‰l@ęEÔÜ{á"ƒ˜ĨÎU6âgē\Ã.ø PvSÏ\j6ZØuŦÏ.XB0t§8tÚóåMĩÃåd ņ>8°īGŽzEĢĶŪģf>)ŌË t·ô°čœõōjÔčF~'ŠóļĐˆŅßĘĢ"R{^ÏōúwŠŌėƒÔ'0;ŧœúÉŧĶú;ĪfóXL,ÂTý1gŒÏ&"‰Üģ{ė&|ܔ?&Ðĸ-̃­gb !‡ą_†1ĘWOļ‹?‘Įš_–†I%nþ`ĢÔÁãwįâÚzÍB>ŽŅEú þ―Škh'|^']dĮ*ÛāY1€3é;õ(ʆȰ›‰TMŨ I<OÏÏKcðÓüô­”h4žS9;Éô‘O^Į96UbOf'bšYŲŨňÛEđĻČŽÚ=IŨh1ĐJâ5‹*e‚î‚ŋrĮ-îĨ‚PáŧðJKå—ܝį\AđŒN†}‡V6we’lï0ĄÛÃĄÝŠWĻī#šƒbúĀömp€:óÅąŨYÆRŠÂ •6/‰žŽ%Ó?t(Œ^ŲÓ;ÞĀÁ}Ôš3šŋ—jÄiðÞEhčLo,ë|Ā<ĖcÉpJ·Ē’ Øï<ë'Ī}+PDj{-‚öþh`6‹rßÏ|>ëäÅÚ$_6ÕnčʒĨž„·Ķü1TrGvÕîŌšõQNrՄ>ýæÍÞQŠFjþ‹ųÁ߉ōÖ―ƒCĀ„æå}Žao·þųąķē'Âāŋ„ŋ–'r0CĨģ„ĸ-k‹ƒ;ŅŧĘŨÜ6:_u…K―AgČ·t‡§QoĐŅ#‘4Š#ø ė­#uĶ ŊXc?gιȉæRĮ}ÁՎ…REQųž ÅŊƒ9!â―`ŽËÏôïŸŊˆÃēįÏDëLĘ"jjo>xŋ]“ļÆŪÁ˜ŽßéÅŧ\äÏ{Bãþ–m>H…MU($ŪVƒaŸåÕĒ—t ÎUŸ‹ëņ]ŋ6ĩÚÔ(‹\ AĒ�COŦØÛï.ú°av)td[tw†5íí!9~ÚpÝ}p\ƒƒ/ā<>ØNënšEŽ ĒĞsîmĩęĄáîjgn9į ĢâÏ1˜ˆGrqũ·f™ąēöˆ;ƒ:`uģD>DžÜMÚ;�%[)%éqĒJPžuĘ.)MÉųé„ų›ēīÃIð_e…„fāÖzÅ1āIsWōƒMOýVXâÖøęĖÃ@•“7þ~SdŸŊā_�ęšMÍŪúÉÎôœĖ›ĐtôO=Šûô@Üc.!ōiĨ7TļûOŧŽæĶ?w6Ë%õđޑ)ÞôĨX4ˆõvh§ŠæÓ5fCŽrÄet 'КĒ^Ģi;åĀ]ŸĸiļĻ+ÁÃīvøu–-a uÚ ÏÚt3&ĩ žį*5V^ŲfķęÝíÔqVQÐë LÜĘų` ō}‹įĄDaąžļTsšØ2kÉzÄDRĀϞ+ÍîBČĶĖĻė{Ŋ%K§ ötĻĒ€câAē7…ÝëĮáëÉ·Ú"?XāčŽËáÓų!Ï Ļdëbڅšq7dewÁ;íœ-gāWIēūŠšķ#Bói�—O5Y�ŅTo(ėļŸžĒđKOTžs�ÅĀIՕx2ēsŠLęUZa;2 ÂĐŦCɏy‡ÐgŠ,īņ$0;ú`ӀýđƒžßzëņZ΀“eÎNSŲãĻÁŒ§ČjļĪmýdw?ąąxáj*ېeqbŽ2ô―ķí:ļYÞH:ã:oZSŨrÜ?Vl˜nųĻ Þąi·Í―Oé 'čg‰Û!BøČfá‡ā•Ē‚GĀËÍ:�K힑{U6įōMišÛPŸŅBų헷ÄŨ3uØ{˜@B'^– (‡+ĸZ7ęf‚éöÁ%kuukÅŅŌē‚WúÄxÔ]Ģs€ô“TÕZC‚[Ōsj& €7Ôūbœ„…ÀĨuĩwĢŠEēĐÉĀeĒaPą ~ĮE“Hâȍ`?āp— Ą”~\ÛqŠðRUK“Šþ" ŒUô%õlâ Ķôd™c(I^Ð:â Hûû…Ū{ÃÚČß0{ÝŨ^Įäo ŪžĩģMü†_Ô,­þ&?Ks™Ķí0I…;ßþÞÆ:bô ŪĄq +ĪƒŽt„ô‰·3 ᓁWšíđ~ Ïã!â�đ8˜ĢØ_1đŊbČE õâBųI@Ā? ûĀ‘kiî=˘ĒåļžO=RPŧõ Ë·đĒhĒ…ØFxVŅ į4Ėó O.Ŋ2Īså~„īzRŪžŌdÞ’ÐüáÎÔâ^SņÚ·5ÄÉŋ°œHB^ĖĒd“]dœŪõjÎíĐé҃Úāūęoé1_‰V‚@æÝ„đ{-ųĩOiä┨ŧú~H\“=%‹VgĮvóBXÎG™}|rɰŠw|<ÖĪېÃĸ žÕĩß}ąÆÂžaņčUxÍ(ŽŽęH ŧŒžPNmÎnEOŧ -‰X?’‚Ú{č"* 6B―_Ūđ┎žG%ĪČ~Ĩ3)VJz(ŌGÓrŽ 8\ہ5VÚGÞĨ # Ė„jgčI{sïyĨ ŧoëōâ#J-M•ģë­a|t°<3 6Úï‚ēÕcČóUˆgÐ�ĻDz žÎĀö„Üŋe…o.-rĘëđ^?ĨđĄ―ąÁ)Œ0•ï5îî™īVOėrc�―†ë―HN2 ˜xņV5Ÿ8LŠuÛÃėĪ‚Áŋļó= Ŋ§ø{tïØßFĐ#U;æŨe…}SŌūŽ„Ú”­#ŸķrLōįŨPÖķŽ QqN…nOý2Fß ·%Ŧ“Zdđāï†Ëˆé@šmVĒūšB€þ.ģ—ý­4x€sZMPTpr—PÄčäÐų ōŧsÚ@䷊Üâ1qBGU›Þ;!Jg†JÅÃI42QƊhó’xŌ!Ī9€ũåwĪGŪ,Ų{MÁ šūKųîÚČÃ5ö§nÏIzĘAø Ŋ·Ó­m3ÃwrháˆĸW Qļ"3„ä>ˆIÕEY`‘YšœKá>ÕfēlgÓ]ÆĒ" ÆģKp:.QxsãÏōIÅĸmÕžAŪLĒļ9U•Đ–č$Ņ­zI…ų7.˜ó­2+%šÛë$kŲĄ °ß1î +ĒDĢ‹Dq #žZ˜MŲ�DētÁöĶ�Č$&Ŧĸ7iødɆ–;<WÏĸK=qnę|Ļ€ðüŒ3Āé—`ĮąõņŽe›k2ī„-§ČĐŽcõY Ũ­‘ÃɒĀ)ÉÉEŽŸĖhôûšn0:ô,ë:ˆÏ�žuÓ M/ļŽAũž 1nDDþƒc|Øg°ÄY ĸEŅulíðĄB<*‰Ÿ}Ti Ō4ÆX.”‰Cðôė•―?yĄ­}RPv,Kĸ.į ępŽÐūðP7đ€$ĩĘýuîđŦ’Z·&„Ha3'/ڎġ›ũXބ%ä&NØĖYhôšūPņČRϘFý;‘NŪ\… “Ï‡Ų°ÉÕ^I›uāF=ï9]DX–ņԌ˜ĒØÕaYˆķšļäé'_3(čNõŪÆŊttWG’Ō8͗•o°,}!Fë„Ūõ™rînˆ50ĸ?vąkÖ^Í6úk5Ŧ øgŨ Xß7jŋĸŲH3cǚ>Đï’=Ó1ėŊÖHïĸE5vU é geX<é@cŪ°3æôC‚Sū˜#Øï“9D́,=q•NsnÞjiä6!YÕEGZt­;ÉõkP•~\ޜ}‡Q%aĻæ=†–ÂiÞŪÍøNLxŪJÜĐÜŨ…‹šĩonÏĨeÔ6ÉýÚéÔ œ`Ŗžá 1á Ī—)XûqĩŦ؈ N„˜f‡ķۚ{/‚\MüDŒÓÁũ•!ÐįvČđčĖA’ ������/åÜI–EÝGĀĀó<O[x™ČëÜÞH)žĢÝ6ŸCfĸ|Uv|ĒŽšJ‰đCä}”ŦÏé%I­x)æw—·øŪ5=&ü™.cryĶĄÝÉóCķíüķoÓ\û“f9@iŽ'ž8ÜņėŌ)ļ įAt$ïp™ņ+/"ŽĶ•*B'9ôY/5ąÆãđÆÚâ‚ķ`Ý_r8―$;Þ3QÕéÍ_ĻB„/•°:âTŅ/ÂdįūIT9ãLr!ę†`ü<#[ęŧ ’Û>ÚĒ0/sŌ:HĶiËt`�������Ũčo(Ŧ…·6ŋ"?:âW―&t—,ų3•Ē–ĪäŌ‰Á�~ÏõzĖ1J†šōï,ÚþâĀã°ę–ŪƒIėËŠŸ.îüŦ*vnĪ–žQ+ Ā„UPųr™°Ũ0åĨ1X°Íĸĸqc-Gzā+Ŋ+ݍdwÐ ī֏ƒA―æ]Ïëz`ÖÞUKĒĒ%‰ĒŦČ ļŧhŅŒïėĸm_)~ ‡ėÍâz“ü$žv{Ej95õÐëÍg4ëķšrÎ2†þ|ßãūhuDÃ`poŠÚĄXhHĐõý·s)ĒQyÁaÓ&ÃZNó‹������óŽâ$)ą@����ēf„WCIîʏœāũ`jJŲ`a3FčGeäúYõrYņîÅ4—~0ÉßŦÆue_ŪįO,XŸ‰åY] s˜Ũ‡o .NÝk!uēAރdšÍ:Ĩ(éĸlĢlbšđ<•C(ÔÝ^€ÞÎ%Г]„Œg™^ˆũ؁âũ5fÏą[WCOmžvJ–vwEMsäˆŨiU xĨ|Ļ(ĪŅΊäČøkKŋböôõXK{Ņ㎷  îXThĶōsa‹ų[Œ=Ŧô˜AĝĮđĘâE=ā!,u# Ģ|ŦmÅö8nmAšÚjKkœÏgÞ5"hKĮüërKÞ,VrFMŪōĒąRː 9œķÛmķÛmķįk|æą•PR+ ąŒ“Ô Œū3Ī—*“ÚX# þŒĮšĪ\„Ádņ9|tj L˜§Ļ^5ôøqßņ,íēmW6ņŨfðÞŌ{ļXBˆĪ˜§óõ %8õæ ųMŪY1?ž2}ī_ŦÚÕw>Ŧo§po>ZkˆŠ srå|ô„gI@JaâōĮąz֌šŊØ9 JôĪØ_ÞŠļg€bY+_) hÃúâ(>OŅj7Č, ðŊļC ,|åįtŦŒ [ÃąĸAh:i CÃSˆ)c'˜[Âėn]3b\Ž*?ũ i \!NŽ *†Þ}Uņ°Ķ‚älŒíøÝÖßÏĩČ4ÃýX>ČúÚČN_™ýpō‚KōweŦŧVęu_frė˜ð§xxŧAæ!’%ÎW@ĮôÐŦāĖY|Å ü9iË­á(ËôĶĨ’wœ e/Ŋ…K8†ãũąĨīAšÔ~åjÍW/šŦŒ9lÏėt’Kl“úN7Ķ&Õ_ŨSŠ^Û0R1�‚AĘðd]Å>üūy:}]į·@Đp@óõQ72ķQäÐyVėˆM%ý“DrrĢÝļv `þæĀ‚‚ĖŠâCÅĀĖėôW+?„ĖŪČņŨiœ(jÎdŦŸ aK’ąáé·ļL‹ŸfųĒ―ý ĀRūĩŪj6―Š[ïĀ^I $Î,xeč|ƒ4Õ?ˆ ûИŽ ĮÚ@ŲēÏÄv'!n~Yšîš�˜@ÝMĸč‡ŅŌǁW0EOĸ'úZflðO‹pĐŧJDž CØŒģįgkö:;NýĨ&J0Ø[|·s@ķՇŸZį(ØãŠÖëūtvÄ9ˆĒ[.é7f !f+”ęėąj―ĪŽ„;ÕĪ'­€Z#ýõŪþš߈óÞ%Pðđ―.Jā–ņ–âĸj―ļ!™(Þ­_ÆŋU=Cl—5Œķg5>Ŧ ]ÂˈŌŧŠāÉ_ŽCoėēŽâAZ€l:ūnc ý™PûiŋLMð ÔîŠ)ņþHfMŽsĢ) åĢmU#æŠÕÁWgâúSތð“ å.€Zĩ,aĮ˜”ãëŪŅëR°.åxÃ`b’ė üݑÏ>P�ïßĮVũsĄSõ~þ›zß Í3‹Þž%ũY&N)Iž―Ó%ŒsSLUŠ ‹x?]ÔčŊZíîk&ž”ô―ÓŦhxKyČĐ)—A…D‹ČM,>2?|ĖîyýĻu>ō$5L6VþĨ\ŦŪ ˜k@™ËËī@ĐãÎ —ÁxR§Ō‚ZēZ d\-13ZÉË@HÃ)įyȍąeý56Ā~Ï=p”žm;šO/šú:F!į•ĩð.š*'L™MhžLĨ#ĪÞĨŖ(—B}qÕîܝ]‡1ģļKkQSôwÖˆØØįÐ&ųf”#čKhJyūŋÁ6Ų\ ‘•üX32`íŦįLI@ņĶb*Xþʉ?óŪøĢ‘1-CÞ?e<LČ'Ą$4~˜'ė\+ŠÎ ŅÜģĪË―ķŦJņ-“Õ`ŧáŨŧTį9·Úáí>ōČA7‘.Ļ[ú{܍zĩ�\Kúœwow_/MŠyXX­Ŧ,čB>BīBeųUݜöĩ}2ӝ:ŦŠēĒđĩáÅŲBiDčžð“hˆļä,ŧŦ: č+‰Ņ?Ē(,4&·+îoŧ°gkq“ũ\Xó:ûĒ6{|tĸ˜ÜšåĶû+]Aįņk],cØ_ŦâVĒ_\d…SÐüúŅÝ8ïw5_#Į­ý&o$öÕ#•ãËnĘPv]T–:ÍP}ĩ>ĄsŠÔ˜<tþ`ËķÃĻé'íðð’9Į'†&™šš˜äc[ó]4āMex?gÓžČír™‘þv?Ķc5}: x‚Gg†Š—ói“·*g§ý;xƒˆSóFAԋ%Ū?]ģŦ‹ĢœbÛĐ9MtDFņ́áe:9éĶĶ˜Ï‘đÜ`īgšŊÚ6ĮÏhÓĐO”ąÓ“@ŅûĘXÐĢ `ÂeqOŠđþŽ•ëʏäĒTchƒNë'4tX8djB|hŧÃԟŧUÚ5ę]\ü,ïcúýzðÍüÆ:QV!”DĖķÄtúŠTB<TĄuęóģ–ų ŽIãm%­­”/ô’Á ‹qđpCq,aïķ.9rý—ûlP*āN5Ņ‘ē|‚ė /o(K `8Æ G™Ō*GšDąAÖæÃ`îr/ŋĐ4Þ'\ŋ―lti=ôríũ ÄP.qƒ-ũI§Ï7āĪõ‰­X Ŋsî’kĸaļ?|Ŧ#XÖ9&Ā‚ t%Z‹č‰ ë‚ûĮÐĢ)`ZĄ~rĐ ßZh…ð!Á“éįē·jĪw_dúYn�éŪi‚ßt‹G‰1"ë°Ãð %$Ä ÁŠúŋv·DåUJ‚ÄĨ“A+Ëþ·Ow  ž;SˆOÆbĻ—ōÁeģūøĖ4ļvrOp‘č"ĩOĀ‚9k˜ýŸ °ký‘-:pE ãÁ·–ōų䥭Õv‘Q-ێÚÏ_―ûö]îÞe<Ýæ\€ōØeth9I8ÛĖ?”Ŋ ,v° (‡­zĒĪKĐĄŸÆ1a°fęđé4ia΍―˜:šøXî^ũāĮáëŇģl~ą@ņjÁWðŋâ.ðī/ėY ‹Ký>gQOÐs�Q"’{ĖēPÕĨ̓æýL&ĄŽ Uƒ  ŊŽŪÜüKM!ž…, `ŌA 5žÛ4ÐUΏ"â6Emĩ°5`l—ČĢĶӆĖÍë 7‚ē˜†DënȰŊíDÝDÝģD‚ö~)úbéz„áþdāäSŪš!åša;ōĸCÞ`æ%ëĩ ŒŲ‰Ī­ú8uŠÞĻÖĀŊ­ĸ'ŽTa‘ŦŪ–ŅˆŽ_ˆōgíF:)ĐĨr&)wŲÐ8szĻHÂäÔŦØĖė/ø_ÁĩïÏŊ^0˜ķĶĒ4eãĮ\esĶQ>’ō—ŽŒ æšxČ7Q-xĪÐíkõæKū‡·ðëžļEy·—ßtÎ―@mÅMuÔīŸÓ2yĸx0§MC�“ū^cęUÅsLz6ÐÜi(ČŪk„Ģ^|! LÏý ē‘éÃЃr‘ĄĀ·"ĄÆyŊ4:e7ągĐį"W”Ŧø8˜ŠX• gᐉ#Ë#ßîОvü.xđé1qŨáaÔ?mÚwE˜áŨÔŲÝ™�ųĘxO ōēÝãĻ�!8―ÞĮœî^.‹}ņaúQ:ýWž·áŨŊ›=~Ô^Õ~~&C\{@―9ĩ=FÛŌ6`dą‚-‚/ĀúÜî /Ð†#nq ōÐr.8č�qŒˆámßPzũĀČŽBją­CXüã+V'[xŧļ€äo'žZˆąÉæÅW>Hz,ÉōˆENΌé`]Īŧž05ëkqđŪP“n؛âÁës‚o‰lmŒĪēĨ›8bLž-Ŋ‚âČ JaebNY0Dxķ#pŨjŨ§q“U™§>í‘QúÁāĖ3“l9„(,é;Ä D8Ķ™Î€tŠ@(ĮÁsfą–ÂÖķ ŋIs‹ō_|Šŋg!éĪNēĄ,í^þétŽéļl@:tÂ\‰—B‚†―RAQŅJĘ1yĒÕ衅ðđDĩåDqĶėuđđ'‡PMąð~aIÖKEÃÏeĒ5kē@6 Ô^•§ņ…{yû8ė9dHmŽņUAáÂ}ĀY1•­ũ­·īáo'l"ŋui°_ ?ËþÅ­A†—ÉPÅšƒÁ‘šĢôkd&øį/ĸ€æĶ—p–Ë:É2mĄ!ņ ÐöŦŪ3š;ŅąŠa ߓĸ,óÞ8EūĘ$ņį3î7}ԝ†ÚB7vb*bA)ĸqÛÉLŲšÄ2:�95íLï§"Cĩ„…˜Ŋˆ†pĢĐÏÉĩŲÎķ{kËá”âþÓŪA%Ä:pģRÐĪÛŋą†Vu$ģįã< ķE*Þs”ũĒņNbÐyKütËÕø>r—dnS@‚Aå ‚y™_'Lý5Ų"ŅdR‡bÎčJėáÂ^ž: F†:y.ũÏŅJãԏĪümâŽM Éj Màč”ĖÂð ņĖėįûĻÖ1F‹k{·3ļē·~īč ąaūRe&đB†oŪO‘ųÜĀ(Óĸ~JŅ HjØk—æ<“b) ûĖĖ&r"Ðz7ũ'ũ!•Ó>áo#ĸ…ûJaXũ·Kã’75[čķ’Å*ÅmŨ%Q/ßČon)+Д˜čĨģXŒĒK‘˜wn—ąÝ)ÛíčđŲb•žđ&eį*fą™ŲŋˆBTr>EˆÃNl@ę.ЕÖh7ļŊAgxÂl o Z™W,0Į$ӊœY3‰3iJÍԃðŌ:*}~&PKjóøčÚVčŊ2mēX 1ŒþęaÉðdælþt!Þė6OŸz0_  ‘ÚtÅv/þy)‘äYĸģ -­ÉĩŠÁCÉïÜ�øb! †Í1 aSõĶ~~ĩLã„ëÃ+adkģGøåķtb-y^°Ŧ§ē₱žÏöå!zz+fÓl ĘŽ#–„í7 šĸ(ŦđŸA·kžĄÓ:ž}éÃEÏ/č*VĮ|ĸ;ūÃ|C"jÉõÛĘĪŧåŠÉÆåe'·mÉ&T.âęŪÔ7øƒŽÍG”Ģ[NNaâlüU}-ÚH?ŋŦŽRi•ENGrMyûͰo,ōE1ė:ý, ŊE?|ŦĄ―z7|eWqyNĻXQÍąŦ6”HþXÓš ï-āï +!\š/3ƒ$ļRCfŲ*Ôņq·‰"ęW?ŋü‡ÛE’&”cf%fz+fēŨrðņbkdQæ=ÂÐ)^äž9ØÂÕ~K„|g‘e°ĮE#TļÁ3đä3―đÁ ?æDānZŊđŸÆxyĪt?õ š1šjŋ9Ã䭛+_îm`™x˂"Yúi˜ĩĩɘå&EŅD„Nƒ›Ōš˜ûIšHV@ĶÆ}ZTЍķQÜ`ōØõcÁØÕl2ĩųčŊnmüOąū*!ė-{ ‹Niu||ĢIyMŨĐļ―v…Û ōSeV_ ŪAĨ†:„šņÐdK=�Ļ|Č0Fíŧl9jĮĩû3pYö2xGYÆŪÏÆâ;€_,•žAÁüĮoðQNÎ�ýÂZØwæ:ï`îöŋĸiíÜbuË)ĸ. Éþ…ĢvðÐw‹œ<]Zæ~ÁŪōšY•t+,øCã2X…EA‹ïõ"ÁņđŒļðî‡Ę95:’‹čĖ,x Ѓ˜[Ā,o,mKķ%‡Gb]ļÓkUųƒãðąŊ)ĻP ĩšVũkbœ‡–Í ÖBbYCR/ėfŌF�Ųþ =Ð?ˆŪþTýaŪķā  V€―øCč䎈P‰ũū60—UÜ7x�ø­e6m‡Šn#~Ør§vĩ\wƒ,%9`)eßaIŅę­%Eú2ĸ\�ę ]$mNÚÚ­‚5ú!’fØ(—ēŽimäų#B1[^%č[6CĀ” šUŧoidnƒS)ü{YZ<mę˜„Sš&æĻJLôwcâ;ýR#âw?Š9ŌXrĄnŨ‰ų9Ÿĸ#AŽÜ­.óņ“X]āmŲsąx6á’NxŊĸ&Ōũ )Z|OB —!”Āq(’•JÖ‘Žó CÞ} Tgntä}QŒ|LVrcÎDüüTäDCŲæ™ųgn Ņ ĸ;^;„„ÁÂjžŸHáĐl}g@Ŋ!uR0Ö$čÓeé_ = ,ąrŋEVĩ+Ë­a›­K5īŅá„1FbRÞ>ý+/ĨīFb‡ĨJ―<Žéíėþ‘™œ;ŦBĨ0ĮË|Ôį„GØuUļ,glxĮX1ĖKO΍ēÅ( šÄzËílŠü|Û‹ãHÛëþņį&ū(ŠũïÖHą8đ―ŽŲN 5øGQ„›ÞœĻŠ˜ äŠÂĄŠų%;ü4M0ş*]ĄF+ä‡ZÜŊ8i_ėNō›j `élË}jŒ~ÎĀ->sþ@„ðãūVø•ÐЂĮ)SF9™;€Ō•$čŪŪøj .§ÃðīÕ==ØÁ‹bå=þ &ë;ˆyĄ…A3l6QÂÓËp.ãÛËþĖ­ü…Ũ+ã(.H ĄR;V*)ė…Á@äÉ 2†č-Í/Į*mjøũšÆų›^ŲÖdÞÖp†7_Ę1lzsQz‡ÛũúLûËøßõęŦ í…HÍh)pkvžu%Ģgō-Sųãļ„ŪĨPd->闭Æ:―ŒĶøHüĢ8:ĸ8{ņŒ ąŅqþ(IlυđÔšDŠ^" •ĄL[yŌtw)SĐÍOHbGĸkē^xÓ= _žvåR.ĸŠuīB›lTÔßæzY7_#w{ oąũo{ASöý]frkŠ Ž|ü˜ !‡&}žÍE:7ĢŽ―ô˜ÚœŧÝ]8…ŧœÉ š CŲ‹=OAOņېVKRDRÉ Ōĸ[°ã„öD õVƒÍî€!Sá_ÞE―ŌM3:ī8{%ŽuÂģN§€�ŊÝwžėOžR‹”@æŦÆ[eæÄ†FōoSøØķĐą+ÄŲ%‰KëŽNŅw—#đ°„âíb™§_Ð%Į^måū˜VĄ./­'@~1Én ïįíAHüÃŋtIX%Ąï‰)åY[Y ŦaŅhų’A“A―­of/ōPý4āųĻlŧ 4 îįY,I‡TrËÅcčÞŅiļJËGs+*Â�4ĖÐÓ-!°ÖqįŧEc>Ņ— =XcÂh[ČåķúĮu FL#㔎žqؐâį~ĶrÂ,Ûڌôę”ЭųÝ'­jÓhyXŦČĄķķX†‰‰&ŠžĄ“ �LĮŊ$ŦÚŦš ÏY:§R@%ēā&uÓŊF@;žōU^2ûÐßጎ­_YÁS5øbÕė wMĄ|/n… &9{~ŪÉHͅ‡þFüŅû �MSŅąÎ―ņéá40Yŧwí7ō[oã›óá1I­ýF$.eœØ™ð˜ō\ëÞ- &g ƒĐuŧĸÆ%EąÓåSvķ›ņE2(xTÆwy;AøîFrœ}ęT ™V­n-ĖX+‘ÞĖx ž`ĩK)‰ÍŌv˜ėjũ1é`á<o_‡0…jķfėæ‹5óë% WŽ{u‘ęGP(^hØ_õv6vÂô%z<Åþ ûī9o‹ĐŒīj ŽŠaýÔė9ļZ%ļŌ:į?ČĖæ`…å_åÁĢĻ “ķ‡ÜhõÜâ”5Ī81&ú‰ €i8{ýė ðņBâNŒ{†UmZdUÖQÍ‹Sgk-—ņõ―…š ÁZ’)žėįûzŠ›z‰ˆŧƒ°C�2üŠ„$\™æŽ`j%đLĪØ2Û°Č„&<äic§Āý?ģ6Nž–õĮ+ŠGN8ņĪÚÃ‡ĻŠzZhéˆJ^ú\Ah–ĀËļØåsĪ^™‘á~ÁKE ™@éei[#@äō„ŅøŦ>eý;=KSĸEnŪ)&ïXũmGĀ|Ïš ]ó"LBÍŋt]Š…ĪZô_E݋äejŋäpÉ>DÞÉð”LīŽ&îæß™]Ɖ…Ú‹ą―h#ĄHCyŧb„Y[ïïÂ\?=ÅŠŽũ!owbn€4ÁMƒX_óLýt?{čˆéxŦë>Íēnž:âĨ#ޛH,|Ōžéԝ:ƒo&EíÔéHųð`#Ýx áí]ŠVØÆ=|ûD&Ęž BąIõlŠ3Ô9Œ#įE+Mf05š?ë|7á­_ķ›zrū#…Ôô‡,^Óäœ*š”R(Ŧ"ģ{‰Ņ„i§mČĀ&éŠ.F §k‡Į^oų˜ē?‘ĸWd\ûēBeą�Tičۊϧ$LïoŲ{y/>­ŅÛ8ÆmœÉv·ĘëgÓoŽqøî’į-O‹%iÞ,ũsŠĩwHˆHŅÎRiþŅ1 Ģ°ĢtÛaÐŧ|I`0Ufa�ŧ?ÄýÁŽ ä„ÉH${ŒN~°|Gë{Ãėī* ,ŠZÂ‹44n+1\4Ŧ,}§ųŅáđÂŦmīāŧ}âÉu›o‡{ý`ĸ^pØô… p ũGw�ŋ­ãĢgMðqëÕxÅÜé/”ũK•V PØČĮS‡<ä-f/I}*ZôÃŅZŲÄÍę.ŧ†JöÖÎjcXŧ3Ï5XęuĒ5™3ĐI9XLĘCÆŠĢų-ŋĒLaV…HŽõ—öϚUşáĘm"ŧkŨŽâP­VRđ0%fF“ĄÓ/ðÂûŒZģƒæŸý’šdųīulĒþÐHÏYÎðũÐģ#4 YËËŌÆĨdėïAImtĄ0q…IiN4ŪĨķ‡(J›Ō€šļ™]üBû$đÂÓĮ;ËÜđ ÚÚC'kC2aí—a|&Šg E• ™°lūLšH‡[jû&~}Ųl"VæÖŊņÂA ÚĒ�ķJëĪ―†Uü ĮyžŸnÔ ŦŽé)áI,6NââŽ.ɕV3ŋäæü†Ž~ŧF™ÆDHL!֊ÄCðô 2/ áÁs)dâS1€ÁĨ*!0õ ,îw―ÎQ$äåÉ\úįtŅýäĢÏLÆ_ÁåYþG큰ŠëķŒØ:­&O4zŅJBtY›ÐŊĄsÆuēĮĪ΍"N’0_ԆĪp{·•ŋöx_Ãíô݇Ûęó·Ō˜ð]@ģrôXē‘D#88‘ÉU†V"Lō Čœ― B Rj1 v2óÂ8–ðđ.D Ė+Zĩlœ}. Ād/�|‚ öÍw;dð-Æ~ŅU~Ŧ4ÃŲŊœ#UAÍ4ÍZâ8d؁F'MF„ŌÛB^âY\J=mĶā6Ē0ŧíÁĸ<ŦUË;ÐT@tZÞŦwÚŅļUDDw“ęīY—rWÜwĶąõ™jâÃ3õVDmtþ™jŲ”�}ÕO<Üaréþ5Þ5ĐķaÄÍR Īåc”Pƒ6aŒûƒæÄ.!ÜÏ Âh Aœž9ÏGg=U†IT§ėŲou˜ËÓGĮHJĩ$W}4ĐmĮīųŪčEW“ā;0ŽKJmeÔūXúšfÎïĀ ,+FĻĻīó"îÏÝiƒĨŋ/;Ėųâ;Ŧû―"îr–4Žs"՟ ĄnÆāü1í―„Ō•DĒžÎú H›C­ųōĒ‚čÛCŨšð-įą5Æ3 |•Û›pĻ0RöŲ|ī˜‘.ÖāąJûbæöõÂ•ųˆĐý ŠĶÆĄŸÓ>xŨŌSŽ…=âŲ*îsn~Ģ>>s6pÕÁƒî/áglĸŠ“Õ‚āŒ‰ všÂ‰ÐĄ )(ĄĖ3ųrЋąĒv›iÆmAĖ{ŒŲãtŋ-Ayáļá&{wqęn%SHˆu3›•z\•ŪUŊ^ĐËÍ­âŽgxæZé%áų:úTđÃК}6O"åL�xëū75%lO&Ž+~[öćŠÉ_‚zÅĨ1Į%\bÐ ÔŪwĨˆüŽĢTęÍ(Ta&qÖđþąIKÓi0ëãëŒ]đúÓøLĘßvøõĻRňŪķÛ0%hâačöNL·yĀfC‡&T°ÅšDĀÃïÃm†ÂęX`Kâ!Sb”áCæƒq§°ÍĨ>TŪ`Á C˜ó\w,o# ―ÔmČZi( m[HHpą= ƎXŠÓyM4Åj{oąŪh{NĀR'üģ߄z7Bt͊mJšĨ•'ģĘūo‚­-Ý=”s?|oóŅüŲ,‰qŒ–z&ðņúĘĄÂ ōą*m^ĨÞTIĄUŽsą]ĐâcúݎÃļæuÁY‹ŪQ îSôäÖ`4LMD’Ø‚H‡€ÆÄ“ÃøTĄŠģ%, ,•Rk™$ī·ø{gŨs_Ø$GėM.―g „pĖ’ˆXĸ1Fō`‚$č†zTĐ e)ˆ7HŠÃžĶ™]ÁČŨA ķf(Exĸ[WŽW)83ëæÏG~GmĢ‚,0ŸPøÐ…j‡ge“{6k ÖÔĖŊžý„f]ðŲŧí}yaųbþZJ—ī茘–ïmĻÃrÏ?‚·ĸ‘ėAi(hxåûŠþKTHó_Ų.E•GcČp‡~Š?ųĶÍiYï!ė‘=‡âð– hˆ`ųj6æ'>ŠÅP\i;eRí5# :âNŠŅîšÚĻÕøŠĨˆy)}“<$`íÚ†õ#Õs~Tš’3ĨYžĄY 2mŽ`ÅŠÂ(†e2Ósݘ4Eãųķ{@‘ĄįUņr%ūzåœúlš’|ó,zqtōũL VLŧĘįđčÎQĢķ`JA@āgŽi ģI5G†Ę‹Gæ_w­·Åģ‹Zîŧü(Ô~Ą-ä4þ˜›Ü)ö„~_ãÁÕ –(íšfĖĩ`ÁíšŊĢQ4̜x�ð°ŊģīøģĶúėčNÞï―r`ý7o{ŠĪV3Ņ 5yT~( f,dņŊŦeĒUÁŦ2Afq—d  Ōôēžė ݏÚJ›ĄwĄäDÜØsO;HLË vgacý$Xũg&s ƒË9?°<û‡dÄþÔKŅ4ĪÕjžß‹ņYģ„ŲÎä5Zú^ī§ūĶâŽø'ą;6þĖaŽ!^wŪ/ĸ‚'€CxÚ0 ųNg,óîčÓŋĸĮâõ!:ŸmrYD^YĒߞs][28ķSĩÚ_ÞÐúãQaŽ™—œÏx[ÚÉT―zĄNęƒĖj$Ėļ!ĮííļÖ WÐŦ@NĨnHQķ›`:m‹ īŲ6­§\\īđÞí“į‹giŲčW,–BīŨœöVŽîØYߌSuï‡ŪâķÍÞ1v4ņ;Pg9ėĢô‘Pd Õ.âÝĄCþŦw*ą5úŊoļ7éž SyžþuœåĶs@ëÕĀĪķŠSÁĸ1TïJO™í(§…ĄšŲRŧY$TƒÕÝ4’Ā-”Iām>Ē6"&œqĢåüãä#{†?íg,V!?Q|rŸrûč„=~ÐŊß#m›P~ŸöõZúŦo?ŌÅčŠ7ĻÚ}•7ëš!§ž!_ÜEb>q,Kō·ŅĨ5—=–,ĩĀRˆFū˜!p24€5 Č| þ!ģ z"" ŠõÆZJČTnū„+YQę]ɋb öb‡] âŸS›†-: V―ížXöüûã(ėRé.aĀĄDSzMþeƒ~s0({û'iŠĀ O§kŠŋbe[§ĐŒĐ„į§˜â'Ū‹”Ņîjæb!—'0ŠøŲŊĐa͐ûĻ0ÜŽōԁnZĢák(đ‹Ï ęhÎŧ3\Ę'`uē6Œīļč?ŌáMýSHQL"@íũäŦ_ĸ2ö'WdķLR&? ø”.Ųts_ækæ/’ËiČŧŋŊGÅi™™"̇qÄäķ*BÐU. éˇį6…ėsHŠ­ąHöÁČA•0Ó[ģëīô;ˆYPĄ­zŦ,ÜÝóš€(Đ\ōÄoI?bCĻýöÞž, ō„˜ēõ28ðƒĐ“5ō^ļPóAE‚Ÿ^_zĄ"Ē^A›4%7 cz‰ xĘ―žė$!q§QųGðŨũtœƒ'ÜįôĀ_O!ĩ~ĸeåT‰ą•ĶØüØŌ’,ú)þžîÅ=+> ý‰Ė†ĢņßSe háïNß›î\čc›Ū  ĐþI :Ž[ ĸ[ôPþ)”Ú^†“kĒļÅ ē ĶkTŲ[ŨE“2<ž1åp-ĸ~  úC[-sø ™`Þšˆ—#p~#p8qyÆOlx‘Đb>G$–Ôķ–Ķg΀SâÃÝÜqe '*O~ø€šÍ J:F’žČi`ØžĪ7ƒoŊІ °ą}ĖE#YkûP4€ŌoS‚41ÞNc Y…Ļ{Xs‚ü1ö?1„{íÜČ0B[V0Js3'$­c―1ĩGOÄšûóļĒ^ēÆŋ§?'ŧ2ð&ú’zĩģýŒþÖlžļ(jĘ`q˜č3hŽŧļĸOŽ8ĶSå}>ņå@Īķ íb™âöĖ5‚0iķ,iũójQÞd §cĨpÛŲŲ–ŋâJš—Þā4XëĨúGüD†8UŪ(žAX-PU7,OŊ aņg4cĻË"|FëĒBČ-“ڐUɞ—áÎMÍYXbc·ÏmŪÕy ēÂ=öŋLÄ-ō‘ėę�ŽëgŽŽųŧW[™xÃÜ{9_OĩŸ”'偋ŧũÖšČŊôŽô]æ 5UIØŠ—:ÏOÝũZe(ŽÓw!ÛdÍ%W‹qݰĪA% đ;áŠÞHw™? ė· îęåJðtÚaôsÎûû�Äá:Z%-ûð@­čBAVÍe.‹'ēģŨ—†øåL‘(øŠ1ßĩ@Ŋ^svÐÄß"éhīsûƒĻМŽļŊ–GI’ŽúÏ ōô$p1ãŅ%KęDUđ=:åOkū[3Í?ÔÉņuØ{(Ä iíŊCBa'OÆŧú˜‰į}æ_ ą·žĐáĻBōNÞŠæ<üū)S s^û _kđĖ|c&ÂJ ņë[zV͈øŦāp /0r%Y;ï XĖ•-spđõČyz;É5ž°Óĸl\\\&‰ëJKxÉ―þØkkƒ§―…e8›…Ė›Á›óDČŠķqŽpŋmV[Ð ,öˆHžK?íGųÓ-ī[Ļ€Č ð˜!ņ{ŲĻÁØŅÐ2t5‰Aqļ]čɒŽ.@=‹VōvÃïü‚=^4n]‹GŸåQyđG oÁJ%™{ū:$ēĩ́Ý]Ą ŠûZf,L›“Œ‚üîûōÆÆ ÁýŽx§ģóĄÍžF{í;Ëîũl8ÖŨëÃ%Ī―‰NózTÜŲĮVęXYāv+Ë#3ĩ‘ŧå›f՜óâQUķYQl|g2ÏÐ$ühãŅ<fÜ$B&k™nčĸ'íĸ<n2˜ïÔÏėtÝXŸ§k€Z !]å_Ÿ #{šs�ïÃÞāgwnˆ“&HũóēÛ([žõåsĒŠnž›°Đ4~v_öÖIĶC—2uJF„ûÖYųĒübš­˜ĩ œ! ķĢ3q#ŠÍ‘5’áŠŋá íhRoÆčQ:g-oƒ­_ŦŠ:xč!ŋð‚اkÔŪïŌ€Ŧâ†ØåÐëÖÞgŅŽ./(:Ļa•:ās_ęR›„CþįđŸŽáĢĐų##ãĒtšN'nšá­Mx>ĸ1Ų"Ŧm)J˜OóUØŽóąĮuä$2žÄä-SD‚<ES đ+^ÆĶÜŊņßÞņôūĖ–XÏĐāþĪĸâIk•i‚*ę*f?·cÔ%―65‹#ÄáŋˆbŦEŠŌC -EïŧÆí|įG€) Īpƒ‹·”ė)™cĒ]°―]ą‰ŅÓÉzF)ímVņ…)�ÛRČ1ðúTü<Üþ„sÍ,ĨĐó™CGcV•4ŠvĨÂū8ĖKâVðŦŠóB ―9o•RĒR #ē3v xŧKYD Ō�r0Ė\ŰÁķØÅLjõĢ ūØó7lCBÝö8ÛïíP˜Øpū ĩÓ§íéiáëŲgK˄û3/†Ž 9›ÁÍĄ<9GãĄeðučgz‹Ņ(*:iŦÜ\LFsRz‰ĮJ‰<æ­I~)YÞp5‡4# ŌøÂ0ß!ßõÄ+Ļ`[ÔĨ m’9ĩ[ˆÛ?ŒĒČ0˜AÖ)u‡g6āęÎwąI'Ó>Ęï[ŨŠ;r6âÎô˜ĮáŌÔ~#Įá―�ČŠ$čpΘH­üšk’Æ4‡o?šå|‚zȝæ(/þ?SNCmvûȂŌĩoiŽ=ĪŒðâŲĘÕ\9^9ī_ÜĻû�ŽHÛ1„Ļ‹ÝãūÕ2 Ų/mYÂÞHüÓĖ/u[ũ‡Ä”NŽGþwßæĨ ŠïčÖØFŽëb8CƒŅX˜.Ĩ…φpQÞÔā[ô―.OÅŨ)}ÝËūđnõ~Ũâxቇ'ŽÓŲûr0�zĻhV{"[-úŧóīŋ˜)Íý:ĸ,,'í žĪ]á{Đ |…ĻrûŨėKhõ]ĢR�ĮįÃŽČŨƒZîûÄ Ā?ĒŲ%Ņ3“GĀ€ũąÉ2ŅŋaŽûžvĢĄįT‰ōņöˆÓĖŪ­Ø<’hRDócý/ķïÓ(ąDýĖ€ąĮ>\ģXTðØņēcŠpN*neæ”Ðdã1==Ÿ} —ērĻ㟜4ÅFēC\ÐBŲ‘Íŋ…{ļYLįŽ~ž“ãäđŲ)æåŨ{PjþðÜÎjÝ:ÏiVIčÚn§ÖÎŦ;B:þ&‰gČЌĨ?įKGІۿåØöӂ$į9ŠßNóÐ0…PÞýŊún―,]’ ĨRŋ–8EL˜+Ï―FM?ę]2uŲÐæų!ŽóØîč„z…ĪŌSl-!ˆŨ,AįĨúĘCGMW|V 5ō‰Îņw‹ŸŅ,ōßĨ5ŪršÝįĻC]ÞÁ}…ôķkĻÝXó6 ?f<xÏŪʝá4‚ŊM%ÔíéqŠēfÞcc~5ïZÓg+ØáÐU:#kxöÁlP3U`Ą�ģdcfQĐ*[o—•zŠîF įĒ‘_ĸā z^Áę\ÎlŦbIĨj:ú­­ėĄÁjįĄŨīŽØtĀp—–­čðäýãNģLÜŦæ|K(Đdî“ËÖĩ<ýĪŽ.ĖØH8Ï'Ņ895Åœķu:éÉīÍ-âCˊI r˜m�ÝŅØŠ?ĀņZŽŲ‡fʎÞ,Ó: t„ĻsU4‹hYĘ{û-žyoÞ0æ9|‚Ó'3ŦC8ž/ôô@ė‚0 /īŽ,-üšzĘ'L<*ųG6Ïæ=ëū҇Ea‡—đ„=Ž‹ rÆĻ’[O�ĶÂb“M.ęĩýt{íŸ*8a ƒ‚YZ ôô`7Į@MCKbwqĀ°OV€[í[ōvŌļNüŸŠÆ3“0į)\ĀĶWH�������Ýfg)˜|…jÃÝjØųÞŅ4Íæâŋož9YXú)9dÔ‚ÜLŧ€ôœķũųę‹+ÂĩõPþėÉ* dL°ž§ÁĐŦpÝ% Õb †C† �������ôE >ûbØ3{^Ėļĩ{vÐÔ õæŠ>åäRƒtŊz€Ļu`™Hlŧĸ-7· ßŨNĐĸ8ĸ€ģ%ÉYÐ&I uĪíNSIžÖGŦÄŪG*ė‘tl ��������eÅŠÂčkûz[ m^ËzÞËļÖpïՐ”+œōk`ÄUVĩ]tâ9f rĶ6áÃ)‰É=Ā~ĄjqĩOã 2Ÿ•Aį=Ģ—ōÂsSļāZåÐ ÕĀ2Ĩ’žõÆYÖž*—ž:É/ŽÓĀ‚ <É:Ü%‚Ķl—ŽžaÓ Ņ#,`k€sķÖŋ‘š gŠ‚< ØŌ•Vþ§ óæo‡·[8ūpýŋƒ'Īģ+­˜ė{ã8.i„ķøÞš>_:Ģā5ŧĶ’GŦ…lŠ‹û |Gĩņļēŧp‚;Užš|.ö"dP —!ũHļ. nÓ7°ĩÉ.GĻã$uGĻm…Ę<ÝR†ĨēNĶDũéÝõŊRҜîžvŋOh'ļóĩ·/ZԂ 1Î6…Ýx†č *ĪîT;hņæĸiq{Q#Söiŋ8$ŦTū…ItTQM, Éōĩ#„ĪĄ~Xé-ņĸ[ĶČöSIŀ$žō"Öļ ŧïY� ô‡ņđØøŊx5qĖS‰čڍdV‰t|–"ūä Ęã6)CkŨŋ€ø—ūâ^ĻĀXĀy\‡ûģ-Áž<6Ų‘ˆ5ÛDÚųôõ‘Vļ‹Ŧ`ú_ ˆ7>Í4‰I;ĐkŒSÚ§Ę^~Ðyå`]Ųĩ6’Ÿ!'ĸbģšLĀŧ1AXvú~ęiÂėķy 7&þL88y™‹ãöôû}ïŦĩßÛé_ÛÔũíô ý―Ë~ßM|?nÞ~Þüo]Ÿ·Ņ�ō4â7(Lπý+. Ž7yýüqЁ0_Ī 8ŽÜÜ$„4icþĀýÐ ú2‹„UWŲRžn‘ž˜ģ?ęÏ[žĪ>jŅe=ǃÝîĨýÚįú61ã”§cƒŦߝŊ-ĖRū€mvÉžaaŧåĻũíG0]-‡1ķÅJüīŠÝ󱕄Üä_Õpc|ýõ5œOÅgãŽÖ.þ/G4Nðe\xČclDkr)rĮä)mŒĨņōþáUƒ<7ŠėSĶÎ/ąf‰åã`]…üŨ1N›•ųąH~žVXŪÔ}Üĩp:'CÄ*”AŸĨV3ë݁;HČÔ6BŒ› Oėƒã,gywæĢ$jxTéʐ;Õãū…Ž|tž"ýi8ĘuX™°ę†Ÿ�ĖoeClĘčę mĸ"‰'ČóíŠÁޕiŽ_/.JLéï‰ŽĪÆ,*„ĘK;Æå�Ā—ÝÓʖ3øņŽ0,ýd9ÐݏÕHf‰sĩmĮô ›XËu7ՋÝT†‰xõáóķ3‚ØÅ)ájäjšWSbe-OzÁEđ5IpôŲ ß\~·žäxp~ƒ6Ū"I]ÆßčtĨÖþ€Ā‡ũßÝÕ܉R[eáĩGÂWi`X­# ŅŪ OidsŠÄ!hW·ĖŪČõ΄ķ>ô―‡ýÃūl4N‡ŋĨøĖ Ró°ïfĐũīĮņ5ex NãļOúÉúĩ`ŠÝôŌįð73S`W/jð>wãēL++SĨ4Ą,FÜ Û@ØĘ― ð ŽÞžó°ô*n�Ūe3þžü—�ˆ—$dŽīïņ%š ·Ð-Į)9؉`ó™sl?Ô}HŒōĘ%_[ N;9’CĘÓfôÔAgŧ ęIø.OvÖ§æ+ ļO0ŪÍhŽÔeéŋō\ãŠÓō=ø6yA?‡ØyĖœÖÍd›E+I.Óð·ô`æuh5ķŅßUGûÜuXJ>Ú A|Đĸ&ÏÔ|ĩ›áB ÜūÕX%ŘdînåÍWïô†dbĻõÔ-!JzÛ'ti1ĩOˆžŽsß§ąĀÔS–,MĐ\šdėqZãĻ1HMĐ:·VžîkýĮýr‰öü§đÚėkûÞŲ4oðøcÁDîĢ•@+ąõ l čĨ OZķé09Vūį`þœa JÄdÁŒąČšOPC ß\ģ2fSļ4 OĻýŧ>Ä―hËú$œ;yē C Ëø?ŧ.a<É>"Œ vŲ&ŸņE‹[&`O0†7ÏnÏĖ`Ï ŠĶŒ6v‡ Ų|jŨ0í0Œš(Dqã^NŨjŽOŽŊ\â‚éĪGó™‘cS˜|Ā›(Ä―ŨHUÂYÍúBøß7ÎTÏÖ§ĖĨŽwZņ>|Ÿ§‹ø sÉ@Ã=‚Õ‰OųW€ßÝ &…Ĩ8i)(ôĸØVŋ<5 Á”<ø/ïEā3ÝŅ6KAŅŲD/JĪTŊ‚#lLƒÖW˜:­ĸʇšŽôܘÅÎėô…ŌŽ€†ČšŽz#}@qï:'āĘŠ6° !ŦŅG…Fôëņó!ĩūĖĸZMņWȐ•K8ú Ï ú۔HyîxQ8]élxD‰ Å H'û~ npFj%B +6Ä{‘Þ1ÝŊŲĶT[[°Er…“Z­JÏc{Ây0ąoĖŲwi™Ē'ÎäÏå&`ŊI89š@ēĐõ‡pHvãŦ†ö°:RÛn% óåņ žÍ þhÛސc>Š&wZ^Ņ  Œ‰Édķ͇WÃëh%åD›æ=FČÎüoķĨLë/oüņâÏ{ū8ĄýŦŸÛ=n:n@ai—ØĨƒô6Q­c‡HQąāÓVŒˆˆ1ZšlĢFg* z`Ü}ž^ÓD›.!ÞHZį”ŠėóšMwŒwsbúæ Ī!g6ĊPÅ}õŧýÚu3N4'œ%…ō7&;ĩėBmŋŌ8B(/ÞŊĨ°Ē'BÁāɚærYūuo+|ķwÆ Ķ,‰GHĒ5HŧuMČœØŽäa'’ÍNąg^“Ŋfō‡.7g� åžŸ‚tĐVƂŌ8Ž"nX |-ó/óö–“Š3'é'g5SKÅūt=­O儭č)Š8ˆŠŒ'ÞÕ#Á0 JŨPý^P\3�-ï/4”НôĻæœ/hU2aõøĖ+Pkø?Ā<,%`ŋņ‚[üĸ‡ÆZxAX į4QžAéߎŦ+Vø!TMđņwþ”Iß݇ŠMÞę·VzōÏ\ˆVï§Z‰ð\_aÛÍÚDDþ­ÕĮeG@.ÐęÞtQæÓ?=Ā•ÕI}ųK8n­žj�B&Fœķ[]‰>ޒ=( ÄžĻHvjpô$‚J\Z}VïûœĘ‡j›™ąä ŨŦŽbĀ·•Ķ$X1œÁâ˜ÞzÕĒrRĩúŌ4㠟­EØō§Ķ‡ōh―‡ÏņŪ-ĐðY ŊG‘‚P|âV˜?‡cF(míÅONĘ?o°Ó@ĩE0*l9tlß�đņÞę%ÅĩėɁ<ԃ G'ÃÜ`G4R Vō0Á6ƒČ|īįĶPąč‰ãąe’‘Å 5Û6)ádū+ë6îô2Gé''›mBŽ9Úh’ŌØČ3Ð�͉4ôυm•Dxõ2Ėę!ÅØņĄ0‘ōÃšJ{ōCõV+xÆJG5 Ŧé-͉ķ–@ju―ÁTÃjó2†L3N8€I%kĖ^·ëęŪĒĩīwãÔmqQíĩžýM{b~oM šM†ëY^Pc-™O-_7Ļ”FžHyâFŊlP ũMÉļ;šiž`JčæŽßÍ(ūÝŨmtFVĄÓ�ðđEK5Ža”/ÜŽēi{åŽf;ĶëT‡U‚ãH+�Ã*įíõ`šļƒģ ÓfåXŲ0p†šŅÝōĖ3€ýþɄxŽÉbN,‰Ā ĮŊFHfωJ|r”@ĻGN_ˆˆS“ë!d…Ķtl—Ėü<āč;Âk<ˆWĒIÉI\ îÂ9þ·DĪ&&3}]š]āúx…ņT/ákXƒQ~-yŠÐōü0z)Ņ4æåøš XRsïÁņQ”F݅,aŨb-ƒ -v~ŨsčОÔÛÍęč-�'zŽ€ĪÕĐvX!<āŽ“ÎRuŋoaƒâ>”ýī`ÕgåÏVķ€gPÐ éJŸÚųïþfūÜTÜdã[fžŅ 7ژW­;‰Û*2{XĐĩ_,ž”ËD€cb864ņOū>áíP+ŸÂx!"!ú­Ÿ ĻØhHhxxBýõq]z[óu1ĨÓ"Ŧ ĶÖ}åđƒanČ1*ØdlviŦĪÆĩ(ëÕčÃ[„ę’Œŋė`,Žø=)ę ÝJëĄwEŠvŽ=€Õ5?óWBÅBŠÅ~āú2~ÁęWžÏ-K>4ƒ čČÞi06•ŊĩūhĄ7=Æ5ŒĮsL!õĢō[3lægļIs‚5gëÁ•Ļ:l8Ÿqaū`”ÆxĮīĒ`ÚąĖ\û6ļ…6i‚kL^’~LäöĪÛ#€€ˆØĩ™\pĩ{áÃč Ž) 7ýÛ§Cʓ§į·LÁ OŒå:—ŸũZÖĘŽŦhL:ߒÄPČ^E•eÓ<8"Nš^uÐ{ēVáRrž‚tz-Ąi*ĒįÅņŸ{+°fŧį*QÜwWeoB&ÅĢ|ŪúZ.°hA1úqĨvæ)ÓĐ@žké?Ķ9g|đ_ęņMAö·üÔ7ŨâōDԃ+ŪZenKN=Ð:tD“—IĢvžŪĐđ…m{I8ĘûïÍŠļ›iĘuĖ~ĩb"Äj1垉xÕgŪ O"øJĸsk!j…ŨXH.b™ĸvxĻĪQ[›Sįî?˜Čô3ãËtQښ�,ŋƒą Š-ōZučlĀz—Ô_#|ãOÛó͉ĻÜAíÁŧųÎëąAPąKužEĢ“ëĖéü‰?7uQžÅÍ]sÆĨ*tLŊ\]˜”ĘvúšBĒ•dM\d*ÓŽy„ã:·‹Uš„yē18#[”SÕĮ`ŧwā™ÖÔãæ[Ļ šaœųÚĖ Û)ÖÄĘČ-ģž'ÚúëĘld`HjÚ]ũؗ߃›Õ°öļē€*!ˆBīû7„Ÿ™ģ‘ü…ÆŸm’;dĀū€,ï”?ŒŊUœÄÛ6Ø%3@Ē€šOņČ;�eļãŒĄŨĀŪ‰·3ŅvëCøĄoUxbšûŋ·ÄļŽNŋø^úän Ë―”õƒkŦŲÅĒ{ßļņĘ3øJž‚cýĘŋ°d"�ʰhH‡Ņ}ŠîxXæÕsāØŨDl+ĖĮEdÓgņ†áÅąŨ™d<ƒ.ģk!| ĩ(BĐtõF]ąV VŒÐW„Ũ|!YĐ+…u‹)h/ZąöNHþõ'―ÞđgĖbÕfýķņ0BAhaŽ-ŨwÓ@G”ÓvčÆxa{Ņ2nýN.ēîÁ(å@ĀwžKTú…âI`Ï(gķĸ„pÄ9zó!ęđ==c†îÆ/ԁL)Įr*[aŒĢFÐUðŅQŦY€u: Ž€š:îū–/6ęÓ*YņōÔ=9+Ē·øŦÛþÁb*aoęXÂ~ßÎY‰ïlCHBz„€ÉĪũČDð·XuŪŽ“Í7čhŪ’ކvވpĄĻëgYĐĀŅ…7\ņņžH ŲķØýIØQŠOKŽĀY_Š)þ•Šũ‰fÍ1ÖĖĢ%úî93Į|SâE‰pŊo› ,"+ËtÓ\°Îī“PðôĶOĸ% s͚“lÉŽŊ&ū,BĘõîHjĢɇ`:ýq~ÂÐÍĖÍtpBˆXd™Ą– ŽũQŸžģĀÝŧū ÏpU2p{ķĮ=ĶäâðĪͰ2›ŧ°cMZ]Yŋ"ņu˜ÆĢũō@ß0Æn>tŋqĀ=ÐzŊ™ĩ“ŊýÂÝXm™…ãÉ=þ\›ĸxüđÁG-&:j/ޑ(g›ė”F“§Mûŧ‘"@ ŠķSB 0KVûz Š%…ûÖjüŦEķ€ŽŊœßyJ >rcžųë öH–ė—ēlļĸTBŪKgøðä†B!‘4;‹#>TãÛHsä&Ĩ2ėyÓĪDm‡þ―+™ˆP<ð=–J$/’yY Ėsþ(U€þšvHĩÆýôÔ[›ķxę, ―žRAŧč>ûŠƒŽy8;‘\@ š)1A‘외bÂŨļSm—ž+ƒÐúz ŽQ*Ąy˜į1Šũđ‹{„– ⠖Š“< (•• ‹3[ËnkŒ“Áĸ~Ę@^ݐĀöÞBēð ëFčíķO˜O{ÆĮ“īQÅļþĸIŽÓk æUųōū`$x$��ëD x(š{óÐåœŪpf4ÕŪžŒŊgƒa,͆Ãņ0Ŧ%F—Ąų)―į/û„Ÿ~å€oã ļ 2•Kŋæ~L Č +TzĸËDŲ‰ÞĪ~WƟÁkŲRHÚ{ņüUßÍ,ūÃ$s>*ý O-ËîŊVÓëčUŅęf!Ō gĄĩĩ…ŦŸÏúŦ;,°Üpĸ6bð cūÓS›)_ĸ~™ąĸĸĖ�„ráiŪŧ ™”É‘ã(ÁĸtÅā― k4båû~| DŽíõz@��������üN!ĘabQ įÆÜŲždķ§ōËl’Mj9B―ŦX_ŊS2âģz`›…lgõÚ%ųU‡…d͞ķ™9;-c\-Ī―ĘYë“aĸ~Öi%V$?ĸþZŽÖ%- ãÄēņ8NļūŨ•ïüāW•x\áy~Ė:!ē”únĩQHėU­]ÔyÄ4~ĨWm5͌― âočï§En'Ä2•}ðĨŧX„Œėo/iúãJýė>Áųðw6bĪR6~•tNË_Ŧ, ríųCŸ~göMõ/ž&ąöؚn&y^Ž ˜m{ú§žúfmöōFþ_™Ã=ĩ%ĒVš*4 ·ãw8ĪėÞđ>LVV —lĒû4Ģz‹æfmjąa•2čmhĮļŠ‰uäīāG­˜Æ=åElcņ æ~Bí5Ėí˟�Ē7đŠĸW/`NöO―˜’ ĪzwĄÅLÆó^xRyŽčũQIIüŠÞCŽ!ĶëĒHtž—ųņĒÝR;ŅMöĮŋĶf( õÞđĪ^ Ó+Ę.IËōîū4ž7ąh…sĸd^ÕY›ԕ4.N}ag*ėĶ[9ā í}ÖčŽwÁķļūH†Ø óčėïĢ“ôļïĨ†ņ݋ë Ës/á`8Gį˜ĐQš‚Ė_fúëũÚ~ bÐŽ1Ä,îhyQą3ņė Įw*7Ķ›Ą–?ā‡öįr;ÅČŋH›g—_!CÃ2?čcc°Yõ6ÛŠąĖm(žOäėÂlUKÔLs^ķpŦLØĩ6‚ŧhsfCdģ(üŽ\7…5$uĖŌöwš/ņTc—T<ƒęíėš i—W‚!ð„…é~IéúŠf@%n… [FŲŠOũ4Þ` ‡f‚`L•{UL|r ėá&\óm@͎YNĩĐuÉĮęÁĩq‰Âށ,ģ˜ÐŲ:ûųĩŨðw˜ģ—Pu^BÔ9MĘWïnôôĸ[71óŨIęļpĻ$€ķæ„eČÖvVÚ˓Œđw,ƒ{š2Ŋïī6/>cō'ä­õ2YôÖ čIEĨAˆu(âīWۅéǃčą!Ķ–((ĨL0ĩbIęýDƒ0DË,ā)ŋŸ0HrÏnÂoÛŌõ ?ļS€)Ŋ抐ÕŲ‰ā\nÐu–Šē/ƒce]ÝĶåþ~R üĀÖõš�j~œ€‘„tÎÝÛę0GÄĘÆE�Þ\šīZ7ŽWvčCÜc)@’Oá.ԇīYĢÍ"Áû'Ï}ël“Öĸ ũú‹;DĶYĪgq`Øø6„oŸ!q}™Ą‰1/wÆ ýåŽû‚žļI~{ÚĪ°•=íXļhGÂ_ˆÆĘũ;Ã~}{QĢ)?)„Č5ÆI"øŨœÛ*AŒ!JŨŊ–hÂ2mzx~�Äø`ÏĻĮĄnÎÏQŨđÚmŽĄ-m “ļSÜ 6*ýå33=>â~iwœëŨs˜ėĢîAĨŦ#0€nŠ•õó/ę;ühėýkĄĨrǃëÆķũģO…Ր _”Š ŅCV  +ÚÅ^œi^ĻöBIkŽ1[=Ą ĮŨíLúÖáS:‰3MZÐO·LëÐá­ē/‰4ĸy�Js\ą%·gĩorSLÓþW5™:&8<PcC‰–øŋv<ĢåÆaęÅÂÞąšœŪīÏIŽŸĩ‹QāÆ<6_=ķØĘÐ;įü§áŽ'@š Üâȋš1á.‘uuå9 áŌō™îäÄŌ'Ė-€\͐ O{žúĐėŨK�<;šÕ2·W‘\2 YĢ]wĶ ũ–ÎŦvA •ŌxģÄe 5 Tŧær&Ō@Ōs~ōķÏïýUƒ†ŅHÝūœx3éqâp’:fy=`‡ßdĶú';N4ú"må­ËZ ͰœbĪã2þ‘tg�ēģWģ'Úáįw(`SČÄ­€Ž™õ—]ïÂÆíęv3ņ”{Šāc=æl…KÓzâMˆilļ CLb1A“Œ<j$ˆíeQĢē[Âý;  =%\u[E°Ä{˒ݞŠ�Ž"ƒîŧËĢZÜæJļX/Ļ\ü‹!Æ,ï^(>­ÝÁó—ģí!Tr4W#Đq§°ĀbxM ;4:!žOŽKīR sOŋŋÕÁŌ8~P~[Zaß|ûwT@Xó8OŽ5Yú7v óīõÍ-ßO)Ũәą< ŽŌ›öí”=>)ĨÚ”đOýELuŠŧč ĐĖ@Ē;’cŲØpÆËæ\œ·ū+§ÅŧZwø�þNļe ņ”ŲARFĩÉũG ,æĘæšJŧũ# {ßõ #ŊhĨ…ė_›Pđv!ĢŌZģ)áę·°E-HÉ$Owú \aeZQÐlē4 tRxJ0Š`–^$=w^†v@s"ã[|‹?ĸek€ð˜€!WCr­G}ûi>uûôüēbžÂ5­’4 ˜―ŲŽ2Ī!į”þBĩz8—Œ€ŋĸ|Â>0Cþ8žB:áĀJũüÝrč8ų'"3ôŧ­#IWĮo$R=ðŌ~\•w‘ŽĪo)oœÏĩŦA8û­6Ü)ôÚšMĨ ZC?aegD +{ŊęIŽ{šRÐä9|qstx\Nyâ/ŋG–Ų0HróMPŌÏ2z*$ÖВˆĀþë ‚_ą\lËáõ˜1ÏúօF3\Ámė€)á.ķY-mŋ›ßKęÉLp!`9ŠéÉšEÜé!ŨþéøRŠĢŧiîïÄI&ÖiÏ SYą(H‚aTnâÜļé{q<tĸ8-.ŧüāN3+1Ũ2ØĻ<īĄ,@ųíņXx,…K{ÔŲ…™wZéÜyā;Ö�“°líãāĸvN�ēðunC;|™ģÁėÖ|þ ō @ÕWą!—Ú8rĪĨR'*’ŪĨŦŧ·ë aš)øÚh]įÅ]t‰ōļĒÛļStŌPŪ€ƒĸ/{HÁrï[Ãĩ-„ŧū.CųÅCFm6!ōÞLũÍþd0ĸ(Y.`Œ2ЎlØXÁĘ#†ûÔßĐRüpÕŊĘh-2mþđ-ĨžŨZ @TŸïōĨōTÎ/înCØ/č’ë3Ļr<dA)rĸH܆�E(Œ|ŨG<`_Í7ų'ãZî|‚čCÓJ9Eoįân#†cRaMánI�ĀË{gÍ^ ˆečÞ-Úļ ‹ŽýW%ÂĸjyŽÔ€ģŪBõ…‰ē˜™­bïV·m.=čŽÃs+ëIÁ4]PY€k‡ýLóWÍ:9MĩÎ'ũ\8!ĐG”Ō†Įšöx!Āuۊ60ōJėˆņˆžRČ7;WBĮÕ|Af™Ģþæyž3`w?tÔB›ŠđHZĀqÐĐŠŋyĨvŨžŠŒÔDęÆSŪ―ë2― €₷ô$͇ĻÎvý LĘZPLZÔÄaĘļ„đ·ä?hŽį™Âāƒßð6ĒupnŪqå\ŽúĩŋÄ! ˁVíáäœoķ0Fæn;ŋ€PiVŅËģpDÉXsÆóY?ŒpŦœJNĒIųéĮŪāįf§VДá|˧”ŋģ‘ÂĻ@ug­d2[3NoÔt4ɇdÂĩĄøŅųnu†‘4ú3ōqîø6žū=0FÜH]CVáÕÔUŨyßõ œëŋēŌyēđ&QŽį+ŦãT—HEŨ+?<–ÄFï3šð/„ą—æ^äæq_đVvhr]oØ}1ÂÓ,Í.Bkzë‚dģ› YÃīų$ ā} ÄÄÝ%ÞrAã~âētjūėĩ 6ˆuk§I7NCļTm\ūŦ—Žp3ĄKQŋtžOúEHJfK‹Ō‡^åy.ķÓ0éõúAÄÉïYãOĪQóOģā&.ï-Ýí3ė‡ú؍R ūîŨĮ’_mó‘`ldJՙlą8ˆÄ~WŨÔ+DúųlôXÔAÉsÖ�Ē·-ï Ž>mŒÅßΓwEÁ5ļ°ÁF7EáÍ->Ų0‘įEÝĨԆmŠ+_·B‰ØŠp0g 7üˆՉgÜQ Ž}ô"aų76zPŪņŸÔ VÅôÁóĒ–ŽCúøŧRNô fiĮ™ōcw\ÔŽ!ßô9ĘGēûÝŽ‚ ķRĨķðgē`!Od Ą&挕!õ>ž&Tx“ķuđ\KQĄcž&ЅÕķ3Û(TŅHŒÔwįEFsYĶ_ÝpäĐr‰/Į/ãð”ėļý\ŨKãshĶB+töa"Mi‰õØtĒŠsĸæ|)9_Gæžĸ8Ŧí ī(Ėӓķ6 Øķėî4Ũeøz“Þ-öÎ�Uöh͜ÅÎEü›ÂyJþ˜ûæ)§ĒΈGŽÝ”‡ũÖô}•Dåąé"§Ąč Î>éNÜņŪĘø‹ų rTc›”7’&‘ 0fvg11ŦÝU0āXpŒšinÚ߀ah&ÂJ—9Ã`Ąũ.―ūø$r9˜ļĘĩ::!vMnĀÏŌ�Ģa ™ûËūBOA* äÜlĒA‰UžË2Ú+DĮō3=jėYŊïŧCN”œŒŋ-þ—$íH“v}r]§ÏC%“ļfï–â§Xš‹W”51%­\>Šr=ō60ß|“zÔS-aôW‘s>ŒŒÍæįΞ<ŋ6(û‚4›āœÎÔû,ÖũTÁk€0‹xNNÓÔļiHĨå_:gJīaܙ ˠ]vžApUr=GnĮ9_―w%+#fp=Ęĩy#éZB3LÅûķ|ßę{Ŧđ‚v?˜žū)žI`9ÛfžaŦ؛ýŸ4ôÜYë!%ÎWQÖ‰ĪšŲYŧækFÆ,Ėg[ĄŨ{ž’PdnĸyK4}”öˆ:Z# V€30Ĩ-pĀsDÃ5({H°—Ũ iӂáŪÛ ]Ĩ nށķīŌ*w6ĩĖÅ'ûáļsßÝ:Yý|Äô:@IWāO2 \aЖ@_Žï·&`ØŌŽO‘öz ķ0~ĒÜýąã%�6ä1üjQRÅÆđ GÔ/ĀkgÚt]ó@f>Så ÚĮ:ވÔēÔüHķŠóöŲȜheÁ&;ĸˆu ~Ó%]!Ĩ“sDõXŊßOũšāô h ũNiËøXļaClosÅúė™wUšK ŒYÎnôð^ÔÕĢ*á–ôSÞáQ᎔*[ zåbLëóM ‹ŧ8€H9šËÉÔyÍÜîŨ+‚ųÓ9•pŽRĻ6đÛé-piK‡@„ŨēŒé-ĄäÏjG#.zoõY�5Đ-îķÃVâ›Â„Ö2ØĪþ”œb5yJ9‘”] ėÎóZG1ąĀH\j—ąė‘”ýœÝ(rŊĩá‘1—{­IÁotþĢ�―@/qØRÓ"ķŲ ó) #]0ŠŲœrÞ]æ>ĄíŅ€EøV Ÿbm&ý°"LëŦ/ø-§Þ:oļƂKyđ™Ŋ&@dŸJÁåMDŽ3þkeŋgÎî4 i X:Ņ|u”]=UČyé ãÉÜáƒâNÅ+o@ĀøOķqÛÁ-Uą[HÃū‘iŋ…40ÃrĨR'ö#ĩ4r}ÔdŲjâČð™QvĪøđ­ÃÕLÏŨ[c\7ŋ-·qûđ}šÏTæ·ÕĒå‡ÛJ*ýŽ.’#^ðp ›ļ+ÕþŠ! ,ĀAŋ%r§ ―KËesÓFC—:ˆDZ2lūã•čŲyEŌ“R!ģ}›i…Į2˜3Å&HŊÞg6< ÁīƒiYo…WÄîiðīdõFOa͉AQĐÅhÍ@Tŋcœr—Ģ•i 7š&I~!%ÍqŊhQ,ÓžĄj ‡r!6ÛČŨKEŠá<ĐäĨØãëG›xŒo°‚uåÎN"+iESķ(Ąœ~NX•Ũ`Bķ˜ā-Œ&ÎĖl{ @0šuAÄãN8)>:5WI<„ų€Ô Ėįå‚a­&Z(ĘÔĨĻ#OđVß&ĩâĻ =,ĩįŠŠ�Į–&Ũzqsõe[ðĖÚi ß5þ“û™áéM+g;‡åf·ÆĒ°PŨvEĮÅ&ÓsÞĪ—BļÏ‡ÚÆD ;ˆâ’+øSéhCöIŅdßÉĄFž˜"?YnōBVž&ūšÄ⏠'WUÆ+ߖóbpđk'ý›k`ķŽÓáNÉÁ™Eį7hl+īþt_Æ6HÂK4ĮĘDpâĶßŲY•ģÆ ƒŽ0ŧŠÐīĘtIIe2ģƒĨlJ™äÞôņŋ^„ŦU@—*Ãr·õ#ņ­Ļ.”E(Đ\OJį%Ûxu]Cū?@=ÄÆHcĩ.ĀĮ VÞBbH/ïq'fFČžą!eƒs�KBč ĀÅ)_ 85‡ÛMŠ|_ų§ÕJóĘþŠ”Z žþČĨ:Ó[Ū-+*Ĩ~i lūfHÕŽyÓ ŨûÔĮ―ļ „YŋE\‚ēī8?\öã\ŧF_Â―kÄȊ;ô&0Ö7`2’ËB$Čũ$ėŠīÃx<0ÃÅQŽŽN“ÐÚĖ [}Ņĸu#Í,ä·äōS|tãĶ'–ņÅÚó#“ĘûĢiĢMZ;ōŠ˜ÎÍ@D7€ĶÂä ŧÏ8ię7ē­Ðļmj—ĀDŽd7v„Â]ÔÁ3Ļ{óÎDīcGŒáĪÝîÜĒþĩĢ)YFyd!t‘ŽŽ.ęĢËũ?#VgbâÜ^Rŋ3-~­ a"ûĪöčœ*ĀðØŦĩ\YhõŅ–Eķó@-^åކ-Œ_;Ī‚ŽĐĶ36ŊKúläYáüüē…°ĖĮúžo§ŨļJŦšôūšŋk°Ã„žĸ<ÓoĮXŋuāÚÄY,æ!+2š[KãĐĸ[ėjxå!ÄõĢėûäUm]øDįUļp]T덡žÂÅ3tgýÖøá°UúPpۓĀwōä~6õõē _Ų1ī;^ÖYMïmt4øãņ06H#”OīŌüïŊã˜þDŸĐđãxsâúÅLŽŌuˆåe[RFO~ƒY@X4‚ŋķĖ d"`Ï\ī/·k%ŽdÚKæB{&ŊއaS°ĒÚ}›#§‡ČÏnÆx™î6æÄ)\ūÞV–‘ šĶ„―įE ģá]ûØ^•ÝKĻnlšn@‘U6Ū‚“û"‰ÓĘ6šqŒŦ4‚ÔĀ%üWĮĘČMw­…:—Ž—&ĒČBîRKT°ËÔZÚ~ņ  ęKŽãÛ}I§NÓdŦŽŅŲ žUĻûue―�r�œÕÚŌ…ý;ãz^ÔŊ‹9)ä7+U$áĐöЕH ÄVüĐ[vč"ZiV°í‘˜ü ę>ų=7$'WI%ģĐhŽåƒ5Ú úImŧ9Ũc’·â—)qîó&”@Ž|€,^B™bČK|`TĘ[OĒĮ́ę]TRé3ĢāáŦëî…æój"9†Îîdó{Ąŧâ"”ŲP]@‚)cüGĒ!Ûá%UęŨõEĩéĮĄúĨōŲ‡!LéŋŪĶ4ÞéÆq|óâ0_ĸ ĒaÚĀ kR"Ām&{ģHgg0îÛŽåîó^āų§š HHÚaKÆNŧB2Ž„zÖ1�Šĸ{îû$ĐæÜPôē1ōČÍ]›)Âũnë(ŨĪåœ%6(q“6Aū_4ęæbŅÛÎköXV ļ>::+Dû™ĩš7ĢģųÐb3H_L,Óļ §t„Ęę –V%Ũë 'ąļ(Z>‡4–ūøƒėĀ7Ŧģ1 ÖĩG")U ŽÚ`8ĖĄiŲ}#ÅZ)<ĩ;1múÉå‘Đ,”†›‰FÝs˜æ/dŧ(mB`Þ :ėēT~ĩi$ž†ļU\›QŽŪi‹//ÃōŽ(XŋĪA5$6ÚÆF(Š ÆëöŽÉŒ)Ŧ’:M!/T$ˆ2SŊ–!+xw%2§éÂĄLļņÖ­ÉĪ]ÕÕ&,ĸ54=į`ø˜fs,Ý“ļļ4Ü’6ŪÝl1'Ņĩđh:ÄãfŽÁūČūÕíBXˆôĒ”~5Ķ$õÝ1ZÐÅԃp&‡ë“zËģ“éw1}lŽðËCq™ōļ–5„‘B(=<QÐ{šáÔQïjÓxŊĩJđó5šč<gķŨlásĨ:†“[ū=°˜ŊdætƔOL"z‹Ŋ+û­ī|9āGÅĐBû09šä8.Œņ?n9GūúO„ąĨė–8ûú„?ydb1Bc0dö‚ð‡ÁüãO~`‰wļ0†Ō㒟ûļ™w1ýîĻG a5ĸRûMŦžą|l–ŧUøM‘nĪôū(ĮtXŋĮH]T[ŧ9~°mÓh‰k+ū.rσW:8Ę@įūÂĻ�79Ø'JŊĢķfXŲËŲĄÔMzkIZm.ų‘ʆ Ī a|)u#·oR(käGëcŠy0ŌÜĘW–‘RMY›ö‰?aīĐËm‹%ëãŸ/ÅũĶÜ|ĸ?ˆBZ‰;,9ДWM YĮŧB)ōiryQ)ôëŲ!Fr[đŊ‰šĀéŲ7ė†á$cĘ}ĢDsCrŅðpN]5ä-3Rzó"ŦÁ(u1á7Ÿôhė‡aî$)āá#Úcé7ŲO‡aŪÝĄŠÂėņĸW5ČŦ2}™šŠXlwp(qę§qC– (`˜ï�ĻþÖß Ļr-Š^[3kڅōę[Žß;[Įč*tČ_;ý—tûį‹ŲÞw4Æ[ ™õˆz<åÝ+îËōkqbņéÅe:/\\NÐhN*"éã~}•e“ïBĮŨĩM‰X3QւYšß'bęE6/ĒĮŪ<Õ\@óâÅ)\č"Đ?օé–û ?mōŦēðEėĩ ­ÞÕf.ičūãrXâw­d)Fófä9tâ?ēĻÉļpAãöï?íô|ūŪÏoĻ/ŦϟÛéU}]ĐþßQl/Ŧeĸ7ŋŋÛÖŨíôœødýAØC zF†SÝÏĩöSĐCř.ïmclļ°qĖ?ƒŒ™Ó83CĄ5áZ‰ÞĀEj{ ^ÓĨ°b �đøņ]fÕ° ·Nü<ÞH&JrĘØ‹ŋÄA ’“vā}ÏŠ<Ų\Såp!æÄōü„Ođ\)–Ą ænŲh.}gdqĩs^­é<Č{w}ĩdH<üu˜jdGɞm6n~ i_’3ÔÃâŦ­ÐÆ/ŨíįXxúž ŧ. B|áņä€L–ž<爈·íˆ%ÝuD܄V/sį i\MČāß@{tÅ.Aðötm,\―Dm]Ņė&ö˜úā“ë–f Z3]įĒ"9Y}p­·ãĸ –ÂŲĄJņ“ýd…óˆ*IíEþ\7(Ĩïč}rÉąļ~éĸ€7årŽÜUA8…6ŽßŌĶį8õXý6ßūþ6UĖ ĒjũĄäOMĀ{įd›đĐ`*Ũ›@ P­1N"{5aPõc đņ―%įøÓ2 ļ;ĸOüņŽãÂū5Āõ—Ãޒ_(.œ›\öŒŅũnžŽŪÝãāJéÞ<hUôzYþ@SŧOļóŦļ‰5™ŽŅtûEņqŋc“$úCŠZ?íú�EÍÞMĘÐ2o<đ„Qvų”ĢOC›J[WÅÎڅá~·z áz ‰ž:Å/šÆ°$ĨŧË7ڍ-UþĀ6Kũǜ$3ŒÞӁ3õi°Ö>§Wį—+dY.øĄą"›G#”uΜý9ëŸíp[’ˆG·=ęŌõũnÍÏŽūY/(Ũ.eąŊ>ŅũZ ŦĒOĸwŋŌķF˜“íĪĮ‘K_:КšT,i‰ŲŦ 2hģïÆIÅ/ŽĒĖ`;ē*įî\â‹6Jš;ïˆ Q‡üŲjĸ,?§`AŠ•īUũš8\ę>“ëîŨŧ8!9m“ōÉ]æ?‹Ģf0ųbŲkė{1PjŨīŸl.UĩĖïøfŪie8Q·&oH™ĶiB‡™LJ†zþNčþX·ˆÂØØ‘“,ƒ­)tO4į˜ŊāÅŧ,îN–N} ‚LRģ1’˜9p§ÐþÉC3 ę ÆwwƒšlĶŲfÕė|čÖšqP݁&‘1i‡ŨۆŽXzÄjķv œ�ؒk@‡Ēō ŦžãDŽÏŧqƒŅahy:―ó°. „ß[ T!gĮÆiˆĪBíß<ë:ÞyÓvōÛÔ°�ý3æđ~2·QöþdðĀ^ SĻ9ūŠĶ„äؗg 6ÃëŊ[Ý"špa?ũAv1ü+ĩ8išúfŪ6MŪāŽę€@Átl:IMŌ§)Xþ 6ã ÁGįupB!ĨYŧ:įSÐļyũ”H,JŅÂ\rh†˜yšøö‹,uoŅ]čjØæíýuõ:dõ‹ „e&D=ī 0åĀø–lðíZ!ž*Xbž‘'“JûEdbޘëKëïíÂËÝ/°§ņSÝ͌ PuÄð‚lŽÉd"ɉųNá%øÓF‰\ÜZđ°ŅĶ{ Õá~ƒX]rģ Ô3Žĸ\īx,*p–ų“ÔkQ{ô̇šîÛSۄāŠāi–YqKï(@+·EúŦõžŋΌU>t–ņ�í(B‹rąE6į'Pþ;ÜïôˆAŠĄsœŪ 8Y*‘óëœŋxW^ÚÍ)֚}|#ŠĐ|ĢÕM#ĢĶ7—‚Ĩ'‡dZ]jĒ™UĐčÞũCCQü õ,„˜˜þýQh@üåNõœLŌiQČãôIjNÅŧž<ĸĖ–jēÁŽĻļ*Œ#1ŊØĮ―ŋëãÓÃxũ&A’Ų2‡Å‹2K.uëĀÚĮɝŦl>}*FÝ­f‰ƒžŨešį‰“@o%€˜:1v^š­füŸ)‚ų98Äq>Íj2l“ĨĐĐóπx ÓČ{ĖAXÍýä ïNÖ6å°;ŋ5Hë­ņgĢîŲ­Îä|\xųŽ"á$.@~2đūß Ģ�G•”.2sÆæXÞaą_ķŪL6ØõĨ˜ü’5ģÂú‹ĀƒäiĒRđ.R°’NŪß ãåÍ%ō›OĶdíÅ·jŦ nBI“Ō·@/”_IÐjŽ>#šĀcûĢę˜ļ.™Ā|Þžtx ­đ‡ýĐލ5ą)øģ‰Ēzk|ÁŦüÔ/ŨPcOÏ|(ðy*J?ĸyđó{ū‹<š~->LõSļ [@ (đŦ ­ŠÖ$ŲŽÂŧ#ßķ‰Ū`Ķ̜ˆĶ Uŧ[J$ŠękdTčm7ÏUå§"žĘ5ĶÖĘ?ęŋ5 QÐ4:NlôÍd~čŲķĩx\qÏŋ<ðŅw˜UĪz-ŠģhÖmĀïēuF)1hÚRkŒs1QŠIS>‰ĩû]‘ĒAÕ§& „ .ÉĢ]ĄƒˆĐũŲ,šjÓ h}cÁžiķˆ”_Üӎŋë<đlŲýĖÂsƉ‹ÆĖÍ(æŦŲ·Hĸ“lĘ8Ēã:YğXREF͍ßrŧÐ@_ęÆt‘z2Õ Ë0Ûӟĩ!°z1i8Ũ‹ĻĒϐøqŠÜwœRLmߕ^˜a^Ŧb nĩų†ˆ%ōMekV°XÄr‹Ē'æŌbļÂĐÖðóŊ|―­Ŋ Yūbb‘3|J‰-špx§Ę+•ÜpúÚü-~_QŽ7v‚yčw~\r?ÃÍGĶ>|öđ­ä†ÜT―ox•ĄŌþhS˜[„Vôę1î˜ļ2þHnŠ =ÆĮģŌÕĘÁŌZa;zS LC�úZ+:,C>óýýûĻ―šTœ0ûäÓt}õPæ4ŅMHüZļQĩĖûĸ9qÅ͉Gī ĪĀļĻv@Õwô`F{Č%>ÂlĪG&P}$Ģ,Ý2îą6Â8Wq xæÔZ^þÍ\mâ&æ<EPó<|ņĻþ|ÝāĄõuâSÄĮ %ä§ÕŊXÅurô{›É―%îÉV,% �SR_gQËģKüā0X€þВ?Å ÝÄø Ė·Æ%ļ‹ƒeÐûįúķšū%­æęgĪ4-ĻQôŲ]æÏã•î˜ŋÃŊ]TsÕ|_­ģNj/ŊyļĄO/ī„Nb’ĘúJq]UČūˆĶ`#}vá—ĨyĀ*§}°Tæ7/_mQ; –e‘ûï~aió WĨ šx(˜IMßĩ&veũĸy b˜°―|—‚eNJÏcË0ƒž8ŌØYđ_2ÝûĀwÄ·0lų7J;Q *“–ˆ~ÞíÖzĖmŠŪoą“(Šón)Įˆö%!ã-Č:VbÃó0b2†0JgˆõMŨĩ‰[<r ;Ę]æ `?@ÄQėW_čWœÏųîļŋÔ&”\5ÞL’Ú9ü@ŧÝOøĐĒÆ§ˆp+`Ÿ•Üßį4ĩhFyFĶ”™ęŪ‚Áw͌SŽ3O͙šØ>1ÛęLą #.ŋHÓ/1ōqÄ ļ3É­Zī^1FŊ―ũÜm7Æâ=›‹ãAÂúÉĀýéëýKӝþW=6VÄOÓI96&Z Čäaū)ôpŦI-8MĨ{"zËÉ<%Ō&mTÜŋ5áqˆ(ôŨ”nėâvĨN‚áRõNmHÜWķųë €K’ÞfyY"LĘï4ÂŋīÅgīßņoA,Š5,zŦĐSD:f„ ~Eq6Š~ÚpóƒŒ,ŒÛ‘šũĸkaIâ_ ĶxĒnû�qīðƒČj&°FvAã0·BZĐN°Ę†cosHóŊŋô=āŋœ€Ũ#eŽ4ŪkýQÔüįÂ|Ŧeˆwč€ ÓĢ€Qt—ÖŠļF9ŪifN‰•Q:[ë“g~Ęû‚ĘčˆHÅĩēdôŦ9ŅD™ôš"wææĩQ™[­­ `·Ōųzt0ÉĩĨ―M֓ūLiÉũĀïe›•ól�7qÝļæPŅ35I'ÍኀapUAœãßĶƒæðR/ U0―\[ČŲ)݉�Ā’XŲāßz2Đ3Ýš 6ðŠûÚ>―P}ôAÆ tĮl=ĶĘþęūnų/ŊÚÜŧėü‚vT°gĄ̈́:~ø�zķå Õ6”‘TR04iˆāq#=9=AË_sÔĸwXW§–"wĐēųĒĩ‚öŨ•ĸGP‹8–6WęîWáÍz$mYŲŨM!>Žģ`Ōð͔ÁĢvܝāÓT„ü§žƒž ÝūoēyĢģÞÁψ^t|;šý){R‹™ÆŊ‡3ZĨgũzĻY˜pŠŊ’Ï}ÓktāðīŒFt Vœ‰Š.$éˆnÂâđĐKw‰=ų‰„Ģ{Mc˜X ŧƒÃĒhzӆōđ`P€ąžGšûh‡îŽÃ>˜;Úē"Áf ·5ßÂîė:ĄˆX ûĪ…?Ė>ØW>JëŨĨ_wGóĪA1jP}ĀŲ_qiBãóä~ņš―ƒ%GSļÏ9Ķ0ōƒQ(T„,6DųWsÞßl;́ŪMyð# ęӆRÚÛQĩA`ŋČÄÏtԊMã Es>ēeÆP…:ŦĒ ý_ĒCžÃ[ĄF $žĶ^ąlšė|t šĻɋ0Įæčbá>?5•óįœyŨÜį’ótĐūôU oŪąÍžÍžĘųB€Ež˜’…ßĒ64Ŧgwą/XŲx:0—Ŧ­˜~œ4Yþ8Å35§ƒ―“ ’2č‰ųzŽŧ2\Œ‘ĀŒô-åU_‡™ŒŧÉ)݊Ö+yãŠē=j%!E>å)šJų@ q‹ü)QCj]Q\æ‘Ę܆žË€Î>Ã4‘ÝĐ,ÜĢĻĖJMãŲJO”€9_ˆ0ö5Ēéf,ËqķĨžîæôvŨēÐãģLžņ†"ä<þĒÔgdû/pT a,R‹wʙÔbNЍÚgЛ ų=ówKäK@Vgč: ŽÍ[ø hyjĀu+Žė_óüÕýŦ?ĄŽÎ…`S;cČæJœý"ž§mŒÛãũîŅ rßøB.ŌŽ’Ā<|IĮIę>'78\Ė20>Ø]ýŒGņ&ø ­O\]isôĩü%Ó–šƒ°u~=:Bé0ĩû%ĒtīNė”Ė­š’Y]EzxÛ‡ÐtßU{ęŧÞc•ÄĮŧĘHĖ � šÂ��`ó=yĨĐâÝ0Ō*ü‹*ČK˜ßĸxh5Ž$$Ú1pöįŽĻF€uÉJÝxĸKžē ýÄčÄÄ_‘; Ðĸ'v—ƒ ģŽ#á&ĩĸ^e}(�·‚?čĖþ”5oė’ü&ĮBü$j{ čy Å3äÅh%Ópu”ë1Í z4DáÉĸ„ÃŽgI#ŋĨĮ=Þ ĮŦ[Ls DhŠÖÞūP؆―TĄŲŌr)z Đø€…û˜SÓc.În`U<2ãŊÓēðĀÎĖīËôšƒ"’ę[FŒĩšÆwpėŒ:wü_eF3ąEh7>§Ī/ïėŊ.Â@?ÚÁfNGbø Ūĸ|―9ß,aΚøLp_Ž #ĨĶ#ī;/^ŦŒOĸ7ią˜g<ģ€&,ð…r Ũ ÕĨDĸY͆OT_Â^ģ/({ÃŋCĢ·�–ėЭg…ß”Ôiīņ^qe3cŸęāՊņýÜŋĮļ6ũ�ý~šæŊģä>…ûĶPÝ[Jĸĸ|x;!Œéķ2J;ĸū>Õ.NqHŽ@ÕŲU€öDd55c„ųŲÛë–qÝf;gė•.ï”ĢšĪ@���������ĖKĻl{ŊČņk]°ŪŸÅʃgG'GágQû7ÚįÐ=v”ŠŠŠŠŠ­ę%ÆóQ=ĐĶ(ÚCv Ï<XÅ@Ũ^lm,—þ―âyT3ˆõÜ;ŦI›û‰y…”ø„Ē"nõu!^~Ôė‹!Ĩ ĩDĝq4›,þ9A"GÁ Š9ĢRbš‡ßÏûž’”“ĢŋïŊ�Ë\Æ~fV^ôutĄ‡ūĪLÉkũęGęÆöL."›fS(hÜ ÁtáˆĨzAuļÏë"]9";iUÞ_ zF‚ĩŌ3ųÁp6ÁÆÖ°ËC‚&]Šą@ē‹0ßnW“#z8šĢltæDw#e[ēq|^ —Ï�ô6ō°Úĩi}ÍVŸ­â—4ŌPŨĖRĸ^—‰P˜J™qïvZy,`>ąbkv‘™éÂŨåWngwy w°iL rĄfZX<)žÂz>ï ÞüS;#~XBĘÛü‚ĻČÁū.ŒkĸÅĀĶ,ødÅXĀ­ƒ'){Áb]“Ģc]Š8‰l‹äˆh qį Í/é†Ūó+!PíüaöąvõĀŧãUÎB^ ļx^déE™Þä§ZŧĶ’P-2 ßõ@ãÜXP0ßNķÉKœ,iȰß4ú†ļÉ~ąWx7Đ­"üėŽß>ĸ5ā6•ęWŽšï%su.ņY7@LrŧÁ$˜{9Ä+”d–`þ횐v*ÎúÝžđÛSÉ―Œæ?ËüŌŪËdēgę|ļ6/™ĩásüúĻÛf‡Å…„&wA'„†Æ:Æ_!Ó€ZzÕŦ;Z둜Ž‘EŽBŽ;…AóšŅ >DšPåô7Šô|Bte<,ΌąV3Ôà Ä5ôōĘdžŽéŸÕĄąÔĶļlöYō;ú$2U~+ģÛ&˜ķįčĻÐ|Į§`ĸT‰-…p3eą†„WŒØ}lę§VGc+χIŋ_Ķ?ģ˧ēÝÍ;2j ÁËDœā>{”„ėHŅVĶ $?úÁÂ!īKį™%ąïk“}úïvų˜ö#IĒ@óģŽ(ՅŅu•‰đ<FþčĨī~ðætÃ&ŠtCôówvT˜ïĸz4ÝL*æîãë]DfíĢÖüT„Ø_ϕ―OõÛs^ōPã6—2@ô㠜v8ėi2îĪ)ĩ” í•Nޘq0ĢG/þšW:b"…øíD3ųāaįßû⠐J`ŋ[\Xn:é”'.ĩo `ëéoŠÞi{į’ũ’)ԈÐxIJŧ?âq&―Œu^SóŦLd_Õ~ðžä"Öð�ðeïéųŪĪqš*WíŠüŽúÚ_Ž`‹`Bïĸ`"úð7RýÞL.žņ’€å—ïNðvCŦw#Þ.ýÖĒ úcŸ7šĘÍ­’Ø"‚i*—čô›`žlléīöŧ„ÅhCČcHŊAZTķļ­ÉâwjūĪ~ĮVÁīJŧ–8Z9þĪUÍč€/0žĢ Ï@R ĨEzūœ ŦZŒŽĄÖãþXø†ó KĮĸžãã›ŌÎ�ؘx€Š8Ņ#gÜM†lŋ†LbîļŲ5ą‘ÐByM‘hݓŅĐĸ9MēØp>Í%™‚mœ6)Ž–Fģîtæ=zIsŸÜŊ4t wą%ÝKŋ}/šzģ― ĻRmZŽH$Ū‚ö^b@ķD|N%1ÜļjKjþ˜HÎøÛEŽpĸ1@‰2ԚЃģ_.'§JëęøSœ�ãiVLĨ܁^ŒlĖNŦ>RQ[ÆzÞūDëCĀöĩïbĪf-ŒA[l^Rį T‡p)Ái4―ŧõķŨVą1ý!�ķÆ>!sÆŧecõ^ąf’ĸ9­1XfãRÞxč KjˆJ ĪđĮ§CĸßŊQŠķú ĮõøÁŽo“‚vÃķ€Á#Ŧ-į‘Ō– ւHˆĢ%ĩ”Ī!?k?įŸ!Ėõ"ą—:Tõo„ÖŋP›"u ß4;t‰ó˜ lC˜0‹"þ}'āÕ(ģÄÍFč… lr:ũ`™˜Ž‘Ð\(0ql|Q~Ė7-éā݀F…0”åynôYþÃCčwĶãjÚ(:ŋÆýÏq;įSúWŽė*ĐKû#Åt&°SĀ™‰‚ųPsŧ™qóƒ<ýæÍmY†)Έ–gûüÞá–=9DéÖLÅŽéÔ%ÝōäōŽ ģųšĒ ƒļ·Hĩmˆô؆֜ĶÂ̈́ūx “1)îÞ"ą•þ7ŒČ!ē5q‡4^Ŋģ”mŪŋ-―˜žģ ßOOģAãî‚ČVaÚģ/Ũ­ƒŨíŦĸïĮÜæéæõ!”Ãö­ÝŒšY[ƒFôØ·ĮYþ ÛPĪ§ÄžéYN$ óˆÔs#^íðËegƒýVGŌ§íĪ𚆧{€āÓĐČ6--7ŊԒOĪ2:#BÂ‚(ē‹ŽÎGˆâž+WÛ#-–hōŋü.nŅé’/ķXãÄk’’ąLûH'ƌԁœČjâ:Ŋā@I'ŅYü}ĪFb-cõ–n)ūĪäĘĖÔýāˆÛ`ŅRˆŲë㏠Ű“9lUpdPúI<3 ―ŋčÂv'û#ĩī ĐÐÁĄKmß€<•ãĖ,7đÓ oë‰ĄŲ Á–M3öwTŊĶ0n%/ĸv„Ļ)^–QR’î_(ĮŦ%7; ŽåÆxß"IŲiž9bŲĻeČeŒ•\úXþéđá^ާ퓞JbÆzûÅĖýŋ�Ā‹2ž•ĸĸmþ@CGĸ]cgü―þ ę"‹;H€RgėŪ tÕX˜TīЊ•ã7>P t˜ðË­Y7Ī,õļiYyDņ7O™‘UþüÖš/R=Ž#ą†h·…jS~ĪmOB :ļ8�]së&Á]…ę ‘?ŲF�<s‡oM0!+g`ŲA"ß>ÅTވ‡AÔTQ)Ō„ųÆ„ûÔ#ÛÃ^õd<F)<—ÓӒÃûiƒÓį ŋāȔÜöĒĒ~Ŧĸ}þœxŌm†ĐTnÕą'ô Ā9óÏmĀËÍļ<ųĶ—ņ„SĩÉ ŧPģ›Ätöī„ÍÏŒR-/›ÞyGĖŧ 8€:@(ũų7 Ú°Ŧ‚@ÓKŋx‚oQU‡ĩIŠį}ÔũiØ Aũs`Ožob~āY„Ģ<IĢüqMËôįe@„Ë•Ļų\^mPĢģqųÅÜ*IÕ|sŽW0r!œģ”( ã~―"Ŧ• 1@2øķĒßĖ䕕Q­:Q~ëÞ‰ŠŸ ųΌ›·„†` šĻeߞ^/_cw>­ ÛoV‘)dð<ŸGsž8+ģhQӾ͞œZ{5Ņl6`sÚ R[-ĘéâŊĖc5”ŌēĶŊäڜXcë:8wÏVrmcUÚķšcŦĪK@Þ^xŦ`ÁE·Ũ`ģARÍ öj‡PŽ_―#=§ޟÎO‰ŋÁLÁzÏCęû^Tg † õœtîdûŦ> ŽÏAēiÖ>æËŌ™ÚÓ Ð\Š„$&ī`Ýđ$šęūÃ2-58́k,üoĮDãļëįáēЋmyFĄũļ`=uä_E#%“Y‡O­ [qKąNÕ];MÔH’  č>ĄV`ö7.T-‹šĻ_a.đh`Ū‘*1T˜tBŠfæ⯠#· đˆÞ]–ŽĮ3ty”%˜�ÄY úĮ^ãšH.‰Ģ0Âą=ÂÄĩ Gf ņL’þš8råž%q-ĒĒ$ |%ÍöIÁL‡tĸ]Fœ› PSšÞĪJ*Rô˜Ĩõ ø9)ƒĀýĶä ųyŠâ{Þq!vé \:ŊÅ5âæJ2éØÅKî"It2;-ēČūGa›žŪ=m JŲ[k>č·^šåë?QÅĨ Ĩ‘Ėú‡čUņðū”Ęâd7,)0õ„ęsežŲm? NÃ{čõŌŅÐfŽņũóî_ôŽĩ†…\ŊâpOŧå€ęĢŅóa|bŅųÍÜÚæĐrƒ*e·-ŽíÓû xÚ<ķ9QYOĸ,ŠéÔ"œŅl!ČðüŒäÓژ>"K"ĩ<~Ŋ\° –äNáĘwŊg€Ô2LąēĪ”Y°AčMŪhĐĘÝõS`#CwâĘj’š`ó–;"DÕģŽ ïï### EßЍ'ʋNļĀ Péœï-zŠ'āŨ3Ӆ?óH{w3§Hđrwõ%‘ņÔqð>ÆU<1C0ŠRœŋÖûDZrĮŒ*å)Úɖ ËØŽŧT‰UüøŠÆ–ō5k Ž }<[―ÕËkŪWŠÞ@MĮO^Ŧ% \{[ڔœ7~ĻDL‡†; ™lŸŠZÍðFI2Nė*œ ͗'O(xĻuuŠ"|ëÝá‘аu>ÂŨ|€7›i]žr„ęo{Ï\ÓНJ4&ˆā2ðģ>4 ŪãÚp$ė›-â2öXČ?xĨŦí! UĒljũM\ L 7jüąÐ&B]I―ŸųgûL ˆ…ä1žû†[[d<‚`Ī*ãâųíIpĐËöĨØ#s1Ôpíģ–ÔŧcZ[ša~ŠĐûyVÉvS°ī"~ÖSÁĶ?@ņą‹3[õōđĮŸJ–m)ĄåKŽ ŊũP ĸ Ðz°\˜Ā\#P–ȍM(~ˆQÛŽUŲ[OƒSDŒJļœėŋęðƒ&‚RĒt-c=Oq Ķ79âFkáąð–ĻŽø.lP7tÐø…č#:ÓŒ^C€rpY :ôáĸdW°ceHœ:%›–�i}PÁ›d–ŽÓ5Ũþ *îÆ―uÆyËeČûĮgá•ð‚.)4‹Ûy:ČģpiþýØä fį“Ŋčjæßüį^xFdq*u#þVĩrĶ„åÉ�`_aZ°ĘđãēBĒUo p CYehÐ@.*@’7 Þ;䋡―9hđ|ƒÔ Yœĩŧä:”ĀmĮë™ KN|XŽu7ĐOWŠŧVČāĄC“ž_*ð„âÓĻDÝ{ “…ŅØÛß:û‡{+ēÝI°2Ælūąĩ} ÏóOT�þ…vމNÉĶËųMÅ&šą˜ÅŨģ Ŧ: <‚ičzn?Ri<oýqƛ ŨU %éb`ãŦī%úŨãč =LÝÄz}ŽČ€ÂßįûņAxÖï„`ySUííúŋpŪ*„P“þh,õNo/8Ý<õĩŠâû[·Üd įpŒHĒāÞæ ™&WķŦ?.ôt!Í 6žÆ_iíøhß)°8&čÕVÆó9íØo5™WPĐŋĩąDßBæņ’Ý Rã°E�2îäÐÔp8z,áDĻ�Ąäĩ+uęlo)lûjĢ8Ô^•ŨuņîU<š6čW†Å/kđ Zĩ­WąyŠbo’Äø đ<xAoíŧuÆW.!øZÎųbĻk;HąÔāmĪĒĄSĪ>Ih%H-æwŋZåLzģc0Wą Ÿð“O—rx%4ÐčË|AŽ#F ·Ë‰wÎiŦïzc 4‰9QųŋÏËöÛ –5,x•ėl1 Wdãļ—ÉĶ”,õœQj ”ïE Ÿ'øÄfE“"|7ļÝIHB1RL8ļ!!úåpG6–ū€Â“ƒļvČ2-'įâëëE„á†~ôOŧC*䜎•ˆrÅʄTfžebÚô‰ 0žXæâ>åÏvzrÉ6‹%GcŽOk  ûŦāQ(’rĀ0ŲMŸÛ_ËT·Sĸ hÂ_ĐIô˜ë?—Z's[ÉF‰ŽČ{NŠĩcé‡ŧK[E ļXw+2x`ý9-!ōÅ52Čwp 3Č<ŪqÚw°…ÉĪÝŅBžČŅĻÜųŦ4æģĖôŪÁS6īĘË tV&øÄÂé‹Ýä]ļoøąđÅ L`8ûbË�ģi§}ØmŲM(ŦÖÁĒnŨ]ŧ…øŌX_ž3\â9]*ãSü_ÄŲÕ ,hâÝņ6 ·2áŦúFū+ß4ĖOK•‰:p&-A›ä46M―ÔaŽõQYjđĄ6ÞųâąÏ*‰g Æß–ŠX‘&·ČOĐ6–nŠxgЄlƒ€Á(ĒÓÚÅ?™óĪØÅpˆbÓ<ōh_*‡ŧĄ3ĒžVĮ]Īãī ÛIĘvóWV?l‹ƒí…O“z ^7ÐÂEĘb]Š]Dfsq\Ģ'đ‘ŋHCõĖĖÔ@9}ŠpÜý™ŋģX[îHY—-Däóëhą$@Ŋ‚ëúPŦBWÏDÓī?T�›UŨІ°Fӊí|vŸ ĶąÆĐRßšz0wˆ@ï{„rLs~Íš %ĖŠHx~ė8M‘Âė8|%[ß1ëÅNģŅ`{ex„5SYĪÓš}ãEvąļåRÆÜŠ)†äKãPSŦĐ Ī$& SĨ .=âA`>æw> p0˜‚Õ–‚>Ōönī(GīBE=ÍļEAôš–ũ8ýœĘĐB'éüĖDŲ-üOƒūš â/7þōœÓg~x3+ĒË"ī0};ueŋDäˆ――ks5‡cåËĢÕb§ þÅ5°V*j <‰…4ōK‰qkæ2`Ú.KŲĄūĀéė1æäå</‚âŧÍHyxûdjō%“+]í9Ewt>ö§Š;,ŌâĘÑÍýƒ–<fúĢąå­ž&­ĢN8öUøk@Taz2œņ.m2ÅaɁü„^ĨíōAWš…‰ī%C ‹°ā ýÚzĪŅ0\.Í˜ęũ†8:ÚŊčhėČ~°b0!Ót·#ޛæZÆ5kķĸ!w撉‡ öđ˜+m‹ÎķË bÜë š K%ŌĀ́BÅóMŊfep`s`•Ā!ڛRۆø“éė0U;z’ûø–Û8BBē~Nļđð[éYEÐZKïjÏ·ė|Æ  gîŠĨ,ŊÖvmĄR}*ŒÎ>HŨXí5^AÚō ø î9čĶ9Ļĩ)Ūü^āąTĄiÔ+[=ŊjX·Š{œ?)ĄÜÔß} |Ģ“1>ŒXįĄ,ë•MÞ?ÅüžâēÐ―Ę`įŲĐãgïųŨTŊ‚Ðo›”3ŊĄg‡Ûš*ïšï^% ŸŲ€o{ 6&ý;”Û"ð\ŨFM‘…E‰j―evĐ$$ÚõÜ90Qhôđ—6­Äá Ĩã&ŦŸŌč­s)ŋŲaŲzhŌk7ŪMš§·ïFw‹uÞH(X@.QA~–5―ų Úvc}y�ŌwįäœHV ÕÞ9ī3‡$Ŋō+t— ŅÎĒÞ҈Ð(Ą―\ŸÔ%1×|<œ}?P‹gúoš”ėũ ļ$ iĀ“GÏâύxNfsę•Ā›îÚéšÞÂŪ<<IއE\š+Ķ3“TtІ—ÆÆŨzӜhU%―­*wŠÍ 4ō!]ãVô•P™]@‚)cüGĒ!Ûá%UęŨõpōŦ'öxÛ·„ÕĮó|ÏWoĀ1Ô§ļ íŽĪ”•]’}J4ā€üāūģWaz‚â+%IŽÔNē§XōĐp0õÖĨþéOo„ūYË<…Ŧū‹Ō�Ī^îâ66ĻÁ "Čņd„ļ=īTÖIßä›NŠ1Ï:ũ ý]“ŧ‡ïSäpýpĀÅöОß# “đðnŋg-FɁ‡WŪÎiâ2Óí‹ZZؐÝŨԈābÅ$Zˆš0ū€ QÍ.ŽG5ÕÆ―ŠwĒý·yMˀP‡ĩþJóë"51r$…$æûæ^FÐŲÝÆOņ;:â %ŲũüĄņ°ú55wpš•aóˆFģÉd @‚MĶkQĢÂk?uBūŽ!-;ķšSŧ#!‚iß:Ođ”‰<ę<ŲO\ž!žŸWSš‡€7Ûî/ŦK dÚ °V ,īUÕĪ™z͟lĢ6mÐØ íŅ!ۄäī;•‰ūR lxųÍÖĶ™ %· Â{ĢAĨŊcļdlL]"�+)7ÓŽŠ·Æ=wüåēQ šĘcz?Đ]mĶ|æŅóąę…û2ˆÁZęûZ(ČĩėøĒÁp eí”Āæ&m!šđšėp ÖŸ•Ђ° DtES ŅĨĮåģ(Z͊T0jā(:ļõ‡ ÎÛïuCƒ øķ;›ÂĢ(0o +æJŲŽđó―_ŒŒŠ@[üç@Ũ(wڕL0ÅuQ�œN·“€aŌZŅI ĮIzV„ôģQ„ō S;qa­ŦŲuĘ7?oŸ8Q”!æbi‡Œå;ÃÞĮ·#žt›eæÅL„ŪAÜx kĪHŲxžŌzAڑDƒūi đ*„ž­Ī’â‰øãĨáj!!AŠĮpKycŧæ~›9ØzÏ,õLnĮV's, ^3T2(:.ûķĀaĢ=EŠv-‹\rÅŋÓü…ĢíËÁÞ—pcH#ļ Uã!„ LįËHž|ŠŧÉæÄAœYÁ‘ŽČ(„ķxķõģŧcZZ�[ؚ–Žō ―ÕūnÓļ,|ÜþĐq‚ãŧĐÍĐ6y,Ų­iļ’6œŊ6\,}ð%ĶM/ÐSŠcžÃÚĻ(Ý?ņīé ˆŒR#1ßņ}øéŸŅ9Ļčé‡4ŸšŠs…Ãcģ%ĪīûQðž„ېĘļ(Ēg7& §ącãóũ›; ŠÎ „"'Œādô�ðNÓÐĀ?O‰S3ÜiQ” GēwQãЖ,VʀÉÛ·žÄbÏAųčE]­:ÏÅ`.— ŽĩĮĶŸÛx D} af\Cr’ hÐR4Ū#ĀOōē bÜq ÔoėWļ#3ē ŦŪtLFtÁbD…ĩY—ŧH°›6IÕĢ„&WŠjé;Ņ€Éî3CgZŪķųyų622Ë_įŽ2ÛŸÄąŨÛũ{ÚóĒ\[yðSz^ú4xä€ünŒ�™IãvΛĩ‘EŽCD[)’2•Ûþ ‘þô,h4É Y…ýv ĻI‹oæđ'īę~Ą}ąãöíįííJúŧý―ûcöô‰û{‡ūŪÅïŦÐ/ęÖYõvI>Ū­ŋ‡uĀødĸĀ�>, î$qãåŅO!Ó2ėДņëā:*Ā "8æÔå,ËZ°_Շ―$.y’@BįõčgĻ�IŸr"'ƒŨĘKûˆÔé| TŠŅß)ŽÐÐÓvóHäÝø?b|ÅóūɌĻo –šŦ­Š„Áš‹`ōŌ›ŽÍ‰Ī:_Rĩâԏï‚A,ƒ,Ž;'žkAN"ÁïlöĨ?= ÛĄ<ĸ$ąðÃW―Tß5P—ŧ:ą€ld#ðg á”…>›+Ïö1MųŽÄ–mđágÃZ/—{ĀPĩ{ -ŠĀ‘xÎ3[―Ũ(?&füsZ ĮĖÐBĄŊáĘMt$L]āŅŊÆŋ6oy›RĢQEHũ Zčƒ9ņž€ŨõƒępFɇôOÅzˆÓeš‰y_ė@Ô=ˆúˆĪ―3ŽsAH@uōGÍûú™âð&΁‡!n…2Õ6NÔŊÎĀ+ä pN­čāĄQÍó{ößɔAW(’&_ ýŪ õqÖ"iÉlû•a/9NMžKq›Č‰!jŨģĮļpģŌ€ģ ŨÓŧD$FķÅjÂÉþËØŠŋ^äņlē”Õ”ōÝ]Š­#†-īFđ{zûuÝÂ`,ĀĄ Ö.R eXbîŦéqxĒwMôē/MŒ{eųbüAķ~ąÍœ•SU$îhßĨބ9-žJļ-!€ŽĘđēnOø‹ÁÔ·žlDī‡ aâïķ…îŅÛsžļ8ÁaÆQ֋îĮМ–zІüΌ1AÃjb7@~+†āuū›SŽ DDUĻŊgœ+ĒŊo2OŲŽÎÎė‚íēl“a6‰?ĮĀSČQ~› ‰YVЭ3åÓ7Y–Gp}W�1ÉŦîrŲgđvˆĶCĨęDóy~_ķĸ3‹n…Â[Yą—-ÉMP \yÚ*ZDÖnä ėXÏi8™ZŦøJDOfØôm8 ‰Ā— g`’æöxJTŅV aXr ŧē„íäWžeā =ú/cÎmŪDUeæb_Ô*,BH :"Õð(č— ff„a͊_°x- ‚Âé―Üi’&ŧęŲ_aŲŅņ_ēū •Tčņ―V^Šã 1 ø<úą°[jDEšG0ÕY\Ã\ËÏÞŧPJm›Ōũå\^iˆÛĪĮČË*�ą>ō“û/Äūɕþ­ŧ!Ķ2%[s p?é”ý…snáņģúˆól{Þŧ2‘ēĀ:–įB­Uîâ7҈ŲiŧiRÅT”.wīyWZ†î.Td ķĪá?Ķ[ķÎwzĩĩhņŋk†iZ‡Č7e °"o ŲŪû\ū·Å@ûpčý …ŋ‚–œ― RĮ•ÛÓ%‡#lwІĩΒ“ŋî }Ōčr„‚xýõĐ0'iÁģd•LÕ~^ŒĢ‹Ā†ĪžŸ�ä:OÛ#�ķüó˜åŸ-w{QQÄ�‹céuŠæ@wÅF)ję‰ãƆ3l„Ž0Ŋ֑‰ —Îýd0čxĖÉrßN/čS )ĪNg*˖6a똎gŠËo60ŨQ* ęȐKECéĖ'="5ĀZ^ĄÝũdĪŨī-/ÃĐÎ<wíË,Œ“C`kĩæwŪŲĘą 0ĢoĢø<ÅíA―@‘ēoóŠ :Ŧ ąÁÕĐæå]ā858ųíašÏiØ>ïG~Þ‚âČņģýĢÍ jZNÅŨåZ „í\žn~0hą“ㄜ ›ãŦ]ŋž·ôöņhh|qĻĩ<X ûcéäÏ=ŽÉI/Pk@uÃ?RÏBŌu·―%g*3SEēŌšũ {8ΈÅZ2u܈î- ›=ĩԛŸÓœŌ„€Ą /Ÿ<Uƒ1pÛÂ,Yģ‡Ė%Qy{ ð·JīÜ6ļ^ŧüB2E Š->fŋPžŪ‰ýĢî>Ė…=[ōÎcÎÕë "Ŧ8öđ-kY ąĄa›â;ßuiZõÃx-Œ$'ģ�~›aĩk_=fmri›ũæC­ĀkžBxJ'ĒÓōÜåPã§Vė‰1ĒBļô{$ē{Vå#p(r^G)f“ƐvsÎ\XįN[%ĖÏREĸ<ð=Ĩl9mUxbFĸpíZ[jŲ+ ė$ °‰?”yÅŦ‡ŽšíŠũuU@ÔæÛ#'·ģ–‹u}ܙ˜óõA°Ģp$YĖØR1ÄTϧÐY9Ú[âwšwf€Ķ@ØÆŠŋ­ß= §·ÂČǜ§ģ“ÖŲ9Jï8“pîÝ51ĘHē.ŒPjŪf;ėė7L<g―ĐP͘įÁčü v8ĘKVMņĪ /"+ā= äâĪ€qĀd …§†ģĪŪ“(eįTĨūð)€Ũđ{ƒũ8ÂRx=ķįrē[SÎÄ7ļÂāũhĀD&Éąý<€fvŪ’‚Ž‚B’PórÂk孖:"ÕD%€k‚ģPīrÞÐ>j Ė0P7št<Ė} .Ûtj\õ›;ßņ}ÓgT—O‘Uašó ÖlęR;Éo+”ßÕŪƒ―ųェžwyFn“Œ v$āpęŨÖIÜž=o§ûņB‰>ÎYÎSęXÅÝO­@Ģ!k]_.ĨÄW’ðžß‚‹™+š>YÉrąín<ƒ RYQM/p“ßcÄđQ;kŌMIĢåP-·ŨGēlrĄĨė\ją7wßü% ž;3ėšü PčęžųŅĸvôâ /ÁVÖĖŽŲęiŪ^ķŲ’·Rß Ü6q �šĐņåųë^ÃŋĘ(7ŽÓ‚ ^cŦf°åųÃ+“Ö6Ezïƒþ ūÃĻąĐ bįŲ–+õÉæ;O#šÁ™s|œmß°tL°’Mī°ÆšZ†ÅV„~ĩ“ģ*":ŠŧëŨú–_m4…ÞŪ =Ž)YWDjÅ1õmd]…íh{ĨFÜģÅ/iÅ3j Ÿå6 nļ*3€KØ€Žzãڕoķāž9ZĄ„ņí— _’3øŪûƒĄÃðÄkđ°‡ÚxŽ―d͚Ŧē0yÆúeÓĘuywrAþƒOkÄŰŧ>"ņĐR3ŒđYto%Ōh敍?L™ øø úcg™û`ßŅ, ‘o ãÖkŨĀsÖ<*ĀÎŪXweÆO?§}ð ēoÍĮ ŨâŠūĖf˜bŪM˜īŧŸ úŊ+mfû Ģ?Ôât "tąâ-vˆÔŦLáËz^7ûü=\Ė3ÝÕc}?Ōyo bpĮ‹ÅQDނdųJģ˜xĪĸ%T―ð$“Ál­|ZĻĄžËž)õÛaPÝ jËþ™ üĘēņq V—·ÔÐ’&hŧ‹”41ŊÜĩTš5ô`F[Ą5‰ŠÂA5ÁŅļD.Ę7X?mgÚäĩkšãē j$ZėTJūh|ÞB‰Å^;}?š,ĒŠ ð3ūjĶĀņrŒķL}ž=Ŋ#'5áýÎlĘóJÎŲ„§ØpA\ūëŸ.”ûƒŽc)ôˆËëI5·‘ã†LōÎÕ�>müÜ― íöģ Þi€ĪŠđ^Rō …PöųŪß ļ3q4ėlN$š tGgû‹S:! ^þxôv1e‚óÎĩ‹žwP„ƍz|_JÓHŧĮt/ðß7|ô˜ æqM“UAjF„ĢØ’KíĒ-"ũßeÔ58U[Ö$‰U<ĪģåãķJĐę?ēKOl�NÏ;hËo5Œ{ĐÐqûŽÃÚä’ĖęÛ †ŅôŲ (šĩ:™…ŅĻžˆšüįø'UĢ)ģpEÅûЏÛīŒÍcÐ2Z(jŞQ^äŦÝQ=%ĢMŒƒÄ ķAøōn|ô�PþŪĘėä v~…Ïb‘ä šđÆÛKwwâŽfXĮ…‰R–‡Ýn�b"ËĩĀ&DņÕ8 †ŋĸW›NŲ.?"Å|õãōs?k^LÕwļ’ę@ršÚ ËäD”‘ˆąÔ1[#Õéķ3ŋ1ûdʙä6Âė™8Ø_JS,óGtĪáĢĒ…qƒ> Ēh/KAš8GļŨ]r€2kŒ€Ė(ÅFîœtÔņíĮúĪ0 ԐĖėhö= vØ(§š™É(;_ÞŲÚôĀYøņī šœņŠ/ĻQÉõ|^ðĨÁDĖ4Fý嘟6Ĩ^Ų FĘqĄ@UX'ÍŲ{.)/ÚÝn”*9ë~�yo@0e؇ }NĨëÕĢOXßū·Ž˜Œ$#œ`ĸ0á’Ðõ]۟OEqŽw{ž prmEŌI§ŸÎŽ~ ǘa€4xé-!SÎü *—ĸh–%5ĩ@)“PΚķäwĐj—ųš“Äæi8›ÉĄĸƒcÍīĢâ0�)ŽAQörˁû#ú‚Dņš– t%[ šĘ™ˆ)UŪž†įŊæ5(tŪÃ�c_Įõã~Z8ē�·Ā– ą‚īîæÎNØH 0–ŊŽbá-ĄEŸ[ÉļØýxŊã!3pZJ ˜š—RķXĮWá!-"ÐïOĖ―ŌšyŧŪĮĢĐĄš·Ø&.―T3eĸwTøŨĻ―{x)AHI‡9ęR•\š{PtŒœĀÆ'›éŽÖT–>îĨ0Á?!Ī ņX1Wü FÁĘ?§3ģbá*E‹Ž _T9+äfÎEP~"g “ĢC3Jë'Š€Sþaw‹ Ķî/üsÖĒž‰eĐȘ|:IŸĸbšÓéŸĘ+‡cĸ͕LYáð>ëš§ĨŋVÍäŌiQ5'F )Ž’;‘‰7ÝJûČ8ŽÂB^.!ßĸĸĸĸĸƒ';í9­ė)Ęhz<Mt›y"1š úōŧB°tÂĶeĐĻæFÖv ß*=Ó]rŒĸ pęWsķÏûÜÄe:€Ÿĸĸĸv;Ė›šE‚™Ï)ņ3í §!^KҰ|ŠK‰°ðũð �{Œ=é\K%æ†Îbúļ=-ÔÐÐŌuÁ·< –ŸÐĢĶŦïųš`ä$Þ°ÐkŠn+2:žRïx―Iļ,P9„!ÖčÉ�Â7ųøüØH’u*:ÍĻwŠËLq2•~E^ėąŠÛģëŅ27‘XK>?æSļ$­9ŦóĨį~ģåF·{ēzŽô[@ó–‘óúĸ&åNĐSwTáį\ĩŌfJ1ĀqĩÕFeķ—ÎŪ`dcVīįšþ I’R(;ũ†PÂE#–3jóT9Ŋ Ĩ`OBš}ŠM>î5z˜ģÝa€ĢÆ&7bEđ'õočPg(w'öï hžüPûΘv û`øÓ'Ē 5EŠ?ãË~–“|aÛïð’zĖhŌÜĀMģ("pÃū­cœM+ *e˜æļėŽĐąWŠēV\–@*žqGŨį­‚b–I0A›đZ€FwFû )T!x·ØüįZØËÎj/gŅÉV æÉÏ\XÚ>ŽšĖ‘`ZŠŌyۈr@ÚīëīÂÍ*Ą^5d‰7 čŅô/ŅžöBŪĸbï―ü5‡ÁXðsōđ;á‹Ö&Ÿ„Îæ(0ęV“Ø&ƒōōøė”(>Ž6OžĀôöĄážÓۓ­ÍeÉé•―Ą_ļSög–ßdä†gē–&ûņā5õjƒe›Ā‰+^ũĒ{ô‹„ÔÛ Įcę†'D‰čWĻkŦ:ËøĄŽŠ―^Ž(8ؗœ‡+ˆËO"°vžhqVĄ°ÛKßžÔë;DžŋšĪ ŲþāúŽOčĮ@ÓōŌÆ73éũ-6š�—ęK<újϐFkϟÉØDäôĪƒŅ‚ĘÃČóÝE˜ƒÃĒ‹(z8�ŒÂŽp ÖÞŌ| ųŅëĘāpĀņØ%›đ+ž6\H&#å|Jn sÎ d™$5S]OnßÕîP} —0Sõ&9IŅģ[=ßČ"‘ūŒĀˆ9ûõóhĀ jsÂøHÛH&Ė KšEā6ȍ m+žNcZbÏū―’É ĩ—ĩvŽOuf‹=ļŽ6ņ4GÉŌø�z4Žōķ:3ąóJ Ĩhˆ*P‚GŠØ4øÞōĸŒ9}ˆLĒ•sĖÞc") BŧBÅÜ9$ÖuQGŲV§ŊPÄbĨīýž}/IE}Aā&‹{ÂIō° 6™óuęʒöRû|dČJõŧĪwCÏųÞ>þI`7ӝ\Îų °O,Õ$>ð|ŌÂô6Y"đ^~ýļî2ÆÁ z<ŧí8Ş―ļŠD,ØõA\/:Ânˆąĸwb˜‰ÐJ )†íKęļ&@=/Ü@.ËúuqŒD—‚ĩú{‡•8|ĐŲYn6”|šžVÃiK‹ĢÞ{Ũ3Ā.EĖfÝl/C213™s!2,ņŦއņSžN3CÅîýÅmbÜōEʁöÕr€Â Æ,éŠ>ĮmŽŨZHņÓ*ïæ<āĒÆ›išĒC tÉįF/’ÚĻoi‘t”‡°ÖĒû·( ę€āíKV�Ę?Eį•@ï|šwVöŌŊ·Á(Øī$1wė`}ũņCĐ(Ģī‹eJöĄn3^’ XrézĢpĻļ[ÞõĨÁÅĘē@ļ DŲĩæÓ°‘·ß’Úõˆ…Tˆ~"/ŒÏŧĀÅ 3û>K„L†pzknôK‹1ô@Ög]0šm?ŋÃ―…üw.ø­ÁÄ`QĘūq ™ Âwo(ÄúFßBč§ĐkĒ aÚrA5ę=#ïĶß Üąī?ܧüüÆÔāAŅ_’<A}ūįŒ$ąÂQÓ˜sî†ûðŌ‘‹6ÓvQŸîëslöGP‰ûķĨ}ëĶ6ž:…ŋÁrƒþ8,5‹ T–š%BýžLsØõüÄÍDĸWÁ<Z”ÝÞ*=BÖ õoŲßZœQî ļtŊüøC5þ5““ėü‚>ōŸƒ17?’đ\ęz{Ļųņbũ“ēŪæ4Ŧš†Ã†)CæPڜŦ@ŌIQ#‹ôĨ@65ąŪSĖ”[ï·iÁp€‚?ļ?f…žéŧ­F<v9îLwĐwŨ w dĶ}„zīīĒ$ŠyÅÜcðXßŪ–ą=§~aˆëƄØũÝS.ųš3FPø@äuÖĖĢ™/ĸĸwW°á2sã‡q*ýuTRP|Ýôður8æÚóiXĖĻ/7œûð<æ T ýyJ-3'üXUŒД,n|ðúK Õ”ĀSēBkF‡“Ŧýˆ'—Əīnë ~ėÂO_ZpNY‰CŧŽŽ’\Ÿ ôÂl*ÜÖÁčôīūĩ‹ë>€“ŒŠA!zÍņD- ëՎ�C ŲŽĄguóƒŧ'„$ũ eĸvpŒ‡߇˜ņLËCԌl$ `Ą ᖠ'ðåöšÐééa€§Ļ:LŒÎïķ ī=uyąÔXõ”8Œ1 4ŒíÅŌ~>ÚņCœbÅã]†ė,äæ"―ã( ô(ŋéΟOtã%ŋ˜ĐĄņĐ9&čĖåˆoãÚfc!ÄT~č0wĨbétęRō‹i~ öĘ I!ÉG ĮoO]FÉnüo=%1<áÛY2’+å'üo–&K2ÏC_Ų—Œ >ĒîŌ͞ņņzp—~ÚqÔsaÐlNi–ÉÕL€§ÜĄŽÚ{SÐ)žëާüj§ežgl_zd…ķlz�ka!€„3ŋÎŅî#؊/žHhwšGėâjļÕÏt1Ąší_XT<PI:<Ú­öíŧŠĘÃĩm\ãgÄð- ðÏ•ˆmOþa˜ũlV8ŸęGŅŲu`)RBáŒGČŪØ~ĸp•xÖ­ØÕ0&cÓžŠæh‹áĖTÝYJôņ-sLVPcGۇČĩ8Î ŲČĢĶÜ}1ČÄw”›.âëWĪ›õï3ƒķD”Ð’=A”O7o#T"ÞæĄā·†„ÂÄĐõ]s2ÂĘį˜Jbžę:+Āķ(Ņrĩ}ČN*GŌ90AŅžDKݏeÍÛŦrĮøĖ+Đ i[ē’į€šÕcĪÜ^ <įûņgŽō đ^TWĻ­ēĻðp·ÝĒÄĶRuC ÏÚžO @g2ZLë:ĀV_ĩÍ.ūāž2CSýV€Ąö_'&“uķq―–`‰“�€Ėf:s@N@(ŲóË™—MĀ­ oÜv 6ķÄĖĘgûá ū469ÄWœŋßbVðĒ6 ۖ8Ėđ�8“]üÓĖ,ëíGß?œÞŋíÝČÄýG”ãáŸā]ęD9ŦJÖPWqEÛ°ĢþŧĶqh‰Gk.—lÃzŅÃĒrõ%5Ąå6RĨânŠĄqIŧ\$ÐVOÂ= gģ9DÐ^K0^VVū+ՖŒp―ؘŸY§ o&īũ%J\Ā}Ð+ņŸØ?4‡˜’ Y!úqÔCC~§Bá"īąĻYĩ~MËÚxœbnAvIZŨ°ýÁŽfŠ_c GІLnĄÉíuíūUþ„ę9Ioė2N}z21C/Ũv ?ģž5Õáŧ<U· ī:öįš8Į”2—ĸ}ļ0;R8ž—ß"•z8éœČÐ3.Ð)Sāãâī:ļ~ŠË*Ā&ĐķžSöjĀ}oy†HčÄWÅ ŠüĮÃ+č?ûų”ÁE\ûÍgÕ —‹‘AŠÅšbVˆvųüM7)ĸ04QB4ß@<A\Ž8Ų4Ûr6-AŅÕoŋõîī-|õ—õōq!ųŅĩ {‰Æ6 Õށbēr37č.QÐé”n&•mõÓv‰—öP§hĐ\ÖĨNZýŊÚœ‰.ÜläčIýæ@‘Í@\ð4.ãKá—Ōĸ"§J‚r[øzúeĨug˜6Øn0ÓRN0 0ņÍF~·ÛŪcļE·€4ÄqÕŋœŌĖ'h”lėŌ3éÖOēÁ%Óõ>Šf(­ŠäU›ËCaIŒķ~Tä›MšåE„ÚĐū€8c:Ģ ,Wū’NXÁ>ß7 |Ÿe€ø x‘Ē–,īwOŧlŨØÎ"œæÆøþÓ�TĨ‘Æ|„ËE–ęĐÉqÖ@Ęyķ!<gæKĒØå“ûœ§'1h ãb3íe‚1dVš~š—ÞÕĩfû)ŧ$€,ŠŠŪ=ηô€õSXąÚDp’4ņõOƒ&>‘WŒÜ[R”~N”Ds\ŦúccáVÛ8ũįņjN[ð8KŸĶ—BJGĩIŠÏĄ>OĘŋ4Sˆķy·@æ>F―Ā’Aŧ„m�lĩÞļïæ< ·<ųl\X Ų•qo6-`;ĐváôfžåßúyIÂ#<Üo‡(ƖcĢ/RŽŧÂō3Z…:û(5áՊ‹Ý_02OõĸļŒH#°Œ, ۀ—`ÕÅŸ[ePerV·J›íh˜ßãoûLŠäâk–p4đßĶ‘žNíģNrZIû ģq―I”ķ;ÐĮ@oŊå‰O�†7<þɓPĨÜ6Čcƒy\ -fÛE *;WE™īÛ$NÛJÞ*} ÆĐēLôÅë%-ņĐ ›iNx{›Sķ;IdŋB6$ųĨNg―jĀ?þ cКwŦÏÜ8å §Ãn˜‚aŌža˜>hw—kōœCzģiЧŽĒüŲ§0q‡ŲoIŠģŅPŧĢödƒŋ(Zė§Z=ãÓŦ?Ë‘ÕČæąíH îūîúæĄėS °mؒmÖn{š,žWŊŅÍ�xĸF'ĻšŸhV·rʂ“.—[hT^éŋUxũŠoĀ Vþ­õ‚réōŽUėOęËÝÆÂu 3‰-GraĻTS:EĨBāÓūM\$Ë息ĄŨõ&侉ÁØų€ EzgŅ2―z'!UÚ;Wā#!þÎ ô8+?z’"0< ϖĒU]Ä_ĖÅ{Ų4ĐJKýxKŠ>bFŽÂÜ5Ĩ*:›› ːœtį ė vÍųËĨ jw‚[6đl“d)ï]'b݇o$?ûīcÂãJ<õaHFķ›õÍÛí|[ęŲ3Đĩ›AnũŪĨA5–wđFJ= wS·ŨÓĢ{oFįeŠX%F]=6čFčÎÉåF}\ž^9ųk qí%•ĸ}ŠhĩāŊLðnÂd™"OękÕŧlŅ'Zâģ‚L0gÓCŊkčô§!%@Ņ?SŽA_nĢŋļF>D폾ДD'•óÃNmc„ðØÉ§ü*a;…5@Ïŧ~rܕ9Ŧę[lõĖßs7ÁâãߗŅîvÕ[ĀxÏ|X@|EĀĨˆ*ĪɒĩįK”G“YÉZĀ{8ĮžkĻVgö^äâŌ_3Č ųÂÔŽóïģbïcŠ|KcÖöG%8í‚ Ŧ)Dī‚Kē]Þ:q Û 1ÚkŲņípĮÎJœCãh|QþŽŦžðI3S4|YoĄöd3КŨ.ģß"zôõÖŠ‘„ĢĪÐ[;Įā z5ž!ã4‡GéþIgĮ]ė9šĩ Ļ//w]Íũð^ņ~U'ąÔ* õiK§ĪÏãĐėJ.iŦčUFŒXŽ^#�OŊÐū[–·!čåx+*Ģ1jgŪŌ­%Fåē·”_hU3äĶŌRîȘóðŽRŌū…ī|fVJVÆWœË8ßb)=ý^‹žŨŒå ũģ]ŋfĀ“Î˙uæG „ČdģÏÁ ŧ܇9! &Fûf°Ģ(öÐÅó÷'ĸXÏ!Í|đĐÓšĸGҌ.ŲÔîžĖo`XóŸĢf—Î’š˜b<™mĢ[xkŠîÎ}ėŲeąÉŒtX—Œ,Ļ*ˆ7ÞIšBĪ*Ižė�(‰4ډ ø›(˜;8 ŽpŪAéx‹ŲčSrŽÜēöîÎÜéØv_iJ=+|ė`―†åQ`Vĸ9Į_ø™°Ĩ`ŽË‡Ũ†`a=hšÃ‡) S$StŨz|0híâ) qÎ#ĄU’‘ËÆŠB@(ÎJJ–ĩ_˜išÉē"І*œ@X‚ GƒP7ĸ0 ááÃ#ހo p%ĀđmėŸĪgG&…”ƒî‚p–ˆ?›@C Ãä”ĀDÉV·EYŧŸNĪÁųåímN ­fΑnĐģgm`0ŦƒŨŸ.đLę|đĒÆ„Lw8BÐU2<…sƒā1^\JF4š*ô™ ēęŋŪũ.U:+VŌ&äPËËÄtöðN á—vaï―Æ 8gÖqX+tpe/UšŪČžZ” JŽäcRöžøįû›pNŌI­đÄ#ųųð;ë9óR-Ē8Ûėšû!LYæ ĸ dÆŧABāPĀĸE@ķéōōŽūkü•’ô˧VMUeæĪ†KĀa„pK–^DØ˜`Î +gļė„1Xžčh*7•ÆÂ;ސoˆ]§‰”3ŧBÝ#-úÔ"z„Ėā4–õ@tQ‚aö…Ĩ|[]̉äßG4óįíy֛âjāÅĨíŒ{įÍO–ĐĐŠ æDĩwŒdg$}ŪØīlĸ)8J0r=Ī€ō`–Ã"}ūA+0%‚<·å úݜs_šgÉ/=*32Æk*>ũĶímßąNĮþÓŌā‚Ėâís&þD+jwZZ9n#@€_ Đ­?Ĩڊg"Óį,VōýŠÃāɗļ"ŌQFE{k@7pīû―û§EŲdÛáGļdÆ`ßM}šĀv‹•‹eËÔQäá*Õû^tø°ĸa؈ōÍþ9-@ý6|”ÂĩųũÉĸtõøhĐ™EÞuĶ7īåÁ/:3ĖŨoE_ø Ý`&[Tžôå åzÅšHGgŽonš.éÞ=Ŧņņš|c·íúĢiõÎīâíbžWk-nutĨéõœt âYï—܍Œ?õ―:kÐG^yŸúmŪņ{É \ųô\ÍÛd}šėIĀpTë(âe%aúą—+Œļ æË!ŠØ΍”0pË(?ĒĢüĘ {čáĄäÎŋI\OÉHÍÅÚäĻöÔk2ðHÕČūŌóc7P]sÞúï9&^3ënS-ôSԛ?k­�[ ä$Č&6į<âӕiēąķ&û‡­æĐ!\šŦQ—ēš\üĖ”YD6?aðÍišø-üŨŲ8åóv”žrž�lúÄsüÜjIęųĢũ!l† 8öš3‰Ŧ§ÁˆÓCVrNFÉN0fÂXđžŽ0Ēë Āü{ŲlódŊîÉĐfpËB–đß Ōþ ÃæO ^íĄÂjpšR&ū•åÎy…r•„Õr5<œĶ4w6Ōäýî^ĒÎg4CWð^DnkķÐĄŸ ãöĪþÝZýīíÝL~֏۰?ĩĸ{v›ÚWûtïö­þÝ{įėĢ,–A­:HQĻÂbî>—õžęõģE&#"LįåX·'8b*#J|â\2AJýėrĖsbKė‘kHšÔûZˆ―Û9ķÅęŋ;lZæ@ïY؏čj °Ļ~ƒčTÝuŊð„Ð(˜ Œ8įĶö•.­IŨQŲgũŅcæĸbąļĄú ßŧ(Ī΅ ‘ÏNFb.&›WO·GZ†›ų>€Ū…Ī:ņWô0Ęčmßʙ+@cą)Jk?XM„ @‰ķ˜3ŠÍĨûīI­FQóĸ,Ū[›ų™‰ĩĒ―Oę[Ši6‘,X’XúÂō7V!ĐÔB…ʧIõŒÄFwÅgr|" Ī•%m"ëĪ•/ދnz>§ņ`cŸr=§ĒļėØåū ‹iŅ-Ė zA!a+’Ëâ9ýđėúŝũ….W:ø9ÉLŨ@UïÏÅãzOY<Ļąäk�íŪsð#LŅ@0BņŠâ 1]§ÃUPÍjÕbYfzW‚’‘zŅerŠ1ÆkAFė­î8&x!9Ý­š.,8/ēGĻŅ5n!nųĩ·ôų�ɞøFqڌĩŠ!õ]ÄCBCQĖðO=pęRWŸ” ŒV―o<x°īdNŠø$ü…­~ÓÖ%O*DÂãGCIŦŊRĪ·WĢ@īˆ'ü\1įVœ}ØĖ3I-ˁ›dŒžÓ&‹ûô<ž‡wļnņM­ą|W0m3Ž0ŅD† &ÃÕÐKÛ)FōþrW^i ė l·KrCKąÖðĒčˆðëЈP°{ģį˜c1*―OĮ‚BZ°­ūývS|ũ2C(ŽsFšœ!#9+ŠÕm ͞yÍ ]oÓv‰áŽĻ ŨÄUWQJĩÖýÞj{,7ðc-‡ G1óūe ŸvnÃhĐÏ#vū―d`GZ3RD ģIĸ\ÕČÎîįŒoxƒX^Óīōq„?Ô,mí™oĐ ™ë#‹ÄLRM;$sõT0œ4F;Ę+ĐfũdÐï,ĐÅ,ÚÆYØýUíUvoHŌû-ßėûæ)áåÏxŽO Š.)ÉØė{pāąOöČĒrĨššH=ĪЉB}ėh+Â0pČzšž[,Į)ô�Ï~ąŠŋðHĢr˜–O!đąWÄSĘ―vÝqPÛ*NąŊHyEIŪ?fóXËáA2m qA c8Õļ]?æŸĒÝöëėĒHļCÁSu8…-\NÐéKÐŌ(/ā>íļð�/ūj™˜nšÏÆļ65·ĶZ+ĶŨ‰ķ†<+•.í{$‘=ĨSøj kÞ yŋ4fd}ēžŒˆÜI…č°ū2ÏÖ ›i ĘäųbÖ5ó|šQ#ŨD~jžÚ˃õ‹iØd\-U ™ģ―LڂŪß -b}Jdßģ•O$a’ ��������� Ўw°JÖÖá�����������WÎ48Õķ†!cŽ ūŊeĢ.šÅRíģ‡_ü;üžĪ{<­Øõ―€%i8›`D‘gØ Ąý|z›ĩÖhÖ\õĘ>Qhu„›v‚þ�Î?1ԟnÖHv]ÄŊPy>6ßÉÐī|u\CŋļŽûۚ]ëĩ†éC�Ģ<FŊŒœ˜Ð!ÂÁƒŌ―~ĖU!uCäŽL xéWuEĐ9Į·Ø�=óŪĀp`o9‰ßĒ4ú2Ļ;/‚PŠãĘŨ4îkĨ`ä–l‰ŽËEJß!KĐĩáūšþÎ!nŋkõ$"ĻxĒ%ĩ‹‰U=3Īū[ hÓ0���� îĐĮov\~ )D·�Ę)”�ČLÔf)<ģnėWķmDL0û‡°ŧ’šāÍ�����ėXsxģý ™JŌ~{<”W,·ÆÔbĀĐY= Ŋŧß}Z5’ÚŠŨŽKG䋮ZŸÁĮĄŨ—ÅOá7ĮŦUΙÏĻ ,Zo IÛČŠˆá‘ØĮÔ‰#ģō]ø{ܞʹýavįˍ^ôŧkŠGäšÖŋw]|�†ōIõÃŊzŨōüß#šœJ‡ ‡Fō[ÖUÜHÄÖCÉÂÅķlû„5ŋÚóQŊ[Dę3š+n%,Ļ EW?ĨylhĪįÃ[ŌT‰S *q`•õBŠRŪ§_C%Üwu‚ĸ\>sēÕ0額FœGåýšNĄx–ŒE<°I‘C“•xĸUŪ•úD·˜\d;ļH}~1ņ ÆŠRkóĮ{ĢK~WeĶ—ŪpËī1vũdKû˜.ĩØöņœóí3-;Q|‰w&Ęӈü&#ņĩÞC‘5gP)áuãC" gzĶ[wA;Š�ûÖMļ“ÜЊĮģžó%‚ 鐷Ģí™@Ãq~MЇļøëŪc°ŋN˔PÛ4Ņžį™ö6짐`�)ØĪĀ7<-lé?ÏK˜ņĐÂĸQgšr)iˆÎ|ZyÎÆ‘ÎܞVÄęžg#XáhCH$ėG!žž S59‡―ĸƒ/‡ŠAð žŪÍTР— 9knĄŨkUUuî2Š*žėH5‹‡Ó'*JŽŨq]Ÿ3QŊœax7ä œį-ŨāŒ―áh›‹J’ģëó\@ÕGqëÕM@äégíW_ŪÚlģĻŧš›ēŲĢ7ßs–ÚÅīīâ™#Å<ĄęđäK˒/ß8Uv՝ŋņ:§æŠÍšÐėŠčžÉ§ú3ÄJÝĮŦäʖ I‘ð2GĶŲ9°@ãâīžûeÎ{#Ë%ąBĢüÎUŊ•<gJÎý0ŧ'efӌ'8dúžã ĀÖÕކ߁Ūčhņ5ý1ķ#3lĪ*a“ëĀü]§y6ũ3üđ"–•>eŠĖۈï/yĢ‚Â1„3ēŋėX)Ô4Ķôųðy‡ Ģø …ų Û †ÝÏj8 Īu0QbŌ92Ŋûö°ÓģåŨ+0„Ý+õŽ…WĶ;ų”đÐb‹―ÆÅãļ}^‘!JđkĸMĀPyz7ĸ*ėčC7ØQ/‘RE#V’@yqï:ėŦžNxEÏC–ĘuʇÖĀãîý >u―ĖģH”Š[îPýąe(Īāĸ Ûũ#?ûe€Û‚ę.Äl+ )/ †v7[2UņĩÄâî-Äy;yeô1�€ÝݕóÐþg 5ī _3 ŽŸŪ3ŽJFÕt8'ũ–Z|1ېV5I}ý*YvôŦDãĢÕmÐŧ<k:}ï dÉÐo^ė6Ė<Óœđ­6îŌWЧóī=ī€Pđ›žuX§o™Ēiē‰Š$„:ŽąĄ9ÏŠv š š-+ßAÐÝO b„Č…VŠåÚŊÚwœšHŸw ü{ü}rĄŽŅcísZðeî~æŧ&î„*öŽ�WjSĸeō5œrSŒ~@œ+Ԟßį€ĶWĐÚĒß]wĘĮī it›\7R:EäļģMD)Ŧcæ‡/"c2h.Þāk˜ˆČ90d&Ūė‹ŲĻlõjúÉrĮršo)'RĨČdEŦ•ĀW#ČáÎ}?Åü°ļŠ–Õ92ôĨˆðT| 2Ýt Šģˆ s2ÔĪ0V“J―Ÿ/‘,”€ĻëtÁt ßRN^ }œ―Á ’œŋĸ‘ĐGbœĻhIũ )ÛxwjĀ;ļ_(9cū“ļjĖŽ‡he-~Sŋ‰Ð–+ML?â=ޓnš?c‡øüQ1KĢIÏČá―D7üõĶ@LJ…ĻýoøëņĸYŒ[FĩÐwāÛž‚Ā4ŽljÖĀ/#æ1اPō` Ô Gų> ëáį”Ā~Ö#=ÐĢQp–Tā āíĮx ĸŲic09�A…��� jP ‡ ���ftypjp2 ����jp2 ���Ojp2h���ihdr�����������colr��������"cdef����������������������jp2cĸOĸQ�2�������������������������������ĸR� ����ĸ\� PXX`XX`XX`XXXPPXĸd��Kakadu-v5.2.1ĸ� ���@˜�ĸ“ÏÂû|jÂw eýĩęĒØ’ŊHŊyÄæĮÄp˞s';đNXīzýĸzåïZþė…o^ŧķ,ŋT7āIŨ‚&PīCÞÂāģ đüéŧü1áï%!wÜiݎŨąjÕ$o&Ïö"s4*?IÆYQæÕWˆ|pw],ŨįUGIišåHģ7Ö YcM8TÅWŋž=Â/kŅ›8L„‹vĄĀ`}žh›þÖ0îd#.8vŊ=/á―…€Ó$ÝcũC9î(―5čÏÐŦ -lã\vŠPŪŠã‰3đ]Ÿą€f|ŸēéčÂđ5zQœīhĀ˘îKĪfÝ}ÏÏÂæ]1ÁEý—™xÂNĒü‹ŽWJwOš}HŪþå hÛØ…Ŋ$ÃČð# w™ˆH%E{›L ·ã‹Rå%I$ -ÄÔ*ël} Ã(åcę\ƒQÛk+E°“ŊþNôdI.Ķōņ dÖÎy BWäņiöÏ]•„KŲ3‚ˆ­ÉL UŦœßÜ CÛ/qnTcË:ŨĀ=1z‰Óž―ÃĪį*ē"‰Ybj^ðŅÁ'clÉß·s/Úį:r7Ð4ųO5―ĸ_ ‹r4žŨÚŨčŨ~bŲx­cDY‹+ļ―ĩĮŨ&fÏÂ͗?ƒŌ"ņ-4‚™]â{üӞ k|„ęgKmƒ=°ģ•5ŋ ‚zl˜U5Lātą‡Ät€ÍXČĪ[ úß|UX#˜ˆŅČ&ēÄą€Y+ŊvXąŨáQWËëÖuŅjV§ÕÖŽ‰ŧ4!Ļģnn’RT+ |bÎą%JBōá)ïË9Eð܋{ĀB@ķ{pÐtÏwŊ”]Ézî”H>JB‹Ķĸž+äbόëHÄiž2ß<6ôëw(·2ʓwÉkŦÄĖΧ―—ÏÂë=\h§Þ%/Âðag-GNÕÉWCäN~pHzIæv ’ģð·5ņĀ…‚ ›IŽóŸ$þgþT/ôĄŊäĐmā‹|æ7�ûÝ0PRoýHu­Ĩ'9Îxķ)dxa­āhm/…ŧ&3Ō“Ũ:Ō,`­i-ę73ˆ`Â9[ÅŊŋšÕ Ēå…TŽŽl―Pb;šGîÄIGŠS/ÞĄ#ūQxšõ[…ŧšhÏĘöoviėóiþĻr=-á~DŅj3ķú7HQÛ>)tn@�FŸM@ĀŦWîÖLâMÅvLt ›õŽŪbfâĮá_ĮáhCðąĀ‹>Ģãļ áŪU€Þ7 FÞĞkŪ^rÓmĪ!ėð2Č ûtyķÏð‡< Q6ŋžŦ7~”Þjũkį,ĪÐgËwVR>â‘NĐ9_ĩÅŨýxí―ō̓Hl8K:pI‹Z؄ž­ëšķJ――›†P4ȉž,õŠŽā›" ^ßsŲ—+ÔČŦSmÃĩ/Jýž|&ˆUïCą&{PóŊð;Ë3Žë.Ē@Đ,Ü[aoÜŊ1óNkbe3ÅGˆ™Ĩ •.öÏÖRŲÕņkÝ63ē+ü>t§�TšâJGÚÉ.Oí†lĨõCK/˜*dĮXƈÁļïb ģĄYāJÁÉņ5įŪ'{2[G@„―õ1͏—:Ŋ7ÛæĖ ‡A­ËHÐÓ°œï„7*žŠqllž j}=]\;KįmBónRąæĐbÅbJŧEþF’<·n°Ĩ—zA!â%TNļ―ÝŌbŅžË?â7…z"ŦÎ aÅ�ĸøt* â.ÓŪúW“wÕ?Ņ‚Í#š<eS‰ðžÚ“Ļmn. –ĪjcPm5Lķs’cU7ø[ÃJ›Ä#Iq4ÖSjÃH’q_@c3ļ9jú-1žšAmˆæđEšiÍĩVĖĒÔîŠ(po-ýý™}ÎFôYÃ,*_ŠYBAþ�›Đ ó|PP]ä/†Ō3ÜJ~°0Ié‘AÎÞ·xqDŸŽ5#ĶĨRUØv{îƒdÅGšEĮę9\ö/ŊýÉÞ�Ý|]s’K؎b?GWé―tÉq+í„ûØo ~ĸk@ˆ€ĮáYĮádÃðą@œÉ˜ô‚`:HýļÚR$ ŸŌ摝ĖįÄ_ĒĸĨAÝō’Óáík^Ú6ģõ,FõÎȉ ŽCŽýRŠą(rW7~k=P {y[ŽģąGæMķ|WĶ[`74ĄL„ØSŒáōzæ“‡ŽėČĪ!ąOC`‹6ęīS#ÞĩH YŌ“ąÏ'\XÜ!ŋ‰ķ3ļæēĀ ģWĘį•m˜”#âKåĀFŌd?wßæĘ|ä„óAyi�\‰›8XWWĒßĨ™RzÞå"nģYėŧ,'KyėLøĪm7õVāŲãžGå™nĻFÐĶ@ėÔ‹Ņ—ĒÅũq‹ Õ,āhËAÓ*óģ‘§íŋĨÐÍ\ÂAóü5ãōS ý>K―vŦWŅ‹k^Đl˜úeŌįîęžģ $ø_#Îļ‡c‰ðm;ŠÚÄýœ1ėðÖv!ŠÞO›"§ļhåmƗ įÞ_Y€.įw):^ũhĖ?*É·úįČŪûQꎎA/âžá8_·~ŲJˆ€z@ŦðY+sP›=ĨÅ2“ū­4lÎQöÁx„@e€‰<ۇDä6!ÜÓó1J–ú˜"–īŨĶļÉÝüqĸjÝsĢóy‡æ~“ŊÆĪX‘–··û=Jóï€0ÄFcĄ5rsĨWéXûŠķËWŠ:ÖD1sǚ CSū\ß\ō4ū–<đËá­sBúxŠt­§ĪŲ )?@Ķmu·ģhk$3·”Œ_1%&vDx6ČR—Ė€ÓYÐ+GÐōFÛU?Ā�_ÃíĻ!öÖðü*°mâyá9ïīCÚÄýÍ^WN=Ð5Æ­Ū8,ŅY4a"Ā܃KûŦüEāhļúĒЇLĶË3$Dãš‚óÓ&īú ]ņܒݭ·~=Wmeƒ#‹ųcŅI—ē‡" hûqlEVæ•æēŸ/Ąœ—ÜdŽÜā\Ā·īåÓ ŋ8ás˜-uá’ĩcĮĻįøsÜÜ Þ_ĪÅđĄZĘ/ZDSãhOYņZūKũ\ęëÍČÃwuVÏoŠ{ú‚ˆ†i"!N‡žâ§•o–š#báIÖÉ+īė{hÂï6:”Á‘^Ņëy}‰"Yoˆ@Ŋΐ4rÚÍmąŠÐRÂíš;Îd-šČÁP{ŨÂ,^ 1U({…ö3pšjÞW"MUÚPÎÍ:JÚą‘JÔŊĢī#šC4;@Yö"/Œe™bÅÖÚ҃ĘFŠîfŽÓŠDŦÎ,;ü#ĖôÏŧŋ’Ëû>˜‡ģë%Āezŧð@+m"NđsI@đóLõz„r’DVĮ>ĸ=F5î―Ŋh8(KÜ,ÖņÅāß>0/”Ŧļ*äÜĀĪ›XPØö ’Ur`XbŽ ŅiÐ)IūđE­’]/™‰EÚ―:ó˘#JÃ@é.Öō”EėV‹íŒī`…XÕM@đ!#8UR],Õa‘)`XŪm0Y'q7bõÔ]ØŋäÁ:ĮáAÏΊÍüþÁ2ĸC{PITāÄKęPvÎĸ+ãÂûvPõÞđÐŽ &Ū •ðĪ~ņ?h ‘ĖSt§‰ëƒÉ�ķЧrĒ`čŲ:Š;ƒ€š|8Ý$vķPÔ>rģöŸwâFVZNYo™�Iá•#“…âįũ ĮjQÕ!SɚXŠ%IųĄŦåĨ ­ã―·GV*+č]k‰ýÆMØ Ý�ÛÓ#Č+Pųeũïy*Î0‘Ŋ—\ûWŽė"ŸúcÅbIÓå�•|5­ýM7pl&Ÿ6杘­/Ø)ĘļÍPĮ"Ÿú§VüF Ķ­<Ø@KJ+  ŠlųnGCžE."1TĄ›FAŦ˜ßÜīĮ†aˆ•d'ąL[ųģj/2†ïTĄë*š^yō'[>ĄšŅŒ ―QÁB Đ-eU'ø(TÆžö?ąû…&”gš2eŅ#iOŒðÚ{ÚØŧŅęôüôjœƒ]ʒó.ī.DïĮžIŨž+=’›ë# WķúĄ;žŸYl”_u5TĮáŅ„~/CðčÔÂdôÞ6•Ā Þ­ •`ģLwéå óS i§+Ý5tv­9ĪŪ†ÖQ€Ķ;ÁĮûŧWđ<E0;ß&vĖļ…°‚pYšŸ*m<ãÔývÛy—ýFfSĖūé?Ī\"ĢŪUŸûcČo4dt5Îû•Q+ïþ8ĢũÄw†·ÜĪŌ1ÓJ…‘ûĐĄĶW�øõyŽ…ŌGðõž­6w-U!•ĶxŨóŽĀuPëúLv§Cą�ÞEÅō2yrëHGÃi"AQĢ#.Ŋe3 ?feða`˹ߑû| 9ivðÔäã‰ÖŠâ=Žũŧ|h­TûØ*T(<pÎ[ŽĶ_5&dŊ)ŒZÄĻĘž?LôĒyóĻŲ―)ÓwŽŪ4ŪEšČ�ŪFJĀS_)⇖„oös‡|Â#Emgēnddš ÍÛģųå:ÂđÝ^§Åčķ5'ÔüA&äk­ûC›ÄĨC_ƒ† ŋÐČRáĪzĐEúā DöŽVąÃķîõŒ„T4ÅæŒ  Šá–Š―Eįáéû·―öÓ !væ ĢžÕļa—ž4JŅÐ*ÕDfā:š‹ Ōx6ÜoïðhïĮ·'Xų|$e`ĩ€{dŒˆ:Ïēí’éÔėÝjd„"1™ģĐv~JÏ#Ðā]BŅ#|ZKģŒ} dž.ČūAŨSã5ôa7íĻô+ð7Ëfd?pýÔ(éÐjöäkÉNĩ€ČWČāÚÝ+°‹{:ąũëĢ’žåydöJÅþbī#$N ÎBïĘi†Q̆—Īaxí­™^ĸ{ýý Q ų_”u:ÞUošSéÜ3Ōõ>ÆéPëƒCÂemr‚IG IâމÆVolJ†ûĨk~@ĶĩzĒc–˜ĒÓ p0ĨŌbŸ`N™îäķûíՆ‘ÃL‚ÏŦ_ƒ5âí84Éü“OéØL Wdm{=„ĩÖ&šČ(ýŊ˜ôīęŸiB'°! K“å Ð)č§žæ- ēxŊ—rÂŧ:RÄūÔw�]5ą~"!“ÛöϋdÐ>›~ļxĶÛfi3,8ŧöČ&ÅcrŞšÐ,û`ÁÄUÅŠ`3Ï]Hb`ŧyŦD cWÂôĖķ‰H;YgˆČPb ›­†nН›_ŠŽÚbjiS°šļ^ړ/Âĸ’Ânúô’ _sxšÍ―ýd8ę3{=Jņé€ū*—ūgýpþbô! đ�;1Çý9SĒĻ>œ.ĢA7Ņ𙚐EŠū{`lŦœĒ&t?Š$_?rdŲÍ'_ôú§Ĩķ1ŸVViscŌ S§(~Š>ųXϚåĀĨęédÖî·!gŦVéÐ ûE7úð·wA8,—ŅuįįëĘs›RHĮIo17cH―„z‘}ė‹ÍÃĨ-č•åÅÅ䏐ƒmdų^ÐV-ÐbĮîYMaš€éVi‡ūŠÆ1‡î9nÉPĻúį…ĸóWÃPGWUPR h ŧļŠ}7ŨާÚRķI€Ģ.ø[Ũ‡Đ,ž“ Ŋͅ―ßč�1ž‘aęãOéęŒÍeɌ+Đ?€ės,‡[A'čNˆī7Ųė(mïŌ)4T qöÛđÝb\•˜ÉNŒßð*NĮÎē˜âÐ]ОÎ6—Î2ča,EAúĸ1įĐg ãadqy•uĒÞ=‰QųÃø$Ė?·"v+sĩÖõ4/ŋ3B@ģĄÉĄ$F åœïu}Ú} Ú^ķXÃþú―q0éô ŽSņžýt{ĢGāQŽ@ĻEDËÍTdÔ āá[]]ãĨâō ü]3:@Rhmôfó),Æŋ8E^‡rÛ'6ÍæĀJ–~ ÕRs<Þļ‘UĢFíé™2JÁLüFNþkŨKÄõ†5O8Į i:Ë"ėÕ\ۏ%…LÎŌŽ&ą„#{åÔÐÜ :Eiü€[Ļõ%8R /čž{Û~JJ&•ū\]lÓ<žNūqđŌ,ĨĮÐĩzgfnYę?F$cOŅ<‹šk"Ŋ}ķ€ŸJÝ'ūut5d&]ÃĸYðÆūÛŋ*ĸPÍÁ€QĨkĒC–jEM,aå<L,öa;sq­·ļdęænG™ Zų.Áōq^8TTHÁĪæÄŦ”AļRŊÝŧÏį^)Ÿq؜­^w æ/rb XGŠčÓÅōvGB—óęą؀ķ#%-VŠŦLXuÉîķŽ2&īB‘šBĄ dUđL5—’L …šøP{ޜ:9’íŽdhļ ÉŦvŠÁ'H…ÞúŧŨxĸA?Kü˜Xž„/Q#ÐÜĸ0ĮáŅl~.ĮįŅā­Š—ÚéiŠc/ΒQýx–Ëqä:ÎÎĮE7 ‹āĢũi3`QáąHVųŊŦðâÛs#đ�SƒŦUof6ö/6ũFĮ ŨūÂ<ðDyŽU‰@æßx7įã1 €æšū&ĒFvîðýUōU_#^æ!ô8î=ôūvĮ&q™/ąĶóĨĪûŠō5*öŲ_æeč*nÄŊÛu|Ÿ8ŕAh7ÔŲĮ<ôŌ§­anáܕ…}ÚĨr§ý5$Äí ņ°―j/­€rėĸ"cRĖBķð!UŦrs&^ø”ĸ4ļqƏųĒ+ĩŽōZÓœÎt,éø]ÉþŰ(%uð›Ö ( MhӞwO&:Ųz=dŸĶH8GļŽPGÛ|7(o(›Ã`ΆžAHHL+Ô@`S ŊāęWWG°ĖF€Ž_} áĢWŒ ũg_Š­äÆč―ųĮ‚Üht@o;ß`u·0îbPfÔŊŅ\%öōouļM·bk+"Ūg`uØÝ$ėX•’ž9‰^Ą Ðd8ÁûXdoÕáO}Ü.2ît<ÕĪĩįåŨøāMė ĩĪ Õ‰ûEĐbō͇”s›Ãd―þðÓŪŋ‹ĩ`ôDCAß.ŽŋŸČûQá•5ŒĢjīYĒY⋝ĢāÞmX‹ÐÂ3Wnó‹XkɟĒÜŌÄfb‚Éømŗ“‘ËNˆÆý!ŽãL \YúĀóĀßj=Ÿ<įŧą*ōĩKÛ ä+€ Ē[üŧęĘÚŅ8žĻÉzļx^—žxŪõ•ÉXĸ-ǚQ/š6d∀įÔ9?vÕŠkŪLdŽz­YcāŋøøuEôÛ@VID §―ICð[ãƒÔŦ$š›+uÞü-EWÞÞÁŠ€Ï3ŋ s%čgĩo— ũ:Ä#$‘‰Áüųh-ûQŠ {ũÝ› žë‰ņ9#YįŌī-…i›{'Ž2 ņ™Š:ĮwRĶÅL…=?ŠÆ—-Ĩŋ ąåö˜\2ņ GQx5ï=­ĶlÂgęÓA·Ņæ$Œ―ÍJäídŅAn€KÝōmAÍ'.•J\W,ž}IŌW€H›dÄ,Ÿųąwĸ~~äŲóí'Dŧ”rĸ KÓcKĮl>üGņũŨQˆ PīĒßí`iEåëŊĪÎiËë°ļĒÆ“‹“1mbúŪ·ÖkPÁŒõŅū9Āúßđ§æga^ðÜ~·j·ŦĪzĢēŠ:f}ōŲgļIg噟cië—Hó[h„­^°ð>eŦa·ų†[1„™†čģ&1œ”‹]Q$āY˘ø[L‰Ņ]nWĪgú·?ūÏÏn―ŊsëØįTąó”æŠīŌ–ĀķĨøU%\y™ÓĒÕh<OĻ/ZpWC.9ã•^Æ�ËųĄÓÐdþF(Æ%0*ã,ôj„ Ër/OĪĖ}đ–•T�ƒ·!n10-70Âgũ·þ‰jÖœF+ąKmĘÛg"EņŲLā-ý€ï7-müz!Ĩ&Öņ E ‘Ąï―C6ö“(a<§0Õļũ…ÜæČûýČ!JÕjâķę)cþųļŪ,Ĩ™ÃŽē ‚ÉĸuP[pA3wjYŠÉ/Œ)ōŅņĖ„-ƒ4›OcîģQÅ9ÕļâĮTÜK |Tƒčû/œŲŊ`  xē2õé•SĐæ'ŽŧsŠ<ßtėÏýūĀMķāŨéˆôš Q'EōzL YH‰hŦŌJá`æĸQš—gŪã·~Ā4ļīûéh ^ņąýÃ/h-PŽ“Þ̈́’ŦÏŧGŨĶýÃî—ĻĨI”{Íô/ņDMũ#ĩ%íwšðą―8/ĸFkQŅVDá:4Ā%F#K/…ō  xâ2l§Ú›Éņ†~=8Œï‡LŦ„~þÍnӀóūĮœ9Ø>f―:ēōĪÐÛ§AzöōŠÚ*+—ö3ÚđÉ<}$ĐíK8fŸjîÎB9…ĒM@ķĖũLjpEÂ—A5ÔÐy íĀčÖ4ud•ŦũĢK+”Z\’iJ<ž`ēÕrÓMĻEP·ƒĮó*šoNßUCˆ1žÆxü8ÕüĘ&[-EžûAÆËĪŽßŋúę^ °ô؀*åŨôų{Ā’é]RuÔ!SHŧŌ+âķĩ}c·%H3Ï.JqÏÛÂz'édŽvâÆePŽ°ĘdĒ*ý3nâÅk:ÍątCc‚ō°îÐáLCÉxĸFņ§j阂-GK%ÐĄRû€ž3˰ŸãU$ ŨНĒ €Œ|čMÆBfÔóbŋ•Ëšá4%$nÁ鰊Ņļņ‡Ŧ4qŪú'ýU&Ķ ÃíÝ(}―CðÞ�ēfT !cr^ĸð,ę·�nˆ4<ŪÛBu+đLĨOn$ŸTxheZ)2,é™8$eÍņ_ŒŦ bHŨ›i&@áôėe`– )ó‚øK„LJą1w@ 5• â8+Įãá?čg‘ĢOŅIlyđ$ē  ū7N* x!ãGž3(ŧ1―P+@>niâ�Û{ß/ƒ0 ĢÆņ‚ÞãDywÚņ—pp=ŨŧþîŌ (D(+ý"éÕŋ~ũ?5čšz­fŠŠ`Įweú€ÓøA˜~XQ fö55P (e-˜­óÏ~Ô(NtŸ2f-GMöŋB‚ÆÆ n―Ž}ޟÔcíWjNu(`)”Sō(é.Ũ}ýÞét”o8ˆ3ŋēœ ŒoƒoKøŒÔBÕ/d’Tœ™-þ“áļÝ�Ŧr?Î_sŊ8bâ!Ž•øũ$ĢbĄä|fÐŊOësĻŪ>ēÉGųA 3 Âu:ʁjķØ{R™Ė—Ž„[psžū­$ĐßĻUp•hýŌ$2û"…ð”sõL~ į’DŪÚû/ŽΉÂzŸfmõ"pšøũKvŲõ‡ÜâŪŌ „TŅÆā#›į0”\h=ģÕ·þ/" īƒën>ąž…Ģ č$ę#UOŧD%ӃQŊõuŸÕp ÎŲ@ßՒÐ+ÐĩÐó›ĸ>{ĐJ7Õ6ûę;‹QāDg5?nĘĻ|útgíōá†#Ô.;ëhXūtņîŠwžÛ™_Ĩ4šâŲŽmĸ$3bšðÛHĪOĸ|É Ÿ…P•óĻF“Ó#š)iũA;šēNĄŠëð9į{Úö}Ę\ŧNėaÄBˆÞ ÍYģÚ%ëWO9–0)<éZn„ÜKë Xq˜NŦw―.•g”7“ęæĶåņÅMŲÅe"x%övMëc*]2^dýēþûÕÛQ^#°'*‚8Ņ+j03g+-1,Ū"ö6ũbŨAU]áÐΆ›]āēón„ƒZâJûgÐAINÞÝÖ ī}įI5ƒÉyPų]mUÛũNsUŨĶĐAĮÜŦ"g#Ŧ]= |éI@Ĩĩ›—g2�›Ôā˜ŠĨügC°ÔĐ~Ę{R?Gӕ ĩėqAžúG[T'ĄčmëŽBERôŨ~τčM‰°ÅĄėÄÕeČ ÃįøNņ―[ØĶ[Y[åÉÉUˆÎó͇[€pUĻĻōäzP%Ėŋ†OXĪŠŲģ'tPzYúՃ/QmëŲhģž tŧ|ūŅD+#gÐ0dĘúJÖnįîŽÅÞžEĩ˜}ÅĘr.˜ÝÕtg•7Ōs{­ë2“ĸx x‹ëüŽjí&Üe@ļDĖ5Ąþ!ūį=aæHl p 5LëļĖ=wÛz9I@mwô–$ōņéô\ÃÁŪ_Ŋąf‘  ķzĶw^ĩœZ–&F<ŠÛEŋšœF텏:ƒĒPš�J”x|ž $ˆĒgð+Vļų^T„YT‘hMˆhĨW›Đ|4Þ\ĖL{5-đ"óžųE―g–bJ§‘ .‘môwaïÄæ˜†h…bjVŽęē1ðādZ}zųƧIRÉú>pĄ­GE-R[4^ßë6Ԙ˜ 4čØžKC€4ŧÔýĻĖ+!t4ڛŠĸsÓC+€Ą*JƒCd|éˆ=ŧūĀäÉãD_|ūĻr‰ējšé™#–6ĪĨč’·ŊÚ3}zM†w }[’�sE ÔT{\A_Œ―Šáė\øĒĢ1Đ<§Gîéw`qäyĩô‡nöM}ööt6Íģm)Lŋüļ!@ũŽĸ7ĩ„ƒ)�åð‰ýŊ|nt3Xífą--Cž Äã ?éô,ūTŠ/&<Ö ldy~ŧmXQÓ#éœLŽÚva22ö\Šļï ·Ž1†ģŊ]ėL‡XŦ=ü*æEÏÏLãðÓüô ­”h4žS9;ŋ‡]D~/ð8HHÓÐ‡ČžāŽŌø=üŅĀdĮĀ‚)ā#$š:o š•_^Dňq;\į 1N/ZþĮÕý>’ R}Ō2 ø*·ĀZäūpToēwÃķÅŨĄčkžī”ŦcŽ~ÝÛüˆ&Ðö"Æže>–ũÎŨ`‡ üũŧK힇ŒæžúĖk $]ĩß\„ėAÞ ũyŠoslGbßŲöģ%,āKjy^ĩ•ðæ…ë;?ubZïÆaÃðpIž$$ûDTO‡ßvBÅ3Ęū·Ôeķ47ŽþÚÜi3šXˆģņƒŒ—þk”€ĀöcˆļųA͕6,Ąŋ̇\$N‹‘ ĐÎo,W9ÛxĪjDā iNý ‘ĖŠ%dĐ―šĒþ}jâTDĪÅ9Ci%GeƒhSg4‚ŲQ@đ(Ķ€ķ{t;UGO°�ŅÄÜDĩ_ī5#­†øčĒ5 Ŋpž71ÆÝĶ8ïš&@’eþ• qY%_Å`‡P_q†—ņ1>ÔáāŒņvÄØđė2 ›Ō”xoŒ5ÁčŽß’~*CS%HãŲzvųũ(QKáÓ~u=Ēĸ7\îg|–\ŌøqJÍ%�Ä1Ü^f í ^Fît< ��W,wE­ŊĶpRÃpo/īĶÉýĪcņ šˆŽ“ŦÄJĒ&Įķ°��'–œ-5K2üˆĖ˗˜āæŊ&V•ŽEŪå",D*}VšŒ-E· ‹€��B„_‹ÛŨĨïĮŠ�ëËÜöfĖtÏC랍îŊüģ,l‘†]2Ļåą!Ų>E‹ð‡4ˆÕ5ĮŌþķĸ|œaBu#þŠÕCčÞCĮ8𠰁/f:ívtNǘ•íž^y-Ō,0Fã’Qx}XÔ:ûaŧ5˜ā"XxΔ_`Í�bLáÔ|ÁâÜ8“ŠëíÃÝåNå5ÐĮžHÜ;+AxĻÛ;ŽMÃ;ÕâJwEwķ(VzekBô†€á‰ïļ1ĩžĐį*f€Y.1\ŧģ6đq íë_=ÁšO"ė{œįd[5nųŒ†RßÞōaĐÁÉ^@ĢX1ӑÁ…4Ö&š† X%Éž oĒÛÚý&[——Ė'ÂžÉąØ‰sbČē,ë!ž˜/ucÝæĘŸz™äĮáëó‡īt?\°čŽËášÔæëx3b啀ķJĐ"f…RŅŪŊŪF-âėl@`]ū(Áķâaog‹Ë•ėÁūfßíŸ-Ž ZSWj8|ó]wõލခŨÏĪę 䚒Đɔ·(ë,#— 'ŸĒíÍĻtÔįõLTœåŸ†Ō c11h`vfƒCĩÚ̈́<-3WrKBŽÅnáÕKšņ"―Ņ<{&'ŨöÞÔHÜ.v8õnŠ,āŨe4kīԗw}@l˜Æ6WŽ;―! z)Ŧ8XLĒ~€‰W뀋5č*ę…ķĨÍĀ>ÔJ+TĮĘ@ÜmæR5SZšxąû·+ōĮrŠ*đbČĨŊßŅÔ70…,6Áĩ|JØæ’ĶâbΞ^Lðū/…@üŠTZųïdeŦSa�šv üJÍšH`܀āŅžõ ‹}ï˜ÄĻĄÎÂjIŧDˊð4+ķÅí*š{ĪįķņņeíĻ~6>ĸ/ÎeZ|›teœ|īqPšÔ“ĒCĪõ éôÏ+$J‰ý!ŧrƒŨŠÞOLAžüîÂ|3V?˜V§%ĶBfáîg0eÖ ãĐĮĢĮcläKą7‡ˆœlóbcąˆ&931ņ<õƒËk–ãP]„ðõDïėå#^BĀčĸ_Č@ĶV`ũd\A—íŊŦfĪ4ŧ}Díōš]íÞR'$đãÝWx`ōĄ'wÓGíķ―ĪTŸ]ē8l―|Ø q/GæēžYG~̐°6y-' ŋd@J}iÁ‹\ũBm™Š“ķũØ+Þlšd \'þƊāp ‚ĀĨî؁iŦųMðĐĐ'ĩ�ËĪ‹3NI“'VĪÃŋOOŅĸ`ĸ5GĘðMĐšäW8°–Æ€S€ ųýķ gLJX &ŒķÛUu4ėP3‰“gZČvŌ�Dîĸäû―…%ŊæYnšļ(?Á?äýâ9äí�LωĀ.;ŪėŽftÓZĒ—…š)kį{˜ë$ĩfrđ>-, Í’YäâkÂâ/ķW:#›I^ģÏΧ�ŊގØ 8‹æûcE0KÎ9øððí„Đ݊ęåJũõįĨI˜]+ĘŠI8ŠĶ{’ĩH 6ញsŌÚaÖÜŋ{bCÃ7{–,ÉÛæĮp(qÍāQÄĨō!ƒxä˜õī"MÔäÕZĶåČ4Ng!M3€ĸïžčA&`’ :ūPLęcēÄV™æĀØ.°ęįhĻjĀu'ŊF/âWcrĐ‚v}îŪsŋhófý„nð"·ÜŽˆĖMpšĪ ŸÅ$Ēܜeį5K|ŠählČó0ƒŦ‘já?8^ð†Ī HũBŒĪ;ęnÝ%ŲėņĪ•Į“ŋÝĖvÅŋ;&^ô]*|ZýgĘĮ2áÔzĐį䡇\ÍÞ}ÆZØ l‹•Ļ:·æŲĪÉ1›UȀÔ.KCđžŽ\ĩļ{z_€ iŋŦÃʓÐxū5Ŧ#iƌ5čĩEãBOĶķ)y.χþôŒÁ|† ?; ™öðë•øõ€úÞ9~"øs(Ķ*öM?þZFabŦäéJ"NšþĘŲ Ú#EïÂ;Ūo8ėm`Cø‚ ķ 7KN>ĨE0ŨÐ%ˆ>­ĘkŠšT―CĮâ3ū;ėĖ|*_ĮÖ:d€NT*þÁõ–·|ڛÓF“q›ŋ#ĸWŨ‚įžÞ@ Ęm^ŧþô7l05Øy‹}Ĩ‰l7°ãŌ}ŋ•˜Ģ˜czäķY҈_7ņs~ZĮBžþýÏæ�d�Œ-=Īð―7hâ· *EηUjücšĢÜ`9‰ė…î7?a\*[…|,õū†âĮtýâÔÉoÔø˜˜`<44ĩ]~Ēĩœˆt›Åbl’Ŋ‡ÏˆíōQüųYÄW ―âž8>8î1î šX./s `Åkē/yНŊ<F>·5ũŸ7C,a„ĢŌ“’~6p…„Ņ~oAŠąˆ}@6Ņ4XŒ5Ļ<āóIV.îï'†VÝ1<™ Úð48|‚8#ð7Œå$ÏĶ:g:T› G°0€_ĐÁŌđ(?ŨöFT/RXŊÚ_ÄĀ ˜qg ―UTûā/\[Ž•ßxąVģŠ'šãiöó‚}˜îÎāi {ˆl?”E›ŊĪÞzĒÂgËeúËð }OBf”l�―þm™ą€žd=p†Nþãfðãïp۷ɟ‡ėÖm̓ø‚%}ïŋ›zīIoÃûĸFĄ Ö;#―Ķ:ėāā^€dL8â7·―Eí>―gÓč6H§köđĶ#ʏ’:/Æo›ïū_‚nOÞÐĀ/ņŠÖO%JËŊoĮ•„OŨ˜fRþėčÉ CäÐč)Y�ýžg6Ÿö%å4kū}ÓŊĮŨáĸi†Eó…oaë"O-bûĘ�Áũd›b-‹ēÓïI:@ā�ʏÐčMÏPæUĻâîŒUØøTVýïĶû%@������Iđ�ōsFėfėĮWaáķ-žŨ˜)īS.–aģ—ŒELyƒMzG,eÉFdg GĻMĮmŒ–P(ß fFAļy^åïK°Ó„<A1iËGđWĸj°ŪlÎĖ_V/G‚ũYdöþŠĄ?!ė4mE2ąîm-ûtĮUïšŨŌ°ô|šÃ!‹�xŦ6"‚WŽÍz}‰ųļ#N9Ĩ*ŽĒė§'<ņ‘e€-͋ xļ€sM&aT%Ė͚8"9KēšĪ "3ZB<ø‚―ĶØÔdzĻ���> āæe™)2Õ&^Qâ)…­'ķ؊=KxŨf%Îccü)ÉzA1ķęv @OƒFųiFzäK3Ũ˜ÍH›cË>9å26†ĀZ<€"ė ï%`Έ7Ķ.)?æÏ4�e_Óþælð[%tÞŨécü$ŠqÓHqC M,äĖ*Ŧ°ßĶWËÄ*Š•MR˜ā`š‘ĩîđ0˜øá@wT"Ôf „j`Ōy}ģĻ.ė{q]Y6R\rĘĐxsÖÍ`’U&škX<>Čt§ųOLЊÔrŨE°äpXHsrcŽO[ssˆ,|Z6ęČŨĖV|­ÄІᑠ#‚I$’I$’P_3%ö9üÎË‘ˆ7„Ÿ†Ķ{/~.Į.Ž,ąĪĖ‘åüĖ/‰ÅĖmųSAČÕĘā°ū døÖ3î:ēĩ9b’ÂĖĶ"ÂË%GûÆîæ§ō˜šÞmâdčąVGށ”̰opžé”â?øWbŨö`ˆŠ[č‘åō5ĢÏôÖ$Į#”Š@Q?T€ë”8öÁ'ē€ ō0N[K['p —–툋Qö.ÚuýTDq‹;ģatāýXē8­nģ1ߎˆV!DÆV-Þbu“ 3ųĒģŠZô’ĢUnZēĢ6ílü °>lĸÏhYđ‚3ÆïųÐk”Háó ʝŒœĢ#—z’KZ õ_ã| /f>”’›2!Rßa” üð^Õ-ŲŋÉÝĶ$ïÜï"“f`äŠpþĩÄČØûę-VTSToņ@övė]å]D P1@Ũ$eto`ûƒEleÅþ“TþšûËÄp&0ûq”=ÐT6·8Ũęsd_Ž0€hãdÝÉf܃æÏiÜu˜˜‰ԚJýïé#Ũ' ?#‰ĸ;ƒ|ņdϟvĖi'ãYļĢ›<;f™cB-6îøĄlūŸžŋüKxŋ57֊`8„tá8ū·@ÂôûäÁæ",LSÂąFpÃKxŠn 7įp?ĸ„ԊNÄoHŧĒÏÅûÚŌvŠ vGīû<c݊}Ēņ*ĘKĸ@Չ|_nižOá.ĖfõŠDTÖAõzß=šų—=·ƒóþƒÖJz;JîOĻŅå*â.šīÉĄœŠT)�įx―q“yûlSUļ�ÎėĘfëNčr;åk[žÉæ+Õ5Šg;j+ÓmķÖI<ŲĩæRģ�Ð5j°ąĸcÂ{1œUpėŧc™ŧ^bŊ!―r4ø˜―e‡2ۍé˜I{8MXÍÍîâķĩ:”g‰/Hīf$ŪĮgäbũŲ§özĀÉÛ(ųôŽ‡ŠŽ sēáÜāõpÔēZ3uâÞLŸšGũø:äą6úΧuĨYĻôi„›G#†ąķ–ŅJ+ODÂë6ËCHƒOIL&éHœ”D)ˆ`oeÁ ób,Éä\DøØšUtĩŽÂ!0É?û-Ü:6=ÕŠÆŊlĐ 8iD#Ó>ût ;˜đ―ALŅ.R)ČƂy/ūÝī„XđW›Þ°,âÖ'„]$@ŲÖģûCÛŅîÞč>SpķŪ^­–ĄŸ·L ū~ōƒÁŊ—õ'$WsŽ# üģÝjģ °3š`mCßQŸCņ~DÛ}c/VNöqŊ|ŌĮˆð}[ïwĄ&Rm+E§—Ē)$ØsڈļuÚĪEþ�·‹Qų Ļ9Ïô§b—$…ģq=ĄÚSðĒ$A˜áZøVö^>‰ÔÎwSĐãßŅ ÅģÐ<3 Ģā·)Ðß쨓J{ Z<=I€1øŊ­G7áúĢðŋĸH7ĖâO_ýUĮ:ōąd-į”‰Ũė0jf(bfoĒoģ"á„0\9Ûâ<GELΚÃ#uÓoūâ‘ģï.™r'|ėþMVĀéЊïÝŧ†P á‘ĨD;L-ęhždØmr–D%=õļēÆĩvĶBėÓ RPŋÎxŅi—‹Y„7H›Ãݰ“' #ím‘{!Á Ėdþڒ eŽxKõ0fėb/‚$Ÿ'ąĨņëÖQEĀhöŠG2zŊzA› „ĘAÉxÐŊŲDģä(ūĒKÔfĒW|Hļ€Žļ°uóÁōĢy!›Óï‘øōaN#€ĄķĘS Órš>°Ó§đæ?'ĒhAp]ąåę0m―`Isž­wûĩcW‡öę$čÂĸiMÞĪäšī–fßm„‹Ób/ĀWĸT./UÏÃäQŽY“w\Рôy:fĨ„Ķég6ý=Îuą'ÖČ_‘<ŧšTô1f―mR;Æ2īm3gŧƚĀÞ9ŧn’/Āõ‡8ސXNņ Ø\5MöРÉ6МúrJ‹ITčcðÃE?ŌûXzU iéĒū™žøēƒŧļ{Ũü=`ÄÍž:—_  ‰C(!đ1dâzs'+]†%ö)õ’í:ą<ŧpÏdîtÉđ4œ‹ĒUÉķ1öņš§šH˜øÛˆBu–oŪÉl öę>ïmų(x·ŽH|ėtPųžÃÆoS<þ=�Į°“öĄ\Ãnn•rĻVžnBčNrJGÓJhSîÂŪĻŦč7Ģ<„Įģį|ËÆĩU·žm !QŋûƒSŽ‚fØFï…wŅ―žw%ō ßLTü9âÞ0-R!‡‘―ó*4ĸé/.([rÔÐ_.ą·æöUi8“BÁ!Äā2ߌ˜—TĢņėá €ëÏzęÜģÁ5öü7 { Ģ&Ž:ņĘi=Ð. 0ô3™þŊũÓ6p6VfÂĐŦsU[vyÔþ[ˆĀĀõ\Ũ2‚é°/WWčīŲöwá\Õû,ĄÝycuxöUï”>ĐIîüKëĮíø3hąâ§•æ-°Ûeâ ËĐ|ÔG…€bÞÕŨ —°BZ°ÏÕ·FãČÐë ÄŠKsč ÖĢÖïn[%ė=Ÿ å2]˂čBXErö6Ó6ĩ;éæ=ļ.DģӞ)B~ ÅlęØē“yÐäUfÕeôå ;Ģ^nĮËTÁ8œ]īf⌠Ō&ũ— fķØg$]F�™ŽŽ4nøÏcŅ–áš( —Ë2ž:ķŸūŨéÐŒÄ1™ōT•ýŒAnëIˆĘĸx=7îĶ͋œü?-ĢOdĀ hýŋ\tŸ‡š.E:Åā ŋëŨĨL9—'ˆb*IŽĢ3ļÅķIÄ0ˆ+R06„§‚―sc —ŅŧRƒ ÏX1fģŸÕ)ŊÚx’RķįžÝLRaIų­ZĶĐōiûtx�đbošļ+&ËíĘÓdHXGqŒįųōV‘}ķTįúŠļô^Š˜f[!Éī‘Wqáá yŲUvļ5ī!āī-–åžņfÁŅŅ@™hó=h7+ĖeޕH;7sၠûqbō=Ŧž ĨļC% šV^Įáëų‡ģ„?[pņjB’:’�ҧ|ŸWˆW°Q7úfí0�`vP(ÚŽą"\̘â…CØŽ‡p™—ÉõS„ÚQ˜āŅÝ͍đ Üâ$úũõ‘PywšŲõŲÃĐûŒs Ņ믖:Bæn6'd™þ=đAjÃæXú:” ĐqjĮÜ,ōäĻEŊYĒ�VÍEX#,„ÎŅ�d‹Á2\Ȍ‘o‘—o~ ž‡XO.ÞvëšW+ÆAW‹ÁūÃ(„Ú6ČĐAĄ^xîHxýōΉËGäŧVxÝæd|icŊíP9€žM/ŦĸbLQS“öŸ5Líįá:Bő:ÕðyÂÖ!WĪ”…xŅX}’âÕĪĮVƒQ˜$ŠīÜX+âģ1,6ŋAo=?ÜDææūã8E?Ģ^„kfĶsí!6ã!ãIĘxÖũf’„V0/<$éÂ9J዁Hø‰Á ŽNÁð՜åÖķák ýų4ĩ•žį3Ä=UÐKÔÓÎ.Uâ5?€cs ĮĮ1Ķ|ūaӑj@:ļ_w™$ā“ķęĪ_/ĩÃúz|ÞĶs:…3pd‘<–9ÜŌŧVN^ũĩŊ}aŽœp_[>Z”ü=@w7™ XĖįėphÓ wIÞ:āɍøÎúŋ”ķ]ĶüÏŦ2Įķóð'ļdgTYgŽøäWðÅi 8f Ąu-Ī’ŊáJN݇\ū”VdØ|JBšll‡ _–aš#ÛgŊá7'·ä9+Lôģy―+�•[>ĖOɐq/Üâ ßdÏĖþ>0LÞžļ3éŅÉįČn2›Å83|;nuđĐïņŽÚđ™CŒ UkÅpüš:?fˆQ úZ品g*ZcŽ{ŠįKėHΊ›~Šũó?ߖÎÓėyĩ }l72Hߍ—ņ~s}Ũkö-ĖuüȃđLڷΏlëpa ËÃą$ūEĨLQAģĢËĻcôÅâėÓĮ?Ÿs§―BčŪ “dýPkˆd—Ö-WĢXãƒī—IXwœj…€{oϘ b ŠŦĪøŪÃRú…œîČūã2‚î'Ĩ‚_ėáꛅRúģÍFØ?TĮGïwl†ĄÅk9Ÿæ|rfÛ5J2͘éïŦŦ‘J:Íd{­UĻŨ-ŦB7ļŽœAL&|quÃ<{ ą‹\XqûņU0Ē*ū œė?7éė+ē$Ū1z›m6ՋL?ó#CČÃâáïe\1 0ļāŒÅŽqË)M\3hU ōcËīÃļLóPnvsŽį;” ‹ūœhNä'ŽóE°d“ĖÏE‹ūŋxHqB#<ëÁ‡ō΄ū<Pfoģ—ó~, ũŦ·ÎôŊ@ä ãnä€ķ`};Y�óðŲĪŽ)O;Æ]'ŪïķÍū#ōV‹82Ėįr;ÓO­vÉĮh\œglÔ7?.X?‰ũ“ˆ™Å6 =}Œ [ë Q$F&ĩ™TdFŅūó„Õœ_•D(8 âoC€ĨVÅ<Ŋu+ÂģząÎ{ļ:ŋmd38$Œƒeōf,Û)Ó°Ým Kū~ui{Oæōzmāā‡ãqĒÝō°Ōb‚šŲ^üŠãâáÆ·kä·ŋ·dOaÁˆėķ~!įg0ļķäĻŽAĒ? Ó23*ųč3_+Ž˜>l.$ÂĸZNBfdÕdå##øI§ïéāq·.�ĸOÝÎeÔvđû-NfP.DÕ™KÆ‹ o#ÃVæa{âķ4Ôs+3B"Ë/pJą=ģšc>‚ŸÚˆĸ3nD°"ÆåžGVĀŊ$Úr.ÉËNXý.“9mŧŠĄiÄĩÉ(`ĀÉËņÁŨyÚķ5ÖÁáCõHþ“N8ŧ†ā$=ų˜Óéį/P1]›‘`}ĶâjŅUJ&ܔwŽĐ›ŧ.ڙ6 āí^ŦzãCĨ-õ‹úÂ{Jķ1~Ÿn„ĀšV XŸ?yšß Ž]ÉiӀęŅFkīXAÚ煁e&qĨÔŪĀ SzģžŠ‚Äąk,N;"ļĨkĒð4>w=Ž$Đ}˜Ũ™ŧÆmŪōÛˆæ€ãtLĐ>j‡Xó$ĕ~�^Ŋæ2ŒĐĄŅmʏDa…xÂqsÉ'�:ßsEÁӑyĮ9–|@―ĨGøú#-H— 9c‰Ø13ãÆK’ÞŽ‚Ŋ+En_üŌl ýÕ! GBF՜ŽâÓLnX‘`xžB]F aāÁK–Ý#bUOĸxKlĖ:gŧ&ŠÅ–KM!ýrį š“Ķ"4ēųŨčvK„Ģëįėģü{ķЀuž$ö=J@GĮx~„}ŅCŌ‡ZÝØÁN{Ú éÛĨ‰Û'›4ĶkfĮŧ-s~Šøg—KGVÎ(Sf‚Ŧx”Šî†ĪŽCĀv!ļqfčáBþULĪŪߒ6ûû9NI)í Á[ TųåŒ9JSá9V—\’fęþ{ī6ØĖŧxûŠ%‹•gËSÁũ  ÎŅ5ŧ^—~_L-I‘xqė}âœļōĖ5øĻ9mĖÂûZņėhņ;\ėðÞļ(šv.Ĩ‰ÛWŊÝš°f[Š­icÎEPÐ>ŅēŽXc™E ōÛYÖvÜo?o]”RðVŠrþĪ܂p%­š?kV`[ņsô˜Ï5g•k‡Ļaž Ė~ĩŦ§ËR (vžsw-‘^š ƒEïĖĸCFG°ũŲ‹Ýē5C)DĀVđ Ø&N ĖrÅ/ĩ)å†Ąs[oģĸsÆhJũ æė,ŽƒßíÄŌųSŽFä!ɘ#í.„ĶūĖ5‡Đ{Ā$—ĮyxjÆ<t#“Óģ°Ú ‚ŽŌî*Ē LĸWip‚H†ņbuĶâC­Ïä|5ą‹ÁČDíÚe įbOóŋVųÚ^7ûŒo<T}‹^―  ÁxSž&fø`PĪÝC‹SVÖ3;đĘĮãï!Ŧæ’Ū?zSƒ‡�7ūž`Gp °―;rÞ}OTïâ‚â�KŸŅŠMTm{Lrô8BHÍZļFīaŧÝsmrēðē.„ïë킨.ēŅlŅØģåSōã*cóp‡ČCÐą/ !š_ø)5ĸ"BöĄ•đu[þôguTšVW�„ōõYl.IU‰,2]æŒÖåņ~ mķĸ ‚é%!dJ%1.k­<øxĒAĀgHĀ.‹ŨĒĮL$„ũīč 9đŌ6ŸŨ kJ<!ēÓDýZÄ;ą|mYd—NĀïŲ‚ôDÐp%[֛7yQ(í%ß ŧæũþOΐīQ5MzŌÄh\{Þá:RļŅŨ!Æ!UEQŸ5™hR ŪYb“aķŒÏBV/Å15ÓÏ~(ĸ;úĢ|T]ĖéâHmúsĄGéŸxȘ›ˆÝVÁaۉĄĻLņSrO _f‘ÁČ%pP‘t˜i8 É@åĸ3Ũ]ŋ­Fiũ%œ‡øi˓ĨéI—™ífŒá•vĶÚe2œN"ŋÂH‘E8rïKvđm>Č%%|å“_{B°DŒče( `­d štnŠũÜ­üĮė™—+čˆ 0đö\2cm§e›4°@’ęzŅŧþŲP–kæØ^–šPópHôeLÉ>Ĩ7‘œØbĻ�âiu†>ā–m9îâãođEb2؃ķ.oLV§†ĻüÐĸz;;),éį>@“ Š˜kf,ššé.ĸ:—}āËJa'Ü`ž Ÿ<ōG RĪü;Ā:Z*LęËîÜWĖRĸ~ũ„ĒU8ÜΧĀH?;ž s—·VaîžēËxĸ`f<Qd•ļđiŸ8cÛ]UðBĸoZbō—ݜĀžČ +“6oŸŪÄfÄJ)Z=ĻNūŸĄ€šCĐi1Ũī:?Ą##đSŽHûŦq'Ë węë°*>éGé1ļF6Ĩ'Ó.íŸĒŠ+ZxÖ―[†Î9ļOZLŲ’ŠŠŠŠŽmKĶeŅ“[í.BxP=Õ)â1>ŨK8Ģđ‡.OHŪsßÓï:Ųõyģicî―*tåqDĻr"<`íTĩpāˆd,ËĒĪÅĀHųcČįë•ÏēóĒToüeŅÉmđ2!É2GĄŸ!y“ĩæZD&æÉĩ/6qž ^\jhõÁįë$ˆō+QĄmåôLQ–™œđįŌþ{…ÃÖíuēUœÚzģ1ĐÕ"@‚)Rߎo"Éd―\õÁ,ýė―Tôsąã`ĻĖ~Ïfúą;^‘ƒŨïĸn’ĘKĘN4Øņ}ũ&€—wôj6ĢÐĸO”ĐÛi�ãGŅĘ þ- mԊĢįŅI !Ũ†ÝuFTŦÃ+{Šč,ŊýVÃãėãúšŽ†gōäŊļïžŋ ÍP2―;ūš§šhz*+|ųŨmô�rXDčÃiũ"Ęð:Uė2Ëý“ĢKēđåÜ|ļų ĶØŒY#nLä‡ÍvCĻĢ ÖQÄÄ2ÔsFī­+úĸEķŸV™ ŸÓPw ú~āt˜™ÍíÉïwýŲäēļ–-L*V:`hĩÅPÏ{ÜĀ3^fĢ;įĪtÕi>ŠØĨtP“Ų; (ÎēęÝÓ7ļž‘žôV.ÜœmõRŽ™čãĸtËMomõ`ĶŪã/ŽÞé2uģĄ;<D9VŅ_'î°C ã(ó!J-OpauËĸĻOąJC ŠÃķĮ.ŧC ü `ËôÕĩįģ‰ķžņ™"ÍzaĢL™zčî jŸ™ÔNCgma[~yÐøAŦ ‰‡;T7’ŲUæEFu ~RÎōÝ 3=“ƒV·>šŲ`ôHД‹ŨŸtW”kĪW0eÐXĶU"ßĢážņā‹|*ēYŌÓÜÖhrņ!OåĀ°jŋA+ÆkŅíÍKÏ+cvÍjWŸƒĒéą\6rĖÖ(ąpŦëÔIÓ<˘ōžĩuūríŅĩ”ũQ˜pĶbŋąK.6x-đ1wA|ïtÜöIāŽóĮxëЏ3ˆõđˆïÕJ_UŒ&}6ŊgũāsČ ›ÔĮ4uÓ8ęā!‹ĖĀøa4EīœÛИWÜÖ^Š„âÝV_KNĪŋšĢwGcBBwöU‰)r15ņcÅ,W2Ÿ ąVę@–՟žíĨüð-ãHD5Āīkú“3f"> *ĘÔQœYýÖ ŋņØ|ʞķ>›,5ûšđííæGÝ(ŋšúŽē9ž–7P 5đ=wfLwåQ ÚúÍäĪK9|GÖwU3bŅŌĶ3JOiüPŋ€øīËiĄÁôLkVÞI˜þX‡T`Hŋïũ”Ė4íčqÄYyڌX­ðávþŽy 6Б“ŸcÜžA’č+Y*ĨŸŦ?õžH_ĀúU―ųĸQÉš‡RĮoÜHęĸ=€\y=gŌ<ņøðbô?sޜĒr NĄez.ĸBy1zŊØNx'Āó_B5‚·Ī9ã>îFýē)ôũÍLJï'Éo‚Uþ;Ųß^įvm•0ÑjVÛyŨë�zBH“ÝEgØÔlŦāîīÓŠ’O+”J&ĶõĸCëž’CũíqČÐwÕ3ÍCĩũ†oj;ã{šũŧÉ8UƚAöįū{ÛƒÝÜ͘+{ĩ>r~ôNéõCÏy'NsRáó…įEĄnŒŲ‘W*âÚXđē‚üeŽÞYyÓ1ÆBđDÆŽ]„/­s u…!Žųt&Ūu!P"Ro`-øÎ™S·Đ1Ĩ8c™ļGuä·cėĪád1Ü<bwþ›ÝũÝŸŒßéõĨ=O7ô\Žð‰‹û\BúGgČúÚ@1ŧÓōŦN:Ē_™Fð ÍũÜŠÂ#āƒč͙îŸ!WGUö–qĩ™ôQŨ#Ø<-ĻzhÍ#YŽęÜätŸ‹§EtwˆGÆFģՃķŽB<ØD7øŨÕ*xƒrū'.PuÞ嚟ÕŅāąwÉMļ…˜ũđPųv$ŠŠŠ7Åy ūasŠĩ—ŽÜž‰öĄÖÛxČSí­[Įo­-ߔ>ĖOŦzÎ’ \,G^ÃĪt,ó–Áâ^Â5 ßL§4Ũ"CęÓ!‚ęhÖφâË}ïŧgĘ+ ‰ąpŸņŒâßąC™P%)Ÿ LGxÃ(^ˆ”Į2}ŧgĪŦ"u |ƒÔč<ˆ„­įHĄnKäŽhģ™Ļ!ßd„‹B {•āĮëm؟āÃíô؇ÛëÃÓð]@ģrôXЕ)CXkãšĸ8n`ځ&Q_oįķ$Ąïė‹AwJŽAåĸ ŊQhxĩfXĢ_Ũöö92f+ār‡&‘ÄXČmĪ ķjL#ŲJÂĶËUýâĐ ĒŊœÜí‘ÜØŒQ;–ÉĖ\"T YéŦ›Eíę_F}€ü^ÕëĖŊŠæƒH„Ÿ?oIƒˆ8V#ã)žZ„ĻÄĸDŸW•āųU nĸ_Đär8ĩ`†Öüū*nļPR›ž}ZbHXņāU[ ņ…Ÿ›=lžŨ‚’–{›ý‘^bœ\uíKÔÔÜäĒ–Ė>Hßáãęö,eŲžÚ#ŦÅ 6ĨÃæ…ôą4,6]›’čņLOå1[…0šNNSM Ą9-… $ŊN;`†;AsZÝŲ­@úS!^l}―^þûýĢðaËĸC% FļGÉž Î9þi}bįÂÔ †jĸ9vŦ―žÆfķ”p܉r Áųæũ›ę­ģĶô> ęL9ájkߚƒœïðėäÏ·Ē•MĐã‰XÄũ― ޜ%žÏŦėMC ™i}Ë ,—þŽhÄÍn/ ~“žī+6@€$·‚’yl'Cø*Ūk}UøÏïĨį|GԇķGØ:&ņÍ·†3€‡’Õœßŧ—ÉŪži{Ւãóō―aĘüžHŧœdÔČõ[Mį€uŠęÏV'ÝũŦ5ûJÐϊ Áþ2 Ëßd(šÖ—pįZļPĖ„ýS4Œ9, a&ņ‰ÖžĐų€ĐW98ŸŦ›wÃŧýģömrĐ_Uý=cÎ ėŦˆĮPčpö(\âõ!Ô|k/1Č>Xíõ=ķðL 4Ĩ ČĖyKÜj6\Žĩ—Ïloą›Fč <DãPß }+Å6}°ŽpWm™ČiãēMJG</…ÉXf æÄAÏ>—(z ˆ‘ÚÉÄęNāPP†!&@ÛŊØÂ_øU?WđģûÞīøGBųÞ―ŌöŽĒNIi0ī 2šÚÛlûŠŨŧ·KSDëÂĒäŊŪF—ŪÆûūiė’Jœ+iō}{%’.›j?ðo‰‹ŠAãĘVæÆįŽĻ.ïTUë9ÃÅöēŅ‚~6Û8åŲgŲ–;oũw};ļ2ûÎî|!ĐĐĢhvĸkx2ėžFŸÏĐã3þ3 úr ŸÂþ3Ĩ„ĄģÍÐ6ہw‘9w_Šv„œ@�ĄQpŋņL2…†ÛfÛ=ÓšēĀbVãßdô%xōl W,ŠÂ―ājk•1mF—”XŊx–önDÐT‚Bü@^+ĢÅãÃÂqĮ3”æļĒŊĩĪĖØúíÁÔ�ėóšė“"ZÖ§QE„ĸ| 0[@ī�4K}Ï!õÉ 6‰LŒŠMkËUIWZLāÏýūŌUðë7íŦTôJŨ&éĪ•—@|Wúf°điÁH­†Ę·�΁SŽģ‚›ý8ÖjˆžÃæŪ^ Hqw.ˊhNāõžŦ, Ē\9rcuÛx/ĩŨ° Ēō[)GĶ/FeAūéūúæå'ūí8Ō9üéÐĢüŊ1ÖŽ1•ïÆą›ĸJęÚ/ÕýyBaĘð%–ÏâKŠ(ð‹Ú”ŽtŊĸ]@ÖĀĄĘÕū.ä4þ˜›ËiZ5ÂgîQō ›ÎVîUčm͍:ė@Y\kr‡_Éf p2S.­øf3-Ų�€9ú›NŦÁūãčČcøĩ҈ylšäËh‰5V3G0ĸS{ĐĖŨōĮ§Ķ[…-‚í MÆáχqâĘ ķƒZ-Ïe&†Tbé‰7”wáŒÃõ:<<ũ\*―#BŨN7ĄjĪîíĩyN‹“ƒ3>‹ö> <ląþU Ÿý.ĩũēg.Yk›*9ĸ Íj›š‘ė„Ė—Ės} åÅÆŪÜû žUē–âĄ3_ĩÉĘÜķųÆxč§k7žģý§x <<ūÉÝį·Ã$ŸĀÖ#m·—ÆpSūŲ�Ĩ!Đï4ØTҜÝMõQPŒīÜķÚÞ$G™ĄØ} V~„ĻŋIŒNĮqKjgbJ§ĢÎĶð)›Ļžå특å‚ōč~pXN0XĄ+ÔāÕŌM„ÅWώūÕ_;xYŠ|ycīüšr>Aį^9ô^ÏEĶ�ĩ ?·'iOBXNHbyË6IfōÛĀ“å—þÆþļ 2M$vŧKĮL}Üĩū̧zWĸJý“5’t'Ÿ1}‹Róũ—a.y”ŌŠ=Iˆx#ŠéōlĄSvvdŅ/Ô=†'ŊpįĮž€š‹ÓÄÜÓn Âr–Č8Ž{5ðēž:ŸN�'ĮÛ5‘ðCŒþ Sr8?œq–”§Â‰PWá>­Đ†fCöŅHĪÂqýxÖ4•íÛsL@s ū_ÏÁjv46]įˆi>}Õ―l4mĪŋēļKÖI”Ó# ˆĪ> RR\í)Aō„p’ÏG‹žíūđ4LõũĪ“•bŅÓHŠäþŠ+đOŅCˆ°œŦ1ÏOÄ-če„MTäúh;P;D\ä>ŽĐÉęĄ8žÐ'HXŲ醩,õņ·($ðO%Ũs<―8ãėÄÆNæ ÐēąŽ[ĪY“W‘^ĮĪØę7T;@ÏtņeŠí"ģÛíÆ9փAP4―œ!ŋœzˆZŊüEGJHôïjw؄…Æ `ŧŦ―�Þ隆‘þéĖ!wÆ‚qÛú#äΗÄĪq‘7§‹6ÏØþûHeԁļ‚k”›Zn›ĮåÁEÜxË+ÆÂ^ÏŨ4ƒ§ė”ŒyPU#‡ÍŦyCZsßÚZ^Ū8qdMä |îHÄéŠ Öíą…ę—zģü'JĩĖRúâíž ‘Î]˜NGäŧ›úãđJĪ69|íāCäĀs;z[‡ĻbÔ| 9Ït(•ĐūŨ]‘ļlũÉÁCzŌô<dÚ>­…Žöˆ „;ÞZÝ.HDč'EīÖtŊƒwüyøÍ˜;å. ūPYŠ:ŽawžÁ Ë4)GÄhM˜Đ⧄·ė/― ĶÍe7,þq@7VrÜÓ&yĶD7ÂE;ļw’ŠÔŽx,eÖ} ·&*óšp„>aã‰kÛŦ?0&‚’hj 8Škč•ëlʈ†‘39 ĸ€e HĖY–`ēþÎĘÄ( Š<Ô#Ō‚ãë’ïāō#‡Ü§æųoÉ>>ģŧŒŽdHčšW’ØŦŔ''mp­S˜Đŧįĸ€:ÓŠHĐ;Iĸ3pbāoŦ ļ"$ū4dâī7äÍ9\ޚ4…AvŅ–aÛ%ØČ"ĐóTŧI&1$Uh Ō'Ą:íúNX]"sÕÚô']d-uõ”CeM%ë4Z›PÎFųwĩV&{Ql]†hFãuũ·Ģŋ?a腁˜-Ōlɚ^ŠRgWeúYé―Î{G"‚aņcþŦoÄß_ëÁč&āNųõŒ;9ÍŋúˆĻĪŲÆÔPnN–1æW€]nÄ]ïõY”™2;þ4âŋė;k›RīķÁc€ŠékŨIǃG=$î…QĮ0ō'aŧũ……ŲĄ)Ų n?&Žð\ß―ÕžōŪ•Ŧzœŋ—Jqám$Q'āCī ÓļĨí[ÓôĀīo UĨlŒU„m†jĶAÖTyf›ęrxþÓVýáß@ĮWŽöД2:"éÔðŽ€î‘ŨþóYÚ"Uck)#Ãî?íūtÚžh‡ûöØd7þĸ#8ÚņŲ^-Õ8ÓD ĖCcF9 Ûi$äŦƒv:QØÓŌ*0pū{ˆ2˜ŽuR-X2.Q�0oúÂåŠ2ŧūÁ4ÃÂDR=Cm+tÄëĄĶČ,/ģ/ÕnÏ3·="žøðõ�ą>Ėų›!{˜gCå{Ą§9þÜpÁˆ} ÃÛ ‹ înqÛęZ,;úä œOŽÏ;ŲŲX%Wí~š:‚G3%Fm$5ķL‡ā>{/ ĪĮZ+Š~LÝwÝĮéÂ*?ÝX (•š=…Yz>/_.™Û‹Oó–5VŌgk�ĢðŒqÁ­€›3cj’Žh[ <~îĢ":!ÉLVzU,éēúæėŲÏ+ ŋ•>ē(Į0QŦy~Ä"ÐôäīģJÜÖũ6†%ŠĩõÉŊŠŦú䉾ZĀښ=Ī~8‹–\ý˜|SMs•ØģsKbÜe9+—ķõ„“ؘⱕŊO•Œ BYԛܙ4ŦLuîĨÁæĄŦ>ĨŲ垐îf{ō.ĮAðWƒō―a<ųW)åirT•@KĢzÜ.CÉô7 Cüõ̇“ý‡ö5š =pę˜VOtœCĒšYQÞā{@?Ŧ„€ĘÄÖĮv„EŪ3,ljó:įâ“ŊaļK�Ŋ€+Μ"Öu֑™:ÅLS Q(hâ^†ĩ{đ§ đknŠÕÚĻUÍGXž^ŧ`)c'gĖj‹*•ßųÜāúŅ`+UY(îũkóüĻ�5jGRGûŋ°fzFčÝqNUŧhĄ“ÐS”—ŒōĀąá ėŅž°âëpŊōĐôxÛïÏ{GČ<ߐŲæĻü­ÞbŒ3I™Āŧåčđļ`ļãõâœ.:Į*īWÄðCúc"D+§ō ((Ļļ„„Ö ŨĶu^vņÜÂŊ'•š›ņ`Į),z\2™šž§æCĢnyėåĪęú{_Tep·įēūÕ…” y”fäī{•·œæÏë+ĨŠSš1EŦrļuYÅë­ģØCŪ!k/�ŒdútcrTüŊ€2D~úuí|Į“4ÄįĨ ąĒĐŧ ĄÔũâ!8ķÂ`:7 þē·@ˆęek’SÉ ˜áŒÜQÍŋ·‰`ÕöÔÜpdĮÖuĀÎ °ĩÍjŸƒâŽP4 ‰ĻéÍnĮðDvóŽ/*’m_ÍMq­%sU2°ú(ļ?Ē0ĐĶf=~ãæŨ•WD$HBųĮĄ)ˆaP85-Ų•@ÔqįĀmģTŠþï�š§tvĘuŪüĮ…ð6~9|ŧ“Đrģæ&ÔAũĪ|ŠģņɅáĀÉÉS$ Á†HÁ .ā†ĄK=…æžwP;Ũ&Í! (o 5š@ũ&ļÃŧ6`ÁÄgåĮë‚KŌ‰įĮáŌŽ~'GįÐȧ%ҁįܐ’Ï҇č_ôįņŅ·ë#îšĒ‘ý2[_™éMō-å\ÉG:ó·ĸeqŠ6°ČzŌœÆÔĐ6æā/.6ˆî QzíÉ2KHÁ{åēf@œ’Â-äÐŪxË’Î„Ū˜ģgrœņeÎŅÁãnvP?áåŽe­ Sûšũ•S|ÅMđâETnQÁņ3‰ĮiãFjÂS`ĖEaE 4Rą%[4É&\äÞ―VĪ ˜ —äXlO?ķ‰v-QŋÂõ›/[~ÜÎԷݝ ü� ļķ J:å Đ4Ó·đáņųðPlĀãs�nŒð …ã헏NęīĐA`PXŒ $ąÞ “ņ­vĖ"OF+ý%’LŽ“‚k Į ÂčđŽkÁsĩũþĐė Đį;ĩßhėR­:Dd^ς86ƒ‰Ũ*ČóY+iĖxėÃ?˜3JgƒLBh–ïïa{Ī”xN'xô41ŽÉ7ï‰Ũņē˜™Ĩą 7Ļ)îœ$!ŠĒdČ;AžŲęþž!­€,!aC>Â"kĪ3ēohŽšïÝŠКŨķ0 1t*e2ĮÉáŋīz[PęŒGëŨÁŊNMãųåāÍų‡Âä.A_B”ÖÝ`ÛfX „bÓčņO%7`i�+ëÄīĄÍa5ýÞWu›ŧāöŪځīý\9Ŋô!2QO”gŊ@ū_ųQßÄûúH‘-”jšÛœ;اąGxĸH%5ąîū”H[•(âvĐh§P+ėåĐHt”MiY0—ĻCRņ ĄGqÍŪá;UŠóÚ~,nØėŸxėIwĒŪš Ĩ―hX)e)ÁBŊéĀĘi&,úޜoåü*õÜ+,0bļ–@ƒĄ2ģ“6HیuŪEę2cc,C;õÕRĻcĘFɓ`Æ$*捷T€ĩ'ÉäÅ~‚æÐ:ÛÚb]hųĄ™Ö„æ…ðĮģ.U§„)ŨŪpƗŠĪĸ‚ōfƒ b2VáPģéļ—kNóĀqņŊėÛŊÓŋïZgˆ58ĐßčBļ$XĶæ(ŽĖzPqQÉØE6-ˆÜ(q“Š/›™Že/|kdŒå2ČcԆ:7Ō<ÓĪ@Ué’Ĩšq”E6ÝæW�r ,o2eWGÞ=q]ÖFŽui!Ëą/ÔAĶRÆÕ_žÁW ļâ‚Í€ĨRØ|Octbßë›Ėéņ  Â0Š­äĨŠÁÁÔËīĮ§ÃïÝ8Â3ŲÂ_Q'X.…AĶiû‰ "72lÁ §(Ú XU5#éÞ'FĢcžgœQ›ËĘ?ē90þVtÖŠđīĶúá?g‹BHūÜÖΟ ĮŸY} `7H=…›J{ÝāïyViXB ōþ-:áԋ˜+l‚ęųNĒT…XOāB‚ĒĢ~ŋĮbëÆ”lޏsĐ{T<_úkŪĶĀ„ŦŽü…æėSĀ+ŧu.7ŊóIhšę4ĶÖŊĄ þz.A|Ļ0ˆE9™DÉļ;Ū+ØYŽM e&Lž$hÍýĖþ>†8zÕAe·ô$ÂŊ5Sāëį…ŠĨŊÃrâhúwÂ`2 Tv—§s‘þ^Œ|{{Ž›Îó^GŦšœ+žLnūū“ãcŠŅ~“SAĮÜïĖtfævąôŽFqxøŲ2€Ú?ûĨӞ�CŦ4ĀÖv/(Â%óa}?ĨĐĸ Pđkp+q&Ŋ<Î 9ŠŽdb€Â@šædP<T}֖3+jó$ŲaË~-OpÕāpļKYJ’þm@8°ĻãĐÃ@‡―tQ?ęšül(ŠáöÕüœ q{„4ßG,ā}(Á*!ņŪQ‰UöH&†P[6r/œ”`tfĪ„ô?GˆĻŒđJđ„ÁÔOŽÚ)‘Ü™v;‡tūua°į™Ī0aOýpŅpņ$u˜Ž’t)†7h "h‚V•ŸîViÚ ā,(ĪwÆĄđĪjųĮ ČÏĸAeĸ_Rōœ?H_PŽqkÐü`Žï9ÞĒjßg%ĄĮëÂ~ķ4E‚ð ðß?ë•ĖÚŠŦ -E“‹ĸBö›yģ~0ŠÃøôļ{ójŌĄ.*ˊÜŪŅÚĀkpcšU>ģZwM-ŪZjÍ/_‚›Ōæ!§•‹8: ŌæÔgG(Ģ’i LĮddWlðŧŠóxwTŅíũX4á'mjÔ·ŋųd'FxęܕËæä-ôS`ëŅžUÕ3~ãøtg}ūÛÝÅöú”ãøvü=Gŋ‡xwÛęAážũÛéü;Gþ @ō4â[x7!É"Ĩ�ãJx  K‹æVbš4ØĖHŊîlmxÃh „cō#ÉlntóMh8!@‚įŲŋh*2ëYûÅxÁAĩ(sVWlmôV6ÄšzúKM†ų"`Hq;\W Įņ&6vMÆyFYŒÖl§?]^Đ�É!øÝo ŌĒ3·h&3}.đ*ö“ZS™CÐ .*'oEĀ―•žoīÂDœ2“Ûs€Ą^DÕĢđßuú€â=áŋJÛR‰ZdåŦĀč-mÐÖá7ŠājÅwđĸ"$Ĩƒø ԈýÖ1h<Æqv5°–t\^Ā•FūM6R…Œĸ>"dŲŋ\*‰ēĒN…[퇐ŋþá�áëM†@ÐėH]jpeðÔ·„2ÓNxĮé.Į(čqë Éõ7ĸzĨϚUģŧöīŊK?Ŧ*ĸX‘A”8JÞ'6}ð/ ^ëïvŪ?ĐAˆŪ‰bBņ_Âi Z˜ŠÔTŦ/�.NârĢYtÓ\›Å�íôv.•ˆōšQZ(kWðÛŲ<+>pt]AlLtðĮ%�ÞT=„=oSi3Ŋąîå’öY;<Þõ!?Š?EáNĶ.­ÐSm@MFC*˜&ÝąjĘĩ(É †å8#>ŅÃMö15*mãæ A ŋÆÚXžŅfýŦ“kc CŠ ―áoäøĐ d•Ė^æĄA”ŽôKØÜÃ@Íį8ã�+Ņ@Đ>„W7ŁøĪ4ômĐæPĄšr8OJã@Λ”T[ šĢŦ-bÏÃf°ĖėØZB2Æ3.(<ũ=ÝŠFÝuÛĻA ,íH?ģõ’tĪÍW/‰Hs;ĩā0Aõ>ōéŌęØ4%1Įåßė‡U; ĒOÂIÜÃGYv§ã<z;wø ­§ĢŒG ÉJá_šë^þļKÐY‰JzßĶ1ûÄkĶ|PIeGԈüũi‹ĮøvæÍô #K7Ģđ lĶbJ ėúĮm;˜p,Hâcļķ%75QftÄæN š:ņ—2)`°ģ.@a'xųī"ÞŲĄĮ\ É­ƒTūČWû2Ö1�HNÏÅō%—2ū< ƒÛđ ̓ÅčŪ82Š XĖ~ŧ-1ÅŊ#`TPW{æÔû:1‹“Så]īsËn[%ĸÁČJĄîŗô€gŨšI+Xãh|úe;“/nár­šĪJ™~Q>%Ūá=ČŪãžęĨF ’P=HŨt æÏšú#“[ĘߜdHŒ‹ŊÎĻhĶ} ―Þ™!‚`ŽąâïÜčeD9œâã{STą?\ČP_ÔũøäöŪßFÏ6þŠ…ï•—æm˜Š}”žŋâÄÎóĩͰŸJ‰Gā€NWÅŌïSi)"ŪEũïė(†)&{ĩŽ“ ļĸnĒ$áXëJÔú°—\ácyž$ÔŌkÓã•Úû7ū2nÎïøžwlŸÎČ―*ézĨó&ąŒ8„2a2ĢúþÓš?Åøü&ĮĘ+œGMŲ%ü·žø#éb P8ģÝðýaĖ‚/Lg†‰{ą”đŋø·ĄeķŋGϟžLXrâ]ŠĐG@hꑩ_v_ôŌ—‚‹ÛEegņaûs|ßw’Ð8H†˜‹öLŦčŠ>ŒUl(ũËģ_ĐāMĪZ"ĪE 7™Ü,åu\}ø―úü―‚nČB §ČōķiŠƒ)˜N.7ĪŧZ/WY34ÄTNūMŪÕûÞj’z3'T3xŋ„JĐ)É TL1đNJK•Wūzû)4•0ąīā?t-ūš‡*>+ĢYšĢvÏŨÎËæ]—Ûä (q:ĸSĒH §ŋDŊ óĢhēģÐ-Ō‰-!œdË&Yęˆ1ąš5\ÓÉ{ĢË•”‰ČŪŌtÏåe^č\ęņįķPņïüԞôJüëM1Į ĸ4ôōKH’ˆmÉŲ—ÕDtîNŦūOŧóËįžŨŸĪ>‡L=į@QoqBí_YāL>ذ{srþc<ĸ[Įh:ÉûąIú?ŽfÚ#•ÐŽ\b‹›Âö —„b,‹ĩ$ī^Ž**ōâ‘įXq-NŽOÆÃadhPTŸČC1Ëō?Í0ná.Ō|œqtāČóx„&6.JŒ&ļuWŲ„ĒtÂCóŌŊš‡8/E Đ?.ó–ÔöK.éK{Jý};,‡‡Aƒ)‹yĶ7ŧjŌ†tĒŧ‚4|Ô^Ķ'ÏwĄî­ĐSNētXÝRŊeĮÉLņXnņ+/&*ÃïšßßëXũÃmFåCšĖš8v‘@j5 âëóŠEúÉú| ĄÏã‰$šbS—.8„ƒ@ükžž1Œícŧ!ôGóÓč94áƒŊz­GÓĨxÃόÞčEĩąþÖrZß5ô›Í’=ÝLé?þJ43Ëuûōn ÜpÝđÔ=Du‰úy†CÔ*z=°œtâÍ|d|(K`;fĻ€3ĩ|îi°Ü‚hkɌåŽöÆ[f(А]b€î:SÔĩQÜy!ĸzöžc\ yĨl‚bŧmōŨ§HģŒ ë;z(MĮ"“|‘Ą˜ˆÁšrĒ€ŋCŧ‘8&ÎyHw œä‰ĩûá@QFā7ļQœÛrÞPyPũē 0ð&YžkÕŲžBęķ(ä _Įä„ňõ>^―…ÕŅ‚Ý4ģå&Ū·S5-Œ‰;3ÜŲ1F‹Å§ÖމoWnë)°oøJ:‡QÞĨÁō"NÖÞĸ{Ã!fÂ- ŋP=ĸF·ÖÕÛūŨę Q ]ģd"^ė'Áčä2ĻĨ`‰!ŧŪõŊĐ4}ä;œā( ['ƒ%ZŊÛø(ÏCHȖ‡@Ō–,Õđ]äą� +‚Þ8sÅ!4žøĸyŌ>OÄZ9ÆÁœ]qZ2ú9æäZöE”ˆ0°dÆQ6œqųá*K `øëīΰ­JlëÃD „š6cZ‘ļŸŌÅąčąâŅOšu=e}H=@“G†› 8ŋ‡ˆ%*7Č{ÆÏčx ŲįRkeŧ4L‡]Ĩ@J[m•Œu€“æ,āØdVð`­F` {<ĀsõdārĀ/­‘ÂI r ی ŅÝÉķjô—ęļNþŊēmđĐo·ųÍU”ĩ–Û+I`ļEņöÏĻeôęų(AĨ.° uĻĨðD${ĢãŠ!؁šī#Ų„Öā3ĸ……āą=nĸtþ�mrÉönÍÐwN’ŠüėšF52î2 r“vˆÄūÞvP6ïWÞŦË?; žÎĨD;ŠÃbä\ÃģriN5gPŒaúc\:ðŌc―ŊĮÕļæĖaOvŲQНÖ`ÃīßßeĖŧuV†ÆePĩ=*Ã3iūúąā―õÃ3fZ AA_ÂŊDūuåŒï‹$-up*zÁ;ÏčĨۈféĢ--Y4p藮öheslÏü–†‘|{oŅĨ=Nm’9’:(`|Ü>ŠjÔšQÍī|q Ն4XÂÁó k"þhpw)Ņ”Č㚍vĩįå5CGũģ,óQãBŋŅn[S„đ_Ũ‚!qū>•†Ý[=ņ|Ĩī (pí@Ēøý"=j{dnâėŠx!ÐĢc ”(.ŽÏŌŪ� mũHĻŧ$šŲ5@q2ÅĄ”|cŠŪ9vdˆb0€5å2'ČzÉvÏáï>xĄ]ķÎ,mGˆÆ­Ízœ$ßP‚Âfjðæä(4jŽi‰+s3ƒÕ[ĀŽČËÞSO―—4SŽYŒ™ē,ÔæøŸ>XØÍð:ЉķîÛãïxýûqÐį.Ӆ‹ü”ë–x~á{fŋQ^[ÕĪŌ֑ļ,'°đ… ―ŒDVœĀŠä('šņ=nĩÝßĘĸe9ŧÕ&ŽIŦÎ!ÁĮ4h˅b›°Â]þÂŅ 9ųÏ ãPč\F%B^Û|VU―üęܓžņīƒfþÖmŪÔ, v0$A ŸŒĨ“<ŨIœ:ïûŧŨ‘Óxņl�ŸõETS2T'ˆwCLJƒīiÜe5U‘ėë� €4;Ą%tŧeųŨæoņöaa[aBŦÎ ÂR”“ēŠ.#˜F SúOÁŨÛ aI"í ÞJãqčî/^vÄĶþ˜ņøÖÕÉVãæ…vĩ(ϧŨ,KĢ8\ŠēŪ.D5â`šüĄGīNęøĩÄǐ˜ī{Ž ąo–'ųâÅššĀT!€`hø(jĢ ‚:Ŧ/ÜŦ ė[ĸXo‹áKÚÛYąlõǧÛĖK"ŠaþžÓïĪŪýpp_ÄËnŠ#LĨĮ[ãšKUũü`ôČđŌ;ÅŽ ņGkYoûLsÃ$'áä ŲÛ1;;ŒMųĮīWĮ:Ä%ý/ c”…īļiĨág~7�ŲI3Üäĩ ôĄ$LŦÂˏœkaáRÁ―ĻČC A ļïLËÁGĘŪzēUģËK`Û_–­ÐX ÉR-óQÔ!gđ(ÜîVï·}cö*ýåV�žĄ„4đ\XŪëĮĢĨį"“q†þ';›É°ōNŅģŽÃ1õōSĸ\ÆĻ„žëO[!G ÖC|C6e[ˆW;‘§Ā YS"°ŧŋðZŲ7EƒÐyt ÏÜRĨk]ūĐ<­1dH8‡hĶć\ĻéqoQ4ČÛŪEV­„Fë|JšNŽh ÅRšŅfųŽ óG(<”2―äĻęD_æā+ACŽ'ŦĄđriiXpÄÞ͊bXØė·ÝWŽ—MÔ:ŋä’wo#Q`tû“ŒĩgÔļ*I^h§Ą)…ļð―/ kĀk8ÓR–üėOĖ$ÆšDîøþžĪT‹y‡ŅOĀ ÝžK2ũóõä8 ņĸ§GzM‡šœbŽ3YŠęĨÎŌBÚqgB―vo‰Ôŋ$ǃILïO·Ķ.aĘR+G˜pÎý%(,šĐlH+aĩåËðē €“9áĨšhxÄBB‡đžŒiýÖãqÝŨ―œqßĘOīđWãÝsčGûõūáók9°Í50ØŪ#%?™gëwežÚh~udī .âžúÎhEô ŊĪ(ũģhžŨˆ>HÎâ\Õ;)Ëxũ6aÝezZýņmúQrOĐ8ķ …5…ĩfÁ~ÕėąH†žķĮKÔašĖ.fsEöÛGÏöG9{üĐr5KMäBįĀÂ2~ŧ!ÃëE@'uē ü“ŠíxeĶ“ĻĖūø;LÆ6ųÜüąŊđ›'ûƒļļMTYCÕ(Ąu Zļ†š`€å—q#RVLÝSœz6?Íĸ/B%Ŋ‘ TJΈóHœøū†d·ĻþĐ_`ö7―˜OŨžåģøyÃtĘL6BŅ‚p2åętRÄß·/<™˜ä|ĻtúÃ#åÐi™6ōáįhÕ` œqˆFĨ^áiüĢõóo‹U9b9CČŠ’hTä„|‰ðäÓåZÝĢKˆŦÃ/+nŨá—áž0–øęVŪ Ümc―o3óÆÄ4xKj�Š9Ԇ"°ĶRÉ=ŅËÂrž‚œ‘Ô=Þ%”š‘đĐĀ�‹áî\õŪEŠÔ§ÅĻ[Dųĸy5ØþÃZĨĶū·ŪH‘°~›Žjb€Øōmß5ݘ075ģÐąÂëAzšþáčĸaûÜūéݎāŸĸ|o)qđ}rę§ßĸyâáq”ō%Ŧcæ üw8Úĸ^Ā9óĀŪ.qōbŠã6iø^)Óį­ģtzPŋŽņÜ#Ú}§§ŨâÖīÐߘûjc~vî‹ÓĘAŦENx��������� ·­‰þĪîÜ2ĄĸQtüuW eí–~x.ž]pŠ­ jā M�õ7#āâÄ ,đÖĄE„ pĐ·ĀGl?ĸ}ŪßāHÂP+1ÆÐh`– RŠ3’įo āSEøų~þބРŧëAāj ·§\Đģ7evÚþ:ˆHú8LN7ĸ{0HŒéQOÛ@ ĄYqyž[ŋÏQæ$ ŊOŸØēØĪ†›ŅÚ8edeĸrūߛ`?z(jļēIŠÏ BóÚ'ĸvžāĀĸôy†óMcš@―bÆĮAþqk‹méž&ĸypÓhÃđBą3t|M!6VwĻXŊx4rj6Đãĸ+%―įD­cNïk$ę3õ °ō?0/-æ�# •Ļhađ}uðf=§‚{jóCŪ―Š þôÂŠÍ œ‚ĸ‘Éew@ąsgHQŽ0ę6ĩFėÂØŠŠŠŠŠŠŠŠŠĶЈióī!ŸaąWC4ÐĐÏŪÄa iõT&ˆ·øåþqÄ8æ 6å9Ŧå&ÛmķÛmŦMpksp‘GąŌŋ-čåRņžŸ Ôý}ĖFBŽÏ,!ŒcÆ1ŒcÆ1sĪ% ­éŌČ=QpųóÄīûÃâ+;ž`,_fá3ņX>ģõ<áéLCW@:ĀMˉx,'ģū~ø’éč`COĐ –CŽåõ^…Ķt”ėeŠķ?iF†nZHxð-یØęį˜åöTtpĐ|åMÎö°ä$Øpœ€ČîqĄđŪ‰ ÏõĢņó‰ž`ĩą ëJ 8ëïÍÐŊÔE 8qrœĸyþ!…<_7"TO•NņžGOĸJ PŲQ“}N,öļäVT\^wïÓåÕægþ4Œg(HóÞĢĶ~2‘52ā­æ)t-ð ËáF‘ô·æhŊđ ĩęđ°ÎûĶ;øīŒ[€čfYÆÂYÓ9jybóg*-n-™°―š—F‹õ [õåýãŲ=’îWïį-•ôäü}B& ­Æ„ØŒÅPü qĘFÁcĶþ+ÓŦ;L†p›ĨPļ$“wJGĄxŠÔO{ŸF2đA­KĘ�œÓ“ß:k—TũúÜVlTt,Þ*HR­F7 Û “w4ĘrF[ōņƒß,pV/ÏhēRGâĢęOuĢKčÎÕŽuB8Wjápô4l‰>ũÐJķō5―‘ĶÞöóŪ‹n(ÕrDŅóōðrr„'þË/†Fĩ'õSÉI8Hč;ˆ›(^g­Č-†ÂQ­OFÉcīN!HAîGÄ:Dø*•Ļō^�ÉwcÜ'ƒ‘îbJŊî-kFī&P7Ø kæ~Ģ‚`óe,üÁĨÁ<+8‡(ēþ›đ=’ÏžíSaŊÜ4ŽĐđjĨøķCčŠßt1]ęP u­iJĩú[6æ-Ģ[g˜8”'‹}Ę3Þ·e@Iāņš“?œn,ÛĢŽƒKHĮTjG!bïŠÛU‚<Ū}þõĶ–šœJ&rŒz[ŒĢĈ ļŽäïŨŒũīC^ĀT’ß Ųƒ6ëÛŸfãæŊâMҜmĖī!DŲ�høî|‹Īýސŋjv=M:8OPŦ Ÿ‰ FĐõÆØGĨėëZõþŪmj.í7?dr–g9sN6ÕJÝaoföm^$ĩū­:ŌÔFwZčNŪPpÄę‚.šēõĨõ侓ÔZžųņ5‹ŸT;‡™k…j+ ëāũÖÉô§g eDÅÔLĖŨYų•=Š)úcHUĒEĐp]›fū\(HÅD‚åÅocKš'°bPü‰EÆĢ Þ\œUþWt@―ŸAŒéï^%*7ųIĮ|ô ŪũvC֜5ņž#–x4ö˜š Üm2īfģĀÞARŒðŠÃ Ié@žĒ3āi!Fï᭘ØÚí å#.§4ō7nhŽØQúžĪ#Ēņ„ýþĘ8ã‰.\ƒÂœŲ:°AžĨŠX끋 ô LK!IF4…ĒæCz€†3ԆŪ娋ÄvķŪDÚlޟ⊕@R)oĄLeŠ_ä\ūĸ�6 ž:G }dk>õî6'ÚeCq1ŠŠÁÚ éę$øUŽJŨ‚sņCuajâCBÆ{•�����Œs?ýĘē[rŽš|6ÛāIxå—gl:Ö šQhÞŊ4'ŸĒŦ^ÎĀZãsZ�ÖšŌ}%†Û[�€Byâ°1ų;ŦÏātéąÕÎÍTmSð jAj0ˆenÓ4ŊčäLðķĢhˆŦēýfET&ķí$Sž—á§@Ĩ?­ÏSJÍĐežĮŸ4`!BÖ|û _cGĖsó8­9°“}…O[UD2é"ˆ[š·É"ig{œõĨ%šFÄP؟;V1ŧBŨĩÞ�8„gûއQ/=_ęī$î{čę;c7âp Ō―ļ…•Û›Zbiu2ĄČĩoüķãe<f ĶađKî―™ˆÓW{wëëAܔƒïø(þtĨ„ōĘĩ‡`%Ü+oZBF„8Œvœ$MhĀ+_NQĒS;|QēBÃ+=‡Vk.eS~]=ŋO·:†0úŲņī\—Áf2x?ŽIļ þm”ąãRE‘2-2=–‡ð6õÍltņŨ�ĪšV4ŪgŦ·;"yuBCÓiEóD?Ií†ųž8MZÓTœPņ‡ķ"―ü;ë]ļsЕ}#Ąo0Ķ Räģ! —}Ôņ@‚1îĮ?8ŲМyã˜ĄZT; f!CÄėĻ*͝;líūÚcŋIÎL“‰Ā)įđķŠ<kēŧëIÖÚ\4Uv~!Ũ@€OŌō…æ7/Ņ„ÐÏKh­T–Ûv1ÕkŒą· ę^Įr‡‡[Ķ|į—Âs“zÔĖ[O�ģO‰ö$ŋĐŦm·A.ûĩn|”ĸz6ø‘#HxŨEĘ­ ˆÃßk‚˜íoqp·ŧ'ˆį–}Ę7Ėėæk–Š!Ëi.Ã~éPûþčĩŽj,pļ]qÖxTō1E’›<―Kmu-5/}6E<|Äý1æę~ÆđÜĀ]N‘ û4 �‚ą2=g ÜŽÂ‡ĐØįŊ}ä ~~ŧlÜíēūoģ\áŽvs ÔĮ8Š 'LŸ/6ÅĶ™KÕ@~â™uJaw“žúýë=�ëŋĸh[nšuß 0mōČ*ŊĸōÞÂ4oæXÜą$€É žŪ“JI ‚iÛdÐÅ-Ý'ž$a h4Õ�9“ä%(íĄfl؊ŠG Õ[ `ō„uĮüîqdyŦûîĘāð‚Þ.·wU†‚jęrāoâŋR =ĩ\­ëðáĮ€sqY@ÖûP%é/ŋÖųsĶŽ˜ĪĀ―Ŋ ÎŅnÔá É ĖĄ]ũĪ65ZÔÓ@(‡sžLäĪŠŋ‹ũ…‚øŽđĐÂæsjqúzc‡ÎãŧN…{n†QåĖj„7[āÁ'ïH5đ<šĸr36%ÜËAl-Čû™Q�OŸTeéēqœy,s€jõ`]ŒšÕJzDzޝnKüÁ]$†ō-Ma†nzđ!|�����Ėø•'e†ĖåÎē­ãV eÔŧÕf?ît ŅݧųuĄēš]w–ĸPh>·”ÞԙËÆon[‘;K ģŲ‰›Š5―JŊô—óˆŦ—ŽŨĢ,ģSÕߨ VŋŠŧs0ØĐ•Ŋc“á"‚]>0ïIĩmšÖš•aš[ķÉČÝ\4sW(HĘJ=^6zâļRy7§ąO’n6Čcþ#î·3&â`ˆ bØ}h‹”éúUžėcmļýsBũN0/4œðOSŲXL‹,þCgó<Ā­ï TÐ-nđ€Ž~‡ĸj 7Ę>'šCĐõŪ‡WapÝĀû=ðþˆóüÏv6ŪiiwąfL”jJIõÖæė“?Ŋ­fQž?)đL·lôÄŲ|…D9ÞĻĶoņs`š4Ļ͝2OŌŽ“ˇoÃûŪDðžø‚{"áKž,ҌĻfk}�<‰PÕžpsųŌxÂGcĄŌ|“ØĢ<ØxšwđŌj;ū™„ ]?EëžŊķ•”K‡Š,ūŸčėŠōïq# /•Ž:QÃŨn(Y "'@'Ã-%Ķĩ(m2.ŽéĪvÕnCq(·Ļ–:/·KâņDAæ]˜EäŽ!Q\õ[T9CĪ#yŧϧáUčÎۘĢ\‘i{ JūŪÅ]#ŽggNiųr}zĐ,vÉō vIrbįĻ Š/%Ų(a ôÉĨÞÆ†Ô%ԜČåžøD‚ŋi *ÏëYXŒ“ęū‘Ėče“?#V'vž [3‡õ`wbįÖv@ßį°[ô“u›B"†:ōü5įmĩ!EFÉZr2`ÆÏ �dv‚ŨLąRĨŒ*"ޙËMÄĨ&…NóÍū­=_5|ž!Đáîú‚:  :ą=‘˜äACœwl<ũÎC'?ˆÐ9‘;‚á0K&ûðæÍÐįhëÂ)‰ŊÉĢ'-û+ÚÍ1Ąf~ŦĐÃ@€7č"2Ä%[ĖLoūQÉŋxŠD;Ķã˜ą@Ūŋ… €I"īTÅb]x°Ļfč,`\|oąžÜiō-AI% Ɛ—]Ž—VÁ" .Ÿ1=üīßĨ›ÓHÎRó_fDČm=Tũ!æuËÆ7īŊ +öŽY„Ī8KCYŒ#ŧI’jÚ�EuhC ‰A ąE=ŋ‡—2cũšēØlĸO~v -eL\Ó7kQóÆxĖP4·Oå䄱 Jb <M+?-4i, ŸÝôĄ4r3DēKŽc\ %BåēũÜĶôĐOÁˆ*žMēįãŅTā}—Ú “ëĪ‘ŸÍî-ā)ÄīZAmÉ8øÃüØ'šIáūØl9šd'Ŧ>*ŦMT6RĘ|zą“‹øĪCÅÞ)+Gâœ!$Ī–Į˜Ää/åŌnßDāŽŪ@ L‡ Ó(4ŨīĻUb—VcXÃŧ—SPƒ<^ „\)oéņrbÞ5n8"bI=Bï‚fj§ó„zčö Օš‹ĢŅ6qš‘˜wS•ĶZĀr<yk&JlŧĐwJuíÂLa0gÚwPH;ä°üȒ™KĪÖL%šŨŠ9_û‹ĄîëPÂųBžÉđ ü�MîŧïĀÛÐŦ[ŅŽb`æđ$c6·l1ō‘^=üųčÞiðއAg™)ćã$T‹$ÚI'CC ÚäC­īÚ[Ŋ@ ,‡îåHŦ!Ŋošï2yiÜQwÚÍwŌ ëJP=Óøę6Ŋĩ-#ķÍŨÆąáƒ•”„Y�‹ĩ{^ā$€ïU+üŌАZØbÐ{G9î0øĘŋ—ųĒË鏧úPAēøqēūāņÝ0ϒķâkĸ(rÜīøZŒgāKåû{­ëBœOøRqaČŧ[žBðũĒ‹G0RÉáÚd~ÉĀ4âÄÜį5M đ:ųsūã0·jÜ>đj=,�<Š!a(ŦNHü=ŠŦ“z)ē‰ę`2ũiۍ| HáÖjjÆ2c1G:JŸų™ LïŊ@ũúCÚûU›iôbˆÕÁ.Ãļ‚{ÉÕ_UpĘ- ÎûM‡Ûɰ[â›E.Đw`bŽÐņÆQ6រ*ļz%>„‡C0ũGŪ&EFcĒã�–ylÉË`˜7Ÿ,‰-}.'AûmۃZŠ#"WčäŠ+8—).`ĪĶK{CōYûŒA”âĩ zDĸD=ŧÄĸi€ÎZMŊęķS-.Ab}-QŨåČ=&qŠ}/gåģwð(ę0p7ėQ'[āZ^–“ëĢ™9 &†nĮ\$…õĶ'ĻhØS!Ķ5D5YiáųÂŦ]Ý_ŌOū[/ƈë˜âAc0_mE/|Å<€þäi=%h‰ÛŌE―‚c\ŋĪļĘt\Î:dUēŅ4%[ĻŠÔšþ§Įƒ ­k c(Ų§ĸcōíü…zæPlŲ€:ũ;óC6H'\EĪĐōÅQžČ›Ü„.Č|–8ŲŊū Åüįrr”ĄĀ:ĸp4A;ÉÁĶ{oQ]]^;c§ė‹SŅķϟ{~ÜÄ%öø0 Âý―t8ÏmĒ&Š_mrËģ”ū0˜ĄÂÍÝIÁîĪʀ<{dŅĒū’^õÚį@lŠg/CâīėĀ5ƒô ‘ūT0Ė!Ŋxn‚5߉LydóB‡8ŧČ]ž@ĀÔ8PĒÏzýš›s…ĸ]ŠP·”ųg‘}+ÚŌys9ĶŅ1AĀSĩÍTOx[ŨŠb„ŽxŪÆņ?aâ’Ļqsš9ôe„aM.šĀ! " KÁG8ĶÞulsĸó ÓWÃ/nÖU;k‰T1õ"Œ˜―ī’N1pĀA—z߄Į™ôh5ÃĐû†ðPVB[î‹'.pŌËŦúqøúï_RŋŠÖĐVõ6jšLAýū9ÕĖ䌊ëæðÍe h—RŠ[ꁹoŲXqžĒþÝ$ÄĀī<üP`&0†äĄāö2Ĩ�Č—Ž*ē9õ5íÐ}kŠ.eÚ.?,mĀpģŠŽŸĩm ĩ}GÄ_ëãÞV㍎?3ŪĖûw~ö�ûņŲ‡70FÖk2B7É1ģ1™)+ēØâYI~ųŊ6 ģ–ĸ2§ˆØU}g<åí3PIĮíš‘3·Ø§O2ßR.H7ë‰Ōūð‹Č`Þ0Nč4!(ôrĪ@g›úÛ1ũå# ŽnöģėčyUÓ@ÂfAČ)TE-ÛzĢæ \”H z`øÛ‘4§ņbØŊ}ũ˜uyęĨsėų M}ø2ųéÄ+ ü• ÕŪoh:B―3€ # @ŧĮ|œ…>ôģr­A8ŒāZã~,Œ:Ķô“ß(ÛaXBŲÂr=‚ŋshOšúîluåXŋZ"˜M@ˆúŋ™[ ðcĐđ_uNž`―æŪó<_'ŊŠŽŪŨˆđēf_-#”M'ęĪWEô7ÄÁÛĄšŨ―­{ÐPYöß1ÍÖmt‹j,-čÝcÍ<Štö–I|īā4ũ`ēT&]PL†ŒČËX‡SëC@å+ņŪ'Vxm)3våaņ‹ģ—RŅYBą4ŸAóļf~ÔųŸ9‹ŲD%i˜îČmüŒÝÏÚ­6–fģcž‹žóŽõR%9Ë@Ÿã<1•Ïī{ *Pw2Ö7ŋĪm–-g>EóMƒ#f7ŏĄš�ÍĖéuĪƒ]U―‚“Ū)Rn7íķÖĐd5ā€Ę:Ïs·ý Šä#v§8€Ëɇ_+ŦlxĶtæČĢ’ ÉšūŽn†rŧNûTV=€ƒÉýÛð“ėĪĐš„óórxį§GÏîJxYL§ân/6ð†œŽąj„ķōîĐãÖ°2™É:cĘ.ėĘ#.Ž…žĀ~ū”CtxÝ\â‚ë ~īIŲíd ŊÚŦSÝYy&óÝŠņû#5‚a2ey5#ëØzFŦõ Įā‚—}ūĘÄ Ûn[ JbaYÖ°ú0ŦjĮŦ"" PčÁQ?°\urI°|đ3o‘ī­ˆ-oØSDW1<ũM2íá@U[dŽÕ+&ŠŨ<ü~TŅ.]Y.”PĸėĢ:‡ŧXˆĐl%~ųr'jč$>‰ŧ~Ąøí1šĄ(ŋ‚hsd‡åX Ã*ęi{eŧfˆJux&eąŌ>ūĐmëÃHüīuĐą†áģkpũÏą+1€g#cD kÖøú`ž<!z~Ē_”LũûҚ9ÇZx­àzj’ãzęūCĢÛ5ė›V>z#r―§9ķ)؇ĪyaÆļÝ0hšīFÖp›mIų/Ö\9…ļ‡Î›C RņŲðĨī"8\†Á ŽØþSlÆ4CVĄ)4ŪãX.V­đB1øbØËâģã XÔp懝Ýđū‰ųŊžÅ @hd­Č(,qmcĪ/Āï”Ņ·ŠMTAsÆČąEÓÍŋ&Ž}âÛqMƒĻ"4!ôÎĖl ˜Þ·Á•BĄ—ÞuuĮĐ]ÓĢ)Š:ĨRĪëú›Ā+?€WÉį&5Īĸ ††ŋdõ|ŸuŠ ÔDü!E%ðĀ:ÞBĐ;OĻj<õß'õel‚5ŅĨ1‡Ęę_ĄLmg”ã™qzgöEãī**`Û֒lķ–Âė"rφg’óJ~Äūō~mōŽîãÐē K öŒĒßïĒSY’ƒ|�xó“Ģ6Ë/IėtĶ>―áŒ/jĸĄWQW>9ŅôÁšoA~E‘2·ęЀÍĻīýæïų)1l^§ëc°íočĨŽ9^RφOũðãÁü‹Ą]sï mŅ5ðô―AŸ3Â~”ā†ÜLJŒ)}îÎCÂÎīlÍ-HģõēĘ"•ļIMYˆxmtĀąõ-’ š|ēxg]óxõĪÔÉFé―īŠ†)HĩÜHގt4GûKþ'æÕžéüí ąŽ}f―þ>nžJiĢ'Ï_zm–ßc.ĨX™ŅõâJ jōSķ4_ķï-m‰ÂÄÎH›§―(ĪČzfclz/iW’dųaĩS ‹T_Wa~ĀįXō‡KŲ°8ž–ęã #œ`åĮ˜tD §DF`wãS�Ĩ„ŋ0jûŸęy$ÖéÂũ%Xé㌠tŋŽĪ1jŸ.7ļPŸØD øß$44]ŸßlCD†;Ŧó3—Њڧ,‘―ýð蓍)u1ūþé'ŌĘfwfEé?Ûjč*„#­ZŽ}ūģŸČ…GįąMäļÔæŅ@― dú†vóœÂ0-6f*î^NïåĮŦÞæĘÞB+Čønî�ZÄz”ŋôěwĮŽ;ōŠÆI0?ĘŅ›iōX5Ðóv―_ÎK #·LÂÍ,Vq2zD}™Ķ ÁŒĄÚkčŅWųE‘a‰vmcMŒp'ōŽÚ.Z5ģíŪ·ý­þkˆ·3ĢJ�0�}Ž`āÎúÖïn‰˜í§\ŪĨŦįôō$)&ˆP{ŧaR>ĀqļŌnēpøJ)“ipY9úČ,ԀKķ9Đ'ũPýcmĢU—äWâ@ۆŊlē3Ë_MŅË>Æ?| !Ĩcú Oég„ÁԊŸ]Ō7`E1œÁĪæÓŠĒķ*ö w�@PÝįsz*Ũ&ï|U ó'‡f4R­ē‹Aufþģ‹Œ|jVĖLYųĶÆIUÏjŧįĀý­rŋöv{ۗ7$hýΎČQFĒ―'•â?‡€�1HL|OŌÁ`D˜•­Ö[TCņæŲ0æ†cq<0â‹ũj-?#œJ―?BĪþ^‰K3DĩiX1‹˞4Ũ0äÄÃÜÜyĪ7Í)§ōœAp; ĐCGD(8*ÔsĘ5ž‰éGÆFUûg†ŋ#Jkՙ*Ģā4’/ëK ؕpOgÝ/]Ęޛ‡Ųš8j™<ÅÐîI|ÐiųĮ$ē&ÓąW€:Đræm2ÐxÎ qŽķN ũņ°ģþņščO�V$I! ģ˜1’ßéØåĄÚE= “b“$ g9ïTĐ-]$Đŋ: |Á�QG5]Į'TąYåk2=úód ö°Díŧå”"|Į§šcŌŠÔđdu9Ðō[\›úb}�ˆ^‘āNŧH(@bÚ ĄÃßmþþL/ŋūš2°%­ŋÜĄâŨSpuĢĩ63íTīÍT%žčÖ"ĮžhvąÍĘĮ_aåDĐēĸn>LՂ!>mĢŊĮŧ*‰ c@­ļT B―,0Ãz­ĸ-ÞĘ:†žĘYĸ*WŠŠŪõïNhdy7Ņ~ōžĀ­ŽÍ9ž.-ý?qč XáŪ5cCÉ!r:%âÂ8õxYy žė#ŧïū#Ũ„Tė– /ģ‘ņÁD “i{'Ä{ęĢÓc„V`NŒæ&Ą‘I(ŋ$æĄÂĨ†2yų§7ÄLĄ9…=âXK^Ã55(h+ĸ Ų―öËūRKļÞ` 5‡Ë€1ÕGÚîÞrÍÕōSÐŌ@ÕojéŨø6ķ Ïw_ ŋF­`këŪ{XwŽŋÍē‰néčĒzû3ĘpÚĄģGĀgęgÅĒHĸ�bœŠMZÎh[QM€ģ“a‡ŨäŽë  /ūY^. ;xðÝį==ĢKĩ>ķCú{6ôԕ\*šĖ%!f>KðÐĸ íöe ;Ā…bZþýßŪåۘīS\ĸ·@fųsÎmã4ØßÖ1yĩÎ)ó’4o ˜E­„ûĒ(„qtĮ"ˏØcđĒ’ä—ô—SŨ‘Å8ã<ųqe$Û|hÕ]Ÿs?GÂbv‡Xną —öv§ŋ˜SnCQū›Ūx{jáûwãöúxþÞäĸ7ÕïÛÖ?ðõ/ūÞæŊ·Õ·ÛīÃŌūû{$þŦ@ô8 ÂOŪ;eŲØđžđ`™‡Â‘h†ã+=å_ųúlY2&U™[žw ðl!Fę―ßô8šOČÍðįEĄĢE­Ž/�aúäĨé°rûh0vŠßEÔŋDŋÞ$ð2ū éđȝäČņ% fĨúdÅþ7ĶųetÝ1õØŅZę ŸÆrUčF ïëÍØþ.|i‹ÕĸY^Ÿs(uõenÝ32ø8ĶŠ9Â7%^žðŒþoHôe\ŠėâĮšôĒU#ōõŊPÄß ŦļĪýēEr›ðē1˜ĨÄŧ1rčįj‘ŌĖjâŅ Đ þ­Czį &‹Î]ôœmčŌÚĢаĀ՗!t"Ó·�DŽ/=`Oý~œg(đąü \ĒSÉévō@ôGŽŠ4ó+3Ɲ§zOÁį wÜR­Ė0ūģË~Msþ…ĩÁ8jkRlQƒg ÄI癕WU ÐĩU ŒÎyĸ9)V4üč‘MðÁ„…Nå Ä?PeĢØx~Į0ÏýÄðmy"ø%ŒB€”w~ĸBrįüIāęū#ŠĀĻd8öŅN &ųĸI—d~~g+Ú;ū펒Šð‹Û^:Ë'hW')U�pČó”ÍÜrðI&îáAp^Ļ ÓZӂŋÁQāä íÅ Ą=“"‘Ē@uũēËÍ(c#7‡Ģ ý{˟ß7ė]}čjiÚ%xŅþãæŽ6ÎnhŋTžUĸzļ—ð֍.O'@Vā`™°Č4ļ8ĢbvüÚ3ōüžhę'õk@ۛWUÁîˆ)ü^Øį~ę,â­˜…ƒ[Pû%aiÎÍPk+ +í› ņúE@&1Áþ˜Ä’ē/Aķ!ŊAĮšNÐtÓŪ„<žP ĐĒaþæóÔ]h§Ð>ĻõŠ8'Ō lOũéŽCU“Ē<Āą…‡āzĖÞËķƒyŠ“ĸS2ö* ÏI‘k]ïcX>ZЂq ŦP�ŲōE  Ûp[:Uƒ%æbéļ}ÔôRÄi},$ú:-­‚ę:R2`6Ŋ|p―0ÆČ9­æ4íĢ=ÅW.ŋ97† —Ā+ōN&MÎÕė⇓wC…ņúųŌō-o0Į0Ô(âo~Ē+€āąŊ.ũý–ØÝˆôÔ öį˜ÖqQí1š•MūĶëāõ8ˆQ}Ö9ČĄxZ‰ąüĀļÓgG9‘‘*˘7€hOŪ;š�iü|įS[*Ũđ.žü Œpvõ8Cōß0~"ŽÚäiā7Č0l9ąĖdn䙙S{ïW‘ÆŠ/ũåéöyaĀíj†ĐH ĄF֑ŧ“Ķ˜gĨ'k.ýųŒųXĒW&W` ržþžIÓžO9ýãņ-S5*n2\‚ï˜éŦYÂFŽ^Ģc:,lúQÖ7’Q‹ãäþZ1ãY6œßJxœËėp$œ―gēō‘ģŽũ5ŊĖ"`ždĸOrē=QĒ&đ(Ņ―ē‡E§€ã―ÏŪ”4ūÕ,~ۂš ˆŽh*^ŦŠŊ]'@âŒ+1æBÂøl·ýĶ hÝ-ï0séŧ`·ŠĢ—ĨĒ&ŨūŅa'ö―x3Éļ˜ýÝÅr“§åĮP8RAa‰öĻ ū™PðōŽîDk"gŧxEvKļF5^?$)éÆ-Š›„0ð<%{4Cē'i’gęøQuÅzęwúIe'ũ—ŪAë@‡ī‹>öã0üû7ĢUO6˜?ƒ…IŠ%É>‹ðą@ZaÝ·QŠ'Ð―·íįŽĘJŲ%8ÂFĻāī~qP&Fč=‹'€‰†đņēÔĄ1†œĶš8N€–írXŊT�X8Ӑbe� ÞÎPˆē‚ķÓót~L”Ü–îéŨ―,ļŊũÂ;F"đ-ß㛰ōóœ‚i‡Û>Ļ2ÍĖv–~s…é]1€Į͆J‡šwÆ3ZŌgU õąŽ#Î�ĒÔnM|:ŪcHøŋÞëīfŽ-Áfēûõ`đ‰Æ x”+›ŋÍa ä7y•Lßw,ũ[ī_/Ōý~TÛrīŊ{īãŨŠÄ@Sƒ[yĪpïÔto&&Áb•āúšqęŽã—ø YĐ ?ŊW|HĩÅ˓v}æČ””UųĮðlЂážwÖV/Pė�ÐĶ?ąQ/ooāKŲ=ú‡ļþÛkhßYĒ õjP_æŦqÍč]S\ĮĮ›E /…Ĩŋ˜ÉZčī7'XØÖ)@E$›[˜`―FĄýGPOfÞGÓY9§_s]\E ;Þ'…8ĀĄzjÎĢš[VEIx”›,å/ϊL DūĨ1’ĪŪÂļžĐ‡Sĩ’į-ã%Mˆ‘H’pŸZÕļbæwđ+euffŅĩūŋĢN8#n~,sσáŌČTŨmŨŨÐd“ģ{…lŠ ĖDöm‰ÚcHŸx―ģíĸQš“{†ûߌQí@‹q€Oõ!šœŲEŦæó~nfåMÜŠ‚!ÓŠĶĄAEÃ!þ{Đēšqâû˜Xøxž7wĒęiÚ}Đö›ÄŲ§ģ:UælŌX€yĀ…—^ŋ9ĶcVˉ�ß;Ë_ íæÏĩlj6~ģąIóÓđÖ;ŨâРڐåņž% Bę;Ļ›nŧ~OMÄ!ÆÛŽ:Ü0bl„a’õˆ.Ktë3ļ+åÓLÓĸi›@rū°~~įï6ũ‰ŦwČIÄŒĶ“%ČļO,~yŅéå—é™ïs7ĩˆ]›ģŦæTĀį’Ą!Mr°Ō“Û pBðšņPė“)ÕÍÖtõxu "͉�Ž‹øa”?ÄÕ,Ïh­á\üČO0îîC#?ŒîtÕĮšp‰ĘoyïUš@ęŪKĶFGKļÍŠŌÖ&ôd}Ũ]ĩá“ä *DOÐŅņą(Ķ“‘SlĖĶØ(ķøŒ―U,ščëãv§k—dJĖŦĄ5rn#�&.‚œjQį^Ž ­7Íčûü.ĒĒ&'Ûųû+›ęZ'ūEõe”d:üú>%Ó)ĒčĨ æiH‡ž“z{čJ°ZČU|?ļþyāœfF-,Ū Ôï2Tũ„ā#V8ĄwOœ‹đųķwVýJI ðÉ.ĄÃ`Š…†ņ^ę[w(󙈏ÄüÔŋˆ4/gS §ú)­š7jLíwóõaģ"{Ës Ø PJÛø+8Lw üg"ÚMˆÁB‡ï^^rÕŪ/gŽŸĐĄj5šXú;Pŋ ŋđãĸZL†n;rpíYTēĮ―ë052bŅ&ÄO†w"ņDŊˆO"ųĸ^–ĘG[',ÄGã)…åĄĪ(Öæ<šÄčB �‘8ÓÎY .AžčÚĮLy 'Y^ü4Ēņ“…°ŠŲË/N7ņīũœŅŧîĸRĨÓéžæčƜ<ŽōzóƔ.NŲõþ5ĨĘÍĪiÝĶo ģîļnÐļÄԜąßuxiKc­Ŧw‚f$yŊbm/@žĩĐLÕ: ›10Ï·jОš‚QĘ“ð jK―Ț>L…šĪ—kUQl+į�·^8ÏHęHw`ļĨ :žĨJq?Š„žũ+ļ `ėĄĢŒĶwČuøÍ+BAþĸ\ŋž\ĘE+R"ŊÉNЁãŽ-/Nœ‚LqÖ(ŠSÕQŸG}ŪĐĘdþ†š{š{ú­Ž°­”›PčU”ūAI#a+ĸ2]7Ï?Øbŋē>CņðšFXŧâ83’§Þ–ōõÚØ’°:OÓJ-―gPN`‘͐;ĪžGĸ=Ë ’-03 Ōū])(Ë3…zÔÍŲ(‘$Æ:ōWŠMžxŨýĮۍgÖļ!†LõéEO… 4ū|` ،c]žžÂÄ~�_ÎaĮÝ*$ømcíq_ŧŲ_ îÚNžė1,ˆ(y°ž+$XíköĮfĸ| ,ĄNHđFŊ qsëļJþX™‚FĶ_? {‡éĪU―DĶÃi…ûyßOšÚ, Í)ëVݧĪJķ_^qđŋÅÕJŠnč°œŠÓöĮNecEXą›ē™6[ęS4Ek…ģCūŒ~ŽØČa˜|ä­Ú[ –Ä@ĸČeMŌŨĢõ#"řH­đ6 šŽÏ gÏęëMėîØ―uū’­™ņÚĢ ĩļ_ğýlÜįÎÜāPÛŨîī” ÞĐæÓͅ‚n&xÕŋĶ8Ačüp‹å3·ÃœG„šŊ2Ï| ÃäPq:ŧŨîČũX~Tŋ‹uŅóC )ã­Bohwũþm)ÅŊäØĨV&]ƒŦЄRð€]ģՃÓöÖÔ#ž•Ųý•0ÝŌ—‰häulNôlųŊâ—yA ­QtZ؁{Īr…Ķũ"nÆgÅõ8,Ŋ•ûø[›shHŧö^…vUžsÝŊrm’Ķ~:ĖĨ Īŋö·ý„ģü W\&žd~ņÕ'į­@Ė{oä.Ü·™Iģ„―§M’ÍûĖ"ØŨûB Žēd›ŠEï4–ņã6bÛŪČĖځĢ�ĒōķmĻK(>5”Ĩžßûč6Ũ%°?%Šį�•K†‚ę@ÖüF3öL#pm Zq0 ÓÓS5ū`šėlÝü‹ðĐ;Ä"ā ÝJssT)ƒ?ĻÐÎŌl1kļ Æ`mˆŽZōÛ$ˆ~—s‹ē$,}Mī8ō49<Ģ ,ųŠžÝŠātÖ†ӉČ=ŠÁžųŅTčĐægöĮ\X5Ëëújgæ'ĶQé݆ö`ôi0 Žčū-–ÖōÔûVų'îÄY‹v!ÂoVĢâ†J1‹?\ĩš†@mŋä]:%f<};IÎáĘĘãr”ĀD äĸ1$šá@ufH'QEĒ•› ŠĨaãð{ó5msį§bĀhúÓÐTE›þKļJ.­ū]=P .Ėmw Ũ8h$+X ‰M&ïH@ųK�F ÐþšNóEØ-mîņïėŊ98 uēr,ÜäŲiIëÕpÚᙗīG­ĖÔNæm4AhLzøþ˜1GĻB/uIĢĒņ>ã(Ē98ų!ÖE›Ûų3bŦ•B1•–6ĸM a ˜F…™žÔ dĩŠ.3Wz–“mĘÆNãÖöķn á6L� 2B3æ0Ô]ļuÛ_‹Æbęw7XWđąÏ@QKÔ5Åüë'Ÿ’ÞuémâÝ$G+3%F˜‹ Wé(ßļ/üBŊßũ6č-8ãltĻ™æ‰Lå!!!/†Ÿ[đœ`ÞOnŒ #aúĩc^­áԊ˜ŦN„ûÁōąBz%ŸƒÐōPāíUaÁĢđ™–ãÎʖŲ5ģ<Zî"ƒ·øîGæf4sŨČÂÉ@Žsw)ÓUlļ’,ôũ‚üdĩiqhõ||Œ‚yÃԙpņjÅîi`2jūÜŠ6n†ÐcÃģGöĒbĮBH„l -MXÓĘĒ9"§,D,6f[oūe۟U‚EĖĶsđæ­ˆ�+á”}ŒÝ˃Ũg9ë\Xøa€NRȞa5ÞÆsƒ ö`Ė—ĸ~'uðA)v<ãîžęÛĒĖÂKbŋߓ*ĀnjīÕšpę„ĩ"4CG�7pØÐ‹#Ģ üg_Ĩb…°ÚpNčÞ§œu<é§W!VŅh°w?€[Č-ä†TkD>ø?Ĩ6Ų–sŪ[9—Mą@ÚzR<–’ĐœžÝTä.Hø’ö—äØ#ŊĻ+$üVšpi—]ŪYĸ)ŊŌą=S…°ÆtÓ Ä:/ŧÍ7rģ° f…/Ø>Ôį{ÚLĄÔĒMj 5w˜ŽōÔí‘ķRÖ.‰î/L„DÚ_mݎŪņjĀz)�����������؂ũŒ€]ŋüXęā���������…§ģ]qßúÉpDj%æ_ĘJîîeYŸbŽioįˆ4Š2° X5<֊Ė‚ Ýņ˜ī ßQ!TĖõ­süŌeđb/gēÔbg"FīãĖTX”d―ĶæčŠeŠÕ–Õ뒮âŋĸ3ųēÍfnÝ.dų0€K(ˆüˆŦD� NÐ&Ũ–°ģîïtáĻžØĢØZŽ2ýÖöY1AĸX`3îŸßïŲĒģVz8sAϰņH`ũ4cžų žŽHP ĻũČĢĸ{ ›d‡~…W&æõ c U$tŋCð{@tū^^Ō D5€ŪÛÄĸ>+ļ_"~JĨĻR1é žqo‘lÝ‚Ļ KumjķøŽ―ę>qŠbÄĸĸĸ9œ•T'īõ"FĒ2ĄīĀāŽßÝŠˆ3 xēŲc‰uqLTŧĶ“âĨ“öŠŊbkīø°Ī$…3ž5$‹N=ųIķeą'·4Ą$čąú Õë9ĒŨóötõh2ÍԀTK’BąģúŪŌ•UUUQ•x—_)x@uĮ+4đnx 3)}n —~ÔröJîûFÜøvę\fÕ%-g1ŋí˜m‹žŠI.Ķ›xBßŨĘSãnÁ§­ôečÕ5Ýģā둂īķ§Ģ VÏLŅúŠkēĨ+%ŋųE)āŌ—VųVmr”Ln6ŦŅS‚uõÐ~‡l§5Īķė=!õÞ§/銭ēøēf‹@FäU—ADw‚ˆf9\ә2;ķ‰+@R,‰‡­{DÝ{ÅûöL|‰ÉĐf͌Åąô.Ø~î·RūH°)? Ï n―ą(øŠÍ:Ý@a„“!tāffĐäŸ qōNĐØëG‰ģāųõðĨR 7á ŲīHučcūeÜ3uáPĶâÄ}­·: S‚sąpĮ @PF.Îú;•uNßü‘‹ņŲÆY"zdęL;šēī[ïœ=á,ۂķƒėu+ķxûh‹TF_Xy-Wk•3ĨæZET[ë‹Ú/jf3M]ÕũE―} ĀĮÉČÅŌr2Sʍųq˜^fV/žôÍÕSQWN"@ĩïøHiø?ĸåĻ;ĩj…tĻ‹eÓþŠ ­!$@ūýÕÓđkŊĸ0„z$ĮĻQčļ;ōŌôģÕvéꔆKL…bú°ÄŊ„eTēavBĩđ,<ŧ*ķš!ڄ|͐‡QŲóHŊA]k&ÐÔj>HoC'øēzÎSģ@Áæ0< æž;.š0­”ïßMđ , FMdĀÔÓ:Vbž‹€—á~Q8“„ðrEDmņĶÜĮ]ČÂmĩāã­pš&P0ĮFÜŧyC.ĸ pzī NÏ*ĻB@�õ€ą †‰mōNXEeŲß#üp––Dō%„™Hä‚pÁÉĘý! 1ąĮ?zŅ4ØMŪ@Ä0Ö šÖEęŪöœŠ ãĐtŅú]ËBēQQüé^Í6ŧþ}uBYÐEž?5N;=gĐ!įcûĶ1|%ˆ_ÃJð˜Ï*h]ßïÄuϚCl'!ýŠl‰É˰Ĩð ļl#~jK?ÜÛ*Z"þË0ÞĢ�02EõŸĻ—Ŋø3ŧ2ļmŋļJę,)—&EũÏ~Jøáý_mÂ;Ÿ*ÅáĸfJ1`Ó/°į‰Ōþ øn[ĸūB“ÁƒríŽFdÖØĀ@HÝãķ8RķÓa@x”x;ģƒ3Í0GÃÚđŸÚiXþÚTgЈW[ē/!ĻHzMĀhÉŠžĀŽFÉu† •=Þ|ÂĩĖWšF+„›ÚïŧžŪ ĻŌŋ*hņŸ}ëÅ*+ō’%<íKυÚV5Ō9+ˆðĢ*ōļ}H |ïõޘy bąĢ†‹$ `7ĖÞĩ."€–[=UŧŅũ û_Y=Bķ‹ęÚqŠšÕÂĄõâ^˜ēr2MųÉWāmΧø Êá A‡ÝI{Ïy臚0Ķ…kd먓§.ø.ņ&˜ž°ĪĪÍ"BÛVbĖ3ŒđÓˈ`Ÿ{rė―b…vqŋØg LŽŪĀŋÆŲKüíÔæ_A(ĪE|-"˜ŊG)JaØAÜpAqpåÉéß_ý;AĢWh#Îû+-8ūëĄÐ#Ņ;c}ĖK Ņ^nķm·$Ž-†ôĶŧ°"°ČrŋįfsÖõGYõÍ8n(žŠsBŨŽo~ \löᑇj~,΁ƒ+/É{hëJ9lô ŧ‡·]ާÆFæŊV~\Ōy.‡(?ûIÚí"‡Gš2+—ąxĒ iĐ7J·/ÃĖ”ĐuaŸÆža$’}8L�ũnHƒ†Į߆…oæ&ƒë éā"~{ïœC PJ[ýļþÞÅČwZžCŪcӓĒč˜bÛÅXō”ŊŽ9ōí(Īį­ÓĮ3?ÖkÎX֛#ÍgCg܄2hŨJ„ĸ<‘^ §ũÆg—ĄY­IfF8GŌÖÝDϗÝ~ÜûģIæÆëv˜ĶÞW;&a‡IBžõoá15’ƒ *|I4œÎ{ĢdN'õ3$™ŧ5EF~I”Ŧäj°Ņ%)uŨÃpCɋģyœQD\ŧ­žî=:ķÓÁŪwáĩí•.(ĸZÂŋð°Zú2{ß(•ēĶS‚žĻã{ÏūŋĢĢaĻvÅþ�ôŪ{Ęy,]ņūÕ-―+6Yß)Š"ðāV‚, "4ĨJĸfņXbáéÕ#-rIî/ęL˜ü4ÜÛ&%ú‚ÆSc‹_]U†JēŒÐc”üÆR~ųÞ[ŽÂ‘~ð—úŸlĨ“ˆ�pĀĢ#Ōú’įķnäĀ ŧųýĨWąŌ�Кd@ØĀŨÖMŪ"ƌ> Āf]ôF ™ÅZ~r'fX„&ūŸœYÎ",øŦ˜ĖÓgķý 3"ĪeģÏfah"‹%{lĩvĘŌYč Hϔ#ĄĪHĨ)}* V8ōgåæ‹}R í28oM5â`BėíOŋUØšÂė" ŨĪûŧn„ÄÞdü)ƒ)―ĪÁpĩö<<m üÚeóՇõ”åū‡Ęm �M*õü#žý‰ƒNnPü'2ĀëĄS ]ŨôÚ  4^ûÛïÞš'ĨTZ+ŠHŧÅ+ĸkėŊÎó(“š|슸Ïl·ó}<ƒéūö+ÂÍ<ËĻÍÄÛ ŋuŌũŒ4U_ĪÝXOþĄ{ĪįšÐĘܓMYĩĢkĪėķ’ŧ€'ąŨ<ČNĮ愰799 c™0âA“Ē˜Š|)·ę'zņ6ī ĢÔóS×Mķg4™âÝIB“{â 8ØĄJyKIÅ>Æk—„ó*Ŧûj-čÜG`=ĄÉhæ‘?Aō--neý§Čĩãx-d"ßWņô[õxE}bÎ"xĘŌÄjCØj‘ËMDܞ‚vĀzmåïj‡ZĶ9ú#jžeĐ4HČģÕ=cąĶ' (ޚĻEyD,ˆF€/ąų H€����!Á4Ŋ�r§ šA%Ëesī™rŽtâĸþÝ=EŠm$Ļ'œ+íĮCmﯕ ā‘ ­•ŒŽ—Õ‡üž=[ b*ýtĮëÍnxšY†+1vÏ j{ŪüÓSßl$ïėóģš”OŦ$Ņ�lvËĢÆä›ÃŅ`– øņŒ―øđ’æîcš^9>ŽēiÛĻRüRܧ`ÚØÚæPJĨh„Ų ŅĻ ‰O$5É{šĘó§œ5Ūį8­ĶõŅÞÉäkj"c41ĢÎ0ĘÃKØþÛïō&0šD^ŪvÆžšMCĐä%Ļ„–XûqŪų:A-ž"1éj$d=§^Ú†/íŽÁrRÂōËČ>wžŧŽĄäb―#m‹ąīK_•"Cđ†œ“A‰~á‡]””"IÍŊœ ŪŧÆjþ “§ĸ|^ôm9đTđórýlŠŪ(r dtGZy>c ”þ<ƒ ‰5 ųķRˆ áĢÞ Séuōķ!ɅÂ?ą>zîĮSæ@ĩų<wčԃņÆØ‰đ7np}úq7æP%jÂÃįŽjŋ—“3 Ø!ĩüßÚĒJĨNjz‡BÂ}YŽkÅ—ĻœpōĢo ƒš'"[|3ŌÞnŠ jސĒ+ęLm–ũ Ж^ĒiɔŸޟœyŊ:.]Ēž<ũČÓģĀÍXč’{!zyåÅ1mJœÎî0ŋåęČá…ģÐŽĪ‡^――#ÕũÖý99NMČōÅSüÉ|a“ō åŦÝíÅãĖþĸ(�įĶMĖîēōGŽWw\ģžq·Þ‰"qšPũjTYņL }Ųϓë-U W6ŽQé&Vl$æ]ķ3ŊËï^#šE€þt\˜ØË4 ÉՈÞEXņDšŲ§ĻA9߉Ļû9Ēáe6Č.&d&ōqËBœÜ"ÔĮÞøC[üc, áK”GÏS=ķ~ú7āxč:ģJ]" o€ÉÐ –jõ―ïnNKltĪČz”ąģĩ[ŋ>ýũ56XzŒĨL<“ŽsBĒĪ―‰=á§SKhËo†ĩ)YMšŸWķ6ÓėÖ§eAg ™TßÉäFĈ0IįŒZĀËs6ļrØ jĄqËÍ? ĀƒwK>júđbúõR0ãĄ\?ä)o:­JđE“ âãĻ1Ï(ÂB^æUđTĮ§Īt°’ððM·öëÍ %ČÝ-ã …Ëĩq9. õ:Ļ}ēëĶ;ÐĨļPhO‡ÚMlt AøHcėˁeýRđ7ŊŦŦ\€iģC�€ÐjĢY1<ܙ)=%_ĸ-€|ĘHw_īō‚û7*æZĢgۃįbNW’ĒFxŅũ2vĢ HoD<―ō]("ã9‹‘ŽmŅŽfCe“ ųœ<ÝmËÍ]°ĀđÔó •Œš—ėõ”þuęVEžæDÞD!Ąk€ząÉŋįĮûĖ‚ļqpÝ9Oī Āũūˆ%­í50cZŌ J·īކ?Đý3 ČJŽQÕIЛF Đ|€ Š{E~:w Z•ô5̃—Ķ;QSQĪŋą<`3^Æ6!Į›QT€ŧKF…FéÁû6ÆUØĨŊjðjŪQĀŨ I<”a,)99ŋ€F:r"Z†ÚfÅW1>ŋâ<}ūdhiÂGģÓĩØ-ËîԐ6Ü@š•Ķvh ϏšÖMŊJï)Ý̐ķ’sŠØð6čē‰Ýš…Îõũ‰ižmÆ*xՅĘÅAãVr{lá(ZŨâĨ―[‹õúųĮĮaōfĸál…lÝūÏë^(<‚x9qÃïÕÉÁõ’AœėLáĪóIŽ~ ÂtLa­īÓB ŨSåeĘg~j6Ģ ØŨŠëød LyĨĶÚ?]]Ėsï*æÜK>ė6sĐKøs.~ļĶôNmŪ8#c Ú"í=€‰ÃTþýÏAė_ĸgŠŽ9MáxZܰIĪϜ§–ŠeĐãØėýdžY„–ãŅŲýy9Ĩe/vēĀM ŧ1áÏ`+I-’Zøá;ó”Šß‹Ë 8}5ēaŠ< 7ršþņˆ—ý‚ęņ�˂C/8HČr ô|Ņõņ•\Đ^ô·Û óįLÄrÆ Öïk“fÄnjūÔÄš§šbvĄ›BâJ:ööŧĮĶ”+―RËá•(âÂ͊26Õš…ęsƒË՝%1t0#ï ĢZ7•û2’Ó ĄĒ)ē-ÏčqX§œE~” ËsoĪĢŽ· ҉ïŲsÜ\ŧõl n­•‚FĪJ…ŅΞ§’^ÔþÁŽLЗZšv‚nÆPfŦÔ+„ˆÎãyĒz)…ķ=VpęRûUoZoBhŅĪũ‚ ó1ŋXoÞ7á w4%ÓI―kTú,pī )ņíž …IķïpuZ6ŌėÁ“u`ß•šk‡PŲĮֈ({|W‹\Øø bWíā*ð’þU°9øuū܍—*M “Rpę‰r2ĸ[eãÉSÆÓ?0žŸĢÅ ö\åö>š!đý—(”0ܟ Åęãų„.=Ų…gņČgÅÚåũ€]>ŧäYQ?Y]įQŲõ(åĄšþ ģL'TÏ`Niū#DOdĒ-ĻóƒYˆ`?0‘Ä9t8)z,ņT'Ņw rmbēļ‡nˆBĐ ōvēÚev †t?ŊFÖ{]õ“æQ^ö€ĒQöŠ6tėöý­Ë}ž'Ŧ˜ÍæŌ+ ,Þę..ŽK<*ðâē0”ũÖ^:ý ˰qdŒSQęý­õ-“ßÅBŒ―ŨS*ÕlByZóÚDiZ(qsÄ:·Šö,áū䔉Iü6zEûg‰Č üöéé{ßģ;€―‰Ģ+öþ•ÝAÄŧŧ‘NTÃcƒģ €þĘ%“xëYrĩpÁRĶąTúýs'q†t ï+ėzؐ!\X&ðņbÉÆ/Úæå{7ÉĐbó#ŧoЄŒgĶ~ýĮÝō‚zW.ôôšBn2;Ā~8‚UßwĀ}<Ūw<:YÅtžEBR Č~ßîŸ=H3!`ßÜĒčÄŧk@ų>\äŠc…5·ÂÔ',Ŧ_j§ Ō #rûÖž—US}þ8Ý—þÃķ‘ĐčĐũ%XvôŲ‰Î1›ŊupuŠ"KcÚ;"4Óīdâg{gįŅ8ø_ÛLÁQĻúJæ ÞK…Ü„æ %ã°Ë>ëŌRÝ }Į„’ôü;]Éý:$Œ]Ąčw_DÔņÂXcđ%ĒõĨ3Āé4đP‡vŨ1Ó ` |ŋEhF6Ą<ûâMđÜ/ÇüJĪôū#TŸDäũWÃ6 Wž°ŊŲËą―č‹û6ĀÞTS46\LųԏsâéļFiāÂŊšÂvŋ‰įš:QŪ“Ðpu_Æ!ä< ķSóÅ\―ELo,óšZ;šd0}æFZt“Ļr§ðÔę9ŸÐЊdjV’†ô—jČmhK‘6DÐ ^c ĸy=*EPEĘÐ\;Ļ/―ĢĩĶĀĸ€uËkdzxÂ^þåŋ^ڍœĖaäb-`óÏû™Ēų.˜ũRĘĸqÃkb~ĖŦs rÖԖĀŧ%DuRH1ēL=RŒ°Sâ―'~]—QɚCÂŲ”\øę&éÁ7$ÚŨÍSČq`YøVÜhū›Lýé†Ōaĸ;Ū„^~æWœTšƒvXQõŅ8œzĻ2Õ%ŪĨ<ÚLdĪË wL9 ‡ Āp?;}ķÔÛĻāō:û’*GFŧõųUØs8&T"_úPɕ+[V*zw‹Žęĝæ=8ĄÁ“#Q@–§iųýkë[ũK/š>ĄáüFŨ\ũ†îF.ēÆ7Ô|ŋ æTŲ―SóLú~ųųEW€Ļ·3ĶcŨxĨâ@îągíý,T*~-ļÎåąģ‹JƒËšÎ!‚%&�­&u ŦĶgëVéÉþŧÔRĸÓĢ’ĨĮ„ÍÐßĀ_š ) ģxÆ [~|öÝ߉íljëšcï9üČ1lŦHpâeMÉÛ*―ÉĄĢZtfX2éĶŊĐŊˆþŊ,ĩŲI4ā•ĄØŠ.Rŧ<ŽŒ\õ`ļ‘€AoÁýWMĐf9þgN†ŊņĘB)ÁvdõéĨØǟOÎH(m[v<ˆð%ýðVáS Ö§$:ÐÆĘwĸO Z7 fnøBåÞR)ˆž^‹\îZĄÂ·bJiĘĶĩý2YÆ%ķ”4Ō‘ĘßJGB*kÚĒ%“QûđpÎZķžÉ˜!ŲLpĀĻ’ m8Ņ·įŪXZ6A͍:aƑMJëÁfŽîŨO”ZŨŊR@žm·$Ą=ƒ,îīqˆrŸ‘M7P”åß/sâýn_FBā§nļ3O36ũl―ƒó•hDÅų\4EÁįóFÜT˜s"ôĒï–Īíģb„Ō ø2’‹ÆBŒ4„P[āäB_ĩÚ%@tŠî€íiņŽ=ãTVX zp“ŨDŦ3u“:ʇ6ä˜-Ũu!Đé\‘Y(•ĖĶē%š[bfŸÓ­ĖqÉũĖޔT€3 ø5wA‚ÎýÁãČt‚Eíu&LwȎ ÛÂ’Ž°w4·tŋąū€ÉæJ-‡6ļ?‹ĖÐ°ģ oÍ‚o’\ $`•C ­šų―'ԐĮ.°[Úŧ$,‘wÁ(œŸĐƒÕ 'aQîWķ_'Ŋ‹Ęo7ģ͇Īút­Æ9XžaïŦč•CÖ ūœ?.þž(m—Æø°aĀ.Ų9x t@ÜČ ŨędVz•Ĩæī)>láûSß[tū|LoMˆ@%.ŲŠųÆVڄ ^8§åŪ„™CīT·.`Ð’Ņø”ļĒß;€ŌzįK0k áķ^F =4ý€ŠÏsÛĀ ôė·Ūz9Sð  Þ5xx“ƒe^ĒîĀÝnf…WŽę:ɧ9|V‰Ø§ŌÐ5ā>b›RþX{kA>RMŀÍï•!ūÎŽ-ðãŪ|›Â:0•đh1^ėSN–Nϒ.b|―ŠšmYäîBîNĀapK0Bph/PčĨcąŽ>=?QIHŠŪÜßßē7―3g7oTųyĘgīhĻï,6ā›;úĮ80ŨrÂ<ÉōĢ/īŲÃÂ}yõĐj hdTËZ–õãæ—eéū<˜ƒŪ!†Cjëë&éúĮČ^j *@•ówÁZYp|ģF4D7ģč°ÆęZ“ÃÆdø;Ā5ÛOíæņηD|ci> ~ŅļÁ)•öz-{7Áõāíå ũĮØ\Ã+ŪÆ‘Ž+ŋË;·qHd hp›s/Ą…0.„ĢBMj QŧØ­û�ĘVę\čĸuj;OŦ~’3 ēnūTb…܁LM#ë:ąÛ“ÆĮ˜A­-đĄĩ͋Ą{Î@ĸ-#Duč/f„9ÉV3L Žį iî(Įk̇ ņÓĘ ņîþö n1›'-$ÖC~7‰4ŒĨædŅąðbRþvũž ęâqOąŠÖdÎZ9Z‚ļã1ü9đõ2īÉĮĻ`OÅĩgŨ‹p\š‡Ębzō=ráĐę"čežAĢÝ4R~de<ŒóįMxûžoĸDoƒÂãYąUE!§'jõ}‹ŧÕ釓nüþ9Љœ(ä[3qũ–KshÝx,áŽuĐ"gDĢøJõju?ŘÖ~ ČO õö2”8ėrÖņtûQw؍ηdeÐ]ĻĖōÏ=-)°Xyƒðcė•›Þķō‹Á)uítĒaˆœFŠíπ áČ rÅþĀäLGü꧆c_ëĸq iH9õŒÃ9NŲøxmgŧŽR$1žĐõ㑰ĄJ”æYC":˜wĖå'-yÓnŠÜ]æŦPīØą§J=J‹€û/§o]$ŽÔPKoŽpYÉ7íÚļŧ.—ĪFĀņįL’äŧïóđöŦF>ˆÛwS§5ĒÃúcčÓČ }f•�Ė€UD~ÛžBÏ̊ĶODkîģė[^ ð6·éÛõÄgíūziXqbŽP /Ē;AŪĪzcc'Ēv­WlæZ< ŠëáĘ †IéËč| ŊLIþˆ[„7ԚôE“Æ9Įā4ÉĢĮŽâކþl‡tjžˆĶë[Č dJ p<øE‹ņÃ5ÅyČVRYõÉOĶÝËÅxq~.ÁņŋĨ(ýņũšŦōũ%^�ėč)‚ÆļëûŦĀ?2‡’8Z­ŸĨŠØųv…1Ÿũõ$L‡°ŨęčΊīG—ČIÏîĻžĶĨóöŌV'>0@&’}Īn2Lė!Ú8Į:Õb”Pí(ēŒq 0| î�ðp-S-dFđŽĮū~vÔó72cԌÖQ€”ü7uÂéÜÔrnÏŊ*銷Ë:|AŒâmzÛ3›Éãd)‹f§UģþŅeYĘŌ'"üĻHāē!ēh4RK5ĐĒŽRđúûĒŌ—|Y5˜ĄŒƒ”Jŋ4§dPđü„n›I‰ũŒSÝáŸį^šŨTō{p_HAāF#[Āh˝Č}œmÍPlĘdIþ’ĄÖēUæúžS/““ÐÛhUĮĶ@ˆÞ-Ū$ē/•,C.C{:ï58ū›}Ŋ2ęÜaÅaU‰ļw z/Ēdt“g$úĩóašēÍŽãÝēš\ĩzîLŨÖkDēųĶŽ}hœ5―t―&ųä"ÉJđãąz(zf.σøZōčSĐĻŦ)Â4IúM'ÁĖt˜PÁųĒąúŊg™ķø()Âó•ņmUęC2ėzY’ lLW§ÄŅ4·pÓæR(2-ÝâÍ$ žŋš#UœL•j6ūŸÆ‘H\„Ā ™]þcžŌÎŊq e] 9Ļcēú6Z$5IÅ0Šēƒg|p+kRĀ~°%2û‚8mÚúČb ėtÏFð{øcM€H–sSŌņ‡ÚûyûËâž ˆ9žOZ͜`ûē2šCEĒšöÔ â ~ÏFïhŧáûwOöũ/û{lýūˆ8~Þ°ŊŦūÏÛÛõz%bûv*}]ūÏŦŊŋáčŪņ‚ ĘzĄæŅqVÄ1ÎCà‚ļîŠBũ‚Ĩ-)Pe:Å­ß“Ū ō"2ÂąðĄ]?H<=Øüķ3€?ĖĀuXũ+ž=RŒÛŊĒņÄ:x:kÅ~ĶEWũ'&ŪīõF|lrï™Q?+üediAÓ>ĨãÂåsßáĶ~VË9BBÎhnaōĶ·öEĄ{” rČӌ·4\N_―æÝžŊŌ•‰ŌÞÝČ*pÞÃZšfYįBb.õ”*qƒöŠthCH™›š‰éL#:6o#{+,œ"đÉ2;đŨwņeänЉļãKCýļ NÐ- Ãø(-Jû3Ųø/ĶęȆTé˜Ī…šÎÞôWð!ĶSÆtip5š™Éę8ïĮlŋ=Ō…ųÛ1HüÖē]rĮz\.Ŋœ!${æäCŨ ƒQ§ Í8sŸ‚ŧV=>ô§ā̊YĸzģhSÂ?Ėl ˜eۊðÝ= pãhÛĩ‡Ĩ’ hš<ŲcÉ~Ä҆Œå˜6 ~ņCˆCņCZÖÂe6PƒĪđZ į{3$Ō:ςåĖõyNŅ‚v6' ŽdäĪÅUų͛ÔfG{š>Ō%>3ķŅO…ÎZIFœ˜ŸôWņleđ ĸ/R•FõÃĪôî#qŒØ?ĐoÄaĢʕÃ`īąŨæ76  ûn�ōYëå~x3ü_=•MôE)ģjg"u&&ŧÕ >(ĩucQĮ?mIüÚÜ<Ībô�zCc$�>ÅZ[fw˜6hjzėĻüYėĨ―ÏâFnâЙ_úŧîØNåÅ ŒĘũ^Ú ļJ™ÚŽiąŧ|E=Y%‡>ĒĮ™)Q“’0ˆæÛúûIūvŠ VÕĀ#åX—č2М<øoÝžÍŋcš_œ=ä;ˆvü—v<‹‘ÄPÓŦt§Ķ°ī&VŽ>ØãÓ>‚$ŽÕƒHÎ4õĘE/ '`:)·PNÆeg ‰”Ý])VðĶÔ7@ŋþtgž8åmW”\ÎkÏxÖŊ<Čūmđĸ„ƒÔ~øų––Š(Ī[ŠŌÐ4kŠ?[ýÔ}ŽÆ~/ūC‹m‹KþČaž3VŌČÎļÚQZ›?›rģÅ[ŠĒÁ14ĢÚ?ŧ"ĪÓĩ@]―YۛFfÖú›ĸzâėžō‚Ž]RĩÝV&[Š‹l[Æ\AælR5™Į!7$š+ķĶĮēÞSĨˆŅDžâĻ― ï1Ģ$˜A{NSof `Ŋ‹†@ 2A”u+ý›ŦPÍĀŲŪ ûÞÏëĖ#…Z·–Š9W%ÓËsþCÉĶ"áÄÃhēfŧĖ& ÁĨUpfzēM…YŊ‹ƒ•pC?ųģqÄFöSôÄĖß: ðϰjÔuŽķD§ƒ7ķrÜƒ,že_Á3k“*ŽęūjQÉÁ1ۊ;Ë\K”ŋVu˜DŸQ͆‡‹ökܗq>ėy2%Åûī.đ’&`Ĩ+ÓßÕÐSΞĩ%OmĮ`lhš6wŒAÎū\ø#4Ą p)ō+-Ÿ9 ÁkĢĮN*8gfíG�f;_―+íĨų‘˜šŋ1éÕ`t xëšKģ}ĩYŧ !Û�õ‚f ŠėC0ĄÖ7ÅĀͅ…­CŪrH·ŽJæ_žÛÂ�ÕĒ/`N _ĀĄ?›Ę|†iXIøV'ožĢ’ŽPô4@ÅPā!ÞP•3ĸ ãjÉä§WUj}ķŅe 1Ðqū Ū$æ.@ŧ#™ČõęĐčë sļVå-ρŊ(û†Ę†.œs§ėË�–öŪŠÐrŒ_pP ëŋû-:"`EŌaï. :Ĩ•Í3]SÝØĒޑđŦÔĀn‘%ū.í.ųâïë^å1îŌīŒČ,'Æi°D$þģbÔũâĖÕ―É§›L+YE‡âčÐ:ŽģÉ7ôã‘ÖP‡@Žõ-ŒBõÛ4W1™eðŠIIæ=„2Ŋīuf ëĪ‘6� įuŅ^h ‘sø€ÍmãĄ”—HGd†Ęcĩ! ģŪˆÃnƒ•į_ŋ\ááËĀ|îwÂyq‚y6ۋĢ3ĒČ'@^Œ ï†"ģyĩÄzrUjĐü>ÆþóīÞ`Bõû#kÐŧ ŲÝ'7ĘŠ ŋĐĖZ"a%įâ"Ɵ¨ Ĩm+š[’3vQ™D ƒøvĢĻ ĒÁũåF îØj!ÜMX‘čr;D\į*ߊˆ)o=ÜRÛ5åRÚ\đC$E hÅâĮāäĨNĨ!,(Ōpë'cόG7ļīlLKóĶēųĒyĐi€Fi>Ž c3Y}‹šRũ4–ššé2{Į'æÎąBÆĩĘO…9™�õÏ;ŸXī‰Ė J&˔‹@mõŧuÅË3yuTĀŽ?—Ļ&dFkELÆ8æSPrī”Ëît$úņcįü፟�$Úõ†ĀšđD\Ë=kŧī~Iĩģ"%7rÐSāO=)Ô6?K yqÁú/Ēđðđ+•qŠFéÕ~BŋĄötųhÝ{ˆPðÄđBË<ãbI$3`G]@a4ŨŦs‘ROzŅQhš=ö"Č?ĄŊÄ9€?A&ā›üÚ"Ŧb]R*ÚķIIíÉ9ąö3°Ša^Õ_YŒ`ũ‡ŨĄŋpÔģ”ĮĒGCĶ4ÖŲ šč,*đÝZ,ÞĐQ'_blģđ‹žY‡Ë x/|‹]Åņ@ƍŪõ‚|ܖąrXŌri ÁÁÜŪÕß2w֝ė@‚L}ģŨģt{s1đĶ[Y~ĸØH‰ãLĮ (ŊûØO1([ó- zj9Ąą?ũfōĩþðø­›|·Æ4› ûw–ŸÂw—GĖôę3e† ?™Đž8>Čŧŋi ŸĀ„wņ”€-ŅKø3đKėâïį†tPíƒņVӍĸ`T óiņņ�”&%~‰đŧWūm$dIąí”ĮA:ØÖ%3õđ2aQSÐú’Å Ģ+mĸ8'0 „/+3 ͋íeAČåųRÂáīÞs ûœÝ-ØąåWp(o_G„õpĒ‚6 8Ö~J™Å—ÍA ĐÏ߄D$ühīlū(9§ø@nAšÂ“ĘņV ƒÜ ŲAĒ XâBđXผ#ŧŪyę\~?a,ūŌ‹]øĒå‚ĩ˜Öę“%ęMR-$0ĩ=ÁŸ#Ë?šOÞ,Й ™`Ūû`ԘcÉSÎIĶNágyĘ:6ęVá�m,dw9MH•Ļ –…9ÕŽÕÂÐv ėÛû==‚ Ÿó° Îr~‹Ėī;Æí6ĶĪԘpwëˆģšÃ44 īĻ}L™Î'Æ tEƒ3æ8žģėDN'Ø/ß3—ę!Á3>r�_B–œž7 ’~ðbÝ"ŋŅC˜.’0`œđ|’ ôAĖˆ–Ũąû%į―·ÚAļh�ŧĐ(Žn§3‹_šë6ûŋ–2É ØûËGpu@ÓúÔķövL2OšðĘņïw‡9ŧÞ7ïŸu`Ȃžķâ―Ūv­§ÅÍ?ÞyžģB4™OÔĸagÕW”kŪÞ?™+˜"!?ˆēb“Ō7øÚ\�ÉVæïð—đęėÃæBHn'õZœ#VnX"Ý Ąaęß-ŠČ)c4,‘ °Ĩé3ÖųS (x). fXāŲ?d7s€ÐڝĀAyôÉPÅrUĀÅð„O%FŠŒaq_5ũ§ã0éïÜÝt43…lsŅfĻgĻ^ŅĪŽr :}mY‰Ą’‡Oån­%(ė§ ‰.ęGĀ qÄ―wI,�ZŦšŨæŽ�ðŽJīXuŠōAœ”îóËōÉ-f…?'8îLĮo—Þc|HAý<ƒ: qIm6qũmpWĪ-UōWÛ.ŊûĨw }4_Ļ–đb4Z[Ý5.R1ā·ýOô*ōEÛĨž•š―iõ g{i+ų[x6xNŦzoļWÚø)ð1 <+–ˆŅĘņ‘dG6o$™LØ%îšœ^ Õģḛ̄Ÿ/üj~ŧ‰äî\eG@7aŸ—-ĐÎT&Zþv îGMų4~NËų?ų$ęôk†v AÕWŽ#OóÆķ =3ĢĻ`k$ˆÛ”€=Ev!ÅkŨ@é+ņXåÝ(å‡bū=(V ―đâMē&Ōw%ÚUË%æbÖē…dÉÞÜzĒ`Žt:5”}á`”˜ä“0Ph%PūĶQÁÍ\ãÜIXļ)ašz(23Оdũų—ĘęÝVïÞiĒ,(ŪĮ1â<HÉy ŪKUb“EķÄWŠÁÖØ+K@Yj‚#M~䒮æw1™cRúŪĒpý}Ž`Č7&#ûģ‚EI–ĶÛ`}ĩÎĀD_xôÂô wˆŌųŠ/ÔŊh­ôîŪdsšCŲ·úŠ“GČsĨdŒ"֍å‘ëüiÕW•ģ€)ïD–^“b‹Š€â8WĪŽ'øb­īšŠ-Ï @ÁÖÃeŪ“öČŪēÝi―Ũ9šÅęS"ļ(ŽÅ2–þQĨˆ]*Ę­ÛVôĐ ĻĶïÍ[”oj8ŧ!ËŨęaŽB”ŧ‹ pFÔ€ÞƒÖæ�ņ’Öyš]O 8bØ!‰kîą œ™6Ž–bož2Ņa!AbB‡þ}ŌZG€4ÏĢN -ĀũRh“MâU§Ũ …þúîŸþņÏCeÉ|ŌĨĶæy[ĸdAÜ sōkƃH!‚œüG1šÏ$Ē*ķęYã-0 a ʘœ™‚:\La#ý§ Ã%@�Ē}awXVč"ÜąŪ^!aޟ7ïóüo°v7ÞŊŽÞĘ2sÜÉ3\Ŋ6Õl}ŠāĸEƒ“Qâ@þ†ˆûëeRČDFŠĄÆĸ7L#> GQ‘oÁŠ Ņj} rŠ)žgïĸĐl™h·dO IaÉOLĶrķÄÄ+9W_%@ ˜ęąāBÕF[mķr„ Įqđ$’I$’Jš{ŽAPFf›ōt”îSАÜLõÕ~���������üäy\>.ąŒ”Ā@ý―IŽ1 ĩąHŊ !ąËV1>38)B›‰‘öÍ|ōðrņG‡øÔ~-$Ņ}ãó íēų/ÄU0™#UzތX3õ•Ûz46'É \·(*zLĒýû1ŒĐwO““,đČTŠQ @ę ölŨvarô7ý  ĸĸ5 œsŸĸõ§Ļ5…#A|ĸ- ë„Ü”-ïČ.Aë@ýrô�+ˆä*žŦ;Y―—~þÏĄTAO#ä韧N đ$Aģ"4rI$’GŋNģ�Ô1ûÁēŅĒP|nģr“Ū\ž‡ Î2)eh7,@Wĸĸĸĸĸĸĸ€ØļDÆ―sŨĒýÕ% W"ýīØōĻIÅm‰ÓÍuJSŋIéF*9…&ߥBnx―kí å;[hR$Đøœdĸk—î1Ĩ/ĘÍí*ã–L ›ÝĻKá­däßėēģ‘…sdz’óKU1‘ĐaG@æ=-Æŧ`a‰ŊĨ5ôŦuĀxP�Â;îŠU+tǰĸSęXĖOT“ĸ ŸėfŅYŅ Jƒ[‘x#æXįą ‹üCŸã€D“+ŋßĢģðAÍ{Cš’žâP“âĨ ëë(Š8šE'—š(q ūōÎɎóėX—;R‰·îēÐļ€Rjl.Ī}&wÉâČšōN|åNÓý"ĄŲGR9C•iËįŊy‚B°{N€Ņ”Klį6'\…ē—yŨ"vËcŋIÕ1äUuUƒmóā;:Ę(Á‚n•Øa Ķ?― h€ŒHĒ\&Dƒļz˟Â3ðc[­ãįÂÐ|:ãeôĖ‚L?îÞĨ@%~JĪÁ|3j—)ĐÐS™‰]!?tĸD형^zM˜E`ÂH”F*Ō° Đi~OĨOMŋo Sĩâ•QX˜ÃËŊ#"b\=ų”iÛRj7ƒ  éÞUâÆÞ°ęŌŪS[ÐbüÅÁOÖú~HīŌ’S[nh~ļĸQ–W2e؟ˆÝ\pņu6ŠÔ' ī›ĸŠÏl öQB„ĻZMÜcŊŲ­@þå–Ï-Ÿzv Ô Ëáķl„ zâ`uįĮęB&(ĨíwËôž—KӍķÛq”ÝįyŨZ2_ķØŊāĻŧŽo-ūųûö#‘ÞÝâā%Zӛ3=ÁlįŧwóÉTéē°žQ TV€<3ãL[g8­H)aa6h1L‘Õĸ&ðïĒAjũq˜BÍJhĘšåČÅp_bÐÆĸ%f-ŋ3#Ûb6—7/ Ð ΃öa—”`NWĸzJR8tĮ3Õ>vBP@™€ËĶl‹8íŲ°Î1æSý%‰xˆŊ  đŨn‡V„ŪĐBPyg+ōQŦúĖÂösyļāîâ °Â9k|š!ؒŧ/–Žs‚\™ßãũ:Ø|Fŀģu,7-Ü\âÚ7(åfʏėŦ;tū(þ§“…˜ėúŠÏŽ~ú&ˆęˆBŋ2ö§›āÛņð\þTĻšų{sīū‰'-g•Ž“jƒÍówˆDZ^™ĘÛėęÎųÉsKœ˜ė“Dœį’Īū Iú‹ŅQ‹mķÍąÉūķ*_{-|ba•žīĘé5iŅāïĀūĐhĘãc�‰4Ž+č7/@ķëw|ék[}fvBuĄ–ĨGÝę[ ™;{aÏŋ ]īĪ;-ø·Í$y75ŽŽëŽCÍ]`=B�œkáĮéå}˜Zü‘BĻDƒĢäš2ņÄtMɌŅEG™ \e‹oÏã`jēõm‹ƒ$nW(öýĘ&óiNũ;„wĘ"zųvMp –C2Š€ÛYFÄjpMóŽ,Ą‚u9Ž[omÅþb-bd“‰ŽqQõíD€J·ã4ԀÎ2ŲHp†z.šš{'Þ|*tÓŦƒ:•ņ‰Ė‡`_ …īąBÃņŽ1Ž ŧô9Þœþč‰ÕŪPUH|áŲˆĀ-~_VYŽw’t>ĨYž’ģ.„-Ä q”@FJŧÝLÔ)ŨĄŲMM―ū2dļË1óŋOØóÍJ8ĩ`‰wÃJmšášÖäūŋýØĖi”Ą­ÔŸ9u1ļ|ŧiØ 2ÎG“9̃Ŧ$íīė›nĸsý4q,čRąŋ &?VTÂZ@hÉr{"~ĩĩrĪ#ÛésŒ`N·„}ö§ØðĶnÓBîP+;róœ}ΓŋSðjŽĖ[ā ›h ŲÁ<#ũė Oũēŋæčūm.’äYØîôÂ/OÁU8-Ÿ„ ŠÏČ ŌĒaÉ ņoYŲtÎ3ȇaŧĘį͗fĻė& aˆ._ĶÂ>@âg/‡Ë€đýŅLjýĻ]Ü0ju {HÆö•&BB Îá xŽÔ!síá_“ū{  &QŸ–øH‚*­‰úá’6Š1ÁeŊ Ð:70īi5]_Ýâ[ÏHßÁÄ3ĮFRTėīZîĪšõCĄŠ―y;ĐÎŧsĢ&lð*thĸ%šx—ĸӏ+Jgũ8"!åƒĒČNŋ·Ę‘­Oë}ŋĄŋ$‹―ģv–Bā…Ąļķ `H蟱Í1Ī·Üģ݊Ô'›ĨåôÍ―RĘV7áÏt|—ō7tŦ–]LĐ/íE™‰aFå—ŠĮ.žmšû4§ZĖÝZ‚Č―ÜöWƋýC?Äo’&8+Ī.uŽß­Ë1+ņ·Žĩ; "–aôågˇðýHÉU*ū;ëĩÉÅ K‰!I€'­#ÉöT‡C‚á=p Z!鯄x­ē·2ÅV.VÚԋw ô "‰Ū'’)˜ §ãā l‡:Nėb™ėŽ N-ö|ŋé‚ú ĸĸx<—ĄĘhÂeĻĩnRmŽåPÕy‹0čšQŨŊQ éjŅ9ÂrēXyEcgÆ$đŠyĪËôƒtīīĨ° ĩÏuBėyúxo„īĢIäzčVF{t~Ąņ{GČ֛8 ũĀ`Ũžž°ÚG,>A/ †Q)ÏĀ<ë@ôHÜ/WöũÝLߐŧýåäZK“-ę1{`…Ũáu­ÅĄ1qīÞf“ŌĩŊa›fęn”ąþø=l–)ÝãĐ0ąĢî4("]ņņ@oģ%ÐNm:lŊŒęž―{RąĢķÃÚ8@ąhŒžŠ―ÏPŪOĀX(ĸiÚz:9\ŨÍ=`XŠ“kwž—Áá*â9Ŧąœýņ•ÕķadČ_Ûį$'xoņĘ(E،ąjø b eĒå"sŪä0ĘūƒŪN\ęĢD͑…ÚQĐąų'Ht�î­åÁ8c―HŧįÚķ5™9p‚öĘëÍ@wÜđÖ4ēf‘O(íČr“І’6ŦxÂŨŪ†í?ÓŧdšHzf/0‹{ØÖ"ymO†ŌųįØeâ†/nØ]—ņĖ NŽuƈĸðŽæ|þØË―y–ĐBīōe>sØÞĖÛčėĩty|5DØÃé6óífiŌHÛķ@y%į€ŽcŲUč9IΞzūŧïÞŨ’·>"ģ+.]9^ŧaŋ0L??|čæžáEēVŋh­ÖnĸĐ;AĢpwÚ°bĖ^]€ĨũÄ3ęQqėŠ S(M<(îÛČä™Ô―ZXŨĐûGŦąo?+ĐA“`ŊģYɚũ–C#~ËcƘ㞐Y‡ķõŸčc݉SFW D’js~–ó’cŠÁ ⍡\í=P<R=(‘MqĐŅYĶkũ+ļ+ôÖó` ŋē{ĖŠđX˜H�—§:”*ĸ…íIAnĨûķĮJ�.6•‚ÝéŸũ[Sß�Š?cW=ŊļíôV\đ›r–uå^―8Ā_Ð9…ĸ&ũ !aē”šîF.ÆcËŧīN˔’üwÏĖVŠx>Ė„ŋÂėā-0āsÝ&N·ŽāTĄŸW·đ:Š]ŲGÖĶ•éČ^‚ŨæüÛïáüÂũDGJõuĖ]R;­ļbŋ†·Å5‘ 'ĻĮõ—âΌāE&„H:JąĮrX[ŋ―H€ĐeŨ}—{ÂŅõ~^…OĨč &~Œ˜3iŽBLu3P o2œÚøīũkũdđZËŅ_ïÏÆ9ƒ-Î!œņeģ ßŌjy§P’y5 ÕŌîWcϋ/ĒŊ:ũ˜,d(hî°s)ýéAÖåw#$tŅvÁđ“DÏ ·Gt\Ķ OÓ㚞Ër°Ž„“@Ÿ–žË|Þ?˂üŨïÃI đŽ5fËšAcß~k^ ˆÅbļ>~M{SņÔ,…g&õÉæYi) íėpģ[uÅĨģļ;]§hvVÞ5 Āē ēM5Ū™” !óG,-Ņîýp‰WšyĮô@7åōÏ›ņ€lø˜,ĮĐ|Ūð r9ėfwvâÆŦŦčÁČFĮÂ`Dîā[ąĢ#‰= (œ^MIą.ŠÚå;za nžYLYwþ ËTųvŠīb°‹Ũ–zĄ: $p2âҐE.ąx/؋Ð>šÅčđĪH(ņ`øĒ 6Áq<J•-EO s]›æûÁ.KD/.—ÓC"߯sÖĻúËÁ”Ô”Qü,Dë @Ÿ :w6'Ó%7Cŋ―ČÕ –,ü8ĘŲîuāŪ}_TôŲĸm·ïą·ĩQÝļĢc|eŦJ}HĨË=dŌöĨ=đ‹oøq^€f?Ŧĩ?\`ḗ:øŨEhŸĘÆŨÔÝ=Q§>ŒČ˜ajÞðäs €g|?Îp‘xæS0•ziÉíîôaNt‡'ĘVÍĘjā]Łĸho›é˜^WÜä―h‚x1īŧ~QŽ"įĄõEk !Ī‘,Ųųĩō)õ:œ|ī€āZūE mSÂē|€H?úIŅcm?;Â?L~kÖå“ R.fĪ·ėĮĀÜĒcé,VbtûkbG‡Iéà€DÜ,V- ämŧ؏aî|įwÖ+ ĸ+īōĢ Âˆþã5„ãfS;@):Å KEHEŊĩS:Ũ9sfjË`{"ZšŒyÓhslМ“!û‚ņ@ð€õY(ŊúÃC·ø ĮR:›å&ŋ*{Žūz4Se?ųŧ0Þd  @ƒę/k€y5^‹ķįKƒāî ëx›ŋŦšaDýãÃĕ~ æ~tî‚ãĪHŧÔäŨ2mtæiLČ4ėþë^Ēų… ąČgjš##ÓøÕTG7Ðcí,›ÎĮåZ°!=1Č'æ˜úMÍįøiÐÞú aÚFái–9§―ícžĐē3Š,jhū ]vú/+:š€ė X_EÄ'ffVõ~ŠV�Ųų]'‚ 5WûpP=ãáÅZk ˆ;Н~ŧi6]õFMŽt áĮ ÛĒŨĘOĩJ$|í`Úp1ý0tÂÛõ\ŋü^[ͧ‘GĄ&Q<$”?„EáïĘ97đT’õAeNr\ĄÃû ‘T§Ä$û؇eeæ/žÆ5“·LĮÆîšQ™Ļ4Đģ‡wgþŠ7Ģ(þīOی°Gät�pÉŧšîT YWOģœūĖWœzģąBÔKžVņ‘Ūø…p°(Gýkš[?NŅÂÖR!ī}^k;^räúđŽ,)šzų iÜpUėōŽeƒbþcûPu[+̇QíĒó]7ôS)QܟĀôä"Ÿ+]}Ü6§&!ŋJøöubÃ]ÆĢ›ŪrΊPâ―‘ðúZ@ÜD™“ŠkŠúŋ―aˏ ’Ôðí/™Á~vœĶÝ0\-Wũđ 3LDŌ\k/ûސopÜP―átcü SŋĒFýą•Äuß„Žķ?ģč1„ ™ĄãMņþåW)ýībfā"`îîęŧÅŽŦ°čĮŊĖ p-:õ~UĨĮH[Uö_Ō· ß”a SũîĻ]TrŌ–PjũHZ&’Zą_ÚÖ*Sޏ<ˆ1sŸĀxûjdÅݰUóôM7:Rā*™‰4@Ŧ~dÔ=ŧđViŦqžÐ* ړøhŠE\āË<Ķ;ęŋÉX.ČūŋsĶÎÄþF-(5[^9ģ ‚­ C9ļïrN–þĄ@ĢŠýPŠ€I2ÓãųĪL•óŌ‘üœīGúü^^ónXSŅӏˆ/YÛsJˆ ÍúÛī1ĨļF؊HŽ ß},ã‡YïR›éЉũüūa1T]ہii>ēķî0 ĩcTqh?íĢFýÉúöŪc™UJJzíŌ'žĩ~ …Í~Ė'PzSfî ÅģčĒPå]ķßýðdųTĩĀüŸÍC9@&ÍæĖqū" mGoãG §9õtõ|CfHۜļP"rŌųBIcPÉ=Nq4ŪZÖZ R"žýöÞÍ!ÞĻvå—#8ēķäúãh―€[FV€šŠÚŦ§p‡;đëÛĐį@uĒ1ę7“‰K·ˆäDãF~ƒwū†ÅŦ†Ŋ`OIļŦ}"9cÃ<)vo<BŪï̌’2á/šŒÕ>ėđGt­ũĖóĐÅj]=Ÿ a)/t6aëÅÐ ›üdCÐFËâÏĒîaᇕ§ƟÁnfžUËåÕÚ^Įm;3{ôhŸ%Í*”ēhFĒN‹Öü? š1uƒÝ”Jyý>6ՕîwhLÆbw‡aóęšųž™ŅÍLûMē’�pæL%“ģwnzÓXšų1(ÕåË1ÄjoŽ5ĸlŽļÔÕĻåTFōÉ ßÖ IFTÐŲ§‰‡å Z’#XŊņš5V/ĻŲ D4‚€`”―‰ôÄ"…å·ą)Ąj[i'ÏėfŠ―$ŌÔ2*ČŦ"ÏI<tp?oŒ,0Z€äNžtDōüíQ ibįŊ†tōîÅDģœ4‡{ °ØŸD?‹Ú°É™:Žpg˜―'ëŦŲąV ēËĢHļÅtÞr fũ―돁äqâUĻQųböÖėļa/ČĒþģ&éB·Äˆā0ĨČhÏ9}S+Ĩæ>g�@3á `žy…sŪôėÄôŠ<ĪOïĮPŠdþũ;WUëóäâöNk„mÔĖvîëuÜ ė%bö°æ3uė` ‰Ū'íîšy@ýig‹3Ŧz·5é5„ČÏ^eŠ"ڃBcÏä'& 5 ƒ”û^­ƒá�óģQāĩÃÏ.Ō†CĶÉzzár‹gäZ―vØļ7åŦöÆ&]3C}-lņãíôŊ�h°$%Ŋ­6"ĻqIy‘QĐ6į́’™ðáތjŪG5˜üE‡“öÂDĪIœ ŦDŋgė 8Æ5Ú]QE“î.þ””}(+īfM 6î{’ŲÁbĒ"lyļ؊xČßüGúųÂÉæ‘!d-ŧÞéQTņ’‘ü–Ūyú ÓĘXHđëpŒ·šNŠ_Œ7(1fOĮ=ĄLčģ€$ŋ7ãô"RT’ˆØģKÐ>Í-h� Í`tĪÉÓú“õØ%AÛHëUÂĩxŒþ:Õ!ßvÃ)ŋĪ#s;›HâũÏ~)`| ™ �īu#úū)ûI0›ā;ËļWûÞVTïŽÓž{°ũŊ‘üØåķ/Ï=…ä˜( 'ęÖ2 t5T eīh2[ÍååĀĘMŪåú_§_>Ŏ _DþOÏ―{8 †RˆLAy,Ō@ÏŊööŅLIJŅÜYë_ŊšÁ{`0â™:F05ėý‹'@Ļ8uļ’…(ðPéþæË°žs9}!žŽBĒ‹ŒcÁ5Éáļ).“éQØaXcsk+Į›ŠĒÝīŦ‡a\zc­ßK †DšZ§öÄKg2ó–ķ?p€ @Ũð6˜đPÔ™ĩD6Í•KBŅs7! dŌ�Üžä+Ãĸ5 _Æ`@ŲŧWī6ų‹OŊGBm wę“Ļl’ŋ7‹îæMā–EPMánlĐķüm š“7ģôu0BĘ?ąą‹sŽ;|ŠC9HQĶ≗·˜šwwÃA”ģlësO3/ÛqPŦķÕT)&ÁZúX83Cį/Þ/ €[mĖÍð8_™―ī+)ĶÏÄ2þÃ7šļąįm#E_Č%˜“DŸwŦa™[(eUâū-õØđÉ2I =ä…oB“{bĐŽJ‹A·°îŊŋV›ž}· d‚ĨRĻ>ëÄÕũŨþQą^ģôŧj„čcŽrFuÉų  /SÓRŨ|GžËņ ˆËīlŊ€-ýōŊWĘŌBmÄ Â<lhMīS5lÏķM ’zŋûŊmõ�Šđi·ýū7đņŧÃ2ŋųUt†ˆ<‰<}˔ÖöûLk° Ä;‘sJ)(|ĖNڛúOOĀÏþÎÃøĒDķāˆį­äûb9~Æapm|76 íD“[K J}T‡}aTŽ­Đ=c:,@‘ÉGĩÅfŽpVâz,H@°ËŠó;íã]„ý æ!+äį\ž• Ä6 :éþŽōîG’ûyÁŒUëŌëJ%§°,Īj‚#ŨŽˆ$Íīū‰ūŲō‘ ヅänbW|ǰA7ņąīó°9šQ1åoD}ĖS%ĘÕDV(’)JIÐJj͘X@ŦY ŋ3ÐOīԆŸFUĻRōm‘âûU?†Õ søt+‹íkþQü)ÏáŧxþÃ[ƒgðÜ`įëðwäEĸTfĢWD=}Ũ†įōbœË0ī9mDáÂ\‚B§mbųĢ&7 _xZ5ÓŪ’ę,rR,ũęIŊ›óÔOdĢD™8ļ1ƒŋŌ)(^œĀZe`<ŲÞôë0Ow:ļô­‘vEĩð2j6hā:ø„rfĖw˜�Ō!é#Uđ­1ŪķáîâįFĨƒoâS•-ābaާÏÍÐÆ›ĻĨöëÆtÝ]CsWjÖjôMÖĶ2ƒU$đâÃÅAz';Y~=‚ƒZŋÛ@Ō)‘"ž:}6 ėÐūÂüÁĘÃą>rŠ ĪPIžĐŲ‘°CÔ ōŊß?ІŌã;%€f#‹ũؕá?øĨxœÂbM=‡9˜™y ĪZü›­d„"'ŲūΚŊÂkåč?lrß%BUbÄVA8§Åėēū·qĨIrjģfǘĪgëۍŒ@"2dÆ8hīy.qĒčNâ›Q%QœD*ýŒ 8ōN)ˆÂƟuPĢ?`†ýnŅë=ĩä”wØäyáîŅ-k:8ÉņLĒSƒâŠØQY2-øŧšý*ĪLö7u(sÝCC`XÉo^ĩD Ý<š!ÎŽ7î,™h ’þ[ƒ0|0ŋŦ[5âؘģU} ljB\&6;&Ō t[Ã5ž‘l°Éx,ŽAûcåŽßóŋ60O DŠŽƒôĶ‚XӍ‘a‚ĸJ“OēĶ“ $rlÄÁX°�ļ.ÓŌXhõG†ÕƒĨk0ÃG/ĸŊ‰Þá \ėAóZGR‰hųCū&ÕðIôŽøØĮYōBbÓrĻ?í„ÉAž*:• ãf•â^/`ūÚņP)ðĶõĪÚ7šŦ†KČØ*ÅA"W5,Ū™)•<VėŅ–‚WĐ|›FųÛАŲÕđ6 pãwÐžĘ*% üõ{Â?ŧ{3ŅâŪ ú*A —Fš;BqYžÎCōy‘fŠ>KŽHč…ō…žEÚÄq6m―Øīof^6L)‚K(ÍÍ-ĢCŨezĀ Ë—Ōú…UOC$!†iŸ óĜcyFž*Kë?›J‚‡#ĖĻ7Acŧ %ˆ)ëʞð™"p―3/�ēþÖ8‚Ø�G,đÆÐ(WL&3Î^ĘïHãaŪú+ƒˆ‘}Š‘įØũJ]ZTï}˜P ŲXúŦâ―ïhØïlý)ŋĘ!_4öh?ð_ī5H*3 ĮKý02íNŲXļĀ ƒTŌxfĩšĩ‡u854PũųzķĨž^vĖęŧûĨ-H?Lïî4%S0ĖĮÁųðmËąÓ?(xL;“A[YøŽĖú3ßG9·Cõ§›áMfíC@"ë!đÛ­ ˜ ûGĻ|ÃÖϰjøÎëÉ@î‘†KþŠÁ #VĘူĨ~X–Ú–”ŋ0Ýũîõk3ō>.(RKǜkXĘ1<ƒP‚õA5ܗĨš†Õ #e žī‰ ÆPėDRP™vúŧšÝ–“Č”`ŽŲaĐe䞃…ē*s>LŋúMÍŨx>Ŋ ƒX\`ąqðĀQ*Ž/ýIIōĶ3aFPÚsøš1 g@Z=ð93ÎúBŊr‘‚/ÁÞÐXĶä.ÃņüCĸqå,=›…|‰Vûέ†ŠåÛâ_ČúĮOÖÔÕíĨ“q ÆĘBî~ų$w’ŋŸąbûÐĖ"Fv‚āƒ„f›P,âÅlQßĸVÕĮí‚`ÝTnT*�����������ĪšÖå…c‘@ŲA=•?‚.Ýj&a4œēVžPoD ˆŌĨ§†Úģ”SÆþlGdFī@fÖˆ—]�“|}˜ã=~ØĨN"πæ˜å ð―þ]ĩ“X*„wëŪŽ Ų}֙R6Øų„ĻügĖsؔ>BōšxŊ9ī< TkčÉiKâƒVXî ‘HŋšAiNĪnjHŽ9ģfCsąO=5& ‚ČÚņ77Å<jaå,å |œŌÁ)‚”jSwú7įĩĖB˜ß8ëu­DwRHˆ­†<Ž+ųŌēÁĐEī­4ŊŨclŅݐøĮĪĐÆ€Įs€æŸĄGčŪĖÉíĩd-ĸ7Ía„ߘ·”Á1l6Č9"6ēæËŽ^ōƒLi=öŒŪ ąqŸ&á…QÍmî>r‚Õ$dHöÖØpʈĒþĘC QÛLų6!RŦVâĖ”"Ēė‹‹ÜŸīëbw{T™âŽ8Į…Õ]iUó­K 2ē2ē-]k™ĄBŧĨ;,Ĩģ<=*î@Ð���� ģ…ųþ0Z\=)øO]LėĘݞýȏ\†!―”c#ėëõÞ úŲNāÝĘ™–™ rD€ÛĐúūXeõ9æ\+áp†=x|ÔýJ �{gß= bOƒbĄĘūĮ]ÏöDdĮâՎ@Ōõä_ė^m'ÜÞJý1Ãw mŨ“°����{―[C DEøl.e)Ŋšāfá>p����&nÖxÆĩ3MUĩ>vf51H„����+aÅl―œ?Jæ Ako/°þóž<U *ģļģÞ. l&ÔĢ5Ņ@jbÃÜēĢē–qŋJˉ,Ó%‰ėķčoéÕ °Iï ‹š]ý`IMʎĐîŪŦ:ĪB&L!q"ŒÉ-CoŅŲIĨų~§zõĶĀķKú †hŧ]9pĖÄđúĻ |áöl$5’V}E_øY Є“[Ļũ+KuŕKÉAW!ĩ-ĸ+‡ÂŌÆ†1—Næë‹éã0sŨ,ŏœöG-C ŸŲ[FF 5Į !Z* ÁJ}-{0Ķū•Š— (œÜýT_5ũ.ïĨšSŒŒø!—ÐĄþuDp Ôo`._bz<>Û1QĨŌĘęckĘ;oŋƅKŽÚFWąˆÍŲ•–ŌĻĄ”�>'ŪÆžļ0pÍʓéĸ{ (ŲČBîŋAē°āü‘Đ°ã”―hēāž‡2sôČŲö ėЋ™ģ2ĩyk�d(DgŌ|ō ʕâJŋUL­Ī„ō?DÏr•Krs=…ĪN›ŽE§JŪŋíĄßÂgtDÞAėHédRJÁÅqĖÎãiëhfŽ= ‡.ņQ&ÐdîÄäåœKaš­?Ĩx՟zŒÖ‘šEÄ!zátđLžą]”·!V•EZ”ãôŸŧMĸx?BBųĘÜi �š—Ņhĸ!鎮fŠ[Uá:éRŽíU·B-–c-ÎĐŌĢNduä<Ų/‹ĖŽÞC `*dž^kˆ§~Ēï?sÛO'olyÛ!‚BøŧĪ]L8ČÃ–ƒšŪîãþsāwünŽŋŸ?ŊđýmĻYV(πu—î―˜#īeØŨŲČ•dßI_\Ð:īĻ:+Pē`Čo ŋÓĘ Š R<†8úó(ðRjîŲĄ‚Ač L|ŲûZíïH™nŌrxaUqãĒKĪHņYȎūE‰`UÆóĨ2'ƒn+YO“ģŅ~õÁ*oÄrĄŒ›ĻZgåŌŠĢ‰ØČã0oįKá―á]Ý uôŒÓfŠ‹‚ēõFī3R-Ėėó„ģT7#?‘K_@^ĢÄŠ…ûó[†Lī5œølžïŸïī>ómÂÁžŽC,1D8aæ"ËŅĸ%]ŦӁ-Ú9eúî@öžÍŧĒ5īÏ^Hߊ ÔĮ—ghų@ęéË %wÖ/đP’äßĐ― RTÁý`aûóO–BôŪŦÕÉĒø r―Ķ)y]ĨĒ&;mPƒÎø^}-“QipLJr،ēÝýĀ/Ý)wĀÂÚÃ;ÐCÛn"—ÝD ôÎ†Ņ ’YþŸÃ&0ä?dŌ–Ä(åė鷝āĄþedĶVӃT/įûžĘ—^ pé?‹A1øâCFËŠÏ&ĶŒÏ°šįģX4Iã !Ž ˜Ę~á5YŸĩvđîĪAãēUúFųXU·ŪxËūļ@ šWÖæŲÓBŧëg€éŊåŠ&Äj§MžTbĮ™ë t8"åŪx*ƒĩäáýņęŠ9e§/Q FéJėæĶĖŨ˜ ‰€Í;Õü.ĩSãĻÆ]O!]ØÕŸ–SĐēõZ‡>\Ĩč9 ô%ð•ôm@šRēbCĮÜRŸ;qPœž|ĐūČáÐØî0MäDāũZ ÄĄų.‰õÁ‚*°‡e;K ã\Í*Į; Á(Æ}ĩŠŲˆũHpîæ*ãËŪhš˜…YŪoķoÞ7‚ý‡ŋ‘ÕŲŒIL8[ĖãāĩËF/ņķŧJoūl@~ôj4õ°2°)øeýŋÓfÂõ*noö]Ŧáû/Īí|°Ŋ?ēy;KR2ÅsĒĻÂĮpš|\Ã'ZĒiØÏsP3•+öˆ`ó@ˆðh1€Á?+ĖŽ|węŧróĐÆö\Mm0ĩoN“Qbuäū ïĩ…‰Rnã,PÓå\<žĘA)AĘ@ĶS•'1Í.P aÕ§AÜÕËó>ŠŠŊ_VßW^·ÛŌWðÜÏÛéįûzøŨÕĻ_·}ĩõu·û}ŊŦQoŦĩ‹ęėwöíęŅ)óß{ęßŧęęŧöôĸ}―[þßLĸmë ý·wíęgūŪÉ?ov7ÕŊ_·ŧOÛ߇íÚÎęĢ`WwÕĐ·ŦOÛļ·uoŦŅKöõ#þÚÛöôIßW[_··{ęÐÛÛwíî7öë`ôēPwÜĸ/: ;wÚ#Č-:ýų7GPŠ4~ADäpĨ4Õā&“ąK^ÞĨÜŪ  ![Ŧ!Uč Ym@<ŽÉ㌠í†Ö{ėó4UŽų!~Mý§~·§ãFhÞúRäķõ'UNéDßũÐËÄzýĢ‘ĨŲÝR @Ģ‹ŪŸÍØÕåøũ―l MÏŲšU7ŲÁv―— nuVËÔO3ZÂTĨ—iÜâÜ|$·@3ÍAôâW”ß’‡BøvĘkĒ$ôy s/,A632Į“ÆRHŋ?0ĩö/n‰œ5û_o} Â=ÍķֈWe[S›ÞĒŨLc•ïŲܔ?áÝ"ŧ(âIkæ5>đ•oļ,UTâHvþw€|öõëßʗõ—•Ų>‹Rýĩ֒ģÐ !Į1õī:ÛI›ž6)Nw+t:ý-ÁŽ74MD+ķķÎrX+Ē„Œj ›`OgƒĻQÛGQˆ™Ŋ„LŽÕ…Îî2†Āïî_ohĘi&OĮąF&°ãŧ åw.Ýža,]@•…Bk˜čuĸlî@üwņ~D, ʏFķZb#˜ēķÕÔjxlrRūAÅĪPr˜'}}ÎSĀ ŦÃkOs?§Ïüķ§u”5)>ŲïÁ™Ëô™ ąäXÜyb$ItÐí óI6hĄX…·nö[‰FÃKåī1"­43zýä Ĩá›–Ä9Eŧ!6MŅų›Đ|{8ūŦ ą&*GzmŽ|ņBM—ģũÄl˜ęŅšaŦĖ'*ð īŨHĄB+åw~Č2ņ֗Ýð{y-ŲšKrkŊGC›*œęMčîÚĒĖĢšwLiÞ?<pē$Ð|šęĐ<o~ŋd4}ÝØÚ<anĢRÆxÄZ;鈋"]žÃKqÆLqÖT-VôÞicŌËï+}Á°Ŧ~” õ(‚‰, ōDá”ÃfïĢĪ(”ƒËž>ÆņtņĀþŅ'ķp€o dĶō”ë8€õ:išNôŽ1ĒøÐÅâï*ÔuëĖ-1膩,†á<;P øE“j,H€Á0âíHhåg,�pĮĸčí­ÍÛdBÖEáJĶ|`Gg!ŋ1FLņ’:vxÜ{D;tö›ĩ_pÄĶÏwš–ŊčŠīsĐ-ķ{�ÎũÞŠ_#Íh”IĒūéË .”‚‰ P|kš“2M“Ÿ,ĒŽđ‰AéėvhĻ~—?}~ī(į‹Īj\ ęõ^‰A#äHøyŌũĶ ũČ o'ŨŒ'ŋļác4#MvBEŌ ýC‘4€Ļƒą&1YøžåFž0ĻRVvcäՒtŦëXû63ÞG­[K7õ$„høÏY.,DĐ HÍģŧUþ#z%ĩI`ŌCėķīÁl<€f˜íó°PĻšBJÎöÔĢë•?œnS79ĒūR8„4ąĢ_c,„MžX_+—Žå2ÜņZ|åƒRucŪ (€Ëĩ+šĻĸŠ}ģ_ņÏþVÓÐû)Ī2Ą&ŋ/aŋD·i7XýUcŌ~ņŒØŒ•G6€’:'Có~MßĐ€OĄ#íZC$ŨÎ+ l5 ÝÐŧlqė ĩC>ļĀĸL'ļ Uã ŦéÁXxЊøÍS&éŧÄÂĒë~ï ‡ŸþúSPIģ€Xŋ:8y/ jZÔ8 –?ņ°›e‡ËG-ų L YŠ„_ÐözOĀv­�ōQoHKÖĐQ°?Đ1íÄŅŊôæĘC@…ôÉtþahF†}ŧûįcļ5\ąAĒõå0(ÓØ“čĪļL–Ï:Ø-ÁcÉŪäAðŲę˜ģÕĒíĨĮ…OógŽļųWĩ*ÕhīWąwœ1Vēg…HĻ#…K”ûîH.Kf€ yðqÝN?âo0&›fö-›súG‰f~Ÿ}ēũēwŨ#Dagâ(U^pįú–M4˜`xNIk•āĻžąęŨiú|Ņþd·I&‹Č7Įt6CĸhWųĒ-ņ#[ˆĶĶžįđOo™–UKXýB/"9Ôįf™>Ŧ ?ôäŧ“c֔šž)íT>Ģ-oĢ@Âķ){ÖÍ ŧĮŅĨ…ï5ŠI­§RAŲyė­qįöí6ðėŸ“S_ÍK3D!šP1ĐĄŠ�g"?<ūsUÃČ1å‚hĀ1ĩüa…,ï,'iĢEä';đÔĖ0yVĢŅNhŪīņÄ2ÐuSØīĀ}_2LtÚG_Ahđą.ܟæĐÞJđĄOžîŒØŽÎZWŽ I€K=ïá#†;°áXŊZÚ11Î ÜÞ þlŸPHŒß+§„0ūĐė?%™āĩË―Õ°Ý3d8ÛMļ't,ˆŨĪ KäLßÔ.*GI b€ās� Ë`z"°ðĢë,6ŋC\ó•rÅâŊy§q&þ(ŋ9ĸX ōÝI2Gk%đøĘßöNūŦ04ĒûÅ!ģ9GúŋÎâ]þjPZE՘tŌŲāvÁîh­(,ë%Ážp\‚ķqč*{LޜØŅķRŨ„-čýŽŠķŨŸĒÝĪ}Ã^> SjïX­ Y+OĐ?·+"Žnđ6zĸjĖj‹œÍuÖÄ$š,,ÚWUWö•äk’lS`Āæ(RÅ/ '*!€f„ēøËšFÄEg3 ŌtFGDÓŧIšĮÝŠOqÔAûCĒŽ”—ŽZ�V%á-uŲŋ[øáĒģ4Ņí’7Ā”\†@Â]ß$J=‚)ļœŨPp?ŸP=˜ðÂÍšŦb?š“ˆ,pįj­_sV>Fۍ˗ņ;"ÝėÞâ“ÉėE€ŋ%ĮRūëGĩÛcĀFŠīóˆ|―jÆū…·ŧĩÖÆÍ� õ<+ú'<šÄ^0ÕÆÅN•ø�RÚP5•6Kų2@ž&āôČ:'Á”’ÞB2>:?€ /Ýu†ØLė ZÅteS­"̇ŲūðņŨāiŪūę:žóĀbŌĢ›8“ŽŸŪ€Úqî—FaYË yũ} 9―ĩfn\“Ū6ĩ=Ī Žęûŧ#Ī QæĻĸHPŌWï1Ŋg_ByũTųãĒĢË~ĪmI ā˜']Ė`ĖÁŠÆy0ĶF||;ŸōŪĶZĮcødžŸ~+mAÞ`a˟Č)�eŽË‹J”ēhïw“NÚ1œ}#žŸß~8sÞĀÝŦŧ8ېt”!]0‚xųá*?ŲVnĢ—Á‘ËæÁč�<_V<"`eīsũėåą= ÕĨŅéVDr úcĻʓaë m6 bƒ_aÃŨVÆT?C4ðĢŨJ]Øþ·þ―"RÞYœ ðāų‰peĒ †þlXr ÎiڇĀņ?ˆuŧœdöÜā9áö’KáÖ@4M*˜,œnŨ™øå˜“§J§[ķļ/$’Yą`jýX‘u‚ęcÓ·Ji%§ųžoÄīsĪũÁ+.kč™Ô +’āī&î8~Ĩôz1Ųū ‘KYÚF$Iaö›<m` .°Ē‰CE-õV–yÞЍž ï!Ų $šQš#Ö3Ņ;B$ŋöÚAð ï—3;íTĄd"ŧx_ĸ@B?öŸōqō­SŊĐĻ5Į}•X}<ĩeč“Į{4ëtöQ|īĄ€3Ņ#bԛ<ŸģŸŽ&Û[ØãęÓaníũā, îvidDžŪа-Ō—ë6,2rt—ŧŠĸG8kõ0VÛˇáÛøý°ëK‰ėšēÏáréĨØnŠî'óĶ{ū Þŧ‚X-Čjn“tŋhïp…Ę^w‰EAūĒztŊOžžIú~^žïõÏo–UÜ4Él―ÕVzūđiCÍ9/P{Įb/Iģ�)úËvJ4ˆ @ë-Þ0C|ÂMäDĮQÏy#―üūī뛁Â)†{ï]fj ũķÄÞ Ý–e>h阧ÕTtūônoådĮ5ģeß=wriKŪ$OîbkĨÖqv?ëwˆ‰LČDBâ6Åū]ð ]mBZO„"P~e`!Ž:<I6?ūŒ9Mú ݍĄŪQĩ,ĒÅIgŒĒ“ƒŠ@‹6Iå õ4Ïņųū*ÔáŲ—18ø8ōßâëó "'.lø<n>F7%ÝMŠAcĪčɒ·ĖI*BیpZ‚ÓĮnÍŋTö:TeWî협)á „æÔ– 8–ûɆÉ[dxH8ž 1@ǘČa aa{B^5ÝTĄÓ#þ ”Ýbŧü|—ĒĢäþgðAvē@0ĖkVu!’‹TyÝĨJ‘Zä}GL4=g…+Ĩz˜gī "8IīCðŋœ[Ūݓkl°ų°tā {…āž$ÝF0…č?[ßéHŊ@8ŊwTo9>…8ĘčaūĄė}ŋ{$ŲNý\#9·!ëÞŋņøhqJ“Ē>ÍŌáƒU€DЕö„ížę·ˆ ÕՊ:hï˜ĀôĘē<Gč,ÜĪÖúō° ïe›+7°”€FĢ_[ø6mDöjĻīæÎ^ žG3ōATîš,J†˜~~•Äøîˆ#dīõd ļčjÄðWĻqˈWŋåĻnšÆ°AļžÅj |ïBâß�°ĐÔ@ÖŧFF|Ð_îĩ]ēsôR{”į:+Ŋæôõ:Ðņ'žŅÂÉ倿žÃ‚ų§Ā–9ã›Eŧâ Oärūø Aōe|rKŊU�-Ēlũ˧f‘s”ë<ôŽĻƒ)Oús8Ģ1OđŊ˜ßšø™Čw`Ú3-œ[xđ7KˆŪ) Æé5ŌÝ”Č’Īæ@ÏaÉĖjzéHŠÄîUKÁZ ŒéZÂo>6ŽĸÝVõûS<ƒœÄŊ|Ÿm8āRæ  Õęp -^…ČM– YūĻnīķHē út―ë%  eēn·”ï0oŊoJÎhgÜkŠą(ÁÖ"ƒ‰b-ïE3~ûԋ}…Ķ%9 ëÞRã/‘þp<žßīrŽ,čÃų<~ČÏëėâ:Ý ˆîfO­HēŌ΃Úz!ðx·c‡ąĐũį} āM+~ƒ6ï+õU]bąŊoc9ߘ§…ØKĪ3‘ĘuûŊ™ŠŧŊ 1X_üĪUóýxƒÃYGéļ ˆ!Ąf}ņ̃æ{@AŨpÂ&ÜO ō! S˜öËhßÏV­ë>(’þƒ…Ē͎°“Åk2ĩwXō"ËWŅgÂð‡Ø!dŋ•Ķ&€ˆĩÐģ6Į7 þ@îŲc’ļ7S]ô7—6í,€tžLü•ĮE G*âäiîÕéĸ6ü B{4^âíŲ•ž?éi -@„jņéáŊü‰ÎĖ\i­=üZŽðՄЂû‘qåûĸ.O ˜NÐ@Ô}#kSš›ÜI7IžwWĘĶC0?YXÞk™žčT1ŸęųƜĩ’5“åKÛąu?·E°Đį !ؿ̕ßQįxšQĨ‘_UęãŅķ}ŒVŌ! `”<Ņ'ÏĨôÆ/OQ>•Ï…ĩSøHHXL&"åfƒ“]Ô @ĮO!–Īå=YR6 đ%Ū#5ĮÐca‰Kĸr3­]ŊĀ€Û@äĒē[âÉŠåSÅčXA"RWFō1þ@ņc‰RI;vH€ÝېĖs6Žû[Õā:ƒ*ŧŽß”ā­’Ū;ûŽNmÖYԚ˜oŒĢ›Ûh/{ xEl01':öûŪ>ÝéũHFð9>ĮÐ"tvrŋĸÂģ|`ŠĻ`ąĶ9úfŋėĄó”Î[ )ØŲ:ÖÏX;ÍøŽ`īœ‰ŽÆl·e%æÚßËypXÆ1hŪÁóÓķ_)wlfC—ĩĮíœ:ŦĪTëĄŦiÆÏ‹…‘į|TAQR!ĩ7q5;ëōųJ‚!ÂĒĻŠ*Tú1–�_ýôuÍ ķ™Ę–ĸ8ÜĄ‘.ķvjįĢð^Ē;ū·Í ^jûŋÃŋF+" æ„x<(ĮMĄ€HÂï|ÆŅӑ"―Ģ‚K/đuF\cÎBdɰ9•sMfĐRiįŪ“Ūœí RԀķ,ÁPÍejö�pý,3ĻžyĩÛX™]khæîáėã—yÂGu’ßwÜ'0óâFú•V“FfjÞH ąŲøï–`õûÁ7š’†SIïv>ëŅ6ĩĐBMķØ@Ã~‹=Č_Îã|&ĻÆRIËjQÓx?ZSÔ{uŲū0ŦŽøķó!VЈ…—NŌqß*ŽZGúÓDÅG,ĀTĪ"m―†(đZ3‚―Đđ d|?5h:ét `)ÞÂ0?ņXé. iÏïķËðbayú4ĒRÛOę·g}…*WVûc_ŸŸâ†ã&ŸŽ―Þð;nØđ}2:ødÞĄyĪh›[ĩ•Ï#™ī_„ßVĄXŅ“āŧ›āŽ P€q‚…/9aÐŋŧúú9SË6„dä§Ųųéߌä{=áM™íĩGځ2P|žÚOÕ^JģîĶŦū'Ô:•ĖGîĒÕŪå}–ki”ãSčžąĒ7ēYā”ĄÞ'ĢvŧNÉ7k`Ę9Ā‹>§07ß FüZ-ü4žWÎLæé™€ŪvĨĻ{ÖŅ #ÚĢÔĢtüížËYŊŌ>\LĢB‰4ް~Ę\ß―ŠJ<Į]r$Ŋ>æ'^ åŨ.ݜQoagæ7F|W…ËmQXöWtˆ1‚Í…O9­’)TvÄ|üvlt&ÜĖ7 čļúę7ú‘:\ŸŪ™–a›XoU0)iītĪĢ īse†>E;éĘ9\*;Ïōéā– Šý ÞyĢČéŧ?EÖ j‘Á(É܀9EZ�^ũ> Hâ”Ð ’8ŽķKJˆĶ=ŒÁÖ]YTĀ#1Q;€-ip˜ÕĄŠÄãĨ·ÔdЄˆqTūþŽÁ€ĢÐââ‚Y ĮņïĪ—5ĩD8Lle3ÄčĮzw†WĮUJ(#ģ>ę%Ræėŧ=1ĐdqŦkþ›ÝŠė*<2’—čŨøØÓßĸPáhŽË*°JZëŪĸ†Fœs^ĮŠÂ”šŪí€jƒ’˜2Äé{cJk3Ņ)Ļ~N‰$wķ Ģ^n€‡1œąÖĸ^Š„jdĀej [F&\?ëÄ9BŽ‘5…ŧß-?~T ^Tß‹ó‰íLtsĮØ <Ĩ™W(ųb‡d+šÂ~?jŧå m;-Đdãų%œGđœc& k:í„!Mé)‚@ŧ€&ÄiŊƒúӖhÅU`!Ǎˆwŋ q­Ž?ĀļôŋYé‡E+æ.­c8ŽþˎJē3ÐUŦDÂŨH%Ž'îHI~`Žå:ïˆĨnpŠlwVԑā ÏÕĢ•ēŧ�|ĘõÔË&1ã\já šfYngĸąA“?ˆ‹?æ°­‘ß›*ˆâŅr€…[Ü·Ėú<€GEXĪV 5,Čėõ’þÜ%ŪöŽÐ@LŽĐqÄU 7( †MVēĄúY†")UUōžüâ]pՖõsĻY&mĘĐ~E!ĀĻ{ĮW{ã"ð`4Ð^@’}äįXßīŅÖÕ#>ĮOÛHy]†B^ËfįNÍ^TGŅóĄ9‡ L.†öuëi1oŽíËԃԠR63Lj6īýÝ\·ëāWųx cþ'ã(mz #ģņRc·õz`cqāįÝĨká,WBâe!8 ?,-ZÅ\ÕNŲˆßūŒOB ]°p{Ð|ŠLæūĨð{>U˜W$&Ø!ĸöī  \Ä ýÄNČéŋņß_čŽ `!|―Éu *Œ‘B‘eA=ĨĖ€iëß―ázŦuþ˜Nē­Pŧ5šāŽŅ žØbíN<D)Ž#ĨŽ7ÃPÁšO\“ŠJãŌe_!č•Ü:ÝÞīĘŦPÅīÄht6 �Ú]›|žģö ?Z"äĘÛ<)H*ĜæÁƒk„*N†ßԚUk5C\æ5ęēa—Ôþ]‹y!6tHmÜāe o­@qgZ?âüzŲFũ@ĢÕ ôĘķÃzR‰Ū{žðgŽ6§ ž0—UˆĪáFûß( š|Ð2Wī‹jąũrą2Ō(ŧ1QĘíøÆ2uŒŠŨo ’—`l/&GĒgOszīLÏëTxë §ŧƒ4|TĶ Þ@ĩ}'Þé·þ~™Ęķ“ŅŦšĪ7ŧ9Uš@IIDģrųE°6‘aĢžx~ŌÓ=Îįč譌~ã% c-ÎÞp[âŲ­ŲŨÞ―—{h›Ü^8Ģ?û�øjŪĸ`ŧgÎm?ķ)„eS(s@í.Čp8k^{EÝÖýÐų%ļ:6ʑĒĖMÛĒÛYJOæ{īhÎ/X}%į)ŧ˜üˆŒz“Ÿ„…ŌŠĶāøk~wī kˆÉÞ8ôMžØŠØŲ•ÁŪH; nĖsč·ƒäÐX6jgŽV`āđŠI… ïG/1ĨýN†háÞĐĶ:ÏæĢtEzS< đSŋ ĩۘÕ8NfN AÖÛÏNÞ?‹QzAļ㊅UŨðZē�ïc‹2‚/‰ŋrtåJ e­ÍĄāę{ÁĮĐuŪŽÁlĄ)Ģį%ôVH Ö83įÃĮ|ɖ:īŽgĸZßÛĘû2yˆõŦßM[šF‘1:ØK/ Î"›Úޑ˜kxŠÆūŒ„æÛl8†/ÐŪ†ÜâYāyĖQl“CÆüU vû–î§8§ˆððKĘųß?čŸvx}Š’ļE·›Į/Ņ6ĸ&ūŪlaFëŪÅ8ģJ’ŲiĪsšÜg|~*~õޒĮÞ ķ]ŦĶēŋ›įâēŽČjĻŊ.Ŋ ĻÕë#D= údgQ@Øí.1!'ęÕ§`!ũĻ'Nyŋān,žO“ÏbWZ€?vo>"ö v;4–í‡g‘CųN51ę-Or'ėWaą$Ŧüz5ˆæKĀ*k2åïQáūÄEsRD<“ĪųJ1Ķä õd·ãĄmLäĩģíËlĶë~Ë]û’-ičž<TLØËī –ū?:LpŒ%ó "Ģ!yvÞ,ĪV‹Ũ˜ĘH�YĢ"į·ųBC tO"ĶØŽJĀþaNĄ|Ģ&{Ē2īvU‡3}�ëޏ?ļlĨŽørÉ R?Ĩ†§ŪŪhC›ö|ÆqjszZÎ$ŪwāéÚÓTɌPÆĀ· |ØüČķûĩAlâ@e'ð1ËÁŨ0ŠđޚCõ ģPūIXĐW“Ë`čĀ6MvōA°ķAųâcÉV€ 0DūŌ4ˆþ4Þøēa:ąę%æá=ð–~@Ÿ\u';ĩķĸfŋ֖Þ<)]BŲi9]~í™Ó/ø%Ũy_°QõEõ2ŧ,KÛŌ<4t]õ ūøóę"—ez‰QŧÏÐ<b―Nœs >S"<Fû#Þ­·ļwKYÚøLŒņBåü7ž› ŦUu6~·žÏÍ#ēą1ča9ŧ4('Ĩsß é/―ų–0q.°†ķá~.Ž˜KûÅhÂų)wÞR7ĪÁ―ŅMf Ōž§ūP:ëoUb\œdez­Ó# ęQÎÍmöËr`ĮdÎJ/_á “ShŊ™„ßIŠlŋë(­,ĘŅT!Č؜_éÓúeƒŸ'wŽÁFvŪš=0ŊôSËzŋûV_ÁĪ7ÅeëXBēŦpufÏoČBōŦrâŊUĻP|ƒÃũčëÛ0Épûïtā%yÎđt]Ŧc~tˆÆ.?·gŋiāg ‘g‹LŒÅå…ō É:`Į”CÁ Kīž3WD9Îm†ĘđåE/Cļ‡gÄ ÍŌ4š Z!kvwgLŽîp§þ;,;K1§“f§%*r :_$wŋ€Y‰­>ēÝ:ę{UHlļņ,*ēā&čRWé+°M54đОšúÆŪķčö OÃ2Ņá†R‰ ōŠŋ=qûfĻFĮžųAÏNsæDĻĨNmEGEĘWŊ`ōâ�aZˆ4ĸHōŪĶÃ|ĢnýāŲ[óŋĢ ÐčM*ũmãļĘÃrœ9·YŧčNÐ#ŧUIã›VšŸ ›ÝųNÍWՋíĢ’ÜŸûfŠKdĪJĘfpOŧÛóæoJ.Žð˜&;Ė ĩŌ–ē­P‰ÛÄT)‚ķ­0ûþ‘U3ԋuüđGQš~�_;ŨPâ­§—›X3u"AŠŪ)FŠĢQÞ̘vvýĘŦ|ēõ_kó ―Ķđ=ÂýĨ‚Ķü"…Ö8Åû7Î(’õķ)ÚČø| ·Ļ›VhōÅ_nL%*Ŧœþ. ząŊ1cŪH‘á{įW ĸ 0ŽÃh�9"PPðĢ3ífPž.}ķĘųMū.ÖXúəļOïĸ@`―Zđ\:Eؘ™>ĀY­c‘hMĸ°―BHLQ>ƒá\Ĩī$ą#ËōfKŲŅ�ˆô”l Õb/ڜ-Ý &[·Tōx=ÍGŨ`Œy# wаÐ:Š@ĮEŋ–pŅ›TĄô Å"ir6ēõ32ÃYį§y'į{žķéþįAúz?ėĢÞMyØg+TŸÄßð‹•ŪXH7Ē’ëĮSŪҚ+,pąĒˆmųį~·Ī—ø,–ŨŒØqĀ-cR;HŋóĪVmë7;Ŋzx37lÕ ÂûäŊē ^O44Ŧĸ ‡„øytĒĸ?OA!Ū.·öŲól°_qe*ôLęęĻæaoöíIÃh Đ\ū(*Pĸ~ô6įÖõģņÍj?ĩ&Dv#āAÜŊØíëðÜŲQôæÄ:OKØuÉQ"`5*n/Þõ2‡D$Lø/ߝolĸ~jķ †Ĩã}î}Š‚ ĄŽīWO>|ݓûM4štm�™Pg ‰ÝyķܑØîĖÔ,!ĩņĄķ?ō^ŽŠĸYŌąĄ5„†ôŨ7jÐD.§Ėh·QŦ(ŧŋČe뭜%éNŒū·érsÎį.ėWï°ŲĖ]ā Э•mf&ēÕNÅET‰Ņ"DÎ*ûjŠ>qïk7wŽÖė.þŋĮ%ː>WŠTÄĄ“ˆG%Bø‘ē7’Ļ=ąōUų“â‘íAģģáãë§―†žOâ7Ã�ÕĘ3ŅÚoôãčëÜáũģt-E—ūɒjRÕžgĘV‰st7„F†âŸÎ"īyŧ„ĒôðaÖ1ØfÍÜPūnÝwgĸoO,âOcKŗŅ%‘žuryųA-:ÞObŠj# {ã"”9ŦÜZx·VP?Wč ^Ĩ?ïPgúųåõSaˆĒ`ÛNÍāúô#x݄ZŦóËĀīų ĶW# ī­fįUÃųۅ Ũ–8ĐĖÉpOÏ7ˆ?[ęE―Ęó5Ūą>ĨušL_q„ü4˜†Á K0ý}Uå—ÉG[Óӑ\Ûv?Ð8ÔŅJXL†ęÞpTÕÕãVÔUÅßâŊ%ļG:fáaËaė6WĖ.ņŅß@Ú7Ō‡PĪ· lķ–‘MVޚČcý;€(S§Ö[uAˆđå—RÎ8c}hU­ĀŦrĪ ĨbĻ%čÍí�ïy ūŊÁR‰Ļštü^Ė1˜# Oo'Ë4øĐĢãnķ O|ČōE5d°‘1đŦ°+ÜQGfst (?ŋ�/o_1‡ÎØĩÖ7xō…Ė+]/§žôžtûNÐ]īĒ­ ]nZ“@Pw1‡ėņ`ī’Ę_ûĪ:G`[%R�iC6^?”āŌ5b%•ōöŨŠs:<ĢãjŋųĀðŽũ$ąH+Ï.™ŽiÚ" ö*Šģg>đŦ<bäÖXLË{ũóËýtBō‹ !›ąŌådįŅĻÁ…n:*Ķ=åÓĐĐišįqĻó!Ïgý7wô5܉āûÜ ÃcÏžš[ÛhGÃÏR—ý+ß.Mo`z5ӏ 2ąeģiŸÞTąß̈øËgŒę‚*TÉogž?h$ ÔāŊģ9ą‚Žî5Į<ïw{Ū7ŋUýåâådėūæÕГøôD―ŪŽ˜S–ïy‚üÏĢÔzÍĪåLĜxcFGģūOļĶ!:æóÔrą5x]HŪMĐ<é2î3úx{ę9(oHÝéĶA&g<†ņbõŽėԇQOÏ�7ĶO@þWiÏ5;"”­ėWxXÞą@;UĪZ~ÜČĄŽ5Ōd2‹°ü5„ ē3RZ’Þ…Š`īĻËÁú"ī$ۚvŸjœ6°e5Ï ŽŸúcp%mī;A}Л–aÓ/GØféĸ{ŽWķoÅxÝ9GQ ―‰rŧŒx>ļäysqh,xaX·IÛķ[ÆYëý^šæīgĩĻ$wðŅ;:1óeÞluā1&]ē°Ý—ÎG–ĖīDXäØļÝŅÓbĢÞÁˆŠîõ™“æ6lå“åų%4ļŪí#ŋĒ4ŽXķĨ W*X;3 hŅŌiy ÜëeHAÏíŦDÆX{­(|å^Áō! 6īíƒā‚"Š*@Žî ō‘eŊŋƒĖá9NŽŋú*æÏĪ~B›Ļ�`;ýG°#ž }âīmc‰V―,―ō0dŧ―Øvļ+ūڕåÎģīóSę€ßušäbL GlĄt K0˜ūë—0Ëþđĩ8­�2iîūz]Áąq=ÉXNj‡܂ýÃĨõAâ/šøRڐŧ*(�����0†j…ūėÅ=øöm/|4lÎjA ãĄágĸWÐîëTōš•ƒ§zĮaäölž éz9I*ģ˜0ØITØŲžÚ)ĖCЋ ƒ-gĸØl'ŸĶëjưzak•DÎ83FÓėPH5'xËÁąHp  uĪ{%ïŧ•œíðÐv6ý{ï HōWĻoėSs͜pt€�HKmĢ5Û$���) įh;nĮ RüX “JvÉyœÞkŋÏ­8ālŒ2„ũĶAũ? $%ü"{) ķŦA‚’ÍËģ˜ÓŲðÆÕÓ3ē0ÍÐ |ōôID&kDēŠĮÐĶ |ÁjarČSĻóMĩý†XÁØÖ`―ĒæþËžýŨ!·EËí0Þ2(SIŅ>4Ųs{`*Ðå1'ĸŐĀÆ’ĶÆĨd0p―‹zŽ$~—4İ0ą―*Ôäuž7BHpDcŒtÄïĸ`o„ŠI2Q à %]ē. úŸ*ū�ü›ī‘ō/ĸĪïD`y9ĩZé3 TĀņcŽc@ĸöˆJAŌå^`É Āw œÄQæa{Šú?Ë4`Hæp” ß=ũ§ēöi­>…k˜ ŪφÆ2kzepīŅŽzĘĸhõBû­—đ ønÄF oân!IN―™Ŋ3þW6lcį-tĸoņHŠ­ĄŸ"ޟóQI]ÎÐfL <Å0‘;R)b.§jýϚæņlŸV†äë3tB&nY"„HĐ>ōHËdû*UŠôH1lĘæ ŋJ;ņrG­·ýÅI[ÃĢŪ{ņŪâđŊų-Õ�Ā Įëd>g ~gžŠdÍ%Ôé‰ė$Síþį•% Ŋ`xZ ĩųx ŪÚčD ƒôĄŪ6@ëüė"Ú§w€Īâē5����XéŽÓjģ<Å6pXŒ$z‚?h…ŧCųûŪ/ K|COú˜€„Eāo…ŦÉLYĸā'Ā!yĸtĄófqkęZpÍÃó Š:§g˃ÎĢĄ%ðZ’Š“1œÃ*-ô’’AWųþļģėÐZIäl’TÚR_Dą„-ПHŽæčûËĐ3Ėlv‘ŧ6ü]0 â-N° QÉé%F Ðü“ļg'Žu+Æ{ŨßKŒā‡Ë2øÆÄ’ÅgðövŠx1l4œ…ØØðÏVÓ.ĐįÓsuą…4N€Ēæá#I: -RätáÁeķBÉ<ą`ė7šËũß›Í?tŨ’‹Wtë="úÂ<ė!>=QŅ$§ia|�—VkĪ~Pu•VĪÓ§ÚQ::EdwЕÁ{ĸ”ôäępÓÃB§o/-=4ÚÝbfŋ}{ Øõ$6Qh™Ÿ™(‰ĐÞļŒÁI@q•øýõÁ€’pŧAŪ,Ú[Ō-@úųõ„ķ͚åēÐo.d 6čĩJįg?Ï1čôĘÍ{3öÚԃR Þ5ž0_IįļM–SbđĒæqôcšĒ…6}>$‹]$Ū čĸ–2ē} „ý Ðí7Äa e·8B^+#ēž’Īķåw^|ĄCûE5ŪŽŨ'*ðōMüČŌ+#Ā%ˆåV,:€iŽ€p‰J/ð4ŧ?qđ úiŒmSšýĻôÛŧgTƟsģr>ĒģģF" ”vŽ+:V \:·Ôb ËHĨJ‹ðˌŸÜïë í/Þð0þą1ÏÂ/é;ÎbÁdĶÞ Jí(õąþVáŠŪ:ï>%ĮÏ4IŋĨīļÚC/]îŊū‰/ŽéÏđCYéÁFą‰r°oô@Šø7ĶÚú[ßCnˆ„ 0ƒBŠoóÁ<"(|<„ķžžÎnÎPéŽčÜĢę–Ų ž”ėžqŨ<ŸaÄ,ÆŽÍęáŠІ&ÞR/ĩŠę!ßm―›ĩī“Dõ‘ë6ōvŋĐ*ž/VĶx)ĖøuĢUĐRÓOâ€ī?•đi0Ä8Ü[ïĢ[}ųŽ$ “št†—„Ü<3˜”ŪméĻ�€—Å ĩųŒąUÂ>–Ō�ûđÁˆ˜Ë ÞAO(e Šƒ―Ū<Y.JÁÜ4wv•*]ĩŲÏČՊkö%īücfÝ―' Jói醍· ö`ï†ßïþŧ3ÃÎPøeXäü-%§›ķu!?k$Ņ$úĮpīÆó])ūķ}–jĐþũ—)‡c­ˆ•Ĩ@Čh6ŧáčÖđ�g&G ÝÓ“ ķŅĄíˆxļ;―!›ŲĖÓ‘‘Ó|+éŨõ!T‘[Ķ�ÄvH‘OŊYgāeexBJG8‰(U8GļūýÃķNTWXkÛÜá§BŦ§čÛ9>Ô/Íiŧ%Þ˜†š–Ā:„h[ĮĐĮ”…Ķ~#cāŨlžiięīO@ėÚĨŧtĮz|{ýũÉВĀ9ÖAZ33Ũ°zĨ_čhÆÓĸu ē učâ?ĶÃv>ĀŋQ/AžĮÉÜ(x7Ã[˜ųyNũúöo- ŽRėZ-ĮŅŋ'IÏ™ņ‰{Ÿ\ÁĖë%Å`Ô7ŧï33œĸĸä(ŠÖúŲĸ4äĶāæ ĄWūĸ{OgīNŽ:9ųuý$A+ø2m3WPŒQÕýŊ§Āy䉄€brAß͎Ė>æþ&bÉ&Ž8p –$@��� ,V%ú" •ĻÞ‡ú@Ũe;öč)f Ũ· åH hČģ\‚ø@HDÝķ‹‹jŪŽōĶŽÜŠJ—áïéúbįŸĸwøóũŲëØĢ'Öé2)ŪĒęųV^D†%õ vÜšīũ ÜAĘŨÏ 3—ýDČØčjöó ŧ (Īdr"@ļ#ŪęÍf…ŧô)ÛXtģ pS–ôóŲF;†qv…|ķđYT�“LĄęėžHß{^æ1ƒˆEÎëß,ēIĨ…ŧ\ņ^%<D+Æ ï_ÔöT%áW@ĪÕŧÐÜGlĘĀØĶXcų%xŲĢH:Hčf9UórđžL[ü _Ū2[TȒÅ&ۏĸÅL@0ïëāïļ#æĀKŠBú^ē]„`Aų'Œ §ĒqkČ Ã0ĘU§sUxq ƃ0EĻēĸ!ïė+ˆŅc;4Ļ3Š‘ŅR)~‹Ô9\ Ęár9Á'dú„”(�a!"vĉÔ6Ģ IŪ!øQ!tį:ÂĄMʍHĪ ĩiYlįlâ]LÉÜ?É{øŽ‡ AsyÜãĻÝ=Ž%ū^Ų§8ú―ŊŲԅņYm€‡þžtĨ†jPŲ íīPŒJ v@Ūõž[öíĸx݈ $$“%:‹Yq§ķĻŦüí7Í Čĸ~XëÞõÏ4æŧ„Tß>é…Bþ;J2ŸĨÃÍ(†C5’3úĘ!(ô…ÂA­^1Ŋe&ŌÉÚÕģ8Â˔%ũ™Rōp_‹2—Yōßz4ė„sÓû Îy<KOÁs˜uą“hĪ99Ôa‚ˆaĸʛƒŅNΐ (·Ãģ͚ÅÃ'ĸg“Qž°nŊ SÉT‡›ýŠËÚkõÉ5oÅũûãŠvöúšgũēŧŽŊĢ0ÃâNíEĖZ†ÉĄvlžÕےVV™�������������„„ŋý@fe*ōÁsåÁ –‘ ÁÚ4ĀˉóFjô\šŠmÛĪæyCĨĒ9æ#ÃY˜BęĮðōŊÞąØĩ\âZÃ$i*(ÉŋO?x?ûSwĸiŠ)âWĸĸôdËnõÂ―ÃŊ?+‘ĩRZūîũŠũÍu…ByÓ‰ÃLA%2LNuÂ$t―ēVXã,ówÔÓqņ@}> ĪŪÛIg}†ĄJ’ņŽwZžj§âUIĻ?úÚđ1ĩý"óˆhīíĖÆ™pöcŌWÛ"rķüŧtI–5XĀk0+j’ôá+ŧTV/Á’YhÜĩqˆyÜTsZŽq} ūÆ*o8u‡!e) RCŒ!"ō*$uŅY„Óo#„�a*No ̆áų4gæĖ!uđ—‰is‡#Óh/t.\YęÃāČIĪW\+ëĖqĩš…Ų‘ĢՏ**TĒŦŧ9^cĸ°JŠŽHÆ^ý|ŽHüĐŧQ%ņšsÞF[zÐ,éâQƒ‹•äiJé”7í՞ë4B„qĐ6‹ĨņÔãÐ |ÉӌēúķŨŒŋƒlũ éŒ"ÆHÓÄPžÅ[ԗEŪļv.^ŨtuęŽÅãCUäčķ-ĸeI™kŋZ)"ĨHu4óŒ†7f2öí Œ/QЇï':ïAFÁvvÁŧrų=VžĒ$ûZPõJ{bžNð­3y!—ĢE†8_į#=M!;°RZwįmcv]ÎRŋęs*§ôb’9<_F^€xãOáö5ïýĮČ^3‘YƒÝ3“r%4V(Čį;p$6&â”Þ'‘Cė@ģßfðbŠęöΠÍĀÔ ĪōĐĸæūÆäu~Ņ3áJýÓfųč"8ē/Ą=ā͌ží…húĀFÄó‚C·Y Mmóܛ€29›;Gžæį&`0“4˜ŨũhĒMŨzey›…KĖīÐjįHÃ=Œ{h†.xϟ*„æÍ ėŅcýl”…‰ƒúïų’ĖpwÖŨĮ% jīy€éYĸKĪĄĘÐîāã0pÚhÉpáŋ§Ę Áhļ]6(žė iLšģŨĀėIĘ]#ĒũiųyæųcüWoALeôâÍKexzĀĨęŠū,7NJ PēÓûö—ĻþþŨēΓCž@LÀ>oä-]MuoОŠCÃÅāß[ßkÇ: :įvQ'™cÚ)™ýKMĒūPōÆ?U!C#qĒðH\Õ(�üOĢ ģ8äx1ËR{AÍûûØ%Q\’D]W YSËÚu2h™ž-å $€ÝíĪēhIĪE#{Uƒ#ôúĸÛ™Üē· ė™§nEýø°Ðģŋý‚p—ė·HĶJÎŽÐ:ė%Šœoújūzm 25rTœĪļ™āĐįSzFŠ\-ū.D;t™ā! am5æē3ÔfÐčÂ7-Ũzú@óó$WĨÐá}Qīd"MvxiLŊ2ŋ›?­ĨNąýÖgÜg‰ïëv”ô@QĘCÉïâF–wĶ}öŧš+Ī­”YŽĘ۟üž~) Ô„ݧ*ųŨÁd!֖j1&���Ó&ŦÔü˜!Ÿ‘ė™^ŽÄAL9—ĩg܋îYÜöp?­Ģ~Bˆļ>>f ,Ģ$Õ*ŽÚ%2ӕÆëŠ…pJųb€ĀÎ Qĩsm·ļéģĨjøš8œŽ­7HĒ"kG‚X͜FÎïVMwŦŦ2Ę;ŧÕžē―•ĸA?hzÂaĸüqË`Ћđĩĸ6aø ĘÔĄŊ§ä–Š'Îz>':ɧŌž†|vÆb•ĻŲxCé‘dûÄÚ:Ōī-eóxįãûÓ9§ŦƒÞHĸzJßቓ'k‹š6ɏ�ï?UžŪáķ:WÏhS›?Í4 üÛ˜%õ7īž|SŪ}Ÿ ĸ3äüUŧŅÝÆļŋf= ðT–āš§üĒp^8ĄĒĄÓO)ė;?ÓŊ ‚ķŨBķ‘ãAžÄ9hTÆg`Gý°ŊœY ĸh{oÝdŠädŋ؛X°ĢeÜt܀Ė,Š,WJYæ õí“îąr ˆ~YðžU 7ÐH#EœĀ䭊™cYčø‰Ëh9o#foéϖŒQ<0G‡ŧžĖRííÍU§[ĀžM^ĀáiØsøŨ5ãߒpŽ€å#:^åĪö‹ėß_-8}:–ĄEâĮ’0ŧZ?CÅSTð„FM'vaƒG뷌vņĸ{˜ Zô )Ņķ’d9ŦÉ윁< ŠN‘% %š€5،€Šó$jT7LAþ2ž8…\―>ŧžÁ]sŸĐŲ!BsŠĖÁÚę_:XtpūY]g†Xã ZĶ úÔ"Úķ!4­O_4'ĶŲ\ĻĀáÉ3€ÆÎüȇ�qüâxŽ^‘cLđ5nÛþ–džeĖôšëZðĻïhÓHÆãËæõ1zņð^ĄĪ FĄÜr·―å"a=–Õufí=Ū‘âÕŧ_Ôĩ�‘Pė‚Ä1æoMĩ—`ýąeŠÕ.ŠŦįˆGÏąŠĀÄbÓÐvPŸČœÔPp?w ĩk˜QŠFč|lÝAËjč€dš>@ã3ZåElŧŲýân69~bzābYøņ s^Â,ĒÉ3ļ‘ÁdņĻį/āķÁšTZˆöŅ úXB ÎIĘđŽĮHįl–w3š^Üū嚇ûK†zԋũ"/qŸ7!•Ķí@ÅīÛ2‰ÖĀ §+–+~ÕÄb?:|1ƒī}œÄ4Ž/]zԅĸ>ĄŌÍĢĻÕųïKžįáþđ'ÛjĐgāöģQ!‚ãäK– ;Ɏ]ÅpÁRKÝFóeZÃDGNW†+á3ūIjŸÃ˜ _.@bGĨä­·d”Ðé’XĖ&lŠĐãĸ_Ĩ@(;Õ=ŽåkŦÂČ ‡3ÓRĨĪž;UTflōÞŅEĨ•ü\õC_Ģā‹(ĸ{æOøýûKŨŧ~Yþ-R[ÁþâЖ/Á+3üŊWQü+œÆŲōt†œę/°ˆBŋŠOœ8} †ŽÂ`]+ųŌï˜ŪĨÓÖS!0ôájÓ:ö$øßvæÏÄ)Ķ˜Ė—ß$ėˆq ;Ž>íÎÉYSwĘÂI0ÜO(ĄŸÎxĮ7ÓOĒ\7NAƒ—ūïHwŅîw9ļ3‰ÔtûЈ,ö·Ą~D$osm§Æaqh|x.o˜ĄþĪ&x߈.)&ĶĘaÂH…ļ‹ųŨ’lwUâ‚ˈ>}…ÆKÉSĄ,M‹íCĮðŪĻGÉÎ5ë-g4;ýÏ<Go}ð–,ņ€F/úŽĨ‰žb0Yl nýIøūGną"Õðäþ! ]]Sœ.f€‘āžĩM?ŸõļJ’îw6]I/ßDCÉf ?Ä.ü–q" õPl[™š  cÎxūÖrŲOĶ`BÝö‚Œ‹[v(bë—Kƒ7>­fÃlNŒ öŪ(Ąõ3svßĖūÝ{›DōręŠqŽųÛĮÛJw)Ķĩëēģ–gRĸgû*hņ~ėī“f-˜Ė*Ņ2!966ƒ1ÕßŨOt–ō|ũ ŪcDŒĨĸG‚WĮþ2€ÐōĒ mŽđ žú`ĮĐ(ĪĒĸ­C<ģíôžķc §ĖĖÕJâ•X‹+ï$°kY™5ēâÐÞõmķ™A_DõXBĖ=ŧŧUąIý8ám%> 9ŽāY ĀáūŪ…q )°Ū‘Þ|ĐvVïLDĀîðÐ =΀f[ZØĶ€†8rņēI<æęx]j^äūb­„k#)éqúw;d00vï76w?aĘKޖįQs Ü?ŧý%ās8y†§PŽŠūÅpžH=y@ŠËÂē"ŠC‰eƒUÍ0ė=nCôœŅ.Þ Rô]vD$f܁?ĸ]lĶI‹ĀįÓ%ķōÖ·Žxšg8ōcôíkëjLvïöņĨĀY{ĐSģ1Đ yØ:å`žO)C_x:Éo ~"ꀐ�ûņīNÞ,ą"g]ýbņGMžā>ĨK1đ‹=�åÐĘ;x–ķÕä™đ\ÆŠÜúū}”z‡XëDŧ-pB3]™ė§ÓÍPdPŪÜy‡ęĸp(Ĩ8JũYƒf°˜ģ5æð/šŽĻÖm1ÔĪąxQ]4Ôr%úwĪ{|'õ.ŋt`ÞL…�šD†ųę­ŦS2ÆåžQã—RÕãėŨ†šÆ€Ï<H>ŊS}uĮįjR‹ĩęa(äød>æ‰ĘÏßN›ëöDƀ*Ũ2ó ŸåJ°É-!\ Žëå#ŧĶbVšMīv –mũņƋ‹9`x‰hx/Đö†xÍæJˆúēčm ðeu JĘ3Ls=ø‰uŅ•ri^TÔ ŌgÝĒķŒŦÃЙĒĶ&@ДïUPpžT+ýB݃ė‚<Ýde 4ĮŠ7Äį~ÓŒ‘BĀūžŧųžđ†rÛ@däPŽ†Ýˆ@ýäfŅýĮŸđ2æōÄRŽ‚Ēaōåė(o< ëYîķL&ßĸęŪÆŠŊ*'}D )āÓh'ĩëÂjĒfēJ@ŠT á’æ:rú';ˆ ĶA`3đÜęjÓl‡ä<‚Jឱ…Ó;+Bï†-pąųĨ>• Qãąoōļ?:NobÚïš ôĪôR9YŽþŅԈļnšĢS a3‡˜Ėõš-3ÆĮĐÆîÅó"ĮiHÞ§}įuxhÏP+Ą ÅxQ–_RÛĐ{e[dįRø ŲūÚ.ʘŪî[ÖɘįöŊ\2öũĨčdõŧið3UTŒ';V ķHÍûŅZļĶÛQ_N)ķ°mbex2ÓR"'ˆėš/"į(<­…LĶ›Ōv ÞDÍәėÄDpYx5Ŧ3žîŦQ(iĻO)ÏÍvÖđäUŌĐCÅ wr'{ÉĻŽ`{ß2‰ŠŲ>ĘĨ{š1ÉÏą­ö~”F"ņ&øŒJIh;Ėuä\°įā:ãÍR{ē"8xd=4k*ÜÆ uŲ}]ižĐôkųŲQj‡wÚrgAôŒ]ŪãÜâC'ß*Š+/(é]^28 Ą9#biŽŧ+BŧáüMEÔīčĨ9rĀø›á°oaÎpýI%ūöoūŅ=4e jGœĘĀþšnsíĨ;FĮë8Ė€Q/rĐŨå›ĘpÎHf$XŊĮoӗzåþÏų'ÓŊØ2ZÛÂyūĖÕá= $™iÁÖæljð{ޚ€'1§Ō2šØ)e?ķEĘļG‚,pƒl§ĄlÏĩpU6Y‰DTÎÛ/œqT"(§/EWQūï.'.w‘=Z…A)ā FNX•ÖnJĮ�Ą―ŨŸ)ŸˆBϊŠ7đܗęžEĸ@TXÏ ™Ü&@|ÄĄøŽQ čS_ ĶļÏb;ÅJ›·K𷔁Ïũ·âW-hïŽ0―ÁĨrŠ“`ƒt}ƒ~ō=æģ`õóļWP‘ÁŦėú]YĒeûÄĘ0a­ÆĶŅ/Ïlø€5ŅĘ·ųGÅõ(Ƅƒ ē*YšĨåLfbioIĻ$JģŪžNŸH 3ėÆŧīĮÃõuDeŊ-ӝ“‚á&ČgƒUC9 'ŨåėĒj·3ҧ(ÜcīĄ.ˆô•iÄ:ûu Ų€2šĶėyõļ!>ņF'Ŋ)Ž―ÜöæšÃJSØ[ԄAÛ§ 1ķ.Ý•ŲōāÕđÓöĮ+ûv°[8V&" ‰åp4mQ’Þdr?pšĨþŅ,$Ŧ‰Æđąöß=ÞOßxĸ"”ÁUuĪø•°‚’5˜e‰&œÃY8 ˜ít2ÁSŽ8зŅpŦžH›4ffJ‹>2ŪýąZ‹ ‡Į[RÓó۔ŪÔwâIŲ#CQã›Ïێā4ķkĨbw̃*úšŲÃt9Eœõ<Ķŋķá;›@,w0Ð"~jÍXÛ ):é)< I€ėÒw5>ÍÔM'…Ô@ @æMPšvš#;āÉnŸœktĩˁ°.*cĐŪĒ„―![ZWš+l+mģvEe:E3*]Š~Ýū!ŧk·· Ī5 P,áĩ6įP,îōFõh§ފÝÏ%Æ­X\&ÍøĢ4NSĩÉbŊq™rĖ―S#Á7†‘­pŨ~üĢI.mŠY0Cu›9ĖœėąŽ$Ž„|ų?ᔸÉų\ŽÚ œC IĮiž’wbĄrŽĢō?Lé1dŸÐ<OĪ”íRØS€ÁIîÄu†ūž‡|ŧRüë)ē_$kðŨóāŌvrĻØžÅō1@ð8ĖÕÃÍ=> dÜMÕ)kÉU‘ũæ ķ#kŪ‘Æˆ( #áŸsä›VEHˆÐp‡g§iÁāOj―3ý°VUðį#ÉÃmÃJãÆ~€.P\4õÆ< B úÍπI›Óųą39AåĐ}säÂ7ĮpŋŲ:Ðû[VΉۓEÖ ĨĪôŽoÅßąmÂĢ)ÖcÓ|ï-%5jS°U>8ô„='` îÛP"j9ĐÝŦ”X-Ē*€”äð����)NLĒžĻŠv–ÛÁӞjhĢå]ōŒÎœĻž‡ŧ5ZjnĻ�õ°"å@đ•ųvC5@kņkGYO‘ķūÞđ,ËX]ũÖCúīwä@[H GėÏĸĸôÁ†<ÓÂÞ?ë CE…KŽUc_āŽĪĘE€‚gïŪÁûϖÖÁ"\qũų*�ũ―úˆ„0›Ÿ �GÓĒũƒóëŠøýú‹ ĩZæŸ^+úĐce‹Í:ŋĀkÓzųõ †Ŋ… %Õž3ôL^Ą†­ëņ„ ՍÕ"H/ķĩ?øŦčÍBGQåc=Q+—|oöÉ@ÏD€åF8kā`ĪmžÛą(;;ëÞÝíQŒpôĩĸDģð ?7sŧ[1UcP| Li7―'ĩŋ Íŧ›˜?éÝÁÍą`x1Ë%ü:mú/ôļ<đá†ï ˈģ#̓…âŠ5\îû$ßŌïķ# Č�ŠÜ4Ã<1H;Æĸd>Xü›øMú­ĢÝį, XŦ5Þâ"ž%)AûČ6špųĘÉhŨy—hl–Z@… ÔZbŠ­Đōŋõ(íMßûr áūđäiŸzSÐeĖPAf⥄ņdÓęRŪėðZ1ˆ{ÅÍŨ@5І%x›  ­ŸSË*WÔýJžû0@›dœ[ΖÂFąÝeŸMĪmŋâ 4Ïóõ°åÍwŅĸhbÐ=$ā]wązqÞ6ڑ-9LôÐ) Aķæ]FhŲ][Zᒀ6Ÿũŋ€Ĩ1ą`ųˋ6ĄQ0]ąĸ g z‹p… î{JŅLļœýØšYŌ8Æ~‚­ē!\7S>k7|Hjãhâį0w†îË dĨ<ˆ0ŅGŽķp[į\QKúŋžĀļį‘ý˜ĸ~ŪåƒĘóē 1°ü9ĩīįP‡Õ,úŠQu&óõ\�akKâ›ēD·?{?š­�Ģ™UûŨäÕYYæÛ;%Fq=GķDnšŪĒ ö ·2{Ѓ†…—J</æd•\ŪŋFá (trW2TŠm’ĸ‚ýÎxãđKóhZC{l’CØĪ‡äāix5ŠGo`Y“_ŨĘėîļóŒšÂC@ § ē0‰‡WŠ'Ó!8Ŧ‹î­!jsœ/7UŋÐÖfús˜EąZĄ~/ÖÆ}ÅŅQ?:#-oSŽŊĢû”8iŸM™tqōus#8vĶÚ8Ŋaē`Oãc$å“9ŊõĐŠ*ühL VQaBÏĪ 'ôXĨÐÔL}ŽÏ}<Q=0ŊÉĻŽÅÝ<ō›ŽË'ɰýŲÂT Q~htcdw</@ų]?ŧĐŠyúP˜ķ%Ģ“$Ļ57‰Ð―bĒV)Ã_]$=Q –i;BA;ŽõƒčûÂyčŽýĖo0Ȍ6–ÉđOÃ?û1ą°9ī-ãhEOfüĖĻXy0įņ4õĂ�āfg —w"TėO§bNTĨgI\%{ö…*'8%?ÆÏc ö ô„SB&EóPņĀæÂ$çîýJôE@([:Ų‘`ýüqũ(]îB–5€HĘûÜļ.ã·)7ëę;É?H2ðMČcŌēĖÛAC^ãŌ0GāŌŽŠ1<a‡įMüL]A`ðÞ/Ē ŋįJ TSĐݞģ•4ĐúE°ÅŒš˜‘‘:ĮC•ŋîJĐ"y­ šąũŌœˆ|øģ‚-ēÉÍÎ?l͉Ą ÏáQf@ąïr^ÂpŨ9·•0ĨÝkģØÏĖ­ đ|ԏÞFuИúzžE;ëLËĄ=ðę|äč•ÔjšķũČä”GėLqíq§“ėþœ.^<ņ’ŧSģÐäøš‰^ ßëÅčdQq Ý°x_Ą‘Ē‘”’~š/ąÃ„$ė―l…BĖ‹HTâoĘg@ _Ŋ“ō�Ą°ŧ+tįõÜXtÞvšÐĩā[ŲĩœĄ?ØJøQ†#ˆƒ+ĪiĢĮ€Ģ!S€ÓÅēSmņãPĢ`ČĩYØŽ+Nģ·Ė‘âHŊDĨ§H”å―Ö/OUZ“–Ø][$þú0tļfõXô’ķ­m3°ÚŪ#íÝ\DU0ZÏl8lüIäßNhþĖ€u­^ēæî€þŲ]{ žE>`8^ œƒûô6<·ô›G­§6kJiåRƒÕoæRĐ6āõŠV…?*ļ,9óxŽS€~*Iz=P­$•9=æģs}Ô§0^\d?čÞ䉂ãܟÓCü n|d’ĶË'8]ųāpũÄQhõՋYÔsœŧwˆŨō\ũqā~Å8"eŠ"ýÜÄcÚĶbšāhŅ:%nĸS™dVĄŌ%P^ĨýéVwmFs(vh €ãŒæŽ 0UýbÆļxoe=sýëhŅA Ûs/ÚáóŠ“ HęÔū‰ð!ð 0DRũÁÔn!ˍD éÏÍD7~ā―NnGïÆ%ĨY‰6x‰ÅtĖBĀwË_ŧ=Ŋĩka"АĢ{ëMū‰kĘá•―ę(-™L ÆÆ—8íÖw=Ԋ=Žŧĩ$…zÏ wÜpÓË4ÃéhÕŋlŦdĐÖxzïqŌîȎķڃLĩÁ]=SpŪČĖ>úÁmÏEĪķmïIŅČÝēÂÓ jâN`CĀĨXĘD œu)€CÎíuãW$ŠÛnÍü’Ūúā†/�/Č$Øņ0ēRpš<؃éšMQNZmī�9˜ē7+ĸKÕ^úÁęeZ°ÕMy1‡DÃõļH>(Y#y‘S† wːh˜íb1]eĶČ5Žqƒ…įë'=<ãýŽŠ#5Ž76•þūĘáÓNę7…+ZP™Æ+ķÕ;üt0å9‰€ĖÚķÚ*ĩaa‚—Ŧū�ö‘S˜âČDL ŌČóPũ]`}œßĒ3 Œ™ÝÝH˜ļ—Äe:ģžSÂÖÁ$ÄLŽâyN­d”Ö2>b@RûÕå0ōDđ€$s·äi{h Đi/ƒý[Y‰;Ŧ íûÄÎÎ}øđï1o ākÝĶëãT’^K|Ãjyô‚Æ:Á°ũm-MÁî‘™ôŅō^Ķ !ü#ĻvĄ1ŧiÕH.*Dež!šŒyÆ.҃y{!vH–ŠÅj‚rpÚaPīĐsFW6―ūēx“ g™9%§Ōn)ϔßŧÉÛRāFLĶS˜Œ— $-úCļüŋ‡!ģ—ýļMh\ĶÝĶ*åœå- āļā .āH!ǧV‡4Œn7ēx  g‰k›ģ’Q›ÝyęÁnÎAýЖuŠXN˜48e(G·Gt €Š Ú|q„S KQĖĘĸ3}ĸ2G&m,} §‹čꙙŌŪLÉņýâ•8į ŠÜc Æę2*PĐm‚đëj%[8•§6ķPaK‚Eō|Y• ĒPmqÔ'}ĢGÐßđû‰ē};ÚæÖÁŸ‡ņõïïĒp6úÚK Áesžå…†M)Qā>| í ú7–”užéJf/jý0/ŧĘŌÍÛAĮysšôĢð? ‡Lū§Ą‚Ü#õ)ú ōķĨū$ž‘pžÍ íï$;EzÝŨxóJôßÁdû&éĨ/)ƒóMŅāDPģžÛ‰ÞņÎ&EDd°G—Ū،·Ėķ VØË/ųj'LJēd›‹ð’ƒųĪJOwjâ†9<5îĻß + ކ‰äSӆÁq#ƕõPËŅÁóýô‹rÔ9Ót6Ģ*8%Ĩ€D2‹ú['ƈF$îs–SÓ!œÖxŧāō pŅĪW7g€Ë|D­û–…ft“Ow&č5šEãÛ{īÊËîŧKŨm’Īßq>° Ïu–8ÛĪí$ŠXkņstŠš|ës/ļ4†ÎV§~úó-:ŲŅ SöA!đƒ7pøÜs �@ęĖ”C1sņ™–Ķ–įó*øÄ†Ũ6ÝJ_KíōDlCŋ3;=!ßĘFáÍĨŲqéuüŒ�ŲJôâ Ãų?Š>P •0–“އl·ņuŋ=q^ëwÛ)#ųöŧ%mųÂΝ3=Mō•þôëådŊÅkĖŋĻÖĄJkúƒƒžHaÃī1?‚íŋAæðęÂ1–cæäO4ĸ|ˆũB+s™ķeš Ņdā9ãØˆœō ÎTŨÄđV"%8ƑÅý ãĶ:Bų1vC:?]íü[čsžų;[ô& uHŋ—ëLfķÎķ5DLˆ7ķŪëČ~G:3ÉĻå!CŦMČôááܚH4át2i\å�ó•ß•ŧ†3ĮĩãE^>nÔÐdDē2Aþ“ēīĐĒqŅ=6þIŒ†sQ3,bš %î,Ū9ĸDBagŽA ‚+2ĒŠ­oĪŠ„ú’ļÅĢ{-uÚÞÔîËüĻ@·Ĩ[čVzUĐİPíÁbŽĮÆJí’)[äŋŧ6x·`ŋi]3E™‹øŠ8óĘōyšóÁ‰ŦĒ~īL‚ûXĖË[‘Ą.đz^[l5ÎĪoā4î’į@4ĖąU-&ŠŨ0íūNdýĸTŦĨĪv*ĄķĨ,+Ä=î%ïX™Y‚ėČ]ũ ņå.‰„8ÈKųýÎ ī`Ē)ėŨ—Wöð`‰b–ęð?šCcA~WŧŨ é―ĄęF —ûĻ7EÕ^0âMŨėGGQđŋø0ýw€‘>WŒw[�þpųyÜLmTšũ;·ėA$+ČđåˉņlsČõ9ļĢ៘yĸ]øŽC‹ŊËÓÍA1ifD]ŒFĸ!ÉWíÚÝ ø–ˆņ ļcīû‰™ÐĘ᧘ÏÔP_1ōÓωÏПWĨŽ™cÐĪ? ÍŦ8ØWëi2Üøĸ5ÕÄq‡*lɈ†>:C ã8mã ‡|ũF\û†žø§R―ó&ŸŨC˜zCĒā‘Ū^ĨDŒa]č2ÉÎq†­æmv”Q<IķĪ�#^ë(ŒĢ%ÐwÔ` ՞øįœ8ø*ïbZŧUŲr„ūĨÏ9É!k…ėģã8C BÆS=`Ę·^zčņĪUĀW_XŅ(üîĸW1z”į NUæaVzô+ ṁĻNöą’hĩ` vC—•AY_kžíĒa?Ā/Už,ę‚GJáÕčîmĒßxęuø,ZÆéˆJm&'[ŪũdZB’ĘP‹ÃĮxŲ0{þŲ‰„ĘĮóÛ§ó^}€zūĶĶ öR2ĒÄYôjÝÖ}Šņķ·[ ‚3§_û_V$=ŸiÕYÁõWČ+>ŽïúÔDőQüéã`æ<üÎķŊϐ`&ē„quÚý–Ą$3Ž…ĪCBĒI3Ų)ÁOîķO{ĻBæŒ&~/·ĶÞŪÝĩ?xڃ}ĶJ. Y,›ÛŊkbu0+!h‚ąōØČÂՊ™ĸ†š‚Žīg3<˝ąĶėîŦ)DöčúQ ÏWOü g™Óˆï.6:č•óÎķg–ĀŪIĩŠ­Ō3ÄwZVþčrøŊ‚ÆËôŽĀĩnũD�Ų…fĢý~ß{UQ]ū•č"p­Āމ.Wcxúú€œïu{Ïõņr:Px’#K:šføX0vČũWĩ§KÛjē–‚†;ðĀKŊ…š\čþÜÂÞĄ3-�ÝÉôŦ>[ŌËR™—-Ð1… ŪXÖŋÞfü‰ũxiïdc–ā‚BMVÂJD &z•MŊĐdX·ŧ”§QK/=<Â'tfvjeó^l€Öíô‰ŊÓ5ύhpšQzĢ ž°C‘ ‘Ýo(öēΛæ4?(*›ÕFÅUk&ä$ýôŸųBø@ŲúŅŧ =‡•Ŧ‡–Ó›úĩp3LžŪ·ņåĄcDJ‘8݆lýXIS–Č §Hz‰Ũ}:ŽĸO\MŲļ_2;Œg2įÉÚgĒ'ž° Jf‰čŽžĐëøN–;…Ëžŧ2KĸcüžF”C ŘĀFŦJķg Jž@ęŪjß ÅUŅÔč?ޔąéY,ĘhA SĀ í#īB—o‹Rï―Ģ | Š؝G™ģéZ“ÄœĻÓO-zzdþšģsâŊeŦ‚ð)IFf™ĩ‡1ĒŪåS1$Ŧũ˜>ýŧ]ŧœ…8Ė5B�žYƒT, PYͧ‘ØýĨĀLóÍÂūøk™ëD ũG­đ Ðņͧ<c@E7ŌáyŨĸz­b#Ï#āöņc4@}ßö î·9ķkTėåžóĸƒxFDBwëŠ Ū“ëBY–%<똯&,þ„ģýO=ōD‹Â…&ŦûE�C˰ƒá`Ý_Ķä|w"āģ<ōV˟R;- G=v–ČXâOīóÞ\ņóÚÅÐŨÍęuŪđH#žJÖŠ ø—’~ä>,ĐũRž§2`a–•ŊąÚ8AÃrđYå˜įs ‹ÍÃÅ?ɘĻrĸ†ŊFÁ�8@1;LÛĖŽĶÛgПDˆFÁŸšŒÆĀÂēĘj_r›ÁȀÍôЇSkÖ*ŊĢLņÄNŽî3I Y†lĖæü*jcÞS†Đ!Ú;üô-YëDöĘũ]·IaÁ;đÐģl:ü,O E uë"Öģ/\dgG Ŧ^)•ÁL%+öSĄ§ĸ,\Ýú#ãČÅåޗõD„}æœÄv!>ī�Ô^hÂ8§,GčÖ~3äŠI·8ÍãĨ~ŊCôb CZfŽK>ŧþ"œ.hyqá2Г§q>DŌéīïX0;—ví‚ôīŧšb·öįW֊™r―:EzŠ8ČĀāÜbúNāģ6Ō9'ö1æ„4›ėđ߄ĘhkL˜|S.åjÔ§Ú…ĪÕ€Ōßh2€;LF”ģþÂpÆhØÝŅ’(ÜVĩ+Jî8~#_Ų’Û5ŠÔ*Ŋ5Ģú“7JÕėc†ÏGðĖ„!RJĒĒÁs•ø�æ^Čm'ZõŠ.*[žŪ[ÕąÂÆŊ;r%Û°…tyæš2ŋÔxîŌZÜwmûuąŌ,$ۍĒÏ/•ī8ĘÁÍV ķ}Jý{3[pėýįzø%ۍiëg<iõlģ‘&žĮe|<TĖޚü;ąA֜ēO‚·Âv-ė„úŅú§4Q€v),ą­sū„aýûąh1EeđޅÃoŅÕĻ` ČtÞ"dóWÍr ãėTÆu­CSëE ï@Üa” TųąÖ@uŨÕM ŋ!‚eųož―ŅÏęŨ ”`Û6Ô7?Þ:fî]å#zę*aeBâ‰D‚ ØÝ7QRhÐč#Æ4Ũßí§šZ!°đōÚ{ķƒė9õИ^;ĘĪRÚĒ`ŋF•dÔũ( }Ô ė0چo}þæ°~]*Ĩc ėcũÓĄc ĸ ßwŠūQJ–ž.ö―QxTóüß/øĖÁ”Wx"xÝČ7 @ã­Ā‰ļNČ·žHŦS3ÎŪAxĸ`"…ÞŦ*ۃÂA9U†æR“ϧÂĖSÜ5UnEĄIJâ‚ļ›us{ãá'�ö•ŅøŲâĘ=îN+ųņ‰)WĸV/AŅ,MDB;4ŒéÔöúüaý—ƒmØÝ'ąiG< ™cÅ=―ķhË­•ān0 |-6Cšî ~Ÿ}öϛU’�ãĩWxĄ4“ķ—)ySuĄuąū<1ËūaĨ‘gúMžK`FŸÅJzO.đũrï-•Ž>+P}™ÂŋI)–iŲ;0RHHŨ3ÛrˆŲāŽž^­)™°A ü1Bxz0YzÁ@ĩ§ˆÜđ\۝[R‘ąÚóēqø '– ð…Mĸ,é4âũVGýV Lz†’ÖMÉŲðĻûFáiAwËē ó­,ī†SĢýPĸ[ęĀmŋ ؊ Îlīþ§d•āŅÁx‹hhS\ÎórÎ6ī7ą‹釰 lĩ”'ckõ(}’’8}Uv%ģWŽȒūUÞũŠs-Xúö–ūųV‡~jéĩû‡@ėąÎū]'vm·K âëu"F˜ÁN’_o5šÄ2œÚ­ÕõÐÁĐtÐ7ČWž“VĨøęóBļÚļ“Yd…=).A$D5i*Hę&OGü|TÛģ)éXábÁ‚4~ÞZö4Ģļīwßđ žé†IC/ÝnB/ëÆĶ/Ýa]Ōũzŧ˜O˜n˜…ųú\5'GÛga™OBÍÏ―þFÔcūšģ8ųð-šŊ #ĩbW) ė—QÎbmĨƒĸ Âþ@•/Þ4ļ–ķķw !…ŊÃûKōFũųVæŧė˜qåŅTŋįl‚āuÅp;l! Ō"<…þ#~ËFhĐåųï…ûĀFAnÍóŊ5Ý s°CĻØ*(=’ØúĘï˜ąn~ÅmX›ōŌß5Ó–Ÿm=…­Ô ÜŌÍ=Ļ[áŦCmCš]+þdht‹F:�‘ŸĐpæúüï)g-|‘›–„UŨ•ïHpŊāO‹ŧn ėÏ ÖŒQ ås§ÖY…OpŽØ‚j–�ÕU%HĨˆ'ðGw°$§1ßC'"˜/jCũ”§”ü8G'œwŅڜá‡Ķ ŽēÄI=‚KčŪôþšũÓþė‡z+ûČuV'r,+åJ8›šڔŪĻÏžp• & ā—ÁʀžDÍ*ˆ +(*ēy/kÅņ|ųØIÁášúÏē$ŋ\–cõĮå'!â@VÔūY#†ęOŲę~Nt}ߎYæóˆínÍÐL|”ĘžðõĖkÜÜēĩRĒņöA•DÎXŒ,pĒßhÂŅz؋EŊôĀļ˜îcÃũĘhüRˆUh“ã Y,w@ĸXIŪč$ËâÞą[Õp‡81ÞqĘ7Oī&æs[6䑆^Ã\I‘XYāžÔÖų°ĀnĀQŸŠ ]HôėýęM7@h -°\኷Á ^mĪDeö�ålûÂf vúĻÕ·ļž~řT9',vún"aĐÕn?ėø…đĐ,ĮÁ͛ Ús*QĮÉ( ‰É)ãŒqãyÖgœÅđHYŦZYŽ<KĄÆĒĩxaåÅИ@\֏˜ūęûôįWŪËėõđOð;ąÛa̘HRĀRāÂį~Aģqø……ĸņ\Ī'ĩ‚×—ØŠôVTFå><SEˆýaˆ2Ž†ĸ&>'kÔŋąī1yø goŒp—ÔuÕđŠ{™}ē0ÕÍς-:šžŒ• âšYWDe  –@á0á x6‘3‡§ÞcŅÎčIņO˜žZcá—t ŅfāUĒQEžuÓeėoČĢ^sÝūČkčfWbÔ°7œPĢU’ƒcÎgÕģÎRîē’ŧÛqWÉKœ>ķ/tï‚ėļĻRdš‘!iÝĒۜDo;ÔÉFCîŲRōdí)ĖāĪĢ0ORķgŪĶÉ[%wÐN-ĸɕLnOīsųä5ŧˆ‘=­ įTīžz’‹áėtž–=o,�øwĀÉσŖðEÜ=|óc*”Û~á`ŽÜÍF4ŽĄ`iÝŋÂ/D4zÓ.&†Ų�‰ŽÃVÆs*†LÎ)Ņ5=§‹™lĒK ‘Ų “ąÍžåūŽh“ŽėŸq ĀPËjWϏ1qĖZE+Ĩ§-dŊ7§>8�A æ*,Iûę‡ū…?ėđ4‹ˆîÞþ)?ąpHLũUGž/‹?ÝĐūĩá&oqŽNNÉ.ŽWcĐ\žĐ‚Œa1ķsÁ#lQŲk Sõn}ųcĩF$iįyûÎTH‰:,öíņ`(ŌYŅóÉ­lŧ ØïŒ H#W$Ôę°á‚hLNĢøƒ{oq˜íÕe;mó{!XKcYīü*TvZ!=åuWQŌáyĀõ,ˆ7Ģð˜g%Ú08„tŲc,)ÉH] Ž­=Ä&ž w,)[/F§đßf•CšņfÞ x’(NíĘcN’'ÁóúþHūģī~ŠžėãÁ,îqķd·š|š·ugQûė•HS`@ęaCØÃÆŅ*ŧĸ.ädÃØRþ{é$þā Goxíï­!áYÞNęWáÍŠÃøA―)Ķ,Ķ”ũšFĘyĻéđņ wþT;œësH*XåãÎ1@›·7{$DįæY1ņŠj™Ũũ„9br“,Æû›ũAMø“`&Ō^įU€U?Ü}ƒéņ‹Į59R§Ōvt–ņQ ŨIԃ‚‚%.ƒ7%(af<cß8Íþļ €ķ†q<đ€ ðœxÉ{3(Έ`ūžqū–øRėōÞRlÍkw„Â…oRó$ËîGj0'îčü€č>Ōĸâ9ƒĒhŨ S }’ß‹sĸxēĄYÔð@™R&…đĄ@^"rœģ”1ÝĩŲBã\qüBņJCv3{>úCŨú€Ú’ĨļūĶ6Ŋ‘›˜+6AŋF~8Ģ·åŨŌÅ0Į–Āl”Ëydę~FC„2áŪĢĄZíY*Âxß{ÅšĸzÄmÏDå IėL{sF!ū~žeÂˈ„þ^`É "ãmójũ‰ÓVzüįļōÓë\ūĖûýwũāĘv,SĮ°Ė.ãá―gʁó!Bʰ?ĸ�k <iīšŽÓÓĩHËĶoâ—ý–ŌœÓũ‰Ūč&@ņŽ`Ô�L˜Š-RĘÖ2HlĄPÕ h­üQ ó?ýd (á4"čĢāáe,ŋëzýé=n31>|Yŋįē…Õ°_Æ)­ĸTnžĐ<áã͜ļ@ZÚï˜<•0L‡Ģ‡·.ų íáfgïEïR†‡Eï8åØũÃaFģ™o@Ē‹*šlá › á22īEōc’sÓæģĪéŠ dĮl íbŦ“ďSóqýݔ4oâjāhM:1A6*dĢs[äJGÂÚÂĮĒ|oģšgˆōŠj7qĻ#ęïīŧņ;`ËÔø&löĪZë.šƒŨé†_u}ũĘM pĐ·ũA{ú‚€›ķlŊđÁôN 4$ô/î*MîđĐ7vX{ĘmÜ ƒqĻēËBü2%2{§;DčĸKČĮk–w‚ËÉč�tĖĘxFXĄŠt{ŸĨXüžũŋ>wt^ylÐUŅĢÞ.-ôYŪ–ŋÜ3)†Ū?cĩïJ‘õð„‰<B΂ä%ĸuÄžŲŸū˜R-nØÔāCĩåÔ@x8ïļtŪ|ųEžRKvŲIãK_0óņ2Å4všLī4šįÆ{UĖ p;1íGGóï9„]Ä2­óų*gëŨrz7fī4šßS)ýNvāĮDR°— ?­Ĩþ‹ši[@uõt c}ųChŠĖ›)v0ģ,œ`ŲâßÄÐ_ á�ˆ^wÉ1]Yi7†§AâÉeŦCĢ 5ĸd8ܚę(ÝČú]U*ÚNy—‰Ŧ6‰9óšÓ Ŋ‹ā ‘QēžĖĮfm*K„!•”ŽÖgœ˜ŊŒ9[žýVŦĀÅop%Câ>pm\iOÖĖ5čF%08`<­žL<‰™đ~:ĩéþūþŨ&ũŅTŌâ KÁÚĸ5/Áļ)Ŋ<Ģs…\ÞččŪŅšîöðþíÎ―Ûmųū ? ûtđWT^Nā€ëØpōÔ>\’fįP(Ļ2rĄĻĻŧXTŧÏû< ŽZÞ ú5ØYĻÅÍ*ˆNēŸÂ{Į•Ðė.ë\ģ•–DĨÞŌųx›røŦ`—ŽüügJĻI‘é[“jÍD|F->å&570ŠĐ†öŠmĪ(YF:dC OƒcŠąˆï@~sĐ ŅJ�kÓÝ#ïI "KUfüoʝnÚNi=\gīøūUՕ�ØbŸ=KÖÎ�ũ+ûu#âc\ŪĸyîËËuD{ 3YáF Ž/•ŧ<ÃÚYŽŨôĐiünëĶž<Ï~đqë0)LûÞBf–ųâįzŅdQÅUī ĢyöÞŌ7·>šO …qJ†öiiðFwŅ é°ķĩ‰yų’NŠh ]Fú’‹{ŨoųyCläŋØß8Xņo_Á(zĻþ˜åĨÆzŠė*žũ—’5‘…Č‰üjfÔe#i+ū ͏Åw‹}52zŧkņŪ$Mu0�U ôû#zOĐūö?Z|•žFaęđķ―?Ë9uü{_ûœ“/,U@ūzw`‡-bXųް3 R0lĨĢ (IŠ9Ó €‰’Ņž™|;VÛĸEÜÂĶëÞP‘Œ‡yßäĢ�Ž˜@ä[Ķ―°Z-,!_.+ČWzŠÁ%2°‘‹ąJ|ŽUlų/ ―H]z† lcŸ 5•„w Ϙ†Âúû'ōðŧŋ•ˆ°nTÚv…ŋŦĸnP+ŅddŠ >‹ 5nj‚Á#Õšģ…~Óžk40åļv+xZāÎÁɔDwJō‰õėߙō ,Høōã€ÝFJBŒ—ĸQu˜*‡č—Ļ�ÐAýqje 'ÆïV*HôЛš2öDT$ËïĶÃļ‰ãĘK™uðÁÐ†^TáŊŽŋŋ]Áæ^ÞĻŠ’ūÔÔŠ—ņ`cþ_Žß”QÛÔ)Ú'ČÓõ 'pšž)Ņ6’^3Žßfþ―2ĄŅÁdŋ^ķäI`B[ Þ∿ß1>íŦÆį€^dÄZž^ūiđ†ŽžĶC?&™s° Éįnόņ›8äɁ6ØýíÁĪ_Yš›‹ŽZã)&Û3@į.æc(ŌÐ}xÜnóUŊpÝĶ:Šŋ}R!˜A$Čđ―áĮī)jâ7ŪąŠÔÃHô ™Đ>ĶC­bt)ƆšŽđh$ÜĖĸˆVČÎËö$ŽCúæ2K5ÕR­‚ãÖĖ'͇ÎxČģšäŠäÕ°ÔëŧÏI!<(`āģ>§B°e‰Û6ĩĖcčŠÄÖČ ØTÐŅïÎÄč­Čžãō­ŦÉl>·É0[v·‡„ķ°ÖDu›Ģƒ8‰vŅÝ€ãĄJĪĒŲj?W(°XÔ>m‚­Ŋ}-ÅtIį@rĩá‡6Ļ­\ŠÞŦ_bķ6ïķÓs)x–UÂø+ė! NhÉũĩØîŠW †‘JæÝ]qðĨé�ÓË‘)Ÿ&ČcHwJÉ! sÔ9š$ã<:\­ĮdaŧĐOëþÖ ÆËnŠ–gúëPž€­Ui·īnÐø_”v0Eƒ0ģ­4ēĪWîó4<ņ“~€ĩ›þĻî)ũÁâĘ}je8JýĨŅXG°Lo,ģåÍ4pĪÓØöÏéô+Ŧéɓ"ąv'/ļðð*åä*P$ÚQCÜ_=ē;H —‘óËn>Lh'Ī/“äNđœ9•„昙Nmīþņ=ŒYEýŽÔÚhUîK ˟y˜'Q`ýGīi$uÍ�>i …%ĄiĶöÃÛvlG‰DEą&ŪÝ8sÎ;dîv°ŊĪą!GUTrB)AA'pĶ=U”,8M`ķōßĨ]ĀB SYĸ 0kݘI:ĀqęŸôŨŨ^a5™›žÞÏžÚYX ŨÐjČÏmic|î_™Ļš6E‘†oå—e2  X‚âÅ"H>ĶKąŠ^ÏŨ'@i@ĮŅïþbó,Íq$ÖÂûVHôWŲŧ[$ŨvœŧóūĢ{€ō/đÔð4ŠæÔŋÄ,,@ĸiéÏË­’ö1œXĖ*2ßÛã#ąRV Ũ‘ŋ)&Q-Û=-ð~ÅýPvŧ, kþûąđðđēp]qúat–ë=ƒ~Eé€Oxė‹“âz€ōäcXÚA3ŸŠ\QnÕ§ŲƒôBZ0Ãú_ãī=ÅŌ·|ų Kôž&ídJïHāWĖûD”Åba„V†iVž?ßdIxE „3–:c'ŌŽįÂ8M›C7UŨšNaAzHžˆÉÃ}Hßh…ėyÜ_ÖtŊïņ­VljGLæžĒˆËŊĘfĨđ°ˆCŪätlMa­Ļ#߆Ŧ­ĮøW§Ūq ŽÁē‰+æWÔmgQØy Ley1ևeėpŁĨē›\dóŌĖIxWäM3ŒáČgÎSûޚqV(cøv9ą@1…˜tâõˆBįՔ<=q%Öŋ(šęƒ!@d—â.$CÁU|ēuWŅÓCYüÕŪĶĪęēŠa·›—þÝí+Öę“;äĢŠ―īŠfâœēÉƒ{dԚžåE·r‰ÃVF7A=ól;{XĒēi†Ŧ'ÉĩŌϑũZZQú°ÐåũŠ9dũ(B Eëøĩ’Ü_Ã)ė―ãáąųIÜ™”·T ČĖ"n3ŦÞäņl:‰ð â3ÃéúĒÓë·Ž//Ø0'ÓæõECä2ݑe―ÄXõOĶe{1ĸ€ä„TóÐÂbpŊ:Ĩ@šN°Ôä YĨWÖ͇æE~ŪiT‰)Ņß‡t'Â+'ļĘé[ՕUĐÂũLĐōb Ó*„ōœˆ„―īŋ0ošüđž}îÐ=ë]‹Ĩ"ķņ/N―„gv9ŲÓôÄwĮÞøĒ_  ĨrtÃÕFĮŲÔD$ÏY^Ņg+îįTupŠqLŋÜģ(X>[ápÖ%ôsjĖ?•< W:1ïigŠä!·pŽBu,Ūûhāf–ž&ĘĶąZ-ĐcÂÎxúŧ€Ķh@ëÓéŠfBŸÆdŪ}ŋzŲ_%u$Ŧޏ „ád!.ĩ žívęâzáBX•îŽ ÃZ― T-žGtŨBu‹ãšĻÂÄ‚ÖMĨ"ÏõĪÉīū‚Āáŧý™nˆ„­ČB­ FgYôa%õút― I“,ˆŽĄ=^{Tór(3’đΝč,gĄ’,”Žģ ƒŦ‘E&I™‘:Eˆ7/ņš‰ŠðqMöD8\eg)x īņ~Š~ KŸ?F?obŦ?Vđ_WĨïíė7ýšc}[ĢßW]·ŌzúīÎúŧ ūŪÞ?nōō~Ŧþųôg>­õūÞģĸ+Ī/ÕŅ„ú―&ĸC­=}V•õt‘ŊŦąĸmïŌúĩoööû}níņ_SôO_VĶ~Þēn―þÝXýū…_·Š ûk‹ęÞūûzûþÜ_Uíû{ ūÞôo·i�ôąú‡{Hđâ’đ―"ŠJ…ūuūÏRCkT'ā‡SfŲķõwƔՋ4Ĩ°’ķŨMÐČXū[HŦē?0ˆHˊ/JÄ#š8Š?Î"N;<ßccž:ð 3<hRj‹ÕwyŸÞĘđ§{‚á[§ģļų€=đÄ=ŅĨšú2Á‰ÍRN^";h|gîZ{‹°XÍ wYģKxXØ/óÃîSģpÍõ#MĶ<ĩóZߋðÁË;HąŨō’ŲsŒ[ÂJûÚQ âHaĮw1}R]9Yã`C˜lúrÂlŒ5߉NdBéŌ›SC Ÿ(„�Â�ļƒÁ{k)ŧHËOGđķ!' ŊsZ.w}Œģ"ĮóĢvšhw� óF/ŌJąļu3éõÆĢŦ(Ņ%)R rĮī•z‹ŪēÆģ|ĶFÄ֛âŨĢĖXÍj:ųÐĢ7Æ―›DÏēƒË7Ų6Ĩ)•9ûĒ…"N^žÜH1Q–)OĒĪÏuÔÛæ‚Ōc`Sãm„góÎüår�įëýũHÍĮÔKKúžËMX)>FYïĸUvĪ’Ė&=u‘óF3k<GĀĐükŠ 4#å,iß[+šÚėĸ€ŽpínÅË;A#ã[aH– ãšþb^Îó.…ŋ]v·cl €â9ķĐ øHöíutōĄCïi(@Ė ïé”%Ø:jsCÓËMá[]ėhÔbĐikē‚§õýī„wÞmK $+ß4ɗĪĖŠßÎ/h!:þÄOc"w™(\Ŋ.öugnŦާ™ŒˆĮ îæ‰.$RŽK'Üéø?SņŽ‘påÎhšxOčč­Ëš·˜ĸ^@ŒËŌŪžJĩ”)Õ5Κŋ/#ķ OäRųŨxasõ8؊j%mÁ]Pm“ĻPŒāúĄ ūž·!§"6 8āÓe(/ü~Ë>ryM™b;”Ü‹ ýtžŨž36\âÝ[ÐĄU\ęãųÃnA!ã!ÆxųyČŧš1›đÝČ'€ëŅŒÏ–=Y‡`'Ēn ‹ĩĸqd~ÔUĸrņCŋCĒ!š<ĩšž$îýyė ―Ę7ôtÛl€oڐK}4ąÃ,Ā.bižÖýķ ü―ęNÞ@°:užƒ‹#%I―§óÅ}!=Þ=;(Å.Ũ>8ôũ#im0BšÔ|hTŽx?›e *ŧĩĖANđļB8AĻðĸe([<ø…š‹OÄ߀yÉ#iƒhÛáDŽÆf.qč‡+‘ÝûĒŠwũrÁÞ$dOæIk}`x|‰ģ1ļŠt–č9ēg�ükŠú|dáXŠƒRˆoā“ÞėÎŦ‘éÁ)랈HvFöŧkĩUĒÕXCSģ―į:‚ÕώšJĖēŅïˆæ|Į•ƒ~wNŌåNqĪģc+jú[ãq!ĨÅ į’ž{/ïY‘š–đï3ģCšY4ĄHõ"9”ŧk9‘.hω4ÄŨ$þ1ƒSýŽâÁ‹DƚãĮ`ĩ3é;‘ĩÆ!ęœR)~ëÉ g™ŒF“Km‚ï3ĒA—„9quÂô*ŸĨ|Ų„M·>―nUõ†3CĸiY3Õpi.4ޟ‡ õVúSw˜Ķž0ĪU;š_bÚģ–ŨtüG&ģ·þC_ Ä XZdŽÍŒgĀ“*?ašÉÃ[?™øđ‰‚þzc=âžđķĖþ5FäGđH/áũ—~ =å!hÁšÉþʇĢĨUþBÐ;}–ÜĪĻĢŧTzî ˜-Š0v€YŋķĻ™*5ciIĨøŨÁ�ņédōē·Ä5h”(sđīk6eiī.KÁJĩģp‘ŏ2ÐĢ ‰Ð>ÁĖáiÎĒŊJČ―W–ˆÉčđL4$JšœHO0+čOúô!6ģŪ%†ŌõĮœ66ŠJÐ7=ĻŦÜX đ€ƒ ã8A?xĻÅL$°“݇W|ðéĄÆėį$ eķ­f7Ū™nž!Ąáü*ĶD€•ŌÚ―ŽŊ7C Œ-œþäY/ž/ʅČ(ƒ}ĖXŪš<X>…‚gyB”ĕÂF@zĀ~@XE$üÁâÄÖvĪĘDOqĀ5‡ŽâĨũ&6`‹čÂØ &°@ÆNÕÞķû‰đ|Ī2<$_žå^FŽ~íR_IŽŨj‰°Ī3ąˆņÚđ;ŸOOέMƒ(Ą·jE*ļL 5ZðķœmiPÄIŧļŠ#ƒR�ö3V\šĄzúÄëHú”—w#ŅM‰ {€žĐUýņQŽ\NS?G`7Ÿ }CðÄ\GPr 6hĸW‰ą*ļč1álÉ<]T7ą–Č—DŪ=aü‚žįŽV―Žmš HÁž"€Õ[&ü€# yĖ[`B›S˜ MMïđ…Y83Tsĩ­Žóþˆī� 8Ht=jđW ’_Ž*įfމ#„[S,Þ#Ï4/4ӊ„DBãž‹ģę"nu|$äáãïYuīŅ—ë W þk+ßlͅˆÓĄK#Пäú™Â![Ĩ9‡”Ā3ļ‚l4š9Ũ”iâžųo.—?Đ-5ĘUîÚtũ‰(ÔŨЇ^ĩsMĩŸÃSðe™'CÖ\G<ÔĪŲóaŒV*iúí3ĩ“čÄ#|ĩHŸ;JA> u;‡›“ß-FÓ0^Xž þŸ?Šģļ6/`ėüĀš%B2Čßš^Y‰;QŠJūq,øjáDæŦp$Ų'―‚‹;ĪmÃ4Ią'ÜˌÞȊ`âGÃÁƀ ,CÁŽŪŲ„§šą“~Mē €ķY /[>đHĘSōĸÖŲ Šmļ­›”ŪHؗQ‚bPĖŒË‡!Ŧi�€=&�NX˜įëņŧŧņFĀ,Mŧ‡ð†Þ Į#*–o>dķíĊ|όŽ ˜æþŊ„þŸéîŸīĨFlwnŲî.TâĪóŸ8ųŨŲyėÆŨšĸzĮ…ÆwÛĀ‚ąU/Onš7ŪŦ ą­ĩ`>J—2AГŅę2a<xVWbTž‰[a]Â_ąn·õTeQþuc_TJŦŅ7 Ž‹)˜§ļûĸu:đž…zM™§U›ÞmQzÍ ’8ž18;lþy؜3 ”%\ŧ&Üô'úôrō;ȑæ+m‚äLkĩãģŋ,b2õYï)3™�ĻcTcKŦÁ y1M˜Ŧ’"ĩZČ-ĸ–ši īH ē.S_žėžüoW)œæEX}7u+ ųYâÅ`Þ8yÁv^ "~�ŋî`5―G=˜ŽË*2ĻĻÎ(ß|lÍ#fí Áh*ÐïdÏčyŠäAVɏoš@éŊ ũÜČ^2ā)ô54u”h Ggž fDG3!lp7ēąAæL#!ŋ&oiÝÖ&ėáĨ@ķįZd=ūšDãøïú‡€*”ÔÎ ļ’zŲë―ŅžÜrpã3ĪWüæÞF•‚ĄOp^kF@æMåÂ˜SþĶ!Ķ–\fc‹BTPøÃ3G\:spâD"ĸQĪ…,éÓÖŨG%†)D™Dģ·šŽ]聋zŧ{ĄŒNHz}_jã4ïRVqŅRKŋ{ô/TÓÏķą&8ý ,*„ŋLčRÅ7ÉĘXh#Č롙Ŋė `t4`IÃKf!õ Ôb‚īčŪÝó*OĀ#f>hŧĪß0ķJBĀ”Cbq—k!Óo‰ß)žī)ĪX4Úŧ<ŊŠK™ÚŌPÄÁ^)6K­Ũ’ŲÔ+ÂX•/ÖąĨ―íTĸ§”ÕVūãÃæ—r ŠBsbä'!o 0öbėCĶÁo‹"˜*áŲþ~á ð{Ξ/zWM؝ŅRü.Ï<ͧ>s !Ļīýššy:R·ē}~âĀý4íûÜCgē"ÃĒ-QN2rį 鍚 ;]Ž^ĩ*㚠)qŨōVY”åēŅ“0wnv$�ôlx <v8“kĶ_ûãΖ…ĸ\žėü76Ũa:ÃÃÍ>æ>­Ģ> •JԘÜ|J†Á€\„#ú·ŅL@h:đӑ%]GڔļÏĪÜųÁU›së0q7íÛĄ€ú•Í8 ,1ģĘ�Ęó›.ė%ZņĒL#ö)íÉÔBęMÄ>9\ݔ7œũ ŸKqBrÄjn-ZšÚŨ™udŦ‡Ų‡Üõ L,ē–ÉÉ']EÕĸ;~ܞ.ŦŸîīP@9zŦXicĮ#�™$:―$Qä3wCāO.šęŅ8"}TĶSŠæˆŋŽĒ<°‰ ‚+�8ĨŪM’AÄ8:Ôú_óĖÓĨĢĮ**MĢ­CļĘāÖũf§ŪUšOŧPģŊF ĪāÅ~Ī^ĢĀīÞ+^5U~ïcОį=Ņŋ öq8C6ĩtBO<Ū,ŪGņ5o`jLÝũO•æ%us�ū.“Đ"ßEā(†r’˜ė3„žÕķtØI~ĶÍ3Žmû—z›)žņšŠãë…ÔâšpŪ2–ĸrgĨÍþĸCN<fo^ˆĘāķĻyļQ ―NZģįūĻ3ãL,Tœ…•Šüþ―JŋÆŌHl‚kMl�[ {jFēø_4ũó3Á.a­ŊsKlŠØGÖÛŨ08Ŋį6―ĒÛK€ËŌ Ė_U7Y‡ĨŸkü\ˆīB@]#…Ä!5âmčāaö_ ·đRbė—Ĩ(q‚ï ·'˜ęÃ.č9Õå;ĩ;ns]›·7äp/Ā|rĨiė==Ē@1ģ Č ČâAŪ\ys4'•ŨÄĘd–^܇A†ėÃĶIO[AhÖđÏōý&bXķ ŌršzĶh^e|ā WS€ę:š\ģXúvŅ úzD„jV}ĸ%Ë_, §2⟠-I}ÚžÄÝØĪ:vfû‘…_ßĐĻ]í ęTzg ‹čt{ō0”›ĸx†·öRžâ`6\PŲîÓĐZY97Đ'ū‰ķÚĮę„UÏÂĸWWfō7ĘQcCkîļ—SŒ:Œîó}OD5݇qmZú 3 pī?É;ėþ:R1hvøÚj}nŽî+`ä|įų^e[ÆeRZ›īi:ĘĮ·m<H‰ô57=[þÍđqˆThVĪ)ŠŊGÎÐqšwjÄøĘqĀŠ ‰qē8JQ/-ŸčŒjNÐýũûļBíwtč{MĖįVЛJ‹ö1ÃuyÎ-šGŽ5݄’ōëžø Ąî—ėm(ÆFŅøshĖ/Æ _Č&?šÔ†þ6>ŋ3Ŋv‰˜5ļŲ§ōâDŒæÕ‚)gƒ-Qv‘‘tĶQ `™°ÁĖÃ4‡R@ Œ%|B’!Ž·Yķl›ųJÜį°…ļ2å‰~&žŋéƒóúĪÜJ',kHjhðgōãËōŠ)ÚlJI/؁ó$.§;_čW,M8[;q9‹ũdÕũÉÄ:í5Š5%Š Ž[Íĩ/đĩ0―%åûĀ!b{ ]ŅLY| …šŲĒ$ĄƒûåvûiĘO�„b€āó”ížĸæŌdōķLX3W—Ñ3ô$Ā&úÁ·Ïkû—øĢēÆ žyŽ NH7‘x(ļ=)=ĸÓī(AoÉ­/žz?Ð4ÉŅ„� ( õŅą BĢĄšIg˜gÝóB�02�ä&ē°đ€ėš―įû%(š, ē?â\|HŸč§Wó’|(ŋŋ9L“NÚzé'Ü1ĶûÚLāØ[0bōuîėD•o~Qrø�#ÚēЛä`Ýø› ļ‰DÃŌß醛gp˜FÐK}Ugþ?Y·X �–RAÍXLž>;‚F>€jŽė ‚=ČJqĨÞÅŦTĶNú 5žũ~kSþļčIaČþīkƒSÍ·_d…\ÔMī\ŸÔ“‚j•’õ{Sˆđ†ē)&  TÏ'5ä äË(Lø“·H0”/ąį“›}1ĪjíB$╏ēÂþė_ģŦRĸKų$:įþОhŦ,ģĩšPōž@1Üĸ ta U92Ū$jEx”Ôž_UĄqo YĘÅ1ýïŽAÚJĐōՌĪjl”Ü}•ą“Ā3š”ũĒŠĄ cĻŧŌ›áFgöIqUcĖI|•Šį­Š/æįĨ;ŦÔ9ÓĄøæÛwyÛÓ°,°Ž+{{Fx1B\ŽžK™]˜šK îÄhęāsë�\q-þTļJÐÔËÂĪîž<Øqs…ĨŸÆß ś33ÞYĶčņëĐDĩ˜E_ Ýō)$ șō œe T—PgÛĩ-ž.HŨ’ŲJōÚáŧÎ\ðqû2ęDÍÎnH9ųŨŠŊÞTû”ĮN·"֜Wå#Cčļ›ãō―R%@&ä&üō‚Þ§šīög0ãDîƒ9,RĮ…’žqãG†ŧ‰Fœ|ð)­Ä8ā[ßwb_ )?5†―ÞŋŊŽÆ#€v(ŠÝnLļJĒĻzMÄE[Wþƒžž'ēu>œ<m'‘ÜÕd\ |ô…\ڟC3đŽ9Öø_s­ïqœĒÃ\Kĸ#IĀ”˜^ß�G›žp'Så4€ Ŋ+°jüÞ ëNÎ&ES†Į!—Ŧõ €L“•ÜôŽž–úƒOrŠēfBî/ŠÝČčæãíŠÉíŋøĢĶķ„ŽŽî ŲŅYƒ°1E`ʞ0kQŒŠ.ÖÞÕNXäĸ†ÆW!õjŸ8LQ:)só,WÛF―+äĮēmÓۘÅĝ-áÛ~yC3mðÝäī:tš„Ó$VRJŲ`ˆĢÜ?hØqÔttØkSÍĄō ÆõĻļceRR›Ôā+Dql|•EWĻÉr– ĸLÝŪ7Ē;—īÜŸīė‚/$ÓsT@ŅķŲý篭h]Ęa”pƒ�ĨĪõRîų(l č*~UŦQ(”ú:įđŌØė)ôËö|ŠČ ˜ąÞ&f@˜Jžg4zÖąƒôHæuôū{\>&ˆĸ‰ÁŠčžŲyþņÖPy˜ĒÄ3‚ mĩē֞ ƒŌ]ÅY] ûúãÆNvÝ6‹ŋ’ĒÝÆūTG\G9™įô{­tæã'kEg­ R*ŦŠ|Ņ5xéēIœ+VbðŋÖįņ1ļNd' ēÄz†Táŋ;―ؒDņŸÉā|… ļ?ÍNâtŋ‰!č§ÓËŲ_yÆ=Ä0š(Œ;Ú'ĒÖ ę°onœądš@ėŸ‡/`Ž`“VGÕï&*Š€ō=úįëÔZ°~Ļ„•·ŒI&īÛ3Ųþ“ŪĖBŊ7lŊlĸ0ŽÃï2ÐĨ:U.ō•NÔWDŸâ,—ŊðĐžj╮8Yāœõ•nĻÎlŌHÎŽr@ô€―ýÚĖĩN旌úãsg–Ķsáwøœ•âa_QL’C;°sņŒýäĖ9FÅ{ŋóĖLGĢĒRģT”áKádý/Ō?4É,ö]—Ý•þbDŧļtÜúŧļšĻ?‚IĸuBgō \ZķÝŨÛÏ_/ŦMc߆-―LpӃ3ošFž&o­Õó—/ķŧ‰·0­ƒųm‘/āJ ęƒ ąũĶ•rBÍŽėŽÅīČvkķŊCón’uĪï°4@5Žãā õxã.'ÜjeĐR>þŽÏϟŊ ž�Ã}IœIũî“Í�>āÁ˜Ŋ}ÍŠĸ+ëƒčwēœ3JsĀ™% 5@+ÞŌëöމŋš/FēÎĸ‰Ë8ĖnÕHŲ›ã/yý„’ÕmNý@&ã°Î”yÃ·x.G]€ÂPņũpđø—ųm‚ÃRũ‹‡ >“{ðæâ… XiW(<U›Q-€™šüU!‚#Ð8wĢ,'pĖŠĪõøYĘÂņ�Ð ÖlÂdQ eEŸ:Â;ztëRß1:<”įR°–ØÁø;h…2 pė�+V%Ïø4tŨĶÖų{Lŧ‰Ŋ~ý�Aĩ[čēsđ}ïΠūW§Ø;Äũ-;ÝÛd™ÁkA_Ą\ÖiķaīãnĖē/Á`ĪŅöËü•h[ė0šá֊–ëÏËoŽ Î;":ęËýyßÚ8‡+įF&§õ†ÉPįĄ%ڐĄūĨZ™Ã >ų?ĀIÅæaL!~`ŸËØHĘĐėųUU—ÜÓØø€ęMz ĸîņX=ōĀ;ІÆ@’(ĸT ņýŲÏ9ccŪ­õ>(Sđ)4ĘËWæ>^ÝËîiô`ŦŊg-UĻ(Ïbgasœ‘Ļdæ[lÆs‚ Ž‹ļˆČÜ5.Î0N^DúF ÄËuqœ}HÆ6æ> (Õtþãړ6ų•„ĨĮ.02:~ÝÏöZeÔØ:–ž\Ž"\S§@nE~:‡°Pöčp]'wR~wüWŒļü’DV3É?ßÉļ3(™ÜĒöšIg=8YŨÛîÐÛ!Ü7C'{ÞэšiÎŌ)ŠÉĩ0, D‘—Ëdņnč žŠ!\Rj]/É å˜‚vX™Ø`ÛúÃå‘Ü–lþ €ŸĮØhōnÃŧ;q›™y6ŒĀÉęōnŠ,ƒ~ÃÛs&'ē ˆ‚Ž#Ĩ'ï2ŋ…Dx`[ĢÝoļô+e˞>ŌĻ=ÄŅ-īÚÚĖëęvVđëv7§Âb„= Ք§ DJžü†"Ïüã‘ōolÉQúNä‰Hž (‘§#)ž‡ÐJˆMĩM0p3ïLģ&ÝZũ{­!$―XIâŌ1M|xšĪ]JĶa/žĄ‹ŧđaþ [Ní þũ'PΒî\ Üõæ)MHËDŊmËi/ĖÎáUG,û@7°›Q–Hŋ.d\†ē:įNĶíojMf1~)ž[Žđæ|ķn•ŅÎÂ’˜WJō€tn‹jŋ―ĪoëÞ"ĀÏĢģhi:st7‚‰9§ä3]čÁ]Ø+ƒĄŋĢ.ā-āĒe]bŲ(X†Ū­į„$VägDýOķ•|óW]ũBgŒiMI’ŸFsäÐRýYīNę+‡\līägãmiۏAkOIZāČ5hšÉ3ÁōŠ]ƒėÓDu‡oyX‡ô›EĨZ*F iAåL"Å8étFð&ģķĸfŋ֖Þ<)]B‘įPóŦ˅fk㝠ä #…ŸĶ­šĖĖČĄ§_IŊSdXïŦŌx‘īķ4`Ĩc^o™Ŋƒ%‹jâgŌZëĮdz ”^jčÜĄö:[�wwÅ]šå —!ŠqŨ‡É2Ū‚{^ {t4ī›W.J$ũ„Vþ…áí%h€ĒZr‡šŲdÃŪE$oīî3ą‘‘Å-ņąįNUÄčcŊ·_5LÓBˆ ‚-1ÚEšądô& Ö|]8†'nāꘚöG™Mßđ ŨIÁÃŋ”šQÛŪåͧRĶēɁÝ"õóš›=8-=·ĐR$@ŌS’“ĐÕÅð QÅĶá‡ŌÏ/đęCôðF@ÁPm]F\ŠĒŠkž1° Ø[m­+_ŠƒõóũōTŋ_åw;îŽĖŨÛËë?Nåû7gëđ5—Ų0ý?‘f‹Ō ËX€―xAĪĸ ƒë…ä1ÚßÜ!hēbmōŅü€ōņæPúŒw>3Âq”tž‰ó'.°Ņú<ƒÛŠ>Žäēv>ްrŽŠé”U\Ļō·E‚@ĒĮAv’ÃÏ#Ž~[z0ûHĐyãH,™;Hqĸ36v$ĩÖį-Qē&Ųį�]‡ŧĸ–žfœÕ'_,'‹n눉-S•ûßF˜ðÚ/ĄŨ~Ũý2ĶfŪĀUŠv}ˆ,ĄņT‹'͐Ÿ^ŠĄ>jÅ@dĢÃBPÔīkšuäĮ<øpÛ;í’Ę čd–-“ČÚ4ų,aÍk‚ŸÏA”Ōôē€=ĩCbYäýÛ6wžtƒŠ› œ?Éžký]h;‘įĶBĒ ËƒûĩfNÝŨé@“âĶÅqC‹+·W|ĘÕRFóâ˜}åô xtЉ™}hûTJrg”›�Q (h�K‹Ģå4@Gnį P—Ī]ęeƖЭ8ArJJJë~z”ŅR|J―ÍEûAϊ%ū?{ÔĄ-š– Ũ*9RïVokČ~§™―Ķ>n�ýā[áĸHēHåŅR2]]ļēĒĻ8ÔÜĶļRJEÖÅw‚‹ý.ÝÆUŨíĄåŋÖÓŲļFLÉQgŒQĒ…=Šū ŊŽ |"ē„g\n…Œc cĸ.Đķ<p°īxŠĐÓ―ûĨ_ųbxÖÏ'}Ē Čž[֐M,_A@âđžÕ“[H›ôÉ>Ʉ…#ō‘―ÓôĐFjBĮŠĄūyÍÆûëSōýzÄcsĒĢŲÕØ(‚@ˆ§™Ę=čĻ;/ĮÛļ`_bæcŽ~܇  Š’Ķïļ’B:‡E!Þäúī!–GØ`āîĀĀ(Ä­|t.{1ö ĻĢ^kωį.Þ#Øzĸlsū Á ô§…ZBçĩá/Š'.ĪųĐŌÃu|ÄôúĐ6xŅēŽl=ņ(N°ĖČīĸN^Ę7ÆÂaŽÔ4sîĄøŨŨr’Ęŋ|ÛY2æļ1 &ÜĘ^ą•ūA° þą87žNbÅÜUq…b§“Á#lŽûÂu*ĐŲūŒÂHŌä€âÁvE�ggņn˜4Ī„ô™ocuĪģ 5įsØĩ˜HމŽ_ ĘB;éÏ2ũÓaŽ+ņĨôByoýĀo‹âwÝËĮëqÐe õu !5q!ŸpĮ‚^ČĘDį2<IjōâĢĪÔ$x(–úkWWî oü$Čä Ņ—$ëÉ/75ß%L.IY§!ĸ[Û@…—‘N`a0GtĶŅļÆŽ4œXÆQ‰ýīŲˆ|ČMÍo#+;·D Ø—~ -óÓėøÆ1ģ|ðOĀšŅđųŧz[yCKŨmÖnČĒÎWqʕB;•öŌWôIŅke;/į·ôįņîv6― Ph·s͐ę8=ōƒ098Ņ}œØl9äĩÅõĀg„!S)ŽÔŋļI–Ųđęũj†ÃEė}->­JĢPŸÔmPU…þšÖŒŸ+éžvTCþû@+!߉sī0—<ũ�§ Ž―,ĢĨGh3Ä\=?čXÂš/eŽŠœ™A#æę–ëGĖ&gAn*- ‚æŲ#jđy1 ƒ~ƒvþÄĖAŽšÔ1 j›6Åqŧ\RĮÝē Iö}ōũíÍ|g†•O!˜™"Ũ”;ž3ļÔęM"w€Fþ!šiÅĀKŋ(~6&.Óđ`np Ó*‘0ŧ\ščXN?eŅ~ž€*† ĸt@þEƒÁ(§ 5Ó_mG~6žÛ";6Ķðž™{þ‘`‰FXĄ‚þz” †ŋNƒw5°Ėß!0 '*>Ÿ}eĐ?Ýā›ąš>2ČÕĖ,$•\K―ņĻ/QjĢï6A}>Ķx ]ƒ`Âü‘ĸ4‡Céô<įÛĻL}‡Å:Ä^RŽEũa3ĄÕjÐŊ>1.Ô{~aKõÉX_þ+ώķÃqX.Кš BŠNĄŽÃAžŅzðފÞIJĄ|ĩöWXw'Î\]UšösîĻï4ĪĨļ›ēņ8gŸģU˜ūɄ~íĀxļ6=WŦ#ð _Þ _&Œ"ÅŽ’ǜėŋēÃÄė4ežŒá̃ gÃĩŠ&ĀÄHĮŨ΀äõŽÅ°šõIDŧ…Áß:;„ēT"jˀūĒóĨ)ųŽ€EíqyŊ ‘VV='ž~įJ’”•0č&ĻąkÍĸXÉßû6†ĮęëÆHþĘĶY6R(€T―ģŌ ›æČ‹ū=‹›žXķ˜zj‚SĢuû9xĄŊaÎßÃÂZŋčŌœ=ÕzŒ: aDLz˜@{AþŌ―8ū―ĮžĮBĮ™A/5Ā“+ï% Ó˟ĐĮģ5ÔGÝ$Eá RãéfóŽK\%‘™ÅE6(›ŽIU4ž‘ũsŨĢkۃEMÆÄ—‚‰ĩ>ÅĮeįv~Ąĸ{9·ä4„5֐&—Ķlß8Đ6·aæųÎĘīq—)þVgdÉ5ōšĄJÚD(‚­ĩŋēŋ a€> bnē;ëÔDh ƒ pú—Ïķ[ģþūu76ؐFIúuAĐï-āņō^âÂĖrÓ1UjųMļčR|۟#·ŧ!ĢÜJÄķåīDÍo$…Õ4†ŅQŨĀڃõ(Šk6ĩ‰xQ=Lyb‘›Ķ˜aĖ[ýs/—y€Õc}L8īuz§ßģ·UŽũ—õäÅČZ—ÖXá’?š|ëõ–ŊbåsþĢ Ęøčý™Ępē]ŠļRŠn_­ī#-ąÞŠ‘š‘ͧ'OōÉz’§œÉPÎāF­–EĮ&Uŧ ûó›Ÿ*.‡æJ ōđ­ŋ„Ŋīo;čîØP­8ŦŲc-€„OZ:ĸ5ē %Ŧ{íēbĶïČIsP.$ģJŊŽ‹(ŋyØ”ļSą €_ŲQ‰ņ·ēT°â áL95ëØþųl0Š#T0óW –]&€ÎMđA Įžø~žņv!―f,ßÎãŲyĀ^Ŧ?ÚēÃ%@�� é·ø\D‹Ûĸ?\_ßÚúÁK§ĩN @ZgšđüuþŲūą"3T}ôjĄĒčj ÜąĐÕš_:(å“ĸĸȨ̇�ĢĢwi Æ$aš>°§ CõkÁâÚ΀~ąå #ݑįjįîó”ōVÓĶoėSs͜pt€�HKmĘ§į @��‘ū Xïl̃ĄaŌo~šąũVŪČÃ%@� $ãčÂ7Ÿ ��a!Ác N―@EýLBÖÎë—ŽDĮÜOd*ŅųĶųЈ|K}å€a!áƒÐģ(#Čh sND…Ž™UGīĻ%ĒúëåNóM û†XHĻ—2_Íé%ų <\?ŧ–JO<ĻŊ“G(f!Ėĸ –ãZl%§ĸ‚e@<RWW$øå• óxÌQ$E įĘnžØY'B3ĩÅ.’ŠđqYˆÉCó0@ nĐéĖ+ųyÛØØyφáƒý‡ ĩËØ“#!}åĸz‡<ĸ;%YQy‚á*sáoDՀþÁā$ý>™ð˜“ėĖyŊ( ÓđŅļð舞]$ˆžŠpÔÏÛ$ŒAŧËÏöŪÚÃ%ý @QI§‰ ëAŠŦ;aĮJB Čôåōt oÃ'ĸ1ßgjąÏ1B?ŌBš‹i� 'J Äķ&<:tx9Œj‰šJœ`ąã@?ᒠ3ėý˜Óũ) dRþĖáũ~ÉĻQmĪß ‘uånôg˜#ƒģþwCÔ<ũáQ…‰ ‡ĄĻũÚÉŖuĄ€’M}WhíŽAï7 1–a‚4ėÝÜ+`ÉĸrT’ áWžxddÄļîéužÜ;Dĩ:'%WáŨëÃē)Ë~~Ÿ0�ūÝÞ‰ýĨ䂯ō &ŋĀŽþyķ ý!ðžöCœĪø*ü•�"­åGE5ž3 ÓúÃu~hžĩŽóČÕÝøœ1ęĨn`đøā]<VĢĪĸûG;ŅPeà Ė,ā?Æd!,GMpĨB žÁpĐQډý2fÚŠ—ŽhQœG|ûK?Zį˜ŌžÅ―Ŋi’ũŪįã Fj›cßĀ(S“tŽ·\՞XI‰~Ųīí1fŋęCól™4ēėkâ~Ĩj ȉĮ°;Ė1-1Ĩ fu>ۖþ^VxÜŋ Y:a§ˆ'ĘĖēFköš&x DĢjóSKĢĪÜ<„CļęÖQ;cu>ųxCķŠ,šwi>qšŅSɊLúžĢrfÏĶÆú_xš^á|īn@XaĒýCŋ^HK"™‘HšÅYŌkBŒŊx.ßPL”u"~åOMw6௨ÁxÚ2‘äų^č^G}čœvúļŸvŽ|}°§cro�ŅÆÏn"Ĩd°b―•y‘7@ 1•Ü>?ՐóßMĻų­gÜĶĩ‹ásie=ö"!�šļ1A˃þ}ÄoD]L!Ėq=‰Ę:ņ*2øeųQH6ŸGĶL^Œ z ŸiOކ2 czÚ[øËÐ5oÕV·ũWĢ: ĨŠĨoĩė! P–›Éö Í&ģ/ĘæB ''äĒīĻ‘{čąũ(Ý­ûŽlāþ'Üå“pkwÉį…Ũę%~Ēý$Á_ĐŊrįpŋ>)ü�R)æ„ė(ó]KûÁ5'Áƒ™Į')$ãoĒ­ōBh$úĀŅdïųŠúāĩ( :WĄ;hƒČFžTô%1š§ĨæõZų*…W<+7BL ؊|“lŦßȊ­m-=kÏPQBėûz’{?DÚYÏ{Ýģ“í… î–đĨzJ8,ī•8ļ<U™JC‹Yn“'ð€ŋĀ~3üôŲž„`�ĘD"ރģz“N•žtĖihR+ēuáô―ĖiÍą·ãŧ|Øļ`cKÉIcš'ĄT؟ÐþŦ-sŌQp5ŋ­Õ€P—ĶϒŧéŪŽļ%Ā]ý.#—,F4�ҁÔ[žŦĖšķ2imÃ,…Ū KÅFÄTšs-1ގ=$Gé§R”Öņëŧš9‰ÝĶnG&‰ÐØėĄ gUēÏ!juÉÅ܀Ļš?ČļR–moóŸĖ((ĩ>wŽ7æ`=ŸþU^›\Ž$Ņ›Ý:3wh$aÚCV@ÅÛ~eĪV?2č]++üJ_ūE3'Y§ÉŠÜ~‚ī-&Đ9UÕ7ØŧCø$ŧ0 ę( &"ĒĪ-4tôß[WH›įĢ?`å8õōy͏Æ�ģuÁt|ĪŲ*&îq°Čē"ö#|†Ž‰‹ŧ§ŪˆÐ™Š8Û―ÂÓū KxŸHšÕĶ 2ßPĒĩž4æeŽüû0šÉŸ:*% ˆH?[Ķęš@Į™š§ĄÃõó„+YæāC+âLEaEĩėÜęEVë]œâ7ü%HŠĮU—:Ž•%õB+ę‚õDa6-€WýŦ3Gî˜Ï:E! .šĸ,oôP 8WPO”JŌn§ĸyø7n9•æĸÃĢ‹% čŌD—7 Ō":ē@rM‘ð`îlŊ –ü„)―5œ'°6Ð#=Īq!-ëýGÕ%gCŽP”X_jËvwæ–ÖĸUM”<SĪH“fHeð@Į”M]jząBæĀ€ÏR&ņ&yA zðGŠníü–Ģ5ôgot{û!�IĸĸV“0ˆf#ûIĸĸRÍ3ĸ`ÞzL&ŠQXaāˆÝŽđ[‡}"’xÝd|Az“Œĸ?á^ā…†>œ(#ė~”5aý‹Ļl6ôĀ…õēä+7ĮmU,Ø §<õŲ…E*D-ũUäŽ;ĸûû]—DĪĒöNÄ�ü|F,Į%yūœÂ :ËĪ•›opÃĸ8(ąCWĸtúû ˜Ę1*ĸzœüî0tĒcðXSÄ­áißëä`TLBŽ"…ŪHUDōVû0�ŧŠÆ1ˆÕaZv,ŽĄû p?#†jX"w]rí8øņc \6ýđ)Nũˆ'hI$iä8Fí&‹N-ršúđ_ĒÐøĪWR—Ũ}ïm*nKБFâžC€›qÓŨ-þšũ"cTÔėþ:ÄïĄXfžĩ+íiBmŨ4dâ _þ”7€óUˆÆĪš‹™‘Zl°Ļh€gï0ŸæsTĸ[DWú5ŌeNŪp›|ŧ%Ût…RČqŒ„#Čƒčę=YfC5cË&•ĩęĪŽwx‘?�+S›p(ŧš{4ųņ àLˆøƒW‘Čzĸ~·’ĸzÆÂ;‰KRÔýÛL īF0ļ—Õ5ÏŅŒĸ}Íaá%T�  þ!Į&qzĄõhU„ýMĢS8â§ïÁŨÖtSĐ_ŲúœM·ÜZ>o/%��ÂB_ôNz3ĩ5 éĮd4YėMĩ}^FUÄz‹Z‰õLģsŽé6ųķt{-°ĻĮĸø”rhŠĸüÎTü!0‡Ë"s $S/’=Y,&ó`D €ŲíHÚf UĶŦDą—f•a醿*AũÁ,ĀÓq‚Y^Æ@#–ļýâČĨÖåË?xunÃÉÜ9ų—ÁˆôŌ-Ý™…z0―TëŪÕ(óhŧfžF6}û°ŅčĨEÝÆÃ— \ÉãP?=(9Ÿ$S–‘Âî-·O"ā~ķ㙕qęEAyLÍW;kž{Ŋž˜ÃuĄÁČĸąÔtŊxŪ…É*ąaOĐŋ‡Þu‚Ā+Ķ\ŋMĪ‘ÖdĮčô…šņE)ŒŧfÂSR%gUŧfɚeAĸ`N€/Îw+23‡HWĸųWđÚóD87V‚―°ŌōîžÃ6ˆ2ÛVĒ\ژ•w6bPð‰Ā­Õa™Vū˜!ËŅlœ87ýĄŽLXÆæ{õÆüÖR_Z6ÁÁŒ`õ‰ONčK‰ûÆS#rŠÚö`Ép;M%æ°ÕŲ āŋK Öŧ&ųŽŪ+þÏĐ­•ÏÚ^ę:Žŋ ”s Užļŧh&ƒØá�ā�ĻUĐ ?ŊՁjŅ߇9<Žū\$ŪŽņøÏq'ŋIijr&€Ô@ŠQ té†ïčĻīœĸ-ŽÐ`ø™}ė―°-(؃#Hėe`°‰†Ä„B uޘdAå‹ýíUžQW7úŨ[ŠKý5ÂæøŽ>ĒûsÆād1ÄSv“�\<čfāGIšžÃM…jų#Í%dŧ3ĢžcÔĶķōNˆQã―`:ÛaVäoÃL1ÖüŒģžAßÃÚĮ!ÔÖ;\ ESÆõÚ,Ū ðĒįz2”·w8ęž/Â-lĀė[Ë53‹�eØÖ+·Jģl{ũE€/KÓVOéVŧhĩbãeČũ“ē^‡žįÍoßöĀ+mõFŒ}hĖ­"âSyX˜Š-'c,Xyqôô-ø žuÖnĢïâ8'š­)dŽnQ‚ §ó Ûl”~Áéá!АtwŠÅē0ŋ•G™§Yûúiúõdz††Šîœ<čGúegÜā@ĮÆÓ>u>˜JÎ)lėšn‡üĖh†X=|ßÉO"įŠ%ōxô)(†lÖ(rã7a"ÐT™X˜i/ Q{zóžJŋ@–Ö’‹MÝüÆÄ$‡ŋØÎD2CĐBSųL:āæ!5žï"R2ĩš32)Â`~ГƒA­ƒOƒ1ÚDŊiÕĸ@Xb\*ĢróJĮ,šë}bŠ­™#‡†ÚoQŠ~*œ›Ëw&Ō5 “Rß6Ōō”4Û§wŋYzHyĶl§ ĖE%ÁĖd ÏvĢhsV˜Į—§ U€ÏLęđ6aQþqþ”ōHĖKËmāÃoĖsÂō·­h$H­ā€đŦöÏ}jl$`ËWŠ‘wŲ”Šüļú“8įŦö\pg·vĮ—QņýėEĩ…Ŋ°R>§c€{æHĖŦw3;hwûYMĩUø-A™qn’ ēäũÐðēŋūÍŦ’úN�֕ŌÃR*Sx­ßôi]Ą7ĒbtUÔ2žÔH Ö\h [€Öĸ}üĢŋˊŋĸLz_ŊũRÃû]sã?þÕģø ‹aÁÍĪ=t rë0…l›ĖE1 ĢŅu<ÅTåį>,wđ€f‘kәžŠ·•@’ŨHTÏōЭ;r:oūŒm=…";W!ð™#)đrÃ?ŋÍ+ŦŨíg ÛönņNåĶ‹ÁúVF’jũH—―–Ä"ЀŦöˆ˜øčëīãuA)ûâĄï^GĻeEķũāŨđø­mŸZðR‘ĨĒTĀéÉÐ_`Īė1܆møÜĶ6ķŨH=ēL%ÍĐéˆX\‡ōWð�Q.ÛiËŦ0Ú°ũ$8w‚Ïzw<�|M4“Ūž�;ÎåíŪI1VÚļ­ĻÚNtP<æuaØY $ũ)§ŠkߍˆŅÄL6Ŧ§ŠH6ųų'éôD‡!­=…óŠ4ïĨĖÛT' KëĻ‘ÞĮĨŧŦÚ―ŽâņU:õˁÐųþIēōûiÁĻŦ[_ŦX/ČūzށGHģ–ÃþĀ`–ũRĶ"ÂŊð7”?&äĪaZžũŋ&(0åŋņK Ķé<ÔîŌýîpû’ďJË>™ol‡.2ÄcČl8ÅÖ>Úâ–ĨĕUæąûŋĮQ°Ĩ6čķĪå2"œŅÜYd ­4+Îo*”u›ÖúōųIþš2n>ēRød…#ÍvrRė^m’nÂ&elūm ČQƒUÐį*hŧÐzk™ĸFŸeŒqL~/PFŌíÏ^ޚ=vˆ1ÃĻūAeŒē. +œōäŪĀÖãÁÁŌųš8L*ļÐïÕe[KÎi@É5ú—H xß[”§žöžp”sšUÕ'ņ؍Ų9LčGóŽz+ˆQQ7oå ėÅgę�ú[íæFåqĪnūpC xŠ�h―Ÿ|ĀRę)™Ģ.â^äĖÎŲņPnÚŊŸYŧę~s\ĖŲMCe.|Ï/;äg­?_ŅØjņ‡EΞ+ÖŦ^”ėÉy4K0ĘĢŽ6‘WŅĄO3Ėä‰NĄKl^1'LQĸPw:ÏčðTNe(éAžÁĀĮĩÂąéÚôķĄpČÝ;D)ÏĢë7čŠĘčáóļ·~_k™‰ÎQĸCQĮxrðôĸhĖ0=ýä�!Č-_؜B4‹· Q\{ïk _awWĐ(ÞŧO5ņŋĀhÞV&L,ëôhS~ņÝ>ïóÃÝ{ôĶžÛþ›ĶÃö]p%tyRåóû]ĄÂ”‡°NgĸĸĻįŨ?ũ:Đuqrh6o—YqØ,\Ã4ĻP{ŧ‡qÛHN°o+xENÄ'$ÅĒ Ü5�ƒōÏģĮ)-Ĩ@t†Y)˓ŋ1Éæ+Ķߑ ĐëXÂNóQĄÍÏYĪG7'WÄ  Ák n1RäŅŠŋUâðN€ÉĸNXŧNža}`~Œ°·?eëĀėĸ(d=ÃĪtčĒGrûČnÝ?+õŠQJ2 J|(M™ï‘?vnëļOPāŧIĨ—\ōöïųķD]?‰ŅŊ_í}Ũ Ā­Øû`nV›wũ<ūD'·*?‰h 5† Ģ€ēDČļ#Ū4āÍŧ3D‰@sĻ3ÄYëĪīK·DöoÛnÃU x)ōŸx{‘˜hĒīVR*y’‚—V&Q>jiJĄhÁ{’"ô}É―ģóü*ÕŌēŽ_3lr�{ƒ0\―Ŋz|GĕܾŅĸA\Ÿ­ iE*KėßĀžbŪïmįĮôCÞZEkČqÔ�”“ū~}‰―üĪ’Wĸī' ‘RâĀ.æ|ßÄūÅāH ώĪÐŅVX Úƒx$øČ‡ĩ­`Ĩßx%ė\PlVxþr˜(―@‹ũȓmģNũ%|*LÉ>įĮĢsSŒ7Ģ-ąxˈzï†ē*ŪŪåb|—ņ›1•"ļÅ4˜ýZƈհôOņ`áúēĶXïxŦkœfƒÁ™ļĮ}ļ"ÝgŠŌ 02Z;i€ĶãÝ#m—áēÕT&YkŪwĸĸĸĸBŦāÏĸm6­X”܈·Ŋo`đ:AåyŊęĐPdšþvŠ•ón~ŦËs_Ęĩq&’ÞAŧQfS5wũ·üY‘Ōæë=)†jį@F?ÉꂭáĖąf˜œj úÅy‚š,ŽýDŠ„ôŽqwŧōöP•X0J”:͟(WXkÞšež:,ŦŲPeFáŽáĄóÛÆ­Đ›”/“‚Ŧ{ˆEąģ>ŧæ,ņaĸ QũĀĪ­Æiî>H œbŋōVīŨÏé+Ü~RÏŦuoBΈ@åŽĢ?ŧ­ĘÛ”Ý IˆÏ-•ãg'Đa]˜ē<S!ú―“åšŪ>á̰NëÔâœOčú‡PĢ 8t˜‚3tëuó_*Ėīž<0&t“6čð6>E­âŋ6,ÁÓūį ŽuŊŋ6‹ũ0+)Ņ;â$5}Gb·1%ņÉ8&åíú,éþųäýÝÜzTóo_~ŸŠey{ßÍīf=AĻ­+ë)Ōŧ°Ąû˜§p™ŧ* p$öð:œaAÆðœû›pšav[cÍÍWŋÏôÓĀn@ÏÕķó:ŋtĐÎy™Z>AŒWīÐÝŊėWŦŌ=YŲĸv=Ē8lŽþŅŨDŠĒ€+ųh6ëo‰MþĀUsBĒr،,eâOMĮ€1M)ŊÂŋÓņÓ uRœĄ;žŠDąBÓ#ō“Î|ȚāĄpžTWdpghŸįr'jšðÚÐķf-äĻM'uãŧ‘ÞY―^‡ũÏïĢTÓóßšžĄz“ŲQøē~ĻÃđÂėʒÏņåÝ4W‹ƒČĸGĪ|Nę‹ĢûTMj+*ûCMQý íÛ@Ũ;$š#Ú(Žî•)x‡ĨGÐ\ĸb‰ŦP^'†Ų•E,K ŠÄÅhRöMÐOėWēšŪę‘ÚŪ:UŌ[††‚tŲč3ģf— TïdFrÛ%ÏIũēœnŨY€}ģ°įVRý;€Î]–ŧ.JRĄ‡årܝŪÉÖnŠä8Ķ݋Ļ"ė6 —UĶw`vbÃĶ7†ŊƒfzșčĒ{ԐØĪE˜―Y.ųSäRËÆ] �@ŋĸþÔH‰ýŲ$�ðølÅ |sÖ#đîōdįcÝû[^ÆÆ„„™{ątlÎōÔĀ"ĒėUĩÁŨŦŪöĄŒžũQĨí}ï2�q|‘§*@˜;î\é4~mÏClۊbwÃ2AđpA…v: ĻþãO=6â…;ý…�›ĸugŋg·Sŧ/qœË%[‡ƒ6NK·@=ëŅ ’ôîÔwĶRĪŧvWR[h‡Č=>Ōy›đ…Ęy\L•;Ž+m`L a āt—dëũA/so^Ÿč―ģšÚaVkAŅÉšĖ’ŧ*ŒYŸœ/eІŌHĩ]ŋĒ6§:óÓ w*KVÓp:˜ Č°™ D<Ō- HÃČv0‘HÚXļ  ķãĩČ!}<” ýD âŌV ÄęħPChó‡ėÖ-îĩðëK€fø?ķ VžŸš-Ud3?ÝC5öÞóKa9>ž-uë…ĨāíĮc stó3ßzþ ķß~j†zĶ>·ÝÉf1€Á*ãÉS·\ũgŦE>|‡Zĸ TÕŦ‡N}î7ܑŨŅEtzésdW~s/• dāŒ€+ŊXYUŪ$e†Å“ĢĢ܌)‘% FUƒÆHH0Ģúũ_™Qîė§ĨČ:ú·Āņ‚Ö7L�â'<!ÁÕ4LjvęAWĘEi™ķ#Áq0r�rbxАĶOÖ1ķ†?T)Ŋž&Š~â·Í:Å@ĨKŲϘž1Ļ ë‰ßdðë…B”BŠ@síž: æ‚ēh?āûãJ§ëüŦ�ÕįW!ˆÅš€;‚ÕÍ>1đx\W‡‚ZĒc›GîÜQtákđ|ũUü/ôœXo#�‚!:֚œß{œÓÏC\4‡ŦpŨēäŌCLš Ģ* (áĪ\üĩ[c„a_b^ýWhĄØ‰ÏŦš„Ŋ›_EäCīv2­GGlîísðG1Ïũ­?õXÕĶ… ~rúŦ›6ĒÓŋ@†ĢZ-/Ž•Œ*Ķ@‚",kr•5ėCŌĶÖī�ŋđĩĨÅpIz sõzŒ"äqÄJBD8īÝæðkO"ŊEÎ 3gî>äó“"•ßÐC͊zĘŋ-þ℆cė_ū—Hđ”a*xŸqmāĸ]Éw…&2‰Ņ,äïý GÁĸw‹+ĖŌ?qĖz֒ôG’ž6sy98jGI—ÔhE6ãüf.Āi$+Ú%VvņEVË ;øBķ2kÃóŠ0Š ĐģmßĀ\đ ô›\Ö3\ÓÏúôėą‘a]Ø$%'ëdšlÃ0â&-qĻÍzÅÁČýT OĸmL‹Ķ#?ųĄï žeŨþîĩMîŪ4ƒÆŸ”ßJEöNWƒßŧŅï:Č0óƒÉPÅ'ð9"ÖÃÍ=> dÜMÕ)kÉU‘ÛHhӓ„“Ö­ręTß@ ÓTéĄŋøáW™6ūmåx§‰V6ƒĨSž_žÍĪ―ÏUŧÆ !?þ (%àyŠm“C“ï˜4ÔŧžđxLßŦûëĖøÍT xŸÃĮĻ0%Í Õ0ĩŊ­�­!“e6ĘÖˆķWDĪ`úƒģÐĘã!M―&z6ķPâ'|Ǜ̅þœã^žŽÃøÜÔyÁ<‡I†Ļk~Â8ĸEŒūŠéwÅ^·ĄŸ7îĮxĨáäj#ĐIķ\Ë ‘ƃđ0#*fžhJŒŅéuũ<ĨjÞwÐcÍŋjþ‘_ō‚’ņ/ĸĮ“9·ZôįiôÞüǁÕ!twį2ŝIŠ#cČ―ß IŸœM°ã„c|P ―·(ÔQ%Ī'@P ·oÉoÅyV åÆ(ļu-LŲŊ=Ր8=rēõnW6DŅÄũ:§če;8ßđ�߃äϐÔ҇NīåT+™ gîŒĒ/ý?CTšĩ9JŸUęáīúķ―"­ę^=gúÔáPŠXÐú| Íã›æønŽĪ3=ã##óĒ=RÛĪāĢmˆÚ—·l=+wH’Îɕ†mąþ˚mÏ^ŋ9&6„PÖ+ï qM‚UG`•ū4ý"5a~‘öÏu°9X38…Ų^9 .ÉĄÆû2kĀSŠõū\é $Y…mõ=$â)Ÿ6käõä#jA…Ģoĸ/Ģž0ŸIÐkŲŅ>c”xŠÞŠą=°ą~fé}(QŠyÔ?Ú”@äŌ 0#ķę >PŒŪŨ DĘáų^EQx•!XĐųÃĸyß•V+3ÂĪ@ÏēˆÓÄĘ?ܰaÂ&É<BÉÉ}ÜųÄ Č>s/°Į\98{/â―ŸÓ{qTfbŲĩ‰‰bŌQpЁðSŒšš+ÜT*/[‘ķÛ3ō5WnOA{ĶĮ!ÆëŒ4įZÚ[,‚åūaž ânødķŠ—§ A€Xšģ9œŌ í/™@ö2ĖBĘ+ā.Lē:˜­Ÿz`ČQ öU:m―éä]å `”‡û =ņûČfå€fBJ‡ë‰Óã—đuė†>ąåœ―‹­Ëqž{N„šØ ųτ 3;ĪôĢæSŲĒ]_‰K@Âũ&uÖ[ŠšEF­ā[xI*GŸ›äÄk=Ũ8‡�[NũÚ1í‚ũ^š{"=|Ī(ëzýņŅ.ā\Á–&Pĸ:ĒB ģŠÅæš:V–ŒžÔōĢ%íÓ―VPZr·Áģ=)|îßAÉë~z;�áŌhV—ZHW6uI?ĒģÅmšÐ:xRž+ËáØH­ķþénĄÐH”ÔމänÁ―í°Ïg•EÔäÚßÃYjĢ0‡GõŦÎöÓD5ŦFŠ&[_ëp|]ąÁešēĮOžĢ{žaOšĻvAsU+’g ០…9ÁŽ ™2͇ČSYîþâÓóĘãýÚ$žč…fS˜ŅåĀ6Äj$eÍįą|Ēđ ðXŧņķ§ČĨXP§ķdÝ7c Ûm•G@ÍÏe PÉ'mEĄNióPPXXÛĩ”YW[„ļÄí7xsW‰ü*í úÓrQŒ.éSíÉøïU=Xę{ĮĖ,MÐāo.fÁîÜ!ļ!`ĒęsxmĄĘÆí™>Tŋa#ā OÆ+éÚėv\/Â!ļÄq?›EkŊÚ9�cŠ*Ïq šyFœd{dŋ_įÂ2ędzÞđâuŠW+Vû­aXÍfn0ņ*·GŸ™‡ÔŽítJž{)Õc­l™FaÄ ĸ―MDýï”]ũOXĶįļ>åJ%Æw°í Îčáa„[?ģmBŨŊÕQ*ŽžJFÂū<W°­ÔL˂ï_*˜NĢeÏÅb&ļy ‡'p9Č ŋkēÆ&–ąĘDø$ÕĒ` y†ƒ;äŧBįˆ=M  ŊmMÝgЧtĶ *óĪŦbæŊjc[pâžš„Â>ËgŽõlT›Åïē–užC―ÜÐXJs7qý8 8Æ ·XŦ\–ÃßĪ2ËņŦƒö?;ũŠ^ųEx,°1)qiĩH)Ã3ƒSN‡yüŠŋ‘íŨÍ·ä6öPĒ]%Ķš‚"Mþ“ĄĐÖŋˆ[`s1\§•{Oĸ2qŒDEÖáO<mÅBĪ+”‘ŧ‚ļ‰ũ3Ī$/ïŽAãúhĪÏÎyHĨ 6„ĖÁ „üEwĄß’úX8…FčzË·Ôŋxí50Ó$•ģŦo™{ÜQøœîB’l�Ī€Å^Ų@ųõÝOfUD ŋåŨz—ÔI(øŒÉ Ėqā=Hm=F0ē+oUîΟ4ýfzÓ"3Ðã ũO"“Sa/ÝMĪo|$PŊl&é89øCŸ ËCó§–sōĢvāÆ1ðWŒ˜s&‡įÁËN…REĀ]ļŠ�åg†Jþ<pôįã lågWþņÆYWjL„†Nþõ8ŸJÄ?õÂĻØ@=2p!›ČÏ&ÜKąķÖQ8H€'ŒqÎYĨT>[ĒŽe-ģۙ6īÔï“G—ÄÃĨwI10xü鄀uX㎆ÞrGŒÔÕZæ?F c~kŲ6XÆ?ũkg#ÍŒY…mVģĩŠ`ņß3Ĩԝ9ôlš Kö4*ÏíŌâŦĘž*.z —jVlģÅ §Ņ0GâÂ;qĖâÚŲÃJk/ÐÔ4åÂōļž3+ų 9/wVģUĩÝRzĐ,ė’LCā‰ŊĄáú$1>ķŌyk[úĮ š'ōŠ4Ôol>•-:VôåMĩ�ŊėÞÄŅdŊ‹‹yaFĢęî:Á}1ÖīAÖä MŪøĖUŸ1ŋ }TÝØ�‘iÝ'óĐÚ8u9C-(ĨpļPũÖŨĩ z›·Þ™$UÍĮÅÕiH?“OęĒė|ŒÛb‚YۇŸĀqÔØ ―ÉcögĢC)š§båú5Ĩ8Žš%oĘv{íïV62”p:Ô"hŅiqtŠý g]Ïs ĮÕËÝ)|WTkŅþ·°ó bE!•hctLĨ™D4A?ō 5lŦtFmœŒĐÏŪÅë\ĩ Ō<ņÄũžrĖ)į{A”&―?„6L@wæwÚCģũ!k&ŅFîØĢķ2eD—,}”ørĶKóčóA7ã#ĒÄgPk6`n->ũ“#uÛąúÕ?–ļ–ũ;Īi^ߔTf(č:˜ ÕŠæ\ÜĮąõŽ.!š@ÜPgzŌîZ—ŧØæð‘ÍD”'ÏP€ŠOHüOdĨĢA]Ó,ðDAßí(l”yp―2Šąžŋ{ąQUhųžƒ% +MOSï ÚōæĐ’4=OrÓS5q\ļ@;f*Ÿ[ļ6hßXģ=Ēâ:ŅÏũýũ+"b†Žïž NCåUąxī#ÎŨŲA*ķÍ^ŠžŽg8ÛÞ ôNØ―š‹;`0šÓĐĨ|ÎsÖ ô'z…Ŧųë}ÜĢÂðĒíÐó€ē3uCŋėyC/Ķe% HĮā.4™.Ðģ"âĪôaÝ―B&˜ f ĸ üY]á{؟lĒðĻīüņ‘ņō|ŊÆĀ]0ÄßéÜĢtôķÄLúJd7ŽũšŅ€Įb"-Pej KŠÁ”ū'D[œ‡ëI}ŽGũpÁ>äųHī―ĶE ïîŸäi Hw˙24Ŋ}b âÃþįĶČšp%SŠlÕ§Ô%#†h­tO―Û+3øõ­pø#{ßEė—õ4žNP-īđģ”nË ō]]ójū3éOĢ“Ų~„mĩ›ņ CÃÄķˆÓ—oPŋTtiw`Ų-zoāïYyœ~‘ĮįëÚoįŽT,­O`šÝó5?Å0Ó^ļœdY.ïKÉ·ŌŊT·>FkĮØÆ1-㒈ÓLüō™n•Da8[üŋ6ķ+°ÝhZĻüc”EaœUNˆ‹ €D’WË‚ûõÝ SdÂU4ĨŦ5/\>ÂĘurŦĶčXė 8 G2Įŋčð;•ÎņYÜye§þLîķ°5ĐöXÍ91ęŠÅ]3Ø<í#FV^Ûē_ģæÂųvģũ‹’ ÉjįÁĘxIīÁ%)Ī.Šīf›Î“Žļ·7Éđ˜™6ú ‚EėKV!tïũtú_^l‡pöˆ{Ž%úĜÁ1č_åÚĸr~^SũĮvĒ–1ķîę Ķ$°5km'Ļą~hCBų!ąš|.ΗÓ-Mō•þôëŧH_áá°*ÏHY ˆo$œ3>ž ā@‡dmœĨOŦ‚§ð9ā*~ dNCúW-6ī…2įMTīķðÔ/“IĻ™‹ðåüÁž>ėŽÞQņ]Ð%ŠĖõPĒŠÔTPYþĘåSĩĐ;æų$þ‚Q'ĢoVJÞã!LˆŦАō<™ū3ŪĒƒ…Ō)]―Ū§f?Šé‰Wáļ=úŽ^™nœĄ2æŨŪ jēž1afV?―ē―„A]J[0‹2ąh7›Ļƒĸe›ĖąĮĄ”iŽþøwój<uĘ=ųĖģŌ8IŌųÕwôJT‚ ôûđé(9bûá.2ĀˆÃž)Ë?0”­ž%…čqþĮ_{ā6ô―ĮR  TruŽyjq&ô'’Ð;(‘G˜ŧ‹ų4ĢšÎ�§ūÕĄ,Ė2ËEïî^n5õ$GÜJƒÛhŌ.cbaŋ˗-&éŧo#zģ}iŧwĶޅ€mtÅ.0}Ë!ÍCĐryÔÞZEAF‹ŧ–e`nģ_‹S•č:éãĻUg4WŸó–z4Z”OÉfõ0/íu*Ō“W1ęę ÔsSLð] Гšķ7óŨŠ›ē4/ü6ïæHģ–.žMUãčLū) &ÕTŌ;Á\{ðÄŅĀD'Ģ[RV@…>õa[VJĪHdó›yc‹R °;ĸNԋ‡L ÖIPtSŌčąIݐōÆåíïMē8ëņø4íÚĒķ`ÛÞÆ4íƒyĶN Č<į™RåĘôŊÉcÁR&Ô| Md(ĸlÝ„ŠlĶ9éŽVôßïœÕƒåO}·I5-ÐÖ`E6ļCĐá-āÞmuc tÛYíÆb:8EŅíÕ .QYëŨēąúŽ~>UĩŒĐ|ËB°T*H6bIŨŠBH4Š!#�.9ø‡/úņDĄÓŽpš§ ø)–Ö[ŨųSpJŽq#―Uđrm#›.áێžĮÎ―;§aÅ:ßÁŦ&ČPóhÅâ?Ō&ßH€ø5ŽðOļt4úgëŠFž[ŋĒf}LbŸˆ6Ģ`ï5ßžŽÉx îĮ A0ė„ Y+'9ÏyNĻKþf OÆŌŲ)NLlķŋÍyþmķ'›ï$cw>=[oˆ_aįÎ.qÂÁږ†Ïóvj .ģŠŽWz‡œýHčVŠU`ZŨ˜+ú<ē‡)oåÁá°ēãÛÆHč$ŊuĮ’eGdwĨīŠšÉĢâÖæ?đōB]`2(·ĪŽĪ%!ũž‚8K(ĨESpg„ŸžZFĶuŠ "t‚GŊåąåK°Ų-:ę۟°fš4™|/XŽ\jBCjn˜D7]šč6‹nĐ'‘ëzŽ·/ĸkIÉá:s.J5; =§é€Dō―e<™yįoƒ. ÅNâHŅ…_ŲxŦ~HŒÅð`øcŠrNúĄČ‹ĨŪWL ŲQV 2wųRÜO!FîL}Ē ĮßۇąW….“sHļˆäNKb1į.ĸ%2ߓ™ÅCd…ŇļĢ ·ƒo;ã/ĸĶ*ŅþĮb4Ŋ 3ĖŊÏ0#îo᧜äëŅøĩÄ;ŋjCRŦųþßÄöjšØĒ܇DðÏ/|Pæ—PMéSāö­q(ÎC sžå› 57’ô†Ū _2°órŊ$ó _äBí"þĪāÉ@q‰ÆX|NØõŪ0rčAÉVIƒ™„ ƒå;“Ã,į]čÏ[ ŠĘ―5°§Ę>^&�ė?Ũ™åáŲFEÉáqNąéĸâ~6vëÛ#ÞÜōâˆ~ŽŌZ†FW.þÅéˆÁÝ0xģQž’S7Ŋ…·ïŽŽ °ŒúđÆãį˜HBtü29ËĄÉaÞ!ˆiēßĸ\ĖÐæĶø‚˜NP‹ ~ĩ‹ˆĀ ŋV˜%XüŅč€灀ģŪËAÛÞëÕds‘C9čЛ*D”K@‰[‘ÖÃáðãå?óÜ9Ķ„rđD8wØïŸ|fÐMŸāŌ5rĪĖÓØž–†ÍSÖ?Kž,ŦŌFAÎfajMŅ &Ïh+Ï,O"I2r Ąũųô(6“ 2ŨŋĮ|éÆã%ŁÝÁ‡Z9l,Nö^’p—)ȇķ đŽþ’cPˆōÄļĪþw3а,œEn =āš|eÝ~[ļĻsw�9P€Ŋ―+S°>}đYTũte(øĖžM‘œZ:jåo‘~ÚŦČ�zÃAë`OPåfđÂ·į‚iG.’ŋŧy ėąÍÏdB™ Oør™ģã+WwaĪ3΁Iø.ąþ€_kí ú­ėø\4cōãĢk=[ЃT Y$]ō•ˆb”Ápšî4bOŸįŦ— Åyšŧn— žrý•ĘĪcÞ@đô oãä>.ZÜÚdW_DņxFūŋžóŠoŠ#EĐ]ĩ‘Λ̀h{ŽDķĖÝ ĸ!uīĸNI"?m>wEˆĄL‹ŧ<žÚ€ŋBŸ…Â9€˜Ãē™ãÍ_yQ>“ð+R]_Ð'Wß!Ciy€ģUðEĄĀ§Ö(G,Ó1gâ/*%óíđ+7näfE~)JĐ{@Ž{wH`ēhïOÉņ=cÜi‹ØēîlŽ,QE> IS”ÝOóųÓØY–ˆ”Ņû=ķ‘–]·ŌXĻp�ĐĻ·gÃ°óQÂw{Bíē†üCÄjõä—ģ›oĮņ9åÍUí�/ĨOÅGấčÏÔÛk3ęßæ>§‡­AģĻ^ųĒí6™# ?ð",Ûs4-7fĩ=AQĶõßŨ=€ƒüĘŦî-…‡A šˆC …eū5m€Ū™•Xmip­įwþÍEĶąv–BČaÎ&ÓJŌĸ!=ÞgRQ`wųōŸŌ@_–"c†}œæŽÓ žf[Ýï–Øŧp >€yÕ5šÅî|ĀíēfS`Ë)RŒ?ž%%ūąA-Á&žitÖ{h,tKÛi*s\Ō>~blûÆ(ŲúĮýœ|Ī9fZ‰]ÂBí―ӜHŲžâ ―°–iT*—zŸ“8vĻä깝sįuïÅĒ9tåûĶ… L—s\íðp…Ýõ­$Ī˚|žĘr>RĖXįô…Ķjؒ‡€älIAœaįڏûûmŋ~‚.L|“XÉņē–V]Šē,8đ7‡?Ԋ‘•ÏÚhð7R&―ELˆiūÛŋŦ―7uę BËújÛWÁŅŧ‚ZŪ…ž°Ŋ }ƒ›đøĒ@~*KE`9_ÂyĖÁļ%Ô?7FĖÍ7cЎLcIĸ+/õßūƒŸÚĘšO.vĪYoĪrîsۖ7k˜― l•0Īz”Ô>yģĀĶ#Íō<ÝFD2’QÝŊ<Ŧ+šÐ ĐīĻFū S#ïâqv†€ o&ú*ī–ŽŌh{―1ƒR|xÐΊ"§HžŋąĶLŪŽ;šū+K_ÛĀnÖbƒtŠÍb„:äĩšmfNIŌ‚'ôÐŧ|M(ÖLðzï#ū#ĀIĖ­”PČŪmTýŽ-†ÜáÄËh�üüô/ūJĪØÁ”Ĩs?Ŋ…š !ÜÚ;ÜEüVišáõļæ]ÉŊōēÐĪø…‚Ũ”ČęŦņ› Žt$‰;Ōz—E ŽūõÎĄ™™âūÉŨuAiqjĪ vˆiĄĨCÛ)5Æ·ĒoųÞ}4@<áqÏ>ā―KLČNî( ëØų:ē6ēčnĒ9bfÎ8ãąðŲædT-Ÿ'ßéņvūzų)†üXøŠ\}iŪÉ+ģK*·j~ cíÓrå# sč€�;kõS:ĨlžÜ*_�ôā-ÜoĀtĒÎÁŽŨ îÞOI’ŋūæ O˜/4?éKĨ•Nf`žås>LŠT—âô›[ĢÉЍ8†—@·A:ËÅųŲ—Í―û|éû^ņŠíRHs€Cįps=[ņN­åk7ï~.‡ĐœķcrÕb{;Œ<)Æ|oį?ŸkP‚e8VP}—íŋpŋģŅ>7íÃŧJ™$Š@ŪÐkóÖ0@g_œ™J… P°“ũ•mI*œąÉƒęՃŧE} ŦĪëČŋļ:Ęt:ImŽ&ĸA`"ŲÜ•ū<,ę(ïîÂÛŪcĪÂ`‡hu=ōĀ€*û°õÏJI$óýœĒß°Ļũ“$Ũþ‚ÉĒ[^·;kŪ€4otĶnžĸ’LdLŌņbĒ‹iĨŠfÍh"ÎĐã‹bY‹pv05“―‘_Įā°Í†íî7Ų2p%ũãï:ĢZ‡:Ņé>5gRÅËW]đ;ĶæųĪ{ŌbĘĶõúîûIžMK„ÁnŸQA1h€ĒčĩũėËŦ<ŧ Dĩ"Wåŧ4)s\™Ü˜I�ÉZë^f-ē_-)æđ\(s„WĩuóSø8ôä†ļļáŧÖKŦÞ'‚˜buü‰> AŠh}ýŠSwåZļ\ۊD#4úōDŽsđ€åÆ7Œ $ņkdYéÍķîÄ`_"áčv2€^â”cũ7œ€äHųpü!ņÐéZŦ°Ŋŧ æ“îƒAĄâ,Eu-öĖ(Ģļ:Ér$ðŸBōch”‰ýĻ`,ģHïŅcüÉwe_H 'wʞbĩĀfÜnD*äŠÓKĻhóÁF„#'úí:vŨpxM–UģÛŠąī™%ôy“·ĐÓÖCh…3/FĢĮôŽ€ ̓P‘R%2Þ~h؁K4ÅĒ‘ē þŠ”:ËMĸ|TĘ`†^ØßŒi2N;bįØĪĻ%Ãôú|ĄĩÃ;ų~ˆösëB?“āĖJóm ž5ÉUąā$ęŌácSëLŊ°ĨRĒj*9m'"}Ð Ø @EĖ]ÛŽÉúļ�9(žĘ2* ƒõœ@>;zîAWn6 õqmįf0ĄztÅHD7sņ™KˆðøÐ•°ÚųVYF’Į\ÉĨ―|ž[āđŪëâöŨuhäîŽ#ōÝÉø/šŊ§V8G^þ`dÃzCb6yŽŠæöø„&*Oôĸ/.―Lã^IßEÂËMŌŠeĪĨ:"oßcōPŋŊ–Č<^]7:V jðhjd„üčÓP*[PfÞŦ‡“4á‘īiîī §Ŧļ2ũûj`bˆ|ļ%­ĸcŦIđÓO0Ú>äļÃ5ԏöŦKāïåŧ0Ļ+cXwŽÜĨájĘŽl-_ĘfیN‘ÉÜŠ~ÔSkB@[ƒÚĶ.ä#ė^ãv–<RôČQ,ˈipˆĸyėøzaIxæ2Շ)$jĀÄ$cL{ŒČžÆz–ĸrkŊķõ`Ú۝öËSŧ}ïy üęX―c€þ`@ŨQĄéQŪ%\üäX-Yâ„­īóáÄ6/1UÏ~ÎĮ8>‰8ĻeYcÕyÂEœ…;ōđúßÍĒĩĸYDÏýˆb^8aįi/―y” 9­h–Åž=• q!‚ķk]ÞŪ\ídŦú|hĀ,āô°ÐG|‡‘Ë ĶŠŊÖĖ™PųāÖŪjė+ 7··VČí·œ/Ļų†lĨ(“§•ņ(Ķá횈ØŅ·*'~G"Bęæag(Z]pļĶŽKnEĨÚ ė{ū€ŋËCžîԅ2Ģā)6Íā5xMbđ;…ÂË"]ø"g4BkÐãÆžRj‰ņŦņŦ‰RP›ĢRQxYo`œä#å­ß—d3>JWÜĸW2Œ wŠý*Asč™3ĮTÏJrE\9@°âē }ŒōrkŌ>Y…š)Ä› tÓÏŨ6f­ð˜Žo˜ý[(ĖĀÓmârįVYชŋ―E`ÝãēĀû9 ËÏo‚?ĨޑÝY•SÛuāĢv“M˜ņ`–ŸŅ cߝnjĸhŌäŌËę10ōÏh)GˆÖ%RĀOšĒ+RūoïÔ\ÔuũÚ p+á kzMŸā—KXáQāá·ø,4ĸMŠļ\ïø1ðimÛ\#―Ö/įwĩý‹ ÉYÏä­Ŧ1'‘!Ąšî#Þ9ä<Ō#ķÍÁ_6ļgƒė§oîu[n.*ũöÍ fĸsf2ƒ…ąį„ŌžČÎ6k=xéūP`at”3*8ļę’!a>ĀpfŪ‘ú)ĸXÍėsīw9ņéôGÉÞjx/™šũ΁ŽŒÓÉåĻdņŒ Ė„†œæg]Dáyp}xOP#^vJ]é°}C=Y~É"Ã(v ݕ‰ĸ%؈\Ĩ8j™īÛ’~Ÿewâ`/lĶï3'æƒ#Sãe\ķ–íãyoāvÃPéq0ý5ôëĸφoš§x ɚÕåĘD Ņ„"ũÛēKúí)âÄgHsÃųž "YÏ­š}ÅļO*ÏCō6Ëó3&ÂŅ―„M^áŨĒÜ8ŦCM†hļßdž"·ær9hhßMbóqæm_éī@d’ns‘°ØlÄ =ÏģÚRĘĢ‚ Š”s]„Ā?­ XŠČÚnKØY㊗qĶîō_ŨÔÐŽi—ËŲKa\óbø1Ķ ô_ÜŨō48'Α`âãÏÂaIjņ—[†å,Rų4Ũzą™ˆˆŠL=ý is―{ö°ģ.IW”šEŨ‚L7§Ëė„™m@_JZéÔaš°…îžųĒ“|i"4åˆ|BÅCj[éÞŅôf­/Ũ!ÝÓfĶė*ZLĶŋ͜QīÚQŦ(þ{E?Åú@‹5ÏĢũĀĒk“þ™ÐuBŠ buōͰŪÛ?=‹{ãæōQ•6úk…W=ė/Q“"ęQƒÝf…ēúšq‡ė-čÂĩS•BN0Ū3NÜŊ_e―Ģ€ŋú\€m^}ðN}üŊĸ>é”ōZô7Ŋ›„ˆ;•íéxéÔ;Vû­d•†I%TKÃĒ}ÚElú]ÞŪqVû%G3†MĐ Đ/ŪöS`aA Üü·3aЛųe‹ķï\ŒˆĢŠŲrMW“i]H;œ/û"˜#ΜÚę bôgĸÔb_EÜ`E™ŠÛ‹!lqæ5‡zēqōÎļ˜Ép>ÆÓüߌnC3ډ_Čĸl <ŠĪŅēŲ-z?`Ĩũve‚lVAzÔķą„\í[ˆ#x[ęZ“‚&ü$°Đ„ÐôŸtŒ2•æ·Yޞ2ĨĄ/SŧƒžÜ[Ƀ3.$QņðCbŅøUNĘĨÚqŦģąžž+=Å­Ŋûųė‘e[ēÞäsÖ&œüŦ/'·uOEIŌL%é4OÏ+QО―Æ1D4õäS•ˆ]yû+5nšąd’ðĻïÉʑÛÍācā‘˜ŨEŌ"™_/„ÕÂýĐBE<…iáė1›dģ•–DĨÞŌųxž$OÔ1ÁgđčÄRĐõ[ļ ü pčDÁJÃ=w&›ÅVKÎhHI°ïų}ðãÄÔ­Á öImÍßÜužĨãÉ64ÍôĘ`‰{/aš˜,Žþë֙ʊ‡ŠÖÓĘÍōnxûxDÍō˜ŪgėãŽ3ð]’fmĨįĀŽōjLJČ[ƒ+!ĸOĄĖæ/e#bģY#Ķ4ŊMóŋą@Ŋ‹ÞįÁ+ģÚ$ĩ…MÅ&XZÓČŋ·ĩ.ƒÏ™īkÎa:cMœ`šLėþyD·Ā›ęÓpøąTË]Ūæ8:Žý!ņĖŲÏĐz6 åŪ†óÛāócUsXŽxÂøH`Į|ĄĖrffũč-đ4Rä”@‘â*mĮĄŪsï{vJ—šÆ }…tŒōy t””ūhģZĒ•1·’đr‚2ƒĒ<ąēQy‰ XĐ܍)P4ؐ§9nq'Uíę4ŽÂӊč</`‡ˆ6“,-Qc}ߊú:î’yŧS9R%Íüƌž*â%ĩŧt%ĸ<é‰NˆúōŲ"_ÏïÁûk…œÄ†_^õßlČÅvĸ€3ÄĻ{UČm6oîĖœā<Ģ\ ãnîˆ�ąĘø A{-Ü8ðŪ‚mvÚ·z“3VcŅģ—*2lÕ° >ĩ‘Ũ~(�Ą=ßßšx°%ųJ41) ŠCžÁ!õ'ïû~S3ÏŅFúžžØ-4ĐėģîķãũvwóÎtĖ/m•B Œ§þHÛ*yÞ}Ëū―>qŲ>QŦßŲŊ*ŧ„<ģO//ö@ØŦ zĀ&vÞ/[œŠoręðŦøŨ’EÜí†}åŪ úØ ŌÎ ™Ï’›sIܐŧĨĪ PÐp%bĪÝ|3änއöķôÐRbï=ĐÍeÞð;öV9ΐã]e€Ï‹ čÛž{B°đk.cöT<ą‰”9Ü+Ļ饹Bũóë*Æ }JYŋ ֏]3Óú•;9 T„á ouõ4ĄdՐ==Ķ%‡úĀEȀąųÔ;a—ūßþ6>āŨîâ'{]lEč>”ã­ą9a|üJŅ'Į~Ø!‘•ÄGŒņ(ņq]݆3lØ wÝr˜ËūˆgO;Æ+ĒŊ™å‘Zb &ŨF/QJYmąüÓËø^7íaŠô„-fŠ]žCtQaav§DĩĶ€[.4@ķē.‡ÁŽ‚Æ·ēO͆ՉCD'°jip%įõÖRĮïð5yƒ1—*1îD3û]$ÅwýĀĐ­ôÚĄ=™8>Ē-6ʃâE&�üÔAģ ôĖ3EfÂĖJ+ðhžOVN$ŠóŅdŨ§pqj·Ž�ÁęRøÐÏCļ9cž"`sޑ{ā6;CvĀ#{+c|€R]:bÁü"ÜN Œ8GŌéâL˜m{Á‡ÅŒįRŧôËŌž Ŋĩh|ÆS ð @žĶį`"yNLĩ ßF-’Bkđņ`˜…ÄE… hIûÄe’ï{k?xÚp ÔMuœīîpøîĐŪŠ_~eė42ŋ lðs!ģsĨ–|R/mŒžiČüįapN ã5ž";+í2”ņÂóΌNBąÐ –í„›lîBAŸõ―m~Jó”Ó_q•Ķģ9|Tīßj1íLaþŪžsrCˆ'Ãģßmņįí/Ū"œž‚ŠQĪöų–ĮMÕĻp^WD"ŽÜÏ1ŽXŅ$L ~‰ŦudĖ Q~.#Mw œíĩŽĖ`Ro­ē‡Äėđ“šŨ/Rôy�윭 óļO―VSel$†īŋ.Ģ-đŒ9—e%Ü|DÄZÕÎ�ÉdĨ<'M(ą•-Ր­šŧxâÂņĒ Īļí™/ĶÄæâU#NtÃÍã !ÂŊŊJÆüp^?þ [NŲd^š ,Ņ&vmĪôLÓó*UĒnĀé"óĩ“ œ§ Ŋk/UZÖ$­ðÝÉ*7Z―Ŋ·ŧ†f€€ĸ7 kųŽ�Ā"wþé<?°=ĖÎąŋ‡3Y<ëëlāąÂOÆ ųwpŧĶŊbīu”8Uð‘ h―$Ī& Įøßnō†ÉžŨĩáÛũėí€Ĩ€ëÝ Ø:aÍ]­í Ï˜g{X_†d’:‘r^ŋŸņ’ā0 qĩXÖÁ&Œx}°e§Ō0í Ôf—(ÄÕQÚ|~ŨSo"įŦˆ9ō›|“Ŧ'áTãO^Ģ_z ŋ&ūSŽĸŽŅ&rĖJtÍNį‹!Ût318 UŅĻ:<T(Hõ~q#Õû\ēgãCŋČŽ:ŲcąÉúC XĢ"GfŪesóp†ŽBųŠ ‚ļîžW(nUþqýo­Įvïõš™M[›Á8|ãíA„ýT 2KO}™Ø―ÛÞŦJĘrĘ'ëÕĘß‚ü=žŠļwzūœ6Cp:d_k”SŒũ?&.Ō—mē/ĐėĶ5#ļČTĢŠ―ïģø‡(ú`ý!Ķïú}FÍŪæĶŌŊ5ė"6SĄ_æÆ\3[Åx}ĒðđSX°%€Ė―aíÚÜIaMÎ ķoV~ĄƒīĐýĻxlЈI4”@4ōĒšEĮa~X0iÄaî(zÐÃeðŨĀ.=ĶŽnąJĶũĸ>HņÎɌĨë–“BhEĘË€ãx>�Dü�† Č8ĶŲ5ĮDŊƒó€GæÂãĀZ— Ļ-ýE2œMŸkRVgŠVņÔŽ=•Æō㊭_œ˜ļŪB.Vs}P‚Ûū7ŧÂĸ.퉀‰ķÆΞ6Ņ8 DŸd~bހB‚–AKņĘԌģu0ųÅytZĩ#ôdKŽĘyDË žI3ÓÉęŠPŽ/{k5ėŽôRH “É?ĒAąĮ[C艓@2K‘ųŲóOŊÏ―zK eę §Ž%"†dĒĸVUˆãíÎÃCeŽžŨI]ĩņ؃ed1QŪđ`P·a–WS\5�Óõn}"ü Gŋm\Špü§ [ãï…]3UøbLŨ<Ð ĻƒÁ57SĖi">í’ßJ…{k[ T Û3íäyc{ė―boåę�I"Čė:ÆðPIėïŅĘá“c=ĩ–•nõ äÆ2ĐKÉëō3$ĮŦŊԌĶ{‹Z9 ÎVÁžĘĖąÆ”Ō\%ļßI&Š2*žĻ ‰‚hyšŦ?Њņ~Š~ G_>äŸ'Ą_ÕūŋŦS?W Ÿęč~­8ý[aϟէííOõiWęëŪúšÚŸ?PļŋUû|úū­ĒŸ?tŋWCŸŦ}?o õnÖýVĮęč›ūŪąŋo[ÏÔ/ÕØíõvĸ?NļoĐîĐŋV‚þۃ?nĻ~Ý'ý]Ũþ­Þĸ6ąū­ËïŦŠßÛÖ%õ]·ÕÖíõvm}ZFôąĸ JqPå•ęHŠė…h“ųˆ™þÆŽ‹ãNïns3ûē*Ö3ūKD$ae\N%#Ļug_óiɁ_ÃQ&ZĀČF2čúŽčA›Vjč^ėčÐÄ  āŠ2‹ãĶÍ\8 Ÿąi˜Ā s�iũōšizSŒŪK‚ĄHTf„|ûŠD\Œ‘1uˊçkK $'ų]/Ö:<QbóÂUŧÛĀúƒc|°Å~ /óZ7&Ý8qČwÚĘþOy@ßô8eĄ,[[‚ķsMŠīd>―ƒË“Į’ĮŲėĶĘlÞÉz―UE<āĻŋ[æą:ļo—ý$ AhÍĩ–Ũ.“·Gýq˜#&(āŲķI:ąĶ4Ÿôú™QüōLÔŠä,i“ĩec ĩŽm‚­Ņûn€—ŽS*í†čF,4+qģĪÅ+"°eÓ3#3í8―ģ æžĩ$yî *ŊāÉNü„‡ \Ļ Ābĸh­$^â°#Įm+nF€iJEQ?/Ũi_Cˆ?ĄœĪ§ũdük‘‰![ÝDģBil֒āA(éc“gý…5m.7’ūPÐ�_ ŸA FØ:zĀP'ØWGßŧå�’ĩĮEļԃ2-|ƒÉũ$ĐÂOO éÓ~$ō)ËŲąĮ6ž›Û‚.QÝĒØîākę6xáSÝžz€FNōP†'—Žŧ·„ĸåą’jU›b‡ĮāøVĖįįB@•sūÛYŽ "ŸÄ+þCdp|&íqwĄDe~UĖ8":†‰OŠũ㈓ėō‡rßþ˜‘Pˆl•Ļŧt~Îā\ƒg0_pāĩ‡ÓŦŽģ�I/†ŅeßÂ}ŽRL4z$“wsûMv—6éŪϋË=`ŌÓ+oJW P–>7Nßü‰VË· e’ŊĒ“ŌÄB%ę>S=Sɝ TyßFēę‹#:V4ĩTĨÎ-?T„3æ/ʏ›þåÓš<.û*þBd?ýe5KÃtÚðĢĮIð~ ÓŊ―°Q؊žcRþũýŨŧSŅōĢĨYÚ ~#~ŅÍ=bBÝ5ϟīĸ#ÅRŽękÚ'ōÁð8…čŽúú‚‰øCBŽú#þÓŠ„lL&J„…?Ï(WE!ā§i $M·å!ĪķÏúMŅ.OˆÝýŠĶŧÉÅ8;"hą›# 6`Ók(ÚīČ6Üi[Õ} õ>'•M9„ę …Ëžp‹hÏïäc˜•{‘2OŠXd۞ï5ƒbÎÂōŪëB-ŽÉéí5Ķ/…’/DЄP\JĀę@ĂæÜįĸėaóŨEŧԀ6&tĢ2ÄQō†F0ðkÝÄXühĸhĻž ­Å-CĐŦ<$ĒČ­îøQžB3šķ`eãnëæųóFKîŠhM sÅó•bcĻ?‹ŦKĪ.]ĒåĻÐĄāfŪ ÆĨûCãŠÂÐ`Ĩ–\ú­~ âÎĖ‚F+u96ëA īŨã ~4zĘLqšJ~Ŋy^šžüšÁĖí%*m1ĖĢN|…:ĀØ• \Ÿģ•Mņrr˜•ļ,â)kŧĒĘ)qwšN—kĨÍóž@ūÚãU)ŅđŨŠ.ĮL:z†bžS‘*ëĶ.Ī>.hMI J ‘ûKę]mA†ÆķÞ[ũĶÁ§éw­Ð Ūö•k>‰â āVÂēFėóŽî.žuTēÅĸ=ïIÂÂ]Ý]ʄÃástš&7îV n&w…@äí ģ’‡úēÃŠØ É;ōÐ E„M~Å eşvĢ"#[mõ‘>$!ĸ(g…q‘HŠ,†ĝŊĶÉ&ÝßF˜Ē„Þõ<ûtüø›vK"ķŠUI”Ū`?„IãŲ)ĘŲUoëĖïišØ Ņĩļ]E%Iĩ ^‡KlĩÓÓy3fŽ—u3î4Ÿ‰bĪĶ *?ÝøTĶKzI7aãŊ·ũįet…|ÕÜņ}C`ĄÉß$ÜÝlWR”y û‘Ï•―:‚0õÛü-a–Č ē bÁĻŽáVŲ2Jf3báaË;~Õ}ĪmȞãÓÆü―œĩŋ_^Qc4Ýk]õ†A=ŨhãĖķęœĖėšÅĪ‘yŸ9]LNô5ĀäĸS„Š˜Íʐ\á%H>āĀUčÐŋÔyüEĀýÍģđãúŸÖčg’8Ĩ|5OŨų1úŽúÉÃïŋŌ&âž]R:N‚§HúØ\û<‚úŪDíą˜ËŧW87,ėņF+a*ÁC/4œšžĢsú†âķãž�ÅoŊP ŠKP€kj€pËþõŒ™Ä œ_šę™u@”å.§īŽ=Ū. óúHĻÂķĶžŒOsĖŠrAˆģ%s?gʏ”Bģ‹ķ|w|}™T=ŨĸuW4†^šānl%™/€Ģ’úĐB|Är@�‹šgc-[ÁâĸoE§ˆŌR3 …ļYIĻ0}ëÛkßëŒS’CÓj_h`_˜‹(ÐÁ õ(Ã5ôˆTßíúœfÆðxķŽP,‘Ax xvš~ÐHŽ_ƒ••Ģ]Ŋ‰ķĪ]Ļ}!šÍWï7âÍÜ0xÉTï ÞRþ |ŅĪðF˜ĸ[ĪŲŸįõÃíDXĩÖæõWX–ŒĶõ G*jī•UąRá,V™i âŒMkF'š–ģÜąÍÖ=ͅaf‚ĩSĮļ€āĘĨáÜ“1Uô`)~ę|IkkČ@Ģd—!~T:JŞŲcvóĄš1ķÆ%øÕĪ'Ë"ŅĄŧWŦį6ņ0ĪÜ =å$˜ u9é•&“WŲÜĶUPDmūŠ Ō­šÅ‹ÛŠÖ!{tņÐYķ rę) Ēų ÅOÜņūŨ>éÅÏW‚HÚyčeEųu%q 2‘’Nßņâ·āĸđŋ|Ë:ė ’œ,2ŠKQ„ ū‰žrĨōŒwe} …íwĒĻŽ6pB€k ôlŒþy {y!―°žĄþ^ea°Q“$ģHPxßy˜žfosĢԝĮ/‹C;‘=|PŪp…P�ÞþĢ—“ŽËõœÍĖ{āp7.ÂÔï›ŋôа=/ ũúņ7V/u\xmhõ˜ü>W@3ĒNÅŨïYĢ<ÚîYõ#SŅvī›%ÄúF<― õÁ`,Ÿ{,_F·âa—ũ*ÎŊ{ââ8õGŽ>+ĩßýš,Í ÂKw ?7"ōF‚īo §‘Oģ6å iE[ŋ@‰˜amš―Ė�ðÃ0™å>pŋ}Ŧ<Ã=Øjoýī?^‰Á3øxÖ™p$<-:Z~QÆïŨ—.Ąė3)wHҐķĨåŽįdK}v5i@/=É >BōūZiUįĐ·ôÓYÖĐÚę7qzITĪEvęŦ햆Qs•Ï"Ö–oÓėo>RП™đŨAŪŧËūúĩŒUWĪ0Rû)ēJŠĮ*šcšˆÓĶuXz3Ýšį.WĨOŲ2rn--þ%MrĪņōžÄ>õCēŠÎą“rP";æúÜÛJ;eÐčãíˆõĻ<;+ūRåb†Š‚` ßIĻËqoR‡ŲH'=8ų]Nž­OœtžLrVQ‘rËï#Øu a†JSpmu’ķ°ēĻäîÉ?Yš‚'ėvAM𠇊`XcÝyr0ŌáþeQTįÐkĒ_jБÝđlēũbú~—·äû›#q!z5 øî Œš…zœíŸō·ėo‹Ē]O”+ĩ͊æp Hß}čތõÏ|ÚuqáXáĸ&V§<$V؞ģ, ːŽ#đP`Ø@Ļëø`ØÞĒĘ XĸK {oīēŠąœqá8°Ņ„ĄXú'Ņüö"p`ôáF7Âð2�]ƒ QQāZļÆzÂý†„8cLą!haĨ}Z―|0gAĄ‡ įĩÜjãæØÐ€Ž­'íŠÎ,.-m~ã—mhÓL)íC…ĨW-ēâJĩ!‘üņÓĀļIýÜkuŦŒę·hkz˜G_dĐL+ŧŸŪgh6ˆ§YÂŽÖhŠT`ąV ƒ1ĘĒ }nƇf æL'ŸóbŸ fū<`I^U"áŌ<šlU›`Ž Ī!ÛČĮ;åYĻ!8ÆB7ü%ũð2_īˆÝ6ųɉ-ų‹Ĩî}eÏŌŅë)1‰‹ Ïg<öƒÃėq(ãÔkŌCRũ"âr|įž”Bā&>bjD—žĢĻãĖPR…==ĖŽCk^äÞ}qķ_Þ@IÝôS&MlKqjĮ”Ž^92o& pëŠAŽŧ(ēÉÜ�Jkņ—čžĩ nBĐÆˆė“Œ°5Eĩ8đēâiĸÎ'žU(KųĸŨ―RÞëīŽō.ŒŽG‚&/O*›‡UN[ÅQÐÎ8P݋TX·íWéŧæƒŪÉŲ+Ũ ãOm‹FË(tv^„dÃÔýÖ+•šąî )_&Ôū Ÿ^˜8p 2óÚöŪ�’ŋ/ ˆ2øŪÃāPĪĒ„}€åh> lOũË_ņÆ`+ tZ0̊ÐĶ’L~‹@oßĸ<|ûĻ~}xÞĸaėYI^‚ī°AÖ Ū†ĸcÁN_~™áŦúÞÜ;a°Øl6ü^ōĨ-šOēŌŪõhîécŲi%ļą3$ë͚RkŌ22§ ÐýĢøÆ·Ā0 ũl"?CéÚpü_ 5―Žō—Hˆôž r5°Æ§mí:ÚÝ%ĀaŽ:}7ÜX0ZÅoøë―ø‚cƒkhzé &z/a3;EŽ/a‚€đüņ_yqÏȄÚĨß)8>iøĨD“ÕΜyvœ'õ&í!čvÆURmŨuo+ēōđTƒNÛ345܆Š"\>‹ÄāUĮa0Œ‡+Ņš1zlt_"U7ä"þÁ‡čĒqĄåēæPm˜ úlļŲxMUþĄŠ ĢČyķ ķ:<ۉYøŸ;ŊĮģ3ÓánóÞø7<ö XˆēntžSl‹9Ö ĩī–Η[ä§^ņfjĨt}ÏL+ūŌ–TNÓĒ―ē;ižHDÛyi_ŦÔīpŒÉ2ĸbė;ōúd”:_ž˜.b"ŠĨĸ@>ËRˆFe ° 9!l•Œ7üŲ^ô“˜ąĒžØ™Í{á+`YĻÍûŧŋœ…sšXŦĢmM§Ųx‹ĸnĄ% ŽāDø)Ē%ętϏãtĪžyõƆ rF!ƒŸ�•éÆõĸgŧĶ.ÞðüsCEĩq-M@ϊ§‘iq“ûGģ‰áüÐŲq$;G_·p% "Ē]_›ä ‘"\Ĩ‹ŽņÅ �Ÿ$ēū=_šač€1 ‚ũPé€+E†}Ņąhp7~};@ŲÆþJiA}Ŋ‘%•åDe`ā”ʇßū–ņìŽôPĶ9XÄ(BĻ_øŅž+žŠ–^>“<æ<•™æŽáFl1%_ÂĻ{øcątÛTŌČäÝŽø˜”ņ&!ŋĶ@^ÏÁ==ĀŽį•ųŠoŧ,NWô9}ļnĨ[­'XeRđžŊðÁŠöŸWZ˜V•ÝÜ}ã­IpgĘ�Ætf đž5g`·œ[+!Jˆ 7ž @ČÅ^ ˜6öī)öHBō^•":<ŦĪã…ļžŠ8 rP§@ÂXc$"Óûýðî&ņ#o€ë†P_2 ōðqW^ý”b†B'ĸ$ÏC-c ’ÐmTčÕØƒhl3 MSfxoɕ:Čėųú °h9ŽE9Ī%Ų.-ú܍WoÕáč%ē0‘Ņ3\6ņ°cf;ę$Ēæý UYlįæT薓DÐ}yЎåņÏ%˜oâð“gh‹M]z+dØ@ĪÂˁÖÉGÅÝd[åéwēWĻąôä Ŧ�ũÆé1áČ܄5˜ S)ŽépƒÜŠ‘Îô„ĐyVB'ŲĮ‘ˆķ "ã°x@ŽŽ'ŋf2uՕæû·*å4Õē†é–’SÖąÛãoķ‡y8Î0:ke“ą æĩīv2Q§Î•†Ŋ%Ú=ĸc&B—p#Î*āböÖš‹f4‰Åußē]Ē\Æ8Õ=ÔAE· UŊý*åS=pG*·HE"OYŋįš ŸEĀŊþyúvíę‹.ōÏý?QĩUðt>Ųä0ǃŦ7ĩČŨÏĨŲj~OKūåō ÂГË䑿Ō+]cŒ/!ĩĻĀ;ÃÍëU(`äqG"̘5*œšÆrĪWý/:…Öŋ1CVV;iēÐü]™ZD§ŽJvĘŊ ·î–9Q‚ŽWO!įW`b†ūř8Ņk ŽŽ§7îĘVøúiĐŅÃá*/|†BM##E8VĩĻÚđ�YŌ—ĘTĻC݌b`Ly\xþ‰y\ÕķGnUEßîĮa,“x§“kōyģŋ*ŸÖÐ%MĻŊðë8vB M)c NŨÜ%<&jĀBiŌ'* lô1Æë1ÞgžĨÆHņ-ĸU`‘ĨžœEé0ÝJgäŒ(šĩB8ƒFyŽ‚ü(f;ðDĻrũTóžÝFÕ�VðÜôýØđ [ ^‡eūÜšĻH<oe+čīr5ļ—Å… ŸąŽļĢ\É@J|ø•ÖAA?‘·5ŠZFĶē]Éž”TüÓÄPY"ŽČĨWjũý‘6*xË"0åĒ4ōZæ/‘%́UéfŒOŊHĄNđĮžĢđÚÖAâ<k!@ô=~Į4Ĩ­sÎ Ā^ū77]c�-y‰DįVjņĻD5~ká0—ļv ãŌ ĪRC“ 6hýRoŪÝX2ėkĒ rý5:3ęĘ4čS&(L…Å'kDßČŽÕzåš$Ahcį@4bý/īrõ[“Ŧģ/ę(Ü|§j:Ŋģ›ß`šš ĀR!„˜ØŽ‹WŧõYķXWúUŲMĮ‘įŠū ;Ÿ˜ō―~k›Øm„ŌĶÂ~ $z:1īÜáå”Þ§ĩ™âŦÍļÃ{âæNgĩ[Ę2ÞÞ§–ĮüQ%X ÝĄÁßEČmæ“$:žđU^FēRåųó.Ôý+å–å7!šv(ĐJųĒįž*ĶŒÆ h;ÆīąĐu|.ÁĨïÄtčģĻkÁŧ:n‰‰Čg.Þ?ĸt]$ øI\6DŅ)Ā„å„íÞōÛ ‰Ļß.ma8ÕÞļĐ04>Víō)ëĨÓψB’—–ĩÚ°Ró―HJŒžč[k*BwÉ9’ģšDŧ―ė?›ÆŠļūóŸD/ØŨrļo’á éĘú—ÜF!4M{Ž#Fą―ÍûUa%Ž7ŽSŋwĸ'ģōF,i2úŽÞ8\{ïPPyÛåvĘ0�ē–>ÖÅ"ÐVƒ]žųfЋQ–ĶtÔöÃAõŸ•ÆdzĨ(šį[Ž·ąø8]°r čqÞŧŋ6ݘwAk0UŠËļ+ÍgŌ™9–eë)\āŧy7ĶT‘‡/vāē”LewFđåŌ‰6­ÛIŽYîCu9ČŧïÄĩ�sþP* öËßČe‡"HÖĶP.bãvė,óÃašÓ5Ý'ûd{§bĘ?æDųĮEhā4Œ†"Į@*!p;Ā:3ōaŋŽ…c<ččËŲ7–wb æ0ũáEæ…Fp\TíĻdW5•nEŅ–įAåIgÂtL°IÎPËvó:27FÎ Į�]` Œ:ĸ.Ą/ĘƒQf_ūQē„= ĨŋîĨ·áčÔHn,…�Žī…/ Téôw=ė'%WÎW{{›d€Í—ĮÞD6ãUþöfžÎ•m ĄŌ*î$ítĸ‘æ‹âk2ņЎÏJóņ f‚øúÝ“ĪĶøtĸ_UeZ4ågMĢēČ"HøōÞÉ]z–Ī…ō[M=|ݓïRlŽíØ)ð$‡HýČ―øP~zëÅæøčwČ6ĮÉ,ŦÆïķįˆų ņš^QĪ,jũN8Ÿü9Rđį"ĮĐqBŌÉ3Đ@ĐĻođ•W+]ýZhËÚ˘nÆ[3šÅ ø9TfqD(ŊŨKûZEíĶÎqq>Ēį�,ÂļcW áøŽŧœ^@|kæþó!ߊ/O{4aN*Õį%/›ZhhĨ·ÄÏÂēý.a™UŪ:­tN†ŠŽúcË?+jų:;Ņô·ķôïę7·`=ihœïŊøãšÞĒʈþV Gų69ŦíïĨßŨĐŧO,ĮÁę<B".=ƒnrÅč%|„,ĄÞksĶŽ5e0‡Ёė3ē“î `Í~‘ģ㟜 bHÅč–z1’K•Iy6ē{C·ƒT;ĢýTIzįĄŠïcÝĪ3ĖI7ÞĐĐ9žĐU2eÝ Šgú^ČD!SĢ2ztĄ*nŠēá_^CĪ`#tƒčČZĸ~‚2ē"uač/AïĨŠĐ° ŽÂÐW߅ïmŧŠnž7tʰ[ĸ[āE! óΘū8z)ÛË<û”°ž 6ûŽeïdCėhþ/^iMV}ØmĖΘø)óŽ=‡įEþŠæÕ‡ËšŠŋy@i˜• ø|Ĩ|sÅ<ûöā5ŪÖęJ-Ā›ĩˆã3J—|ūPfšKėCó•ķb7Ė‚ã~Eŧt{âœĮVbAœĖþZ9byW8LfƒČRð.°―{Ž’éķ ™·ŅâSf'AW|tĒ˜–ūPĢkô˜§V9ūÜo%qĢŨBhî–ōICS)STō†Ģ­0ŧ–ĐBƒTnåĩU„Á›YžÄ•ô?ÏĄäÚī›x`â8 tEkäŦˆĢA2ķ=ĪØĸ w JÉ'"ZhųÁ#—ÆHG–zp nðšiDÐŌ[ŲnČ*ŠÏ7ÁH*—�ĩũ@kŅōBŨ­ŸüiúTĀ’ÜhDB9MÏ­ĸ(‰ąK\ï Ÿ(ū`3 YčðĶ|MėWãU|&‘9$OĨĖÃ0ž•ž„ßũ[^|ĒļÚ% :ÛĶ‹ßŋ2ûæ‰Äėū„ 9ĮŧēĘ,ĸ9IVdĮáÍņ’ Dļl—kUĸwu ĶŠ^―‰üH�1ŠBþgŅ �:yŸ„—f―2́ĸ€ĩ›ĩ.iY}PdqÍIgóà į˜i{ŸŨā8§îͧĒ7Ęø Ûąģ{äņŧīôną;ëøøæ.* ä+ÉmCÜEW)ßŲBŨo]ô >$qģŲk’ÅÓ?ýôÂæ§‚MFųár|ruĖ/ÞCl6įvë7$ïōŧ0ģÛÉÐ|ÛyĒ??Ĩ"üÂĐ.Ņ‘–ŊŽm=R“‘CAąũŨóJöF•ĒCĩH æÕĸ %pī-ė„ĻÏŋv&WKôĶ”€†ŠúÁ ]" ÔmQm=zÍ5ĩr‹š2āę@īUTĨ™íæ|ΎFâ―ũt+ÎØ~jô}Œézƒę‘dŌ‹ũ)é!:šŸë æâ3)ÖÓfjĘWMč‡ýˆh1öPįĮNô„õ·ņÛBĘ`e Æ~ Ý�oœZoîÛō‚ĶE:+Ō—9Ë>Þ]䁏ð•ĖĻvbķÎ―n­Ĩšö!ÉšVĢþĘsĀ…ĻE@z$~ĸYó”bØų Ōp‘š2Ŧ‰ĸ".‘ýėĒt+Þ2XŪ}ĢcŠĻ§”ÉÜįL(}9ö2Hg åü`žīS‚ Į_ũ&ÓKŊÛÄŌŽäkN–Ū<ŠÚŽŨē‰#6ÔS]tØüdiüŧ[•’ļ-dĀð@@Ü~ ·lĘÔ ‘ß<žBųĻj=ēŦ`"äĨe“ģ8ŧˆĻļh'ûAą æė1U‘ģýĩe…•–―ŽššéŲA݋æyÚr>’!Ú/ĶSgCĶūŨž‹T͊pü‹GX˜6‹cB~ëoL’-釆ĘÎsßîFõ0Šĸyæ5tĶįSĮlbް Ą<MÆn!žįŌ§rž?gCÜ{âæÔxŸK[˜?Ô†:aMžYļ3\UļˆBDĄ91kÛRŅÃM)(UŽëyû1 đY7jdģŽíĄŌŲæhiü‚€UôÐĶČZÍūpÍy―äß ›>›ôVĨm é-#âWŧÉŊsõf(8JWI;—$y?æ·{{ð‚W6zZÓ3gxąēŌÖ:’ßŧóW ģ›Ú‚­ųXFAá?š=Ī ĖþņŒÖŽZ†ā§žī]’ÆĖïhÆyaÆ AP€ēFû'ļ7ÕI€ī„PĶýĶ­?œãg! ˜3]Ģ(0).˜0ķ+øvý7ų oG§úČā1{Û[_4Wē՗6‘„>MŽðåˆ}}<&ĩAĨîmÄ~cR0*ÛDŅFÛũ’eþÍv84a[ō!Ĩã|íPxÚō—5þgåóŠāÖfĸWÝĮ+ŧ]ŋiĶ^ƒÝϔ4Ë)—ŸË—ųۗÓB(R)Öü+)!Ô§Áýd|UÖĢ7ÕĘž–<Á\učŸkáXJ2 Ë�ŨË †2þ†—ÛŌļWķūræ-Æ${đb$&yʄôՏå͟m &!įmaz$dĻ�����ū˜QšŲؓăō;õ@ĩE/Ä?Fœ>íôU|:‘M Ē*Đ>7ÜÏgjÜŌĢ)rĸXtþŌĸs8-žvŽĢˆĘÞtŋÓz™đ.ãģ:…·Mw‘z„<Â6`NŠ�NģÄ{ð8fë%ĢōVÓĶxüŅĶ#xïH�„„„' y—aĘJ3ą”áĢRSĸjæė)� ŨđŲdē $���������"ÆĒĖ��a!/ˆ%@‹ĪtYt<ķĄ-ēŨ cÍī@��Âðä6�ÞFĖ€ €ˆ$Ü( 7îoÁ‘C3Ô,jóM <›‚}âœzό‚Iō—ĸ~ĨĄ5ø-ÜcĐüá?mĄnZþĘ>ÉT°ũ!–ĶaĢÐXærŊÅJĸEXÚŦp4Ȑ°„ķ%?ó,.JSĮlÆģGĀeē�)Ō+…M.ƒA. ÓmÍc4ŊYž4š/ũˆ™ėQt„­ŸĖÏ~ɊR뜊#‘ûâM/@…ÕŅcģ’*Ÿ›ýî’D–WĻj1Ó"cķ=Ûé—k þ īt‘"žz=ĀiUÄ)…š€ÄÜhA#Į=Ų?Ē·+ÄBqÞņ˜ĨŅĨ݊ÅðâuŒ ģäĸ.ËOn"RŊevĶŠ’•E’,ïˆĩŠũN0‚<ę8ĸ=eŋ„Ï„šXÜR=û/čz|Ēžr―ų,øB<G#ÚëŒiéGŅWnňóó&C�m/@ÔĶdÉŧŸÕn·q.Ðï*Tƒų{{a$Ŋį?bŲČōū7`īĻUuY1€���%!‚Ĩ›Ŧ+Ō!?p˜…ÖrŲķ•D L8Ócš1ĸWî_’ÓȕtžþímņcĸÜØ"'ąwî–Ģā YĢ}ĩgaģõ o6ĩtÁōOSJ/hĮE+)–güúzBąįUðøLŪK؍uMîÏA‡ =ĐJĻ&ũū!ģDŅšžæ{îoŦ„pW―’dąĪeīÁö„LÛˈT…bĩī\ã™ŧ0ūb‡ŋ4‡9—ĘĘDÆ6�m^ÄĄÚō‹™ú ëôО3ŋŠļp[šCu‘'k<Īhŋ—Ũą9ČŠ0 ūüfŋĶŨI#ÃX.͙ôKCę―8XA7ųëáx•žzhUÜ'}ŠšËq Žļ‚Ž ČmeĩKKĨ’'ÂY Ã' FŽ™ĢŒ�ÐŲJŨÜĸS›-tīĻĨ­rR%―#\$ÚH2eŸČgŨžĄžũ ՀdÐj bgšŨĨŠPĄR˜ĨīĄ―óš‘”ÓZœ N†žmÊ(øŨ6Ą ūÁTĖ€þ ģfÕ.Ũ܈ïâÃ+ĖĻ. ·p ŠHcŪrŪ%E ÄžđQŦēĐ+SÉ äþN_ΧŽ{ûš‰TĢMu&ų;Ј§^›ŽĐOf`Âė3xŽŅl_ÜJĩŪĀVē%@˜< €-„7Q#> ūF#oŌ”kĪÖrõøÍĮŠŧë9‡ ?ęÍ |€-€Đ琚éŦ}õÐyģK5į€8Ž{ćŌ]wDDÄxäPR9Ïę/Æ[Ęâ6� û’Dvĸ,3.đĄđÁß%‚ˆ:7ūåÆGkqïhßļbËô ĩ?Šxl§ĀCšC}šeđpUĶ~dYƒëŒ˜ÐZã!Øīuū8_Fūé,ï3Ď°Ųšái=_čŠzkœJÓþŅSóS…[·/Xb%ŠāAíp+%BQđÅ3?ĸzQ6ęéïíÂDn†@\=ĩ‘óķ:åM’é*ŦÕA<ފ 5ÔÐGŽ4ÃĢ Ŋ"”0GÐĪý‹ëŊĒ‹ŨĢ›Ĩ–át>Åũ~+Á-!ēŊ°ģ28RõÐļXkŽÂ ”·ÞŅ ËTUQÁĮYĩî3é0ŪR›Ð`‚ŽŨąķĪe Ė9ŽŒÃJUz!zŦ q'éρ—ē*ïdęAL"ÛzĨ·TR 1Mãâ:X^sĸI­īaų1š’Ïĸ}/4 ­lߟ ŽĸüĄ˜�Ēi Ž1đ|å*ƒQe=cŽMWņˆĪ,V?Qd9ũ|W‹éóšüÎ�L}ģïŖö" ���ū‰pVóbó5§— Ÿm(,”"CLóã^{\zĐþōÝc~―āÄkÅ\øƒy}óÚÛmĢ[Ï ÖៃIq= ÚóôĀQ™8BŽŊĸ~ö„ŲŊš|7îjÚ1,Ķ_cBPĩuᰌfĄŽšĸa)7ŠņĪŊ ž‚‰nÁëîč#/ŋT „įÝĨŠī€Ōrķ5ÄÜ1"ŪHDAiN,�)ýŠâؖą˜ú-1,“|ĒÂ*å˜á:Ę*:#VK\M™ˆ ĩ$PüŸ†L―P���‰K \™å•4 šu=ðJĸAģl7ˆá[ðÄåĪ0Â&+åŸÜyœđė"ĩ"\ B‰ŌS^ĸ~™Ī‰@Y*;ۚô”lóÉÆó…‰ģ�['ų&vë0Ŋ…f( ĶlŪąbcŸkہdƑæâB[ŸÎĻĀýüūbÁĘ‚Þ°Žœ’Ž�ŠÁ��; @”Ķr—3$ÄþAHžžúG^ö'ØÖ?å$dŦŸ@‚Ģiš;œ3/mvcÔÂ$#ŧü/“͆2 9ĨA”bJ.XĖx0âa75 zđ<ä”f!œ{”Šz?bÁįgĸðŠÏÄo݊5]ĸvX‚YÝTŨôų˜!€Féˆ?ĸ"‚ķ6r— Sz2T —=ÞŒžGˆ‡ŊÕĐÞï •‚M,â XP�������������� ,Ę­+ÓĢ­°ų­P‚8Ýōņoūa„“YÆw‡zėø$@Áތ|C!DŪ-t°éBAQŋãZįZØõÓßĸzæĪb°ėHâ~0[„ ƒÏƒ•ÅÕ§ã^.wcDœ…āøhlĢéûÍģÞQĘ*š))?GŲ4@0ÝKųuÆ>0ä�‚ĘXąĘ )NúōĨsá-Š{<l-ĮÁŒÚųčHc:1d=íėGkōĩ ˜pęö(>f™+ųâũwŨƒaé8`jĻiųÁ—q Xvû _#ķ96̊5h$Øjŧ3ōĖčŌōÓÁīøÖ)ā<AAĪ*Ļý<Ęá3;> aĸ*āö@IŽ#ļ §ĖŊJķx›å+ĖįVÝîÖ[Qšņdx‰+°Å2v<WþäL]č J{UUīI”ēWöëŠ,―X$UЧŠÜŒ†zĀ g­qzŧŽ/ŲOôGb“ŊÖā’Úīé^ BV›ÜXęå3s` ø<)ÁL=ŪÅdŦõ*>Ė* :ĖkÎUŞD…—Ôfųy"ƒÞÐĒ(ã‘ø(õčat·EņrģX•,öŠëĢûb^Đ)Pïn7ÒyJzÎskôN€y―”EÅ}$HúyÉÚÜzEe˜ŠyïZhúÝÚčTwQÕõ.&8ūĐx@―) aYÐ՝›ˆaqIžitĶėaĖŦYܜÝäå?Dj'dJDĻčĪÂMáŠðf―&\óHĶÔ7ëÚÎ>!f=åté yŌ�›mW)ėåÕŪÁ“mU >ԙ˜&•ĐšĮ›ôaK Ôä7}~@HKMjD :Čv„Ëð߃Žc Sį#b°œ+ņÓÓ­ŸĶá r”­æĸTëģü†ž/ãn[üĖØĶ2Ü8bHIÚT)ψ1O0Ŋ þU)wĐ *‘ļ‡JˆĐļâ’ŧúLÚgWƒŋ›”,ô/&°\;þHĒŲĸOË―Ðęō_›Ņzp@Žž ŅnJU ˆëRđØŊđXÍQú§áHaB‚§Îyä%gĖ“qJņ#ãžžlÁ&݆ŲK_Л�U?ļ!?ū=pĸVÁ# m€€ýE?°ÞlüwiË Á>…Ū°ÝyŸ›‡Ū& 6/ĶõH› °yLlš‘)Ĩü„~ŒOTX,–M–čPM#IŨöÓkßÂ7yewöÞïÓt–ŧ\“™KR"rņĸ-Y5� ―O~D@vãa0 •8k@”}J(§žýšĻ9GoÂ8Ūį#xG0ï@HūžEAóa:[&Ģ~ ‚Ą ĩ���gûvÚļ–EOđãFĻĸIcúģđĮjÓ2�Uĩ&†áī_äŅø`ÔU"ý@Ôōē–tĢ"ü‡1Qz Є}VÛ°8š=>&Ąz•2ÝĮxŨë33ÍOéOKęŧ7%Np,rúܖ—ĸ7öâ,/f<‹ĸ\tÃĸ]—āÏ<õËŅVdtÞV>l―l·ÅŸėŨËþKq‘âúŪųkM‘Gd0DņåąˇÛAkÏuŦĄœ7v[tól‹/uC* Xwˆ2vRs&ŪFūÉ)˜ŨR@ņš_ųZĪXG^ˆBԉë ęĻKYô6Cl,°Ï‡0dāeecŽĀKӘlˆ} A ˇ꧆°V‹HÐ+\D䯅ņ=UēĄ|Õē‰ĮðėÃēŌŌ)#Ø^ûÛwƒ& L‚ŠÎŪ€Đ+ûB>:—œĨ1ŌdˇĪr$XgÖī šīû­ Ÿ—…ŨŊÞO^Ïoe–Ļ’NƒzŊ§NýöÝŋrŠ\ß0 Æũ{tG'ÚÅ YŨŪzGõMnũ+5 ŪÓn1�PõsUï2>ā‚KEöN„sžįF õøÏ›döšĸDėF)@Åėø§ iČ{ü™ņ:DoU‘­ąI0c/KrÆsFfUlY ú(ĒĪjÏöïķiÔ4ũÍ9Äʏ?·Šãđ€nŅ{pcō ’ˆRĀĻ�>=ĸؚÃŲ Š&S NÏ1žg™ĪËÛ5…ĩςÛs"r#$žÓ�345.ĒßļXÍýžž=ÜP­iŠaÆČĩTS™đ7ÎĪÚ�éLMF2WņŒ:>MAd•i0 ĐÛęÜAģ_ī[ļÔŪļˆMĪ4ž[üaî{|%ūĀЍ™Â†ČŪVuũÛúÍæ™Õƒ-ą°ā4 BŦö‹{ӋéAÂ^sƒĄĒYŪgË[ýCVe+ĸd—ø2„ËüÜÄĸ~éęJKy]§x'20ĸ‚F8h’õâũXß-|nāÝa›ô ӆޘDĮ‡ĸĸþî<Jí€æĀRjũ}ûÆiôē€ę@t·™€‚ĸH|ņᰀķ˜Ýž°6ëÉ1­Ģß đ%6h9Ą ũ݌ŧ9ĩî5únŲą žļQ€ŊzeĘdîûķÍĨšu2|ĸ emĪ čŧBËTī-M/ÕÍIcvþpQ™sAÐOVF-øčCŧ`­…ZÚK~ëķ­[9óŲ9kïWōj1sJņfrŧq Ņ/dC"Ņ8įĖrøÜg›Ė!Mõšqč:23ß|--kQYr‡ęlŸ’ ÂGÎ(øl…(Iõę2]―]5.bŨ@Ï@ðFo#•ws žþŊ0ĐPi5ÍD&™Ú:ïČ!‹í—ŠÕđčd9$Ë_$Ð Ŋ;ߐ~V\ú ģRœƒ8ķb>(ïø ?û˜cúPx%Ï9f˜Ęęóķî ·åôā|˜Ājý0YzœŒI/ŋÆQÛôþhjŌî2’’ļO]―žësݰĪ?I"Į†nþ‡Ęģt†˜ÁŦŽ77ï,`”v,§€Â4–žƒí6ƒt—U+ý‚ÉH?j–z†7.˜"―đX ŌJŦũŠAšwmQ3PN˜\äķ.óP͞W>Q•Žų—6ĮŸŲžlpĸpEq9’ZŠđ“ėžŅ8ŸÔéú#“Ŋ·ÂüÖLuR úč‘+óI ēvĢÁüĖ}ÝσGRnųŋHXqmŅ}’'ú™Ģkĸĸĸ|đݗĸu9‘.ļ+Äß= ’Ũ‘*UTé˜|uúôf˜r€Íô[ķ•Ļ_)ČĪOSŌ‡B2úeŠ–ëË <eûüÚđΈ7j~ĸ‚ž“ußžãļûŨ Sü˜ ʄ{é1ö­ röæ;ģžÅđķŠs%ķ—qn %éljė79ÓôyÆāžjîŋë FŠÚāäĮ2Á ųLNģÜo>†ÆhÞËpąVá,Ûq\ƒNfÔP"ęû”æ ûįJxqB`"# 9ē™Ā4š `•―Î.RÔ+{œ>sg9z•_j\kïÄØg˜n4åÛSl™&Õģ73j/ÕÖ�›‚œ>eÆÆtáÁƒučĘû°v€–—qęŨˆ]ĖS dŸđë‡ėĖ&pņ;ņ2Ty˜Î˜„ 7ķšuD›uvČq“1ļ6M wÆVúģ3ŽI_’—>ĶÅwh]đĶÜøÄ·ŠTđĮîÝ4 ŠĶOrÓ,Ũ<ÄeWq·ŧ(HöĮû{ž3iÁœs�HÆ5#ßÞ`hŪ,UŠŠīķYũznÃÖ§ßSü&ėKV–…ÂBÔáÉÖRĒ–ĻĄ)œM á0™B7Áĸ7â‹WqÉ~ϕ>$ÍQļIØŪ„ ˆqtË:ïÅ1OM:�r4c˜_FėJûŸÐ6]u/‹oýŋāå0―žNėZåVĮĘįeâ-þägŋĪC ĸqUM/ü2ūhFí—~Ŋ―ŦũzNs˜x&R6yj’}~R„Ģeƒ-c&ņZÞû˜Jþ%ĀsÎ;oĘéSŠãýákÜļI,*}ķWð°Xîë.zó ųëøQ—<û”Õ›ũˆˆĶãH_ĀÆ?oŲÆ Éga“E1ŧ@Zŋiƒåž†1ö fgÚČĄŊĒ”~ô=ķ%4_ĸ Ü_‡Ý“Í )ĘcÏEd˜ Ī;喇0'ũz](@OĸĸwÍ–ļ•ĨâgíÍ(ƒ„-qžeP6ÚōŽĢŲ4―ŋ%5ØŌŠt8`1KÓ AðÃ_æžð•øFŽë‘á3Å˅Ё)âKÍ:IÉīAT„LýX˜0,ÄčĢ^Ūū ĩîĖĨÆĪh”Y‡Y@YĪÂõŪã‚Ólf’;á™mhxZïÃ^ē~ĄĒĄ’bÏ)VágĢG،ãUšŊÃkˆöÎŋ}~ßfĻäþPîéāYūDl―‰–>‚ŌЋfË[Į ~Ū,HėÝ͌āxiøšœÅÐYžĩ­æ­pĢĐðXįÕëëĨÆsƒÆÃfüSųÕĶž”X†Å0Īøž{<ewņˆōHÎqúCýøÃc=G†ĶZ:BG )§,YÔdU<Åcū7WÏžúŦ b!ZIXV‰<ÓÅįÄðˆūGė БĻĄ Oā]ĢãĮŋ €Ÿžþų#ĪĨ"5,ë&i·ū|jKģé3Š–­Ų…a{ß)æY62OBė†čæÞAäĢåé3ČĢÝ}lõgĨ5.*n—ąÕfčŽðÏQūÜy[jÚ4ü·„…ã?ˆūb)Y“īfŨ ’xĖ,î!Z01vš*ÕWā­zŠÓyĐYwT ŋÖ"·ˆ0+éPsW~†+NQ–°<XVdĢþōęþˆã› ÔډŋðģL™ŸŨ.-Ė%ĶÅú}ĻïßyđJįJ†ĒŠĄx™ÁxŪę݃P =1ą°ā„x̘'‡>įXkUKämþ‰tģ*& d84ļon>ï&5đzȝŋ"á—ô―ķ čC!õ>M>G[!�^į…A°ÄąåԀ~aïn@БP?j:–†T@øčüč PĸU j 9rS>/1aözA›Ý™ĢžĻōŋÝøú-*IŦ-ķN†ķ�7æ—Šä8œXĒĢ8yAĢH|. \AáZi$rþ_ÉōGÍDŽm˜9ė9ŌĻT’ZœRŠ―Aܒ?ĸ=Ũí}ĩÃ`Å !0‹ý\zpBUų„1”'”œïūĻü6^ëi ‚čķJCčKá<lÖŽÎĶųøüóžl‰ét_jk>ÔÛ ÃņŽWÜ ­;–Þ}W,AV‡yHŌMô5KyϘõ"h…dtÁĒ•y;„?óX—ÕōŊAâĸdJÖ>A·Ð'ôyz ĸĻ q`‘iOdnlĨŠÜĘ^ŋšû[fnČ� ĸL3%ĩũx‘ Y“<Ą…aņâogFˆ―îO įȅĒePj­Íëõ“Ļ.åÄū=Ð(sŦŨÁĪqOķ?Ŋ9_LÚüïΗÝp~ŦĄÏFS|<įß4ZŨŨ-Þ‡H͎?RƒFëk0ëäĖ îŠL€����Æí”ЈËh€ō“}„žę}К“Ä–ž>$r ŠOÐĢî0ڃž”ÞosÅBsˆ@ž.Ŧ#ïĶâČŋ( sQ­EZBN„ĖÕĸ€'aĻŽåyœŅYā„ƒéæĄMĨO=8†eđĖÏ °rÄJ5GöĒČEŋĘøWĪ"Č0įĪVqĶ2§3Ŋ}ķ1ˆūŌIŠfķŠÏ Ēa4A=ŌŲrö - &œÛĸðLVÜĮ„Cãq*ž ŧ9‡})Mļ&(W^(ātŠ2ËE %Óž j§Uú)†ý°†P—ųęÄŌ―Ë0 DϊB•ķ8ã[Ę=ÂzÏF‹Æ/îa§UATG’ŊDýCOe@ Ŧ>―Kð‚~€\ !ðč�=<ļ{„z⊞I.€qōņãēõĨQķ`Áæđm1ŽČ=2_TDĪvqíÕŦ6c›‘€ŊōîŒŊōôÍGũ';įŨ0Κ1ޖ3ë$ŦáŠ8 ŦfQ[vŸŽáŲîõg:xˆm+“øP†0iĮåm d\ß\é)Ƅ8?ImÎØÏ"ŒlNĩ“~ÞX­+ÏÍwÖBŊüŽ…ÅĀÍĄ–v.ŌsLæŌÉĩð]BĄ„f™ŋ‚ą–DßŪ”‚"?ĄfĘ!éŽĘxp0jĮ•H0oïÁÃĀĀu ‰ĮĸGnLþė•>iÚA ėëÉ:Ã-›e1žŠūwėÜīÎÅĐĐ0x]aŅYŧÂÂęų萛™?Ĩ™„yÅąēø€í›Ÿ+Œ\79ĸ šÛSËf<žŠX >Útóæ°ĒXc|ÍŦBŸnã[ ›ÆCŽĐÅYŊoŠ,fژ ›#ĖÔNŠV§äÚdķ ŪL™ũˆFMw~lþÍŧ6Ī&‹HÕŨ<ū+Ö}Žmĩũ~ėÖÖ< đĄü)óŽTÄ―ÉāŪ`é‹Íy•Á/3RŠ 'MĢ$ĶQdEdŊ|―<ū~Ô3ÕO}˜ÔrÕk�ŠĢjųneYqؘx+™Ģ_Bēíü]L ŌØpmWē-šËdģ°^―ØŨÁíĩMfõŌĐ8)`q^NvdfÜ‘v9Ā6)qîšĨá-(ņžOĸJŽšĮœá1ö^0…XޟÄŅ<§éžõüąa0)‘J5ÏG_™•Ŋfę™ĖĶî‡ûiX‰­‡šĘ)·fAۀtí:·B"ĩD3ÆO§mwdšĶR,·ÏĢm�Cm…ÍIýŽ\~(oČaPĮkĶ+\ИūHpábä,€L Š…@]d=ļÜZŦüm™rŌĶMU^ĮžŅ Œ #HĀ0”ŒQną5eÓY­–ßŲU€.Ÿ6 {ôé.öðNĘBqca}?Ï1ø˜ZBôŽbmjÎM †<bŅxŒHPÏ.HSøĖöĨąsįÜT°ï[€ŲƒĖzDÉ+]2ā5ÎÂlņŌˁģšy:–\OėĖw!X ĩ‚Ô.Þӝēúå.–•jY ·šÐ Ț’ 2Đ ™MåŊ—ēF_Ũ\ÜV‹ ŋþゖĖäLDĶWÕŨ æ‰'­<åA’\dÕĻĩ!åZŒ'7NÍÜWý@·Í[đ8‚ā&tc[Ðé1§#đ8†’LšÅĮĮ8iNΉ"ĮęÝŌ}mP ö+·ĐöīC4•\äOO}zâ 1íâ(VßIæ\X>QĮø3ԟŨķĢO—ZēĩÂ_K`yG0މzwÜčą3lJÃ6–Čž==š7(ą"ÃRG\ÉyũwŌ•8uZhŠ&Ú ƒÁcnŠ|R‡_Ôxük ÜŨŋ"caØĻ ÎĩqT>. žå4mIqėéķøðĄ@†%Ĩs™Äžž’ÝÆ\ï;yįąs š™ý•Óf@† TØ`ë_a–Ņíã˒øXĒ™ Mŧž7fíw.ÅQŒ—ßÂŊ’Ŧāzmģ8Ķ ‡ŽH2€ēGŨĘW·ßfÏđ°ė">> §°Ņũ9{ļÎŊÆĸlŽspcMrˊ+ßûlA6õ†ãUgÂŋ'"ygԎßUÉ&ļ {“|Ý…ĖØÞíŧí(3bhlCdØ6†d>ņđy™žŦtŠ"l4ęš)æúĪél"Ũt‹fý[‚IĢöÍŪr•ĖFå2QIŲóîžðp_Ūī>Ä2 ĢÝ.#/…ĪđĀút­“\ÄÄw(˜mcŅ…uņFŌ"ĪqjÚéSpÖGNÂóãūĈ6°wčĶ;RÎ(ø|‡ÎL OĨ'- ‘Šģ"ÄwĶe]ˆ*[ŅžÄ?:ą[õåĻĢš‘Ø*Áš~;$~;jRúc ÎĐđt)U64QžÞ! ”a p ĩįtE…›ĸ[›oÄrWŽ;�z  IlŲ„vx~AŌÁ7(CîdPÄ•8) 8íqÜŊŲU ÚÎEiĪwŒ9'ŲČŊį"0T I§øØ`î4Ę;2üwËîŽô‹ZVŸ>øi úÜŠh}pI$Evßn;,@Ė%ÂŪniBé:Ūscķ§QEĸbęČ―ūîóýG―€ŊzŧīQ‡OŦāwT‹vyÅgzn€ˆĖõ Ōn•Ã5ÆįH­ šŠO!Ŋž°ú äĢ\ 9^‹‹ •Ņ  5ĸPãŲE%Ģ^ü›Óßb–Īü#šĖ[‚ŲŠ*Ę Ŧ„› î0*æaNq[ō|ŊÆ_†^cÔU�bW ÚI—,xbj;ĀÕT’Lwy*AÍTr,DøēDæU߄ˆãŲ}ŪðąlÖ} ˆŠų°F§Z“ąŧRĀEĒtURtm;čDņūíéÕ-‹Ā_[6į•JŽc°0āŪ‰ū8Ŋ§(óļNJ2Ø:JÔč )ߗ]q€Ę`ójū3ĸL5NžáŽÝtŽ·4͍œ_1d›ëĄþŋôŠ Hō;Ļ,ÄÎC“R_õHø íÛYÂØaŽÛT'Ĩ"?ČåMšųŲTiý™_ȃĪĘūÚ/äÔ^čhĪÂÜÏFiQÞą­Ūúe éČōbÖŌOat^Ÿŋ$+r vmŲųøēDĐŌ5͟‚>b‰ŦöģtiĶŽß;Ū.—Č ïYRåôzyƒâo|#0N"ģƒœ" Öčí{ōÄ"pS™Ðåw‚É,ŅÁé>ßø4#|tíĶweÕ9 Ēðü’ E‹Þ\GcčÖ Í QÓĸyŧ”Q,Ļ_^ W˜&ė Ā*āA89ÆēÃ(Ũē čfŊÐ―Ü 9LŽĶ―†Āõ g] ąnB5ĨĶØĶLŽÆŦDfįŠi>Dhˆ™ĀŌ!‘[í*ĩ!ó履ųðfFÜ9ó°―ÎĶ"ņ™Âų.E§Ué.™Ā+,č[’Ÿ>î}õ―ķžš �ŽsJ‘bŅ:É)&?đœF�ceã?•ŲR@H]ČpáRĢčjƒ‘ü=ŠÓ'Ū]Šdļ‹ôĐÏß:dvoų^kĐ Ï†`Y]į)Ým ›Č`Ï]ēB‰vęĘnāęÞ*U;ü)jĖ ýĘ8ąŪíę„'’Ū―Mo5߆[ō#l“ŽĩH•`ƒßŌ…ý6sņŠ ØŠĖŽËSŪĨ$X0öđŽū–{AÅpŪÐŦÖ F€C, ψđČ<}‚Š�}}Đ·õ5ŋŲaކåݜÖŅI/WëÄIҰųär]ޑ‘NÚ,94d·ņ˟;>!*Xwmļ:„éŊĻ€°Ą8lįóŪŧÍöJÁ$čzķŋŌ0{F6īÔj‚ĮŊđxrã“x#C'rŽžÕJĶä>‹—t—ļlEûöÚvĒ-3C€x2ĩ*ЂŌIÝz†ðXЗN›—rNZ<ßãh%?ǰïZQāŦđaîÜ!1Û$nƒEû’g“ÃĘh·§ÁKjÆÍ|zgx‰$ø‡/úņŽËógöõ‰d�yŋݓ°ŅËŅzwãPÅ_Ė`9ÓLöŧ>ũS NKDÅDšdþOąÞ3ÍbëN€,uAˆš­›‚A–>ߙd…ÃÆÝqiÃäüȉũ#Íóîr“ ó~vŠï,Ë~XÍŨðä‡ G sašFŅJ]."šũ›Ąˆ>åĨƒV ķÏŧpøîĢ7’Ûž’ú(Kî&…+ė[B°ŧ?īTFēæ`ëó"ķ3ÏGøõ1*xqĩv“(âĝƒŅw”3UŪģ‡?�悇ū ØļAĒG]ĩJ€{ŋ‘káP<›IéqĪ“zu·Đ;|č™ÎóÓ[ŠēËķç.`ŒîBIþÁÄũĀĩ@ALÆ0Ð $PŽuh=vč1ß~{Ēēč1(ž dŌu ƒóƒĀûūþ8Ü7’øcŋxŨ˜Ô;)ÍK–|%(^IėJ“l%JÃýAÕ 2Mį‚õ k%Fc‚Ę mä”Ā@"ŧē ??đÄ?ÁaƒúĩO`�ïČZ/۞VSō4ˆø[ —=4UîÚŌØģ"^ãŊ\đÕč?žúļÅĄá’?Ŋt[ŲK”ž‰B7&rï’Éüž+L#};Ö&ÜIî'ĨĩÖ9ŸÝ=vC}đåžĸjäezƇD†īĮ?ût*ŪM―Xāxē MĨžHZ2KšŲdÛIĄFžÎ8Ą<äOŌQ_Ð;ōšØū'ƒßc§hŠ ŽnęģuŌāč//íģ,/ÉÄčąôŠĩŋMj…ýáÞī>QáW–čœrÄBģ΂üfŲ+āĸĄ ˆ„īTų{ó ƒNRčhŲÂSœ`;FFŊļýå_›uyę §î+†-/â™Ë Ÿ–äũĒ Ð,—;žģĐÉÁî„I ôĸ^Đžéqûī§ f ÆÓî4G†Īüà jD>”ĒĒÃsĪŌáŧ’ ]·UŒ{ĩ Ā˜žĶéG˜īŒ„ÁóG§”"i$ƒk§úņßDRęvnÎĨ͉ūӋzWučÝ>ŪŅÐvĻ 0ŒÎĄŋĪqTš$iG x|îmĄ,Ų+𒞍éîï ÄŪÔî`Ž~ĶĘEŽJBóĪƒ,ÜÓĨzĀp$8qKüĢĐ" őm;?€ •Æ,z >Ô‘H‡"!S4Ú+Šp4'0˜ŲIÁ~=đ;‡ŊïÐÝA| ĄÁ]`ŊūØxrŪaˆXްïéʒ\ŊL“‡UÐgÞąąÕŠt›mÞK"-ĘqӉqØõ™KÏA)ÂQİfö§šËėW2p#ýޝđð^ĸ3žÄó}îæ G[z <bÚ ÐrRlO.Q‹ŅDÁ1 _jyïnwŒ= +Î\+1cž bķģ†ð·‚hĖ"ĪÆ0<ÁoũRFĐ{ĘÁГō}Ę Ž ņķ=6abjŒ•W]ÆąÝ0ãÏŅ\'ėÁáÂþĄMÜņoãõz8Dõþ}<’ Ö*ųonpÁîŌėrþîŒSšÆáûšjBÝPŌ5ũ\}…ŅÐî)‘Ä ‹;hŨŲÄô4Ī”Nįõ„€ē~"œ)ņ$|ģ6–Eˆž QšÜd؟' %,–ø°†eå{‹’ōũô•Ī€4ĻąąD‡š|Þŧ …ŅųŠiįšįë'ŅxËi""}]ˆLÛa)RõÅ0–ė]ŨûŽ9JģÞzį`–jûPÄ·ŦŽtv―Ėŋj8}2řB6 F-Î篕HHŨ%Ođ•I:zĨ^}Wļxž‚Žņj› }8*2þ{iI"ŠōŊæ&8ļ É,Ŋ…œ,ûí5އ9ũ#ÅÔxc4%eûŲ!“ŽęQÄŲ.úAKúÉ/Ōm ļ\Z‹Ķĩ7اløÓIŰeÛęå#•4ýþo:u ŠBL8xNã2ŋwųSČļŊÍ=ē9Jũϟ―ÝdŨ9…ýÓUQW4 Čø `' đþSš)~oÏCGŒę[YœH‰ą9Dņߍ īŒŨák6~ Bøj%đėŠþ];ļ=\yŧf;Ŋy―;ŋˆ’8‘Wņ9˜,‚džĻ@ŧHķdaũ™$3ŪÓĢx>WK3i þâæĄV hW_ûčŅūšĀGōŅ·.8ūâ“*|m2@éZŽ’.vāgēeÔ-ųį ‰ÚÂ�š@č0į…FļŒŧėEū *ƒ–†īõl^›j 3{Ŧ™Q į"Ôĸ5:Ö>AŠÓ&‚؟lp{þ^^k_ȜîëĒtH+ÅmĪŽiBÞā͐H„›#[rMvv*]‡Ó’ĪÞü€Þƒ6ÕúŪę‰�‡ÉåĮĩß!ãiNÛïtö­onƒā~ßW�$úŨ;ųĩ9IÏLÖoŒ‚ð,€]Đy™<ð_xQęwÜũēā― @dMpŲÕX$ļß:3Ô§į™ĒÏJ\w.C曏ŦôÕENV_`ÅülīODs °bßy-šėfĖs:›ˆÅ,Úŧw(TĐ-ÁĘĢīūé]ĮÝ{jÛģōSÎwēĀ=֌^Q‰*†Đ.Ģm™IĐVÜųž!'a{Ųh3ņy|”@ø=e+Ąý˜îEųcœŸ9Ū< ô™RkڙþýÃnx šYōp%Üēßŋ.$j Ē ›ýÉ!ņ4―4ˆmƒüŽi(ÁĪ=rg) 8öÅåīēĢš“$Ũþ‚É̈ÚcņIlŲ(öŸ2ĸƒ"uxöŪ\ “‡æBR'ũÓÞÐcA?՟ ūöoÜĢčY#XŊēüv‘ĻčqB<KtÄ@XJŸuÜZ"/‚ÛZ ―zēhËՁvŊĶ /%ƒ`(4ðix p^™ biĄĀaüfŽ5ŊL§Õ=ðeĒóۈSy­CÐEþLÕ 'Ð:ųšYãUJ›1åJ^9^Ęö-%'?‹“Š LČ]ôôp`A6īŠÄ90IbržÉõôęĶ<Ýúzœ ā7z>žÃ+―lQõÓ Hũm"r øƒRČ#ýj…å“ķ†@{ļ–Å:äuBP…PbĘ3āč…ŌÜ]GWOW€{Nėü )`~œŊH…uaĩ†}ŽÆ@…eÞ #ßAIū9|ā›`XĄo[…SeÃh[qŽŌ/JË–ŠÓG4ēŲ `iðĘŠęeMá^ŊŽ8ķĻŽ;1åĀ6/†OH‡ļŠ3ĢŦøv͐œmZĒÍÓĒOh 4…qļ]ŊÅQ‹†ļe·ĐlÜöÅ7Ž1_Âj)mSįU û–ƃDƒZšØFjÜ3ëģ…øëĘÉSø"QäNEÁÆøôũųl/hï!ēĄۂ^ëRĩi ĩôJ;$­Ï†Z [ĘýÐ?aœãctĐĘtĐŋBģOØ_ Ãá˜L9yŲeŧŠ|Ōw}Ú ä1MøŦ$Ý­}Ūæ*ē˜ŪŠ;nĘšĶnZāpŦ*kē G6§Ũ‘Ē–}đ‹Ãl)Ž"`ÆŽõƓ&TŠHfÎeRr˜—=åa{(­Eôũ)SŒdĶWĮJ>­ B#…%ō“9…ûzÄÎō8G"ˇü"mōi%phtÄÜņEŽ-Â>̂ߛ†‡DGŠŌŪ]Ð\Ōbæ'/&Fl�<ëŪ'4=øŪĸpߌ}S&ķŧ óÅ!/ĘYÜ!đ§rĒðÂIč‘ jĘø7î6mÄŅWÖæþ?*dŸœ9;…s8Ļt49q” ĪAëų4ĪL,ZļŠ ÆÎØ/"‹7ē՗*ļŨšžVēLðųü?ŽDũ ÉðģŠ@FųK;*”ÔÓJ čd-ĀÃÜ1Šrf}Ж)n H^ڝ9 WI[ŦâiLDØSΖĀĮr3—Ÿ3›ýc<1Ē·: 9ܘƒ—<™øØ![ú‚sBÎf}BÞŲLyW§(öÔÖĻ(z‹x2ŌŪ$/-~ĮlĘrxr‚ÔŦŠ6ũîLĢ[Š%m œĒĘä`Ó%“Ž2īOŋ ūá†_ŽŦ,ģÎ ‰ĮŅ}möËš�Viû6iŅ3 Úŋ\ž{ôŸæmwðņ2DîSšxoþžū›„/ꎇļãX[Ķē?ÓØâDjđz­zcÝ A™%‚Ã%�{ųëÄz-búČ3IŸ31dŽô5Sœ§22ël*Č^V+ūņÆÕuĸ# JÛΊíãPš3bôĸ>ÄõBt) `Å9֞h§Nņ5įÏkð%auSkõdr’#8"îŸðóõĐK„ũåRãq&ī]Œ}AMoš›;øIÎ+ē"Āüó—•Ņšŋ_ëŨ!xŪÝQFüÐV윟[aĨþ‹ßFēŦŲ>AŨĐ­ßL"&|°ļ/đÕāIŧ6Óø3Ck›éd�B2ŧ9‰W]VŠâß)9Įķ‡ōïDw3eŠNCbA–Odų4áš|& i›HC]Ąm='3;ū0öŠČÁýÍUėa ĮŧLĨĮŠÆIoĶ%ÁáŧĘ4_tК–ÆŒcƒ�Ū)ĶēņrĮ ĀēDī˜}œq0OhAĮfÜËĘ ›wĀ0ã;ꅖaÜ#Κ‰GūâÁ‚m IîÐŽrģĐūĸ€%ŨŒ‹6~SŒÄÍíĩŒû^Þi―Vå7c#áÍ@ [ãŲáŌÏï­äƒ{Čđï[4Đ#9ĐēĒ�nÄ?Q(ĐK Қ·ƒˆTlŊø7ȠȘēŦsâéM|<ŠwýÅ1BÛ âK‘†I`ޙéÐŪĸwFïéˆó“Ûû‰ō^„ómmuĎģ'~Aķ<ŽģÔĀWæČ:ôūŋäđD"øüý؟!rwĄØ3JwRQÍZKw­čŸú―—+Š”i‹{‰ĮāģĄhB‚~Üöƒ†fŠop ĐNšŦjęļT€qXZGƒŽöÉSÕÉ0v<ũáē€xMŲ€ĪĪtÄrƚūôbWsĪ!D›ŊŪký%™c‰˜1hąķ˜ÖŒŪürCb Éũ3Ä1D…Q7ŋĐĖęĖSŪųb‡ÞÄ-ošjÎūųFøĸioû<E IVíÓ*vW ŨoޑÔįÕ @šJMėų�ū°N° ģđpã;ŽÏãÂË·%Oõg-oÍÓ .qV#)‹\Âáđw(YôýŒŋ;&ĮQ­čiЗûŲŨ—“œØ­oæÁÛŽĄã֖h™):āãŊŪ^<P†óÁ~sMĪ›ĩJŅ|NïAžïƒ‚hq7Rëy§ųöŠ Ä,“Ļk‡5KqĻ„$Ŋ5 KéČÎÁyÞÖ§Š€1ĄþQ2)î9žlšézaĩގŽ{ūļjëžēŧA)ÜōÎÅėþ~ōŅ6ð4ŠĢ;Ä=u%ūũ GņFUZåB$Eđņđ‚LÅ<XgŌ0ĘÍÕōĢv:ýčÛHŸð-:8⁊ŧBÅäėÔĮžļąa€yÉrb·îËėæš<úc―ÕĢ7HT䍅õŲ|Å!UWÎÐÚÍi ōßh{9ýRĐ*Ô回iÖį†íĀ]âXûžĘ`yČķģņĨ·°Cč)_Xb—+\lã?Áõ(MU:UĀ ,Ēxĸd|"Š$$š•ýt#âč˜ĩ\>aLĶ<ūæâÜū~wFa•ÎáƒÎ\ō‘Tæq„'ošąGŌčYī’â<ënŨ.Ļ7dbmL)ãķZáIō‡ûô ‹,ļÓS cÆf)ŲĈŌÄq.‹°=âMÄ"Ņ*3ūc4OxsEgR%n \“4ÎsÚßV‰ŋz)ÜÉAp_4 ũčaį&g|rLQ!Iþw8‚Ą ŦĩNÕ}P‹ß GÅ:Š?ķ/Æč…)˜‹CŦ�[ÝsĐL*žŪ?ŨƑI%0;:āïŅE=!^ 6hß.ÝøĻĪ”/oųgkýęŨēÓaŠÜZŋÅĸIĸ~jþÜû”‡+WE#hû 6ÜíL4r2ĪÂÂÍOÜĨ†Ĩá`Ĩä`đ<Ïc wqīš•~HkÔA*Nt%Šë'<Ō9OđmØ Ŋė–d;uŠ–.óDMė?�ˈ‚OCĮļŽ ŧ§Óč&ØI”.ˆ8=ŊBr?á=JËĸ %fŊöenįH-d-cũŅāoéÛŲ?Ą{$ p4Î8ĩ"cĀK709^1ō8„PŒb�=ÏåÁ_lá=ImIŽ3šôÖ ŋ]ĖĖCĄúC=íƒY   ĸaeÜIPSS@Ï.15ŋį“û\ó!õö`-ŲĖčpFcnëëó†_ÜU'Îĩ#{YÕŨ�†O-UT‡‹:ódŸ–Œ„GzB`ėëũĒŽ:SínƝ^ĶĢpbđĻõzĒ<ž4‘uē:<ĒN?I8l‘āŸ&Iëáũ†wĐō ZŸ8T ŲņpŲEŲq]?ĩG>d3„ilpKp $'—ōŦMsŌČ{^eũYčžyf8Ō™ß-R”IKũŊ_m_uŨoÄÃĨü˜=Ę@ýUđPVü“BČîīY<ŽÄáw õÝÎD™"ČŨ0+^‰ræũjÆņĶč&âūĨš“’U%CjLp‹ 2Ķwð‡[ūę2Đ5&ÕŦN;ögė@Š/Ú·ģŲ—BBW_7{'œƒú9œ66Īvm\Ú ­Đũm%}ˆóI Gpïquņ^‰P^_8x Uų{SQĖq§+hęŽĢ‚ đž1ŠĀ"î.ŧÚ' ėŊū,čĒ^·lĨ}īU,đĪÎ?IĘüë+Â@ÆúEŒ‡›ã=;SÖM“Þ[ŌĄoðnJuë§kHû…ÐČ̐íĶKŽÛÄ9iqdĢŊ/°ß*Û<1Įτ§ũĩėĀÛŧōéîäSp†Oü‚ÓĘŽŠg"éž<ë$îųņļĖ™ũRÏíŒR―ˆpJÜRʔ{>~€ėzðJm “ýđgg eWŲW5ÞâˆjWŲšU3šßĪŽbtwÕ@ÜŋÜą_Č õĻüčĢĐŧjxI˜d“ĻļŒŽŨøõØ6ŧūƒĻ}Œŋ9káĨŦ Ë{"Vi7@ƒ]j8—ĩ\Ä&ųŪ+E ęÛŲxÉ[·VzoAs'TXŠ™å[ū…IwŲČÕïŪ4:’láƒđIå)� v[ïåéđƒÉ3Æķ·Ą Ú;ŧœ(å ‚Ŋ‡CŽRŦdÛŨwuîh42ŸWqųOĩŅÆ…—ę1œÔŠ8–j€üQŨļ^đåX1A‘æį1˜Ko.g#d ýü°Dõ OKÂÕÕÕ5q.Ŋ=ŧŧrÝ6 h3âĉĸZĐōŽī8ߛ&݄ÕÉ Đ Ļė&()+­~á`í[ڈã6W›ĪōõÉNÏIŋ#4!Ë0c)Í2`þF1q­ÄXÝ0OûÖx:QCĸu­fÛ··ÖNwģĢB „Ŧüņ;™läC”Ø!āYÞÄ0(yë>g($Ũĸ֖uĄg™GSÕkô˜Ĩáï“H|üÓčUĨˆ›“ÁĢ­GôũYK īãÍtÝũDßÃāĸ-ā˜\áĒ™xŠ BcÚĪÃiÍģ™―ÖĮ3 ũöņ˜ü$ЊĪŦH/œąÍbŊƒŠõ‰SB͇“-E•đ<XŊģ‡kV!)ĩŪzî./Ðĩ=™ė#AØun‰ÏĢZXg/ss…žˆhŪÖâ Õ4· a ûb:ŧöóäaŠāĪk&؊Ō銊^‘pįé+ģY– ž,Š(+=éëՖžÄ|ŸļˆâZŌGˆ&-M‰Ė _ķƒé ŧ§Zŋ(GåK4X8ũD-ĒNcuĨ ö3ŧ{ĸ]RW€–mžÝz’øØ>8^óOŅ•"ū6ŲÁáu6 NŠu1k Œzõp- ÆjiG76^ã™'ká aq8^›ó“–Äb…V­B2i/ęō1ũÐæ,  ]YŪÐf8ąWúā\ņ]ķ áVÜt/)E“Bƒi8œ ` Ý]’y!J1eĪē•~X0ĸĨĪ€ÞN–‹ đŠĖ‹‹A=wĩ i^hŦĪ~”óģ‹Į[tũðtš Ŧy_B†ôOаSąËHHĮÝ„ōAl ÄĀ+ģÆY$ë`Áu§―x*Lƒ’9Õ@H8@PšÜҁ Zį%ĸ7ҊĀ1bYņáę/BIû]ÅōýĻŪ}D?ÃCĸ4Ņ}§Ã`wí_áÔWíDū§ŧí ……Ëöģ~ÓûU?mý>soÚyûuĒ[íčŦ}ŠßÂĐþeöÕü?īÕþŌ?ÛqßPóöžþÝA—öôQýĨĸ[@~ÚöÔ ó˜…ÉĄÉŧpˆØTxߘjNnØbīuPöÚŨŸm<īåhdŠúÔņ!6Ė5āx9L CŊä+‰Þ]Xúŋ֔]aé@Ëô‘Û„™yæ Р•ÓđüˑšÕyrŋÏ:ĀĻïßĒžýãQœ°DÍčĄŪˆũę O ũ,Â<$ķ]ŊHW qE ĨŅ{ÅÞQq­�€…bŽĮåå*02ų“ŸLm úAoSCņ\Ž-Į™ãОÄŠđ-xRĩ5•,ä+ƒ—@]&ĨĨõĄÓ”°8NmRÔÜ?%"hv‚ĻfaŅT+eķ õĢoŪ4šdŦ› Á"Ņ–qoÅIlačW{ã!­R°(‹ý1“i1"‰fŊ^ éøxY-ÃąZ8ā0ÖĘąįŲf[—N\Îđ#­ 0ĻyĨH7^Ÿ[š�ýuËžĻe4õoÔėq ŠŠŅā?\`1É “äþÕ8ā=jĻY™ėA&ģ·ĸWą„đ0šQ$ÉŪ‹pķé2ōÆ”Ü―€Uj€ðĐ*ėø>štĐŋ›x?3óu�:äSˆ˜ Õ͉d`u™%Érĸ@šú,ŅUđoūķCgérÔ8O36I…†ō æTáΊÆĨóœŪ d3úũŽÄ(/Č!t@Ŋ|īVïô!åPÏZNäƒČó—ëŊģ 7‹“ø˜/5˜=Ôûŧ­Učé.Wšžē‡@ !3kã^ŅI`ßæ8Ål"ßŨȔÝ}ĩŋ;DĻBˆÍ[GęɆ‡ ā_RÝBŠwz‚ØŒŦmNą@ęë|ŸĨt—ÃsÚĩÎa‰f›@ÛxüæKĸR—Dų;ƒ–‹ë�°Ų›š―ū‚c_Cõ#‘=BÁo|ĘđŲEœ;lƒx ō­“ĻMĨöüLY“Þ.ąĖM+Ũþ’?Þl}†Ȓ―čDnúó‹ˆ:‚ēsFW~f+]IPTŪēWiģȖQ §äėúāŽ+ââĄ'�â$U 9q3n–čoÜzĀrwk}û‹šŪ{ļÎ6öqÁ_JĀf$o>GiŋĢ„ ÛöåāĐÕĻ )Ē€‰ŦŠð%ÜŧęŒHpd_‰cp^h°ËíõĶʼnĘâ.ßäĀũjį†$Ęĩ­Ã?&ģ·ĸZÎ F���ņX=ŨG.ƒåčZ`,Ö$Ū"RÍ yČĪmd :ÐŽ?Û―ŋB?ŨáÉ*Ðý$üüˆÅūŠ|FļäŌ}Ēĩ)@Ī8xélÏJôYČKÜpc"+UHÂâąó6ˆeØDm֟ĪT2i9î ÂÜЙĸ9íąP>Hö,ģA+üųP?ÓĒ.3%~1™‹ä|›*"QZ8 ŧzą+ m.Ôۚýš!ŠF;š^KsFW{Ė€Â\õôkĒQ[PJTÎð:í)ý>ÔÎĖ -äî^ZĶInk{øÁIEE€D­BųÏj):ЗĸôkōĻŪøÄÃjVL)æ ·uЋũš‹LœøŸ|j=7%WįӁk'.ƒĐ'þ [í3#+Ō‡@ÞSœoNóc ÅI°œä‹%’Ļæīįs=Ë(û‘ý0*ĶhÉ)ß)ȍðócŠQîF; 'Ėį†Äø6ZēĐpPč=S\s"r'S\ 9•‹ą:*Ņãâ…(Ûs—d-yĮ^*wĒŧýĸfĪ9ĸVZtHhøMgWˆ­ŸŲšŪäNKx€Đhļš ŋã ―М)ų*}fEÏŊ1äÍū}ž(ufāF38d]1ūÃéädïå'§‡Ž449#R];;äĸ [P3ōw@Iņ;ÚrŚ�bQvä{€Ęú–IEĒžó Ōų˜*Ų!Åj#" ‰jDĖpō—Á ·2Â�_UYŨô9•žAÕS—Ģæ#Ž·Žt4léŨý Î(ōÛÃ$­u<ĩķŠQ―ų:ĖI%ēģ­ Ėéĩũ§§‡7ŅŠ‡x7ė|eŠ7X§XKÞŦĒKŦŒbôY‡É k07t&ģ·ÞðÕrhâQ’ë}ø}EŅëëSþ]M–HĪ*S‰ÕdÎēšëĐ=™É[Č@äSŋī-býøŧ0ąįLĘĻöį !ņkÁy͜ņf―ąäÞ8íeq“mąjk{c˜―ŸĐ óÞ6ũŊ‰R‹.vðÕĮâxá>�xđĩuõO™#MļU–BĮ―†oIÔ#Ī]ŋĮĪķõÁûŒym_ĮN@Õ<FũbIē‚_g6lĘHŒóô›íĢeØ<ņ”ĨÏõvþŽécŠïĀĨ?Ũ― ĒũHÉŅkó.JÛjņÃZÛÖérþМĮĨ ĸFīā^žÍvāK Īä­! û‡4Ú1õ‹ŊÉí— ƒ[įúÕČôöA'ĪtŸ˜Ŧž:Xâ>ÏLæËæâï­cīN―'sÆöž[ķ"ėqV\éōUœ―Y™ąąī_b’S™™ÔFōŦ/ qæ~\oú;V€B!î�ãĮųÐĀMį0+5—ÐƧ\ŋwʎ ÚŌþ Nxg­“ôĐlJÆïVL&d)ØĪÞzęŧĸ5wŊĮÔ(õė·xlîĒžŊ~䙘v„1öęNŸr ÛĢĸ1âļïymV-‹zqŠÞ2HHd· 4zˆ;B―Ûð-G=zúKĮ{Ðëc%õhkäņþ­ŌŪ!‰ō†åąĩĀņĩ™ĸýŠ€@Üģé‹ũĨĶĻä™Äēæ<•˜Ļ?rķ"ƒšĩ�T9�_áÁ&=xÞ?̧?þ†KēŒąŨŠ­ÎVí-ÄqÔēߌRP-™ĸĻ�������� 7vōVÓĶšöwt~$ČĻ������� Đúĸ<o�ÂB_ Ągē0ÉP����������ōVÓĶRĢ}įÏŠĄÄ\ĨYÄ^ĒŌTÔŦ§OĻÜÍ89ū2;Ø Ïl/ĨÆp2œĸ~€]‰ė-|„đuԁ`ĖEí2īT �����������†ģÐ/ßčŌ_>)Í֚oS•Õž°T Ÿ‹!ýX˜S9 cûļoÁ;Z§ WU·ļōų;zXkÏ zv\ý §ø+‚ņtĀ4éķ―ũæRēˆý8‘!ŠfAÏBŨ‡íŊ·M%"Ĩ”YöŌ]‡ûn> mįŌ2Dōat!ø—–œâŅ}i‰]ÔÂ―žXūécīDQ„ķ óu.tŲ4ÎĢ_}þž`0%„0+#Ę'QąŲņ‡{|ōiÉÃŲ—+ ;#ëēhGz€Žs ûŋÝ­:·ūŅŒ/ŧh1·éŠĐqõÝĖJŋg·ōXŦīDT0DY3hðïs˜I!ģ.ŌÓØoės―ĸĄEÏūõ'tëFšF}OÂåõ§HÆgŸ zþ§ZÍ-0!…Æ4{ZœQĮ%ý>;rތBŦ^áóĮáí`áięYYŊþÅņi öGM"ķû�Čϰ ÔsĻ#Š’ŽmI-€’ÏRffĮ·+8û‡wŋĖį?vŲ§ėá#qˆz pÞęP+-ũ„&”ČÉ,yÍČߌxŊĨéĪ.æÁÄ됈æðiŋ3*d°&€R}Ú €2âĀ"įۃ›īōUÕ`‰ĪųČ-€q‡™ ĄČá˜ĢōMî;É #azðM3ߍ’ÖÆ{Ûėļüe‹Tþ=}ýŨčbē/åšMē‘” ŠŽK0ŽŽ‹ņ2ŋzĖcjiũ^‹ÁŪöC-―õ+Ø9HÍÖ厚ĻũŌ<+WmKČ3ļÁ]~Ē›VŠÅÔ7ý'‚­é4NīĒëÓđš…Ŋ\3ðD=>wSÍĘ|Ž`‚aŠÅFAÆ6ņ^eÃÎx^%Š_EëRh.ĸ4íĒ–]Ú Ē§I‰ŨDČž'…;Ϛų”ņm“Ē`Ė45ĸ üfæAÍþíûĐ[wÚ2ÐŧËßvü ĮčCāôYPÛgí‰b^}tíEÂԑúī^PāQķ=ԏ-GęÂFû%ÃËß#Ó?Øk°><aũ}ÃÞL‰jU”{ö§j"ŋ Î4P>Šh-/…—"2ĘsÝšWđqÐÓz Ååĸ f§íŸĮÎ T>Đ1g‹ðŊ:ƒŌ�?°U;„1Á‹Ũ‹ŧ™, L ĒۋÂĶļÐ rAĐĘwÐ<ЌĐũQō„4Í4#TÏŦĖāüDŲķŸ3)·TĄ"øé„Âw%-lføĪÎÞ·ˆsKj&æ§å;,QÆŠÖŋ+ŧYŋI2æ™|âŠUâLĻšüIH€aúýÎÉ X­1hMȃ(óy;î+ŦKQ€B#j”SN{Sņdô'ŅB–ļĸiFmröÍósmr<T›TŦĀâĢaĶ·Åųœ;áĄÐC:—ĮĻĄ�ā“YMåÖÕĒfB6s%æIyRŊVē’ÍūÆŦĻ8A,KšPĨÕŽŪ-Ë'ũ؁Y­um+„2ÆEũŽFgŒŨ�.á@~þÁĖĩæ7Aˆ™ß1܉qÝUýiļQÐąūÞ4IĐąH įdū•tQ~ĢÕýËÝ™}ýPėVX1%Đę„[@2R­?ÁũsßBëŊÄœß"’IđÎ ŋQZ]õ‘^vœ† ûLÔiŧЉþ_Ôūa3ÅþnŒ˜ajĀ<Ā įËŪYâ`›7ŠëëSÆz` ;ņdŲûeÎŪ&ë_ĸOoŋŅhš@ā/”΁MíKīiÅ}gJ°Yt‡ßiđĮĻĪvô?Ô~4ȒđðÆ(WĩÞiãÂ% ŌR%>ڜ $ģ‰ĸr?ņhÍWK@6zĨŸ§ˆŽØS +VZĨØZtQõ‹ÝĀZ°‡ūŽžĀšÍĒrËŋ―ņÍÆ\(Ŋ25Ģ!XAÅG§Ąå x–mÁ(Ĩ5Ņ[Ƙ˜šĢWˆ1ˆXlĸS™o^ŸÁƉ%LqzÅĪŅ_KĮī"ÖGƒ˜Āj2ABIhz”ĨX\°1:ÖXą§‘ûšŦ)öä!ę/ާ>™;Ģėwk,ėaj3Æņšō•Ä}ފäø7 o‘īI·ū]ņÕ`Ø ČeŠđ 4U°·ƒbЖT芉Đޝ5*âŌ‡U<ŠžėIšliiðP2‰›ēДŊ<Å6Øéï”<^ᘨd7ķwŧ-_ðđö1É)åĪôsLšüIiËֈDGÅdHįĩpTķēbÞ\h!xULÞž V<ÅķkÕ[}Íâ[7ŨŌaōž:ŨüÅÎLáŪĢWcĘ)æ°ņŊeúT›N MˆÍļ—ĒuIâð&ðE—”Ŧ ïzv~ą#.z§ŧ!­0wf…՟=§ū@žî_ \üX*MU6fÝēᓗLB―Ģۅ{–‡€ÝXœ“ cķ •ýŊÅz•KîÑĸ`ÉnŠ<Kė°óŽæã->`RôæÂĢ7++Īąō‹rÛŨzĢÄY3 Aúįo,ÎąC] ÎwŽ„ō†ĨÆÐ€&ąÓneš—§‚C�óžW™žŸ y·1ŧį7ž*Ž.ß,ŨJäFe䌇,öAðėÖóečģĮôPN4‘―våëz-ČWn:ÐvžŲŪ“‰ŪïÂFIā#5ņōÁ4 uW·‹?‹ аj^Aie·ŠqŽnHcõZ6Ŧ’Ģ›ÝH†ŸęU DH)P K•Ä„žĄLt8GømÚÐgƀÉAó(\dDR>O“}6,'v‚Lã6īRōŨ·Ë ›ĶiļAöbĀVV„2šŪøÂ!*5S—)Ā]Ģã†āe }ƒ†ū oT€‹õ”w„ØjßĘ,Jcū֘!OÕ dŰ$†Ŋ:Îĩž†Ũ7t.:‚ۈŽÅ šÂóŊœ°#Gl€ŋyýģ$JG€āÉŠ€Īų&FÍm?"ŧîŽAb›éújģ;ŒDŨ^ š[Ŋ?h2ĪätĄôŠ # ŧktuũøŠčTYzƒ9ÃzZc™Ãũ{EnF)RKw“ŌÛģИ\ô0Ģ-0%Î6Ļ*ŦÕÐūi �dÍ$Ŋ{ŪÝq<ýå9ÆkČ0Ûņ~—ē4ŨŋŦ—ók*6ĸiS‘―yåQlöîŽ0'Ļļú=9Ïä°æý Írw|ģÄÞŌï+ˆ7Įt§؇AßĶÃáíĒxģĄ­Ī9Ö#TąęuˆäÆĨpl Å ūõüšÄßø@ëHöI|cšäĶôhÜĶ―<ß(íÖTžŨX“Zũ�ÂAF3é'q’·&Ž<ĀŽV}ø…›•ÃĶæ\ž8 ĐĨԘŌŊm|īĖ(>7Œ8ÅđkēŽi áb xuDéJÚ%Ą‹°ĨCĘž&ėZĪXĶmÄ~ŅÞMMâ‹í2'ĸzåkô·V…yŧÞŲCŽÓ_;ˆ !WŲXVû3k3‰ĘËÖëïÁjĩ“ĒēŽô'ûÏi(čâÓ+ōM̓=y2ŨF)Éĩ:râ™9•šJFOa<}čMĩ‚ÝēũɊđ§ų„-ØĶ�é?P�’‰ķQI€Ž/maäÏ]û}Ømoˆœ O’‰ÆÁŧîøôåm.-°EŸ;L4·Ŋœ0x/wLw'ĄTī8fïr„$•ž()Ý1VOązßu”iÁļéėOËÂÎL1Ō AƒTãŧũ’5Ú$„é,ąĮg‡ú|Ý$üfđ3ŨOēĻÉ ’€#™’ĐŨW+ýô šļf-Ïû.é :XE3ĸ)&ōÞ7‹ŽWŠøüQïiËÄYúËž5ĐĢpË­]ŊœÜ†FLÞū9ĸTČd ąMÖ?ŸRˆ whKDėBë‰YōŋTceČ`―ų\ņ:!-݊’==#Nt<ČÝ7PaU0: ÐsBúG;s\―ĖÆY)Š=ņ Иk'3#ŠŊāÂŌđbxē.ÉĖÍÍgHą™Ĩjü•Ü#Smāũtõ>Ũå�Ī–­ĮrTMý―ķ ÔĒMmЎs܃Ā-ÏJŲïųg§ïĩ@y-Wy)GæZÄ.sQZļœŪîđdŽŠßŠüa�ǟveEþ?2*#:Ģóäæ―ECŽ+e;“ņ-_7ĢQó_ŠG°g7ā-0°F>ýÓČĢŧŠpĘ>fKŲęB­Šåv 8Í1xúýÜĖpēkÔf–tn―ũųnûÉčđóļķ}ߞ/ŊÎŋÉ<˜zŽð-;H˛ëÚFã2}Ņ}(SėëFĮTl&ÞĖÜŦ‘ļL)yŪæ"v€"[éš NóÏüŌi☔―Ũ@æ`>™X͚X3LōüSIīt―4ŊuZą —(ų!BĶDPŽxëĒV;[Â?ātØõ⒠ôʐ3ŧÚ/*rŧû§;šō@Ũđ}ĮšëdUļ6ÔYÓ]3GÄG”ĒÓzöރģØū—AYŸ ąÎZ·ŧņFØzŧðKãIëēŧ<Xģ ÁOščM9<Ō 6gģ ŊӐl>c|3ÅEėÄÐh"é#·ųNįþl’ũHb—8ŧ•)ļž†Z’øv} Y1u9^ÎîA·+ķŽĒĻ@“ nžˆÔëč}g:ķJ8šUÅ š[XŠ'šˆ;ĢÖ;œ›­·9―’RpŽĘ–äc„ķóPEāņųZgßaBÞ―Ä|AœÃęĨúü™PēXž)#ŸNŲV$\Ž ÅqŠˆ^)ūŊ3ē;gŠ&EÞaąĨ@fé“l)°šýŽĮ\HLn-m c™’ŅOaq&<FíWLĖÜÕl&ŨŊŲīũMúþ:S‰ l=@1æŨ{ņįe‹=O­%‚ŪR§îmmå.‘ĸŲicnV��� Bþ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer.pro�����������������������������������������������0000664�0000000�0000000�00000004731�12262477515�0023020�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������TEMPLATE = app CONFIG += link_prl \ link_pkgconfig PKGCONFIG += libusb-1.0 TARGET = qhimdtransfer DEPENDPATH += . INCLUDEPATH += . # for Qt5 compatibility QT += gui core greaterThan(QT_MAJOR_VERSION, 4): QT += widgets # determine version number from git VERSION = $$system(sh ../get_version.sh) # !isEmpty(VERSION){ # VERSION = 0.0.1-$${VERSION} # } VERSTR = '\\"$${VERSION}\\"' # place quotes around the version string DEFINES += VER=\"$${VERSTR}\" # create a VER macro containing the version string # determine build date unix:BUILDDATE = $$system(date +%a\\ %m\\/%d\\/%Y) win32:BUILDDATE = $$system(date /T) BDATESTR = '\\"$${BUILDDATE}\\"' # place quotes around the build date string DEFINES += BDATE=\"$${BDATESTR}\" # create a BDATE macro containing the build date string # language logic heavily inspired by Qt Creator's # share/qtcreator/translations/translations.pro include(util.pri) LANGUAGES = de \ nb \ sv \ fr \ pt \ pl \ ru \ it \ ja \ fi \ ar \ el \ da \ tr \ es \ nl \ cs \ uk TRANSLATIONS = $$bracketAll(LANGUAGES, qhimdtransfer_,.ts) include(translate.pri) # Input HEADERS += qhimdaboutdialog.h \ qhimdformatdialog.h \ qhimduploaddialog.h \ qhimdmainwindow.h \ qhimddetection.h \ qmdmodel.h \ qmdtrack.h \ qmddevice.h FORMS += qhimdaboutdialog.ui \ qhimdformatdialog.ui \ qhimduploaddialog.ui \ qhimdmainwindow.ui SOURCES += main.cpp \ qhimdaboutdialog.cpp \ qhimdformatdialog.cpp \ qhimduploaddialog.cpp \ qhimdmainwindow.cpp \ qhimddetection.cpp \ qmdmodel.cpp \ qmdtrack.cpp \ qmddevice.cpp win32:SOURCES += qhimdwindetection.cpp else:SOURCES += qhimddummydetection.cpp RESOURCES += icons.qrc PKGCONFIG += sox \ taglib win32:LIBS += -lsetupapi \ -lcfgmgr32 win32:RC_FILE = qhimdtransfer.rc mac:ICON = qhimdtransfer.icns # Mixed case version of the target name for operating systems on which # this is convention. win32:TARGET = QHiMDTransfer mac:TARGET = QHiMDTransfer include(../libhimd/use_libhimd.pri) include(../libnetmd/use_libnetmd.prl) # Installing stuff translations.files = $$bracketAll(LANGUAGES, qhimdtransfer_,.qm) unix: { INSTALLS += translations HACK = $$system(lrelease $$TRANSLATIONS) macx:translations.path = QHiMDTransfer.app/Contents/Resources/translations !macx:translations.path = /usr/share/qhimdtransfer/translations } unix:!macx { target.path = /usr/bin INSTALLS += target } ���������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer.rc������������������������������������������������0000664�0000000�0000000�00000000112�12262477515�0022611�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ IDI_ICON1 ICON DISCARDABLE "icons/qhimdtransfer.ico"������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_ar.ts���������������������������������������������0000664�0000000�0000000�00000026071�12262477515�0023331�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="ar" sourcelanguage="en"> <context> <name>QHiMDAboutDialog</name> <message> <source>About QHiMDTransfer</source> <translation>ØđŲ† QHIMDTransfer</translation> </message> <message> <source><h1>About QHiMDTransfer</h1></source> <translation type="obsolete"><h1>ØđŲ† QHIMDTransfer<h1></translation> </message> <message> <source><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>A free music transfer software for MiniDisc walkman.</p> <p><p> <p>Brought to you by the linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></source> <translation><h3>QHiMDTransfer, Ø§Ų„ØĨØĩØŊØ§Øą 0.0.1</h3> <p><p> <p>ØĻØąŲ†Ø§Ų…ØŽ Ų…ØŽØ§Ų†Ų‰ Ų„Ų†Ų‚Ų„ Ø§Ų„Ų…ŲˆØģŲŠŲ‚Ų‰ Ų„Ų„ØĢØŽŲ‡ØēØĐ Ø§Ų„Ų†Ų‚Ø§Ų„ØĐ</p> <p><p> <p>ØĢØĩØŊØąŲ‡ ØĨŲ„ŲŠŲƒŲ… Ų…ØīØąŲˆØđ linux-minidisc:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>Ų‡Ø°Ø§ Ø§Ų„ØĻØąŲ†Ø§Ų…ØŽ Ų…ØšØ·Ų‰ ØĻØąØŪØĩØĐ GNU GPL v2. ØĢŲ†ØļØą Ø§Ų„Ų…Ų„Ų LICENSE Ų„Ų„Ų…Øē؊ØŊ Ų…Ų† Ø§Ų„Ų…ØđŲ„ŲˆŲ…Ø§ØŠ.</p></translation> </message> <message> <source>&Close</source> <translation>ØšŲ„Ų‚ )C&(</translation> </message> <message> <source>About</source> <translation>ØđŲ† Ø§Ų„ØĻØąŲ†Ø§Ų…ØŽ</translation> </message> <message> <source>Contributors</source> <translation>Ø§Ų„Ų…ØģØ§Ų‡Ų…ŲˆŲ†</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <source>Format Medium</source> <translation>ØŠŲ‡ŲŠØĶØĐ Ø§Ų„ŲˆØģØ·</translation> </message> <message> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>Ų‡Ų„ ØĢŲ†ØŠ ŲˆØ§ØŦŲ‚ (ØģØŠŲŲ‚ØŊ ŲƒŲ„ Ø§Ų„ØĻŲŠØ§Ų†Ø§ØŠ) ؟</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <source>Error opening file for MP3 output</source> <translation>ØŪØ·ØĢ ؁؉ ŲØŠØ­ Ø§Ų„Ų…Ų„Ų Ų„ŲƒØŠØ§ØĻØĐ ØĻŲŠØ§Ų†Ø§ØŠ Ø§Ų„ØĩŲˆØŠ</translation> </message> <message> <source>Error opening track: </source> <translation>â€ŦØŪØ·ØĢ ؁؉ ŲØŠØ­ Ø§Ų„Ų…Ų„Ų Ø§Ų„ØĩŲˆØŠŲ‰:</translation> </message> <message> <source>Error writing audio data</source> <translation>â€ŦØŪØ·ØĢ ؁؉ ŲƒØŠØ§ØĻØĐ ØĻŲŠØ§Ų†Ø§ØŠ Ø§Ų„ØĩŲˆØŠ</translation> </message> <message> <source>upload aborted by the user</source> <translation>ØŠŲ… ØĨŲ„ØšØ§ØĄ Ø§Ų„ØąŲØđ ØĻŲˆØ§ØģØ·ØĐ Ø§Ų„Ų…ØģØŠØŪØŊŲ…</translation> </message> <message> <source>Error reading audio data: </source> <translation>â€ŦØŪØ·ØĢ ؁؉ Ų‚ØąØ§ØĄØĐ ØĻŲŠØ§Ų†Ø§ØŠ Ø§Ų„ØĩŲˆØŠ:</translation> </message> <message> <source>Error opening file for ATRAC output</source> <translation>ATRAC ØŪØ·ØĢ ؁؉ ŲØŠØ­ Ø§Ų„Ų…Ų„Ų Ų„ŲƒØŠØ§ØĻØĐ </translation> </message> <message> <source>Error writing header</source> <translation>â€ŦØŪØ·ØĢ ؁؉ Ų‚ØąØ§ØĄØĐ ØąØĢØģ Ø§Ų„ØĻŲŠØ§Ų†Ø§ØŠ</translation> </message> <message> <source>Error opening file for WAV output</source> <translation>WAV ØŪØ·ØĢ ؁؉ ŲØŠØ­ Ø§Ų„Ų…Ų„Ų Ų„ŲƒØŠØ§ØĻØĐ </translation> </message> <message> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>ØŪØ·ØĢ ؁؉ ŲƒØŠØ§ØĻØĐ Ø§Ų„ØĻŲŠØ§Ų†Ø§ØŠ â€Ūâ€ŦØŠØĢ؃ØŊ Ų…Ų† اØŪØŠŲŠØ§Øą Ø§Ų„Ø­Ø§ŲØļØĐ Ø§Ų„ØąØĶ؊Øģ؊ØĐ ؁؉ Ø§Ų„ØŽŲ‡Ø§Øē Ø§Ų„Ų†Ų‚Ø§Ų„ Ø§Ų„ØŪاØĩ ØĻ؃.</translation> </message> <message> <source>Track %1</source> <translation>Ø§Ų„Ų…Ų„Ų %1</translation> </message> <message> <source>upload disabled because of DRM encryption</source> <translation>ØŠŲ… ØĨŲŠŲ‚Ø§Ų Ų‚Ø§ØĻŲ„ŲŠØĐ Ø§Ų„ØŠØ­Ų…ŲŠŲ„ ØĻØģØĻØĻ ØŠØīŲŲŠØą ‏
DRM</translation> </message> <message> <source>Select MP3s for download</source> <translation>اØŪØŠØą Ø§Ų„Ų…Ų„ŲØ§ØŠ Ø§Ų„ØĩŲˆØŠŲŠØĐ Ų„Ų„ØŠØ­Ų…ŲŠŲ„</translation> </message> <message> <source>Select directory for Upload</source> <translation>اØŪØŠØą Ø§Ų„Ø­Ø§ŲØļØĐ Ų„Ų„ØŠØ­Ų…ŲŠŲ„</translation> </message> <message> <source>Select directory of HiMD Medium</source> <translation>اØŪØŠØą Ø§Ų„Ø­Ø§ŲØļØĐ Ų„ŲˆØģØ· HiMD</translation> </message> <message> <source>(disconnected)</source> <translation>(ØšŲŠØą Ų…ØŠØĩŲ„)</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <source>HiMD path</source> <translation>HiMD path</translation> </message> <message> <source>(disconnected)</source> <translation>(ØšŲŠØą Ų…ØŠØĩŲ„)</translation> </message> <message> <source>>></source> <translation type="obsolete">>></translation> </message> <message> <source><<</source> <translation type="obsolete"><<</translation> </message> <message> <source>local directory</source> <translation>Ø­Ø§ŲØļØĐ Ų…Ø­Ų„ŲŠØĐ</translation> </message> <message> <source>/tmp</source> <translation type="obsolete">/tmp</translation> </message> <message> <source>&File</source> <translation>؅؄؁)&F(</translation> </message> <message> <source>&?</source> <translation>&?</translation> </message> <message> <source>&Download tracks onto MD</source> <translation>ØŠØ­Ų…ŲŠŲ„ Ø§Ų„Ų…Ų„ŲØ§ØŠ ØđŲ„Ų‰ 
MD(&D)</translation> </message> <message> <source>&Upload tracks from MD</source> <translation>ØąŲØđ Ø§Ų„Ų…Ų„ŲØ§ØŠ ØđŲ„Ų‰ 
MD(&U)</translation> </message> <message> <source>Re&name</source> <translation>ØĨØđاØŊØĐ ØŠØģŲ…ŲŠØĐ 
(&n)</translation> </message> <message> <source>Rename selected</source> <translation>ØĨØđاØŊØĐ ØŠØģŲ…ŲŠØĐ Ø§Ų„Ø§ØŪØŠŲŠØ§Øąâ€Š</translation> </message> <message> <source>D&elete selected</source> <translation>Ų…ØģØ­ Ø§Ų„Ø§ØŪØŠŲŠØ§Øąâ€Š 
(&D)</translation> </message> <message> <source>&Help</source> <translation>Ų…ØģاØđØŊØĐ 
(&H)</translation> </message> <message> <source>&About</source> <translation>ØđŲ† Ø§Ų„ØĻØąŲ†Ø§Ų…ØŽ 
(&A)</translation> </message> <message> <source>&Format MD</source> <translation>ØŠŲ‡ŲŠØĶØĐ 
MD (&F)</translation> </message> <message> <source>Format MD</source> <translation>ØŠŲ‡ŲŠØĶØĐ 
MD</translation> </message> <message> <source>&Quit</source> <translation>ØŪØąŲˆØŽ 
(&Q)</translation> </message> <message> <source>&Connect</source> <translation>ا؊ØĩØ§Ų„ 
(&C)</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <source>Nr.</source> <translation>ØąŲ‚Ų…</translation> </message> <message> <source>Title</source> <translation>Ø§Ų„Ø§ØģŲ…</translation> </message> <message> <source>Artist</source> <translation>Ø§Ų„ŲŲ†Ø§Ų†</translation> </message> <message> <source>Album</source> <translation>Ø§Ų„ØĢŲ„ØĻŲˆŲ…</translation> </message> <message> <source>Length</source> <translation>Ø§Ų„Ų…ØŊØĐ</translation> </message> <message> <source>Format</source> <translation>ØŠŲ‡ŲŠØĶØĐ</translation> </message> <message> <source>Uploadable</source> <translation>Ų‚Ø§ØĻŲ„ Ų„Ų„ØąŲØđ</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <source>Track upload - QHiMDTransfer</source> <translation>ØąŲØđ ؅؄؁ : 
QHiMD Transfer</translation> </message> <message> <source>please wait while uploading XX track(s)</source> <translation>ØąØŽØ§ØĄ Ø§Ų„Ø§Ų†ØŠØļØ§Øą Ø­ØŠŲ‰ ŲŠØŠŲ… ØŠØ­Ų…ŲŠŲ„ xx ؅؄؁</translation> </message> <message> <source>overall progress</source> <translation>ØŠŲ…</translation> </message> <message> <source>current track: trknum - filename</source> <translation>Ø§Ų„Ų…Ų„Ų Ø§Ų„Ø­Ø§Ų„Ų‰: ØąŲ‚Ų… - اØģŲ… Ø§Ų„Ų…Ų„Ų</translation> </message> <message> <source>xx track(s) successfully uploaded</source> <translation>â€Ŧxx ؅؄؁ ØŠŲ… ØŠØ­Ų…ŲŠŲ„Ų‡Ø§</translation> </message> <message> <source>xx track(s) could not be uploaded</source> <translation>â€Ŧxx ؅؄؁ Ų„Ų… ŲŠØŠŲ… ØŠØ­Ų…ŲŠŲ„Ų‡Ø§</translation> </message> <message> <source>Show Details</source> <translation>اØļŲ‡Øą Ø§Ų„ØŠŲØ§ØĩŲŠŲ„</translation> </message> <message> <source>Cancel</source> <translation>ØĨŲ„ØšØ§ØĄ</translation> </message> <message> <source>Close</source> <translation>ØšŲ„Ų‚</translation> </message> <message> <source>Tracknr.</source> <translation>ØąŲ‚Ų… Ø§Ų„Ų…Ų„Ų</translation> </message> <message> <source>Error message</source> <translation>ØąØģØ§Ų„ØĐ ØĻØ­ØŊ؈ØŦ ØŪØ·ØĢ</translation> </message> <message> <source>%1 track(s) could not be uploaded</source> <translation>%1 ؅؄؁ Ų„Ų… ŲŠŲ…ŲƒŲ† ØŠØ­Ų…ŲŠŲ„Ų‡Ø§</translation> </message> <message> <source>Track %1</source> <translation>؅؄؁ %1</translation> </message> <message> <source>%1 track(s) successfully uploaded</source> <translation>%1 ؅؄؁ Ų†Ų… ØŠØ­Ų…ŲŠŲ„Ų‡Ø§</translation> </message> <message> <source>upload finished</source> <translation>ØŠŲ… Ø§Ų„ØąŲØđ</translation> </message> <message> <source>current track: %1 - %2</source> <translation>Ø§Ų„Ų…Ų„Ų Ø§Ų„Ø­Ø§Ų„Ų‰: %1-%2</translation> </message> <message> <source>no tracks selected</source> <translation>Ų„Ų… ŲŠØŠŲ… ØĨØŪØŠŲŠØ§Øą ØĢŲ‰ ؅؄؁</translation> </message> <message> <source>please wait while uploading %1 track(s)</source> <translation>ØąØŽØ§ØĄ Ø§Ų„Ø§Ų†ØŠØļØ§Øą Ø­ØŠŲ‰ ŲŠØŠŲ… ØŠØ­Ų…ŲŠŲ„ %1 ؅؄؁</translation> </message> <message> <source>upload aborted by the user</source> <translation>ØŠŲ… ØĨŲ„ØšØ§ØĄ Ø§Ų„ØąŲØđ ØĻŲˆØ§ØģØ·ØĐ Ø§Ų„Ų…ØģØŠØŪØŊŲ…</translation> </message> </context> </TS> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_cs.ts���������������������������������������������0000664�0000000�0000000�00000043244�12262477515�0023335�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="cs_CZ"> <context> <name>QHiMDAboutDialog</name> <message> <location filename="qhimdaboutdialog.ui" line="35"/> <location filename="ui_qhimdaboutdialog.h" line="178"/> <source>About QHiMDTransfer</source> <translation>O programu QHiMDTransfer</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="57"/> <location filename="ui_qhimdaboutdialog.h" line="185"/> <source>About</source> <translation>O programu</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="85"/> <location filename="ui_qhimdaboutdialog.h" line="179"/> <source>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</source> <translation>SvobodnÃ― software na přenos hudby pro MiniDisc walkman. Poskytuje vÃĄm ho projekt linux-minidisc:</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="100"/> <location filename="ui_qhimdaboutdialog.h" line="182"/> <source>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</source> <translation>Tento software je zveřejněn pod licencí GNU GPL verze 2. Více informací je uvedeno v souboru LICENSE ve sloÅūce programu.</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="204"/> <location filename="ui_qhimdaboutdialog.h" line="188"/> <source>Version:</source> <translation>Verze:</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="223"/> <location filename="ui_qhimdaboutdialog.h" line="189"/> <source>Build Date:</source> <translation>Datum sestavení:</translation> </message> <message> <source><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>A free music transfer software for MiniDisc walkman.</p> <p><p> <p>Brought to you by the linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></source> <translatorcomment>LICENSE => LICENCE (if would be also czech variant)</translatorcomment> <translation type="obsolete"><h3>QHiMDTransfer, verze 0.0.1</h3> <p><p> <p>SvobodnÃ― software na přenos hudby pro MiniDisc walkman.</p> <p><p> <p>Poskytuje vÃĄm ho projekt linux-minidisc:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>Tento software je zveřejněn pod licencí GNU GPL verze 2. Více informací je uvedeno v souboru LICENSE ve sloÅūce programu.</p></translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="108"/> <location filename="ui_qhimdaboutdialog.h" line="186"/> <source>Contributors</source> <translation>PřispěvatelÃĐ</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="166"/> <location filename="ui_qhimdaboutdialog.h" line="187"/> <source>&Close</source> <translation>&Zavřít</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <location filename="qhimdformatdialog.ui" line="14"/> <location filename="ui_qhimdformatdialog.h" line="82"/> <source>Format Medium</source> <translation>FormÃĄtovat mÃĐdium</translation> </message> <message> <location filename="qhimdformatdialog.ui" line="41"/> <location filename="ui_qhimdformatdialog.h" line="84"/> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>Opravdu si přejete naformÃĄtovat MiniDisc (vÅĄechny skladby i data budou ztraceny)?</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <location filename="qhimdmainwindow.cpp" line="22"/> <source>Error opening file for MP3 output</source> <translation>Chyba otevírÃĄní vÃ―stupního souboru MP3</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="27"/> <location filename="qhimdmainwindow.cpp" line="91"/> <location filename="qhimdmainwindow.cpp" line="151"/> <source>Error opening track: </source> <translation>Chyba při otevírÃĄní skladby:</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="33"/> <location filename="qhimdmainwindow.cpp" line="103"/> <location filename="qhimdmainwindow.cpp" line="171"/> <source>Error writing audio data</source> <translation>Chyba zÃĄpisu audio dat</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="40"/> <source>upload aborted by the user</source> <translation>čtení zruÅĄeno uřivatelem</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="46"/> <source>Error reading audio data: </source> <translation>Chyba čtení audio dat:</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="86"/> <source>Error opening file for ATRAC output</source> <translation>Chyba otevírÃĄní vÃ―stupního souboru ATRAC</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="96"/> <source>Error writing header</source> <translation>Chyba zÃĄpisu hlavičky</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="146"/> <source>Error opening file for WAV output</source> <translation>Chyba otevírÃĄní vÃ―stupního souboru WAV</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="303"/> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>Chyba otevírÃĄní HiMD dat. Ujistěte se, zda je vybranÃĄ sprÃĄvnÃĄ sloÅūka připojenÃĐho HiMD walkmanu.</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="338"/> <source>Track %1</source> <translation>Skladba %1</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="365"/> <source>upload disabled because of DRM encryption</source> <translation>Čtení je zakÃĄzÃĄno z dÅŊvodu ochrany DRM</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="415"/> <source>Select MP3s for download</source> <translation>Vyberte MP3 ke staÅūení</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="425"/> <source>Select directory for Upload</source> <translation>Vyberte sloÅūku pro načtenÃĐ skladby</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="457"/> <source>Select directory of HiMD Medium</source> <translation>Vyberte sloÅūku HiMD mÃĐdia</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="536"/> <source>(disconnected)</source> <translation>(odpojeno)</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <location filename="qhimdmainwindow.ui" line="14"/> <location filename="ui_qhimdmainwindow.h" line="284"/> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="38"/> <location filename="ui_qhimdmainwindow.h" line="300"/> <source>HiMD path</source> <translation>HiMD sloÅūka</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="45"/> <location filename="ui_qhimdmainwindow.h" line="301"/> <source>(disconnected)</source> <translation>(odpojeno)</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="138"/> <location filename="ui_qhimdmainwindow.h" line="304"/> <source>local directory</source> <translation>místní sloÅūka</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="176"/> <location filename="ui_qhimdmainwindow.h" line="305"/> <source>&File</source> <translation>&Soubor</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="192"/> <location filename="ui_qhimdmainwindow.h" line="306"/> <source>&?</source> <translation>&?</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="229"/> <location filename="ui_qhimdmainwindow.h" line="285"/> <source>&Download tracks onto MD</source> <translation>&ZÃĄpis skladeb na MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="238"/> <location filename="ui_qhimdmainwindow.h" line="286"/> <source>&Upload tracks from MD</source> <translation>Č&tení skladeb z MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="247"/> <location filename="ui_qhimdmainwindow.h" line="287"/> <source>Re&name</source> <translation>&Přejmenovat</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="250"/> <location filename="ui_qhimdmainwindow.h" line="289"/> <source>Rename selected</source> <translation>Přejmenovat vybranÃĐ</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="259"/> <location filename="ui_qhimdmainwindow.h" line="291"/> <source>D&elete selected</source> <translation>&Vymazat vybranÃĐ</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="268"/> <location filename="ui_qhimdmainwindow.h" line="292"/> <source>&Help</source> <translation>&NÃĄpověda</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="277"/> <location filename="ui_qhimdmainwindow.h" line="293"/> <source>&About</source> <translation>&O aplikaci</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="286"/> <location filename="ui_qhimdmainwindow.h" line="294"/> <source>&Format MD</source> <translation>&FormÃĄtovat MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="289"/> <location filename="ui_qhimdmainwindow.h" line="296"/> <source>Format MD</source> <translation>FormÃĄtovÃĄní MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="298"/> <location filename="ui_qhimdmainwindow.h" line="298"/> <source>&Quit</source> <translation>&Konec</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="307"/> <location filename="ui_qhimdmainwindow.h" line="299"/> <source>&Connect</source> <translation>Přip&ojit</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <location filename="qhimdmodel.cpp" line="149"/> <source>Nr.</source> <translation>Č.</translation> </message> <message> <location filename="qhimdmodel.cpp" line="151"/> <source>Title</source> <translation>NÃĄzev</translation> </message> <message> <location filename="qhimdmodel.cpp" line="153"/> <source>Artist</source> <translation>Interpret</translation> </message> <message> <location filename="qhimdmodel.cpp" line="155"/> <source>Album</source> <translation>Album</translation> </message> <message> <location filename="qhimdmodel.cpp" line="157"/> <source>Length</source> <translation>DÃĐlka</translation> </message> <message> <location filename="qhimdmodel.cpp" line="159"/> <source>Format</source> <translation>FormÃĄt</translation> </message> <message> <location filename="qhimdmodel.cpp" line="161"/> <source>Uploadable</source> <translation>Lze přenÃĐst</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <location filename="qhimduploaddialog.ui" line="14"/> <location filename="ui_qhimduploaddialog.h" line="200"/> <source>Track upload - QHiMDTransfer</source> <translation>Čtení skladeb – QHiMDTransfer</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="55"/> <location filename="ui_qhimduploaddialog.h" line="202"/> <source>please wait while uploading XX track(s)</source> <translation>Čekejte na přečtení XX skladeb</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="69"/> <location filename="ui_qhimduploaddialog.h" line="203"/> <source>overall progress</source> <translation>CelkovÃ― postup</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="93"/> <location filename="ui_qhimduploaddialog.h" line="204"/> <source>current track: trknum - filename</source> <translatorcomment>trknum = číslo skladby; filename = soubor</translatorcomment> <translation>AktuÃĄlní skladba: trknum - filename</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="108"/> <location filename="ui_qhimduploaddialog.h" line="205"/> <source>xx track(s) successfully uploaded</source> <translation>ÚspÄ›ÅĄně načteno skladeb: xx</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="115"/> <location filename="ui_qhimduploaddialog.h" line="206"/> <source>xx track(s) could not be uploaded</source> <translation>Počet skladeb, kterÃĐ nelze přenÃĐst: xx</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="129"/> <location filename="ui_qhimduploaddialog.h" line="207"/> <source>Show Details</source> <translation>Podrobnosti</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="142"/> <location filename="ui_qhimduploaddialog.h" line="208"/> <source>Cancel</source> <translation>ZruÅĄit</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="149"/> <location filename="ui_qhimduploaddialog.h" line="209"/> <source>Close</source> <translation>Zavřít</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="186"/> <location filename="ui_qhimduploaddialog.h" line="212"/> <source>Tracknr.</source> <translation>Číslo skladby</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="191"/> <location filename="ui_qhimduploaddialog.h" line="211"/> <source>Error message</source> <translation>ChybovÃĄ zprÃĄva</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="10"/> <source>%1 track(s) could not be uploaded</source> <translation>Počet skladeb, kterÃĐ nemohly bÃ―t přeneseny: %1</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="15"/> <source>Track %1</source> <translation>Skladba %1</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="28"/> <source>%1 track(s) successfully uploaded</source> <translation>Počet ÚspÄ›ÅĄně přečtenÃ―ch skladeb: %1</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="33"/> <source>upload finished</source> <translation>Čtení dokončeno</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="48"/> <source>current track: %1 - %2</source> <translation>AktuÃĄlní skladba: %1 - %2</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="74"/> <source>no tracks selected</source> <translation>Nebyla vybranÃĄ ÅūÃĄdnÃĄ skladby</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="79"/> <source>please wait while uploading %1 track(s)</source> <translation>Čekejte na přečtení %1 skladeb</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="135"/> <source>upload aborted by the user</source> <translation>Čtení zruÅĄeno uÅūivatelem</translation> </message> </context> </TS> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_da.ts���������������������������������������������0000664�0000000�0000000�00000025372�12262477515�0023316�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="da_DK"> <context> <name>QHiMDAboutDialog</name> <message> <source>About QHiMDTransfer</source> <translation>Om QHiMDTransfer</translation> </message> <message> <source><h1>About QHiMDTransfer</h1></source> <translation type="obsolete"><h1>Om QHiMDTransfer </h1></translation> </message> <message> <source><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>A free music transfer software for MiniDisc walkman.</p> <p><p> <p>Brought to you by the linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></source> <translation type="obsolete"><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>En gratis musik overfÃļringssoftware til MiniDisc walkman.</p> <p><p> <p>Lavet af linux-minidisc projektet:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>Denne software hÃļrer under GNU GPL v2 licensen. LÃĶs file LICENSE i programfolderen for mere info.</p></translation> </message> <message> <source>&Close</source> <translation>&áļķuk</translation> </message> <message> <source>About</source> <translation>Om</translation> </message> <message> <source>Contributors</source> <translation>Bidragydere</translation> </message> <message> <source>Version:</source> <translation>Version:</translation> </message> <message> <source>Build Date:</source> <translation>Lavet pÃĨ:</translation> </message> <message> <source>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</source> <translation>En gratis musik overfÃļringssoftware til MiniDisc walkman. Lavet af linux-minidisc projektet:</translation> </message> <message> <source>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</source> <translation>Denne software hÃļrer under GNU GPL v2 licensen. LÃĶs file LICENSE i programfolderen for mere info.</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <source>Format Medium</source> <translation>FormatÃĐr medie</translation> </message> <message> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>Er du sikker pÃĨ, at du vil formatere (alle lydspor og data vil blive slettet) ?</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <source>Error opening file for MP3 output</source> <translation>Fejl: Kan ikke ÃĨbne fil for MP3 uddata</translation> </message> <message> <source>Error opening track: </source> <translation>Fejl: kunne ikke ÃĨbne filen:</translation> </message> <message> <source>Error writing audio data</source> <translation>Fejl: kunne ikke skrive audio data</translation> </message> <message> <source>upload aborted by the user</source> <translation>OverfÃļrsel avbrudt af bruger</translation> </message> <message> <source>Error reading audio data: </source> <translation>Fejl: kunne ikke lÃĶse audio data:</translation> </message> <message> <source>Error opening file for ATRAC output</source> <translation>Fejl: Kan ikke ÃĨbne fil for ATRAC uddata</translation> </message> <message> <source>Error writing header</source> <translation>Fejl, kunne ikke skrive header</translation> </message> <message> <source>Error opening file for WAV output</source> <translation>Fejl: Kan ikke ÃĨbne fil for WAV uddata</translation> </message> <message> <source>Select MP3s for download</source> <translation>VÃĶlg MP3 filer du vil hente</translation> </message> <message> <source>Select directory for Upload</source> <translation>VÃĶlg en mappe du vil sende til</translation> </message> <message> <source>Track %1</source> <translation>Spor %1</translation> </message> <message> <source>upload disabled because of DRM encryption</source> <translation>Kunne ikke sendes pÃĨ grund af DRM kryptering</translation> </message> <message> <source>Select directory of HiMD Medium</source> <translation>VÃĶlg destination for HiMD Medie</translation> </message> <message> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>Fejl: kunne ikke ÃĨbne HIMD data. KontrollÃĐr at du har valgt den rette destination for din HIMD Walkman. </translation> </message> <message> <source>(disconnected)</source> <translation>(ikke forbundet)</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <source>&File</source> <translation>&Fil</translation> </message> <message> <source>&?</source> <translation>&?</translation> </message> <message> <source>&Download tracks onto MD</source> <translation>&áļĪent lydspor til din MD</translation> </message> <message> <source>&Upload tracks from MD</source> <translation>&áđĒend lydspor fra din MD</translation> </message> <message> <source>Re&name</source> <translation>&áŧŒmdÃļb</translation> </message> <message> <source>Rename selected</source> <translation>OmdÃļb valgte</translation> </message> <message> <source>D&elete selected</source> <translation>&áđĒlet valgte</translation> </message> <message> <source>&Help</source> <translation>&HjÃĶlp</translation> </message> <message> <source>&About</source> <translation>&Om</translation> </message> <message> <source>&Format MD</source> <translation>&FormatÃĐr MD</translation> </message> <message> <source>Format MD</source> <translation>FormatÃĐr MD</translation> </message> <message> <source>&Quit</source> <translation>&áļķuk</translation> </message> <message> <source>&Connect</source> <translation>&Forbind</translation> </message> <message> <source>HiMD path</source> <translation>HiMD sti</translation> </message> <message> <source>(disconnected)</source> <translation>(ikke forbundet)</translation> </message> <message> <source>local directory</source> <translation>Lokal mappe</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <source>Nr.</source> <translation>Nr.</translation> </message> <message> <source>Title</source> <translation>Titel</translation> </message> <message> <source>Artist</source> <translation>Kunstner</translation> </message> <message> <source>Album</source> <translation>Album</translation> </message> <message> <source>Length</source> <translation>LÃĶngde</translation> </message> <message> <source>Format</source> <translation>Format</translation> </message> <message> <source>Uploadable</source> <translation>Kan overfÃļres</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <source>%1 track(s) could not be uploaded</source> <translation>%1 spor kunne ikke sendes</translation> </message> <message> <source>Track %1</source> <translation>Spor %1</translation> </message> <message> <source>%1 track(s) successfully uploaded</source> <translation>%1 spor blev sendt</translation> </message> <message> <source>upload finished</source> <translation>overfÃļrsel afsluttet</translation> </message> <message> <source>current track: %1 - %2</source> <translation>nuvÃĶrende spor: %1 - %2</translation> </message> <message> <source>no tracks selected</source> <translation>Ingen valgte spor</translation> </message> <message> <source>please wait while uploading %1 track(s)</source> <translation>Vent venligst mens %1 spor bliver sendt</translation> </message> <message> <source>upload aborted by the user</source> <translation>OverfÃļrsel afbrudt af bruger</translation> </message> <message> <source>Track upload - QHiMDTransfer</source> <translation>Send lydspor - QHiMDTransfer</translation> </message> <message> <source>please wait while uploading XX track(s)</source> <translation>sender XX spor, vent venligst</translation> </message> <message> <source>overall progress</source> <translation>samlet fremgang</translation> </message> <message> <source>current track: trknum - filename</source> <translation>nuvÃĶrende spor: trknum - filnavn</translation> </message> <message> <source>xx track(s) successfully uploaded</source> <translation>xx spor blev sendt</translation> </message> <message> <source>xx track(s) could not be uploaded</source> <translation>xx spor kunne ikke sendes</translation> </message> <message> <source>Show Details</source> <translation>Vis Detaljer</translation> </message> <message> <source>Cancel</source> <translation>AnnulÃĐr</translation> </message> <message> <source>Close</source> <translation>Luk</translation> </message> <message> <source>Tracknr.</source> <translation>Spornr.</translation> </message> <message> <source>Error message</source> <translation>Fejl besked</translation> </message> </context> </TS> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_de.ts���������������������������������������������0000664�0000000�0000000�00000026357�12262477515�0023326�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="de_DE"> <context> <name>QHiMDAboutDialog</name> <message> <source>About QHiMDTransfer</source> <translation>Über QHiMDTransfer</translation> </message> <message> <source><h1>About QHiMDTransfer</h1></source> <translation type="obsolete"><h1>Über QHiMDTransfer</h1></translation> </message> <message> <source><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>A free music transfer software for MiniDisc walkman.</p> <p><p> <p>Brought to you by the linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></source> <translation type="obsolete"><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>Eine freie Transfersoftware fÞr MiniDisc Walkman.</p> <p><p> <p>Diese Software entstand im linux-minidisc Projekt:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>Diese Software unterliegt der GNU GPL v2 Lizenz. Lesen sie die Datei LICENSE im Programmverzeichnis fÞr mehr Infos.</p></translation> </message> <message> <source>&Close</source> <translation>&Schliessen</translation> </message> <message> <source>About</source> <translation>Über</translation> </message> <message> <source>Contributors</source> <translation>Mitwirkende</translation> </message> <message> <source>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</source> <translation>Eine freie Transfersoftware fÞr MiniDisc Walkman. Diese Software entstand im linux-minidisc- Projekt:</translation> </message> <message> <source>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</source> <translation>Diese Software unterliegt der GNU GPLv2-Lizenz. Lesen sie die Datei LICENSE im Programmver- zeichnis fÞr mehr Infos.</translation> </message> <message> <source>Version:</source> <translation>Version:</translation> </message> <message> <source>Build Date:</source> <translation>Erstellt am:</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <source>Format Medium</source> <translation>Medium formatieren</translation> </message> <message> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>Medium wirklich formatieren?</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <source>Track %1</source> <translation>Titel %1</translation> </message> <message> <source>upload disabled because of DRM encryption</source> <translation>Hochladen wegen VerschlÞsselung unmÃķglich</translation> </message> <message> <source>Error opening file for MP3 output</source> <translation>Fehler beim Öffnen der MP3-Ausgabedatei</translation> </message> <message> <source>Error opening track: </source> <translation>Fehler beim Ãķffnen des Titels: </translation> </message> <message> <source>Error writing audio data</source> <translation>Fehler beim Schreiben der Audiodaten</translation> </message> <message> <source>upload aborted by the user</source> <translation>Hochladen abgebrochen</translation> </message> <message> <source>Error reading audio data: </source> <translation>Fehler beim Lesen der Audiodaten: </translation> </message> <message> <source>Error opening file for ATRAC output</source> <translation>Fehler beim Öffnen der ATRAC-Ausgabedatei</translation> </message> <message> <source>Error writing header</source> <translation>Fehler beim Schreiben des Headers</translation> </message> <message> <source>Error opening file for WAV output</source> <translation>Fehler beim Öffnen der WAV-Ausgabedatei</translation> </message> <message> <source>Select MP3s for download</source> <translation>MP3s zum Runterladen wÃĪhlen</translation> </message> <message> <source>Select directory for Upload</source> <translation>Verzeichnis zum Hochladen wÃĪhlen</translation> </message> <message> <source>Select directory of HiMD Medium</source> <translation>Verzeichnis des HiMD-Mediums wÃĪhlen</translation> </message> <message> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>Fehler beim Öffnen der HiMD-Daten. Stellen Sie sicher dass sie das korrekte Hauptverzeichnis des HiMD-Walkman gewÃĪhlt haben.</translation> </message> <message> <source>(disconnected)</source> <translation>(nicht verbunden)</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <source>&File</source> <translation>&Datei</translation> </message> <message> <source>&?</source> <translation>&?</translation> </message> <message> <source>&Download tracks onto MD</source> <translation>Kopiere Titel &auf MD</translation> </message> <message> <source>&Upload tracks from MD</source> <translation>Kopiere Titel &von MD</translation> </message> <message> <source>Re&name</source> <translation>&Umbenennen</translation> </message> <message> <source>Rename selected</source> <translation>Auswahl umbenennen</translation> </message> <message> <source>D&elete selected</source> <translation>Auswahl &lÃķschen</translation> </message> <message> <source>&Help</source> <translation>&Hilfe</translation> </message> <message> <source>&About</source> <translation>&Über</translation> </message> <message> <source>&Format MD</source> <translation>&Formatiere MD</translation> </message> <message> <source>Format MD</source> <translation>Formatiert die MD</translation> </message> <message> <source>&Quit</source> <translation>&Beenden</translation> </message> <message> <source>&Connect</source> <translation>&Verbinden</translation> </message> <message> <source>HiMD path</source> <translation>HiMD-Pfad</translation> </message> <message> <source>(disconnected)</source> <translation>(nicht verbunden)</translation> </message> <message> <source>>></source> <translation type="obsolete">>></translation> </message> <message> <source><<</source> <translation type="obsolete"><<</translation> </message> <message> <source>local directory</source> <translation>Lokales Verzeichnis</translation> </message> <message> <source>/tmp</source> <translation type="obsolete">/tmp</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <source>Title</source> <translation>Titel</translation> </message> <message> <source>Artist</source> <translation>Interpret</translation> </message> <message> <source>Album</source> <translation>Album</translation> </message> <message> <source>Length</source> <translation>LÃĪnge</translation> </message> <message> <source>Uploadable</source> <translation>Hochladbar</translation> </message> <message> <source>Format</source> <translation>Format</translation> </message> <message> <source>Nr.</source> <translation>Nr.</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <source>upload finished</source> <translation>Upload beendet</translation> </message> <message> <source>%1 track(s) successfully uploaded</source> <translation>%1 Titel erfolgreich hochgeladen</translation> </message> <message> <source>%1 track(s) could not be uploaded</source> <translation>%1 Titel konnten nicht hochgeladen werden</translation> </message> <message> <source>Track %1</source> <translation>Titel %1</translation> </message> <message> <source>current track: %1 - %2</source> <translation>aktueller Titel: %1 - %2</translation> </message> <message> <source>no tracks selected</source> <translation>es wurden keine Titel ausgewÃĪhlt</translation> </message> <message> <source>please wait while uploading %1 track(s)</source> <translation>bitte warten, lade %1 Titel hoch</translation> </message> <message> <source>Track upload - QHiMDTransfer</source> <translation>Titel Upload - QHiMDTransfer</translation> </message> <message> <source>please wait while uploading XX track(s)</source> <translation>bitte warten, lade XX Titel hoch</translation> </message> <message> <source>overall progress</source> <translation>Gesamtfortschritt</translation> </message> <message> <source>current track: trknum - filename</source> <translation>aktueller Titel: trknum - filename</translation> </message> <message> <source>xx track(s) successfully uploaded</source> <translation>xx Titel erfolgreich hochgeladen</translation> </message> <message> <source>xx track(s) could not be uploaded</source> <translation>xx Titel konnten nicht hochgeladen werden</translation> </message> <message> <source>Show Details</source> <translation>Zeige Details</translation> </message> <message> <source>Cancel</source> <translation>Abbrechen</translation> </message> <message> <source>Close</source> <translation>Schliessen</translation> </message> <message> <source>Tracknr.</source> <translation>Titelnr.</translation> </message> <message> <source>Error message</source> <translation>Fehlermeldung</translation> </message> <message> <source>upload aborted by the user</source> <translation>Hochladen abgebrochen</translation> </message> </context> </TS> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_el.ts���������������������������������������������0000664�0000000�0000000�00000032175�12262477515�0023331�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="el_GR" sourcelanguage="en"> <context> <name>QHiMDAboutDialog</name> <message> <source>About QHiMDTransfer</source> <translation>ÎĢχÎĩτÎđΚΎ ΞÎĩ QHiMDTransfer</translation> </message> <message> <source><h1>About QHiMDTransfer</h1></source> <translation type="obsolete"><h1>ÎĢχÎĩτÎđΚΎ ΞÎĩ QHiMDTransfer</h1></translation> </message> <message> <source><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>A free music transfer software for MiniDisc walkman.</p> <p><p> <p>Brought to you by the linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></source> <translation type="obsolete"><h3>QHiMDTransfer, ΈΚÎīÎŋση 0.0.1</h3> <p><p> <p>ΕÎŊÎ―ÎąÎđ Î­Î―Îą ÎĩÎŧÎĩυÎļÎĩρÎŋ ÎŧÎŋÎģÎđσΞÎđΚό ΞÎĩÏ„ÎąÏ†ÎŋρΎς ΞÎŋυσÎđΚÎŪς ÎģÎđÎą MiniDisc walkman.</p> <p><p> <p>Από τÎŋ πρότÎķÎĩΚτ linux-minidisc:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>Αυτό τÎŋ πρόÎģÏÎąÎžÎžÎą ΚιÎŧύπτÎĩÏ„ÎąÎđ ÎąÏ€ÏŒ Ï„Î·Î― ÎŽÎīÎĩÎđÎą GNU GPL v2. ΓÎđÎą πÎĩρÎđσσότÎĩρÎĩς πÎŧηρÎŋφÎŋρÎŊÎĩς ÎīÎĩÎŊτÎĩ τÎŋ ÎąÏÏ‡ÎĩÎŊÎŋ LICENSE στÎŋÎ― φΎΚÎĩÎŧÎŋ τÎŋυ πρÎŋÎģÏÎŽÎžÎžÎąÏ„Îŋς.</p></translation> </message> <message> <source>&Close</source> <translation>&ΚÎŧÎĩÎŊσÎđΞÎŋ</translation> </message> <message> <source>About</source> <translation>ÎĢχÎĩτÎđΚΎ</translation> </message> <message> <source>Contributors</source> <translation>ÎĢÏ…Î―ÎĩÎđσφέρÎŋÎ―Ï„Îĩς</translation> </message> <message> <source>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</source> <translation>ΕÎŊÎ―ÎąÎđ Î­Î―Îą ÎĩÎŧÎĩυÎļÎĩρÎŋ ÎŧÎŋÎģÎđσΞÎđΚό ΞÎĩÏ„ÎąÏ†ÎŋρΎς ΞÎŋυσÎđΚÎŪς ÎģÎđÎą MiniDisc walkman. Από τÎŋ πρότÎķÎĩΚτ linux-minidisc:</translation> </message> <message> <source>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</source> <translation>Αυτό τÎŋ πρόÎģÏÎąÎžÎžÎą ΚιÎŧύπτÎĩÏ„ÎąÎđ ÎąÏ€ÏŒ Ï„Î·Î― ÎŽÎīÎĩÎđÎą GNU GPL v2. ΓÎđÎą πÎĩρÎđσσότÎĩρÎĩς πÎŧηρÎŋφÎŋρÎŊÎĩς ÎīÎĩÎŊτÎĩ τÎŋ ÎąÏÏ‡ÎĩÎŊÎŋ LICENSE στÎŋÎ― φΎΚÎĩÎŧÎŋ τÎŋυ πρÎŋÎģÏÎŽÎžÎžÎąÏ„Îŋς.</translation> </message> <message> <source>Version:</source> <translation>ΈΚÎīÎŋση:</translation> </message> <message> <source>Build Date:</source> <translation>ÎŋÎđΚÎŋÎīÎŋΞÎŪσÎŋυΞÎĩ ηΞÎĩρÎŋÎžÎ·Î―ÎŊÎą:</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <source>Format Medium</source> <translation>ΔÎđÎąÎžÏŒÏÏ†Ï‰ÏƒÎ· MiniDisk</translation> </message> <message> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>ΕÎŊστÎĩ σÎŊÎģÎŋυρÎŋÎđ ÎģÎđÎą Ï„Î·Î― ÎīÎđÎąÎžÏŒÏÏ†Ï‰ÏƒÎ· τÎŋυ MiniDisk (όÎŧÎą Ï„Îą ÎąÏÏ‡ÎĩÎŊÎą ÎŪχÎŋυ ΚιÎđ Ï„Îą ÎīÎĩÎīÎŋÎžÎ­Î―Îą ÎļÎą Ï‡ÎąÎļÎŋÏÎ―) ;</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <source>Error opening file for MP3 output</source> <translation>ÎĢφΎÎŧΞι ÎąÎ―ÎŋÎŊÎģÎžÎąÏ„Îŋς τÎŋυ ÎąÏÏ‡ÎĩÎŊÎŋυ ÎģÎđÎą Ï„Î·Î― έÎūÎŋÎīÎŋ MP3</translation> </message> <message> <source>Error opening track: </source> <translation>ÎĢφΎÎŧΞι στÎŋ ÎŽÎ―ÎŋÎđÎģΞι τÎŋυ ΚÎŋÎžÎžÎąÏ„ÎđÎŋύ:</translation> </message> <message> <source>Error writing audio data</source> <translation>ÎĢφΎÎŧΞι ÏƒÏ„Î·Î― ÎĩÎģÎģÏÎąÏ†ÎŪ ÎīÎĩÎīÎŋÎžÎ­Î―Ï‰Î― ÎŪχÎŋυ</translation> </message> <message> <source>upload aborted by the user</source> <translation>ÎĪÎŋ ÎąÎ―Î­ÎēÎąÏƒÎžÎą ÎīÎđÎąÎšÏŒÏ€Î·ÎšÎĩ ÎąÏ€ÏŒ τÎŋÎ― χρÎŪστη</translation> </message> <message> <source>Error reading audio data: </source> <translation>ÎĢφΎÎŧΞι στÎŋ ÎīÎđÎŽÎēÎąÏƒÎžÎą ÎīÎĩÎīÎŋÎžÎ­Î―Ï‰Î― ÎŪχÎŋυ:</translation> </message> <message> <source>Error opening file for ATRAC output</source> <translation>ÎĢφΎÎŧΞι ÎąÎ―ÎŋÎŊÎģÎžÎąÏ„Îŋς τÎŋυ ÎąÏÏ‡ÎĩÎŊÎŋυ ÎģÎđÎą Ï„Î·Î― έÎūÎŋÎīÎŋ ATRAC</translation> </message> <message> <source>Error writing header</source> <translation>ÎĢφΎÎŧΞι ÎĩÎģÎģÏÎąÏ†ÎŪς ÏƒÏ„Î·Î― ÎĩπÎđΚÎĩÏ†ÎąÎŧÎŊÎīÎą</translation> </message> <message> <source>Error opening file for WAV output</source> <translation>ÎĢφΎÎŧΞι ÎąÎ―ÎŋÎŊÎģÎžÎąÏ„Îŋς τÎŋυ ÎąÏÏ‡ÎĩÎŊÎŋυ ÎģÎđÎą Ï„Î·Î― έÎūÎŋÎīÎŋ WAV</translation> </message> <message> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>ÎĢφΎÎŧΞι στÎŋ ÎŽÎ―ÎŋÎđÎģΞι Ï„Ï‰Î― HiMD ÎīÎĩÎīÎŋÎžÎ­Î―Ï‰Î―. ÎĢÎđÎģÎŋυρÎĩυτÎĩÎŊτÎĩ ÎŋτÎđ ÎĩπÎđÎŧέÎūÎąÏ„Îĩ τÎŋÎ― ÎšÎąÏ„ÎŽÎŧÎŧηÎŧÎŋ ρÎđÎķÎđΚό ÎšÎąÏ„ÎŽÎŧÎŋÎģÎŋ ÎąÏ€ÏŒ τÎŋ HiMD-Walkman.</translation> </message> <message> <source>Track %1</source> <translation>ΚÎŋΞΞΎτÎđ %1</translation> </message> <message> <source>upload disabled because of DRM encryption</source> <translation>τÎŋ ÎąÎ―Î­ÎēÎąÏƒÎžÎą ÎąÏ€ÎĩÎ―ÎĩρÎģÎŋπÎŋÎđÎŪÎļηΚÎĩ ÎĩÎūÎąÎđτÎŊÎąÏ‚ της ΚρυπτÎŋÎģρΎφησης DRM</translation> </message> <message> <source>Select MP3s for download</source> <translation>ΕπÎđÎŧέÎūτÎĩ MP3s ÎģÎđÎą ÎšÎąÏ„Î­ÎēÎąÏƒÎžÎą</translation> </message> <message> <source>Select directory for Upload</source> <translation>ΕπÎđÎŧέÎūτÎĩ ÎšÎąÏ„ÎŽÎŧÎŋÎģÎŋ ÎģÎđÎą Î‘Î―Î­ÎēÎąÏƒÎžÎą</translation> </message> <message> <source>Select directory of HiMD Medium</source> <translation>ΕπÎđÎŧέÎūτÎĩ τÎŋÎ― ÎšÎąÏ„ÎŽÎŧÎŋÎģÎŋ πÎŋυ ÎēρÎŊσΚÎĩÏ„ÎąÎđ τÎŋ HiMD</translation> </message> <message> <source>(disconnected)</source> <translation>(ÎąÏ€ÎŋÏƒÏ…Î―ÎīÎĩÎīÎĩÎžÎ­Î―Îŋς)</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <source>HiMD path</source> <translation>HiMD ÎīÎđÎąÎīρÎŋΞÎŪ</translation> </message> <message> <source>(disconnected)</source> <translation>(ÎąÏ€ÎŋÏƒÏ…Î―ÎīÎĩÎīÎĩÎžÎ­Î―Îŋς)</translation> </message> <message> <source>>></source> <translation type="obsolete">>></translation> </message> <message> <source><<</source> <translation type="obsolete"><<</translation> </message> <message> <source>local directory</source> <translation>TÎŋπÎđΚός ÎšÎąÏ„ÎŽÎŧÎŋÎģÎŋς</translation> </message> <message> <source>/tmp</source> <translation type="obsolete">/tmp</translation> </message> <message> <source>&File</source> <translation>&ΑρχÎĩÎŊÎŋ</translation> </message> <message> <source>&?</source> <translation>&?</translation> </message> <message> <source>&Download tracks onto MD</source> <translation>&ÎšÎąÏ„Î­ÎēÎąÏƒÎžÎą ΚÎŋÎžÎžÎąÏ„ÎđÏŽÎ― στÎŋ MD</translation> </message> <message> <source>&Upload tracks from MD</source> <translation>&Î‘Î―Î­ÎēÎąÏƒÎžÎą ΚÎŋÎžÎžÎąÏ„ÎđÏŽÎ― ÎąÏ€ÏŒ τÎŋ MD</translation> </message> <message> <source>Re&name</source> <translation>ΜÎĩτÎŋÎ―&ÎŋÎžÎąÏƒÎŊÎą</translation> </message> <message> <source>Rename selected</source> <translation>ΜÎĩτÎŋÎ―ÎŋÎžÎąÏƒÎŊÎą ÎĩπÎđÎŧÎĩÎģÎžÎ­Î―Îŋυ</translation> </message> <message> <source>D&elete selected</source> <translation>Δ&ÎđÎąÎģÏÎąÏ†ÎŪ ÎĩπÎđÎŧÎĩÎģÎžÎ­Î―Îŋυ</translation> </message> <message> <source>&Help</source> <translation>&ΒÎŋÎŪÎļÎĩÎđÎą</translation> </message> <message> <source>&About</source> <translation>&ÎĢχÎĩτÎđΚΎ</translation> </message> <message> <source>&Format MD</source> <translation>&ΔÎđÎąÎžÏŒÏÏ†Ï‰ÏƒÎ· MD</translation> </message> <message> <source>Format MD</source> <translation>ΔÎđÎąÎžÏŒÏÏ†Ï‰ÏƒÎ· MD</translation> </message> <message> <source>&Quit</source> <translation>&ΈÎūÎŋÎīÎŋς</translation> </message> <message> <source>&Connect</source> <translation>&ÎĢÏÎ―ÎīÎĩση</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <source>Nr.</source> <translation>ΝÎŋ.</translation> </message> <message> <source>Title</source> <translation>ÎĪÎŊτÎŧÎŋς</translation> </message> <message> <source>Artist</source> <translation>ΚαÎŧÎŧÎđÏ„Î­Ï‡Î―Î·Ï‚</translation> </message> <message> <source>Album</source> <translation>ΔÎŊσΚÎŋς</translation> </message> <message> <source>Length</source> <translation>ΔÎđΎρΚÎĩÎđÎą</translation> </message> <message> <source>Format</source> <translation>ÎĪύπÎŋς ΑρχÎĩÎŊÎŋυ</translation> </message> <message> <source>Uploadable</source> <translation>ΕπÎđτρέπÎĩÏ„ÎąÎđ τÎŋ ÎąÎ―Î­ÎēÎąÏƒÎžÎą</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <source>Track upload - QHiMDTransfer</source> <translation>Î‘Î―Î­ÎēÎąÏƒÎžÎą ΚÎŋÎžÎžÎąÏ„ÎđÎŋύ - QHiMDTransfer</translation> </message> <message> <source>please wait while uploading XX track(s)</source> <translation>Ï€ÎąÏÎąÎšÎąÎŧώ πÎĩρÎđÎžÎ­Î―ÎĩτÎĩ ΚιÎļώς ÎąÎ―ÎĩÎēÎąÎŊÎ―ÎĩÎđ(ÎŋÏ…Î―) XX ΚÎŋΞΞΎτÎđ(Îą)</translation> </message> <message> <source>overall progress</source> <translation>ÎŋÎŧÎđΚÎŪ Ï€ÏÏŒÎŋÎīÎŋς</translation> </message> <message> <source>current track: trknum - filename</source> <translation>Ï„ÏÎ­Ï‡Ï‰Î― ΚÎŋΞΞΎτÎđ: trknum - filename</translation> </message> <message> <source>xx track(s) successfully uploaded</source> <translation>xx ΚÎŋΞΞΎτÎđ(Îą) ÎąÎ―Î­ÎēηΚÎĩ(ÎąÎ―) ΞÎĩ ÎĩπÎđτυχÎŊÎą</translation> </message> <message> <source>xx track(s) could not be uploaded</source> <translation>xx ΚÎŋΞΞΎτÎđ(Îą) ÎīÎĩÎ― ΞπÎŋρÎŋÏÎ― Î―Îą ÎąÎ―ÎĩÎēÎŋÏÎ―</translation> </message> <message> <source>Show Details</source> <translation>Î•ÎžÏ†ÎŽÎ―Îđση ÎŧÎĩπτÎŋΞÎĩρÎđÏŽÎ―</translation> </message> <message> <source>Cancel</source> <translation>ΆΚυρÎŋ</translation> </message> <message> <source>Close</source> <translation>ΚÎŧÎĩÎŊσÎđΞÎŋ</translation> </message> <message> <source>Tracknr.</source> <translation>ΝÎŋύΞÎĩρÎŋ ΚÎŋÎžÎžÎąÏ„ÎđÎŋύ.</translation> </message> <message> <source>Error message</source> <translation>ΜÎŪÎ―Ï…ÎžÎą ÎĢφΎÎŧÎžÎąÏ„Îŋς</translation> </message> <message> <source>%1 track(s) could not be uploaded</source> <translation>%1 ΚÎŋΞΞΎτÎđ(Îą) ÎīÎĩÎ― ΞπÎŋρÎŋÏÎ― Î―Îą ÎąÎ―ÎĩÎēÎŋÏÎ―</translation> </message> <message> <source>Track %1</source> <translation>ΚÎŋΞΞΎτÎđ %1</translation> </message> <message> <source>%1 track(s) successfully uploaded</source> <translation>%1 ΚÎŋΞΞΎτÎđ(Îą) ÎąÎ―Î­ÎēηΚÎĩ(ÎąÎ―) ΞÎĩ ÎĩπÎđτυχÎŊÎą</translation> </message> <message> <source>upload finished</source> <translation>τÎŋ ÎąÎ―Î­ÎēÎąÏƒÎžÎą ÎŋÎŧÎŋΚÎŧηρώÎļηΚÎĩ</translation> </message> <message> <source>current track: %1 - %2</source> <translation>Ï„ÏÎ­Ï‡Ï‰Î― ΚÎŋΞΞΎτÎđ: %1 - %2</translation> </message> <message> <source>no tracks selected</source> <translation>ÎīÎĩÎ― ÎĩπÎđÎŧέχÎļÎ·ÎšÎąÎ― ΚÎŋΞΞΎτÎđÎą</translation> </message> <message> <source>please wait while uploading %1 track(s)</source> <translation>Ï€ÎąÏÎąÎšÎąÎŧώ πÎĩρÎđÎžÎ­Î―ÎĩτÎĩ όσÎŋ ÎąÎ―ÎĩÎēÎąÎŊÎ―ÎŋÏ…Î― %1 ΚÎŋΞΞΎτÎđ(Îą)</translation> </message> <message> <source>upload aborted by the user</source> <translation>τÎŋ ÎąÎ―Î­ÎēÎąÏƒÎžÎą ÎīÎđÎąÎšÏŒÏ€Î·ÎšÎĩ ÎąÏ€ÏŒ τÎŋÎ― χρÎŪστη</translation> </message> </context> </TS> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_es.ts���������������������������������������������0000664�0000000�0000000�00000040314�12262477515�0023332�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="es_ES"> <context> <name>QHiMDAboutDialog</name> <message> <location filename="qhimdaboutdialog.ui" line="35"/> <location filename="ui_qhimdaboutdialog.h" line="178"/> <source>About QHiMDTransfer</source> <translation>Acerca de QHIMDTransfer</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="57"/> <location filename="ui_qhimdaboutdialog.h" line="185"/> <source>About</source> <translation>Acerca de</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="85"/> <location filename="ui_qhimdaboutdialog.h" line="179"/> <source>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</source> <translation type="unfinished"></translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="100"/> <location filename="ui_qhimdaboutdialog.h" line="182"/> <source>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</source> <translation type="unfinished"></translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="204"/> <location filename="ui_qhimdaboutdialog.h" line="188"/> <source>Version:</source> <translation type="unfinished"></translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="223"/> <location filename="ui_qhimdaboutdialog.h" line="189"/> <source>Build Date:</source> <translation type="unfinished"></translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="108"/> <location filename="ui_qhimdaboutdialog.h" line="186"/> <source>Contributors</source> <translation>Han contribuído</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="166"/> <location filename="ui_qhimdaboutdialog.h" line="187"/> <source>&Close</source> <translation>&Cerrar</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <location filename="qhimdformatdialog.ui" line="14"/> <location filename="ui_qhimdformatdialog.h" line="82"/> <source>Format Medium</source> <translation>Dar formato al disco MD</translation> </message> <message> <location filename="qhimdformatdialog.ui" line="41"/> <location filename="ui_qhimdformatdialog.h" line="84"/> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>ÂŋRealmente quiere dar formato al Minidisc (todos los datos y las pistas de audio se perderÃĄn)?</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <location filename="qhimdmainwindow.cpp" line="22"/> <source>Error opening file for MP3 output</source> <translation>Error de apertura de archivo para salida en MP3</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="27"/> <location filename="qhimdmainwindow.cpp" line="91"/> <location filename="qhimdmainwindow.cpp" line="151"/> <source>Error opening track: </source> <translation>Error de apertura de pista:</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="33"/> <location filename="qhimdmainwindow.cpp" line="103"/> <location filename="qhimdmainwindow.cpp" line="171"/> <source>Error writing audio data</source> <translation>Error de escritura de datos de audio</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="40"/> <source>upload aborted by the user</source> <translation>Subida abortada por el usuario</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="46"/> <source>Error reading audio data: </source> <translation>Error de lectura de datos de audio:</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="86"/> <source>Error opening file for ATRAC output</source> <translation>Error de apertura de archivo para salida en ATRAC</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="96"/> <source>Error writing header</source> <translation>Error de escritura de cabecera</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="146"/> <source>Error opening file for WAV output</source> <translation>Error de apertura de archivo para salida en WAV</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="303"/> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>Error de apertura de datos del HiMD. AsegÚrese de que ha elegido la ruta correcta al directorio raíz.</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="338"/> <source>Track %1</source> <translation>Pista %1</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="365"/> <source>upload disabled because of DRM encryption</source> <translation>Subida deshabilitada por encriptaciÃģn DRM</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="415"/> <source>Select MP3s for download</source> <translation>Seleccione MP3s para descargar</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="425"/> <source>Select directory for Upload</source> <translation>Seleccione directorio para subida</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="457"/> <source>Select directory of HiMD Medium</source> <translation>Seleccione directorio del disco HiMD</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="536"/> <source>(disconnected)</source> <translation>(desconectado)</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <location filename="qhimdmainwindow.ui" line="14"/> <location filename="ui_qhimdmainwindow.h" line="284"/> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="38"/> <location filename="ui_qhimdmainwindow.h" line="300"/> <source>HiMD path</source> <translation>Ruta del HiMD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="45"/> <location filename="ui_qhimdmainwindow.h" line="301"/> <source>(disconnected)</source> <translation>(desconectado)</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="138"/> <location filename="ui_qhimdmainwindow.h" line="304"/> <source>local directory</source> <translation>Directorio local</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="176"/> <location filename="ui_qhimdmainwindow.h" line="305"/> <source>&File</source> <translation>&Archivo</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="192"/> <location filename="ui_qhimdmainwindow.h" line="306"/> <source>&?</source> <translation>&?</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="229"/> <location filename="ui_qhimdmainwindow.h" line="285"/> <source>&Download tracks onto MD</source> <translation>&Descargar canciones al MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="238"/> <location filename="ui_qhimdmainwindow.h" line="286"/> <source>&Upload tracks from MD</source> <translation>&Subir canciones desde el el MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="247"/> <location filename="ui_qhimdmainwindow.h" line="287"/> <source>Re&name</source> <translation>&Renombrar</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="250"/> <location filename="ui_qhimdmainwindow.h" line="289"/> <source>Rename selected</source> <translation>Renombrar selecciÃģn</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="259"/> <location filename="ui_qhimdmainwindow.h" line="291"/> <source>D&elete selected</source> <translation>&Borrar selecciÃģn</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="268"/> <location filename="ui_qhimdmainwindow.h" line="292"/> <source>&Help</source> <translation>A&yuda</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="277"/> <location filename="ui_qhimdmainwindow.h" line="293"/> <source>&About</source> <translation>Ac&erca de</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="286"/> <location filename="ui_qhimdmainwindow.h" line="294"/> <source>&Format MD</source> <translation>Dar &formato al MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="289"/> <location filename="ui_qhimdmainwindow.h" line="296"/> <source>Format MD</source> <translation>Dar formato al MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="298"/> <location filename="ui_qhimdmainwindow.h" line="298"/> <source>&Quit</source> <translation>&Salir</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="307"/> <location filename="ui_qhimdmainwindow.h" line="299"/> <source>&Connect</source> <translation>&Conectar</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <location filename="qhimdmodel.cpp" line="149"/> <source>Nr.</source> <translation>Nr.</translation> </message> <message> <location filename="qhimdmodel.cpp" line="151"/> <source>Title</source> <translation>Título</translation> </message> <message> <location filename="qhimdmodel.cpp" line="153"/> <source>Artist</source> <translation>Artista</translation> </message> <message> <location filename="qhimdmodel.cpp" line="155"/> <source>Album</source> <translation>Álbum</translation> </message> <message> <location filename="qhimdmodel.cpp" line="157"/> <source>Length</source> <translation>DuraciÃģn</translation> </message> <message> <location filename="qhimdmodel.cpp" line="159"/> <source>Format</source> <translation>Formato</translation> </message> <message> <location filename="qhimdmodel.cpp" line="161"/> <source>Uploadable</source> <translation>Apto para subida</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <location filename="qhimduploaddialog.ui" line="14"/> <location filename="ui_qhimduploaddialog.h" line="200"/> <source>Track upload - QHiMDTransfer</source> <translation>Subida de pista - QHiMDTransfer</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="55"/> <location filename="ui_qhimduploaddialog.h" line="202"/> <source>please wait while uploading XX track(s)</source> <translation>por favor, expedre mientras se sube(n) XX pista(s)</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="69"/> <location filename="ui_qhimduploaddialog.h" line="203"/> <source>overall progress</source> <translation>Progreso total</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="93"/> <location filename="ui_qhimduploaddialog.h" line="204"/> <source>current track: trknum - filename</source> <translation>Pista actual: trknum – filename</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="108"/> <location filename="ui_qhimduploaddialog.h" line="205"/> <source>xx track(s) successfully uploaded</source> <translation>xx pista(s) subida(s) con ÃĐxito</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="115"/> <location filename="ui_qhimduploaddialog.h" line="206"/> <source>xx track(s) could not be uploaded</source> <translation>xx pista(s) no ha(n) podido subirse</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="129"/> <location filename="ui_qhimduploaddialog.h" line="207"/> <source>Show Details</source> <translation>Mostrar detalles</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="142"/> <location filename="ui_qhimduploaddialog.h" line="208"/> <source>Cancel</source> <translation>Cancelar</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="149"/> <location filename="ui_qhimduploaddialog.h" line="209"/> <source>Close</source> <translation>Cerrar</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="186"/> <location filename="ui_qhimduploaddialog.h" line="212"/> <source>Tracknr.</source> <translation>NÚmero de pista.</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="191"/> <location filename="ui_qhimduploaddialog.h" line="211"/> <source>Error message</source> <translation>Mensaje de error</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="10"/> <source>%1 track(s) could not be uploaded</source> <translation>%1 pista(s) no ha(n) podido subirse</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="15"/> <source>Track %1</source> <translation>Pista %1</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="28"/> <source>%1 track(s) successfully uploaded</source> <translation>%1 pista(s) subidas con ÃĐxito</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="33"/> <source>upload finished</source> <translation>Subida terminada</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="48"/> <source>current track: %1 - %2</source> <translation>Pista actual: %1 - %2</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="74"/> <source>no tracks selected</source> <translation>No hay pistas seleccionadas</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="79"/> <source>please wait while uploading %1 track(s)</source> <translation>Por favor, espere mientras se sube(n) %1 pista(s)</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="135"/> <source>upload aborted by the user</source> <translation>Subida abortada por el usuario</translation> </message> </context> </TS> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_fi.ts���������������������������������������������0000664�0000000�0000000�00000026400�12262477515�0023321�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="fi_FI" sourcelanguage="en"> <context> <name>QHiMDAboutDialog</name> <message> <source>About QHiMDTransfer</source> <translation>Tietoja QHiMDTransfer-sovelluksesta</translation> </message> <message> <source><h1>About QHiMDTransfer</h1></source> <translation type="obsolete"><h1>Tietoja QHiMDTransfer-sovelluksesta</h1></translation> </message> <message> <source><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>A free music transfer software for MiniDisc walkman.</p> <p><p> <p>Brought to you by the linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></source> <translation type="obsolete"><h3>QHiMDTransfer, Versio 0.0.1</h3> <p><p> <p>Ilmainen sovellus tiedostojen siirtoa varten MiniDisc-laitteelle.</p> <p><p> <p>TÃĪmÃĪn sovelluksen teki linux-minidisc-projekti</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>Sovellus kuuluu GNU GPL v2 lisenssin piiriin. LisÃĪtietoja tiedostossa LICENSE sovelluskansiossa.</p></translation> </message> <message> <source>&Close</source> <translation>&Sulje</translation> </message> <message> <source>About</source> <translation>Tietoja</translation> </message> <message> <source>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</source> <translation>Ilmainen sovellus tiedostojen siirtoa varten MiniDisc-laitteelle. TÃĪmÃĪn sovelluksen teki linux-minidisc-projekti:</translation> </message> <message> <source>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</source> <translation>Sovellus kuuluu GNU GPL v2 lisenssin piiriin. LisÃĪtietoja tiedostossa LICENSE sovelluskansiossa.</translation> </message> <message> <source>Contributors</source> <translation>Avustajat</translation> </message> <message> <source>Version:</source> <translation>Versio:</translation> </message> <message> <source>Build Date:</source> <translation>Rakenna pÃĪivÃĪmÃĪÃĪrÃĪ:</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <source>Format Medium</source> <translation>Formatoi toistolaite</translation> </message> <message> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>Vahvista MiniDisc-laitteen formatointi (kaikki laitteella olevat ÃĪÃĪniraidat ja tiedostot tuhotaan)?</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <source>Error opening file for MP3 output</source> <translation>Virhe avattaessa tiedostoa MP3-toistoa varten</translation> </message> <message> <source>Error opening track: </source> <translation>Virhe avattaessa ÃĪÃĪniraitaa:</translation> </message> <message> <source>Error writing audio data</source> <translation>Virhe ÃĪÃĪnidataa tallennettaessa</translation> </message> <message> <source>upload aborted by the user</source> <translation>kÃĪyttÃĪjÃĪ keskeytti lÃĪhetyksen</translation> </message> <message> <source>Error reading audio data: </source> <translation>Virhe luettaessa ÃĪÃĪnidataa:</translation> </message> <message> <source>Error opening file for ATRAC output</source> <translation>Virhe avattaessa tiedostoa ATRAC-toistoa varten</translation> </message> <message> <source>Error writing header</source> <translation>Virhe tunnistetta kirjoittaessa</translation> </message> <message> <source>Error opening file for WAV output</source> <translation>Virhe avattaessa tiedostoa WAV-toistoa varten</translation> </message> <message> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>Virhe HiMD-dataa avattaessa. Tarkista, ettÃĪ valitsemasi HiMD-Walkmanin juurikansio on oikea.</translation> </message> <message> <source>Track %1</source> <translation>ÄÃĪniraita %1</translation> </message> <message> <source>upload disabled because of DRM encryption</source> <translation>lÃĪhetys poistettu kÃĪytÃķstÃĪ DRM salauksen vuoksi</translation> </message> <message> <source>Select MP3s for download</source> <translation>valitse MP3-tiedostot latausta varten</translation> </message> <message> <source>Select directory for Upload</source> <translation>Valitse kansio, johon tiedostot lÃĪhetetÃĪÃĪn</translation> </message> <message> <source>Select directory of HiMD Medium</source> <translation>Valitse kansio HiDM-tiedostoja varten</translation> </message> <message> <source>(disconnected)</source> <translation>(yhteys katkaistu)</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <source>HiMD path</source> <translation>HiMD polku</translation> </message> <message> <source>(disconnected)</source> <translation>(yhteys katkaistu)</translation> </message> <message> <source>>></source> <translation type="obsolete">>></translation> </message> <message> <source>local directory</source> <translation>paikallinen hakemisto</translation> </message> <message> <source>&File</source> <translation>&Tiedosto</translation> </message> <message> <source>&?</source> <translation>&?</translation> </message> <message> <source>&Download tracks onto MD</source> <translation>&Lataa ÃĪÃĪniraitoja MD-soittimeen</translation> </message> <message> <source>&Upload tracks from MD</source> <translation>&LÃĪhetÃĪ ÃĪÃĪniraitoja MD-soittimesta</translation> </message> <message> <source>Re&name</source> <translation>&NimeÃĪ uudelleen</translation> </message> <message> <source>Rename selected</source> <translation>NimeÃĪ valitut uudelleen</translation> </message> <message> <source>D&elete selected</source> <translation>&Poista valitut</translation> </message> <message> <source>&Help</source> <translation>&Apua</translation> </message> <message> <source>&About</source> <translation>&Tiedot</translation> </message> <message> <source>&Format MD</source> <translation>&Formatoi MD</translation> </message> <message> <source>Format MD</source> <translation>Formatoi MD</translation> </message> <message> <source>&Quit</source> <translation>&Lopeta</translation> </message> <message> <source>&Connect</source> <translation>&YhdistÃĪ</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <source>Nr.</source> <translation>Nro</translation> </message> <message> <source>Title</source> <translation>Kappale</translation> </message> <message> <source>Artist</source> <translation>EsittÃĪjÃĪ</translation> </message> <message> <source>Album</source> <translation>Albumi</translation> </message> <message> <source>Length</source> <translation>Kesto</translation> </message> <message> <source>Format</source> <translation>Tietotyyppi</translation> </message> <message> <source>Uploadable</source> <translation>LÃĪhetettÃĪvissÃĪ</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <source>Track upload - QHiMDTransfer</source> <translation>ÄÃĪniraidan lÃĪhetys - QHiMDTransfer</translation> </message> <message> <source>please wait while uploading XX track(s)</source> <translation>odota, XX ÃĪÃĪniraidan lÃĪhetys kesken</translation> </message> <message> <source>overall progress</source> <translation>kaikkien lÃĪhetysten vaihe</translation> </message> <message> <source>current track: trknum - filename</source> <translation>tÃĪmÃĪn hetkinen ÃĪÃĪniraita: trknum - filename</translation> </message> <message> <source>xx track(s) successfully uploaded</source> <translation>xx ÃĪÃĪniraita(a) lÃĪhetetty</translation> </message> <message> <source>xx track(s) could not be uploaded</source> <translation>xx ÃĪÃĪniraidan lÃĪhetys ei onnistunut</translation> </message> <message> <source>Show Details</source> <translation>NÃĪytÃĪ yksityiskohdat</translation> </message> <message> <source>Cancel</source> <translation>Peru</translation> </message> <message> <source>Close</source> <translation>Sulje</translation> </message> <message> <source>Tracknr.</source> <translation>Tiedoston nro</translation> </message> <message> <source>Error message</source> <translation>Virheilmoitus</translation> </message> <message> <source>%1 track(s) could not be uploaded</source> <translation>%1 ÃĪÃĪniraidan lÃĪhetys ei onnistunut</translation> </message> <message> <source>Track %1</source> <translation>ÄÃĪniraita %1</translation> </message> <message> <source>%1 track(s) successfully uploaded</source> <translation>%1 ÃĪÃĪniraidan lÃĪhetys onnistui</translation> </message> <message> <source>upload finished</source> <translation>lÃĪhetys valmis</translation> </message> <message> <source>current track: %1 - %2</source> <translation>meneillÃĪÃĪn oleva ÃĪÃĪniraita: %1 - %2</translation> </message> <message> <source>no tracks selected</source> <translation>ei ÃĪÃĪniraitaa valittuna</translation> </message> <message> <source>please wait while uploading %1 track(s)</source> <translation>odota, %1 ÃĪÃĪniraidan lÃĪhetys kesken</translation> </message> <message> <source>upload aborted by the user</source> <translation>kÃĪyttÃĪjÃĪ keskeytti lÃĪhetyksen</translation> </message> </context> </TS> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_fr.ts���������������������������������������������0000664�0000000�0000000�00000027610�12262477515�0023336�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="fr_FR"> <context> <name>QHiMDAboutDialog</name> <message> <source>About QHiMDTransfer</source> <translation>À propos de QHiMDTransfer</translation> </message> <message> <source><h1>About QHiMDTransfer</h1></source> <translation type="obsolete"><h1>À propos de QHiMDTransfer</h1></translation> </message> <message> <source><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>A free music transfer software for MiniDisc walkman.</p> <p><p> <p>Brought to you by the linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></source> <translation type="obsolete"><h3> QHiMDTransfer, Version 0.0.1 </h3> <p><p> <p>Un logiciel libre pour transfÃĐrer la musique d’un Walkman MiniDisc.</p> <p><p> <p>Conçu pour vous par le projet Linux-minidisc:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>Ce logiciel est couvert par la licence GNU GPL v2. Voir la fichier de licence dans le dossier du programme pour plus d’informations.</p></translation> </message> <message> <source>&Close</source> <translation>&Fermer</translation> </message> <message> <source>About</source> <translation>À propos</translation> </message> <message> <source>Contributors</source> <translation>Contributeurs</translation> </message> <message> <source>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</source> <translation>Un logiciel libre pour transfÃĐrer la musique d’un Walkman MiniDisc. Conçu pour vous par le projet Linux-minidisc:</translation> </message> <message> <source>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</source> <translation>Ce logiciel est couvert par la licence GNU GPL v2. Voir la fichier de licence dans le dossier du programme pour plus d’informations.</translation> </message> <message> <source>Version:</source> <translation>Version:</translation> </message> <message> <source>Build Date:</source> <translation>Date de compilation:</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <source>Format Medium</source> <translation>Formater le MiniDisc</translation> </message> <message> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>Voulez-vous vraiment formater le MiniDisc (toutes les pistes audio et les donnÃĐes seront perdues) ?</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <source>Track %1</source> <translation>Piste %1</translation> </message> <message> <source>upload disabled because of DRM encryption</source> <translation>Importation dÃĐsactivÃĐe en raison des protections DRM</translation> </message> <message> <source>Error opening file for MP3 output</source> <translation>Erreur d’ouverture de fichier pour l’export en MP3</translation> </message> <message> <source>Error opening track: </source> <translation>Erreur lors de l’ouverture des pistes : </translation> </message> <message> <source>Error writing audio data</source> <translation>Erreur lors de l’ÃĐcriture des donnÃĐes audio</translation> </message> <message> <source>upload aborted by the user</source> <translation>Importation annulÃĐe par l’utilisateur</translation> </message> <message> <source>Error reading audio data: </source> <translation>Erreur lors de la lecture des donnÃĐes audio : </translation> </message> <message> <source>Error opening file for ATRAC output</source> <translation>Erreur d’ouverture de fichier pour l’export en ATRAC</translation> </message> <message> <source>Error writing header</source> <translation>Erreur lors de l’ÃĐcriture des donnÃĐes d’entÊte</translation> </message> <message> <source>Error opening file for WAV output</source> <translation>Erreur d’ouverture de fichier pour l’export en WAV</translation> </message> <message> <source>Select MP3s for download</source> <translation>SÃĐlectionnez les MP3 à exporter</translation> </message> <message> <source>Select directory for Upload</source> <translation>Choisissez un dossier pour l’importation</translation> </message> <message> <source>Select directory of HiMD Medium</source> <translation>Choisissez un dossier sur le disque HiMD</translation> </message> <message> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman.</source> <translation type="obsolete">Erreur lors de l’ouverture des donnÃĐes HiMD. Assurez-vous d’avoir choisi le dossier racine appropriÃĐ sur votre Walkman HiMD.</translation> </message> <message> <source>(disconnected)</source> <translation>(dÃĐconnectÃĐ)</translation> </message> <message> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation type="unfinished"></translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <source>&File</source> <translation>&Fichier</translation> </message> <message> <source>&?</source> <translation>&?</translation> </message> <message> <source>&Download tracks onto MD</source> <translation>E&xporter des pistes vers le MD</translation> </message> <message> <source>&Upload tracks from MD</source> <translation>&Importer des pistes depuis le MD</translation> </message> <message> <source>Re&name</source> <translation>&Renommer</translation> </message> <message> <source>Rename selected</source> <translation>Renommer la sÃĐlection</translation> </message> <message> <source>D&elete selected</source> <translation>&Supprimer la sÃĐlection</translation> </message> <message> <source>&Help</source> <translation>&Aide</translation> </message> <message> <source>&About</source> <translation>À &propos</translation> </message> <message> <source>&Format MD</source> <translation>&Formater le MD</translation> </message> <message> <source>Format MD</source> <translation>Formater le MD</translation> </message> <message> <source>&Quit</source> <translation>&Quitter</translation> </message> <message> <source>&Connect</source> <translation>&Connecter</translation> </message> <message> <source>HiMD path</source> <translation>Chemin HiMD</translation> </message> <message> <source>(disconnected)</source> <translation>(dÃĐconnectÃĐ)</translation> </message> <message> <source>>></source> <translation type="obsolete">>></translation> </message> <message> <source><<</source> <translation type="obsolete"><<</translation> </message> <message> <source>local directory</source> <translation>dossier local</translation> </message> <message> <source>/tmp</source> <translation type="obsolete">/tmp</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <source>Title</source> <translation>Titre</translation> </message> <message> <source>Artist</source> <translation>Artiste</translation> </message> <message> <source>Album</source> <translation>Album</translation> </message> <message> <source>Length</source> <translation>DurÃĐe</translation> </message> <message> <source>Uploadable</source> <translation>Importable</translation> </message> <message> <source>Format</source> <translation>Format</translation> </message> <message> <source>Nr.</source> <translation>No</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <source>upload finished</source> <translation>Importation terminÃĐe</translation> </message> <message> <source>%1 track(s) successfully uploaded</source> <translation>%1 piste(s) importÃĐe(s) avec succÃĻs</translation> </message> <message> <source>%1 track(s) could not be uploaded</source> <translation>%1 piste(s) ne peuvent pas Être importÃĐe(s)</translation> </message> <message> <source>Track %1</source> <translation>Piste %1</translation> </message> <message> <source>current track: %1 - %2</source> <translation>Piste actuelle : %1 - %2</translation> </message> <message> <source>no tracks selected</source> <translation>Aucune piste sÃĐlectionnÃĐe</translation> </message> <message> <source>please wait while uploading %1 track(s)</source> <translation>Merci de patienter pendant l’importation de %1 piste(s)</translation> </message> <message> <source>Track upload - QHiMDTransfer</source> <translation>Importation de piste - QHiMDTransfer</translation> </message> <message> <source>please wait while uploading XX track(s)</source> <translation>Merci de patentier pendant l’importation de XX piste(s)</translation> </message> <message> <source>overall progress</source> <translation>Progression des opÃĐrations</translation> </message> <message> <source>current track: trknum - filename</source> <translation>Piste actuelle : trknum - filename</translation> </message> <message> <source>xx track(s) successfully uploaded</source> <translation>xx piste(s) importÃĐe(s) avec succÃĻs</translation> </message> <message> <source>xx track(s) could not be uploaded</source> <translation>xx piste(s) ne peuvent pas Être importÃĐes</translation> </message> <message> <source>Show Details</source> <translation>Afficher les dÃĐtails</translation> </message> <message> <source>Cancel</source> <translation>Annuler</translation> </message> <message> <source>Close</source> <translation>Fermer</translation> </message> <message> <source>Tracknr.</source> <translation>No piste</translation> </message> <message> <source>Error message</source> <translation>Message d’erreur</translation> </message> <message> <source>upload aborted by the user</source> <translation>Importation abandonnÃĐe par l’utilisateur</translation> </message> </context> </TS> ������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_it.ts���������������������������������������������0000664�0000000�0000000�00000026342�12262477515�0023344�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="it_IT"> <context> <name>QHiMDAboutDialog</name> <message> <source>About QHiMDTransfer</source> <translation>Su QHiMDTransfer</translation> </message> <message> <source><h1>About QHiMDTransfer</h1></source> <translation type="obsolete"><h1>Su QHiMDTransfer</h1></translation> </message> <message> <source><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>A free music transfer software for MiniDisc walkman.</p> <p><p> <p>Brought to you by the linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></source> <translation type="obsolete"><h3>QHiMDTransfer, Versione 0.0.1</h3> <p><p> <p>Un software gratuito da trasferta di musica per MiniDisc walkman.</p> <p><p> <p>Creatp dal linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>Questo software e coperto dalla licenza GNU GPL v2. Vedi il file LICENSE nella directory del programma per ulteriori informazioni.</p></translation> </message> <message> <source>&Close</source> <translation>&Chiudi</translation> </message> <message> <source>About</source> <translation>Su</translation> </message> <message> <source>Contributors</source> <translation>Contribuenti</translation> </message> <message> <source>Version:</source> <translation>Versione:</translation> </message> <message> <source>Build Date:</source> <translation>Creato il:</translation> </message> <message> <source>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</source> <translation>Un software gratuito da trasferta di musica per MiniDisc walkman. Creato dal linux-minidisc project:</translation> </message> <message> <source>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</source> <translation>Questo software e coperto dalla licenza GNU GPL v2. Vedi il file LICENSE nella directory del programma per ulteriori informazioni.</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <source>Format Medium</source> <translation>Formatta mezzo</translation> </message> <message> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>Formattare MiniDisc davvero (tutte le tracce audio e tutti i dati saranno persi)?</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <source>Error opening file for MP3 output</source> <translation>Errore aprendo file per uscita MP3</translation> </message> <message> <source>Error opening track: </source> <translation>Errore aprendo traccia:</translation> </message> <message> <source>Error writing audio data</source> <translation>Errore scrivendo dati audio</translation> </message> <message> <source>upload aborted by the user</source> <translation>upload anullato da utente</translation> </message> <message> <source>Error reading audio data: </source> <translation>Errore leggendo dati audio:</translation> </message> <message> <source>Error opening file for ATRAC output</source> <translation>Errore aprendo file per uscita ATRAC</translation> </message> <message> <source>Error writing header</source> <translation>Errore scrivendo la testata</translation> </message> <message> <source>Error opening file for WAV output</source> <translation>Errore aprendo file per uscita WAV</translation> </message> <message> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>Errore aprendo dati HiMD. Assicurati di aver scelto la giusta root directory del tuo HiMD-Walkman. </translation> </message> <message> <source>Track %1</source> <translation>Traccia %1</translation> </message> <message> <source>upload disabled because of DRM encryption</source> <translation>Upload disattivato a causa di crittazione DRM</translation> </message> <message> <source>Select MP3s for download</source> <translation>Seleziona MP3 per download</translation> </message> <message> <source>Select directory for Upload</source> <translation>Seleziona directory per Upload</translation> </message> <message> <source>Select directory of HiMD Medium</source> <translation>Seleziona directory per mezzo HiMD</translation> </message> <message> <source>(disconnected)</source> <translation>(disconnesso)</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <source>HiMD path</source> <translation>Path HiMD</translation> </message> <message> <source>(disconnected)</source> <translation>(disconnesso)</translation> </message> <message> <source>>></source> <translation type="obsolete">>></translation> </message> <message> <source><<</source> <translation type="obsolete"><<</translation> </message> <message> <source>local directory</source> <translation>directory locale</translation> </message> <message> <source>/tmp</source> <translation type="obsolete">/tmp</translation> </message> <message> <source>&File</source> <translation>&File</translation> </message> <message> <source>&?</source> <translation>&?</translation> </message> <message> <source>&Download tracks onto MD</source> <translation>&Download delle traccie sul MD</translation> </message> <message> <source>&Upload tracks from MD</source> <translation>&Upload tracce dal MD</translation> </message> <message> <source>Re&name</source> <translation>Ri&batezza</translation> </message> <message> <source>Rename selected</source> <translation>Ribatezza selezionati</translation> </message> <message> <source>D&elete selected</source> <translation>C&ancella selezzionato</translation> </message> <message> <source>&Help</source> <translation>&Aiuto</translation> </message> <message> <source>&About</source> <translation>&Su</translation> </message> <message> <source>&Format MD</source> <translation>&Formatta MD</translation> </message> <message> <source>Format MD</source> <translation>Formatta MD</translation> </message> <message> <source>&Quit</source> <translation>&Esci</translation> </message> <message> <source>&Connect</source> <translation>&Connetti</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <source>Nr.</source> <translation>N°</translation> </message> <message> <source>Title</source> <translation>Titolo</translation> </message> <message> <source>Artist</source> <translation>Artista</translation> </message> <message> <source>Album</source> <translation>Albo</translation> </message> <message> <source>Length</source> <translation>Lungezza</translation> </message> <message> <source>Format</source> <translation>Formato</translation> </message> <message> <source>Uploadable</source> <translation>Upload possibile</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <source>Track upload - QHiMDTransfer</source> <translation>Upload di traccia - Trasferta QHMiD</translation> </message> <message> <source>please wait while uploading XX track(s)</source> <translation>Attendi prego mentre upload di XX tracccie e in corso</translation> </message> <message> <source>overall progress</source> <translation>Progresso totale</translation> </message> <message> <source>current track: trknum - filename</source> <translation>traccia attuale: trknum - filename</translation> </message> <message> <source>xx track(s) successfully uploaded</source> <translation>upload di xx traccie riuscito</translation> </message> <message> <source>xx track(s) could not be uploaded</source> <translation>upload di xx tracce non potreva essere effetuato</translation> </message> <message> <source>Show Details</source> <translation>Mostra dettagli</translation> </message> <message> <source>Cancel</source> <translation>Annulla</translation> </message> <message> <source>Close</source> <translation>Chiudi</translation> </message> <message> <source>Tracknr.</source> <translation>N° di traccia</translation> </message> <message> <source>Error message</source> <translation>Messaggio di errore</translation> </message> <message> <source>%1 track(s) could not be uploaded</source> <translation>Upload di %1 traccie non poteva essere effetuato</translation> </message> <message> <source>Track %1</source> <translation>Traccia%1</translation> </message> <message> <source>%1 track(s) successfully uploaded</source> <translation>Upload di %1 traccie riuscito</translation> </message> <message> <source>upload finished</source> <translation>upload finito</translation> </message> <message> <source>current track: %1 - %2</source> <translation>traccia attuale: %1 - %2</translation> </message> <message> <source>no tracks selected</source> <translation>Nessuna traccia selezionata</translation> </message> <message> <source>please wait while uploading %1 track(s)</source> <translation>Attendi per favore mentre l'upload di %1 traccie e completo</translation> </message> <message> <source>upload aborted by the user</source> <translation>upload annullato da utente</translation> </message> </context> </TS> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_ja.ts���������������������������������������������0000664�0000000�0000000�00000030122�12262477515�0023311�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="ja_JP"> <context> <name>QHiMDAboutDialog</name> <message> <source>About QHiMDTransfer</source> <translation>QHiMDTransfer ãŦãĪいãĶ</translation> </message> <message> <source><h1>About QHiMDTransfer</h1></source> <translation type="obsolete"><h1>QHiMDTransfer ãŦãĪいãĶ</h1></translation> </message> <message> <source><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>A free music transfer software for MiniDisc walkman.</p> <p><p> <p>Brought to you by the linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></source> <translation type="obsolete"><h3>QHiMDTransfer, ãƒīã‚Ąãƒžã‚ļョãƒģ 0.0.1</h3> <p><p> <p>į„Ąæ–™MDã‚Ķã‚Đマã‚ŊマãƒģéŸģæĨ―į§ŧå‹•ã‚―ãƒ•ãƒˆã€‚</p> <p><p> <p>linux-minidiscプロã‚ļェã‚Ŋãƒˆä―œæˆïžš</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>こãŪã‚―ãƒ•ãƒˆãŪč‘—ä―œæĻĐãŊGNU GPL v2ãŦありãūす。 čĐģįī°ãŊプログãƒĐム フã‚ĐãƒŦダãŪãƒĐã‚Īã‚ŧãƒģã‚đãƒ•ã‚Ąã‚ĪãƒŦをごčĶ§ãã ã•ã„ã€‚</p></translation> </message> <message> <source>&Close</source> <translation>閉じる (&C)</translation> </message> <message> <source>About</source> <translation>æƒ…å ą</translation> </message> <message> <source>Contributors</source> <translation>é–‹į™šč€…</translation> </message> <message> <source>Version:</source> <translation>ãƒīã‚Ąãƒžã‚ļョãƒģ</translation> </message> <message> <source>Build Date:</source> <translation>į™šåĢēæ—Ĩïžš</translation> </message> <message> <source>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</source> <translation>į„Ąæ–™MDã‚Ķã‚Đマã‚ŊマãƒģéŸģæĨ―į§ŧå‹•ã‚―ãƒ•ãƒˆã€‚ linux-minidiscプロã‚ļェã‚Ŋãƒˆä―œæˆïžš</translation> </message> <message> <source>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</source> <translation>こãŪã‚―ãƒ•ãƒˆãŪč‘—ä―œæĻĐãŊGNU GPL v2ãŦありãūす。 čĐģįī°ãŊプログãƒĐムフã‚ĐãƒŦダãŪãƒĐã‚Īã‚ŧãƒģã‚đãƒ•ã‚Ąã‚ĪãƒŦを ごčĶ§ãã ã•ã„ã€‚</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <source>Format Medium</source> <translation>MDを初期化する</translation> </message> <message> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>æœŽå―“ãŦ初期化しãūすか(すãđãĶãŪéŸģæĨ―デマã‚ŋãŊ削é™Īされãūす)</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <source>Error opening file for MP3 output</source> <translation>ã‚ĻãƒĐマMP3ã‚Ēã‚Ķãƒˆãƒ—ãƒƒãƒˆãƒ•ã‚Ąã‚ĪãƒŦを開けãūせんでした。</translation> </message> <message> <source>Error opening track: </source> <translation>ã‚ĻãƒĐマトãƒĐッã‚Ŋが開けãūせんでした。 </translation> </message> <message> <source>Error writing audio data</source> <translation>ã‚ĻãƒĐマりマデã‚Ģりデマã‚ŋをæ›ļきčūžã‚ãūせんせした。</translation> </message> <message> <source>upload aborted by the user</source> <translation>ãƒĶマã‚ķマãŦよãĢãĶã‚Ēップロマドが取りæķˆã•れãūした。</translation> </message> <message> <source>Error reading audio data: </source> <translation>ã‚ĻãƒĐマりマデã‚Ģりデマã‚ŋã‚’čŠ­ãŋčūžã‚ãūせんでした。 </translation> </message> <message> <source>Error opening file for ATRAC output</source> <translation>ã‚ĻãƒĐマATRAC ã‚Ēã‚Ķãƒˆãƒ—ãƒƒãƒˆãƒ•ã‚Ąã‚ĪãƒŦを開けãūせんでした。</translation> </message> <message> <source>Error writing header</source> <translation>ã‚ĻãƒĐマヘッダマをæ›ļきčūžã‚ãūせんでした。</translation> </message> <message> <source>Error opening file for WAV output</source> <translation>ã‚ĻãƒĐマWAV ã‚Ēã‚Ķãƒˆãƒ—ãƒƒãƒˆãƒ•ã‚Ąã‚ĪãƒŦを開けãūせんでした。</translation> </message> <message> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>ã‚ĻãƒĐマHiMDデマã‚ŋが開けãūせんでした。MDã‚Ķã‚Đマã‚ŊマãƒģãŪãƒŦマトデã‚Ģノã‚ŊトナをįĒščŠã—ãĶください。</translation> </message> <message> <source>Track %1</source> <translation>トãƒĐッã‚Ŋ %1</translation> </message> <message> <source>upload disabled because of DRM encryption</source> <translation>ã‚ģピマプロテã‚ŊトãŪためã‚Ēップロマドができãūせんでした。</translation> </message> <message> <source>Select MP3s for download</source> <translation>ダã‚ĶãƒģロマドするMPïž“ãƒ•ã‚Ąã‚ĪãƒŦをéļ択しãĶください。</translation> </message> <message> <source>Select directory for Upload</source> <translation>ã‚Ēップロマドをするデã‚Ģノã‚Ŋトナマをéļ択しãĶください。</translation> </message> <message> <source>Select directory of HiMD Medium</source> <translation>HiMDãŪデã‚Ģノã‚Ŋトナマをéļ択しãĶください。</translation> </message> <message> <source>(disconnected)</source> <translation>朊æŽĨįķšïž‰</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <source>HiMD path</source> <translation>HiMD パã‚đ</translation> </message> <message> <source>(disconnected)</source> <translation>朊æŽĨįķšïž‰</translation> </message> <message> <source>local directory</source> <translation>ロマã‚ŦãƒŦデã‚Ģノã‚Ŋトナマ</translation> </message> <message> <source>/tmp</source> <translation type="obsolete">/tmp</translation> </message> <message> <source>&File</source> <translation>ãƒ•ã‚Ąã‚ĪãƒŦ(&F)</translation> </message> <message> <source>&?</source> <translation>&?</translation> </message> <message> <source>&Download tracks onto MD</source> <translation>MDãŦトãƒĐッã‚Ŋをダã‚Ķãƒģロマド(&D)</translation> </message> <message> <source>&Upload tracks from MD</source> <translation>MDからトãƒĐッã‚Ŋをã‚Ēップロマド(&U)</translation> </message> <message> <source>Re&name</source> <translation>名前ãŪåΉæ›ī(&R)</translation> </message> <message> <source>Rename selected</source> <translation>éļ択項į›ŪãŪåΉæ›ī</translation> </message> <message> <source>D&elete selected</source> <translation>éļ択項į›ŪãŪ削é™Ī(&)</translation> </message> <message> <source>&Help</source> <translation>ヘãƒŦプ(&H)</translation> </message> <message> <source>&About</source> <translation>æƒ…å ą(&A)</translation> </message> <message> <source>&Format MD</source> <translation>MDを初期化(&F)</translation> </message> <message> <source>Format MD</source> <translation>MDを初期化</translation> </message> <message> <source>&Quit</source> <translation>įĩ‚䚆(&Q)</translation> </message> <message> <source>&Connect</source> <translation>æŽĨįķš(&C)</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <source>Nr.</source> <translation>トãƒĐッã‚Ŋį•Šå·</translation> </message> <message> <source>Title</source> <translation>ã‚ŋã‚ĪトãƒŦ</translation> </message> <message> <source>Artist</source> <translation>ã‚Ēマテã‚Ģã‚đト</translation> </message> <message> <source>Album</source> <translation>ã‚ĒãƒŦバム名</translation> </message> <message> <source>Length</source> <translation>長さ</translation> </message> <message> <source>Format</source> <translation>フã‚Đママット</translation> </message> <message> <source>Uploadable</source> <translation>ã‚ĒップロマドåŊ</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <source>%1 track(s) could not be uploaded</source> <translation>%1 トãƒĐッã‚Ŋã‚Ēップロマドできãūせんでした。</translation> </message> <message> <source>Track %1</source> <translation>トãƒĐッã‚Ŋ %1</translation> </message> <message> <source>%1 track(s) successfully uploaded</source> <translation>%1 トãƒĐッã‚ŊãŪã‚ĒップロマドãŦ成功しãūした。</translation> </message> <message> <source>upload finished</source> <translation>ã‚ĒップロマドがåŪŒäš†ã—ãūした</translation> </message> <message> <source>current track: %1 - %2</source> <translation>įūåœĻãŪトãƒĐッã‚Ŋïžš%1 - %2</translation> </message> <message> <source>no tracks selected</source> <translation>トãƒĐッã‚Ŋがéļ択されãĶいãūせん。</translation> </message> <message> <source>please wait while uploading %1 track(s)</source> <translation>%1 トãƒĐッã‚Ŋをã‚ĒップロマドしãĶいãūす。しばらくおåū…ãĄãã ã•ã„ã€‚</translation> </message> <message> <source>upload aborted by the user</source> <translation>ãƒĶマã‚ķマãŦよãĢãĶã‚Ēップロマドが取りæķˆã•れãūした。</translation> </message> <message> <source>Track upload - QHiMDTransfer</source> <translation>トãƒĐッã‚Ŋã‚Ēップロマド - QHiMDTransfer</translation> </message> <message> <source>please wait while uploading XX track(s)</source> <translation>XX トãƒĐッã‚Ŋをã‚ĒップロマドしãĶいãūす。しばらくおåū…ãĄãã ã•ã„ã€‚</translation> </message> <message> <source>overall progress</source> <translation>įĩŒéŽ</translation> </message> <message> <source>current track: trknum - filename</source> <translation>įūåœĻãŪトãƒĐッã‚Ŋïžštrknum - filename</translation> </message> <message> <source>xx track(s) successfully uploaded</source> <translation>xx トãƒĐッã‚ŊãŪã‚ĒップロマドãŦ成功しãūした。</translation> </message> <message> <source>xx track(s) could not be uploaded</source> <translation>xx トãƒĐッã‚Ŋã‚Ēップロマドできãūせんでした。</translation> </message> <message> <source>Show Details</source> <translation>čĐģįī°ã‚’čĄĻįĪšã™ã‚‹</translation> </message> <message> <source>Cancel</source> <translation>キãƒĢãƒģã‚ŧãƒŦ</translation> </message> <message> <source>Close</source> <translation>閉じる</translation> </message> <message> <source>Tracknr.</source> <translation>トãƒĐッã‚Ŋį•Šå·</translation> </message> <message> <source>Error message</source> <translation>ã‚ĻãƒĐãƒžãƒĄãƒƒã‚ŧマã‚ļ</translation> </message> </context> </TS> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_nb.ts���������������������������������������������0000664�0000000�0000000�00000026110�12262477515�0023320�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="nb_NO"> <context> <name>QHiMDAboutDialog</name> <message> <source>About QHiMDTransfer</source> <translation>Om QHiMDTransfer</translation> </message> <message> <source><h1>About QHiMDTransfer</h1></source> <translation type="obsolete"><h1>Om QHiMDTransfer</h1></translation> </message> <message> <source><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>A free music transfer software for MiniDisc walkman.</p> <p><p> <p>Brought to you by the linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></source> <translation type="obsolete"><h3>QHiMDTransfer, Versjon 0.0.1</h3> <p><p> <p>Fri musikkoverfÃļrings programvare for MiniDisc walkman.</p> <p><p> <p>Fra prosjektet linux-minidisc:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>Denne programvaren er lisensert under GNU GPL v2. Se pÃĨ filen LICENSE som fulgte med.</p></translation> </message> <message> <source>&Close</source> <translation>&Lukk</translation> </message> <message> <source>About</source> <translation>Om</translation> </message> <message> <source>Contributors</source> <translation>Bidragsytere</translation> </message> <message> <source>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</source> <translation>Fri musikkoverfÃļrings programvare for MiniDisc walkman. Fra prosjektet linux-minidisc:</translation> </message> <message> <source>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</source> <translation>Denne programvaren er lisensert under GNU GPL v2. Se pÃĨ filen LICENSE som fulgte med.</translation> </message> <message> <source>Version:</source> <translation>Versjon:</translation> </message> <message> <source>Build Date:</source> <translation>Laget pÃĨ:</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <source>Format Medium</source> <translation>Formater medium</translation> </message> <message> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>Er du sikker (alle audiospor og data vil gÃĨ tapt) ?</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <source>Track %1</source> <translation>Spor %1</translation> </message> <message> <source>upload disabled because of DRM encryption</source> <translation>overfÃļring deaktivert fordi sporet er DRM sikkret</translation> </message> <message> <source>Error opening file for MP3 output</source> <translation>feil i ÃĨpningen av MP3filen som utdata</translation> </message> <message> <source>Error opening track: </source> <translation>feil i ÃĨpningen av sporet: </translation> </message> <message> <source>Error writing audio data</source> <translation>feil i skrivingen av audio dataen</translation> </message> <message> <source>upload aborted by the user</source> <translation>overfÃļring avbryttet av brukeren</translation> </message> <message> <source>Error reading audio data: </source> <translation>feil i lesingen av audiodataen: </translation> </message> <message> <source>Error opening file for ATRAC output</source> <translation>feil i ÃĨpningen av filen for ATRAC lagring</translation> </message> <message> <source>Error writing header</source> <translation>feil i skrivingen av toptekst</translation> </message> <message> <source>Error opening file for WAV output</source> <translation>feil i ÃĨpningen av filen for WAV lagring</translation> </message> <message> <source>Select MP3s for download</source> <translation>velg MP3er for nedlastning</translation> </message> <message> <source>Select directory for Upload</source> <translation>velg katalog for overfÃļring</translation> </message> <message> <source>Select directory of HiMD Medium</source> <translation>velg katalogen til HiMD mediumet</translation> </message> <message> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>feil i ÃĨpningen av HiMD data. Sjekk at du har valgt riktig rotmappe.</translation> </message> <message> <source>(disconnected)</source> <translation>(frakoblet)</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <source>&File</source> <translation>&Fil</translation> </message> <message> <source>&?</source> <translation>&?</translation> </message> <message> <source>&Download tracks onto MD</source> <translation>OverfÃļr spor &til MD</translation> </message> <message> <source>&Upload tracks from MD</source> <translation>OverfÃļr sport &fra MD</translation> </message> <message> <source>Re&name</source> <translation>&Endre navn</translation> </message> <message> <source>Rename selected</source> <translation>Endre navn pÃĨ valgte</translation> </message> <message> <source>D&elete selected</source> <translation>&Slett valgte</translation> </message> <message> <source>&Help</source> <translation>&Hjelp</translation> </message> <message> <source>&About</source> <translation>&Om</translation> </message> <message> <source>&Format MD</source> <translation>&Formater MD</translation> </message> <message> <source>Format MD</source> <translation>Formater MD</translation> </message> <message> <source>&Quit</source> <translation>&Avslutt</translation> </message> <message> <source>&Connect</source> <translation>&Koble til</translation> </message> <message> <source>HiMD path</source> <translation>HiMD sti</translation> </message> <message> <source>(disconnected)</source> <translation>(frakoblet)</translation> </message> <message> <source>>></source> <translation type="obsolete">>></translation> </message> <message> <source><<</source> <translation type="obsolete"><<</translation> </message> <message> <source>local directory</source> <translation>lokalmappe</translation> </message> <message> <source>/tmp</source> <translation type="obsolete">/tmp</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <source>Title</source> <translation>Tittel</translation> </message> <message> <source>Artist</source> <translation>Artist</translation> </message> <message> <source>Album</source> <translation>Album</translation> </message> <message> <source>Length</source> <translation>Lengde</translation> </message> <message> <source>Uploadable</source> <translation>OverfÃļrbar</translation> </message> <message> <source>Format</source> <translation>Format</translation> </message> <message> <source>Nr.</source> <translation>Nr.</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <source>upload finished</source> <translation>overfÃļring fullfÃļrt</translation> </message> <message> <source>%1 track(s) successfully uploaded</source> <translation>overfÃļringen av %1 spor lyktes</translation> </message> <message> <source>%1 track(s) could not be uploaded</source> <translation>overfÃļringen av %1 spor mislyktes</translation> </message> <message> <source>Track %1</source> <translation>Spor %1</translation> </message> <message> <source>current track: %1 - %2</source> <translation>nÃĨvÃĶrende spor: %1 - %2</translation> </message> <message> <source>no tracks selected</source> <translation>ingen sporer valgt</translation> </message> <message> <source>please wait while uploading %1 track(s)</source> <translation>vennligst vent mens overfÃļringen av %1 spor foregÃĨr</translation> </message> <message> <source>Track upload - QHiMDTransfer</source> <translation>Spor overfÃļrt - QHiMDTransfer</translation> </message> <message> <source>please wait while uploading XX track(s)</source> <translation>vennligst vent mens overfÃļringen av XX spor foregÃĨr</translation> </message> <message> <source>overall progress</source> <translation>total framdrift</translation> </message> <message> <source>current track: trknum - filename</source> <translation>nÃĨvÃĶrende spor: trknum - filename</translation> </message> <message> <source>xx track(s) successfully uploaded</source> <translation>overfÃļringen av xx spor lyktes</translation> </message> <message> <source>xx track(s) could not be uploaded</source> <translation>overfÃļringen av xx spor mislyktes</translation> </message> <message> <source>Show Details</source> <translation>Vis detaljer</translation> </message> <message> <source>Cancel</source> <translation>Avbryt</translation> </message> <message> <source>Close</source> <translation>Lukk</translation> </message> <message> <source>Tracknr.</source> <translation>Spornr.</translation> </message> <message> <source>Error message</source> <translation>Feilmelding</translation> </message> <message> <source>upload aborted by the user</source> <translation>overfÃļring avbrutt av brukeren</translation> </message> </context> </TS> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_nl.ts���������������������������������������������0000664�0000000�0000000�00000043233�12262477515�0023337�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="nl_NL"> <context> <name>QHiMDAboutDialog</name> <message> <location filename="qhimdaboutdialog.ui" line="35"/> <location filename="ui_qhimdaboutdialog.h" line="178"/> <source>About QHiMDTransfer</source> <translation>Over QHiMDTransfer</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="57"/> <location filename="ui_qhimdaboutdialog.h" line="185"/> <source>About</source> <translation>Over</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="85"/> <location filename="ui_qhimdaboutdialog.h" line="179"/> <source>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</source> <translation>Gratis software om muziek op MiniDisc te beheren. Aangeboden door het linux-minidisc-project:</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="100"/> <location filename="ui_qhimdaboutdialog.h" line="182"/> <source>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</source> <translation>Deze software valt onder de GNU-GPL v2 licentie. Voor meer informatie zie het bestand LICENSE in de programmamap.</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="204"/> <location filename="ui_qhimdaboutdialog.h" line="188"/> <source>Version:</source> <translation>Versie:</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="223"/> <location filename="ui_qhimdaboutdialog.h" line="189"/> <source>Build Date:</source> <translation>Uitgebracht op:</translation> </message> <message> <source><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>A free music transfer software for MiniDisc walkman.</p> <p><p> <p>Brought to you by the linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></source> <translation type="obsolete"><h3>QHiMDTransfer, Versie 0.0.1</h3> <p><p> <p>Gratis software om muziek op een MiniDisc walkman te beheren.</p> <p><p> <p>Aangeboden door het linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>Deze software valt onder de GNU GPL v2 licentie. Kijk in het bestand LICENSE in de programmamap voor nadere informatie.</p></translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="108"/> <location filename="ui_qhimdaboutdialog.h" line="186"/> <source>Contributors</source> <translation>Medewerkers</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="166"/> <location filename="ui_qhimdaboutdialog.h" line="187"/> <source>&Close</source> <translation>&Sluiten</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <location filename="qhimdformatdialog.ui" line="14"/> <location filename="ui_qhimdformatdialog.h" line="82"/> <source>Format Medium</source> <translation>Formatteren van de MiniDisc</translation> </message> <message> <location filename="qhimdformatdialog.ui" line="41"/> <location filename="ui_qhimdformatdialog.h" line="84"/> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>Wilt u de MiniDisc werkelijk formatteren (Alle audiotracks en bestanden gaan verloren)?</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <location filename="qhimdmainwindow.cpp" line="22"/> <source>Error opening file for MP3 output</source> <translation>Fout bij het openen van MP3-bestand voor conversie</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="27"/> <location filename="qhimdmainwindow.cpp" line="91"/> <location filename="qhimdmainwindow.cpp" line="151"/> <source>Error opening track: </source> <translation>Fout bij openen van track:</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="33"/> <location filename="qhimdmainwindow.cpp" line="103"/> <location filename="qhimdmainwindow.cpp" line="171"/> <source>Error writing audio data</source> <translation>Fout bij wegschrijven van de audiodata</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="40"/> <source>upload aborted by the user</source> <translation>Upload afgebroken door de gebruiker</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="46"/> <source>Error reading audio data: </source> <translation>Fout bij lezen van de audiodata:</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="86"/> <source>Error opening file for ATRAC output</source> <translation>Fout bij openen van het ATRAC-bestand voor conversie</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="96"/> <source>Error writing header</source> <translatorcomment>There is no Dutch word for ' header' . It is not translated in software.</translatorcomment> <translation>Fout bij wegschrijven header</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="146"/> <source>Error opening file for WAV output</source> <translation>Fout bij openen van WAV-bestand voor conversie</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="303"/> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>Fout bij openen van HiMD data. Controleer of de juiste root-directory van de HiMD-Walkman gekozen is.</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="338"/> <source>Track %1</source> <translation>Track %1</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="365"/> <source>upload disabled because of DRM encryption</source> <translation>Upload niet mogelijk wegens DRM-encryptie</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="415"/> <source>Select MP3s for download</source> <translation>Selecteer MP3's om te downloaden</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="425"/> <source>Select directory for Upload</source> <translation>Selecteer de map voor de upload</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="457"/> <source>Select directory of HiMD Medium</source> <translation>Selecteer de map voor de HiMD-schijf</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="536"/> <source>(disconnected)</source> <translation>(verbinding verbroken)</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <location filename="qhimdmainwindow.ui" line="14"/> <location filename="ui_qhimdmainwindow.h" line="284"/> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="38"/> <location filename="ui_qhimdmainwindow.h" line="300"/> <source>HiMD path</source> <translation>HiMD-pad</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="45"/> <location filename="ui_qhimdmainwindow.h" line="301"/> <source>(disconnected)</source> <translation>(verbinding verbroken)</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="138"/> <location filename="ui_qhimdmainwindow.h" line="304"/> <source>local directory</source> <translation>lokale map</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="176"/> <location filename="ui_qhimdmainwindow.h" line="305"/> <source>&File</source> <translation>&Bestand</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="192"/> <location filename="ui_qhimdmainwindow.h" line="306"/> <source>&?</source> <translation>&?</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="229"/> <location filename="ui_qhimdmainwindow.h" line="285"/> <source>&Download tracks onto MD</source> <translation>&Download tracks naar de MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="238"/> <location filename="ui_qhimdmainwindow.h" line="286"/> <source>&Upload tracks from MD</source> <translation>&Upload tracks van de MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="247"/> <location filename="ui_qhimdmainwindow.h" line="287"/> <source>Re&name</source> <translation>Her&noemen</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="250"/> <location filename="ui_qhimdmainwindow.h" line="289"/> <source>Rename selected</source> <translation>Hernoem geselecteerde bestanden</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="259"/> <location filename="ui_qhimdmainwindow.h" line="291"/> <source>D&elete selected</source> <translation>V&erwijder geslecteerde bestanden</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="268"/> <location filename="ui_qhimdmainwindow.h" line="292"/> <source>&Help</source> <translation>&Help</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="277"/> <location filename="ui_qhimdmainwindow.h" line="293"/> <source>&About</source> <translation>&Over</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="286"/> <location filename="ui_qhimdmainwindow.h" line="294"/> <source>&Format MD</source> <translation>&Formatteer de MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="289"/> <location filename="ui_qhimdmainwindow.h" line="296"/> <source>Format MD</source> <translation>Formatteer de MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="298"/> <location filename="ui_qhimdmainwindow.h" line="298"/> <source>&Quit</source> <translation>&Afsluiten</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="307"/> <location filename="ui_qhimdmainwindow.h" line="299"/> <source>&Connect</source> <translation>&Verbinden</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <location filename="qhimdmodel.cpp" line="149"/> <source>Nr.</source> <translation>Nr.</translation> </message> <message> <location filename="qhimdmodel.cpp" line="151"/> <source>Title</source> <translation>Titel</translation> </message> <message> <location filename="qhimdmodel.cpp" line="153"/> <source>Artist</source> <translation>Uitvoerende</translation> </message> <message> <location filename="qhimdmodel.cpp" line="155"/> <source>Album</source> <translation>Album</translation> </message> <message> <location filename="qhimdmodel.cpp" line="157"/> <source>Length</source> <translation>Duur</translation> </message> <message> <location filename="qhimdmodel.cpp" line="159"/> <source>Format</source> <translation>Bestandsformaat</translation> </message> <message> <location filename="qhimdmodel.cpp" line="161"/> <source>Uploadable</source> <translation>Te uploaden</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <location filename="qhimduploaddialog.ui" line="14"/> <location filename="ui_qhimduploaddialog.h" line="200"/> <source>Track upload - QHiMDTransfer</source> <translation>Track uploaden - QHiMDTransfer</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="55"/> <location filename="ui_qhimduploaddialog.h" line="202"/> <source>please wait while uploading XX track(s)</source> <translation>Wacht terwijl XX track(s) worden weggeschreven</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="69"/> <location filename="ui_qhimduploaddialog.h" line="203"/> <source>overall progress</source> <translation>Voortgang</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="93"/> <location filename="ui_qhimduploaddialog.h" line="204"/> <source>current track: trknum - filename</source> <translation>Huidige track: trknum - filename</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="108"/> <location filename="ui_qhimduploaddialog.h" line="205"/> <source>xx track(s) successfully uploaded</source> <translation>xx track(s) correct weggeschreven</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="115"/> <location filename="ui_qhimduploaddialog.h" line="206"/> <source>xx track(s) could not be uploaded</source> <translation>xx track(s) kon(den) niet worden weggeschreven</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="129"/> <location filename="ui_qhimduploaddialog.h" line="207"/> <source>Show Details</source> <translation>Laat details zien</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="142"/> <location filename="ui_qhimduploaddialog.h" line="208"/> <source>Cancel</source> <translation>Annuleer</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="149"/> <location filename="ui_qhimduploaddialog.h" line="209"/> <source>Close</source> <translation>Sluit</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="186"/> <location filename="ui_qhimduploaddialog.h" line="212"/> <source>Tracknr.</source> <translation>Tracknr.</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="191"/> <location filename="ui_qhimduploaddialog.h" line="211"/> <source>Error message</source> <translation>Foutmelding</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="10"/> <source>%1 track(s) could not be uploaded</source> <translation>%1 track(s) kon(den) niet worden weggeschreven</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="15"/> <source>Track %1</source> <translation>Track %1</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="28"/> <source>%1 track(s) successfully uploaded</source> <translation>%1 track(s) correct weggeschreven</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="33"/> <source>upload finished</source> <translation>Upload beÃŦeindigd</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="48"/> <source>current track: %1 - %2</source> <translation>huidige track: %1 - %2</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="74"/> <source>no tracks selected</source> <translation>geen tracks geslecteerd</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="79"/> <source>please wait while uploading %1 track(s)</source> <translation>Wacht terwijl track(s) %1 worden weggeschreven</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="135"/> <source>upload aborted by the user</source> <translation>Upload afgebroken door gebruiker</translation> </message> </context> </TS> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_pl.ts���������������������������������������������0000664�0000000�0000000�00000026531�12262477515�0023343�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="pl_PL"> <context> <name>QHiMDAboutDialog</name> <message> <source>About QHiMDTransfer</source> <translation>O...QHiMDTransfer</translation> </message> <message> <source><h1>About QHiMDTransfer</h1></source> <translation type="obsolete"><h1>O...QHiMDTransfer</h1></translation> </message> <message> <source><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>A free music transfer software for MiniDisc walkman.</p> <p><p> <p>Brought to you by the linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></source> <translation type="obsolete"><h3>QHiMDTransfer, Wersja 0.0.1</h3> <p></p> <p>Darmowe oprogramowanie do transferu muzyki dla walkmana MiniDisc</p> <p></p> <p>Dostarczone przez The linux-minidisc project:</p> <p></p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p>Oprogramowanie to jest objęte licencją GNU GPL v2. Przejrzyj plik LICENSE w folderze programu w celu uzyskania więcej informacji.</p></translation> </message> <message> <source>&Close</source> <translation>&Zamknij</translation> </message> <message> <source>About</source> <translation>O programie</translation> </message> <message> <source>Contributors</source> <translation>WspÃģłpracujący</translation> </message> <message> <source>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</source> <translation>Darmowe oprogramowanie do transferu muzyki dla walkmana MiniDisc. Dostarczone przez linux-minidisc project:</translation> </message> <message> <source>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</source> <translation>Oprogramowanie to jest objęte licencją GNU GPL v2. Przejrzyj plik LICENSE w folderze programu w celu uzyskania więcej informacji.</translation> </message> <message> <source>Version:</source> <translation>Wersja:</translation> </message> <message> <source>Build Date:</source> <translation>Data kompilacji:</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <source>Format Medium</source> <translation>Formatuj Nośnik</translation> </message> <message> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>Czy napewno sformatować MiniDisc (wszystkie ścieÅžki i dane zostaną utracone) ?</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <source>Error opening file for MP3 output</source> <translation>Błąd przy otwieraniu pliku dla wyjścia MP3</translation> </message> <message> <source>Error opening track: </source> <translation>Błąd otwierania ścieÅžki::</translation> </message> <message> <source>Error writing audio data</source> <translation>Błąd zapisu danych audio</translation> </message> <message> <source>upload aborted by the user</source> <translation>Wysyłanie anulowane przez uÅžytkownika</translation> </message> <message> <source>Error reading audio data: </source> <translation>Błąd odczytu danych audio: </translation> </message> <message> <source>Error opening file for ATRAC output</source> <translation>Błąd przy otwieraniu pliku dla wyjścia ATRAC</translation> </message> <message> <source>Error writing header</source> <translation>Błąd zapisu nagłÃģwka</translation> </message> <message> <source>Error opening file for WAV output</source> <translation>Błąd przy otwieraniu pliku dla wyjścia WAV</translation> </message> <message> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>Błąd otwierania danych HiMD. Upewnij się Åže wybrałeś prawidłowy katalog głÃģwny HiMD-Walkman. </translation> </message> <message> <source>Track %1</source> <translation>ŚcieÅžka %1</translation> </message> <message> <source>upload disabled because of DRM encryption</source> <translation>Wysyłanie zablokowane z powodu szyfrowania DRM</translation> </message> <message> <source>Select MP3s for download</source> <translation>Wybierz pliki MP3 do pobrania</translation> </message> <message> <source>Select directory for Upload</source> <translation>Wybierz katalog do Wysyłania</translation> </message> <message> <source>Select directory of HiMD Medium</source> <translation>Wybierz katalog nośnika HiMD</translation> </message> <message> <source>(disconnected)</source> <translation>(rozłączony)</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <source>HiMD path</source> <translation>ścieÅžka HiMD</translation> </message> <message> <source>(disconnected)</source> <translation>(rozłączony)</translation> </message> <message> <source>>></source> <translation type="obsolete">>></translation> </message> <message> <source><<</source> <translation type="obsolete"><<</translation> </message> <message> <source>local directory</source> <translation>katalog lokalny</translation> </message> <message> <source>/tmp</source> <translation type="obsolete">/tmp</translation> </message> <message> <source>&File</source> <translation>&Plik</translation> </message> <message> <source>&?</source> <translation>&?</translation> </message> <message> <source>&Download tracks onto MD</source> <translation>&Pobierz scieÅžki na MD</translation> </message> <message> <source>&Upload tracks from MD</source> <translation>&Wyślij ścieÅžki z MD</translation> </message> <message> <source>Re&name</source> <translation>&Zmień nazwę</translation> </message> <message> <source>Rename selected</source> <translation>Zmień nazwy zaznaczonych</translation> </message> <message> <source>D&elete selected</source> <translation>&Usuń zaznaczone</translation> </message> <message> <source>&Help</source> <translation>&Pomoc</translation> </message> <message> <source>&About</source> <translation>&O...</translation> </message> <message> <source>&Format MD</source> <translation>&Formatuj MD</translation> </message> <message> <source>Format MD</source> <translation>Formatuj MD</translation> </message> <message> <source>&Quit</source> <translation>&Zakończ</translation> </message> <message> <source>&Connect</source> <translation>&Połącz</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <source>Nr.</source> <translation>Nr.</translation> </message> <message> <source>Title</source> <translation>Tytuł</translation> </message> <message> <source>Artist</source> <translation>Wykonawca</translation> </message> <message> <source>Album</source> <translation>Album</translation> </message> <message> <source>Length</source> <translation>Czas trwania</translation> </message> <message> <source>Format</source> <translation>Format</translation> </message> <message> <source>Uploadable</source> <translation>MoÅžna wysyłać</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <source>Track upload - QHiMDTransfer</source> <translation>Wysyłanie ścieÅžki - QHiMDTransfer</translation> </message> <message> <source>please wait while uploading XX track(s)</source> <translation>Proszę czekać..trwa wysyłanie XX ścieÅžki (ścieÅžek)</translation> </message> <message> <source>overall progress</source> <translation>Postęp całkowity</translation> </message> <message> <source>current track: trknum - filename</source> <translation>bieŞąca ścieÅžka: trknr - nazwa pliku</translation> </message> <message> <source>xx track(s) successfully uploaded</source> <translation>xx ścieÅžek pomyślnie wysłanych</translation> </message> <message> <source>xx track(s) could not be uploaded</source> <translation>xx ścieÅžek nie mogło być wysłanych</translation> </message> <message> <source>Show Details</source> <translation>PokaÅž SzczegÃģły</translation> </message> <message> <source>Cancel</source> <translation>Przerwij</translation> </message> <message> <source>Close</source> <translation>Zamknij</translation> </message> <message> <source>Tracknr.</source> <translation>Nr ścieÅžki</translation> </message> <message> <source>Error message</source> <translation>Komunikat o błędzie</translation> </message> <message> <source>%1 track(s) could not be uploaded</source> <translation>%1 ścieÅžki nie mogły być wysłane</translation> </message> <message> <source>Track %1</source> <translation>ŚcieÅžka %1</translation> </message> <message> <source>%1 track(s) successfully uploaded</source> <translation>%1 ścieÅžki wysłane z powodzeniem</translation> </message> <message> <source>upload finished</source> <translation>wysyłanie zakończone</translation> </message> <message> <source>current track: %1 - %2</source> <translation>bieŞący utwÃģr: %1 - %2</translation> </message> <message> <source>no tracks selected</source> <translation>nie wybrano Åžadnej ścieÅžki</translation> </message> <message> <source>please wait while uploading %1 track(s)</source> <translation>proszę czekać trwa wysyłanie %1 ścieÅžek</translation> </message> <message> <source>upload aborted by the user</source> <translation>wysyłanie przerwane przez uÅžytkownika</translation> </message> </context> </TS> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_pt.ts���������������������������������������������0000664�0000000�0000000�00000026644�12262477515�0023360�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="pt_PT"> <context> <name>QHiMDAboutDialog</name> <message> <source>About QHiMDTransfer</source> <translation>Sobre o QHiMDTransfer</translation> </message> <message> <source><h1>About QHiMDTransfer</h1></source> <translation type="obsolete"><h1>Sobre o QHiMDTransfer</h1></translation> </message> <message> <source><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>A free music transfer software for MiniDisc walkman.</p> <p><p> <p>Brought to you by the linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></source> <translation type="obsolete"><h3>QHiMDTransfer, VersÃĢo 0.0.1</h3> <p><p> <p>Um software gratuito de transferÊncia de mÚsica para MiniDisc walkman.</p> <p><p> <p>Disponibilizado pelo projecto linux-minidisc:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>Este software estÃĄ coberto pela licença GNU GPL v2. Veja o ficheiro LICENSE na pasta do programa para mais informaçÃĢo.</p></translation> </message> <message> <source>&Close</source> <translation>&Fechar</translation> </message> <message> <source>About</source> <translation>Sobre</translation> </message> <message> <source>Contributors</source> <translation>Contribuidores</translation> </message> <message> <source>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</source> <translation>Um software gratuito de transferÊncia de mÚsica para MiniDisc walkman. Disponibilizado pelo projecto linux-minidisc:</translation> </message> <message> <source>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</source> <translation>Este software estÃĄ coberto pela licença GNU GPL v2. Veja o ficheiro LICENSE na pasta do programa para mais informaçÃĢo.</translation> </message> <message> <source>Version:</source> <translation>VersÃĢo:</translation> </message> <message> <source>Build Date:</source> <translation>Data de CompilaçÃĢo:</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <source>Format Medium</source> <translation>Formatar Meio</translation> </message> <message> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>Quer mesmo formatar o MiniDisc (todas as faixas de aÚdio e dados serÃĢo perdidas)?</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <source>Error opening file for MP3 output</source> <translation>Erro ao abrir ficheiro para saída de MP3</translation> </message> <message> <source>Error opening track: </source> <translation>Erro ao abrir a faixa: </translation> </message> <message> <source>Error writing audio data</source> <translation>Erro ao escrever dados de ÃĄudio</translation> </message> <message> <source>upload aborted by the user</source> <translation>carregamento abortado pelo utilizador</translation> </message> <message> <source>Error reading audio data: </source> <translation>Erro na leitura dos dados de ÃĄudio: </translation> </message> <message> <source>Error opening file for ATRAC output</source> <translation>Erro ao abrir ficheiro para saída de ATRAC</translation> </message> <message> <source>Error writing header</source> <translation>Erro na escrita de header</translation> </message> <message> <source>Error opening file for WAV output</source> <translation>Erro ao abrir ficheiro para saída de WAV</translation> </message> <message> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>Erro ao abrir dados HiMD. Certifique-se de que escolheu o directÃģrio raiz correcto do seu HiMD-Walkman. </translation> </message> <message> <source>Track %1</source> <translation>Faixa %1</translation> </message> <message> <source>upload disabled because of DRM encryption</source> <translation>carregamento desactivado por causa de encriptaçÃĢo DRM</translation> </message> <message> <source>Select MP3s for download</source> <translation>Seleccione os MP3 para baixar</translation> </message> <message> <source>Select directory for Upload</source> <translation>Seleccionar o directÃģrio para Carregamento</translation> </message> <message> <source>Select directory of HiMD Medium</source> <translation>Seleccionar o directÃģrio do Meio HiMD</translation> </message> <message> <source>(disconnected)</source> <translation>(desconectado)</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <source>HiMD path</source> <translation>Caminho do HiMD</translation> </message> <message> <source>(disconnected)</source> <translation>(desconectado)</translation> </message> <message> <source>>></source> <translation type="obsolete">>></translation> </message> <message> <source><<</source> <translation type="obsolete"><<</translation> </message> <message> <source>local directory</source> <translation>directÃģrio local</translation> </message> <message> <source>/tmp</source> <translation type="obsolete">/tmp</translation> </message> <message> <source>&File</source> <translation>&Ficheiro</translation> </message> <message> <source>&?</source> <translation>&?</translation> </message> <message> <source>&Download tracks onto MD</source> <translation>&Baixar faixas para o MD</translation> </message> <message> <source>&Upload tracks from MD</source> <translation>&Carregar faixas do MD</translation> </message> <message> <source>Re&name</source> <translation>Re&nomear</translation> </message> <message> <source>Rename selected</source> <translation>Renomear selecçÃĢo</translation> </message> <message> <source>D&elete selected</source> <translation>&Remover selecçÃĢo</translation> </message> <message> <source>&Help</source> <translation>&Ajuda</translation> </message> <message> <source>&About</source> <translation>&Sobre</translation> </message> <message> <source>&Format MD</source> <translation>&Formatar MD</translation> </message> <message> <source>Format MD</source> <translation>Formatar MD</translation> </message> <message> <source>&Quit</source> <translation>&Sair</translation> </message> <message> <source>&Connect</source> <translation>&Ligar</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <source>Nr.</source> <translation>Nr.</translation> </message> <message> <source>Title</source> <translation>Título</translation> </message> <message> <source>Artist</source> <translation>Artista</translation> </message> <message> <source>Album</source> <translation>Álbum</translation> </message> <message> <source>Length</source> <translation>DuraçÃĢo</translation> </message> <message> <source>Format</source> <translation>Formato</translation> </message> <message> <source>Uploadable</source> <translation>CarregÃĄvel</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <source>%1 track(s) could not be uploaded</source> <translation>%1 faixa(s) nÃĢo poderam ser carregadas</translation> </message> <message> <source>Track %1</source> <translation>Faixa %1</translation> </message> <message> <source>%1 track(s) successfully uploaded</source> <translation>%1 faixa(s) carregada(s) com sucesso</translation> </message> <message> <source>upload finished</source> <translation>carregamento concluído</translation> </message> <message> <source>current track: %1 - %2</source> <translation>faixa actual: %1 - %2</translation> </message> <message> <source>no tracks selected</source> <translation>nenhumas faixas seleccionadas</translation> </message> <message> <source>please wait while uploading %1 track(s)</source> <translation>por favor aguarde enquanto %1 faixa(s) sÃĢo carregadas</translation> </message> <message> <source>upload aborted by the user</source> <translation>carregamento abortado pelo utilizador</translation> </message> <message> <source>Track upload - QHiMDTransfer</source> <translation>Carregamento de faixas - QHiMDTransfer</translation> </message> <message> <source>please wait while uploading XX track(s)</source> <translation>por favor aguarde enquanto XX faixa(s) sÃĢo carregadas</translation> </message> <message> <source>overall progress</source> <translation>progresso geral</translation> </message> <message> <source>current track: trknum - filename</source> <translation>faixa actual: trknum - filename</translation> </message> <message> <source>xx track(s) successfully uploaded</source> <translation>xx faixa(s) carregada(s) com sucesso</translation> </message> <message> <source>xx track(s) could not be uploaded</source> <translation>xx faixa(s) nÃĢo puderam ser carregadas</translation> </message> <message> <source>Show Details</source> <translation>Mostrar Detalhes</translation> </message> <message> <source>Cancel</source> <translation>Cancelar</translation> </message> <message> <source>Close</source> <translation>Fechar</translation> </message> <message> <source>Tracknr.</source> <translation>Faixanr.</translation> </message> <message> <source>Error message</source> <translation>Mensagem de Erro</translation> </message> </context> </TS> ��������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_ru.ts���������������������������������������������0000664�0000000�0000000�00000031472�12262477515�0023356�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="ru_RU"> <context> <name>QHiMDAboutDialog</name> <message> <source>About QHiMDTransfer</source> <translation>О QHiMDTransfer</translation> </message> <message> <source><h1>About QHiMDTransfer</h1></source> <translation type="obsolete"><h1>О QHiMDTransfer</h1></translation> </message> <message> <source><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>A free music transfer software for MiniDisc walkman.</p> <p><p> <p>Brought to you by the linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></source> <translation type="obsolete"><h3>QHiMDTransfer, ВÐĩҀҁÐļŅ 0.0.1</h3> <p><p> <p>БÐĩҁÐŋÐŧÐ°Ņ‚Ð―Ð°Ņ ÐŋŅ€ÐūÐģŅ€Ð°ÐžÐžÐ° заÐģŅ€ŅƒÐ·ÐšÐļ ÐžŅƒÐ·Ņ‹ÐšÐļ ÐīÐŧŅ MiniDisc ÐŋÐŧÐĩÐĩŅ€ÐūÐē.</p> <p><p> <p>ÐĄÐūзÐīÐ°Ð―Ð° ÐŋŅ€ÐūÐĩÐšŅ‚ÐūО linux-minidisc:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>Ð­Ņ‚Ð° ÐŋŅ€ÐūÐģŅ€Ð°ÐžÐžÐ° Ð·Ð°Ņ‰Ðļ҉ÐĩÐ―Ð° GNU GPL v2 ÐŧÐļ҆ÐĩÐ―Ð·ÐļÐĩÐđ. ÐĄÐžÐū҂ҀÐļŅ‚Ðĩ Ņ„Ð°ÐđÐŧ LICENSE Ðē ÐŋаÐŋКÐĩ ҁ ÐŋŅ€ÐūÐģŅ€Ð°ÐžÐžÐūÐđ ÐīÐŧŅ ÐŋÐūÐīŅ€ÐūÐąÐ―Ðūҁ҂ÐĩÐđ.</p></translation> </message> <message> <source>&Close</source> <translation>Ð—Ð°ÐšŅ€Ņ‹Ņ‚ŅŒ (&C)</translation> </message> <message> <source>About</source> <translation>О ÐŋŅ€ÐūÐģŅ€Ð°ÐžÐžÐĩ</translation> </message> <message> <source>Contributors</source> <translation>ПÐūОÐūŅ‰Ð―ÐļКÐļ</translation> </message> <message> <source>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</source> <translation>БÐĩҁÐŋÐŧÐ°Ņ‚Ð―Ð°Ņ ÐŋŅ€ÐūÐģŅ€Ð°ÐžÐžÐ° заÐģŅ€ŅƒÐ·ÐšÐļ ÐžŅƒÐ·Ņ‹ÐšÐļ ÐīÐŧŅ MiniDisc ÐŋÐŧÐĩÐĩŅ€ÐūÐē. ÐĄÐūзÐīÐ°Ð―Ð° ÐŋŅ€ÐūÐĩÐšŅ‚ÐūО linux-minidisc:</translation> </message> <message> <source>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</source> <translation>Ð­Ņ‚Ð° ÐŋŅ€ÐūÐģŅ€Ð°ÐžÐžÐ° Ð·Ð°Ņ‰Ðļ҉ÐĩÐ―Ð° GNU GPL v2 ÐŧÐļ҆ÐĩÐ―Ð·ÐļÐĩÐđ. ÐĄÐžÐū҂ҀÐļŅ‚Ðĩ Ņ„Ð°ÐđÐŧ LICENSE Ðē ÐŋаÐŋКÐĩ ҁ ÐŋŅ€ÐūÐģŅ€Ð°ÐžÐžÐūÐđ ÐīÐŧŅ ÐŋÐūÐīŅ€ÐūÐąÐ―Ðūҁ҂ÐĩÐđ.</translation> </message> <message> <source>Version:</source> <translation>ВÐĩҀҁÐļŅ:</translation> </message> <message> <source>Build Date:</source> <translation>ÐīÐ°Ņ‚Ðĩ ҁÐūзÐīÐ°Ð―ÐļŅ:</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <source>Format Medium</source> <translation>ÐžŅ‚Ņ„ÐūŅ€ÐžÐ°Ņ‚ÐļŅ€ÐūÐēÐ°Ņ‚ŅŒ НÐūҁÐļŅ‚ÐĩÐŧҌ</translation> </message> <message> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>Ð’Ņ‹ ÐīÐĩÐđҁ҂ÐēÐļŅ‚ÐĩÐŧŅŒÐ―Ðū Ņ…ÐūŅ‚ÐļŅ‚Ðĩ Ðū҂҄ÐūŅ€ÐžÐ°Ņ‚ÐļŅ€ÐūÐēÐ°Ņ‚ŅŒ MiniDisc (Ð’ŅÐĩ Ð°ŅƒÐīÐļÐū ÐīÐūŅ€ÐūÐķКÐļ Ðļ ÐīÐ°Ð―Ð―Ņ‹Ðĩ ÐąŅƒÐīŅƒŅ‚ ŅƒŅ‚ÐĩŅ€ŅÐ―Ņ‹) ?</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <source>Error opening file for MP3 output</source> <translation>ÐžŅˆÐļÐąÐšÐ° ÐūŅ‚ÐšŅ€Ņ‹Ņ‚ÐļŅ Ņ„Ð°ÐđÐŧа ÐīÐŧŅ MP3 ÐēŅ‹ÐēÐūÐīа</translation> </message> <message> <source>Error opening track: </source> <translation>ÐžŅˆÐļÐąÐšÐ° ÐūŅ‚ÐšŅ€Ņ‹Ņ‚ÐļŅ ÐīÐūŅ€ÐūÐķКÐļ:</translation> </message> <message> <source>Error writing audio data</source> <translation>ÐžŅˆÐļÐąÐšÐ° заÐŋÐļҁÐļ Ð°ŅƒÐīÐļÐū ÐīÐ°Ð―Ð―Ņ‹Ņ…</translation> </message> <message> <source>upload aborted by the user</source> <translation>ЗаÐģŅ€ŅƒÐ·ÐšÐ° ÐūŅ‚ÐžÐĩÐ―ÐĩÐ―Ð° ÐŋÐūÐŧŅŒÐ·ÐūÐēÐ°Ņ‚ÐĩÐŧÐĩО</translation> </message> <message> <source>Error reading audio data: </source> <translation>ÐžŅˆÐļÐąÐšÐ° ҇҂ÐĩÐ―ÐļŅ Ð°ŅƒÐīÐļÐū ÐīÐ°Ð―Ð―Ņ‹Ņ…:</translation> </message> <message> <source>Error opening file for ATRAC output</source> <translation>ÐžŅˆÐļÐąÐšÐ° ÐūŅ‚ÐšŅ€Ņ‹Ņ‚ÐļŅ Ņ„Ð°ÐđÐŧа ÐīÐŧŅ ATRAC ÐēŅ‹ÐēÐūÐīа</translation> </message> <message> <source>Error writing header</source> <translation>ÐžŅˆÐļÐąÐšÐ° заÐŋÐļҁÐļ заÐģÐūÐŧÐūÐēКа</translation> </message> <message> <source>Error opening file for WAV output</source> <translation>ÐžŅˆÐļÐąÐšÐ° ÐūŅ‚ÐšŅ€Ņ‹Ņ‚ÐļŅ Ņ„Ð°ÐđÐŧа ÐīÐŧŅ WAV ÐēŅ‹ÐēÐūÐīа</translation> </message> <message> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>ÐžŅˆÐļÐąÐšÐ° ÐūŅ‚ÐšŅ€Ņ‹Ņ‚ÐļŅ HiMD ÐīÐ°Ð―Ð―Ņ‹Ņ…. ÐĢÐąÐĩÐīÐļŅ‚ÐĩҁҌ, ҇҂Ðū ÐēŅ‹ ÐēŅ‹ÐąŅ€Ð°ÐŧÐļ ÐŋŅ€Ð°ÐēÐļÐŧŅŒÐ―ŅƒŅŽ КÐūŅ€Ð―ÐĩÐēŅƒŅŽ ÐīÐļŅ€ÐĩÐšŅ‚ÐūŅ€ÐļŅŽ ÐēÐ°ŅˆÐĩÐģÐū HiMD ÐŋÐŧÐĩÐĩŅ€Ð°. </translation> </message> <message> <source>Track %1</source> <translation>ДÐūŅ€ÐūÐķКа %1</translation> </message> <message> <source>upload disabled because of DRM encryption</source> <translation>заÐģŅ€ŅƒÐ·ÐšÐ° Ð·Ð°ÐąÐŧÐūКÐļŅ€ÐūÐēÐ°Ð―Ð° Ðļз-за DRM ҈Ðļ҄ҀÐūÐēКÐļ</translation> </message> <message> <source>Select MP3s for download</source> <translation>Ð’Ņ‹ÐąÐĩŅ€ÐļŅ‚Ðĩ MP3 Ņ„Ð°ÐđÐŧŅ‹ ÐīÐŧŅ заÐģŅ€ŅƒÐ·ÐšÐļ Ð―Ð° ŅƒŅŅ‚Ņ€ÐūÐđҁ҂ÐēÐū</translation> </message> <message> <source>Select directory for Upload</source> <translation>Ð’Ņ‹ÐąÐĩŅ€ÐļŅ‚Ðĩ ÐīÐļŅ€ÐĩÐšŅ‚ÐūŅ€ÐļŅŽ ÐīÐŧŅ заÐģŅ€ŅƒÐ·ÐšÐļ Ð―Ð° PC</translation> </message> <message> <source>Select directory of HiMD Medium</source> <translation>Ð’Ņ‹ÐąÐĩŅ€ÐļŅ‚Ðĩ ÐīÐļŅ€ÐĩÐšŅ‚ÐūŅ€ÐļŅŽ HiMD Ð―ÐūҁÐļŅ‚ÐĩÐŧŅ</translation> </message> <message> <source>(disconnected)</source> <translation>(ÐūŅ‚ÐšÐŧŅŽŅ‡ÐĩÐ―Ðū)</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <source>HiMD path</source> <translation>ÐŸŅƒŅ‚ŅŒ К HiMD</translation> </message> <message> <source>(disconnected)</source> <translation>(ÐūŅ‚ÐšÐŧŅŽŅ‡ÐĩÐ―Ðū)</translation> </message> <message> <source>>></source> <translation type="obsolete">>></translation> </message> <message> <source><<</source> <translation type="obsolete"><<</translation> </message> <message> <source>local directory</source> <translation>ЛÐūКаÐŧŅŒÐ―Ð°Ņ ÐīÐļŅ€ÐĩÐšŅ‚ÐūŅ€ÐļŅ</translation> </message> <message> <source>/tmp</source> <translation type="obsolete">/tmp</translation> </message> <message> <source>&File</source> <translation>ÐĪаÐđÐŧ (&F)</translation> </message> <message> <source>&?</source> <translation>&?</translation> </message> <message> <source>&Download tracks onto MD</source> <translation>ЗаÐģŅ€ŅƒÐ·ÐļŅ‚ŅŒ ÐīÐūŅ€ÐūÐķКÐļ Ð―Ð° MD (&D)</translation> </message> <message> <source>&Upload tracks from MD</source> <translation>ЗаÐģŅ€ŅƒÐ·ÐļŅ‚ŅŒ ÐīÐūŅ€ÐūÐķКÐļ ҁ MD (&U)</translation> </message> <message> <source>Re&name</source> <translation>ПÐĩŅ€ÐĩÐļОÐĩÐ―ÐūÐēÐ°Ņ‚ŅŒ (&N)</translation> </message> <message> <source>Rename selected</source> <translation>ПÐĩŅ€ÐĩÐļОÐĩÐ―ÐūÐēÐ°Ņ‚ŅŒ ÐēŅ‹ÐīÐĩÐŧÐĩÐ―Ð―ÐūÐĩ</translation> </message> <message> <source>D&elete selected</source> <translation>ÐĢÐīаÐŧÐļŅ‚ŅŒ ÐēŅ‹ÐīÐĩÐŧÐĩÐ―Ð―ÐūÐĩ (&E)</translation> </message> <message> <source>&Help</source> <translation>ПÐūОÐūŅ‰ŅŒ (&H)</translation> </message> <message> <source>&About</source> <translation>О ÐŋŅ€ÐūÐģŅ€Ð°ÐžÐžÐĩ (&A)</translation> </message> <message> <source>&Format MD</source> <translation>ÐžŅ‚Ņ„ÐūŅ€ÐžÐ°Ņ‚ÐļŅ€ÐūÐēÐ°Ņ‚ŅŒ MD (&F)</translation> </message> <message> <source>Format MD</source> <translation>ÐžŅ‚Ņ„ÐūŅ€ÐžÐ°Ņ‚ÐļŅ€ÐūÐēÐ°Ņ‚ŅŒ MD</translation> </message> <message> <source>&Quit</source> <translation>Ð’Ņ‹ÐđŅ‚Ðļ (&Q)</translation> </message> <message> <source>&Connect</source> <translation>ПÐūÐīКÐŧŅŽŅ‡ÐļŅ‚ŅŒ (&C)</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <source>Nr.</source> <translation>№.</translation> </message> <message> <source>Title</source> <translation>НазÐēÐ°Ð―ÐļÐĩ</translation> </message> <message> <source>Artist</source> <translation>Ð˜ŅÐŋÐūÐŧÐ―ÐļŅ‚ÐĩÐŧҌ</translation> </message> <message> <source>Album</source> <translation>АÐŧŅŒÐąÐūО</translation> </message> <message> <source>Length</source> <translation>ДÐŧÐļŅ‚ÐĩÐŧŅŒÐ―ÐūŅŅ‚ŅŒ</translation> </message> <message> <source>Format</source> <translation>ÐĪÐūŅ€ÐžÐ°Ņ‚</translation> </message> <message> <source>Uploadable</source> <translation>ЗаÐģŅ€ŅƒÐķаÐĩÐžÐ°Ņ</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <source>Track upload - QHiMDTransfer</source> <translation>ЗаÐģŅ€ŅƒÐ·ÐšÐ° ÐīÐūŅ€ÐūÐķКÐļ - QHiMDTransfer</translation> </message> <message> <source>please wait while uploading XX track(s)</source> <translation>ÐŋÐūÐķаÐŧ҃ÐđŅŅ‚Ð° ÐŋÐūÐīÐūÐķÐīÐļŅ‚Ðĩ, ÐŋÐūКа заÐģŅ€ŅƒÐķаÐĩŅ‚ŅŅ XX ÐīÐūŅ€ÐūÐķКÐļ(ÐĩК)</translation> </message> <message> <source>overall progress</source> <translation>ÐūÐąŅ‰ÐļÐđ ÐŋŅ€ÐūÐģŅ€Ðĩҁҁ</translation> </message> <message> <source>current track: trknum - filename</source> <translation>Ņ‚ÐĩÐšŅƒŅ‰Ð°Ņ ÐīÐūŅ€ÐūÐķКа: trknum - filename</translation> </message> <message> <source>xx track(s) successfully uploaded</source> <translation>xx ÐīÐūŅ€ÐūÐķКÐļ(ÐĩК) ҃ҁÐŋÐĩŅˆÐ―Ðū заÐģŅ€ŅƒÐķÐĩÐ―Ņ‹ Ð―Ð° PC</translation> </message> <message> <source>xx track(s) could not be uploaded</source> <translation>xx ÐīÐūŅ€ÐūÐķКа(Ðļ/ÐĩК) Ð―Ðĩ ОÐūÐķÐĩŅ‚(ÐģŅƒŅ‚) ÐąŅ‹Ņ‚ŅŒ заÐģŅ€ŅƒÐķÐĩÐ―Ņ‹ Ð―Ð° PC</translation> </message> <message> <source>Show Details</source> <translation>ПÐūŅÐžÐū҂ҀÐĩŅ‚ŅŒ ÐŋÐūÐīŅ€ÐūÐąÐ―Ðūҁ҂Ðļ</translation> </message> <message> <source>Cancel</source> <translation>ÐžŅ‚ÐžÐĩÐ―Ð°</translation> </message> <message> <source>Close</source> <translation>Ð—Ð°ÐšŅ€Ņ‹Ņ‚ŅŒ</translation> </message> <message> <source>Tracknr.</source> <translation>ДÐūŅ€ÐūÐķКа №.</translation> </message> <message> <source>Error message</source> <translation>ÐĄÐūÐūÐąŅ‰ÐĩÐ―ÐļÐĩ ÐūÐą Ðū҈ÐļÐąÐšÐĩ</translation> </message> <message> <source>%1 track(s) could not be uploaded</source> <translation>%1 ÐīÐūŅ€ÐūÐķКÐļ(ÐĩК) Ð―Ðĩ ОÐūÐģŅƒŅ‚ ÐąŅ‹Ņ‚ŅŒ заÐģŅ€ŅƒÐķÐĩÐ―Ņ‹ Ð―Ð° PC</translation> </message> <message> <source>Track %1</source> <translation>ДÐūŅ€ÐūÐķКа %1</translation> </message> <message> <source>%1 track(s) successfully uploaded</source> <translation>%1 ÐīÐūŅ€ÐūÐķКÐļ(ÐĩК) ҃ҁÐŋÐĩŅˆÐ―Ðū заÐģŅ€ŅƒÐķÐĩÐ―Ņ‹ Ð―Ð° PC</translation> </message> <message> <source>upload finished</source> <translation>ЗаÐģŅ€ŅƒÐ·ÐšÐ° Ð―Ð° PC заÐēÐĩŅ€ŅˆÐĩÐ―Ð°</translation> </message> <message> <source>current track: %1 - %2</source> <translation>Ņ‚ÐĩÐšŅƒŅ‰Ð°Ņ ÐīÐūŅ€ÐūÐķКа: %1 - %2</translation> </message> <message> <source>no tracks selected</source> <translation>НÐĩ ÐēŅ‹ÐąŅ€Ð°Ð―Ņ‹ ÐīÐūŅ€ÐūÐķКÐļ</translation> </message> <message> <source>please wait while uploading %1 track(s)</source> <translation>ÐŋÐūÐķаÐđÐŧ҃ÐđŅŅ‚Ð° ÐŋÐūÐīÐūÐķÐīÐļŅ‚Ðĩ, ÐŋÐūКа заÐģŅ€ŅƒÐķаÐĩŅ‚ŅŅ %1 ÐīÐūŅ€ÐūÐķКÐļ(ÐĩК)</translation> </message> <message> <source>upload aborted by the user</source> <translation>ЗаÐģŅ€ŅƒÐ·ÐšÐ° ÐūŅ‚ÐžÐĩÐ―ÐĩÐ―Ð° ÐŋÐūÐŧŅŒÐ·ÐūÐēÐ°Ņ‚ÐĩÐŧÐĩО</translation> </message> </context> </TS> ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_sv.ts���������������������������������������������0000664�0000000�0000000�00000025454�12262477515�0023363�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="sv_SE"> <context> <name>QHiMDAboutDialog</name> <message> <source>About QHiMDTransfer</source> <translation>Om QHiMDTransfer</translation> </message> <message> <source><h1>About QHiMDTransfer</h1></source> <translation type="obsolete"><h1>Om QHiMDTransfer </h1></translation> </message> <message> <source><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>A free music transfer software for MiniDisc walkman.</p> <p><p> <p>Brought to you by the linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></source> <translation type="obsolete"><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>En fri ÃķverfÃķrings mjukvara fÃķr musik till MiniDisc walkman.</p> <p><p> <p>Gjordes mÃķjligt tack vare linux-minidisc projektet:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></translation> </message> <message> <source>&Close</source> <translation>&StÃĪng</translation> </message> <message> <source>About</source> <translation>Om</translation> </message> <message> <source>Contributors</source> <translation>Bidragsgivare</translation> </message> <message> <source>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</source> <translation>En fri ÃķverfÃķrings mjukvara fÃķr musik till MiniDisc walkman. Gjordes mÃķjligt tack vare linux-minidisc projektet:</translation> </message> <message> <source>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</source> <translation type="unfinished"></translation> </message> <message> <source>Version:</source> <translation>Versjon:</translation> </message> <message> <source>Build Date:</source> <translation>Laget pÃĨ:</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <source>Format Medium</source> <translation>Formatera Media</translation> </message> <message> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>Vill du verkligen formatera MiniDisken (Alla musikspÃĨr och data kommer att fÃķrsvinna) ?</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <source>Error opening file for MP3 output</source> <translation>Fel: GÃĨr inte att Ãķppna filen fÃķr MP3 utdata</translation> </message> <message> <source>Error opening track: </source> <translation>Fel: GÃĨr inte att Ãķppna spÃĨret:</translation> </message> <message> <source>Error writing audio data</source> <translation>Fel: Kan inte skriva ljud data</translation> </message> <message> <source>upload aborted by the user</source> <translation>uppladdningen stoppades av anvÃĪndaren</translation> </message> <message> <source>Error reading audio data: </source> <translation>Fel: kunde inte lÃĪsa ljud data: </translation> </message> <message> <source>Error opening file for ATRAC output</source> <translation>Fel: kan inte Ãķpppna fil fÃķr ATRAC utdata</translation> </message> <message> <source>Error writing header</source> <translation>Fel: kan inte skriva huvud</translation> </message> <message> <source>Error opening file for WAV output</source> <translation>Fel: Kan inte Ãķppna fil fÃķr WAV utdata</translation> </message> <message> <source>Select MP3s for download</source> <translation>VÃĪlj MP3s fÃķr nedladdning</translation> </message> <message> <source>Select directory for Upload</source> <translation>VÃĪlj en katalog fÃķr Uppladdning</translation> </message> <message> <source>Track %1</source> <translation>SpÃĨr %1</translation> </message> <message> <source>upload disabled because of DRM encryption</source> <translation>uppladdning avstÃĪngt pga DRM kryptering</translation> </message> <message> <source>Select directory of HiMD Medium</source> <translation>VÃĪlj katalog fÃķr HiMD Medium</translation> </message> <message> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>Fel nÃĪr HiMD data skulle Ãķppnas. Kontrollera att du valde korrekt rot katalog fÃķr din HiMD-Walkman. </translation> </message> <message> <source>(disconnected)</source> <translation>(nedkopplad)</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <source>&File</source> <translation>&Fil</translation> </message> <message> <source>&?</source> <translation>&?</translation> </message> <message> <source>&Download tracks onto MD</source> <translation>&Ladda ner spÃĨr till MD</translation> </message> <message> <source>&Upload tracks from MD</source> <translation>&Ladda upp spÃĨr frÃĨn MD</translation> </message> <message> <source>Re&name</source> <translation>&Byt namn</translation> </message> <message> <source>Rename selected</source> <translation>Byt namn vald</translation> </message> <message> <source>D&elete selected</source> <translation>&Ta bort vald</translation> </message> <message> <source>&Help</source> <translation>&HjÃĪlp</translation> </message> <message> <source>&About</source> <translation>&Om</translation> </message> <message> <source>&Format MD</source> <translation>&Formatera MD</translation> </message> <message> <source>Format MD</source> <translation>Formatera MD</translation> </message> <message> <source>&Quit</source> <translation>&Avsluta</translation> </message> <message> <source>&Connect</source> <translation>&Anslut</translation> </message> <message> <source>HiMD path</source> <translation>HiMD sÃķkvÃĪg</translation> </message> <message> <source>(disconnected)</source> <translation>(nedkopplad)</translation> </message> <message> <source>local directory</source> <translation>lokal katalog</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <source>Nr.</source> <translation>Nr.</translation> </message> <message> <source>Title</source> <translation>Titel</translation> </message> <message> <source>Artist</source> <translation>Artist</translation> </message> <message> <source>Album</source> <translation>Album</translation> </message> <message> <source>Length</source> <translation>LÃĪngd</translation> </message> <message> <source>Format</source> <translation>Format</translation> </message> <message> <source>Uploadable</source> <translation>Uppladdningsbar</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <source>%1 track(s) could not be uploaded</source> <translation>%1 spÃĨr kunde inte laddas upp</translation> </message> <message> <source>Track %1</source> <translation>SpÃĨr %1</translation> </message> <message> <source>%1 track(s) successfully uploaded</source> <translation>%1 spÃĨr laddades upp</translation> </message> <message> <source>upload finished</source> <translation>uppladdningen avslutad</translation> </message> <message> <source>current track: %1 - %2</source> <translation>nuvarande spÃĨr: %1 - %2</translation> </message> <message> <source>no tracks selected</source> <translation>inget spÃĨr valt</translation> </message> <message> <source>please wait while uploading %1 track(s)</source> <translation>var god vÃĪnta medan %1 spÃĨr laddas upp</translation> </message> <message> <source>upload aborted by the user</source> <translation>uppladdningen avbruten av anvÃĪndaren</translation> </message> <message> <source>Track upload - QHiMDTransfer</source> <translation>SpÃĨr uppladdning - QHiMDTransfer</translation> </message> <message> <source>please wait while uploading XX track(s)</source> <translation>var god vÃĪnta medan uppladdning XX spÃĨr</translation> </message> <message> <source>overall progress</source> <translation>fortlÃķpande process</translation> </message> <message> <source>current track: trknum - filename</source> <translation>nuvarande spÃĨr: trknum - filnamn</translation> </message> <message> <source>xx track(s) successfully uploaded</source> <translation>xx spÃĨr laddades upp</translation> </message> <message> <source>xx track(s) could not be uploaded</source> <translation>xx spÃĨr kunde inte laddas upp</translation> </message> <message> <source>Show Details</source> <translation>Visa Detaljer</translation> </message> <message> <source>Cancel</source> <translation>Avbryt</translation> </message> <message> <source>Close</source> <translation>StÃĪng</translation> </message> <message> <source>Tracknr.</source> <translation>SpÃĨrnr.</translation> </message> <message> <source>Error message</source> <translation>Felmeddelande</translation> </message> </context> </TS> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_tr.ts���������������������������������������������0000664�0000000�0000000�00000033254�12262477515�0023355�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="tr_TR"> <context> <name>QHiMDAboutDialog</name> <message> <location filename="qhimdaboutdialog.ui" line="35"/> <source>About QHiMDTransfer</source> <translation>QHiMDTransferi hakkinda</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="70"/> <source>About</source> <translation>Hakkinda</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="82"/> <source><h3>QHiMDTransfer, Version 0.0.1</h3> <p><p> <p>A free music transfer software for MiniDisc walkman.</p> <p><p> <p>Brought to you by the linux-minidisc project:</p> <p><p> <p>https://wiki.physik.fu-berlin.de/linux-minidisc</p> <p><p> <p>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</p></source> <translation type="unfinished"></translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="97"/> <source>Contributors</source> <translation>Yazarlar</translation> </message> <message> <source><h1>About QHiMDTransfer</h1></source> <translation type="obsolete"><h1>QHiMDTransferi hakkinda</h1></translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="151"/> <source>&Close</source> <translation>&Kapat</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <location filename="qhimdformatdialog.ui" line="14"/> <source>Format Medium</source> <translation>bicim ortami</translation> </message> <message> <location filename="qhimdformatdialog.ui" line="41"/> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>MiniDisc bicimlendirme (bÞtÞn ses kayitlari ve dosyalari silinecektir)?</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <location filename="qhimdmainwindow.cpp" line="22"/> <source>Error opening file for MP3 output</source> <translation>MP3 dosya acilmasinda bir hata olustu</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="27"/> <location filename="qhimdmainwindow.cpp" line="91"/> <location filename="qhimdmainwindow.cpp" line="152"/> <source>Error opening track: </source> <translation>parca acilmasinda bir hata olustu</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="33"/> <location filename="qhimdmainwindow.cpp" line="103"/> <location filename="qhimdmainwindow.cpp" line="172"/> <source>Error writing audio data</source> <translation>ses dosyasi yaziminda bir hata olustu</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="40"/> <source>upload aborted by the user</source> <translation>YÞkleme kullanici tarafindan iptal edildi</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="46"/> <source>Error reading audio data: </source> <translation>Ses dosyasi okumada hata olustu</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="86"/> <source>Error opening file for ATRAC output</source> <translation>ATRAC cikisi icin dosya aciliminda bir hata olustu</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="96"/> <source>Error writing header</source> <translation>Baslik yaziminda hata olustu</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="147"/> <source>Error opening file for WAV output</source> <translation>WAV cikisi icin dosya aciliminda bir hata olustu</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="283"/> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>HiMD dosyasi acilisinda bir hata olustu: Dogru kaynak dizini sectiginizden emin olunuz. </translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="318"/> <source>Track %1</source> <translation>Parca %1</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="345"/> <source>upload disabled because of DRM encryption</source> <translation>DRM sifrelemesi nedenilye yÞkleme gerceklestirilemedi</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="393"/> <source>Select MP3s for download</source> <translation>yÞkleme icin MP3 sec</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="403"/> <source>Select directory for Upload</source> <translation>yÞkleme icin bir dizin sec</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="435"/> <source>Select directory of HiMD Medium</source> <translation>HiMD ortami dizininden sec</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="514"/> <source>(disconnected)</source> <translation>(Baglanti koptu)</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <location filename="qhimdmainwindow.ui" line="14"/> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="38"/> <source>HiMD path</source> <translation>HiMD yolu</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="45"/> <source>(disconnected)</source> <translation>(baglanti koptu)</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="138"/> <source>local directory</source> <translation>yerel rehber</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="176"/> <source>&File</source> <translation>&Dosya</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="192"/> <source>&?</source> <translation>&?</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="229"/> <source>&Download tracks onto MD</source> <translation>MD Þzerinden parcayi &indir</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="238"/> <source>&Upload tracks from MD</source> <translation>MD den parcayi &yÞkle</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="247"/> <source>Re&name</source> <translation>A&d degisirme secildi</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="250"/> <source>Rename selected</source> <translation>Ad degistirme secildi</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="259"/> <source>D&elete selected</source> <translation>Secileni& sil</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="268"/> <source>&Help</source> <translation>&Yardim</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="277"/> <source>&About</source> <translation>&Hakkinda</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="286"/> <source>&Format MD</source> <translation>&Bicim MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="289"/> <source>Format MD</source> <translation>Bicim MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="298"/> <source>&Quit</source> <translation>&Cik</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="307"/> <source>&Connect</source> <translation>&Baglan</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <location filename="qhimdmodel.cpp" line="149"/> <source>Nr.</source> <translation>no:</translation> </message> <message> <location filename="qhimdmodel.cpp" line="151"/> <source>Title</source> <translation>Baslik</translation> </message> <message> <location filename="qhimdmodel.cpp" line="153"/> <source>Artist</source> <translation>Artist</translation> </message> <message> <location filename="qhimdmodel.cpp" line="155"/> <source>Album</source> <translation>Album</translation> </message> <message> <location filename="qhimdmodel.cpp" line="157"/> <source>Length</source> <translation>Uzunluk</translation> </message> <message> <location filename="qhimdmodel.cpp" line="159"/> <source>Format</source> <translation>Bicim</translation> </message> <message> <location filename="qhimdmodel.cpp" line="161"/> <source>Uploadable</source> <translation>YÞklenebilirlik</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <location filename="qhimduploaddialog.ui" line="14"/> <source>Track upload - QHiMDTransfer</source> <translation>YÞkleme - QHIMD transfer</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="55"/> <source>please wait while uploading XX track(s)</source> <translation>YÞkleme yapilirken lÞtfen bekleyin: XX kisim</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="69"/> <source>overall progress</source> <translation>Genel ilerleme</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="93"/> <source>current track: trknum - filename</source> <translation>gÞncel : kisim no - dosya adi</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="108"/> <source>xx track(s) successfully uploaded</source> <translation>xx kisim basariyla yÞklendi</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="115"/> <source>xx track(s) could not be uploaded</source> <translation>xx. kisim yÞklenemedi</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="129"/> <source>Show Details</source> <translation>Ayrintilari gÃķster</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="142"/> <source>Cancel</source> <translation>Iptal</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="149"/> <source>Close</source> <translation>Kapat</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="186"/> <source>Tracknr.</source> <translation>Parca no.</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="191"/> <source>Error message</source> <translation>Hata mesaji</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="10"/> <source>%1 track(s) could not be uploaded</source> <translation>%1 kisim yÞklenemedi</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="15"/> <source>Track %1</source> <translation>kisim %1</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="28"/> <source>%1 track(s) successfully uploaded</source> <translation>%1 bÃķlÞm basariyla yÞklendi</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="33"/> <source>upload finished</source> <translation>YÞkleme tamamlandi</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="48"/> <source>current track: %1 - %2</source> <translation>mevcut parca:%1 - %2</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="74"/> <source>no tracks selected</source> <translation>Herhangi bir Ãķge secilmedi</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="79"/> <source>please wait while uploading %1 track(s)</source> <translation>LÞtfen yÞkleme yapilirken bekleyin.%1yÞklendi</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="135"/> <source>upload aborted by the user</source> <translation>YÞkleme kullanici tarafindan iptal edildi</translation> </message> </context> </TS> ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdtransfer_uk.ts���������������������������������������������0000664�0000000�0000000�00000036057�12262477515�0023353�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> <TS version="2.0" language="uk_UA"> <context> <name>QHiMDAboutDialog</name> <message> <location filename="qhimdaboutdialog.ui" line="35"/> <source>About QHiMDTransfer</source> <translation>ÐŸŅ€Ðū QHiMDTransfer</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="57"/> <source>About</source> <translation>ÐŸŅ€Ðū ÐŋŅ€ÐūÐģŅ€Ð°ÐžŅƒ</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="88"/> <source>A free music transfer software for MiniDisc Walkman. Brought to you by the linux-minidisc project:</source> <translation>БÐĩзКÐūŅˆŅ‚ÐūÐēÐ―ÐļÐđ ÐŋŅ€ÐūÐģŅ€Ð°ÐžÐ―Ðđ ÐŋŅ€ÐūÐīŅƒÐšŅ‚ ÐīÐŧŅ ÐŋÐĩŅ€ÐĩÐīÐ°Ņ‡Ņ– ÐžŅƒÐ·ÐļŅ‡Ð―ÐļŅ… Ņ„Ð°ÐđÐŧŅ–Ðē Ð―Ð° MiniDisc Walkman. Ð’Ņ–Ðī ŅƒŅ‡Ð°ŅÐ―ÐļÐšŅ–Ðē ÐŋŅ€ÐūÐĩÐšŅ‚Ņƒ linux minidisc project:</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="106"/> <source>This software is covered by the GNU GPL v2 license. See the file LICENSE in the program folder for more information.</source> <translation>ÐĶÐĩÐđ ÐŋŅ€ÐūÐģŅ€Ð°ÐžÐ―ÐļÐđ ÐŋŅ€ÐūÐīŅƒÐšŅ‚ Ð·Ð°Ņ…Ðļ҉ÐĩÐ―ÐļÐđ ÐŧҖ҆ÐĩÐ―Ð·Ņ–Ņ”ŅŽ GNU GPL v2. За ÐąŅ–ÐŧҌ҈ ÐīÐĩŅ‚Ð°ÐŧŅŒÐ―ÐūŅŽ Ņ–Ð―Ņ„ÐūŅ€ÐžÐ°Ņ†Ņ–Ņ”ŅŽ ÐīÐļÐēŅ–Ņ‚ŅŒŅŅ Ņ„Ð°ÐđÐŧ LICENSE Ðē Ņ‚Ðĩ҆Җ з ÐŋŅ€ÐūÐģŅ€Ð°ÐžÐūŅŽ.</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="117"/> <source>Contributors</source> <translation>АÐēŅ‚ÐūŅ€Ðļ</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="175"/> <source>&Close</source> <translation>&Ð—Ð°ÐšŅ€ÐļŅ‚Ðļ</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="213"/> <source>Version:</source> <translation>ВÐĩŅ€ŅŅ–Ņ:</translation> </message> <message> <location filename="qhimdaboutdialog.ui" line="232"/> <source>Build Date:</source> <translation>Ð”Ð°Ņ‚Ð° Ð·ÐąŅ–Ņ€ÐšÐļ:</translation> </message> </context> <context> <name>QHiMDFormatDialog</name> <message> <location filename="qhimdformatdialog.ui" line="14"/> <source>Format Medium</source> <translation>ÐĪÐūŅ€ÐžÐ°Ņ‚ŅƒÐēÐ°Ņ‚Ðļ</translation> </message> <message> <location filename="qhimdformatdialog.ui" line="41"/> <source>Really format MiniDisc (all audio-tracks and data will be lost) ?</source> <translation>ÐĄÐŋŅ€Ð°ÐēÐīŅ– Ņ„ÐūŅ€ÐžÐ°Ņ‚ŅƒÐēÐ°Ņ‚Ðļ MiniDisc (ÐēҁҖ ÐīÐ°Ð―Ņ– ÐąŅƒÐīŅƒŅ‚ŅŒ ÐąŅƒÐīŅƒŅ‚ŅŒ Ð·Ð―Ðļ҉ÐĩÐ―Ņ–)?</translation> </message> </context> <context> <name>QHiMDMainWindow</name> <message> <location filename="qhimdmainwindow.cpp" line="22"/> <source>Error opening file for MP3 output</source> <translation>ПÐūОÐļÐŧКа ÐēŅ–ÐīÐšŅ€ÐļŅ‚Ņ‚Ņ Ņ„Ð°ÐđÐŧ҃ ҃ Ņ„ÐūŅ€ÐžÐ°Ņ‚Ņ– MP3</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="27"/> <location filename="qhimdmainwindow.cpp" line="91"/> <location filename="qhimdmainwindow.cpp" line="151"/> <source>Error opening track: </source> <translation>ПÐūОÐļÐŧКа ÐēŅ–ÐīÐšŅ€ÐļŅ‚Ņ‚Ņ ҂ҀÐĩÐšŅƒ:</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="33"/> <location filename="qhimdmainwindow.cpp" line="103"/> <location filename="qhimdmainwindow.cpp" line="171"/> <source>Error writing audio data</source> <translation>ПÐūОÐļÐŧКа заÐŋÐļҁ҃ Ð°ŅƒÐīŅ–Ðū ÐīÐ°Ð―ÐļŅ…</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="40"/> <source>upload aborted by the user</source> <translation>Ð’Ņ–ÐīÐēÐ°Ð―Ņ‚Ð°ÐķÐĩÐ―Ð―Ņ ŅÐšÐ°Ņ‡ÐūÐēÐ°Ð―Ðĩ КÐūŅ€ÐļŅŅ‚ŅƒÐēÐ°Ņ‡ÐĩО</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="46"/> <source>Error reading audio data: </source> <translation>ПÐūОÐļÐŧКа ҇ÐļŅ‚Ð°Ð―Ð―Ņ Ð°ŅƒÐīŅ–Ðū ÐīÐ°Ð―ÐļŅ…: </translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="86"/> <source>Error opening file for ATRAC output</source> <translation>ПÐūОÐļÐŧКа ÐēŅ–ÐīÐšŅ€ÐļŅ‚Ņ‚Ņ Ņ„Ð°ÐđÐŧ҃ ҃ Ņ„ÐūŅ€ÐžÐ°Ņ‚Ņ– ATRAC</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="96"/> <source>Error writing header</source> <translation>ПÐūОÐļÐŧКа заÐŋÐļҁ҃ заÐģÐūÐŧÐūÐēÐšŅƒ</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="146"/> <source>Error opening file for WAV output</source> <translation>ПÐūОÐļÐŧКа ÐēŅ–ÐīÐšŅ€ÐļŅ‚Ņ‚Ņ Ņ„Ð°ÐđÐŧ҃ ҃ Ņ„ÐūŅ€ÐžÐ°Ņ‚Ņ– WAV</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="306"/> <source>Error opening HiMD data. Make sure you chose the proper root directory of your HiMD-Walkman. </source> <translation>ПÐūОÐļÐŧКа ÐēŅ–ÐīÐšŅ€ÐļŅ‚Ņ‚Ņ HiMD. ПÐĩŅ€ÐĩКÐūÐ―Ð°ÐđŅ‚ÐĩҁҌ ҉Ðū КÐūŅ€ÐĩÐ―ÐĩÐēÐļÐđ ÐšÐ°Ņ‚Ð°ÐŧÐūÐģ ÐēÐ°ŅˆÐūÐģÐū HiMD Walkman ÐēÐļÐąŅ€Ð°Ð―Ðū ÐēŅ–Ņ€Ð―Ðū.</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="341"/> <source>Track %1</source> <translation>ÐĒŅ€ÐĩК %1</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="368"/> <source>upload disabled because of DRM encryption</source> <translation>ЗаÐēÐ°Ð―Ņ‚Ð°ÐķÐĩÐ―Ð―Ņ Ð―ÐĩÐīÐūŅŅ‚ŅƒÐŋÐ―Ðĩ ҇ÐĩŅ€Ðĩз заКÐūÐīÐūÐēÐ°Ð―ÐļÐđ DRM</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="418"/> <source>Select MP3s for download</source> <translation>ВÐļÐąÐĩŅ€Ņ–Ņ‚ŅŒ MP3 Ņ„Ð°ÐđÐŧÐļ ÐīÐŧŅ заÐēÐ°Ð―Ņ‚Ð°ÐķÐĩÐ―Ð―Ņ</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="428"/> <source>Select directory for Upload</source> <translation>ВÐļÐąÐĩŅ€Ņ–Ņ‚ŅŒ Ņ‚ÐĩÐšŅƒ ÐīÐŧŅ заÐēÐ°Ð―Ņ‚Ð°ÐķÐĩÐ―Ð―Ņ</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="460"/> <source>Select directory of HiMD Medium</source> <translation>ÐžÐąÐĩŅ€Ņ–Ņ‚ŅŒ Ņ‚ÐĩÐšŅƒ ÐīÐŧŅ HiMD</translation> </message> <message> <location filename="qhimdmainwindow.cpp" line="549"/> <source>(disconnected)</source> <translation>(ÐēŅ–Ðī'Ņ”ÐīÐ―Ð°Ð―Ðū)</translation> </message> </context> <context> <name>QHiMDMainWindowClass</name> <message> <location filename="qhimdmainwindow.ui" line="14"/> <source>QHiMDTransfer</source> <translation>QHiMDTransfer</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="38"/> <source>HiMD path</source> <translation>ÐĻÐŧŅŅ… ÐīÐū HiMD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="45"/> <source>(disconnected)</source> <translation>(ÐēŅ–Ðī'Ņ”ÐīÐ―Ð°Ð―Ðū)</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="144"/> <source>local directory</source> <translation>ЛÐūКаÐŧŅŒÐ―Ð° Ņ‚ÐĩКа</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="182"/> <source>&File</source> <translation>&ÐĪаÐđÐŧ</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="198"/> <source>&?</source> <translation>&?</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="235"/> <source>&Download tracks onto MD</source> <translation>&ЗаÐēÐ°Ð―Ņ‚Ð°ÐķÐļŅ‚Ðļ ҂ҀÐĩКÐļ Ð―Ð° MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="244"/> <source>&Upload tracks from MD</source> <translation>ÐĄ&ÐšÐ°Ņ‡Ð°Ņ‚Ðļ ҂ҀÐĩКÐļ з MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="253"/> <source>Re&name</source> <translation>ПÐĩŅ€&ÐĩÐđОÐĩÐ―ŅƒÐēÐ°Ņ‚Ðļ</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="256"/> <source>Rename selected</source> <translation>ПÐĩŅ€ÐĩÐđОÐĩÐ―ŅƒÐēÐ°Ņ‚Ðļ ÐēÐļÐąŅ€Ð°Ð―Ņ–</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="265"/> <source>D&elete selected</source> <translation>ВÐļ&ÐŧŅƒŅ‡ÐļŅ‚Ðļ ÐēÐļÐąŅ€Ð°Ð―Ņ–</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="274"/> <source>&Help</source> <translation>&ДÐūÐŋÐūОÐūÐģа</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="283"/> <source>&About</source> <translation>&ÐŸŅ€Ðū</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="292"/> <source>&Format MD</source> <translation>&ÐĪÐūŅ€ÐžÐ°Ņ‚ŅƒÐēÐ°Ņ‚Ðļ MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="295"/> <source>Format MD</source> <translation>ÐĪÐūŅ€ÐžÐ°Ņ‚ŅƒÐēÐ°Ņ‚Ðļ MD</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="304"/> <source>&Quit</source> <translation>ВÐļŅ…Ņ–&Ðī</translation> </message> <message> <location filename="qhimdmainwindow.ui" line="313"/> <source>&Connect</source> <translation>&ÐŸŅ–ÐīКÐŧŅŽŅ‡ÐļŅ‚Ðļ</translation> </message> </context> <context> <name>QHiMDTracksModel</name> <message> <location filename="qhimdmodel.cpp" line="149"/> <source>Nr.</source> <translation>Nr.</translation> </message> <message> <location filename="qhimdmodel.cpp" line="151"/> <source>Title</source> <translation>НазÐēа</translation> </message> <message> <location filename="qhimdmodel.cpp" line="153"/> <source>Artist</source> <translation>ВÐļКÐūÐ―Ð°ÐēÐĩŅ†ŅŒ</translation> </message> <message> <location filename="qhimdmodel.cpp" line="155"/> <source>Album</source> <translation>АÐŧŅŒÐąÐūО</translation> </message> <message> <location filename="qhimdmodel.cpp" line="157"/> <source>Length</source> <translation>ÐĒŅ€ÐļÐēаÐŧŅ–ŅŅ‚ŅŒ</translation> </message> <message> <location filename="qhimdmodel.cpp" line="159"/> <source>Format</source> <translation>ÐĪÐūŅ€ÐžÐ°Ņ‚</translation> </message> <message> <location filename="qhimdmodel.cpp" line="161"/> <source>Uploadable</source> <translation>ЗаÐēÐ°Ð―Ņ‚Ð°Ðķ҃ÐēÐ°Ð―ÐļÐđ</translation> </message> </context> <context> <name>QHiMDUploadDialog</name> <message> <location filename="qhimduploaddialog.ui" line="14"/> <source>Track upload - QHiMDTransfer</source> <translation>ЗаÐēÐ°Ð―Ņ‚Ð°ÐķÐĩÐ―Ð―Ņ ҂ҀÐĩÐšŅ–Ðē - QHiMDTransfe</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="55"/> <source>please wait while uploading XX track(s)</source> <translation>ÐąŅƒÐīҌ-ÐŧÐ°ŅÐšÐ° Ð·Ð°Ņ‡ÐĩКаÐđŅ‚Ðĩ Ð―Ð° заÐēÐ°Ð―Ņ‚Ð°ÐķÐĩÐ―Ð―Ņ XX ҂ҀÐĩÐšŅ–Ðē</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="69"/> <source>overall progress</source> <translation>ЗаÐģаÐŧŅŒÐ―ÐļÐđ ÐŋŅ€ÐūÐģŅ€Ðĩҁ</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="93"/> <source>current track: trknum - filename</source> <translation>ПÐūŅ‚ÐūŅ‡Ð―ÐļÐđ ҂ҀÐĩК: trknum - filename</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="108"/> <source>xx track(s) successfully uploaded</source> <translation>xx ҂ҀÐĩÐšŅ–Ðē ҃ҁÐŋŅ–ŅˆÐ―Ðū заÐēÐ°Ð―Ņ‚Ð°ÐķÐĩÐ―Ðū</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="115"/> <source>xx track(s) could not be uploaded</source> <translation>xx ҂ҀÐĩÐšŅ–Ðē Ð―Ðĩ ÐēÐīаÐŧÐūҁҌ заÐēÐ°Ð―Ņ‚Ð°ÐķÐļŅ‚Ðļ</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="129"/> <source>Show Details</source> <translation>ПÐūÐšÐ°Ð·Ð°Ņ‚Ðļ ДÐĩŅ‚Ð°ÐŧŅ–</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="142"/> <source>Cancel</source> <translation>ÐĄÐšÐ°ŅŅƒÐēÐ°Ņ‚Ðļ</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="149"/> <source>Close</source> <translation>Ð—Ð°ÐšŅ€ÐļŅ‚Ðļ</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="186"/> <source>Tracknr.</source> <translation>НÐūОÐĩŅ€ ҂ҀÐĩÐšŅƒ.</translation> </message> <message> <location filename="qhimduploaddialog.ui" line="191"/> <source>Error message</source> <translation>ПÐūОÐļÐŧКа</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="10"/> <source>%1 track(s) could not be uploaded</source> <translation>%1 ҂ҀÐĩÐšŅ–Ðē Ð―Ðĩ ÐēÐīаÐŧÐūҁҌ заÐēÐ°Ð―Ņ‚Ð°ÐķÐļŅ‚Ðļ</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="15"/> <source>Track %1</source> <translation>ÐĒŅ€ÐĩК %1</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="28"/> <source>%1 track(s) successfully uploaded</source> <translation>%1 ҂ҀÐĩÐšŅ–Ðē ҃ҁÐŋŅ–ŅˆÐ―Ðū заÐēÐ°Ð―Ņ‚Ð°ÐķÐĩÐ―Ðū</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="33"/> <source>upload finished</source> <translation>ЗаÐēÐ°Ð―Ņ‚Ð°ÐķÐĩÐ―Ð―Ņ заÐēÐĩŅ€ŅˆÐĩÐ―Ðū</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="48"/> <source>current track: %1 - %2</source> <translation>ÐŋÐūŅ‚ÐūŅ‡Ð―ÐļÐđ ҂ҀÐĩК: %1 - %2</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="74"/> <source>no tracks selected</source> <translation>Ð―Ðĩ ÐēÐļÐąŅ€Ð°Ð―Ðū ÐķÐūÐīÐ―ÐūÐģÐū ҂ҀÐĩÐšŅƒ</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="79"/> <source>please wait while uploading %1 track(s)</source> <translation>Ð·Ð°Ņ‡ÐĩКаÐđŅ‚Ðĩ, заÐēÐ°Ð―Ņ‚Ð°ÐķŅƒŅŽŅ‚ŅŒŅŅ %1 ҂ҀÐĩÐšŅ–Ðē</translation> </message> <message> <location filename="qhimduploaddialog.cpp" line="135"/> <source>upload aborted by the user</source> <translation>заÐēÐ°Ð―Ņ‚Ð°ÐķÐĩÐ―Ð―Ņ ÐŋŅ€ÐļÐŋÐļÐ―ÐĩÐ―Ðū КÐūŅ€ÐļŅŅ‚ŅƒÐēÐ°Ņ‡ÐĩО</translation> </message> </context> </TS> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimduploaddialog.cpp�������������������������������������������0000664�0000000�0000000�00000007452�12262477515�0023625�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "qhimduploaddialog.h" #include "ui_qhimduploaddialog.h" void QHiMDUploadDialog::trackFailed(const QString & errmsg) { allfinished -= thisfilefinished; allfinished += thisfileblocks; m_ui->AllPBar->setValue(allfinished); m_ui->failed_text->setText(tr("%1 track(s) could not be uploaded").arg(++fcount)); QTreeWidgetItem * ErrorMsg; ErrorMsg = new QTreeWidgetItem(0); ErrorMsg->setText(0, tr("Track %1").arg(tracknum)); ErrorMsg->setText(1, errmsg); m_ui->ErrorList->insertTopLevelItem(0, ErrorMsg); m_ui->details_button->setEnabled(true); } void QHiMDUploadDialog::trackSucceeded() { /* should do nothing, just to be sure */ allfinished -= thisfilefinished; allfinished += thisfileblocks; m_ui->AllPBar->setValue(allfinished); m_ui->success_text->setText(tr("%1 track(s) successfully uploaded").arg(++scount)); } void QHiMDUploadDialog::finished() { m_ui->curtrack_label->setText(tr("upload finished")); /* Prevent shrinking of the box when hiding the indicators */ m_ui->current->setMinimumSize(m_ui->current->size()); m_ui->TrkPBar->hide(); /* set AllPBar to 100% if it is not used during transfer, * current netmd uploads doesnÂīt set the range correctly */ if(m_ui->AllPBar->maximum() == 0) { m_ui->AllPBar->setMaximum(1); m_ui->AllPBar->setValue(1); } m_ui->curtrack_label->hide(); m_ui->cancel_button->hide(); m_ui->close_button->show(); return; } void QHiMDUploadDialog::starttrack(const QMDTrack & trk, const QString & title) { tracknum = trk.tracknum() + 1; m_ui->curtrack_label->setText(tr("current track: %1 - %2").arg(tracknum).arg(title)); thisfileblocks = trk.blockcount(); thisfilefinished = 0; m_ui->TrkPBar->setRange(0, thisfileblocks); m_ui->TrkPBar->reset(); } void QHiMDUploadDialog::blockTransferred() { m_ui->TrkPBar->setValue(++thisfilefinished); m_ui->AllPBar->setValue(++allfinished); } void QHiMDUploadDialog::init(int trackcount, int totalblocks) { allblocks = totalblocks; allfinished = 0; m_ui->AllPBar->setRange(0, allblocks); m_ui->AllPBar->reset(); canceled = false; scount = fcount = 0; m_ui->success_text->setText(""); m_ui->failed_text->setText(""); if(!trackcount) { m_ui->alltrack_label->setText(tr("no tracks selected")); finished(); } else { m_ui->alltrack_label->setText(tr("please wait while uploading %1 track(s)").arg(trackcount)); /* undo QHiMDUploadDialog::finished */ m_ui->TrkPBar->show(); m_ui->curtrack_label->show(); m_ui->current->setMinimumSize(0,0); m_ui->close_button->hide(); m_ui->cancel_button->show(); } m_ui->ErrorList->setColumnWidth(0, 100); m_ui->ErrorList->clear(); m_ui->details_button->setChecked(false); m_ui->details_button->setEnabled(false); show(); resize(size().width(), sizeHint().height()); } QHiMDUploadDialog::QHiMDUploadDialog(QWidget *parent) : QDialog(parent), m_ui(new Ui::QHiMDUploadDialog), canceled(false) { m_ui->setupUi(this); } QHiMDUploadDialog::~QHiMDUploadDialog() { delete m_ui; } void QHiMDUploadDialog::on_details_button_toggled(bool checked) { if (checked) { m_ui->line->show(); m_ui->ErrorList->show(); } else { m_ui->line->hide(); m_ui->ErrorList->hide(); } /* Need to process events to make the show or hide calls take effect before calling sizeHint() */ QApplication::processEvents(); resize(size().width(), sizeHint().height()); } void QHiMDUploadDialog::on_close_button_clicked() { close(); } void QHiMDUploadDialog::on_cancel_button_clicked() { m_ui->alltrack_label->setText(tr("upload aborted by the user")); canceled = true; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimduploaddialog.h���������������������������������������������0000664�0000000�0000000�00000001672�12262477515�0023270�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef QHIMDUPLOADDIALOG_H #define QHIMDUPLOADDIALOG_H #include <QDialog> #include "qmdtrack.h" namespace Ui { class QHiMDUploadDialog; } class QHiMDUploadDialog : public QDialog { Q_OBJECT public: explicit QHiMDUploadDialog(QWidget *parent = 0); virtual ~QHiMDUploadDialog(); bool upload_canceled() { return canceled; } void init(int trackcount, int totalblocks); void starttrack(const QMDTrack & trk, const QString & title); void blockTransferred(); void trackFailed(const QString & errmsg); void trackSucceeded(); void finished(); private: Ui::QHiMDUploadDialog *m_ui; int allblocks, allfinished; int tracknum; int thisfileblocks, thisfilefinished; int scount, fcount; bool canceled; private slots: /* UI slots */ void on_close_button_clicked(); void on_cancel_button_clicked(); void on_details_button_toggled(bool checked); }; #endif // QHIMDUPLOADDIALOG_H ����������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimduploaddialog.ui��������������������������������������������0000664�0000000�0000000�00000012311�12262477515�0023446�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?xml version="1.0" encoding="UTF-8"?> <ui version="4.0"> <class>QHiMDUploadDialog</class> <widget class="QDialog" name="QHiMDUploadDialog"> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>357</width> <height>447</height> </rect> </property> <property name="windowTitle"> <string>Track upload - QHiMDTransfer</string> </property> <property name="windowIcon"> <iconset> <normalon>:/icons/upload_from_md.png</normalon> </iconset> </property> <property name="modal"> <bool>true</bool> </property> <layout class="QVBoxLayout" name="main_layout"> <item> <layout class="QHBoxLayout" name="header"> <item> <widget class="QLabel" name="icon"> <property name="sizePolicy"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="text"> <string/> </property> <property name="pixmap"> <pixmap resource="icons.qrc">:/icons/upload_from_md.png</pixmap> </property> <property name="scaledContents"> <bool>true</bool> </property> </widget> </item> <item> <widget class="QLabel" name="alltrack_label"> <property name="font"> <font> <weight>75</weight> <bold>true</bold> </font> </property> <property name="text"> <string>please wait while uploading XX track(s)</string> </property> <property name="alignment"> <set>Qt::AlignCenter</set> </property> </widget> </item> </layout> </item> <item> <layout class="QVBoxLayout" name="overall"> <item> <widget class="QLabel" name="label_2"> <property name="text"> <string>overall progress</string> </property> </widget> </item> <item> <widget class="QProgressBar" name="AllPBar"/> </item> </layout> </item> <item> <widget class="QWidget" name="current" native="true"> <layout class="QVBoxLayout" name="currentlayout"> <property name="margin"> <number>0</number> </property> <item> <widget class="QLabel" name="curtrack_label"> <property name="sizePolicy"> <sizepolicy hsizetype="Ignored" vsizetype="Preferred"> <horstretch>0</horstretch> <verstretch>0</verstretch> </sizepolicy> </property> <property name="text"> <string>current track: trknum - filename</string> </property> </widget> </item> <item> <widget class="QProgressBar" name="TrkPBar"/> </item> </layout> </widget> </item> <item> <layout class="QVBoxLayout" name="summary"> <item> <widget class="QLabel" name="success_text"> <property name="text"> <string>xx track(s) successfully uploaded</string> </property> </widget> </item> <item> <widget class="QLabel" name="failed_text"> <property name="text"> <string>xx track(s) could not be uploaded</string> </property> </widget> </item> </layout> </item> <item> <layout class="QHBoxLayout" name="buttonbox"> <property name="spacing"> <number>30</number> </property> <item> <widget class="QPushButton" name="details_button"> <property name="text"> <string>Show Details</string> </property> <property name="checkable"> <bool>true</bool> </property> <property name="checked"> <bool>true</bool> </property> </widget> </item> <item> <widget class="QPushButton" name="cancel_button"> <property name="text"> <string>Cancel</string> </property> </widget> </item> <item> <widget class="QPushButton" name="close_button"> <property name="text"> <string>Close</string> </property> <property name="default"> <bool>true</bool> </property> </widget> </item> </layout> </item> <item> <widget class="Line" name="line"> <property name="lineWidth"> <number>3</number> </property> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> </widget> </item> <item> <layout class="QVBoxLayout" name="details"> <item> <widget class="QTreeWidget" name="ErrorList"> <property name="frameShadow"> <enum>QFrame::Sunken</enum> </property> <property name="showDropIndicator" stdset="0"> <bool>false</bool> </property> <attribute name="headerVisible"> <bool>false</bool> </attribute> <attribute name="headerDefaultSectionSize"> <number>80</number> </attribute> <column> <property name="text"> <string>Tracknr.</string> </property> </column> <column> <property name="text"> <string>Error message</string> </property> </column> </widget> </item> </layout> </item> </layout> </widget> <resources> <include location="icons.qrc"/> </resources> <connections/> </ui> �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qhimdwindetection.cpp�������������������������������������������0000664�0000000�0000000�00000036614�12262477515�0023657�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <QDebug> #include <QList> #include <QWidget> #include "qhimddetection.h" #include <windows.h> #include <dbt.h> #include <setupapi.h> #include <initguid.h> // needed to handle GUIDs #include <ddk/ntddstor.h> // needed for handling storage devices #include <ddk/cfgmgr32.h> // needed for CM_Get_Child function static const GUID my_GUID_IO_MEDIA_ARRIVAL = {0xd07433c0, 0xa98e, 0x11d2, {0x91, 0x7a, 0x00, 0xa0, 0xc9, 0x06, 0x8f, 0xf3} }; static const GUID my_GUID_IO_MEDIA_REMOVAL = {0xd07433c1, 0xa98e, 0x11d2, {0x91, 0x7a, 0x00, 0xa0, 0xc9, 0x06, 0x8f, 0xf3} }; static const GUID my_GUID_DEVINTERFACE_USB_DEVICE = {0xa5dcbf10, 0x6530, 0x11d2, {0x90, 0x1f, 0x00, 0xc0,0x4f, 0xb9, 0x51, 0xed} }; static const int my_DBT_CUSTOMEVENT = 0x8006; static bool is_himddevice(QString devID, QString & name); static QString get_deviceID_from_driveletter(char i); static bool identified(QString devpath, QString & name); static QString FindPath(unsigned long unitmask); class QHiMDWinDetection : public QHiMDDetection, private QWidget { public: void scan_for_himd_devices(); QHiMDWinDetection(QObject * parent = NULL); ~QHiMDWinDetection(); private: HDEVNOTIFY hDevNotify; HDEVNOTIFY listen_usbdev; QMDDevice *find_by_handle(HANDLE devhandle); void add_himddevice(QString path, QString name); virtual void remove_himddevice(QString path); void add_himd(HANDLE devhandle); void remove_himd(HANDLE devhandle); HDEVNOTIFY register_mediaChange(HANDLE devhandle); void unregister_mediaChange(HDEVNOTIFY himd_change); HDEVNOTIFY register_usbDeviceNotification(); void unregister_usbDeviceNotification(); bool nativeEvent(const QByteArray & eventType, void * message, long *result); bool winEvent(MSG * msg, long * result); }; QHiMDDetection * createDetection(QObject * parent) { return new QHiMDWinDetection(parent); } QHiMDWinDetection::QHiMDWinDetection(QObject * parent) : QHiMDDetection(parent), QWidget(0) { // ask for Window ID to have Qt create the window. (void)winId(); // register for usb device notifications if((listen_usbdev = register_usbDeviceNotification()) == NULL) qDebug() << "cannot register usb device notifications" << endl; } QHiMDWinDetection::~QHiMDWinDetection() { unregister_usbDeviceNotification(); clearDeviceList(); cleanup_netmd_list(); } void QHiMDWinDetection::scan_for_himd_devices() { unsigned long drives = GetLogicalDrives(); char drive[] = "A:\\"; QString name, devID; for (; drive[0] <= 'Z'; ++drive[0]) { if (drives & 0x1) { if(GetDriveTypeA(drive) == DRIVE_REMOVABLE) { devID = get_deviceID_from_driveletter(drive[0]); if(!devID.isEmpty() && !devID.contains("Floppy", Qt::CaseInsensitive)) { if(is_himddevice(devID, name)) add_himddevice(QString(drive[0]) + ":/", name); } } } drives = drives >> 1; } return; } QMDDevice *QHiMDWinDetection::find_by_handle(HANDLE devhandle) { QMDDevice *mddev; foreach(mddev, dlist) { if(mddev->deviceType() != HIMD_DEVICE) continue; if(mddev->deviceHandle() == devhandle) return mddev; } return NULL; } static QString get_deviceID_from_driveletter(char i) { char subkey[] = "\\DosDevices\\X:"; DWORD valuesize; HKEY key; int res; QString devname; subkey[12] = i; res = RegOpenKeyExA( HKEY_LOCAL_MACHINE, "SYSTEM\\MountedDevices", NULL, KEY_QUERY_VALUE, &key); if(res != ERROR_SUCCESS) return QString(); if(RegQueryValueExA(key, subkey, NULL, NULL, NULL, &valuesize) == ERROR_SUCCESS) { char *value = new char[valuesize]; res = RegQueryValueExA(key, subkey, NULL, NULL,(LPBYTE) value, &valuesize); if(res == ERROR_SUCCESS) { devname = QString::fromUtf16((ushort*)value); devname.remove(0,4); // modify devname to make a valid device ID devname.truncate(devname.indexOf("{") -1); devname = devname.toUpper(); devname.replace("#", "\\"); } delete[] value; } RegCloseKey(key); return devname; } static bool is_himddevice(QString devID, QString & name) { DEVINST devinst; DEVINST devinstparent; unsigned long buflen; QString recname, devicepath; CM_Locate_DevNodeA(&devinst, devID.toLatin1().data(), NULL); CM_Get_Parent(&devinstparent, devinst, NULL); if(devID.contains("RemovableMedia", Qt::CaseInsensitive)) // on Windows XP: get next parent device instance CM_Get_Parent(&devinstparent, devinstparent, NULL); CM_Get_Device_ID_Size(&buflen, devinstparent, 0); wchar_t *buffer = new wchar_t[buflen]; CM_Get_Device_ID(devinstparent, buffer, buflen, 0); devicepath = QString::fromWCharArray(buffer); delete[] buffer; if(identified( devicepath, recname)) { name = recname; return true; } return false; } static bool identified(QString devpath, QString & name) { int vid = devpath.mid(devpath.indexOf("VID") + 4, 4).toInt(NULL,16); int pid = devpath.mid(devpath.indexOf("PID") + 4, 4).toInt(NULL,16); const char * devname = identify_usb_device(vid, pid); if (devname) { name = devname; return true; } return false; } void QHiMDWinDetection::add_himddevice(QString path, QString name) { if (find_by_path(path)) return; QHiMDDevice * new_device = new QHiMDDevice(); int k; char drv[] = "\\\\.\\X:"; QByteArray device = "\\\\.\\PHYSICALDRIVE"; char file[] = "X:\\HI-MD.IND"; DWORD retbytes; HANDLE hdev, dev; STORAGE_DEVICE_NUMBER sdn; OFSTRUCT OFfile; drv[4] = path.at(0).toLatin1(); hdev = CreateFileA(drv, NULL , FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); if(hdev == INVALID_HANDLE_VALUE) return; k = DeviceIoControl(hdev, IOCTL_STORAGE_GET_DEVICE_NUMBER, NULL, 0, &sdn, sizeof(sdn), &retbytes, NULL); CloseHandle(hdev); if(k != 0) device.append(QString::number(sdn.DeviceNumber)); dev = CreateFileA(device.data(), NULL , FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); if(dev == INVALID_HANDLE_VALUE) return; new_device->setDeviceHandle(dev); new_device->registerMdChange(register_mediaChange(new_device->deviceHandle())); new_device->setBusy(false); new_device->setPath(path); new_device->setName(name); file[0] = path.at(0).toLatin1(); if(OpenFile(file, &OFfile, OF_EXIST) != HFILE_ERROR) new_device->setMdInserted(true); else new_device->setMdInserted(false); dlist.append(new_device); emit deviceListChanged(dlist); return; } void QHiMDWinDetection::remove_himddevice(QString path) { int index = -1; QHiMDDevice * dev = static_cast<QHiMDDevice *>(find_by_path(path)); if (!dev) return; index = dlist.indexOf(dev); if(dev->isOpen()) dev->close(); if(dev->name() != "disc image") { if(dev->MdChange() != NULL) unregister_mediaChange((HDEVNOTIFY)dev->MdChange()); if(dev->deviceHandle() != NULL) CloseHandle(dev->deviceHandle()); } delete dev; dev = NULL; dlist.removeAt(index); emit deviceListChanged(dlist); } void QHiMDWinDetection::add_himd(HANDLE devhandle) { QMDDevice * dev = find_by_handle(devhandle); if (!dev) return; if(!dev->mdInserted()) dev->setMdInserted(true); if(!dev->isOpen()) dev->open(); return; } void QHiMDWinDetection::remove_himd(HANDLE devhandle) { QMDDevice * dev = find_by_handle(devhandle); if (!dev) return; if(dev->isOpen()) dev->close(); dev->setMdInserted(false); return; } HDEVNOTIFY QHiMDWinDetection::register_mediaChange(HANDLE devhandle) { DEV_BROADCAST_HANDLE filter; ZeroMemory( &filter, sizeof(filter) ); filter.dbch_size = sizeof(DEV_BROADCAST_HANDLE); filter.dbch_devicetype = DBT_DEVTYP_HANDLE; filter.dbch_handle = devhandle; filter.dbch_eventguid = my_GUID_IO_MEDIA_ARRIVAL; // includes GUID_IO_MEDIA_REMOVAL notification return RegisterDeviceNotification( (HWND)this->winId(), &filter, DEVICE_NOTIFY_WINDOW_HANDLE); } void QHiMDWinDetection::unregister_mediaChange(HDEVNOTIFY himd_change) { if(himd_change != NULL) UnregisterDeviceNotification(himd_change); } HDEVNOTIFY QHiMDWinDetection::register_usbDeviceNotification() { DEV_BROADCAST_DEVICEINTERFACE filter; ZeroMemory(&filter, sizeof(filter)); filter.dbcc_size = sizeof(filter); filter.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE; filter.dbcc_reserved = 0; filter.dbcc_classguid = my_GUID_DEVINTERFACE_USB_DEVICE; return RegisterDeviceNotification( (HWND)this->winId(), &filter, DEVICE_NOTIFY_WINDOW_HANDLE); } void QHiMDWinDetection::unregister_usbDeviceNotification() { if(listen_usbdev != NULL) UnregisterDeviceNotification(listen_usbdev); } bool QHiMDWinDetection::nativeEvent(const QByteArray & eventType, void * message, long *result) { if (eventType == "windows_generic_MSG") return winEvent(reinterpret_cast<MSG*>(message), result); return false; } bool QHiMDWinDetection::winEvent(MSG * msg, long * result) { QString name, devID, path ; if(msg->message == WM_DEVICECHANGE) { PDEV_BROADCAST_HDR pHdr = (PDEV_BROADCAST_HDR )msg->lParam; switch(msg->wParam) { case DBT_DEVICEARRIVAL : { if(pHdr->dbch_devicetype == DBT_DEVTYP_VOLUME) { PDEV_BROADCAST_VOLUME pHdrv = (PDEV_BROADCAST_VOLUME)pHdr; path = FindPath(pHdrv->dbcv_unitmask); devID = get_deviceID_from_driveletter(path.at(0).toLatin1()); if(!devID.isEmpty()) { if(is_himddevice(devID, name)) { qDebug() << "Message:DBT_DEVICEARRIVAL for drive " + path; add_himddevice(path, name); } } } else if(pHdr->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) { PDEV_BROADCAST_DEVICEINTERFACE pDevInf = (PDEV_BROADCAST_DEVICEINTERFACE)pHdr; devID = QString::fromWCharArray(pDevInf->dbcc_name).toUpper(); /* only handle netmd devices, himd devices will be handled by DBT_DEVTYP_VOLUME */ if(identified(devID, name) && name.contains("NetMD)")) { qDebug() << name << " detected, rescanning netmd devices" << endl; rescan_netmd_devices(); } } break; } case DBT_DEVICEREMOVECOMPLETE : { if(pHdr->dbch_devicetype == DBT_DEVTYP_VOLUME) { PDEV_BROADCAST_VOLUME pHdrv = (PDEV_BROADCAST_VOLUME)pHdr; path = FindPath(pHdrv->dbcv_unitmask); qDebug() << "Message:DBT_DEVICEREMOVECOMPLETE for drive " + path; remove_himddevice(path); } else if(pHdr->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) { PDEV_BROADCAST_DEVICEINTERFACE pDevInf = (PDEV_BROADCAST_DEVICEINTERFACE)pHdr; devID = QString::fromWCharArray(pDevInf->dbcc_name).toUpper(); if(identified(devID, name) && name.contains("NetMD)")) { qDebug() << name << " removed, rescanning netmd devices" << endl; rescan_netmd_devices(); } } break; } case DBT_DEVICEQUERYREMOVE : { if(pHdr->dbch_devicetype & DBT_DEVTYP_HANDLE) { PDEV_BROADCAST_HANDLE pHdrh = (PDEV_BROADCAST_HANDLE)pHdr; QMDDevice *dev = find_by_handle(pHdrh->dbch_handle); if(!dev) { qDebug() << "Message:DBT_DEVICEQUERYREMOVE for unknown device " << pHdrh->dbch_handle; break; } if(dev->isBusy()) { *result = BROADCAST_QUERY_DENY; qDebug() << "Message:DBT_DEVICEQUERYREMOVE for drive " + path + " denied: transfer in progress"; return true; } else { qDebug() << "Message:DBT_DEVICEQUERYREMOVE requested"; remove_himddevice(dev->path()); } } else if(pHdr->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) { PDEV_BROADCAST_DEVICEINTERFACE pDevInf = (PDEV_BROADCAST_DEVICEINTERFACE)pHdr; devID = QString::fromWCharArray(pDevInf->dbcc_name).toUpper(); if(identified(devID, name) && name.contains("NetMD)")) { QMDDevice * dev = find_by_name(name); if(!dev) break; if(dev->isBusy()) { *result = BROADCAST_QUERY_DENY; return true; } dev->close(); } } break; } case my_DBT_CUSTOMEVENT : { if(pHdr->dbch_devicetype & DBT_DEVTYP_HANDLE) { PDEV_BROADCAST_HANDLE pHdrh = (PDEV_BROADCAST_HANDLE)pHdr; if (pHdrh->dbch_eventguid == my_GUID_IO_MEDIA_ARRIVAL) { qDebug() << "Message:DBT_CUSTOMEVENT - GUID_IO_MEDIA_ARRIVAL"; add_himd(pHdrh->dbch_handle); break; } if (pHdrh->dbch_eventguid == my_GUID_IO_MEDIA_REMOVAL) { qDebug() << "Message:DBT_CUSTOMEVENT - GUID_IO_MEDIA_REMOVAL"; remove_himd(pHdrh->dbch_handle); break; } } break; } default: return false; // skip unknown/unused messages } *result = TRUE; return true; } return false; } static QString FindPath (unsigned long unitmask) { char i; for (i = 0; i < 26; ++i) { if (unitmask & 0x1) break; unitmask = unitmask >> 1; } return QString(i + 'A') + ":/"; } ��������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qmddevice.cpp���������������������������������������������������0000664�0000000�0000000�00000037760�12262477515�0022104�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <qmddevice.h> #include <QMessageBox> #include <QApplication> #include <QFile> #include <tlist.h> #include <fileref.h> #include <tfile.h> #include <tag.h> extern "C" { #include <sox.h> } /* common device members */ QMDDevice::QMDDevice() : dev_type(NO_DEVICE) { } QMDDevice::~QMDDevice() { close(); } enum device_type QMDDevice::deviceType() { return dev_type; } void QMDDevice::setPath(QString path) { device_path = path; } QString QMDDevice::path() { return device_path; } void QMDDevice::setName(QString name) { recorder_name = name; } QString QMDDevice::name() { return recorder_name; } void QMDDevice::setBusy(bool busy) { is_busy = busy; } bool QMDDevice::isBusy() { return is_busy; } void QMDDevice::setMdInserted(bool inserted) { md_inserted = inserted; } bool QMDDevice::mdInserted() { return md_inserted; } void QMDDevice::setDeviceHandle(void * devicehandle) { devhandle = devicehandle; } void * QMDDevice::deviceHandle() { return devhandle; } void QMDDevice::registerMdChange(void * regMdChange) { mdChange = regMdChange; } void * QMDDevice::MdChange() { return mdChange; } QStringList QMDDevice::downloadableFileExtensions() const { if(dev_type == NETMD_DEVICE) return QStringList() << "wav"; if(dev_type == HIMD_DEVICE) return QStringList() << "mp3"; return QStringList(); } void QMDDevice::checkfile(QString UploadDirectory, QString &filename, QString extension) { QFile f; QString newname; int i = 2; f.setFileName(UploadDirectory + "/" + filename + extension); while(f.exists()) { newname = filename + " (" + QString::number(i) + ")"; f.setFileName(UploadDirectory + "/" + newname + extension); i++; } if(!newname.isEmpty()) filename = newname; } /* netmd device members */ QNetMDDevice::QNetMDDevice() { dev_type = NETMD_DEVICE; devh = NULL; netmd = NULL; is_open = false; } QNetMDDevice::~QNetMDDevice() { close(); } void QNetMDDevice::setUsbDevice(netmd_device * dev) { netmd = dev; } QString QNetMDDevice::open() { uint8_t i = 0; netmd_error error; char buffer[256]; if(!netmd) return tr("netmd_device not set, use setUsbDevice() function first"); if((error = netmd_open(netmd, &devh)) != NETMD_NO_ERROR) return tr("Error opening netmd: %1").arg(netmd_strerror(error)); netmd_initialize_disc_info(devh, ¤t_md); /* generate track count first, needed by QNetMDTracksModel */ while(netmd_request_title(devh, i, buffer, sizeof(buffer)) >= 0) i++; trk_count = i; is_open = true; md_inserted = true; emit opened(); return QString(); } void QNetMDDevice::close() { if(!devh) return; netmd_clean_disc_info(¤t_md); netmd_close(devh); devh = NULL; is_open = false; trk_count = 0; md_inserted = false; emit closed(); } QString QNetMDDevice::discTitle() { return QString(current_md.groups[0].name); } QNetMDTrack QNetMDDevice::netmdTrack(unsigned int trkindex) { minidisc * disc = ¤t_md; return QNetMDTrack(devh, disc, trkindex); } QString QNetMDDevice::upload_track_blocks(uint32_t length, FILE *file, size_t chunksize) { /* this is a copy of netmd_secure_real_recv_track(...) function, but updates upload dialog progress bar */ uint32_t done = 0; unsigned char *data; int status; netmd_error error = NETMD_NO_ERROR; int transferred = 0; data = (unsigned char *)malloc(chunksize); while (done < length) { if ((length - done) < chunksize) { chunksize = length - done; } status = libusb_bulk_transfer((libusb_device_handle*)devh, 0x81, data, (int)chunksize, &transferred, 10000); if (status >= 0) { done += transferred; fwrite(data, transferred, 1, file); netmd_log(NETMD_LOG_DEBUG, "%.1f%%\n", (double)done/(double)length * 100); uploadDialog.blockTransferred(); QApplication::processEvents(); /* do not check for uploadDialog.upload_canceled() here, netmd device will remain busy if track upload hasnīt finished */ } else if (status != -LIBUSB_ERROR_TIMEOUT) { error = NETMD_USB_ERROR; } } free(data); return (error != NETMD_NO_ERROR) ? netmd_strerror(error) : QString(); } void QNetMDDevice::upload(unsigned int trackidx, QString path) { /* this is a copy of netmd_secure_recv_track(...) function, we need single block transfer function to make use of a progress bar, * maybe we can add/change something inside libnetmd for this */ QNetMDTrack track = netmdTrack(trackidx); uint16_t track_id = trackidx; unsigned char cmdhdr[] = {0x00, 0x10, 0x01}; unsigned char cmd[sizeof(cmdhdr) + sizeof(track_id)] = { 0 }; unsigned char *buf; unsigned char codec; uint32_t length; netmd_response response; netmd_error error; QString filename, errmsg, filepath; FILE * file = NULL; if(name() != "SONY MZ-RH1 (NetMD)") { errmsg = tr("upload disabled, %1 does not support netmd track uploads").arg(name()); goto clean; } if(track.copyprotected()) { errmsg = tr("upload disabled, Track is copy protected"); goto clean; } // create filename first if(track.title().isEmpty()) filename = tr("Track %1").arg(track.tracknum() + 1); else filename = track.title(); if(track.bitrate_id == NETMD_ENCODING_SP) { checkfile(path, filename, ".aea"); filepath = path + "/" + filename + ".aea"; } else { checkfile(path, filename, ".wav"); filepath = path + "/" + filename + ".wav"; } if(!(file = fopen(filepath.toUtf8().data(), "wb"))) { errmsg = tr("cannot open file %1 for writing").arg(filepath); goto clean; } buf = cmd; memcpy(buf, cmdhdr, sizeof(cmdhdr)); buf += sizeof(cmdhdr); netmd_copy_word_to_buffer(&buf, trackidx + 1U, 0); netmd_send_secure_msg(devh, 0x30, cmd, sizeof(cmd)); error = netmd_recv_secure_msg(devh, 0x30, &response, NETMD_STATUS_INTERIM); netmd_check_response_bulk(&response, cmdhdr, sizeof(cmdhdr), &error); netmd_check_response_word(&response, track_id + 1U, &error); codec = netmd_read(&response); length = netmd_read_doubleword(&response); /* initialize track.blockcount() here, needed by progress bar in the uploadDialog */ track.setBlocks(length%NETMD_RECV_BUF_SIZE ? length / NETMD_RECV_BUF_SIZE + 1 : length / NETMD_RECV_BUF_SIZE); uploadDialog.starttrack(track, filename); if (track.bitrate_id == NETMD_ENCODING_SP) { netmd_write_aea_header(track.title().toUtf8().data(), codec, track.channel, file); } else { netmd_write_wav_header(codec, length, file); } errmsg = upload_track_blocks(length, file, NETMD_RECV_BUF_SIZE); if(!errmsg.isNull()) { goto clean; } error = netmd_recv_secure_msg(devh, 0x30, &response, NETMD_STATUS_ACCEPTED); netmd_check_response_bulk(&response, cmdhdr, sizeof(cmdhdr), &error); netmd_read_response_bulk(&response, NULL, 2, &error); netmd_check_response_word(&response, 0, &error); if(error != NETMD_NO_ERROR) errmsg = QString(netmd_strerror(error)); clean: if(errmsg.isNull()) uploadDialog.trackSucceeded(); else uploadDialog.trackFailed(errmsg); if(file) fclose(file); if(!errmsg.isNull()) { QFile f(filepath); if(f.exists()) f.remove(); } } void QNetMDDevice::batchUpload(QMDTrackIndexList tlist, QString path) { int allblocks = 0; setBusy(true); /* progress bar for all tracks does not work yet, is there any way to get track length without recieving a complete track ? * as far as iīve tested device remains busy if download procedure hasnīt finished. * progressbar for all tracks shows idle mode if maximum value is set to 0 */ for(int i = 0;i < tlist.length(); i++) { allblocks += netmdTrack(tlist.at(i)).blockcount(); } uploadDialog.init(tlist.length(), allblocks); for(int i = 0; i < tlist.length(); i++) { upload(tlist[i], path); QApplication::processEvents(); if(uploadDialog.upload_canceled()) break; } uploadDialog.finished(); setBusy(false); } /* himd device members */ QHiMDDevice::QHiMDDevice() { dev_type = HIMD_DEVICE; himd = NULL; is_open = false; } QHiMDDevice::~QHiMDDevice() { close(); } QString QHiMDDevice::open() { struct himderrinfo status; if(!mdInserted()) return tr("cannot open device, no disc"); if(himd) // first close himd if opened { himd_close(himd); delete himd; himd = NULL; } himd = new struct himd; if(himd_open(himd, device_path.toUtf8(), &status) < 0) { delete himd; himd = NULL; return QString::fromUtf8(status.statusmsg); } trk_count = himd_track_count(himd); is_open = true; md_inserted = true; emit opened(); return QString(); } void QHiMDDevice::close() { if(!himd) return; himd_close(himd); delete himd; himd = NULL; is_open = false; trk_count = 0; emit closed(); } QHiMDTrack QHiMDDevice::himdTrack(unsigned int trkindex) { return QHiMDTrack(himd, trkindex); } QString QHiMDDevice::dumpmp3(const QHiMDTrack &trk, QString file) { QString errmsg; struct himd_mp3stream str; struct himderrinfo status; unsigned int len; const unsigned char * data; QFile f(file); if(!f.open(QIODevice::ReadWrite)) { return tr("Error opening file for MP3 output"); } if(!(errmsg = trk.openMpegStream(&str)).isNull()) { f.remove(); return tr("Error opening track: ") + errmsg; } while(himd_mp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) { if(f.write((const char*)data,len) == -1) { errmsg = tr("Error writing audio data"); goto clean; } uploadDialog.blockTransferred(); QApplication::processEvents(); if(uploadDialog.upload_canceled()) { errmsg = tr("upload aborted by the user"); goto clean; } } if(status.status != HIMD_STATUS_AUDIO_EOF) errmsg = tr("Error reading audio data: ") + status.statusmsg; clean: f.close(); himd_mp3stream_close(&str); if(!errmsg.isNull()) f.remove(); return errmsg; } static inline TagLib::String QStringToTagString(const QString & s) { return TagLib::String(s.toUtf8().data(), TagLib::String::UTF8); } static void addid3tag(QString title, QString artist, QString album, QString file) { #ifdef Q_OS_WIN TagLib::FileRef f(file.toStdWString().c_str()); #else TagLib::FileRef f(file.toUtf8().data()); #endif TagLib::Tag *t = f.tag(); t->setTitle(QStringToTagString(title)); t->setArtist(QStringToTagString(artist)); t->setAlbum(QStringToTagString(album)); t->setComment("*** imported from HiMD via QHiMDTransfer ***"); f.file()->save(); } QString QHiMDDevice::dumpoma(const QHiMDTrack &track, QString file) { QString errmsg; struct himd_nonmp3stream str; struct himderrinfo status; unsigned int len; const unsigned char * data; QFile f(file); if(!f.open(QIODevice::ReadWrite)) return tr("Error opening file for ATRAC output"); if(!(errmsg = track.openNonMpegStream(&str)).isNull()) { f.remove(); return tr("Error opening track: ") + status.statusmsg; } if(f.write(track.makeEA3Header()) == -1) { errmsg = tr("Error writing header"); goto clean; } while(himd_nonmp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) { if(f.write((const char*)data,len) == -1) { errmsg = tr("Error writing audio data"); goto clean; } uploadDialog.blockTransferred(); QApplication::processEvents(); if(uploadDialog.upload_canceled()) { errmsg = QString("upload aborted by the user"); goto clean; } } if(status.status != HIMD_STATUS_AUDIO_EOF) errmsg = QString("Error reading audio data: ") + status.statusmsg; clean: f.close(); himd_nonmp3stream_close(&str); if(!errmsg.isNull()) f.remove(); return errmsg; } QString QHiMDDevice::dumppcm(const QHiMDTrack &track, QString file) { struct himd_nonmp3stream str; struct himderrinfo status; unsigned int len, i; int left, right; int clipcount; QString errmsg; QFile f(file); const unsigned char * data; sox_format_t * out; sox_sample_t soxbuf [HIMD_MAX_PCMFRAME_SAMPLES * 2]; sox_signalinfo_t signal_out; signal_out.channels = 2; signal_out.length = 0; signal_out.precision = 16; signal_out.rate = 44100; if(!(out = sox_open_write(file.toUtf8(), &signal_out, NULL, NULL, NULL, NULL))) return tr("Error opening file for WAV output"); if(!(errmsg = track.openNonMpegStream(&str)).isNull()) { f.remove(); return tr("Error opening track: ") + status.statusmsg; } while(himd_nonmp3stream_read_block(&str, &data, &len, NULL, &status) >= 0) { for(i = 0; i < len/4; i++) { left = data[i*4]*256+data[i*4+1]; right = data[i*4+2]*256+data[i*4+3]; if (left > 0x8000) left -= 0x10000; if (right > 0x8000) right -= 0x10000; soxbuf[i*2] = SOX_SIGNED_16BIT_TO_SAMPLE(left, clipcount); soxbuf[i*2+1] = SOX_SIGNED_16BIT_TO_SAMPLE(right, clipcount); (void)clipcount; /* suppess "is unused" warning */ } if (sox_write(out, soxbuf, len/2) != len/2) { errmsg = tr("Error writing audio data"); goto clean; } uploadDialog.blockTransferred(); QApplication::processEvents(); if(uploadDialog.upload_canceled()) { errmsg = QString("upload aborted by the user"); goto clean; } } if(status.status != HIMD_STATUS_AUDIO_EOF) errmsg = QString("Error reading audio data: ") + status.statusmsg; clean: sox_close(out); himd_nonmp3stream_close(&str); if(!errmsg.isNull()) f.remove(); return errmsg; } void QHiMDDevice::upload(unsigned int trackidx, QString path) { QString filename, errmsg; QHiMDTrack track = himdTrack(trackidx); QString title = track.title(); if(title.isNull()) filename = tr("Track %1").arg(track.tracknum()+1); else filename = track.artist() + " - " + title; uploadDialog.starttrack(track, filename); if (!track.copyprotected()) { QString codec = track.codecname(); if (codec == "MPEG") { checkfile(path, filename, ".mp3"); errmsg = dumpmp3 (track, path + "/" + filename + ".mp3"); if(errmsg.isNull()) addid3tag (track.title(),track.artist(),track.album(), path + "/" +filename + ".mp3"); } else if (codec == "LPCM") { checkfile(path, filename, ".wav"); errmsg = dumppcm (track, path + "/" + filename + ".wav"); } else if (codec == "AT3+" || codec == "AT3 ") { checkfile(path, filename, ".oma"); errmsg = dumpoma (track, path + "/" + filename + ".oma"); } } else errmsg = tr("upload disabled because of DRM encryption"); if(errmsg.isNull()) uploadDialog.trackSucceeded(); else uploadDialog.trackFailed(errmsg); } void QHiMDDevice::batchUpload(QMDTrackIndexList tlist, QString path) { int allblocks = 0; setBusy(true); for(int i = 0;i < tlist.length(); i++) allblocks += himdTrack(tlist.at(i)).blockcount(); uploadDialog.init(tlist.length(), allblocks); for(int i = 0; i < tlist.length(); i++) { upload(tlist[i], path); QApplication::processEvents(); if(uploadDialog.upload_canceled()) break; } uploadDialog.finished(); setBusy(false); } ����������������linux-minidisc-0.9.13/qhimdtransfer/qmddevice.h�����������������������������������������������������0000664�0000000�0000000�00000005560�12262477515�0021542�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef QMDDEVICE_H #define QMDDEVICE_H #include <QString> #include <QStringList> #include <qmdtrack.h> #include "qhimduploaddialog.h" enum device_type { NO_DEVICE, NETMD_DEVICE, HIMD_DEVICE }; class QMDDevice : public QObject { Q_OBJECT Q_DISABLE_COPY(QMDDevice) QString recorder_name; bool is_busy; protected: QString device_path; enum device_type dev_type; bool is_open; unsigned int trk_count; bool md_inserted; void * devhandle; void * mdChange; QHiMDUploadDialog uploadDialog; public: explicit QMDDevice(); virtual ~QMDDevice(); virtual enum device_type deviceType(); virtual void setPath(QString path); virtual QString path(); virtual void setName(QString name); virtual QString name(); virtual void setBusy(bool busy); virtual bool isBusy(); virtual QString open() {return QString();} virtual void close() {} virtual bool isOpen() {return is_open;} virtual QString discTitle() {return QString();} virtual void setMdInserted(bool inserted); virtual bool mdInserted(); virtual void setDeviceHandle(void * devicehandle); virtual void * deviceHandle(); virtual void registerMdChange(void * regMdChange); virtual void * MdChange(); virtual QMDTrack track(unsigned int trkindex) {return QMDTrack();} virtual int trackCount() {return trk_count;} virtual QStringList downloadableFileExtensions() const; virtual void checkfile(QString UploadDirectory, QString &filename, QString extension); virtual void batchUpload(QMDTrackIndexList tlist, QString path) {} virtual void upload(unsigned int trackidx, QString path) {} signals: void opened(); void closed(); }; class QNetMDDevice : public QMDDevice { netmd_device * netmd; netmd_dev_handle * devh; minidisc current_md; private: QString upload_track_blocks(uint32_t length, FILE *file, size_t chunksize); public: explicit QNetMDDevice(); virtual ~QNetMDDevice(); virtual void setUsbDevice(netmd_device * dev); virtual QString open(); virtual void close(); virtual QString discTitle(); virtual QNetMDTrack netmdTrack(unsigned int trkindex); virtual void batchUpload(QMDTrackIndexList tlist, QString path); virtual void upload(unsigned int trackidx, QString path); }; class QHiMDDevice : public QMDDevice { struct himd * himd; private: QString dumpmp3(const QHiMDTrack &trk, QString file); QString dumpoma(const QHiMDTrack & track, QString file); QString dumppcm(const QHiMDTrack &track, QString file); public: explicit QHiMDDevice(); virtual ~QHiMDDevice(); virtual QString open(); virtual void close(); virtual QHiMDTrack himdTrack(unsigned int trkindex); virtual void upload(unsigned int trackidx, QString path); virtual void batchUpload(QMDTrackIndexList tlist, QString path); }; #endif // QMDDEVICE_H ������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qmdmodel.cpp����������������������������������������������������0000664�0000000�0000000�00000020660�12262477515�0021734�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include <QFont> #include <QFontMetrics> #include <qmdmodel.h> enum hcolumnum { ColId, ColTitle, ColArtist, ColAlbum, ColLength, ColCodec, ColUploadable, ColRecDate, LAST_hcolumnnum = ColRecDate }; enum ncolumnum { CoId, CoGroup, CoTitle, CoLength, CoCodec, CoUploadable, LAST_ncolumnnum = CoUploadable }; /* netmd tracks model */ QVariant QNetMDTracksModel::headerData(int section, Qt::Orientation orientation, int role) const { if(orientation != Qt::Horizontal) return QVariant(); if(role == Qt::SizeHintRole) { static QFont f; static QFontMetrics met(f); switch((ncolumnum)section) { case CoId: return QSize(met.width("9999")+5, 0); case CoGroup: case CoTitle: case CoLength: return QSize(met.width("9:99:99"), 0); case CoCodec: case CoUploadable: /* Really use the header for the metric in these columns, contents will be shorter */ return QAbstractListModel::headerData(section,orientation,role); } } if(role == Qt::DisplayRole) { switch((ncolumnum)section) { case CoId: return tr("Nr."); case CoGroup: return tr("Group"); case CoTitle: return tr("Title"); case CoLength: return tr("Length"); case CoCodec: return tr("Format"); case CoUploadable: return tr("Uploadable"); } } return QVariant(); } QVariant QNetMDTracksModel::data(const QModelIndex & index, int role) const { if(role == Qt::TextAlignmentRole && (index.column() == CoId || index.column() == CoLength)) return Qt::AlignRight; if(index.row() >= rowCount()) return QVariant(); QNetMDTrack track = allTracks[index.row()]; if(role == Qt::CheckStateRole && index.column() == CoUploadable) return ((ndev->name() != "SONY MZ-RH1 (NetMD)") || track.copyprotected()) ? Qt::Unchecked : Qt::Checked; if(role == Qt::DisplayRole) { switch((ncolumnum)index.column()) { case CoId: return track.tracknum() + 1; case CoGroup: return track.group(); case CoTitle: return track.title(); case CoLength: { QTime t = track.duration(); if(t < QTime(1,0,0)) return t.toString("m:ss"); else return t.toString("h:mm:ss"); } case CoCodec: return track.codecname(); case CoUploadable: return QVariant(); /* Displayed by checkbox */ } } return QVariant(); } int QNetMDTracksModel::rowCount(const QModelIndex &) const { if(ndev == NULL) return 0; return ndev->trackCount(); } int QNetMDTracksModel::columnCount(const QModelIndex &) const { return LAST_ncolumnnum+1; } QString QNetMDTracksModel::open(QMDDevice * device) { int i = 0; QString ret = "error opening net device"; beginResetModel(); if(ndev != NULL) close(); if(device->deviceType() == NETMD_DEVICE) { ndev = static_cast<QNetMDDevice *>(device); ret = ndev->open(); } if(!ret.isEmpty()) close(); /* fetch track info for all tracks first, getting track info inside data() function is very slow */ for(; i < ndev->trackCount(); i++) allTracks.append(ndev->netmdTrack(i)); endResetModel(); /* inform views that the model contents changed */ return ret; } bool QNetMDTracksModel::is_open() { return ndev->isOpen(); } void QNetMDTracksModel::close() { beginResetModel(); if(ndev != NULL && ndev->isOpen()) ndev->close(); ndev = NULL; allTracks.clear(); endResetModel(); /* inform views that the model contents changed */ } /* himd tracks model */ QVariant QHiMDTracksModel::headerData(int section, Qt::Orientation orientation, int role) const { if(orientation != Qt::Horizontal) return QVariant(); if(role == Qt::SizeHintRole) { static QFont f; static QFontMetrics met(f); switch((hcolumnum)section) { case ColId: return QSize(met.width("9999")+5, 0); case ColTitle: case ColArtist: case ColAlbum: return QSize(25*met.averageCharWidth(), 0); case ColLength: return QSize(met.width("9:99:99"), 0); case ColCodec: case ColUploadable: /* Really use the header for the metric in these columns, contents will be shorter */ return QAbstractListModel::headerData(section,orientation,role); case ColRecDate: return QSize(met.width("yyyy.MM.dd hh:mm:ss"), 0); } } if(role == Qt::DisplayRole) { switch((hcolumnum)section) { case ColId: return tr("Nr."); case ColTitle: return tr("Title"); case ColArtist: return tr("Artist"); case ColAlbum: return tr("Album"); case ColLength: return tr("Length"); case ColCodec: return tr("Format"); case ColUploadable: return tr("Uploadable"); case ColRecDate: return tr("Recorded At"); } } return QVariant(); } QVariant QHiMDTracksModel::data(const QModelIndex & index, int role) const { if(role == Qt::TextAlignmentRole && (index.column() == ColId || index.column() == ColLength)) return Qt::AlignRight; if(index.row() >= rowCount()) return QVariant(); QHiMDTrack track = hdev->himdTrack(index.row()); if(role == Qt::CheckStateRole && index.column() == ColUploadable) return track.copyprotected() ? Qt::Unchecked : Qt::Checked; if(role == Qt::DisplayRole) { switch((hcolumnum)index.column()) { case ColId: return index.row() + 1; case ColTitle: return track.title(); case ColArtist: return track.artist(); case ColAlbum: return track.album(); case ColLength: { QTime t = track.duration(); if(t < QTime(1,0,0)) return t.toString("m:ss"); else return t.toString("h:mm:ss"); } case ColCodec: return track.codecname(); case ColUploadable: return QVariant(); /* Displayed by checkbox */ case ColRecDate: { QDateTime dt = track.recdate(); return dt.toString("yyyy.MM.dd hh:mm:ss"); } } } return QVariant(); } int QHiMDTracksModel::rowCount(const QModelIndex &) const { if(hdev == NULL) return 0; return hdev->trackCount(); } int QHiMDTracksModel::columnCount(const QModelIndex &) const { return LAST_hcolumnnum+1; } QString QHiMDTracksModel::open(QMDDevice * device) { QString ret = "error opening himd device"; beginResetModel(); if(hdev != NULL) close(); if(device->deviceType() == HIMD_DEVICE) { hdev = static_cast<QHiMDDevice *>(device); ret = hdev->open(); } if(!ret.isEmpty()) close(); endResetModel(); /* inform views that the model contents changed */ return ret; } bool QHiMDTracksModel::is_open() { return hdev->isOpen(); } void QHiMDTracksModel::close() { beginResetModel(); if(hdev != NULL && hdev->isOpen()) hdev->close(); hdev = NULL; endResetModel(); /* inform views that the model contents changed */ } /* QFileSystemModel stuff */ Qt::ItemFlags QHiMDFileSystemModel::flags(const QModelIndex &index) const { if(!isDir(index) && !selectableExtensions.contains((fileInfo(index).suffix()), Qt::CaseInsensitive)) return Qt::NoItemFlags; //not selectable, not enabled (grayed out in the browser) return QFileSystemModel::flags(index); } void QHiMDFileSystemModel::setSelectableExtensions(QStringList extensions) { beginResetModel(); selectableExtensions = extensions; endResetModel(); } ��������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qmdmodel.h������������������������������������������������������0000664�0000000�0000000�00000005131�12262477515�0021375�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef QMDMODEL_H #define QMDMODEL_H #include <QAbstractListModel> #include <QList> #include <QStringList> #include <QFileSystemModel> #include <qmddevice.h> class QMDTracksModel : public QAbstractListModel { Q_OBJECT QMDDevice * dev; public: QMDTracksModel() : dev(NULL) {} /* QAbstractListModel stuff */ virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const {return QVariant();} virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const {return QVariant();} virtual int rowCount(const QModelIndex & parent = QModelIndex() ) const {return 0;} virtual int columnCount(const QModelIndex & parent = QModelIndex() ) const {return 0;} /* dummy data for unknown devices */ virtual QString open(QMDDevice *device = NULL) {return tr("no known device type specified");} virtual bool is_open() {return false;} virtual void close() {} }; class QNetMDTracksModel : public QMDTracksModel { Q_OBJECT QNetMDDevice * ndev; QNetMDTrackList allTracks; public: QNetMDTracksModel() {ndev = NULL;} /* QAbstractListModel stuff */ virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const; virtual int rowCount(const QModelIndex & parent = QModelIndex() ) const; virtual int columnCount(const QModelIndex & parent = QModelIndex() ) const; /* NetMD device stuff */ QString open(QMDDevice *device); /* returns null if OK, error message otherwise */ virtual bool is_open(); void close(); }; class QHiMDTracksModel : public QMDTracksModel { Q_OBJECT QHiMDDevice * hdev; public: QHiMDTracksModel() {hdev = NULL;} /* QAbstractListModel stuff */ virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; virtual QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const; virtual int rowCount(const QModelIndex & parent = QModelIndex() ) const; virtual int columnCount(const QModelIndex & parent = QModelIndex() ) const; /* HiMD containter stuff */ virtual QString open(QMDDevice *device); /* returns null if OK, error message otherwise */ virtual bool is_open(); virtual void close(); }; class QHiMDFileSystemModel : public QFileSystemModel { Q_OBJECT QStringList selectableExtensions; public: virtual Qt::ItemFlags flags(const QModelIndex &index) const; void setSelectableExtensions(QStringList extensions); }; #endif // QMDMODEL_H ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/qmdtrack.cpp����������������������������������������������������0000664�0000000�0000000�00000011776�12262477515�0021750�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#include "qmdtrack.h" static QString get_himd_str(struct himd * himd, int idx) { QString outstr; char * str; if(!idx) return QString(); str = himd_get_string_utf8(himd, idx, NULL, NULL); if(!str) return QString(); outstr = QString::fromUtf8(str); himd_free(str); return outstr; } QHiMDTrack::QHiMDTrack(struct himd * himd, unsigned int trackindex) : himd(himd), trknum(trackindex) { trackslot = himd_get_trackslot(himd, trackindex, NULL); if(trackslot != 0) if(himd_get_track_info(himd, trackslot, &ti, NULL) < 0) trackslot = -1; } QHiMDTrack::~QHiMDTrack() { himd = NULL; } unsigned int QHiMDTrack::tracknum() const { return trknum; } QString QHiMDTrack::title() const { if(trackslot != 0) return get_himd_str(himd, ti.title); else return QString(); } QString QHiMDTrack::artist() const { if(trackslot != 0) return get_himd_str(himd, ti.artist); else return QString(); } QString QHiMDTrack::album() const { if(trackslot != 0) return get_himd_str(himd, ti.album); else return QString(); } QString QHiMDTrack::codecname() const { if(trackslot != 0) return himd_get_codec_name(&ti); else return QString(); } QTime QHiMDTrack::duration() const { QTime t(0,0,0); if(trackslot != 0) return t.addSecs(ti.seconds); else return QTime(); } QDateTime QHiMDTrack::recdate() const { QDate d(0,0,0); QTime t(0,0,0); if (trackslot != 0) { t.setHMS(ti.recordingtime.tm_hour, ti.recordingtime.tm_min, ti.recordingtime.tm_sec); d.setDate(ti.recordingtime.tm_year+1900, ti.recordingtime.tm_mon+1, ti.recordingtime.tm_mday); return QDateTime(d,t); } return QDateTime(); } bool QHiMDTrack::copyprotected() const { if(trackslot != 0) return !himd_track_uploadable(himd, &ti); return true; } int QHiMDTrack::blockcount() const { if(trackslot != 0) return himd_track_blocks(himd, &ti, NULL); else return 0; } QString QHiMDTrack::openMpegStream(struct himd_mp3stream * str) const { struct himderrinfo status; if(himd_mp3stream_open(himd, trackslot, str, &status) < 0) return QString::fromUtf8(status.statusmsg); return QString(); } QString QHiMDTrack::openNonMpegStream(struct himd_nonmp3stream * str) const { struct himderrinfo status; if(himd_nonmp3stream_open(himd, trackslot, str, &status) < 0) return QString::fromUtf8(status.statusmsg); return QString(); } QByteArray QHiMDTrack::makeEA3Header() const { char header[EA3_FORMAT_HEADER_SIZE]; make_ea3_format_header(header, &ti.codec_info); return QByteArray(header,EA3_FORMAT_HEADER_SIZE); } QNetMDTrack::QNetMDTrack(netmd_dev_handle * deviceh, minidisc * my_md, int trackindex) { uint8_t g; struct netmd_pair const *bitrate; char *name, buffer[256]; devh = deviceh; md = my_md; trkindex = trackindex; if(netmd_request_title(devh, trkindex, buffer, sizeof(buffer)) < 0) { trkindex = -1; return; // no track with this trackindex } /* Figure out which group this track is in */ for( g = 1; g < md->group_count; g++ ) { if( (md->groups[g].start <= trkindex+1U) && (md->groups[g].finish >= trkindex+1U )) { groupstring = QString(md->groups[g].name); break; } } netmd_request_track_time(devh, trkindex, &time); netmd_request_track_flags(devh, trkindex, &flags); netmd_request_track_bitrate(devh, trkindex, &bitrate_id, &channel); bitrate = find_pair(bitrate_id, bitrates); /* Skip 'LP:' prefix... the codec type shows up in the list anyway*/ name = strncmp( buffer, "LP:", 3 ) ? buffer : buffer+3 ; titlestring = QString(name); codecstring = QString(bitrate->name); blocks = 0; } QNetMDTrack::~QNetMDTrack() { devh = NULL; md = NULL; } unsigned int QNetMDTrack::tracknum() const { /* returns zero based track number, maybe this function should return a one based track number as shown in the treeview, * trackindex -> zero based; tracknumber -> one based */ return trkindex; } QString QNetMDTrack::group() const { if(trkindex < 0) return QString(); return groupstring; } QString QNetMDTrack::title() const { if(trkindex < 0) return QString(); return titlestring; } QString QNetMDTrack::codecname() const { if(trkindex < 0) return QString(); return codecstring; } QTime QNetMDTrack::duration() const { QTime t(0,0,0); if(trkindex < 0) return QTime(); return t.addSecs( time.minute * 60 + time.second); } bool QNetMDTrack::copyprotected() const { switch(flags) { case 0x00 : return false; case 0x03 : return true; default : return true; // return true if unknown } } void QNetMDTrack::setBlocks(int cnt) { blocks = cnt; } int QNetMDTrack::blockcount() const { return blocks; } ��linux-minidisc-0.9.13/qhimdtransfer/qmdtrack.h������������������������������������������������������0000664�0000000�0000000�00000005521�12262477515�0021404�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef QMDTRACK_H #define QMDTRACK_H #include <QTime> #include "himd.h" #include "sony_oma.h" #ifdef Q_OS_WIN #ifdef WINVER // WINVER needs to be 0x500 or later to make the windows autodetection mechanism work and it #undef WINVER // must be defined correctly before including libusb.h (included from libnetmd.h), else it will be defined #endif // in windef.h to 0x400 #define WINVER 0x500 #endif extern "C" { #include <libnetmd_extended.h> } /* define buffer size for netmd uploads */ #define NETMD_RECV_BUF_SIZE 0x10000 class QMDTrack { public: QMDTrack() {} // returns dummy data, implemented to have a common class name with common members virtual ~QMDTrack() {} virtual unsigned int tracknum() const {return -1;} virtual QString group() const {return QString();} virtual QString title() const {return QString();} virtual QString artist() const {return QString();} virtual QString album() const {return QString();} virtual QString codecname() const {return QString();} virtual QTime duration() const {return QTime();} virtual bool copyprotected() const {return true;} virtual int blockcount() const {return 0;} }; class QHiMDTrack : public QMDTrack{ struct himd * himd; unsigned int trknum; unsigned int trackslot; struct trackinfo ti; public: QHiMDTrack(struct himd * himd, unsigned int trackindex); virtual ~QHiMDTrack(); virtual unsigned int tracknum() const; virtual QString title() const; virtual QString artist() const; virtual QString album() const; virtual QString codecname() const; virtual QTime duration() const; QDateTime recdate() const; virtual bool copyprotected() const; virtual int blockcount() const; QString openMpegStream(struct himd_mp3stream * str) const; QString openNonMpegStream(struct himd_nonmp3stream * str) const; QByteArray makeEA3Header() const; }; class QNetMDTrack : public QMDTrack { netmd_dev_handle * devh; minidisc * md; int8_t trkindex; struct netmd_track time; unsigned char flags; QString groupstring; QString titlestring; QString codecstring; private: int blocks; public: unsigned char bitrate_id; unsigned char channel; QNetMDTrack(netmd_dev_handle *deviceh, minidisc * my_md, int trackindex); virtual ~QNetMDTrack(); virtual unsigned int tracknum() const; virtual QString group() const; virtual QString title() const; virtual QString codecname() const; virtual QTime duration() const; virtual bool copyprotected() const; virtual void setBlocks(int cnt); virtual int blockcount() const; }; typedef QList<QMDTrack> QMDTrackList; typedef QList<QHiMDTrack> QHiMDTrackList; typedef QList<QNetMDTrack> QNetMDTrackList; typedef QList<unsigned int> QMDTrackIndexList; #endif // QMDTRACK_H �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/translate.pri���������������������������������������������������0000664�0000000�0000000�00000001024�12262477515�0022130�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������LUPDATE = $$[QT_INSTALL_BINS]/lupdate LRELEASE = $$[QT_INSTALL_BINS]/lrelease contains(QT_VERSION, ^4\\.[0-5]\\..*):ts.commands = @echo This Qt version is too old for the ts target. Need Qt 4.6+. else:ts.commands = $$LUPDATE . -ts $$TRANSLATIONS QMAKE_EXTRA_TARGETS += ts updateqm.input = TRANSLATIONS updateqm.output = ${QMAKE_FILE_BASE}.qm updateqm.commands = $$LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT} updateqm.name = LRELEASE ${QMAKE_FILE_IN} updateqm.CONFIG += no_link target_predeps QMAKE_EXTRA_COMPILERS += updateqm ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������linux-minidisc-0.9.13/qhimdtransfer/util.pri��������������������������������������������������������0000664�0000000�0000000�00000000122�12262477515�0021106�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������defineReplace(bracketAll) { for(a,$$1):result += $$2$${a}$$3 return($$result) } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������