t000755000765000024 012622157435 16026 5ustar00stephenenelsonstaff000000000000Convert-BinHex-1.1251.t100644000765000024 14312622157435 16471 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125/tuse strict; use warnings; use Test::More; TESTS: { use_ok('Convert::BinHex'); } done_testing();Convert-BinHex-1.125000755000765000024 012622157435 15642 5ustar00stephenenelsonstaff000000000000README100644000765000024 576212622157435 16615 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125NAME Convert::BinHex - extract data from Macintosh BinHex files *ALPHA WARNING: this code is currently in its Alpha release. Things may change drastically until the interface is hammered out: if you have suggestions or objections, please speak up now!* SYNOPSIS Simple functions: use Convert::BinHex qw(binhex_crc macbinary_crc); # Compute HQX7-style CRC for data, pumping in old CRC if desired: $crc = binhex_crc($data, $crc); # Compute the MacBinary-II-style CRC for the data: $crc = macbinary_crc($data, $crc); Hex to bin, low-level interface. Conversion is actually done via an object (the section on "Convert::BinHex::Hex2Bin") which keeps internal conversion state: # Create and use a "translator" object: my $H2B = Convert::BinHex->hex2bin; # get a converter object while () { print $STDOUT $H2B->next($_); # convert some more input } print $STDOUT $H2B->done; # no more input: finish up Hex to bin, OO interface. The following operations *must* be done in the order shown! # Read data in piecemeal: $HQX = Convert::BinHex->open(FH=>\*STDIN) || die "open: $!"; $HQX->read_header; # read header info @data = $HQX->read_data; # read in all the data @rsrc = $HQX->read_resource; # read in all the resource Bin to hex, low-level interface. Conversion is actually done via an object (the section on "Convert::BinHex::Bin2Hex") which keeps internal conversion state: # Create and use a "translator" object: my $B2H = Convert::BinHex->bin2hex; # get a converter object while () { print $STDOUT $B2H->next($_); # convert some more input } print $STDOUT $B2H->done; # no more input: finish up Bin to hex, file interface. Yes, you can convert *to* BinHex as well as from it! # Create new, empty object: my $HQX = Convert::BinHex->new; # Set header attributes: $HQX->filename("logo.gif"); $HQX->type("GIFA"); $HQX->creator("CNVS"); # Give it the data and resource forks (either can be absent): $HQX->data(Path => "/path/to/data"); # here, data is on disk $HQX->resource(Data => $resourcefork); # here, resource is in core # Output as a BinHex stream, complete with leading comment: $HQX->encode(\*STDOUT); PLANNED!!!! Bin to hex, "CAP" interface. *Thanks to Ken Lunde for suggesting this*. # Create new, empty object from CAP tree: my $HQX = Convert::BinHex->from_cap("/path/to/root/file"); $HQX->encode(\*STDOUT); DESCRIPTION BinHex is a format used by Macintosh for transporting Mac files safely through electronic mail, as short-lined, 7-bit, semi-compressed data streams. Ths module provides a means of converting those data streams back into into binary data. Changes100644000765000024 264412622157435 17224 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125Revision history for Perl module Convert::BinHex 1.125 2015-11-15 - Made the Test:: modules TEST_REQUIRES (ticket 108523, TODDR) 1.124 2015-08-19 - Changed debinhex to UTF-8 - Made the Test:: modules optional (ticket 101974, mishikal at yahoo.com) - Fixed a manual typo (ticket 88874, gregoa at debian.org) 1.123 2013-09-06 - Fixed pod error in debinhex and added pod tests 1.122 2013-08-25 - Added unit tests for OO and CRC code 1.121 2013-08-23 - Changes file reformatted thanks to Neil Bowers (NEILB) - Moved to Dist::Zilla's OurPkgVersion for keeping $VERSIONs in sync 1.120 2013-08-22 - First CPAN release by Stephen Nelson (STEPHEN), who's now maintaining this module. 1.119 1997-06-27 - Changes unknown, but this was the last (and first?) CPAN release by ERYQ 1.118 unknown - Ready to go public (with Paul's version, patched for native Mac support)! - Warnings have been suppressed in a few places where undefined values appear. 1.115 unknown - Fixed another bug in comp2bin, related to the MARK falling on a boundary between inputs. Added testing code. 1.114 unknown - Added BIN-to-HEX conversion. Eh. It's a start. - Also, a lot of documentation additions and cleanups. - Some methods were also renamed. 1.103 unknown - Fixed bug in decompression (wasn't saving last character). - Fixed "NoComment" bug. 1.102 unknown - Initial release. COPYING100644000765000024 3030712622157435 17001 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125 GNU GENERAL PUBLIC LICENSE Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The license agreements of most software companies try to keep users at the mercy of those companies. By contrast, our 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. The General Public License applies to the Free Software Foundation's software and to any other program whose authors commit to using it. You can use it for your programs, too. When we speak of free software, we are referring to freedom, not price. Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, 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 a 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 tell them 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. 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 Agreement 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 work containing the Program or a portion of it, either verbatim or with modifications. Each licensee is addressed as "you". 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 General Public License and to the absence of any warranty; and give any other recipients of the Program a copy of this General Public License along with the Program. You may charge a fee for the physical act of transferring a copy. 2. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option). c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual 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 General Public License. d) 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. Mere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms. 3. You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 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 Paragraphs 1 and 2 above; or, b) accompany it with a written offer, valid for at least three years, to give any third party free (except for a nominal charge for the cost of distribution) a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Paragraphs 1 and 2 above; or, c) accompany it with the information you received as to where the corresponding source code may be obtained. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form alone.) Source code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; but, as a special exception, it need not include source code for modules which are standard libraries that accompany the operating system on which the executable file runs, or for standard header files or definitions files that accompany that operating system. 4. You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the Program is void, and will automatically terminate your rights to use the Program under this License. However, parties who have received copies, or rights to use copies, from you under this General Public License will not have their licenses terminated so long as such parties remain in full compliance. 5. By copying, distributing or modifying 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. 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. 7. 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 the 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 the license, you may choose any version ever published by the Free Software Foundation. 8. 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 9. 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. 10. 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 humanity, 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, 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) 19xx 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 a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (a program to direct compilers to make passes at assemblers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice That's all there is to it! crc.t100644000765000024 45412622157435 17105 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125/tuse strict; use warnings; use Test::More; use Convert::BinHex qw(binhex_crc macbinary_crc); # Random data my $data = "U1SBdxdMHpA2wlW3TOgUHXZ00jvHnkyU/ndXnr9RMElXdQXUAGYrPpf4F8jO"; my $crc = binhex_crc($data); is($crc, 35360); my $mac_crc = macbinary_crc($data); is($crc, 35360); done_testing();LICENSE100644000765000024 4371312622157435 16760 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125This software is copyright (c) 2015 by Eriq . This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. Terms of the Perl programming language system itself a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" --- The GNU General Public License, Version 1, February 1989 --- This software is Copyright (c) 2015 by Eriq . This is free software, licensed under: The GNU General Public License, Version 1, February 1989 GNU GENERAL PUBLIC LICENSE Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. 51 Franklin St, 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 license agreements of most software companies try to keep users at the mercy of those companies. By contrast, our 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. The General Public License applies to the Free Software Foundation's software and to any other program whose authors commit to using it. You can use it for your programs, too. When we speak of free software, we are referring to freedom, not price. Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, 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 a 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 tell them 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. 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 Agreement 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 work containing the Program or a portion of it, either verbatim or with modifications. Each licensee is addressed as "you". 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 General Public License and to the absence of any warranty; and give any other recipients of the Program a copy of this General Public License along with the Program. You may charge a fee for the physical act of transferring a copy. 2. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option). c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual 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 General Public License. d) 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. Mere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms. 3. You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 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 Paragraphs 1 and 2 above; or, b) accompany it with a written offer, valid for at least three years, to give any third party free (except for a nominal charge for the cost of distribution) a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Paragraphs 1 and 2 above; or, c) accompany it with the information you received as to where the corresponding source code may be obtained. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form alone.) Source code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; but, as a special exception, it need not include source code for modules which are standard libraries that accompany the operating system on which the executable file runs, or for standard header files or definitions files that accompany that operating system. 4. You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the Program is void, and will automatically terminate your rights to use the Program under this License. However, parties who have received copies, or rights to use copies, from you under this General Public License will not have their licenses terminated so long as such parties remain in full compliance. 5. By copying, distributing or modifying 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. 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. 7. 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 the 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 the license, you may choose any version ever published by the Free Software Foundation. 8. 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 9. 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. 10. 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 humanity, 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 1, 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) 19xx 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 a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (a program to direct compilers to make passes at assemblers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice That's all there is to it! --- The Artistic License 1.0 --- This software is Copyright (c) 2015 by Eriq . This is free software, licensed under: The Artistic License 1.0 The Artistic License Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: - "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. - "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder. - "Copyright Holder" is whoever is named in the copyright or copyrights for the package. - "You" is you, if you're thinking about copying or distributing this Package. - "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.) - "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: a) place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as ftp.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. b) use the modified Package only within your corporation or organization. c) rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. d) make other distribution arrangements with the Copyright Holder. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: a) distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. b) accompany the distribution with the machine-readable source of the Package with your modifications. c) accompany any non-standard executables with their corresponding Standard Version executables, giving the non-standard executables non-standard names, and clearly documenting the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. d) make other distribution arrangements with the Copyright Holder. 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this Package. 7. C or perl subroutines supplied by you and linked into this Package shall not be considered part of this Package. 8. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. The End dist.ini100644000765000024 106712622157435 17373 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125name = Convert-BinHex author = Eriq license = Perl_5 copyright_holder = Eriq [Git::NextVersion] [@Git] [@Filter] -bundle=@Basic -remove=Readme [MetaJSON] [AutoPrereqs] skip=^Mac::Files skip=^Test:: [Prereqs] perl=5.6.0 [Prereqs / TestRequires] Test::More = 0 Test::Most = 0 [MetaResources] repository.url = https://github.com/stephenenelson/convert-binhex repository.web = https://github.com/stephenenelson/convert-binhex repository.type = git [OurPkgVersion] [NextRelease] format=%v %{yyyy-MM-dd}d [Test::CPAN::Changes] xt000755000765000024 012622157435 16216 5ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125pod.t100644000765000024 21512622157435 17303 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125/xtuse Test::More; eval "use Test::Pod 1.00"; plan skip_all => "Test::Pod 1.00 required for testing POD" if $@; all_pod_files_ok('lib', 'bin'); META.yml100644000765000024 144412622157435 17177 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125--- abstract: 'extract data from Macintosh BinHex files' author: - 'Eriq ' build_requires: File::Compare: '0' File::Slurp: '0' File::Temp: '0' FindBin: '0' Test::More: '0' Test::Most: '0' autodie: '0' configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 0 generated_by: 'Dist::Zilla version 5.039, CPAN::Meta::Converter version 2.150001' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: Convert-BinHex requires: Carp: '0' Exporter: '0' Fcntl: '0' File::Basename: '0' FileHandle: '0' Getopt::Std: '0' POSIX: '0' integer: '0' lib: '0' perl: v5.6.0 strict: '0' vars: '0' warnings: '0' resources: repository: https://github.com/stephenenelson/convert-binhex version: '1.125' MANIFEST100644000765000024 66312622157435 17041 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.039. COPYING Changes LICENSE MANIFEST META.json META.yml Makefile.PL README README-TOO bin/binhex.pl bin/debinhex.pl dist.ini lib/Convert/BinHex.pm t/1.t t/bin_to_hex_file.t t/comp2bin.t t/crc.t t/hex_to_bin_oo.t t/release-cpan-changes.t test/hexbin testin/eyeball.gif testin/eyeball.gif.hqx testin/hands_m.eps.hqx testout/README testout/eyeball.gif xt/pod.t META.json100644000765000024 315312622157435 17346 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125{ "abstract" : "extract data from Macintosh BinHex files", "author" : [ "Eriq " ], "dynamic_config" : 0, "generated_by" : "Dist::Zilla version 5.039, CPAN::Meta::Converter version 2.150001", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : 2 }, "name" : "Convert-BinHex", "prereqs" : { "configure" : { "requires" : { "ExtUtils::MakeMaker" : "0" } }, "develop" : { "requires" : { "Test::CPAN::Changes" : "0.19" } }, "runtime" : { "requires" : { "Carp" : "0", "Exporter" : "0", "Fcntl" : "0", "File::Basename" : "0", "FileHandle" : "0", "Getopt::Std" : "0", "POSIX" : "0", "integer" : "0", "lib" : "0", "perl" : "v5.6.0", "strict" : "0", "vars" : "0", "warnings" : "0" } }, "test" : { "requires" : { "File::Compare" : "0", "File::Slurp" : "0", "File::Temp" : "0", "FindBin" : "0", "Test::More" : "0", "Test::Most" : "0", "autodie" : "0" } } }, "release_status" : "stable", "resources" : { "repository" : { "type" : "git", "url" : "https://github.com/stephenenelson/convert-binhex", "web" : "https://github.com/stephenenelson/convert-binhex" } }, "version" : "1.125" } README-TOO100644000765000024 24212622157435 17220 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125 In this toolkit are the modules: Convert::BinHex (in ./lib) And the sample programs: binhex.pl (in ./bin) debinhex.pl (in ./bin) Knock yourself out. test000755000765000024 012622157435 16542 5ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125hexbin100644000765000024 354312622157435 20107 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125/test#!/usr/bin/perl use lib "./lib"; use Convert::BinHex; use Getopt::Std; my $bytes; @ARGV or usage(); # Get options: getopts("vhn:o:"); my $dir = $opt_o ||= "."; # Process files: my $infile; my $nfiles = int(@ARGV); my $file_i = 0; foreach $infile (@ARGV) { ++$file_i; # Read header: print STDERR "\nReading $infile\n"; my $HQX = Convert::BinHex->open(Expr=>"<$infile") || die "open $ARGV[0]: "; $HQX->read_header; print STDERR $HQX->header_as_string if ($opt_v or $opt_h); next if $opt_h; # Get output filename: my $name; if ($opt_n) { $name = $opt_n . (($nfiles > 1) ? "-$file_i" : ''); } else { ($name = $HQX->filename) =~ s/[^A-Za-z0-9_\.-]/_/g; } my $fname; # Output data fork: $fname = "$dir/$name"; print STDERR "Writing $fname (data fork)\n"; printf STDERR "Expecting: %6d bytes\n", $HQX->data_length if $opt_v; open DATA, ">$fname" or die "open $fname: $!"; binmode DATA; while ($bytes = $HQX->read_data) { print DATA $bytes; } close DATA; printf STDERR "Wrote: %6d bytes\n", (-s $fname) if $opt_v; # Output resource fork: $fname = "$dir/$name.rsrc"; print STDERR "Writing $fname (resource fork)\n"; printf STDERR "Expecting: %6d bytes\n", $HQX->resource_length if $opt_v; open RESOURCE, ">$fname" or die "open $fname: $!"; binmode RESOURCE; while ($bytes = $HQX->read_resource) { print RESOURCE $bytes; } close RESOURCE; printf STDERR "Wrote: %6d bytes\n", (-s $fname) if $opt_v; 1; } exit(0); sub usage { print STDERR < "extract data from Macintosh BinHex files", "AUTHOR" => "Eriq ", "CONFIGURE_REQUIRES" => { "ExtUtils::MakeMaker" => 0 }, "DISTNAME" => "Convert-BinHex", "EXE_FILES" => [ "bin/binhex.pl", "bin/debinhex.pl" ], "LICENSE" => "perl", "MIN_PERL_VERSION" => "5.006000", "NAME" => "Convert::BinHex", "PREREQ_PM" => { "Carp" => 0, "Exporter" => 0, "Fcntl" => 0, "File::Basename" => 0, "FileHandle" => 0, "Getopt::Std" => 0, "POSIX" => 0, "integer" => 0, "lib" => 0, "strict" => 0, "vars" => 0, "warnings" => 0 }, "TEST_REQUIRES" => { "File::Compare" => 0, "File::Slurp" => 0, "File::Temp" => 0, "FindBin" => 0, "Test::More" => 0, "Test::Most" => 0, "autodie" => 0 }, "VERSION" => "1.125", "test" => { "TESTS" => "t/*.t" } ); my %FallbackPrereqs = ( "Carp" => 0, "Exporter" => 0, "Fcntl" => 0, "File::Basename" => 0, "File::Compare" => 0, "File::Slurp" => 0, "File::Temp" => 0, "FileHandle" => 0, "FindBin" => 0, "Getopt::Std" => 0, "POSIX" => 0, "Test::More" => 0, "Test::Most" => 0, "autodie" => 0, "integer" => 0, "lib" => 0, "strict" => 0, "vars" => 0, "warnings" => 0 ); unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { delete $WriteMakefileArgs{TEST_REQUIRES}; delete $WriteMakefileArgs{BUILD_REQUIRES}; $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; } delete $WriteMakefileArgs{CONFIGURE_REQUIRES} unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; WriteMakefile(%WriteMakefileArgs); comp2bin.t100644000765000024 341212622157435 20064 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125/tuse strict; use warnings; use Test::More; use Convert::BinHex; my %TEST = ( PIVOT_3 => { COMP => [ "90 00 01 02 03 04 00", "90 00 03" ], BIN => "90 01 02 03 04 00 90 03", }, PIVOT_2 => { COMP => [ "90 00 01 02 03 04 00 90", "00 03" ], BIN => "90 01 02 03 04 00 90 03", }, PIVOT_1 => { COMP => [ "90 00 01 02 03 04 00 90 00", "03" ], BIN => "90 01 02 03 04 00 90 03", }, CHOPPY => { COMP => [ "90", "00", "01 02 03 04", "00", "90", "00", "03" ], BIN => "90 01 02 03 04 00 90 03", }, FOUR_FIVES => { COMP => ["01 02 03 04 05 90 04"], BIN => "01 02 03 04 05 05 05 05", }, FOUR_FIVES_AND_A_SIX => { COMP => ["01 02 03 04 05 90 04 06"], BIN => "01 02 03 04 05 05 05 05 06", }, FOUR_MARKS => { COMP => ["01 02 03 04 90 00 90 04"], BIN => "01 02 03 04 90 90 90 90", }, FOUR_MARKS_AND_A_SIX => { COMP => ["01 02 03 04 90 00 90 04 06"], BIN => "01 02 03 04 90 90 90 90 06", }, FIVE_ONES_AND_TWOS => { COMP => ["01 90 05 02 90 05"], BIN => "01 01 01 01 01 02 02 02 02 02", }, ); sub str2hex { my $str = shift; eval '"\x' . join( '\x', split( /\s+/, $str ) ) . '"'; } #------------------------------------------------------------ # BEGIN #------------------------------------------------------------ foreach my $TESTKEY ( sort keys %TEST ) { my $test = $TEST{$TESTKEY}; my @comps = map { str2hex($_) } @{ $test->{COMP} }; my $bin = str2hex( $test->{BIN} ); my $rbin = ''; my $H2B = Convert::BinHex->hex2bin; foreach my $comp (@comps) { $rbin .= $H2B->comp2bin_next($comp); } is( $rbin, $bin, "test $TESTKEY" ); } done_testing(); bin000755000765000024 012622157435 16333 5ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125binhex.pl100644000765000024 741212622157435 20311 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125/bin#!/usr/bin/perl -w =head1 NAME binhex.pl - use Convert::BinHex to encode files as BinHex =head1 USAGE Usage: binhex.pl [options] file ... file Where the options are: -o dir Output in given directory (default outputs in file's directory) -v Verbose output (normally just one line per file is shown) =head1 DESCRIPTION Each file is converted to file.hqx. =head1 WARNINGS Largely untested. =head1 AUTHOR Paul J. Schinder (NASA/GSFC) mostly, though Eryq can't seem to keep his grubby paws off anything... =cut use lib "./lib"; use Getopt::Std; use Convert::BinHex; use POSIX; use Fcntl; use File::Basename; use Carp; require Mac::Files if (($^O||'') eq "MacOS"); our $VERSION = '1.125'; # VERSION use strict; use vars qw( $opt_o $opt_v ); my $DEBUG = 0; #------------------------------------------------------------ # main #------------------------------------------------------------ sub main { # What usage? @ARGV or usage(); getopts('o:v'); $DEBUG = $opt_v; # Process files: my $file; foreach $file (@ARGV) { binhex($file); } } exit(&main ? 0 : -1); #------------------------------------------------------------ # usage #------------------------------------------------------------ # Get usage from me. sub usage { my $msg = shift || ''; my $usage = ''; if (open(USAGE, "<$0")) { while ($_ = and !/^=head1 USAGE/) {}; while ($_ = and !/^=head1/) {$usage .= $_}; close USAGE; } else { $usage = "Usage unavailable; please see the script itself."; } print STDERR "\n$msg$usage"; exit -1; } #------------------------------------------------------------ # binhex FILE #------------------------------------------------------------ # Encode the given FILE. # sub binhex { my $inpath = shift || die "No filename given $!"; local *BHEX; my ($has, $dlength, $rlength, $finfo, $flags); # Create new BinHex interface: my $hqx = Convert::BinHex->new; # Get input directory/filename: my ($inname, $indir) = fileparse($inpath); die "filename $inname too long!" if ((length($inname)+4) > 31); $hqx->filename($inname); # Set up output directory/filename: my $outname = "$inname.hqx"; my $outdir = $opt_o || $indir; my $outpath = "$outdir/$outname"; $outpath =~ s{/+}{/}g; # If we're on a Mac, we can get the real resource info: if ($^O||'' eq "MacOS") { # Get and set up type, creator, flags: $has = Mac::Files::FSpGetCatInfo($inpath); $finfo = $has->{ioFlFndrInfo}; $dlength = $has->{ioFlLgLen}; $rlength = $has->{ioFlRLgLen}; $hqx->type($finfo->{fdType}); $hqx->creator($finfo->{fdCreator}); $hqx->flags($finfo->{fdFlags} & 0xfeff); # turn off inited bit # Set up data fork: $hqx->data(Path=>$inpath); $hqx->data->length($dlength); # Set up resource fork: $hqx->resource(Path=>$inpath, Fork => "RSRC"); $hqx->resource->length($rlength); } else { # not a Mac: fake it... # Set up data fork: $hqx->data(Path => $inpath); $dlength = (-s $inpath); # Set up resource fork: if (-e "$inpath.rsrc") { $hqx->resource(Path => "$inpath.rsrc"); $rlength = (-s "$inpath.rsrc"); } else { $hqx->resource(Data => ''); $rlength = 0; } } # Ready! print "BinHexing: $inpath\n"; if ($DEBUG) { print " Resource size: $rlength\n" if defined($rlength); print " Data size: $dlength\n" if defined($dlength); } open BHEX, ">$outpath" or croak("Unable to open $outpath"); $hqx->encode(\*BHEX); close BHEX; print "Wrote: $outpath\n"; } #------------------------------------------------------------ 1; testout000755000765000024 012622157435 17272 5ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125README100644000765000024 3312622157435 20246 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125/testoutThe test output directory. debinhex.pl100755000765000024 1324012622157435 20641 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125/bin#!/usr/bin/perl -w =encoding UTF-8 =head1 NAME debinhex.pl - use Convert::BinHex to decode BinHex files =head1 USAGE Usage: debinhex.pl [options] file ... file Where the options are: -o dir Output in given directory (default outputs in file's directory) -v Verbose output (normally just one line per file is shown) =head1 DESCRIPTION Each file is expected to be a BinHex file. By default, the output file is given the name that the BinHex file dictates, regardless of the name of the BinHex file. =head1 WARNINGS Largely untested. =head1 AUTHORS Paul J. Schinder (NASA/GSFC) mostly, though Eryq can't seem to keep his grubby paws off anything... Sören M. Andersen (somian), made it actually work under Perl 5.8.7 on MSWin32. =cut our $VERSION = '1.125'; # VERSION my $The_OS; BEGIN { $The_OS = $^O ? $^O : q// } eval { require Mac::Files } if ($The_OS eq "MacOS"); use Getopt::Std; use Convert::BinHex; use POSIX; use Fcntl; use File::Basename; use Carp; use strict; use vars qw( $opt_o $opt_v ); my $DEBUG = 0; #------------------------------------------------------------ # main #------------------------------------------------------------ sub main { # What usage? @ARGV or usage(); getopts('o:v'); $DEBUG = $opt_v; # Process files: my $file; foreach $file (@ARGV) { debinhex($file); } } exit(&main ? 0 : -1); #------------------------------------------------------------ # usage #------------------------------------------------------------ # Get usage from me. sub usage { my $msg = shift || ''; my $usage = ''; if (open(USAGE, "<$0")) { while (defined($_ = ) and !/^=head1 USAGE/) {}; while (defined($_ = ) and !/^=head1/) {$usage .= $_}; close USAGE; } else { $usage = "Usage unavailable; please see the script itself."; } print STDERR "\n$msg$usage"; exit -1; } #------------------------------------------------------------ # debinhex FILE #------------------------------------------------------------ # Decode the given FILE. # sub debinhex { my $inpath = shift || croak("No filename given $!"); local *BHEX; my ($data, $testlength, $length, $fd); print "DeBinHexing: $inpath\n"; # Open BinHex file: open(BHEX,"<$inpath") || croak("Unable to open $inpath: $!"); binmode BHEX; # Create converter interface on stream: my $hqx = Convert::BinHex->open(FH => \*BHEX); # Read header, and output as string if debugging: $hqx->read_header; print $hqx->header_as_string if $DEBUG; # Get output directory/filename: my ($inname, $indir) = fileparse($inpath); my $outname = $hqx->filename || 'NONAME'; my $outdir = $opt_o || $indir; my $outpath = "$outdir/$outname"; $outpath =~ s{/+}{/}g; # Create Mac file: if ($The_OS eq "MacOS") { Mac::Files::FSpCreate($outpath, $hqx->creator, $hqx->type) or croak("Unable to create Mac file $outpath"); } # Get lengths of forks: my $dlength = $hqx->data_length; my $rlength = $hqx->resource_length; # Write data fork: print "Writing: $outpath\n"; $fd = POSIX::open($outpath, (&POSIX::O_WRONLY | &POSIX::O_CREAT | &Fcntl::O_BINARY), 0755); $testlength = 0; while (defined($data = $hqx->read_data)) { $length = length($data); POSIX::write($fd, $data, $length) or croak("couldn't write $length bytes: $!"); $testlength += $length; } POSIX::close($fd) or croak "Unable to close $outpath"; croak("Data fork length mismatch: ". "expected $dlength, wrote $testlength") if $dlength != $testlength; # Write resource fork? if ($rlength) { # Determine how to open fork file appropriately: my ($rpath, $rflags); if ($The_OS eq "MacOS") { $rpath = $outpath; $rflags = (&POSIX::O_WRONLY | &POSIX::O_CREAT | &Fcntl::O_RSRC); } else { $rpath = "$outpath.rsrc"; $rflags = (&POSIX::O_WRONLY | &POSIX::O_CREAT | &Fcntl::O_BINARY); } # Write resource fork... $fd = POSIX::open($rpath, $rflags, 0755); $testlength = 0; while (defined($data = $hqx->read_resource)) { $length = length($data); POSIX::write($fd,$data,$length) or croak "Couldn't write $length bytes: $!"; $testlength += $length; } POSIX::close($fd) or croak "Unable to close $rpath"; croak("Resource fork length mismatch: ". "expected $rlength, wrote $testlength") if $testlength != $rlength; } # Set Mac attributes: if ($The_OS eq "MacOS") { my $has = Mac::Files::FSpGetCatInfo($outpath); my $finfo = $has->{ioFlFndrInfo}; $finfo->{fdFlags} = $hqx->flags & 0xfeff; #turn off inited bit $finfo->{fdType} = $hqx->type || "????"; $finfo->{fdCreator} = $hqx->creator || "????"; # Turn on the bundle bit if it's an application: ### $finfo->{fdFlags} |= 0x2000 if $finfo->{fdType} eq "APPL"; if ($DEBUG) { printf("%x\n",$finfo->{fdFlags}); printf("%s\n",$finfo->{fdType}); printf("%s\n",$finfo->{fdCreator}); } $has->{ioFlFndrInfo} = $finfo; Mac::Files::FSpSetCatInfo($outpath, $has) or croak "Unable to set catalog info $^E"; if ($DEBUG) { $has = Mac::Files::FSpGetCatInfo ($outpath); printf("%x\n",$has->{ioFlFndrInfo}->{fdFlags}); printf("%s\n",$has->{ioFlFndrInfo}->{fdType}); printf("%s\n",$has->{ioFlFndrInfo}->{fdCreator}); } } 1; } #------------------------------------------------------------ __END__ # Last modified: 16 Feb 2006 at 05:16 PM EST hex_to_bin_oo.t100644000765000024 141012622157435 21162 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125/tuse strict; use warnings; use Test::Most; use FindBin '$Bin'; use File::Slurp; use autodie; my $binhex_file = "$Bin/../testin/eyeball.gif.hqx"; my $orig_file = "$Bin/../testin/eyeball.gif"; use Convert::BinHex; # Test hex to bin, OO interface open( my $in_fh, $binhex_file); my $hqx = Convert::BinHex->open( FH => $in_fh ); $hqx->read_header(); my @data = $hqx->read_data(); my @rsrc = $hqx->read_resource(); my $orig_data = read_file( $orig_file, { 'binmode' => ':raw' }); eq_or_diff(join('', @data), $orig_data, 'data fork matches original'); is_deeply(\@rsrc, [], 'resource fork is empty'); is($hqx->filename(), 'eyeball.gif', 'filename is correct'); is($hqx->type(), '????', 'type is correct'); is($hqx->creator(), '????', 'creator is correct'); done_testing(); testin000755000765000024 012622157435 17071 5ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125eyeball.gif100644000765000024 530312622157435 21336 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125/testinGIF89a<:÷ÿ!!!)))111999BBBJJJRRRZZZcccsss„„„ŒŒŒ”””œœœ¥¥¥­­­µµµ½½½ÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÎÆÆ½µµ­¥¥µ­­Æ½½”ŒŒœ””¥œœ½­­ÆµµÎ½½µ¥¥cZZ­œœœŒŒ¥””JBB”„„Œ{{„ss½¥¥Æ­­{kkµœœ­””œ„„Œss­ŒŒcBBZ99B9c91R)!BkJBZ91R1)cB9Œsk„kcsZRkRJcJBJB{cZZ1!B9R)J!¥”ŒŒ{s„skkZRB1)Z9)R1!JœŒ„{kccB1J)”„{scZ1!BsZJZ1R)J!ZB1R!kJ1R1Z1R)J!ƽµ¥œ”Ƶ¥Œ{ksZBB1!!ÖÎÆµ­¥œ”Œ”Œ„œŒ{scR{cJkR9kJ)cB!Z9R1J)Z1R)ÎÆ½­¥œŒ„{cBR1J)Z1Œ{c{cBsZ9kR1cJ)9!„sZcBZ9R1{kRkR)cJ!1!B)ƽ­cBZ9½µ¥œ”„scBkZ9cJZBcBµ­œŒ„scJR9kJB1ZBcJ9)ZBcJÎÎÆÖÖέ­¥ÆÆ½½½­ÆÆµÆÆ­BB9ÀÀÀ÷ÿÎï÷ÆçïÆÖÞµÞç½ÖÞ½ÆÎµÆÎ½ÎÞ½ÆÎÆÎÖνƽ½Î½ÆÎÎÎÖÖÖÞÞµ½½¥­­­µµ½ÆÆÆÆÎÎÎÖÖÖÞ¥¥­½½Æœœ¥kksBBJ!!)µ­µÆ½Æœ”œ¥œ¥­œ¥Œ{„ÞÎÖ½­µœŒ””„ŒÆµ½µœ¥”{„½¥­œ„ŒÆ­µ­”œ¥Œ”Œs{½œ¥œ{„Öµ½µ”œ­Œ”¥„Œ”s{œs{!ù¹,<:@ÿs H° Áƒ*\hPX, #Rè0¡"… ):0‹¨QbÄŠ†ýbhÐ×… 8³`¡‚…d¤Õp²„ !›•UZT)gÎ@i„$Ùòá#…&4lÀ€Ò‚Â6ï,t{ƒ¥… Gj*ꄈ#ŒPÈÀ½³h5•‚õªT'AiÌèx1A‚] )T8f°—,”.]ZPÖL^qB% 4fÑ@à@‚-’ôäZKW‰ñÄM‹,‚"й¥âÊœ«Œ"Ê%˜`âÇ$”°Á†"K a !Ô£Îh#¬À×BÂòÁU DÑTAM”±Ä¦OlªGˆ A3Œ0¨q¨2ùäË-µDÿ@Ž=Þ”j qÈyŽ;8à@¯äñÒj~¼ó‹0È"û‹/Ã¦× 2…PDß{Ì3AGBz£i÷5;PoŒ3iÏxô ¹è¾Q,ø¡g `VA¥HSA #ö°DYø™Å¾K„Tó æÄ< j õrÒJ!^ÕBaø¦ˆ›néËm¯¼ÒSW ñ‚ÙNðÁ\€ÁI@|2œ³NÅ@qØ•Pò"z¢H&¤ 2È‘¤’Û›¨Qò.TôAiÉÒK_'U|NøVÉ‘’|bÊ (`ÀQ¢uO&,¶ÕI"QtñuI§­S®¶/šW©ÿ°„"=q"Ê#T€@)Y•€K`2Jg•°±„ ÛEÐŒtÄrÐ0®5eÁ4Sôp!·¨Èjo3,ä‘Ù~¨Q¹å[7œwQÐ\C’‚@Á8(qÌ¥÷ËÇ(ªø ‹)²Ò %mζ„ ¢=à rð¨#Á0Ì*4Œ-ó@ôŒ¤ðFC…¦~êxO•÷fy[úqªF°É†æW^é@7Br=c#ï±Ëp†SñçûkV0†& УÚÑ·ƒŽr8<µÆÕ¼¥`£·p ¯OÔbY$Œ¡ ½Õ‹c ƒ(>PÕ¢È ß ÿ aÐÂ4¡7nÀkek[ø¡0„5Ä_â"X¬3¤5@ª#Fˆiì3Âf5 ]F¹Ñ”ˆ±íRCh @\ ºža°r±‘W¹@K&‹ß9ç:œ—kúÓ=cLà¢%DAF[°‘;ÀÐÀC ‹Á :€7’ #.I2Œ¯b(Ã>è”MÁŸÜ„kˆÛd -mU`âØ€,@YðO!°¢ÁÁ¸äpÐWûvò¦¹‰'„ rðe‹Ì˜A:.  Ó Ù[Å”‘dŒ6!kËó––›R´)jÂZàÿà¨e')¦ ò‹ À€”!ZFžÐ¾ÛpbœhÅŠê© ¶¸Å6jÀB¨àЇ@)eA†1ƒ¼¡,Y† ª“D â¡pÄ#¬ 8µ@li%Q²*Œ`Ùù_D,€Î\ô‚ ` Öáep` µ\%0 8|âMzRÚÎ2ˆæY.?@Bÿ)³ø‚)›†j¢5 AR¨ƒ5°€³mõÛèCD9ñ±œ!ïþ)2T™0Ñ2ð@$#a¢Œ8Å5pèb‹À€‰KˆB¢<±ÜÀDÂNÀ°éEK`¤ ¤ &g@c.‰ÿ  ¦R  € X|@„ q†,”ᤊÀ`ñÒ¹ƒü0|»@ÂГæE”[ÝÅë€FHB —@6—jg8›c.«Òy&Át  8ILbÖR‰9°NJ8Ã#‡=@B ‰(Q¢ ˆ ÀŒb ’H¹¤Òè%ã 2±Hn,&1‰Qð©7a€‚ª `ttO¼EBŽ ‘sœ%•bÉdƒ“"µ¨ysËm*AË,< ¸RÕ¼Q¬7!¾ˆEµ ’GèV@ ›%êÚ$²N´©D7 C Ø@ä„<"É1Ú¡- € \gv‰!‚ „}ý Ë7aƒ–Ë€é÷{ lG’Ghtã¼ð# ‡€€œAÚÐtùàÆ@ÍsŒèXg5zñr|c Ô3x6QžaAG;¢‡i8­ÁáÔ@¡v ¤eØ èðèÎvšá GõÁ…QÔÖÚ¦€µ—ñ×+ØàWµ 1new(); $hqx->filename('eyeball.gif'); $hqx->type('????'); $hqx->creator('????'); $hqx->data( Path => $source_file ); $hqx->resource( Data => '' ); my $tmp_fh = File::Temp->new(); $hqx->encode($tmp_fh); $tmp_fh->flush(); $tmp_fh->seek(0,0); ok( compare( $tmp_fh, $comparison) == 0, "File is binary correct"); done_testing();eyeball.gif100644000765000024 530312622157435 21537 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125/testoutGIF89a<:÷ÿ!!!)))111999BBBJJJRRRZZZcccsss„„„ŒŒŒ”””œœœ¥¥¥­­­µµµ½½½ÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÎÆÆ½µµ­¥¥µ­­Æ½½”ŒŒœ””¥œœ½­­ÆµµÎ½½µ¥¥cZZ­œœœŒŒ¥””JBB”„„Œ{{„ss½¥¥Æ­­{kkµœœ­””œ„„Œss­ŒŒcBBZ99B9c91R)!BkJBZ91R1)cB9Œsk„kcsZRkRJcJBJB{cZZ1!B9R)J!¥”ŒŒ{s„skkZRB1)Z9)R1!JœŒ„{kccB1J)”„{scZ1!BsZJZ1R)J!ZB1R!kJ1R1Z1R)J!ƽµ¥œ”Ƶ¥Œ{ksZBB1!!ÖÎÆµ­¥œ”Œ”Œ„œŒ{scR{cJkR9kJ)cB!Z9R1J)Z1R)ÎÆ½­¥œŒ„{cBR1J)Z1Œ{c{cBsZ9kR1cJ)9!„sZcBZ9R1{kRkR)cJ!1!B)ƽ­cBZ9½µ¥œ”„scBkZ9cJZBcBµ­œŒ„scJR9kJB1ZBcJ9)ZBcJÎÎÆÖÖέ­¥ÆÆ½½½­ÆÆµÆÆ­BB9ÀÀÀ÷ÿÎï÷ÆçïÆÖÞµÞç½ÖÞ½ÆÎµÆÎ½ÎÞ½ÆÎÆÎÖνƽ½Î½ÆÎÎÎÖÖÖÞÞµ½½¥­­­µµ½ÆÆÆÆÎÎÎÖÖÖÞ¥¥­½½Æœœ¥kksBBJ!!)µ­µÆ½Æœ”œ¥œ¥­œ¥Œ{„ÞÎÖ½­µœŒ””„ŒÆµ½µœ¥”{„½¥­œ„ŒÆ­µ­”œ¥Œ”Œs{½œ¥œ{„Öµ½µ”œ­Œ”¥„Œ”s{œs{!ù¹,<:@ÿs H° Áƒ*\hPX, #Rè0¡"… ):0‹¨QbÄŠ†ýbhÐ×… 8³`¡‚…d¤Õp²„ !›•UZT)gÎ@i„$Ùòá#…&4lÀ€Ò‚Â6ï,t{ƒ¥… Gj*ꄈ#ŒPÈÀ½³h5•‚õªT'AiÌèx1A‚] )T8f°—,”.]ZPÖL^qB% 4fÑ@à@‚-’ôäZKW‰ñÄM‹,‚"й¥âÊœ«Œ"Ê%˜`âÇ$”°Á†"K a !Ô£Îh#¬À×BÂòÁU DÑTAM”±Ä¦OlªGˆ A3Œ0¨q¨2ùäË-µDÿ@Ž=Þ”j qÈyŽ;8à@¯äñÒj~¼ó‹0È"û‹/Ã¦× 2…PDß{Ì3AGBz£i÷5;PoŒ3iÏxô ¹è¾Q,ø¡g `VA¥HSA #ö°DYø™Å¾K„Tó æÄ< j õrÒJ!^ÕBaø¦ˆ›néËm¯¼ÒSW ñ‚ÙNðÁ\€ÁI@|2œ³NÅ@qØ•Pò"z¢H&¤ 2È‘¤’Û›¨Qò.TôAiÉÒK_'U|NøVÉ‘’|bÊ (`ÀQ¢uO&,¶ÕI"QtñuI§­S®¶/šW©ÿ°„"=q"Ê#T€@)Y•€K`2Jg•°±„ ÛEÐŒtÄrÐ0®5eÁ4Sôp!·¨Èjo3,ä‘Ù~¨Q¹å[7œwQÐ\C’‚@Á8(qÌ¥÷ËÇ(ªø ‹)²Ò %mζ„ ¢=à rð¨#Á0Ì*4Œ-ó@ôŒ¤ðFC…¦~êxO•÷fy[úqªF°É†æW^é@7Br=c#ï±Ëp†SñçûkV0†& УÚÑ·ƒŽr8<µÆÕ¼¥`£·p ¯OÔbY$Œ¡ ½Õ‹c ƒ(>PÕ¢È ß ÿ aÐÂ4¡7nÀkek[ø¡0„5Ä_â"X¬3¤5@ª#Fˆiì3Âf5 ]F¹Ñ”ˆ±íRCh @\ ºža°r±‘W¹@K&‹ß9ç:œ—kúÓ=cLà¢%DAF[°‘;ÀÐÀC ‹Á :€7’ #.I2Œ¯b(Ã>è”MÁŸÜ„kˆÛd -mU`âØ€,@YðO!°¢ÁÁ¸äpÐWûvò¦¹‰'„ rðe‹Ì˜A:.  Ó Ù[Å”‘dŒ6!kËó––›R´)jÂZàÿà¨e')¦ ò‹ À€”!ZFžÐ¾ÛpbœhÅŠê© ¶¸Å6jÀB¨àЇ@)eA†1ƒ¼¡,Y† ª“D â¡pÄ#¬ 8µ@li%Q²*Œ`Ùù_D,€Î\ô‚ ` Öáep` µ\%0 8|âMzRÚÎ2ˆæY.?@Bÿ)³ø‚)›†j¢5 AR¨ƒ5°€³mõÛèCD9ñ±œ!ïþ)2T™0Ñ2ð@$#a¢Œ8Å5pèb‹À€‰KˆB¢<±ÜÀDÂNÀ°éEK`¤ ¤ &g@c.‰ÿ  ¦R  € X|@„ q†,”ᤊÀ`ñÒ¹ƒü0|»@ÂГæE”[ÝÅë€FHB —@6—jg8›c.«Òy&Át  8ILbÖR‰9°NJ8Ã#‡=@B ‰(Q¢ ˆ ÀŒb ’H¹¤Òè%ã 2±Hn,&1‰Qð©7a€‚ª `ttO¼EBŽ ‘sœ%•bÉdƒ“"µ¨ysËm*AË,< ¸RÕ¼Q¬7!¾ˆEµ ’GèV@ ›%êÚ$²N´©D7 C Ø@ä„<"É1Ú¡- € \gv‰!‚ „}ý Ë7aƒ–Ë€é÷{ lG’Ghtã¼ð# ‡€€œAÚÐtùàÆ@ÍsŒèXg5zñr|c Ô3x6QžaAG;¢‡i8­ÁáÔ@¡v ¤eØ èðèÎvšá GõÁ…QÔÖÚ¦€µ—ñ×+ØàWµ 1 =head1 SYNOPSIS B use Convert::BinHex qw(binhex_crc macbinary_crc); # Compute HQX7-style CRC for data, pumping in old CRC if desired: $crc = binhex_crc($data, $crc); # Compute the MacBinary-II-style CRC for the data: $crc = macbinary_crc($data, $crc); B Conversion is actually done via an object (L<"Convert::BinHex::Hex2Bin">) which keeps internal conversion state: # Create and use a "translator" object: my $H2B = Convert::BinHex->hex2bin; # get a converter object while () { print $STDOUT $H2B->next($_); # convert some more input } print $STDOUT $H2B->done; # no more input: finish up B The following operations I be done in the order shown! # Read data in piecemeal: $HQX = Convert::BinHex->open(FH=>\*STDIN) || die "open: $!"; $HQX->read_header; # read header info @data = $HQX->read_data; # read in all the data @rsrc = $HQX->read_resource; # read in all the resource B Conversion is actually done via an object (L<"Convert::BinHex::Bin2Hex">) which keeps internal conversion state: # Create and use a "translator" object: my $B2H = Convert::BinHex->bin2hex; # get a converter object while () { print $STDOUT $B2H->next($_); # convert some more input } print $STDOUT $B2H->done; # no more input: finish up B Yes, you can convert I BinHex as well as from it! # Create new, empty object: my $HQX = Convert::BinHex->new; # Set header attributes: $HQX->filename("logo.gif"); $HQX->type("GIFA"); $HQX->creator("CNVS"); # Give it the data and resource forks (either can be absent): $HQX->data(Path => "/path/to/data"); # here, data is on disk $HQX->resource(Data => $resourcefork); # here, resource is in core # Output as a BinHex stream, complete with leading comment: $HQX->encode(\*STDOUT); B I. # Create new, empty object from CAP tree: my $HQX = Convert::BinHex->from_cap("/path/to/root/file"); $HQX->encode(\*STDOUT); =head1 DESCRIPTION B is a format used by Macintosh for transporting Mac files safely through electronic mail, as short-lined, 7-bit, semi-compressed data streams. Ths module provides a means of converting those data streams back into into binary data. =head1 FORMAT I<(Some text taken from RFC-1741.)> Files on the Macintosh consist of two parts, called I: =over 4 =item Data fork The actual data included in the file. The Data fork is typically the only meaningful part of a Macintosh file on a non-Macintosh computer system. For example, if a Macintosh user wants to send a file of data to a user on an IBM-PC, she would only send the Data fork. =item Resource fork Contains a collection of arbitrary attribute/value pairs, including program segments, icon bitmaps, and parametric values. =back Additional information regarding Macintosh files is stored by the Finder in a hidden file, called the "Desktop Database". Because of the complications in storing different parts of a Macintosh file in a non-Macintosh filesystem that only handles consecutive data in one part, it is common to convert the Macintosh file into some other format before transferring it over the network. The BinHex format squashes that data into transmittable ASCII as follows: =over 4 =item 1. The file is output as a B consisting of some basic header information (filename, type, creator), then the data fork, then the resource fork. =item 2. The byte stream is B by looking for series of duplicated bytes and representing them using a special binary escape sequence (of course, any occurences of the escape character must also be escaped). =item 3. The compressed stream is B via the "6/8 hemiola" common to I and I: each group of three 8-bit bytes (24 bits) is chopped into four 6-bit numbers, which are used as indexes into an ASCII "alphabet". (I assume that leftover bytes are zero-padded; documentation is thin). =back =cut use strict; use warnings; use vars qw(@ISA @EXPORT_OK $VERSION $QUIET); use integer; use Carp; use Exporter; use FileHandle; @ISA = qw(Exporter); @EXPORT_OK = qw( macbinary_crc binhex_crc ); our $VERSION = '1.125'; # VERSION # My identity: my $I = 'binhex:'; # Utility function: sub min { my ($a, $b) = @_; ($a < $b) ? $a : $b; } # An array useful for CRC calculations that use 0x1021 as the "seed": my @MAGIC = ( 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d, 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823, 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a, 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70, 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067, 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d, 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634, 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a, 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1, 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0 ); # Ssssssssssshhhhhhhhhh: $QUIET = 0; #============================== =head1 FUNCTIONS =head2 CRC computation =over 4 =cut #------------------------------------------------------------ =item macbinary_crc DATA, SEED Compute the MacBinary-II-style CRC for the given DATA, with the CRC seeded to SEED. Normally, you start with a SEED of 0, and you pump in the previous CRC as the SEED if you're handling a lot of data one chunk at a time. That is: $crc = 0; while () { $crc = macbinary_crc($_, $crc); } I Extracted from the I utility (Doug Moore, April '87), using a "magic array" algorithm by Jim Van Verth for efficiency. Converted to Perl5 by Eryq. B =cut sub macbinary_crc { my $len = length($_[0]); my $crc = $_[1]; my $i; for ($i = 0; $i < $len; $i++) { ($crc ^= (vec($_[0], $i, 8) << 8)) &= 0xFFFF; $crc = ($crc << 8) ^ $MAGIC[$crc >> 8]; } $crc; } #------------------------------------------------------------ =item binhex_crc DATA, SEED Compute the HQX-style CRC for the given DATA, with the CRC seeded to SEED. Normally, you start with a SEED of 0, and you pump in the previous CRC as the SEED if you're handling a lot of data one chunk at a time. That is: $crc = 0; while () { $crc = binhex_crc($_, $crc); } I Extracted from the I utility (Doug Moore, April '87), using a "magic array" algorithm by Jim Van Verth for efficiency. Converted to Perl5 by Eryq. =cut sub binhex_crc { my $len = length($_[0]); my $crc = $_[1]; if (! defined $crc) { $crc = 0; } my $i; for ($i = 0; $i < $len; $i++) { my $ocrc = $crc; $crc = (((($crc & 0xFF) << 8) | vec($_[0], $i, 8)) ^ $MAGIC[$crc >> 8]) & 0xFFFF; ## printf "CRCin = %04x, char = %02x (%c), CRCout = %04x\n", ## $ocrc, vec($_[0], $i, 8), ord(substr($_[0], $i, 1)), $crc; } $crc; } =back =cut #============================== =head1 OO INTERFACE =head2 Conversion =over 4 =cut #------------------------------------------------------------ =item bin2hex I Return a converter object. Just creates a new instance of L<"Convert::BinHex::Bin2Hex">; see that class for details. =cut sub bin2hex { return Convert::BinHex::Bin2Hex->new; } #------------------------------------------------------------ =item hex2bin I Return a converter object. Just creates a new instance of L<"Convert::BinHex::Hex2Bin">; see that class for details. =cut sub hex2bin { return Convert::BinHex::Hex2Bin->new; } =back =cut #============================== =head2 Construction =over 4 =cut #------------------------------------------------------------ =item new PARAMHASH I Return a handle on a BinHex'able entity. In general, the data and resource forks for such an entity are stored in native format (binary) format. Parameters in the PARAMHASH are the same as header-oriented method names, and may be used to set attributes: $HQX = new Convert::BinHex filename => "icon.gif", type => "GIFB", creator => "CNVS"; =cut sub new { my ($class, %params) = @_; # Create object: my $self = bless { Data => new Convert::BinHex::Fork, # data fork Rsrc => new Convert::BinHex::Fork, # resource fork }, $class; # basic object # Process params: my $method; foreach $method (qw(creator filename flags requires type version software_version)){ $self->$method($params{$method}) if exists($params{$method}); } $self; } #------------------------------------------------------------ =item open PARAMHASH I Return a handle on a new BinHex'ed stream, for parsing. Params are: =over 4 =item Data Input a HEX stream from the given data. This can be a scalar, or a reference to an array of scalars. =item Expr Input a HEX stream from any open()able expression. It will be opened and binmode'd, and the filehandle will be closed either on a C or when the object is destructed. =item FH Input a HEX stream from the given filehandle. =item NoComment If true, the parser should not attempt to skip a leading "(This file...)" comment. That means that the first nonwhite characters encountered must be the binhex'ed data. =back =cut sub open { my $self = shift; my %params = @_; # Create object: ref($self) or $self = $self->new; # Set up input: my $data; if ($params{FH}) { $self->{FH} = Convert::BinHex::IO_Handle->wrap($params{FH}); } elsif ($params{Expr}) { $self->{FH} = FileHandle->new($params{Expr}) or croak "$I can't open $params{Expr}: $!\n"; $self->{FH} = Convert::BinHex::IO_Handle->wrap($self->{FH}); } elsif ($params{Data}) { if (!ref($data = $params{Data})) { # scalar $self->{FH} = Convert::BinHex::IO_Scalar->wrap(\$data); } elsif (ref($data) eq 'ARRAY') { $data = join('', @$data); $self->{FH} = Convert::BinHex::IO_Scalar->wrap(\$data); } } $self->{FH} or croak "$I missing a valid input source\n"; # Comments? $self->{CommentRead} = $params{NoComment}; # Reset the converter! $self->{H2B} = Convert::BinHex::Hex2Bin->new; $self; } =back =cut #============================== =head2 Get/set header information =over 4 =cut #------------------------------ =item creator [VALUE] I Get/set the creator of the file. This is a four-character string (though I don't know if it's guaranteed to be printable ASCII!) that serves as part of the Macintosh's version of a MIME "content-type". For example, a document created by "Canvas" might have creator C<"CNVS">. =cut sub creator { (@_ > 1) ? ($_[0]->{Creator} = $_[1]) : $_[0]->{Creator} } #------------------------------ =item data [PARAMHASH] I Get/set the data fork. Any arguments are passed into the new() method of L<"Convert::BinHex::Fork">. =cut sub data { my $self = shift; @_ ? $self->{Data} = Convert::BinHex::Fork->new(@_) : $self->{Data}; } #------------------------------ =item filename [VALUE] I Get/set the name of the file. =cut sub filename { (@_ > 1) ? ($_[0]->{Filename} = $_[1]) : $_[0]->{Filename} } #------------------------------ =item flags [VALUE] I Return the flags, as an integer. Use bitmasking to get as the values you need. =cut sub flags { (@_ > 1) ? ($_[0]->{Flags} = $_[1]) : $_[0]->{Flags} } #------------------------------ =item header_as_string Return a stringified version of the header that you might use for logging/debugging purposes. It looks like this: X-HQX-Software: BinHex 4.0 (Convert::BinHex 1.102) X-HQX-Filename: Something_new.eps X-HQX-Version: 0 X-HQX-Type: EPSF X-HQX-Creator: ART5 X-HQX-Data-Length: 49731 X-HQX-Rsrc-Length: 23096 As some of you might have guessed, this is RFC-822-style, and may be easily plunked down into the middle of a mail header, or split into lines, etc. =cut sub header_as_string { my $self = shift; my @h; push @h, "X-HQX-Software: " . "BinHex " . ($self->requires || '4.0') . " (Convert::BinHex $VERSION)"; push @h, "X-HQX-Filename: " . $self->filename; push @h, "X-HQX-Version: " . $self->version; push @h, "X-HQX-Type: " . $self->type; push @h, "X-HQX-Creator: " . $self->creator; push @h, "X-HQX-Flags: " . sprintf("%x", $self->flags); push @h, "X-HQX-Data-Length: " . $self->data->length; push @h, "X-HQX-Rsrc-Length: " . $self->resource->length; push @h, "X-HQX-CRC: " . sprintf("%x", $self->{HdrCRC}); return join("\n", @h) . "\n"; } #------------------------------ =item requires [VALUE] I Get/set the software version required to convert this file, as extracted from the comment that preceded the actual binhex'ed data; e.g.: (This file must be converted with BinHex 4.0) In this case, after parsing in the comment, the code: $HQX->requires; would get back "4.0". =cut sub requires { (@_ > 1) ? ($_[0]->{Requires} = $_[1]) : $_[0]->{Requires} } *software_version = \&requires; #------------------------------ =item resource [PARAMHASH] I Get/set the resource fork. Any arguments are passed into the new() method of L<"Convert::BinHex::Fork">. =cut sub resource { my $self = shift; @_ ? $self->{Rsrc} = Convert::BinHex::Fork->new(@_) : $self->{Rsrc}; } #------------------------------ =item type [VALUE] I Get/set the type of the file. This is a four-character string (though I don't know if it's guaranteed to be printable ASCII!) that serves as part of the Macintosh's version of a MIME "content-type". For example, a GIF89a file might have type C<"GF89">. =cut sub type { (@_ > 1) ? ($_[0]->{Type} = $_[1]) : $_[0]->{Type} } #------------------------------ =item version [VALUE] I Get/set the version, as an integer. =cut sub version { (@_ > 1) ? ($_[0]->{Version} = $_[1]) : $_[0]->{Version} } =back =cut ### OBSOLETE!!! sub data_length { shift->data->length(@_) } sub resource_length { shift->resource->length(@_) } #============================== =head2 Decode, high-level =over 4 =cut #------------------------------------------------------------ =item read_comment I Skip past the opening comment in the file, which is of the form: (This file must be converted with BinHex 4.0) As per RFC-1741, I and any text before it will be ignored. I C will do it for you. After the call, the version number in the comment is accessible via the C method. =cut sub read_comment { my $self = shift; return 1 if ($self->{CommentRead}); # prevent accidents local($_); while (defined($_ = $self->{FH}->getline)) { chomp; if (/^\(This file must be converted with BinHex ([\d\.]+).*\)\s*$/i) { $self->requires($1); return $self->{CommentRead} = 1; } } croak "$I comment line (This file must be converted with BinHex...) ". "not found\n"; } #------------------------------------------------------------ =item read_header I Read in the BinHex file header. You must do this first! =cut sub read_header { my $self = shift; return 1 if ($self->{HeaderRead}); # prevent accidents # Skip comment: $self->read_comment; # Get header info: $self->filename ($self->read_str($self->read_byte)); $self->version ($self->read_byte); $self->type ($self->read_str(4)); $self->creator ($self->read_str(4)); $self->flags ($self->read_short); $self->data_length ($self->read_long); $self->resource_length ($self->read_long); $self->{HdrCRC} = $self->read_short; $self->{HeaderRead} = 1; } #------------------------------------------------------------ # # _read_fork # # I # Read in a fork. # sub _read_fork { my $self = shift; # Pass in call if array context: if (wantarray) { local($_); my @all; push @all, $_ while (defined($_ = $self->_read_fork(@_))); return @all; } # Get args: my ($fork, $n) = @_; if($self->{$fork}->length == 0) { $self->{$fork}->crc($self->read_short); return undef; } defined($n) or $n = 2048; # Reset pointer into fork if necessary: if (!defined($self->{$fork}{Ptr})) { $self->{$fork}{Ptr} = 0; $self->{CompCRC} = 0; } # Check for EOF: return undef if ($self->{$fork}{Ptr} >= $self->{$fork}->length); # Read up to, but not exceeding, the number of bytes left in the fork: my $n2read = min($n, ($self->{$fork}->length - $self->{$fork}{Ptr})); my $data = $self->read_str($n2read); $self->{$fork}{Ptr} += length($data); # If we just read the last byte, read the CRC also: if (($self->{$fork}{Ptr} == $self->{$fork}->length) && # last byte !defined($self->{$fork}->crc)) { # no CRC my $comp_CRC; # Move computed CRC forward by two zero bytes, and grab the value: if ($self->{CheckCRC}) { $self->{CompCRC} = binhex_crc("\000\000", $self->{CompCRC}); } # Get CRC as stored in file: $self->{$fork}->crc($self->read_short); # get stored CRC # Compare, and note corruption if detected: if ($self->{CheckCRC} and ($self->{$fork}->crc != $comp_CRC)) { &Carp::carp("CRCs do not match: corrupted data?") unless $QUIET; $self->{Corrupted} = 1; } } # Return the bytes: $data; } #------------------------------------------------------------ =item read_data [NBYTES] I Read information from the data fork. Use it in an array context to slurp all the data into an array of scalars: @data = $HQX->read_data; Or use it in a scalar context to get the data piecemeal: while (defined($data = $HQX->read_data)) { # do stuff with $data } The NBYTES to read defaults to 2048. =cut sub read_data { shift->_read_fork('Data',@_); } #------------------------------------------------------------ =item read_resource [NBYTES] I Read in all/some of the resource fork. See C for usage. =cut sub read_resource { shift->_read_fork('Rsrc',@_); } =back =cut #------------------------------------------------------------ # # read BUFFER, NBYTES # # Read the next NBYTES (decompressed) bytes from the input stream # into BUFFER. Returns the number of bytes actually read, and # undef on end of file. # # I the calling style mirrors the IO::Handle read() function. my $READBUF = ''; sub read { my ($self, $n) = ($_[0], $_[2]); $_[1] = ''; # just in case my $FH = $self->{FH}; local($^W) = 0; # Get more BIN bytes until enough or EOF: my $bin; while (length($self->{BIN_QUEUE}) < $n) { $FH->read($READBUF, 4096) or last; $self->{BIN_QUEUE} .= $self->{H2B}->next($READBUF); # save BIN } # We've got as many bytes as we're gonna get: $_[1] = substr($self->{BIN_QUEUE}, 0, $n); $self->{BIN_QUEUE} = substr($self->{BIN_QUEUE}, $n); # Advance the CRC: if ($self->{CheckCRC}) { $self->{CompCRC} = binhex_crc($_[1], $self->{CompCRC}); } return length($_[1]); } #------------------------------------------------------------ # # read_str NBYTES # # Read and return the next NBYTES bytes, or die with "unexpected end of file" sub read_str { my ($self, $n) = @_; my $buf = ''; $self->read($buf, $n); croak "$I unexpected end of file (wanted $n, got " . length($buf) . ")\n" if ($n and (length($buf) < $n)); return $buf; } #------------------------------------------------------------ # # read_byte # read_short # read_long # # Read 1, 2, or 4 bytes, and return the value read as an unsigned integer. # If not that many bytes remain, die with "unexpected end of file"; sub read_byte { ord($_[0]->read_str(1)); } sub read_short { unpack("n", $_[0]->read_str(2)); } sub read_long { unpack("N", $_[0]->read_str(4)); } #============================== =head2 Encode, high-level =over 4 =cut #------------------------------------------------------------ =item encode OUT Encode the object as a BinHex stream to the given output handle OUT. OUT can be a filehandle, or any blessed object that responds to a C message. The leading comment is output, using the C attribute. =cut sub encode { my $self = shift; # Get output handle: my $OUT = shift; $OUT = wrap Convert::BinHex::IO_Handle $OUT; # Get a new converter: my $B2H = $self->bin2hex; # Comment: $OUT->print("(This file must be converted with BinHex ", ($self->requires || '4.0'), ")\n"); # Build header in core: my @hdrs; my $flen = length($self->filename); push @hdrs, pack("C", $flen); push @hdrs, pack("a$flen", $self->filename); push @hdrs, pack('C', $self->version); push @hdrs, pack('a4', $self->type || '????'); push @hdrs, pack('a4', $self->creator || '????'); push @hdrs, pack('n', $self->flags || 0); push @hdrs, pack('N', $self->data->length || 0); push @hdrs, pack('N', $self->resource->length || 0); my $hdr = join '', @hdrs; # Compute the header CRC: my $crc = binhex_crc("\000\000", binhex_crc($hdr, 0)); # Output the header (plus its CRC): $OUT->print($B2H->next($hdr . pack('n', $crc))); # Output the data fork: $self->data->encode($OUT, $B2H); # Output the resource fork: $self->resource->encode($OUT, $B2H); # Finish: $OUT->print($B2H->done); 1; } =back =cut #============================== =head1 SUBMODULES =cut #============================================================ # package Convert::BinHex::Bin2Hex; # #============================================================ =head2 Convert::BinHex::Bin2Hex A BINary-to-HEX converter. This kind of conversion requires a certain amount of state information; it cannot be done by just calling a simple function repeatedly. Use it like this: # Create and use a "translator" object: my $B2H = Convert::BinHex->bin2hex; # get a converter object while () { print STDOUT $B2H->next($_); # convert some more input } print STDOUT $B2H->done; # no more input: finish up # Re-use the object: $B2H->rewind; # ready for more action! while () { ... On each iteration, C (and C) may return either a decent-sized non-empty string (indicating that more converted data is ready for you) or an empty string (indicating that the converter is waiting to amass more input in its private buffers before handing you more stuff to output. Note that C I converts and hands you whatever is left. This may have been a good approach. It may not. Someday, the converter may also allow you give it an object that responds to read(), or a FileHandle, and it will do all the nasty buffer-filling on its own, serving you stuff line by line: # Someday, maybe... my $B2H = Convert::BinHex->bin2hex(\*STDIN); while (defined($_ = $B2H->getline)) { print STDOUT $_; } Someday, maybe. Feel free to voice your opinions. =cut #------------------------------ # # new sub new { my $self = bless {}, shift; return $self->rewind; } #------------------------------ # # rewind sub rewind { my $self = shift; $self->{CBIN} = ' ' x 2048; $self->{CBIN} = ''; # BIN waiting for xlation $self->{HEX} = ' ' x 2048; $self->{HEX} = ''; # HEX waiting for output $self->{LINE} = 0; # current line of output $self->{EOL} = "\n"; $self; } #------------------------------ # # next MOREDATA sub next { shift->_next(0, @_) } #------------------------------ # # done sub done { shift->_next(1) } #------------------------------ # # _next ATEOF, [MOREDATA] # # Instance method, private. Supply more data, and get any more output. # Returns the empty string often, if not enough output has accumulated. sub _next { my $self = shift; my $eof = shift; # Get the BINary data to process this time round, re-queueing the rest: # Handle EOF and non-EOF conditions separately: my $new_bin; if ($eof) { # No more BINary input... # Pad the queue with nuls to exactly 3n characters: $self->{CBIN} .= ("\x00" x ((3 - length($self->{CBIN}) % 3) % 3)) } else { # More BINary input... # "Compress" new stuff, and add it to the queue: ($new_bin = $_[0]) =~ s/\x90/\x90\x00/g; $self->{CBIN} .= $new_bin; # Return if not enough to bother with: return '' if (length($self->{CBIN}) < 2048); } # ...At this point, QUEUE holds compressed binary which we will attempt # to convert to some HEX characters... # Trim QUEUE to exactly 3n characters, saving the excess: my $requeue = ''; $requeue .= chop($self->{CBIN}) while (length($self->{CBIN}) % 3); # Uuencode, adding stuff to hex: my $hex = ' ' x 2048; $hex = ''; pos($self->{CBIN}) = 0; while ($self->{CBIN} =~ /(.{1,45})/gs) { $hex .= substr(pack('u', $1), 1); chop($hex); } $self->{CBIN} = reverse($requeue); # put the excess back on the queue # Switch to BinHex alphabet: $hex =~ tr {` -_} {!!"#$%&'()*+,\x2D012345689@ABCDEFGHIJKLMNPQRSTUVXYZ[`abcdefhijklmpqr}; # Prepend any HEX we have queued from the last time: $hex = (($self->{LINE}++ ? '' : ':') . # start with ":" pad? $self->{HEX} . # any output in the queue? $hex); # Break off largest chunk of 64n characters, put remainder back in queue: my $rem = length($hex) % 64; $self->{HEX} = ($rem ? substr($hex, -$rem) : ''); $hex = substr($hex, 0, (length($hex)-$rem)); # Put in an EOL every 64'th character: $hex =~ s{(.{64})}{$1$self->{EOL}}sg; # No more input? Then tack on the remainder now: if ($eof) { $hex .= $self->{HEX} . ":" . ($self->{EOL} ? $self->{EOL} : ''); } # Done! $hex; } #============================================================ # package Convert::BinHex::Hex2Bin; # #============================================================ =head2 Convert::BinHex::Hex2Bin A HEX-to-BINary converter. This kind of conversion requires a certain amount of state information; it cannot be done by just calling a simple function repeatedly. Use it like this: # Create and use a "translator" object: my $H2B = Convert::BinHex->hex2bin; # get a converter object while () { print STDOUT $H2B->next($_); # convert some more input } print STDOUT $H2B->done; # no more input: finish up # Re-use the object: $H2B->rewind; # ready for more action! while () { ... On each iteration, C (and C) may return either a decent-sized non-empty string (indicating that more converted data is ready for you) or an empty string (indicating that the converter is waiting to amass more input in its private buffers before handing you more stuff to output. Note that C I converts and hands you whatever is left. Note that this converter does I find the initial "BinHex version" comment. You have to skip that yourself. It only handles data between the opening and closing C<":">. =cut #------------------------------ # # new sub new { my $self = bless {}, shift; return $self->rewind; } #------------------------------ # # rewind sub rewind { my $self = shift; $self->hex2comp_rewind; $self->comp2bin_rewind; $self; } #------------------------------ # # next MOREDATA sub next { my $self = shift; $_[0] =~ s/\s//g if (defined($_[0])); # more input return $self->comp2bin_next($self->hex2comp_next($_[0])); } #------------------------------ # # done sub done { return ""; } #------------------------------ # # hex2comp_rewind sub hex2comp_rewind { my $self = shift; $self->{HEX} = ''; } #------------------------------ # # hex2comp_next HEX # # WARNING: argument is modified destructively for efficiency!!!! sub hex2comp_next { my $self = shift; ### print "hex2comp: newhex = $newhex\n"; # Concat new with queue, and kill any padding: my $hex = $self->{HEX} . (defined($_[0]) ? $_[0] : ''); if (index($hex, ':') >= 0) { $hex =~ s/^://; # start of input if ($hex =~ s/:\s*\Z//) { # end of input my $leftover = (length($hex) % 4); # need to pad! $hex .= "\000" x (4 - $leftover) if $leftover; # zero pad } } # Get longest substring of length 4n possible; put rest back on queue: my $rem = length($hex) % 4; $self->{HEX} = ($rem ? substr($hex, -$rem) : ''); for (; $rem; --$rem) { chop $hex }; return undef if ($hex eq ''); # nothing to do! # Convert to uuencoded format: $hex =~ tr {!"#$%&'()*+,\x2D012345689@ABCDEFGHIJKLMNPQRSTUVXYZ[`abcdefhijklmpqr} { -_}; # Now, uudecode: my $comp = ''; my $len; my $up; local($^W) = 0; ### KLUDGE while ($hex =~ /\G(.{1,60})/gs) { $len = chr(32 + ((length($1)*3)>>2)); # compute length byte $comp .= unpack("u", $len . $1 ); # uudecode } # We now have the compressed binary... expand it: ### print "hex2comp: comp = $comp\n"; $comp; } #------------------------------ # # comp2bin_rewind sub comp2bin_rewind { my $self = shift; $self->{COMP} = ''; $self->{LASTC} = ''; } #------------------------------ # # comp2bin_next COMP # # WARNING: argument is modified destructively for efficiency!!!! sub comp2bin_next { my $self = shift; # Concat new with queue... anything to do? my $comp = $self->{COMP} . (defined($_[0]) ? $_[0] : ''); return undef if ($comp eq ''); # For each character in compressed string... $self->{COMP} = ''; my $lastc = $self->{LASTC}; # speed hack my $exp = ''; # expanded string my $i; my ($c, $n); for ($i = 0; $i < length($comp); $i++) { if (($c = substr($comp, $i, 1)) eq "\x90") { # MARK ### print "c = MARK\n"; unless (length($n = substr($comp, ++$i, 1))) { $self->{COMP} = "\x90"; last; } ### print "n = ", ord($n), "; lastc = ", ord($lastc), "\n"; $exp .= ((ord($n) ? ($lastc x (ord($n)-1)) # repeat last char : ($lastc = "\x90"))); # literal MARK } else { # other CHAR ### print "c = ", ord($c), "\n"; $exp .= ($lastc = $c); } ### print "exp is now $exp\n"; } # Either hit EOS, or there's a MARK char at the very end: $self->{LASTC} = $lastc; ### print "leaving with lastc=$lastc and comp=$self->{COMP}\n"; ### print "comp2bin: exp = $exp\n"; $exp; } #============================================================ # package Convert::BinHex::Fork; # #============================================================ =head2 Convert::BinHex::Fork A fork in a Macintosh file. # How to get them... $data_fork = $HQX->data; # get the data fork $rsrc_fork = $HQX->resource; # get the resource fork # Make a new fork: $FORK = Convert::BinHex::Fork->new(Path => "/tmp/file.data"); $FORK = Convert::BinHex::Fork->new(Data => $scalar); $FORK = Convert::BinHex::Fork->new(Data => \@array_of_scalars); # Get/set the length of the data fork: $len = $FORK->length; $FORK->length(170); # this overrides the REAL value: be careful! # Get/set the path to the underlying data (if in a disk file): $path = $FORK->path; $FORK->path("/tmp/file.data"); # Get/set the in-core data itself, which may be a scalar or an arrayref: $data = $FORK->data; $FORK->data($scalar); $FORK->data(\@array_of_scalars); # Get/set the CRC: $crc = $FORK->crc; $FORK->crc($crc); =cut # Import some stuff into our namespace: *binhex_crc = \&Convert::BinHex::binhex_crc; #------------------------------ # # new PARAMHASH sub new { my ($class, %params) = @_; bless \%params, $class; } #------------------------------ # # length [VALUE] sub length { my $self = shift; # Set length? $self->{Length} = shift if @_; # Return explicit length, if any return $self->{Length} if defined($self->{Length}); # Compute it: if (defined($self->{Path})) { return (-s $self->{Path}); } elsif (!ref($self->{Data})) { return length($self->{Data}); } elsif (ref($self->{Data} eq 'ARRAY')) { my $n = 0; foreach (@{$self->{Data}}) { $n += length($_) } return $n; } return undef; # unknown! } #------------------------------ # # path [VALUE] sub path { my $self = shift; if (@_) { $self->{Path} = shift; delete $self->{Data} } $self->{Path}; } #------------------------------ # # data [VALUE] sub data { my $self = shift; if (@_) { $self->{Data} = shift; delete $self->{Path} } $self->{Data}; } #------------------------------ # # crc [VALUE] sub crc { my $self = shift; @_ ? $self->{CRC} = shift : $self->{CRC}; } #------------------------------ # # encode OUT, B2H # # Instance method, private. Encode this fork as part of a BinHex stream. # It will be printed to handle OUT using the binhexer B2H. sub encode { my ($self, $OUT, $B2H) = @_; my $buf = ''; require POSIX if $^O||'' eq "MacOS"; require Fcntl if $^O||'' eq "MacOS"; my $fd; # Reset the CRC: $self->{CRC} = 0; # Output the data, calculating the CRC as we go: if (defined($self->{Path})) { # path to fork file if ($^O||'' eq "MacOS" and $self->{Fork} eq "RSRC") { $fd = POSIX::open($self->{Path},&POSIX::O_RDONLY | &Fcntl::O_RSRC); while (POSIX::read($fd, $buf, 2048) > 0) { $self->{CRC} = binhex_crc($buf, $self->{CRC}); $OUT->print($B2H->next($buf)); } POSIX::close($fd); } else { open FORK, $self->{Path} or die "$self->{Path}: $!"; while (read(\*FORK, $buf, 2048)) { $self->{CRC} = binhex_crc($buf, $self->{CRC}); $OUT->print($B2H->next($buf)); } close FORK; } } elsif (!defined($self->{Data})) { # nothing! &Carp::carp("no data in fork!") unless $Convert::BinHex::QUIET; } elsif (!ref($self->{Data})) { # scalar $self->{CRC} = binhex_crc($self->{Data}, $self->{CRC}); $OUT->print($B2H->next($self->{Data})); } elsif (ref($self->{Data}) eq 'ARRAY') { # array of scalars foreach $buf (@{$self->{Data}}) { $self->{CRC} = binhex_crc($buf, $self->{CRC}); $OUT->print($B2H->next($buf)); } } else { &Carp::croak("bad/unsupported data in fork"); } # Finish the CRC, and output it: $self->{CRC} = binhex_crc("\000\000", $self->{CRC}); $OUT->print($B2H->next(pack("n", $self->{CRC}))); 1; } #============================================================ # package Convert::BinHex::IO_Handle; # #============================================================ # Wrap a non-object filehandle inside a blessed, printable interface: # Does nothing if the given $fh is already a blessed object. sub wrap { my ($class, $fh) = @_; no strict 'refs'; $fh or $fh = select; # no filehandle means selected one ref($fh) or $fh = \*$fh; # scalar becomes a globref return $fh if (ref($fh) and (ref($fh) !~ /^(GLOB|FileHandle)$/)); bless \$fh, $class; # wrap it in a printable interface } sub print { my $FH = ${shift(@_)}; print $FH @_; } sub getline { my $FH = ${shift(@_)}; scalar(<$FH>); } sub read { read ${$_[0]}, $_[1], $_[2]; } #============================================================ # package Convert::BinHex::IO_Scalar; # #============================================================ # Wrap a scalar inside a blessed, printable interface: sub wrap { my ($class, $scalarref) = @_; defined($scalarref) or $scalarref = \""; pos($$scalarref) = 0; bless $scalarref, $class; } sub print { my $self = shift; $$self .= join('', @_); 1; } sub getline { my $self = shift; ($$self =~ /\G(.*?\n?)/g) or return undef; return $1; } sub read { my $self = shift; $_[0] = substr($$self, pos($$self), $_[1]); pos($$self) += $_[1]; return length($_[0]); } #============================== =head1 UNDER THE HOOD =head2 Design issues =over 4 =item BinHex needs a stateful parser Unlike its cousins I and I, BinHex format is not amenable to being parsed line-by-line. There appears to be no guarantee that lines contain 4n encoded characters... and even if there is one, the BinHex compression algorithm interferes: even when you can I one line at a time, you can't necessarily I a line at a time. For example: a decoded line ending with the byte C<\x90> (the escape or "mark" character) is ambiguous: depending on the next decoded byte, it could mean a literal C<\x90> (if the next byte is a C<\x00>), or it could mean n-1 more repetitions of the previous character (if the next byte is some nonzero C). For this reason, a BinHex parser has to be somewhat stateful: you cannot have code like this: #### NO! #### NO! #### NO! #### NO! #### NO! #### while () { # read HEX print hexbin($_); # convert and write BIN } unless something is happening "behind the scenes" to keep track of what was last done. I to work, if you only test it on BinHex files which do not use compression and which have 4n HEX characters on each line.> Since we have to be stateful anyway, we use the parser object to keep our state. =item We need to be handle large input files Solutions that demand reading everything into core don't cut it in my book. The first MPEG file that comes along can louse up your whole day. So, there are no size limitations in this module: the data is read on-demand, and filehandles are always an option. =item Boy, is this slow! A lot of the byte-level manipulation that has to go on, particularly the CRC computing (which involves intensive bit-shifting and masking) slows this module down significantly. What is needed perhaps is an I extension library where the slow pieces can be done more quickly... a Convert::BinHex::CRC, if you will. Volunteers, anyone? Even considering that, however, it's slower than I'd like. I'm sure many improvements can be made in the HEX-to-BIN end of things. No doubt I'll attempt some as time goes on... =back =head2 How it works Since BinHex is a layered format, consisting of... A Macintosh file [the "BIN"]... Encoded as a structured 8-bit bytestream, then... Compressed to reduce duplicate bytes, then... Encoded as 7-bit ASCII [the "HEX"] ...there is a layered parsing algorithm to reverse the process. Basically, it works in a similar fashion to stdio's fread(): 0. There is an internal buffer of decompressed (BIN) data, initially empty. 1. Application asks to read() n bytes of data from object 2. If the buffer is not full enough to accommodate the request: 2a. The read() method grabs the next available chunk of input data (the HEX). 2b. HEX data is converted and decompressed into as many BIN bytes as possible. 2c. BIN bytes are added to the read() buffer. 2d. Go back to step 2a. until the buffer is full enough or we hit end-of-input. The conversion-and-decompression algorithms need their own internal buffers and state (since the next input chunk may not contain all the data needed for a complete conversion/decompression operation). These are maintained in the object, so parsing two different input streams simultaneously is possible. =head1 WARNINGS Only handles C files, as per RFC-1741. Remember that Macintosh text files use C<"\r"> as end-of-line: this means that if you want a textual file to look normal on a non-Mac system, you probably want to do this to the data: # Get the data, and output it according to normal conventions: foreach ($HQX->read_data) { s/\r/\n/g; print } =head1 AUTHOR AND CREDITS Maintained by Stephen Nelson Written by Eryq, F / F Support for native-Mac conversion, I invaluable contributions in Alpha Testing, I a few patches, I the baseline binhex/debinhex programs, were provided by Paul J. Schinder (NASA/GSFC). Ken Lunde (Adobe) suggested incorporating the CAP file representation. =head1 LICENSE Copyright (c) 1997 by Eryq. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. This software comes with B of any kind. See the COPYING file in the distribution for details. =cut 1; __END__ my $HQX = new Convert::BinHex version => 0, filename=>"s.gif", type => "GIF8", creator => "PCBH", flags => 0xFFFF ; $HQX->data(Path=>"/home/eryq/s.gif"); $HQX->resource(Path=>"/etc/issue"); #$HQX->data(Data=>"123456789"); #$HQX->resource(Data=>''); $HQX->encode(\*STDOUT); 1; eyeball.gif.hqx100644000765000024 740712622157435 22144 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125/testin(This file must be converted with BinHex 4.0) :#f9jC@*KE'`ZCfPQ!$mr2cmr2cmr!!!!!!V$!!!!!'Q'4dP'1$PK2!!k!2Ir!!J )#"!3%"JB'#%K)5NT+6%a-6Nj18*#3NT+5P*58PTD@Q0MBh0cFi5%K)b-M*58P*b FR+@PTDfYVE@eYEfp[FE'aXl1cYE@eYlHhZIRjqr[lrIhpml'aVfeYDfPTE@YVFD p[C5-M*b8P+@FR,fYVFDeYFkp[E@PT@0D@UfFR*b-M+@8P%T#3T5%K)alHi4cFlf PTFDYVAYVDl@FR+f8P*b%K)acFkf-M"J3%'0#3PSj13J!!%)3#$N)!'-j-9)T)8) B%'Y+3PSj-9)a+@0#1BacDi4VBh0D8QY55Q0+3NSB#%)3!(YM@PSa)8)B#$N3!&) T'%SK%+@8M)alFi4cDfYD8N)a+9Sj+9)a)8SB!*b-K(YVBf0#-8ST'*5%Hh0M@M% K'%)B!(0D5PSa'&)T%%SK#&T#-9)K!'Y+-9)a'&Sa%&)T#%SK!-DpYD@FP-DeTBa lDh0D3N)a)5%3!0E1aV@YTCb8M*5-K*b-Hh0M8RYM5QY51@Y++4J3#'0#)9Sj'&) a%%ST#&Sa#"!)!&)T!-l'[DfPR)b%Hf0#'&)a#%ST!&Sa!)alBhYM3R0D1@Y5-@0 ++6NK!)4c@Q0#%&Sj#&)a!(YV8QY5+@0+)6%K#%)T!-DpV@0##&Sj!,feTCb8K(0 M3QYD1@0+'&T#%"J3!'0#!,@YR)b%Ff0+%&)j!'Y+!%)a#&T##'0+#$NT!&T#!'0 +!-l1aYE@cUfYTFE'[EfpVFE'YFE'V8*#1F$!`"JB%!J)!2IrcZrhaZI[aYEHYGl R[GEH[FE1YFE1[FlH[FE1aXl@cVh'[Eh1[FE1cXl@eYEHhV@p[D@YVDfeYEh'aJJ 3%-E'cXl1eYE@hU@PVEfpaTbFT@YVFd*#5L%K+3J)%!!!#,@YYFDpaTb8R+@FTDf FTBalK0l1eVfYYCb-P*5%M-De[E@FTC4lK,fPVCb%M-DYYDf8R+@-P)acHlfFTCa lK0De[E@8R+f-P+@%M*4cHjacH`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#( j"!%!!,N!,!!!!!!m!$S!3!Mr!(-*(%L`S-'$#"-UA'K3@#`+%#05k$#K)S8*+6S `LkK4BX5+(BEpBQM3ei8+&6J8Xf#KJS9N&U69F,+%$5'EP3K9@P3TCmj!DB3NfI, K)i86*M4X`)$5JX)flbadH`H$TB8,4fSUkS5)MaJMM&!Bb"B!`,fcD$@9J[@U9#G "DFcSH$&"JPd*&LP81'D`Pbb8,PeD80D"6"LGR9ja3L8+$$3!CY%#%%$J3))YN[3 m3N3TCjJd%#+%MQ#hiS4K#BpGR0F"F0-+4(VBY,RS9DIETA,ElT56c4Nf6iK%%!d "`S2L%%E!Dc15j%"KYNUE6X(1Y1N2cZj+L&"M"2)(i--rrlK&c,RjmqM6+r6PN!! #-q[XES#cEV%3-Q(U%`Vl#k*$ZK-cb$1$AUiP8md%(S```L`6!#C4"aq-!i)b'@4 `!3JIa!)-54Dm8i*9)&T`a4+%P(KE*k@dY4BX+DD)@bH8T%(%&Lf-F*&THV@%NLd (!I15B&CGS!@*PA3bb59-i1''!``N8)!!NCd&J$B"##!++Ue``PXPCI$JJM2$h@@ 4,$dqj&T,9iRaa%f,,))LLVQPiXUFUi`LbL@BB1,(**5``BBL5b"K$33Ke+21D#1 X`0G#`K6b`3359D!A40&8%%%H6C5aa+C2E+S%&NH))%%c%B``U('S(JF"-[N9j-X YY86r3)iphT4U$A()H4111`mii%#[j2(5DRkm!21,--JLqiX[`kEA#c+&8%6IHar --d&(N!"#HU0Tpc8l8!9[M$0T"Fpip+#jk,i'85ciS@F-B"`%9N'P&8K633XMpV" %'&RiQF@q5`#"K!J892-4#HE%%im''$`6#fS,pA,55L&He8)2BILQL*YZk3E,EDq mdP-89b$aJKhC6[$""a9FJ-&*&8"m%$)@R,01a4a!FGJCP9$b"b*kSJ*)*U3--XJ FND55fjZGU&(b&Lj8p%&T%XR55emR9Ab""dli9XQ4NRaLbJJ0+'$!!&'LG8mQ,,E 955*4G2%$"(9*Tke6VVB8,jTAUIq`K#)pF5,+)ie8JB!""%!T@C8%&)",()pJ-NT RPE#aK![E4G#-G"6%FY!`VM9P`646p(!')4bhU-J1DQmc'3%Xj*(C(RkS8ERP@a! hR!Gh8G"F3j+#3-%i+('3!-`&TII,"XFSU[J+LbQbdJSPEFkfK!bL2H!0F[#S)m% `c#SdM#hc325-T2"'3i@QIZS%H%q9pfCj'9Z3!2UGFDT'X-Q'jSf29ei3k8!!0d+ "FMeM)qqabh#'8aca(1F"qfY@-)B4*JR3SahDdFi#Ki11FMJ32,83aY@mT4"J%+- @Yh#JVa`3$Nr8BPNNM+%-[G@,B`f$$K3S"J8q8"h9&+)3b!VI$2m4!JaKd-)d'U% )0fl!M@YPDeX6q+%`K$A%Aa6L)PLX#$1N0B%E3+SM4S')DH`c`QBe#Pe'Z4B"d4J 4P)La'1e5Md0S))m6N!"!A##3!"5kRQ'`FV'4!PHj3%XQ%)[I1HFA1TbADrV6M4` pB`9-i!)8SK!'*84"4PZ`N4il`!iDd-"$#S["$$U!0j)-)aBZJ8NbM"H[BLM$%$l SP%d8`3DIh)33DiME%'5J,@e9B"hLf)!',%!"@I"2)F+`!!HL`4,"Z13#F0"AqhE bTK5jL5H%)!-@F[!&&a4PLmbB36SZS!%,&G13!!hC@m@8N3)HC)`f)@[,mjD@Qe+ d+4&U%-)A@Z$r"ShJU'8R+DB3#r+,#m#!P#&D4K'Hd,lEF')8R'M&LZUT#VDia6C U`%)5U1!#$p#(3"!TC8''-B-C[!1K,&Q'#KLUNd3JiK+KF-3MV+!iY3&!%@aT(L8 !8E)UM'!#fIPI4#b!cPcdJJiJB!N(eZ%5CA"J$,9F"#8`!3SiI1)16AT5fXibL1C C%bir3%)'rbQcJIL#+4@EKK4USK-eS%%58UL$04U`J,0Yp4lEk%0%1I'aR*!!!3J K'"A[rJFT-K&8Q6!"d6,`3#3MBD)4M$M&044`!!,SBKZ,%m!!#)#*5iK#SMbah"6 !4"V#6X#`"1P&5f!#T!ZNS#CR3"&M,J'*![m-S+C5#J!"$)!0&&J#&(a!K#!)FBB XP1%1T)V!B2(5ZB2m"6"mZd!3`Y#6jN@8%P[GaHX1J!*'5%)-Pd!&0TH3!!4U&'F iQf-ZUp*j*X&dS!`i58aLeP+*1E"15ML3!--M("'(28"#$BNS84LL)!))L+$!&Ba L'3Z55!+jT"M5k!!Pi`Xb&,&)&4KZ"5`Q-BP4m+NhBB##UL"J"h4d6adA[%9#MJU 4Fj`!*C9Lb4&NJj-LYDKj(h2,E5T"bb`m!3Qi8Y8)[&%$$k`h)Ek)4E8JNNIS9N! -'*XPkYSNXNkdU83h#81J'0K!j)3'(M`Lb6(DS5d+J+"FChD*)B+JK(hp"U$,0f' $PXX3""'!k4[hHb!%E"&(NKJ44fKdi`Lmm!)M')%+Ki#!"*a"fY"dqB(J%FC!cA1 -k&KR0Bpk$aIaFKF2I'1"$G3cH$C4RQ&"4cX)SSGT1+h"iG4!"D&fS+4Pf![SN!! $([$ScRDDiB%0%NF%p3M""i94e"R@fKDQJ,@AmGFV&pMJ9l8J"M%@2%5&p1,D[[! &-)$KLfY6ZpVJ9Np!!!!lGXX!!!!!: hands_m.eps.hqx100644000765000024 30067012622157435 22220 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125/testin(This file must be converted with BinHex 4.0) :#dKKEQ4cAfdZCA"c!%938dC"8P3e!!!!!-*$!!"D1)qi*5&38be"C'pLC5dc,M! J49"64Ldc,M!0*59$FQ9KG'pb1L""C'pLC5"*E'aeFh4bBA4[FLKb+5!f,M!0*59 'Eh)k)#K$Efe`GA4PFL"6CA*fD@0PFbNJ+&"#8bN0*598DA4XC6SJ+%KKEQ4c,Ne "3bN0*59$FQ9KG'P[EN4KG'8k)#Ja-5ma-bmj0LNJ+$%k-c3J8%dT$58P3QpeEQ4 TEQG#EhJk)$Jc)$%i15!d0c8J06Jb$58P5'P5CA0#Eh9ZC'PZCd*[H$SJ1$-Z06% c0#!a1$NJ0$Fd,MNa1$%J06Ja,M3a1$N0*59%Ef0eE@9ZG&"bEf0PFh0$Efa[FR- k)%*XB@0V$58P4'pMG@ePER46GA"`E'PPC&*PFfpeFQ0PFcSJF(*[Bh0PG#""C'p LC9pXCACPE$*I38Ne)$%Z-#!`$58P+b"`FQpMFf9d)%&NEf*PAdPXE(9cG(*KG'p bAd&*0PpfBA*c)%&NEf*PAdPXE(9cG(*KG'pbAd&*0JdP*5XJF(*[Bh0PG#""C'p LC9p*E'aeFh4bBA4[FPp"568J-5i`)$!0*8&*09p'D@aP4QpbE@&d)$)Z-!dP38N cAd0[E'pb9A0KCf8k)%*XB@0V*PGSDA4P$59"560I5@jME(9NC9"XB@0PC%PYB@G PF`dP*800@8Y$GA0dEfe$Efa[FMSJ-5!`)$!Z068J-#!S3A&eB5N0*58V)$%J-#i e)$!J-#!S3QaeC5N0*58V)$!Z05!`,M3J-#ic)$!J+%*XG@8J4h*KH5N0*58V)$! Z1#!`,M!e)$!J-#!S3QaeC5"6DhNT$58P+b!`,M8J-#ii05!a)$!J+%*bEhGZ+3d P*5XJ-5!`,MNJ-#ia)$!J+%4KFQXJ3QaeC5N0*58V)$%J-#ie05!a)$!J+%C[FQ9 cG#"(FQ9PELN0*58V)$!Z-$8J-#ib)$!Z168J-#!S4fpXC#N0*58V)$!Z0c8J-#i `05!a)$!J+%GbBA0c)%GbC@9Z+3dP*5XJ-#id)$!Z0#!`,M3J-#!S4h*KH5N0*58 V)$%J-#ib)$%J-#!S4h*PC@iT$58P+b!`,M3e)$!J-5!`)#K-D@eP)%GbC@9Z+3d P*5XJ-#!`,M3e)$%J-#!S6h*KEQGP+3dP*5XJ-#!`,MFJ-5!`)#K2FQ&ZCf8J8Q9 N+3dP*5XJ-#!`,M)e)$%J-#!S6h*KEQGP)&PPE'a[GbN0*58V)$!J-#id05!`,MB J-#!S8'9KBfJT$58P+b!`)$!Z05!`,M!e)$!J+&"TEQXT$58P+b!`,MJe)$%J-#! `)#K3GA*`E'8T$58P+b!`,M%e)$%J-5!`)#K5C@3T$58P+b!`,M3J-#ih)$%J-#! S8R9cG(NJ3R*[GfiT$58P+b!`)$!Z15!a)$!J+&0KG(9bEL"5C@3J+3dP*5XJ-5! `,M3J-#ia05!`)#K8GA*aG@pTFf8T$58P+b!`,M3e)$!Z15!`)$!J+&CTEfaPG#N 0*58V)$!Z0c8J-#ij)$!J-#!S9QP[E'9d)%*XG@8T$58P+b!`,M)e)$%J-#ib05! `)#K@D@pXCA3J8Q9N+3dP*5XJ-#!`)$%J-#!S@@9XE'ph+3dP*5XJ-#ib)$!J-5! `)#KCC@aXEhFJ4h*PC@iT$58P38NfAd0[E'pb8f9`BA*KG'P[EP0PG$SJ-5!a)#K "56BJ4'9QBA9XG#"$Efa[FL"6CA"KFQ&dD@pZ)&0PG#N0*58V)%p`G'P[ER-k)$% J-6BJ-#!a)$!J-5!a)$%J-#!a)$%J-5!a)$%i)$!J-#!`)$!J-#!`)$!J-#!Y-5! Y-3dP*5XJ8&"%1L!a)$)a)$!J-#!f-#!d05!b)$)J-5!`)$!J-5!`)$!J-#!`)$! J-#!`)$!J-#!`)#JT$59"560I9'9YF'aKG'9#EhJk)$-a-b!c-M3J-c%c)$-b0!d P38NcAe4TE'9#EhJk)$!J-#!e06)J0c)i$59"560I4'pMG@ePER43FQ9fD@9h1L" 0B@0TER4[FfKI3fpXEh*3D@-0*8&*09p"FR46DATP1L!a-MNf)$%b16B0*8&*09p 5G@aPFP9ZDA4c1L!`$59"569I3A*d4QaKCh-k)$!J-#!`)$%J-#!`)$%J-5!`$59 "569I9'&bCf9d8Q9cEfaeG'P[EMSJ1$!`$59"569I6R9Y6'&jCA*c1L!a$59"569 I6h"PEP4[9QPPGcSJ,6%j-5!i-MJJ,6%Z05!i-MBJ06Ja)$%i)$!J-5!c)$3`$59 "569I6h"PEPCTCAG-BAPPFR-k)$F0*59&EQ4$EfeYC@jdF`dP*8*PCfPZ8(*[E'p R$58P3Q9RD@j5CA0[GA*MC6SJF(*[Bh0PG#""C'pLC9pXCACPE$*I38Ne)$%Z-L! `$58P9'PdE'8k)#K"C'pLC5"*E'aeFh4bBA4[FL!S8LNJ9Q9bFfP[EL!e,M!J6'9 fC@`J-L"&EA9XBA4TEfiT$58P9Q9bFfP[EMSJ-5ib)!dP*80bC@&dD@pZ4'&dC6S J+$!d,c%`,cNc+5!S+3dP*80[F(PbD@GSG$SJ+#K$+5!a16Jh,6%j16-J3@4[BQ8 J8hPcG'9YFb"*EQ0[FR"[FQ&dC@3J3@aX)&*TCfKdFb"5CA0PFRCPC#N0GA0PFQ4 TBh3J,d&NEf*PAfaPGQ9X-Pp"568J-M-JC'PMG#"NGA!JBQ9RD@i0#A"eG!d*,h" KBfYPC'&bFQ&j)(GSCA*P)'j[G!d*H`d*#A9cCA*ND@0d)'*PCfPZ$3N*,h"KBfY PC'&bFQ&j$3N*H`d*#3PKFR*KH5"KFh4[FQ8JFQ9KC'pZE(N0#3Pp)'*TEQ3JC'9 Q$3N*,h0PG("KBfYTEQFJ,h"[F#"XEf&N)'4PCJd*#5pMGA*bC@jdF'&MDfPZCb" QB@acC5"NC@B0#5"PEQ30#3N`$3Pp)'PQ$3P`Eh!0#A9cCA*ND@0d)#pNC@CKG@a dF'&MDfPZCb"MGA*bC@jdF'&MDfPZCb"`GA3JG(*eC5"cCA4`B@0VD@jR$3N[D@j TG'PKE'PkC3d*H`d*#8&NEf*PAfaPGQ9X-Pp"568JBQ9RD@i0#AdJBQPZC#"NC@B 0#5pdCA*YD@jKG'80#AX0#3PMGA*bC@jdC'PMG#""C'pLC9pXCACPE$*I38Ne)'9 a$3N*H`d*#5"PEQ30#3Pp)'PQ$3Pp)'*TEQ3JC'9Q$3PYBA*V$3N[Ff9dBh9cG'p YBfpXEh)JGfKPFQ8JEQpd$3Pl$3N*,fCTEQ4MEAPVBh9cG'pYBfpXEh)0#3Pl$3N *#68JF'&MDf9NBA*bBAN0#3Pp)'*TEQ3JC'9Q$3N*,h0PG'0eFh4[E@0[E'pb$3N *H`d*#3PPH'0S)'&XEf&N)("[F#"`Eh!0#3N*0!d*#3Pl$3N*#3Nd)'PZC'9i)'e eE#!d)$%JFQpXE!d*#3Pp)(*PF'9KG!d*#3Ne)#da)(*[E'`JF'p`$3N*#A0PG'0 YH@YMEfa[FJd*#Ad0#3PNC@B0#AdJD@B0#3d*,fGd-cJr)'eKFQXJHhCPFR0TEfi JBhCb)'0fH#"PH'9MI5"cG'p`F'9N)(YME'9KFR4[E@&bDb"dFR9PI5"l-cJJCh3 JCAKMD#"`Eh"p)'PQC@acC5"NC@B0#A9cCA*ND@0d)#pNCACTBf9%8%NJ0c)J-#" YBA4bDAJJC'9QBA9XG'eKG(*TH#"NG(*KER0QEh*Y)'4eF#"YG@`JCAKMD#"NGA! JEA9X)'&NC#"cFA*d)("eG!d*GA0PFQ4TBh3J,faPGQ9X-Mm0#A0jFh4PE@4TBh3 J,faKEQGeB@GPE'9fC@`JDfj[GfiJC(9`$3Pl$3N*F'p`)(0jFh4PE@4TBh3J,fa KEQGeB@GPE'9fC@`JCf9d)$)JCf80#AdJD@B0#A"eG!d[E'9fC@`b8f0bC@9Z4R* PF3el$5"LC@GTEJd*#6B`$3N*5'&XCR4[EQ98HA"P)$%JCA%0#3Pl$3N*#A"[F#" 'FQ9aG@9ZBhN0#3Pp)'PQ$3N*5'&XCR4[EQ98HA"P)$)JCA%0#3Pl$3N*#A"[F#" (FQ&j4R*PFA9PEQ0j$3N*I5"TCJd*#8KKE'CdEfjP9(P`C5!e)'9a$3N*H`d*#3P `Eh!J4'9QBA9XG#"XCACPE$*6Bh*PC@j'FQ9a$3N*I5"TCJdJC@jN$AdJBQPZC#" NC@B0GA0PFQ4TBh3J,f0eFR*PER46Bh*PC@j'FQ9a)#!0#@aPGQ9X-MmJHf0eFR* PER4SB@aQG'pZC5"XCACPE$*6Bh*PC@j'FQ9aI5"lBh9bFQ9ZG(0MFQ9PEL"`Eh! JF'p`I5"TCQ9XFf8JF(9d$@aPGQ9X-MmJEQpd$3Pl$3N*,h0PG'0YH@YMEfa[FL" hD'9bC5"ZEh30#3Pl$3N*#5pcCA4MEAPVBfpXEh)0#3N*H`d*#3N*CAKMD#!Z-6% JEA9X)'&NC#"PH'0S)#ie15"YG@`JB@4N)'9iBfJJ,M-JEA9X)'&NC!d*#3N*-5" PH'0S)(0eBL"cCA4RFQ&j$3N*#AdJC'9Q$3N*I5"TCJd*#5pMGA*bC@jdBfejDf0 [E'pb)(GSCA*P)'j[G!d*#AX0#3N*,f0eFR*PER4MEAPVBfpXEh)0#3N*H`d*#3N *-#!`)$!J-5"MGA*bC@jdCh*KH5"cG@)0#3N*I5"NC@B0#3Pp)'PQ$3N*,h0PG'p fCA*`FQPZG#"hD'9bC5"ZEh30#3Pl$3N*#5pcCA4[GQ9bF(*TER3J,h"[F#"XEf& N)'4PCJd*#AdJD@B0#3N[Ff9XC@0dCQpZG#"hD'9bC5"ZEh30#3Pl$3N*#5pcC@a PBh4QEfjd$3N*#AX0#3N*#@9iBfJJCQPZC'C[ER3JCAKMD!d*#3N*C(9`)(4jF'8 J,f&bFQ&jG(P`C5"PF3d*#3N*H`d*#3N*#@eKDf9QEfjd$3N*#3Pp$3N*#3Pl$3N *#3N*Ff0KE'9QEfjd$3N*#3Pp)'PQC@acC3d*#3N*Ff9dCQpZG!d*#3Pp)'*TEQ3 JC'9Q$3N*I5"TCJd*#5pMFfK[Gb"hD'9bC5"ZEh30#3Pl$3N*#5pMFfK[G`d*#3P l$3N*#3PE$3N*#3N`)$!J05!Y-5"bEfaX)'&XEf&N)("[F!d*#3N*A5"MGRJJBQP ZC#"QEh*KE'`0#3N*I5"LD@jN)'4PCJd*#AdJD@B0#AdJD@B0#@0XC@&bG'pYBA* V$3N[B@jj3fpXEh)r$3Pl$3N*B@4N)'&NC#"KC'3J-#"ZC3d*I5"LD@jN)'4PCJd *,h4PFh4$Efa[FJd*H`d*#@GcBACP$3N*Ff9dBfejDf0[E'pb)'0eFR*PER4MEAP VBfpXEh)0#3PRFQ9cG'pbC3d*I5"LD@jN)'4PCJd*,h4PFh4$69P,3fpXEh*8D(* [G@GS$3Pl$3N*G'9cG%0[E'pb)'&ZH80[E'pb2`d*I5"LD@jN)'4PCJd*GA0PFQ4 TBh3J,f0[EA"[FfPdC6m0#@aPGQ9X-Mm0#AX0#3PRFf&fC5!a)$%J-5!a)(0PG'0 YH@YMEfa[FL"MGA*bC@jdBfejDf0[E'pb)'GbCA0dEh*P$3N*B@4N)'&NC#"KC'3 J0#"PF3d*I3d*H`d*#6%J-#!`)$!JG'9cG%00@8Y$Efa[FP4SFQpeCfJ0#3N`)$% J-#!`)(4PFh4$69P,3fpXEh*8D(*[G@GS$3N*-#!`)$%J-#"dCA0d3deC5d0[E'p b9'KbEh9RD!d*#6!J-#!`)$%JG'9cG%00@8Y$Efa[FP4SFQpeCfJ0#3PKEQ3JB@j N)'&ZC!d*I5"TCQ9XFf80#A"eG!d*BfpYF'pcDA4P2b"ZEh30#AX0#3PeFf9bC'P MG#"LC@GTEJd*#@GcBACP$3N*,f0jB@ir)$%J-#!`)$!JG'9cG%00@8Y$Efa[FP4 SFQpeCfJJC'9Q$3N*,feKCf9ZG'%r)$!J-5!`)$!JG'9cG%00@8Y$Efa[FP4SFQp eCfJJC'9Q$3N*,hPPE'a[GcmJ-#!`)$%J-#"dCA0d3deC5d0[E'pb9'KbEh9RD#" NC@B0#3N[BQaKBfXr)$!J-#!`)$%JG'9cG%00@8Y$Efa[FP4SFQpeCfJJC'9Q$3N *Ch*PFh4[FQ80#3N[DA0$69P,8f9`2b"MH@&Z2b"YB@GPER4K2b"jC@aXEhFr)'* XB@0V2b"[FL"[FL"[FL"NC@B0#3N[Bh9cG'pY3fpXEh)r)'Pc3deC5e0PF$mJEQp d)'4PCJd*)'9ZC!d*I5"TCJdJC@jN)'4PCQ&eE(4`B@0VD@jR)(0PG("KBfYTEQF 0*59&EQ45CA0[GA*MC3dP*8*PCfPZ8(*[Be0PG$SJ3@4[BQ9I3fpXEh**E@&RC9p "56BJ-5i`)$!0GA0PFQ4TBh3J,d&NEf*PAd0[E'pb5@eKCf9I38Nf)'YZEhGZ)'j [G!el$3PeFf9bC'PMG#![3@4[BQ9I3fpXEh**E@&RC9p"56BJ-6FJC'PMG#"`GA3 J$AdJD@B0GA0PFQ4TBh3J,d&NEf*PAd0[E'pb5@eKCf9I38Nf)'GPG#"LC@GTEJd *$3N[D@jTG'PKE'PkC3d*Hb!0#3P"C'pLC9p$Efa[FNPYB@GPAd&*0L"LC@GTEJd *#8&NEf*PAd0[E'pb5@eKCf9I38Nf$3N*H`d*#3PNGA!JG(P`C5![BA*bBAPdHA" P)'9a$3N*#AX0#3N*#@4eF#"iBfKPBfX0#3N*#AX0#3N*#3PLD@jN$3N*#3Pp)'P Q$3N*#AdJD@B0#3N*F'p`)("[F!d*#AdJCQpbB@aX$3Pp)'4PCJd*,h4PFQeTEQ& dC5"l)'9ZC#"p)'4PCJd*$3PMGA*bC@jdC'PMG#![3@4[BQ9I3fpXEh**E@&RC9p "56CI9Q&bFb"VEQphEL"ZEh30#AX0#3N[3@4[BQ9I3fpXEh**E@&RC9p"56CI9Q& bFb!a0#"ND@0d)'4PCJd*I5"TCJd*$3P"C'pLC9p$Efa[FNPYB@GPAd&*0Pp@BA* c)'*PCfPZ$3N*,f0SB@jZC@aMEh9ZG#!`)'4PCJd*#5pcEh9bBf9MEh9ZG#!`)'4 PCJd*#5pcEh9bBf9KFR*KH5!d)'&bFQ&j)'4PCJd*#5p`E'&dC@PZC'9i)#da)'4 PCJd*#5pB58eKFfXJ-#"NC@B0#3N[@%P#D@jKFRNJ-#"NC@B0#3N[@%P$D'&ZEQ9 X3fpeER3J-#"NC@B0#3N[@%P#DA4c8'9b8'PiC@`J-#"NC@B0#3N[@%P*E@&RC8K PD@GSG#!`)'4PCJd*#5pB58PYB@GP9fPNG'JJ-#"NC@B0#3N[@%P*E@&RC8eKG(* TH#"ZG@aX)'4PCJd*#5pB58*eCQCPFL"ZG@aX)'4PCJd*#5pB584KG'&3FQpM)'j eE'`JC'9Q$5"PEQ30#3d*,eGKE'Y54d*6G(*TEQFJER9XE#"NC@B0#5pAB@aV3de C5e0dFQPZCb"ZG@aX)'4PCJd*$3N[8h4eCQC54d**ER4[4h*KH90dFQPZCb"ZG@a X)'4PCJd*,e*(3P4[4h*KH8PYB@GP8(*[Bb"ZG@aX)'4PCJd*,e0dG@CQ3deC5dP ZG'p(FQ&j8h4bD@jR)'jeE'`JC'9Q$3N[3deC5e4[4h*KH8PYB@GP8(*[Bb"ZG@a X)'4PCJd*,d0[E'pb5@eKCf9$Efe`Eh0TG'9&EA9XBA4[FL"ZG@aX)'4PCJd*$3N [8f9`BA*KG'9$69P,5@eKCf93FQpM)'jeE'`JC'9Q$3N0#5p'Eh9b4A&eB@`JER9 XE#"NC@B0#5p8CA0d8'aKG'9*EQ4PH#"ZG@aX)'4PCJd*$3PMGA*bC@jdC'PMG#! [Af0[E'pbD@eKCf8JDfj[GfiJEQpd$3Pl$3N*,f0[E'pbD@eKCf8JGfKPFQ80#3P l$3N*#5pMEfa[FQPYB@GP)'GPG#![Af0[E'pbD@eKCf8JCAKMD#"NC@B0#3Pp$3N *H`d*#3N[Af0[E'pbD@eKCf8JER9XE#"NC@B0#3Pp)'PQC@acC3d*I5"TCJd*$3N [Af0eFR*PER4dFQ&ZFfCPFL"cHA0dC@eND@0d)#pMGA*bC@jdG(*KER0QCA)JCf9 d)'4PCJd*$3N[BfpXEh*TE@&RC5"ZG@aX)'4PCJd*,eK*)'jeE'`JC'9Q$3N0#3d *,eGKE'Y54d*6G(*TEQF0#AX0#3N`)$-JD@jNCAJ0#3d*#@4eF#"XC@jRG'JJ-5" cG@)J-#!c)$-J,6%JFQpXE!d*#AX0#3N*-b"RCA4TER4PFRCKE#"l)(dJCQpbB@a X$3N0#3N*05"TEQ4PH#"PH'9M$3N0#3N*-b"TEQ4PH!d*#AdJCQpb$3N*$3N*)$8 JHb"`Eh!JI5"bCA"PBA30#3d*I5"NC@B0#3d*$3N[9f&XDd00@8Y6G(*TEQF0#AX 0#3N`)$-JD@jNCAJ0#3d*#@4eF#"XC@jRG'JJ-5"cG@)J-#!d)$-J,6%JFQpXE!d *#AX0#3N*0#"RCA4TER4PFRCKE#"l)(dJCQpbB@aX$3N*#3d*#3Nf)'PZC'9i)'9 iC@-0#3N*$3N*#6-JD@jNCAJ0#3N*$3N*I5"QEh)0#3N0#3Ne)(XJF'p`)(dJFQ9 `C@&d$3N*$3Pp)'4PCJd*$3N0#5p6G(9QCP*(3NPZG'p(FQ&j8h4bD@jR$3Pl$3N *,M%a)'eeE#"PH'0S$3N*$3N*,M8j)'eeE#"KC'3JCAKMD!d*#3d*#5ic)'eeE#" KC'30#3N0#3PMGQNJ-b"MEh"j)("eG!d*#3d*#A"[F#!a)'&NC!d*I5"NC@B0#3d *$3N[8NG#9'p(FQ&j5@eKCf93FQpM$3Pl#3d*#8&NEf*PAd0[E'pb5@eKCf9I38N fAeCKFR-JBQ9RD@iJ$3N*#A0[GA*MC@&bFQ&j)$!JCf9d)'9iC@-0#3N*C(9`)'a PEQGdD#!c)'PNDABJFh4bD@jR$3N*#@4eF#!c)$%JFQpXE#!0#3N*$3N*#5p6G(9 QCP*(3NPZG'p(FQ&j8h4bD@jR)'a[B@3JCAKMD!d*#3PAB@aV8NG#8h4bD@jR$3N JC@jN$3Pp)'4PCJd*$3N0#5p6G(9QCN00@8Y*ER4[4h*KH90dFQPZC`d*H`d*#@9 iBfJJ,M%a)'eeE#"KC'30#3N0#3PPH'0S)#ie15"YG@`JB@4N$3N*$3N*CAKMD#! Z-b"YG@`JB@4N$3N*$3N*C(9`)$)e05"RG#"l)("[F#!b068JI5"TCJd*#3d*#6) e05"PH'0S)(0eBL"MGQNJ-b"MEh"j)("eG!d*#3d*#A"[F#!a)'&NC!d*I5"NC@B 0#3d*$3N[3deC5e4[4h*KH8PYB@GP8(*[B`d*H`N0#3P"C'pLC9p$Efa[FNPYB@G PAd&*0Pp@BA*c)'*PCfPZ$3N*#A0[GA*MC@&bFQ&j)$!JCf9d)'9iC@-0#3N*C(9 `)'aPEQGdD#!d)'PNDABJFh4bD@jR$3N*#@4eF#!c)$%JFQpXE#!0#3N*$3N*#5p 6G(9QCN00@8Y*ER4[4h*KH90dFQPZCb"XEf&N)'9iBfJ0#3N*9f&XDd00@8Y6G(* TEQF0#5"PEQ30#AdJC'9Q$3N0#3d*,d0[E'pb5@eKCf9$Efe`Eh0TG'9&EA9XBA4 [FJd*H`d*#A"[F#"dFR9P)'9a$3N*H`d*#3P"C'pLC9p$Efa[FNPYB@GPAd&*0Pp @BA*c)#pcEh9bBf9MEh9ZG#"RCA3J05"KC'3JHb"`Eh!JI5"bCA"PBA30#3Pp$3N *H`d*#3P"C'pLC9p$Efa[FNPYB@GPAd&*0Pp@BA*c)#pMD'&ZEQ9XBfpeER3JCf9 d)$%JEQ80#3N*H`d*#3N*3@4[BQ9I3fpXEh**E@&RC9p"56CI9Q&bFb"LC@GTEJd *#3N*#A0[GA*MC@&bFQ&j)$!J-b!Y-5"bEfaX)("eG!d*#3N*$3N*#3N*BfKKEQj PE'0[G@jd)$-JCA%J$3N*#3N*Hb!0#3N*#3N*,e*(3P4[4h*KH8PYB@GP8(*[Bb! 0#3N*#3Pp$3N*#3N*Hb!0#3N*#3N*,d00@8Y8EdGbBAP*E@&RC9"bEf-0#3N*#3P p)'PQC@acC3d*#3N*#@a[B@30#3N*)'9ZC!d*#3Pp)'PQ$3N*#@PYB@GP$3N*I5" TCQ9XFf80#AdJC'9Q$3N0#3d*,e0PF'&bBA4P3deC5dPYB@GP8(*[B`d*H`N0#3P "C'pLC9p$Efa[FNPYB@GPAd&*0Pp@BA*c)'*PCfPZ$3N0#3N*FfpeFQ0PBfpeER3 J-#"ZC3d*#3Pl$3N*#3PcEh9bBf9KFR*KH5"`E'&dC@PZC'9i)'GPG#"PH'9M$3N *#Ad0#3N*H`N*#3d*#3N*FfpeFQ0PBA*bBANJ-#"RCA3JCAKPB`d*#3N*$3N*#3P NGA!JE'9ZCh4S)$3JD@4TGL"cG(*TEQF0#3N*#3d*#3N*-#!b)'PZC'9i$3N*#3N 0#3N*#A"XBA4PD@jNCAJJ0#!b)'PZC'9i)'aPEQGdD#!a)(0eBJd*#3N*H`d*#3N *#@GPG#!b068JCAKMD#"cG@)0#3N*#3N0#3N*#3Nc)'0[F(NJF(9d)("[F#!a)'& NC!d*#3N*#3d*#3N*#6)JD@jNCAJ0#3N*#AdJCQpb$3N0#3N*#A"[F#"`Eh!JCAK MD#"`Eh!0#3N*I5"TCQ9XFf80#5"PEQ30#AdJC'9Q$3N*$3N0#5p'Eh9b4A&eB@` 0#AX0#3Nd)'PZC'9i)'jP$3N*H`d*#3P`Eh!JF'p`)("[F#"QB@acC3d*#Ad0#3P l$3N*#63JD@jNCAJJEQ80#3N*H`d*#3N*F'p`)("[F#"QB@acC3d*#3Pp$3N*#AX 0#3N*#63JD@jNCAJJEQ80#3N*#AX0#3N*#3P`Eh!JCQ&XFf80#3N*#Ad0#3N*#AX 0#3N*#3Nd)'PZC'9i)'9a$3N*#3Pp)'PQC@acC3d*#3Pp)'PQC@acC3d*#AdJD@C PE(0P$3Pp)'4PCJd*$3N0#5p8CA0d8'aKG'9*EQ4PH!d*H`d*#8&NEf*PAd0[E'p b5@eKCf9I38NfAeCKFR-JBQ9RD@i0#3N*,h"XBA4PD@jNCAJJ,6%JC'9Q$3N0#3N *,h0PG'0YH@YMEfa[FL"hD'9bC3d*#3Pl$3N*#3P`Eh!0#3N*#@GcBACP$3N*#3N a)$!J-#!`)(0PG'0YH@YMEfa[FL"cHA0dC@eND@0d)#pMGA*bC@jdCh*KH5"RCA3 JCAKPBb!a)'9iBfJJFh9L$3N*#3N`)$%J-#!`)(0PG'0YH@YMEfa[FL"cHA0dC@e ND@0d)#pMGA*bC@jdCh*KH5"RCA3JCAKPBb!a)'9iBfJJFh9L$3N*#3N`)$!J-5! `)(0PG'0YH@YMEfa[FL"cHA0dC@eND@0d)#pMGA*bC@jdCh*KH5"RCA3JCAKPBb! a)'9iBfJJFh9L$3N*#3N`)$!J-#!a)(0PG'0YH@YMEfa[FL"cHA0dC@eND@0d)#p MGA*bC@jdCh*KH5"RCA3JCAKPBb!a)'9iBfJJFh9L$3N*#3PRFQ9cG'pbC3d*$3N *#3Na)$!J-#!`)%C[GA*&FA9KE#!0#3N*#AXJ$3N*#3N*,h"XBA4PD@jNCAJJ-#" NC@B0#3N*#Ad0#3N*#AX0#3N*#3N`)$%J-#!`)%C[GA*&FA9KE!d*#3N*#AXJ$3N *#3N*#5p`E'&dC@PZC'9i)$%JC'9Q$3N*#3N*I3d*#3N*#AX0#3N*#3N*-#!`)$% J-#"'Eh9b4A&eB@`0#3N*#3N*H`d*#3N*#3N*,h"XBA4PD@jNCAJJ-L"NC@B0#3N *#3N*I3d*#3N*#3Pl$3N*#3N*#3N`)$!J-#!a)%C[GA*&FA9KE!d*#3N*#3N*Hb! 0#3N*#3N*#3N[F'aKG'9TEQ4PH#!c)'4PCJd*#3N*#3N*I3d*#3N*#3N*H`d*#3N *#3N*#6!J-#!`)$!J4QpeFN9aG@&X$3N*#3N*#3N*H`d*#3N*#3N*#3N[F'aKG'9 TEQ4PH#!e)'4PCJd*#3N*#3N*#AdJD@B0#3N*#3N*#AdJD@CPE(0P$3N*#3N*#Ad JD@CPE(0P$3N*#3N*I5"TCQ9XFf80#3N*#AdJD@CPE(0P$3N*#3P`Eh!JF'p`)(" [F#"`Eh!0#3N*I5"TCJd*#3P`E'&dC@PZC'9i$3NJC@jN$3Pp)'4PCJd*$3N0#5p MEfa[FQPYB@GP$3Pl$3N*3@4[BQ9I3fpXEh**E@&RC9p"56CI9Q&bFb"LC@GTEJd *#3N[BfKKEQjPE'0[G@jd)$%JD@jNCAJJC'9Q$3N*#5pcEh9bBf9MEh9ZG#!b)'P ZC'9i)$%JCA%JHb"MD'&ZEQ9XBfpeER3J-5"cG@)JI5"l)$!JI5"TCQ9XFf8JC'9 Q$3N0#3N*0#"cEh9bBf9MEh9ZG#"KC'3JD@jNCAJJC(9`)!d*#3Ni)'9a)'9iBfJ J-5"PF5"[FL"ZEh30#5"PEQ30#3N0#3Pl$3N*#5pIBfpXEh*TE@&RC5"XEf&N)'j eE'`JEQ80#3N*H`d*#3N*Af0[E'pbD@eKCf80#3N*I3d*#3Pl$3N*#3P"C'pLC9p $Efa[FNPYB@GPAd&*0Pp@BA*c)#pcEh9bBf9MEh9ZG#"RCA30#3N*#6FJB@4N)(X JF'p`)(dJFQ9`C@&d$3N*#AdJD@CPE(0P$3N*I3d*#AX0#3N*C(9`)$-JCA%0#3N *9'9cG&"XBA4P5@jNCAJ0#3N*C(9`)#da)'9a)'9iBfJJ05"PF5"[FL"[FJd*#3P l$3N*#3N[Af0[E'pbD@eKCf8JE'pKC#"ZG@aX)'9a$3N*#3Pl$3N*#3N*3fpXEh* *E@&RC80[EA"[FfPdC89YG@aKG'pb$3N*#3Pp$3N*#3Pl$3N*#3N*C(9`)$%JCA% 0#3N*#3Pl$3N*#3N*#A"[F#"`Eh!JD@eKCf80#3N*#3Pp$3N*#3N*H`d*#3N*#3P "C'pLC9p$Efa[FNPYB@GPAd&*0Pp@BA*c)#p`E'&dC@PZC'9i)'GPG#!e)'9a$3N *#3N*#AX0#3N*#3N*#@GcBACP$3N*#3N*#3N0#3N*#3N*#6!JAf0eFR*PER4dFQ& ZFfCPFL"PH'9M$3N*#3N*#3Na)&pMGA*bC@jdG(*KER0QCA)JCAKPB`d*#3N*#3N *CA%0#3N*#3N*#AXJ-#"IBh9bFQ9ZG(4bB@jcCQ9b)'9iC@-J-#ie)'ad)(d0#3N *#3N*#AXJ-#"IBh9bFQ9ZG(4bB@jcCQ9b)'9iC@-J-5"IBh9bFQ9ZG(4bB@jcCQ9 b)'9iC@-JCh3JI5"TCQ9XFf80#3N*#3N*#3d*#3N*#3N*Hb"l)("[F#!`)(dJI5" l)(XJF'p`)$%JI5"p)'PQC@acC3d*#3N*#3N*FhPcG'9YC'PMG#![Ff9dG(*KER0 QCA)JCf9d)'9iC@-0#3N*#3N*I5"TCJd*#3N*#3N0#3N*#3N*Af0[E'pbD@eKCf8 0#3N*#3N*$3N*#3N*#8&NEf*PAd0[E'pb5@eKCf9I38NfAeCKFR-J,h"XBA4PD@j NCAJJCf9d)$8JCA%0#3N*#3N*H`d*#3N*#3N*Ch*PFh4[FQ80#3N*#3N*I5"TCJd *#3N*#AdJD@CPE(0P$3N*#3Pp)'PQC@acC3d*#3Pp$3N*#AX0#3N*#@4eF#!a)'9 a$3N*#3Pl$3N*#3N*F'p`)("[F!d*#3N*#@PYB@GP$3N*#3Pp$3N*#3Pl$3N*#3N *F'p`)("[F!d*$3N*#3N*3@4[BQ9I3fpXEh**E@&RC9p"56CI9Q&bFb"LC@GTEJd *#3N*#3PcEh9bBf9MEh9ZG#!Y-5!`$3N*#3N*#AX*#3N0#3N*#3N*#@9iBfJJFfp eFQ0PBA*bBANJ-b!a)(*[E'`JF(9d$3N*#3N*#AdJCQpb$3N0#3N*#3N*,e0PF'& bBA4P3deC5dPYB@GP8(*[Bb"XEf&N$3N*#3NJC@jN$3N0#3N*#3PcHA0dC@eND@0 d)#pTE@&RC5"RCA3JCAKPB`d*#3N*I5"TCQ9XFf80#3N*I5"TCQ9XFf80#3Pp)'P QC@acC3d*I5"NC@B0#3d*,eK*$3Pl$3N*3@4[BQ9I3fpXEh**E@&RC9p"56CI9Q& bFb"LC@GTEJd*#3PRFf&fC3d*#3N[@%P0BA0V)'9iBfJJ-#"ZC5"NC@B0#3N*,eK *3QPZBA*j)'9iBfJJ-#"ZC5"NC@B0#3N*F'p`$3N*#A"[F!d*#3N[@%P$D'&ZEQ9 X3fpeER3JCAKMD#"NC@B0#3N*,eK*3QPdFe"PFP"TH'9X)'9iBfJJC'9Q$3N*#5p B58PYB@GP5'9TCfKd)'9iBfJJC'9Q$3N*#5pB58PYB@GP9fPNG'JJCAKMD#"NC@B 0#3N*F'p`)("[F#"`Eh!JF'p`$3N*#5pB58PYB@GP6@&dFQPi)'9iBfJJC'9Q$3N *#3d*#3PB58*TG(03CA*3DAKPE#!a)'9a$3N*#AX0#3N*#9K*5@eKCf9AD@4dD#! i)'4TGL"MC@PXD@jR)'0fD3d*#3Pp$3N*#AX0#3N*#9K*5@eKCf9AD@4dD#"B580 SB@jZC@a$Eh9ZG#"YG@`0#3N*I5"TCQ9XFf80#3N*,eK*3R9QCQ9b)'9iBfJJFh4 bD@jR)'4PCJd*#3N0#3N*@%P#D@jKFRN0#3N*H`d*#3N*,eK*4'&dB9"bEf-JHb" MGA*bC@jdCQPXC5"B58*eCQCPFL"bC@&NFh4bD@jR)("[F#"p)'4PCJd*#3N*Bh9 bFQ9ZG'CTE'8J-6)i)(0dFQPZCb"bC@&NE'PZC5"`Eh!JF'p`$3N*#Ad0#3N*H`d *#3N*,eK*4'&dB9"bEf-JHb"MGA*bC@jdCQPXC5"B58*eCQCPFL"bC@&ND'9iFh4 bD@jR)("[F#"p)'4PCJd*#3Pp)'PQC@acC3d*#3N0#3N*-#!`)'e[GQ9dE`d*#3P B58PYB@GP6@&dFQPi)'0[EQ0KG!d*#3PB58PYB@GP9fPNG'JJ@%P*E@&RC8KPD@G SG#"cBf&XC3d*#3N0#3N*@%P0BA0V$3N*#AX0#3N*#9K*5@eKCf9AD@4dD#"B58P YB@GP5'9TCfKd$3N*#3PQB@acC3d*#3N*@b"B58PYB@GP9fPNG'JJ-#!`)&K*5@e KCf9)C@PRD(3JEQ9R)$!J-#"G$3N*#3N[@%P%BA4K8(*[Bb"XEf&N$3N*#3N0#3N *#5pIE(!J,fjeE'`JC'4PCJd*#3N*AfCM$3N*#3N[Afa`)#pTE@&RC@eKFfXJC'4 PCJd*#3N*$3N*#3PTE@&RC@eKFfX0#3N*I3d*#3Pl$3N*#3PB58PYB@GP9fPNG'J J@%P*E@&RC8KPD@GSG!d*#3N*@%P#DA4c8'9b8'PiC@`0#3N*#9XJ@%P*E@&RC9G TC(4S)$!J-#"B58PYB@GP5'9TCfKd)'jPCb!`)$!JA3d*#3N*,eK*4'&dB9"bEf- JE'pKC!d*#3N*$3N*#3PB580SB@jZC@a$Eh9ZG#!a)'9a$3N*#3Pl$3N*#3N*$3N *#3N*Ch0KGQ80#3N*#3N`)(0PG'GbBAN0#3N*#3N0#3N*#3PTE@&RC3d*#3N*#3d *#3N*#@GbCA0dEh*P$3N*#3Pp$3N*#3Pl$3N*#3N*CQ&XFf80#3N*#3PB580SB@j ZC@a$Eh9ZG!d*#3N*#@0[E'pbD@eKCf80#3N*#AdJD@CPE(0P$3N*#AdJD@CPE(0 P$3N*#@GbCA0dEh*P$3NJC@jN$3Pp)'4PCJd*$@9ZC!dP*89ZC&"bEf06CA30*59 #C@GTEP*PFfpeFQ0P1L"`FQpMFf9d)%&NEf*PAdPXE(9cG(*KG'pbAd&*05!a,M% J-!dP*94TG'aP1L!S3@4[BQ8J5@aXGA0dFQ&dEh)J+&)T)&CPFR0TEfiJ05i`)%C eE'`J8(*[E'pR+3dP*9CPFR0TEfik)$%Z-5!0*59$FQ9KG'P[EN4KG'8k)#Jc,cF [-6Nj0#NJ+#N0*59$Eh"jFQPRD(3k)#JS3bNJ-6Ni0bda16Nd)%&NEf*P)&0jFh4 PEA-J5@jMEh*`Eh*KG'9N)%&XE#"5D@GSG(-J8Q9cCA*fC@3T$@0eFR*PER4`B@0 VD@jR)(4bG@8JFf9dF'&MDfPZC`eeFf9bC'PMG#![3@4[BQ9I5@aXGA0dFQ&dEh* I38NeAhCKFR-J1$%JC'PMG#"NGA!JBQ9RD@i0F(9d$5pIC@mJCQ&XFf8JC'9Q$5p IE(!J,fj[EQ8JC'9Q$5pIF'B0H`ep)'4PCJd[Ah"c$AX0I5"NC@B0,ep`FfB0H`e p)'4PCJd[Ah"cF`el$AdJC'9Q$5pIF'TcCJel$AdJC'9Q$5pIF'TcF`el$AdJC'9 Q$5pIF'pXB5!`)'4PCJd[Af4[3faTF#!`)'4PCJd[BfBJBh9bFQ9ZG'CXBA3JC'9 Q$5pIG'dJE@&dFQPi)'4PCJd[Ah*PEQ4PFP0dBA*d$9X0,f8`)#pb-#![B6!J,fm `)#pP-5![FM%J,f%a)#pT-!eG)'4PCJd[Ah*PEQ4PFN9ZC!eE$@jeE'`JER9XE#" ZG@aX)'jeE'`J,fNa)#pT-5![D6%J,fNa$9dJC'9Q$5pIFQ9ZC'9b)#da)'4PCJd [Ah*TFf8J-#"NC@B0,epKH#!`)'4PCJd[Af&j)$!JC'9Q$5pIBhJJ-#"NC@B0,ep MH5!`)'4PCJd[AfaPB@4TEQF0@`d`)$!0A5"NC@B0,epMG'dJE@&dFQPi)'4PCJd [AfedH#"YBA4bDAJJC'9Q$5pIFh!J-6BM-$)`)'4PCJd[AfKjF'KPEL!S,5NJC'9 Q$5pICP0ME#!`)'4PCJd[Af0ZG#!`)'4PCJd[AfKc)$%JC'9Q$5pIEQ&dDACP4@j MEf4TEQFJ-#"NC@B0,epeFf91BA4TGQ9&EQ0[C'PZCb!`)'4PCJd[Ah4PEA"&EQ0 [C'8J-#"NC@B0,ep`ER4b)$!JC'9Q$5pIG%4TBh3J-L"ND@0d)'4PCJd[AhGf)$! JC'9Q$5p8H!el$AdJC'9Q$5p8DJel$AdJC'9Q$5p$8Q9ZC'9b$AX0I5"NC@B0,ep "560IFf&fCA"KCf80H`ep)'4PCJd[AfGQ)'jeE'`JC'9Q$5pIBfBJ0#"KFR*KH5" NC@B0,epTCL"ZG@aX)'4PCJd[AfpQ)'CKE(0P)'4PCJd[AfCM$AX0I5"NC@B0,ep RFb"ZG@aX)'4PCJd[Af0c)$3JBA*bBANJC'9Q$5pIDA-JER9XE#"NC@B0,ep[Fb" QB@acC5"NC@B0,epcB`el$AdJC'9Q$5pIF'3J-5"ND@0d)'4PCJd[Af9N)$%e)'4 TBh3JC'9Q$5pIF'dJE@&dFQPi)'4PCJd[AfCY)'jeE'`JC'9Q$5pICQ3JER9XE#" NC@B0,epQC'3JER9XE#"NC@B0,epcE5"ZG@aX)'4PCJd[Ah0N)'jeE'`JC'9Q$5p IFf4N)'jeE'`JC'9Q$5pID5"ZG@aX)'4PCJd[C'PcBf&bC&0KGQ8JER9XE#"NC@B 0,f*eCQCPFL!b06BJFh4bD@jR)'4PCJd[BQ9RD@j6G(*TEQFJER9XE#"NC@B0,f9 ZC&0dFQPZCb"ZG@aX)'4PCJd[C@jN8h4bD@jR6'9ZCh4S)'jeE'`JC'9Q$5pXBAP PFN0ZG#!a)'4PCJd[E'&jCA*$Eh9ZG#!a)'4PCJd[F'9b3f9ZG#!S*5NJ-#"RCA3 JC'9Q$5p`CA*$C@jd8f9PEMmJCQ&XFf8JC'9Q$5pZCAG#G@CQ)'jeE'`JC'9Q$5p ZCAG#G@CQ3R9d4QPbFh3JER9XE#"NC@B0,fjPGd*eCQC-BA0d)'jeE'`JC'9Q$5p ME'P`4QpbGf&bC$mJCQ&XFf8JC'9Q$@9ZC!eeFf9bC'PMG#![3@4[BQ9I5@aXGA0 dFQ&dEh*I38Ne)'YZEhGZ)'j[G#"l$3PeFf9bC'PMG#![3@4[BQ9I5@aXGA0dFQ& dEh*I38Ne)$Na)'4TBh3JF(9d$AdJD@B0GA0PFQ4TBh3J,d&NEf*PAdPXE(9cG(* KG'pbAd&*05"RCA3JBQ9RD@i0,fPZDA4TB@aTHQ80H`d*3@4[BQ9I5@aXGA0dFQ& dEh*I38Ne)'4eF#"LC@GTEJd*3@4[BQ9I5@aXGA0dFQ&dEh*I38NeAhCKFR-JBQ9 RD@i0#@4TFf0KFQ4%D@0d$3Pl$3N*BQPZC#"`Eh!JF'p`$3Pp)'C[FQ&XE!d*C(9 `)#pZBb"RCA3JBQ9RD@i0#AX0#3PNGA!JH'0SC@0V)$%JD@jNCAJJG(P`C5![Eh" PFQ&dEh*dHA"P)'jP)'&ZC!d*#AX0#3N*BQPZC!d*#AdJD@B0#3P`Eh!JF'p`$3P p)'C[FQ&XE!dJC@jN$3PZCAG`BA4S$AdJC'9Q$5pdCA*YD@jKG'80H`dJC@jN$5" PEQ30I5"NC@B0,em0ER9XE#"NC@B0,f4NC@B0H`d*3@4[BQ9I5@aXGA0dFQ&dEh* I38NeAhCKFR-J-b!a)(*[E'`JF(9d$AdJC'9Q$5piF(9d$AX0#@4eF#"XEf&N)'4 eF#"XC@jRG'JJCAKMD#"YBAKXC@jRG'JJCA%0#AX0#3PNGA!JC(9`)'a[B@3JC(9 `$3N*E'9ZCh4S)$)JEA9X)'4TBh3JBfp`H5"NC@B0#AdJD@B0#@a[B@3JBQ9RD@i 0#@4PCJdJC@jN$AdJC'9Q$5pZF'p`$AX0#AX0#3P`Eh!0#AdJFQ9`C@&d$AdJC'9 Q$5pcG`el$3PNGA!JE'9ZCh4S)'9iBfJJFh4bD@jRGfPNG'J0#@9iBfJJ05!Y-5" bEfaX)$-JD@jNCAJJEA9X)'&NC!d*0#!a)(*[E'`J-b!a)(*[E'`JEA9X)'&NC!e p)'4PCJd[FhGU$AX0#@4eF#!d)$%JFQpXE!d*C(9`)'aPEQGdD#"PH'0S)(0dFQP ZChGTC(4S$3PPH'0S)$8J,6%JFQpXE#!c)'PZC'9i)'eeE#"KC'30#63J-5"bEfa X)$-J-5"bEfaX)'eeE#"KC'30#6BJ-L"bEfaX)#pIBfjd)$!JC'4PCJd*H`d*#6% JD@jNCAJJCA%0#3Pl$3N*#5pIBfjd)&pMER3J-5"KC'3JC'4PCJd*#AdJD@B0#Ad JCQpbB@aX$3P`Eh!0#@9iBfJJAf0ZG#"YG@`JCAKMD#"IBfjd)'eeE#!b)'PZC'9 i)'&NC#!d)$%JFQpXE#!b)'PZC'9i)'&NC#!d)$%JFQpXE#"`Eh!JF'p`$AdJC'9 Q$5pcF`el$3Nd)$%JFQpXE!d*H`d*#6)JER"[F!d*#5J`+5"PH'0S)$)JBfp`H5! `)'9iBfJJF(9d)("[F!d*#@GcBACP$3N*CQ&XFf8JBfKKFR"KG'JJBh9bFQ9ZG(" [D@jd$3N*0#"TEQ4PH#"cCA4YBA4bDAJ0#3PcG(*[Df80#3PRFQ9cG'pbC3d*#@e [GQ9dE`d*#6)JBfp`H5"bE@pfCA4[$3Pp)'9iBfJJBh0SEhF0#6-JER"[F!ep)'4 PCJd[DR0c$AX0#63J-5"bEfaX$3Pl$3N*-L"ZF'p`$3N*+$!T)'9iBfJJ-L"MEh" j)$!JCAKMD#"`GA30#3PRFf&fC3d*#9pcF#"PF3d*#AX0#3N*CAKMD#!f)'PZC'9 i)$BJD@jNCAJJ0L"TEQ4PH#!e)#da)(*[E'`JGfPNG'KcD'ph$3N*#@0eFR*PER4 `EfPZG!d*#Ad0#3Pl$3N*#@CKE(0P)'0SBA*`BA4S)'0eFR*PER4`EfPZG!d*#3N d)'PZC'9i)(0PG'eKG(*TH#"cG(*[Df80#3Pp)'PQC@acC3d*#@GbCA0dEh*P$3N *E@pfCA4[$3N*-L"MEh"j)(*YEhCPG'm0#AdJCAKMD#"MFfK[G`d*0L"ZF'p`$Ad JC'9Q$5pcF!el$3Pl$3N*-L"ZF'p`)#J`+5"PH'0S$3N*-L"MEh"j)$!JCAKMD#" `GA3JF'p`$3N*CQ&XFf8JBfKKFR"KG'J0#3Nb)'0[F(NJFQe[GQ9dE`d*I5"PH'0 S)'0cD'ph$3Nb)'j`Eh!0I5"NC@B0,fTcF!el$3Pl$3N*-L"ZF'p`$3N*+$!T)'9 iBfJJ-L"MEh"j)$!JCAKMD#"`GA30#3PIFh!JCA%0#3Pl$3N*#@9iBfJJ05"TEQ4 PH#!e)'PZC'9i)$8JD@jNCAJJ05!Y-5"bEfaX)(GTC(4SFfK[G`d*#Ad0#3Pl$3N *#@CKE(0P)'0SBA*`BA4S$3N*I5"TCQ9XFf80#3Nb)'0[F(NJFQe[GQ9dE`d*I5" PH'0S)'0cD'ph$3Ne)'j`Eh!0I5"NC@B0,h"X$AX0#A4bB@jcCQpbE3d*-#ib05" cG@)JFQpeEQ3J-#ib05"KC'3JCAKMD!d*-#ib05"cG@)JFQpeEQ3J-#ib05"KC'3 JCAKMD!d*DA4bB@jcCQpbE3ep)'4PCJd[Ff9dFh4bEfYPB@4UGA0d)(GSCA*P$AX 0#A"[F#"dFR9P)(0PG(0dFQpVC@&NDR9cG!d*,f-0#AX0#3PMGA*fCA4[$3Pp)'4 PCJd*,d-0#5pM)'a[B@3JC'9Q$3N[GJd*H`d*#@0eFR*PER4`EfPZG#!f)$)JFQp XE#"MGA*fCA4[$3Pp)'4PCJd*,eB0#5pf)'a[B@3JC'9Q$3N[H3d*H`d*#6)JBfp `H5"MGA*fCA4[$3Pp)'4PCJd*,eN0#5pj)'a[B@3JC'9Q$3N[E!d*H`d*#@aTEQ9 dE`d*I5"NC@B0#5p-$3N[E#"XEf&N)'4PCJd*,fd0#AX0#3PYEhCPG'm0#AdJC'9 Q$Ad0H`d*,f-0#AX0#3P`E#"MGA*fCA4[$3Pp)'4PCJd*,d-0#5pM)'a[B@3JC'9 Q$3N[GJd*H`d*#@0eFR*PER4`EfPZG#!f)$)JFQpXE#"`E#"MGA*fCA4[$3Pp)'4 PCJd*,eB0#5pf)'a[B@3JC'9Q$3N[H3d*H`d*#A"X)$)JBfp`H5"MGA*fCA4[$3P p)'4PCJd*,eN0#5pj)'a[B@3JC'9Q$3N[E!d*H`d*#A"X)'aTEQ9dE`d*I5"NC@B 0#5p-$3N[E#"XEf&N)'4PCJd*,fd0#AX0#3P`E#"YEhCPG'm0#AdJC'9Q$AdJD@C PE(0P$5pN$AX0#A0PG'4KFfJ0I5"NC@B0,f0Q$AX0I5"NC@B0,fN0H`d*C(9`)$! JCA%0#AX0#3P`Eh!JBfB0#AdJD@B0#A0PG'CXBA30I5"NC@B0,fS0H`d*Ff9dE'P ZC@T[D@i0I5"NC@B0,dS0H`d*Ff9dE'PZC@0KF!ep)'4PCJd[63el$3PcCA4YDA4 PFQaTE@Pd$AdJC'9Q$5ph$AX0#A0PG'aTEQ9hD@4dD!ep)'4PCJd[@&)0H`d*-#" ZC3d*,epPEb"PH'0S)'4NC@B0I5"NC@B0,dJ0H`ep)'4PCJd[D!el$3PME'pcCA" KG'J0I5"NC@B0,di0H`d*Ah"[E'%J-#"PF3d*H`d*#9pNEd0XDA!J-5"PF3d*#AX 0#3N*Af9[)(YPEf0XDA"p)(YME'P`I5"TCQ9XFf8J,epNEd0XDA!J-#"NC'9Q$3N *I5"TCJd*#@jPGh"KG'J0#Ad0#AX0#3N[3e*PEQ4PFJd*#AX0#3N*6Jd*#AdJC'4 PCJd*I5"TCQ9XFf80I5"NC@B0,fi0H`d*6Jep)'4PCJd[4Jel$3PIF'pXB5!`)'9 a$3Pl$3N*Af4[3faTF#!a)'9a$3N*H`d*#3PRFf&fC5"IF'BJCh*PFh4[FQ8JAf9 [)(YPEf0XDA"p)(YME'P`I5"TCQ9XFf8JEQ9hF'&dD#![Afa`)#pZEfjP)'4NC@B JAfCM$3N*#5pIC'p$E'P`)$!JC'4PCJd*#Ad0#3Pl$3N*#9p`CJd*#AdJD@CPE(0 P$3Pp$3Pl$3N*,d05C@jNCA)0#3Pl$3N*#8B0#3Pp)'4NC@B0#AdJD@CPE(0P$Ad JC'9Q$5pQ$AX0#@0XEh0PF'&dD!d*4Jep)'4PCJd[8`el$3PIF'pXB5!`)'9a$3P l$3N*Af4[3faTF#!a)'9a$3N*H`d*#3PRFf&fC5"IF(-JCh*PFh4[FQ8JAf9[)(Y PEf0XDA"p)(YME'P`I5"TCQ9XFf8JEQ9hF'&dD#![Afa`)#pZEfjP)'4NC@BJAh0 M$3N*#5pIC'p$E'P`)$!JC'4PCJd*#Ad0#3Pl$3N*#9p`F`d*#AdJD@CPE(0P$3P p$3Pl$3N*,d05C@jNCA)0#3Pl$3N*#9-0#3Pp)'4NC@B0#AdJD@CPE(0P$AdJC'9 Q$5pc$AX0#@0XEh0PF'&dD!d*8`ep)'4PCJd[3Jel$3PIF'pXB5!`)'9a$3Pl$3N *Af4[3faTF#!a)'9a$3N*Ch0KGQ8J4L"RFQ9cG'pbC3d*#AX0#3N*Ch0KGQ8J8b" RFQ9cG'pbC5"IC@mJHf9[BfaTF(dJHf0XDA"p)'PQC@acC5"ZCAG`BA4S)#pIE(! J,fj[EQ8JC'4PCL"IFf-0#3N*,epNEd0XDA!J-#"NC'9Q$3N*I3d*#AX0#3N*8`d *#AdJD@CPE(0P$3Pp$3Pl$3N*,d05C@jNCA)0#3Pl$3N*#8)0#3Pp)'4NC@B0#Ad JD@CPE(0P$AdJC'9Q$5pL$AX0#@0XEh0PF'&dD!d*3Jep)'4PCJd[9`el$3N[Af4 [3faTF#!a)'4NC@B0I5"NC@B0,bS0H`d*BfpeER3J-#"ZC3d*H`d*#@4eF#"dHA" P)#pcG(*TEQGdHA"P)'9a$3N*H`d*#3P`Eh!0#3Pp)'PQ$3Pp)'PQ$3PZCAG`BA4 S$AdJC'9Q$5pe$AX0I5"NC@B0,e80H`ep)'4PCJd[F3el$3PIF'pXB5!`)'9a$3P l$3N*Ch0KGQ80#AdJD@B0I5"NC@B0,e%0H`d*Ah"[E'%J-#"PF3d*H`d*#@GbCA0 dEh*P$3Pp)'PQ$AdJC'9Q$5mUG3el$3PIF'pXB5!a)'&NC#![Ah"[E'%JCAKMD#" NC'9Q$AdJC'9Q$5mU93el$3PIF'pXB5!a)(0eBL![Ah"[E'%JCAKMD#"NC'9Q$3P IF'pXB5!`)'9a$3Pl$3N*3e*PEQ4PFJd*I5"TCJep)'4PCJd[4!el$3P`Eh!0I5" NC@B0,bTh$AX0I5"NC@B0,bTA$AX0I5"NC@B0,f!0H`d*,epT)(0KGQ8JC'4PCJd *BfaTF%C[FRGKFQ3r$3Pl$3N*ER9XE'4PGQPMC3d*I5"TCJd*0L!a)(*[E'`J0#" ZF'p`$3PMEfjMBA3JF'p`$3PeFf9bC'PMG#"LC@GTEJd*,h0SEhG`B@GP$3Pl$3P p)'4PCJd*-#"cCA4RFQ&j$3N`)(0PG'aTEQ9MBA!0#6%JFf9dE'PZCAGTC(4S$3N `)(0PG'aTEQ9UEfPZ$3Na-#"cCA4YDA4PFQaTE@Pd$3PEA5!`)(0PG'4KFfJ0#5p cCA4cG(*[Df9KC'TeFh3JGfKPFQ8JHh"[F#"QB@acC5"cCA4cG(*[Df9KC'TeFh4 p)'PQ$3PZCAG`BA4S$3N`)(0PG'GbBAN0#@CKE(0P)(0PG'pfCA*`FQPZG!ep)'4 PCJd[IJel$5"PEQ30#9pT)(*PFh4[FQ80I5"NC@B0,dm0H`d*-#"ZC3d*,ep[CL" PH'0S)'4NC@B0#5pIE(!J,fj[EQ8JC'4PCJep)'4PCJd[8Jel$3N`)'jP$3N[Afp c)'9iBfJJC'4PCJd*,epXF#![EQpZC5"NC'9Q$AdJC'9Q$5pR$AX0#5pICfBJCAK MD#"NC'9Q$3N[AfCM$3Pl$3N*Afa`)#pQD@aX)'jP$3N*H`d*#3PIEfBJFf9dEhC PFR"bD@jd$3N*#9pRCL"cCA4RFQ&j$3N*#5pIE(!J,fCTE'`JC'4PCJd*#AdJD@B 0#AdJC'4PCJd*,ep`CJd*H`d*#9pQB`d*#9pPEb"lC@pQD@aXI5"lCQPXE(dJD@C PE(0P$3Pp)'4NC@B0#5pIF(0Q$3Pl$3N*AfCM$3N*BA0SEhF0#AdJC'4PCJd*,ep `DR0Q$3Pl$3N*AfCM$3N*BAGTC(4SFfK[G`d*I5"NC'9Q$3N[Afa`)#pZEfjP)'4 NC@B0I5"NC@B0,dF0H`d*,epRFb"PH'0S)'4NC@B0#5pIFf-0#AX0#3PIE(!J,h0 dFQpVC5"ZC3d*#AX0#3N*Afpc)(0PG'pfCA*`FQPZG!d*#3PICh-JFf9dCh*KH3d *#3N[Afa`)#pcG(*[Df8JC'4PCJd*#AdJD@B0#AdJC'4PCJd*,ep`F`d*H`d*#9p cB`d*#A0dFQpVC3d*I5"NC'9Q$3N[Ah"cF`d*H`d*#9pcB`d*#A0c$3Pp)'4NC@B 0#5pIF'TcF`d*H`d*#9pcB`d*#@TcF`d*I5"NC'9Q$3N[Afa`)#pZEfjP)'4NC@B 0I5"NC@B0,fX0H`d*Af0Q)'&cG'pbC5"`Eh!0#5pICQ-0#AX0#3PIE(!J,fCTE'` JEQ80#3Pl$3N*#9p[CL"cCA4[GQ9bF(*TER30#3N*Af0Q)'&XEf&N)("[F#"cCA4 MEAPVBfpXEh)0#3N*,epXF#![CQPXE#"NC'9Q$3N*I5"TCJd*I5"NC'9Q$3N[Ah" Q$3Pl$3N*AfCM$3N*Af9[)(YPEfCTE'ap)(YQD@aXI5"TCQ9XFf80#AdJC'4PCJd *,ep`FfB0#AX0#3PICQ-0#3PKFfK[G`d*I5"NC'9Q$3N[Ah"UFfB0#AX0#3PICQ- 0#3PKGfPNG'KcD'ph$3Pp)'4NC@B0#5pIE(!J,fj[EQ8JC'4PCJep)'4PCJd[5`e l$3PIBh-JBA0dEh*P)("[F!d*,epcB`d*H`d*#9pXF#![Fh4bEfYP)'jP$3N*H`d *#3PIEh-JFf9dEhCPFR"bD@jd$3N*#9pMFb"KE'pKC#"`Eh!JFf9dBfejDf0[E'p b$3N*#5pIE(!J,h0dFQpVC5"NC'9Q$3N*I5"TCJd*I5"NC'9Q$3N[Ah"c$3Pl$3N *Ah0M$3N*Fh4bEfYP$3Pp)'4NC@B0#5pIF(0c$3Pl$3N*Ah0M$3N*Fh-0#AdJC'4 PCJd*,ep`DR0c$3Pl$3N*Ah0M$3N*DR0c$3Pp)'4NC@B0#5pIE(!J,fj[EQ8JC'4 PCJep)'4PCJd[H!el$3N[AfGQ)'9iBfJJC'4PCJd*CQPZC'0YH@YMGA0dEfeMEfa [FJd*,epTCL"PH'0S)'4NC@B0#5pICQ-0#AX0#3PIE(!J,fCTE'`JEQ80#3Pl$3N *#9p[CL"cCA4[GQ9bF(*TER30#3N*AfPQ)&pRCL!a)'9iBfJJFh9L)(0PG'0eFh4 [E@0[E'pb$3N*#5pIE(!J,fCTE'`JC'4PCJd*#AdJD@B0#AdJC'4PCJd*,ep`CJd *H`d*#9pQB`d*#9pPEb"lC@pQD@aXI5"lCQPXE(dJD@CPE(0P$3Pp)'4NC@B0#5p IF(0Q$3Pl$3N*AfCM$3N*BA0SEhF0#AdJC'4PCJd*,ep`DR0Q$3Pl$3N*AfCM$3N *BAGTC(4SFfK[G`d*I5"NC'9Q$3N[Afa`)#pZEfjP)'4NC@B0I5"NC@B0,eJ0H`d *,epRFb"PH'0S)'4NC@B0#@CTEQ4MEAPVBh9cG'pYBfpXEh)0#5pIDA-JCAKMD#" NC'9Q$3N[Ah0M$3Pl$3N*Afa`)#pcG(*[Df8JEQ80#3Pl$3N*#9p[Fb"cCA4[GQ9 bF(*TER30#3N*AfPc)&pRFb!a)'9iBfJJFh9L)(0PG'0eFh4[E@0[E'pb$3N*#5p IE(!J,h0dFQpVC5"NC'9Q$3N*I5"TCJd*I5"NC'9Q$3N[Ah"c$3Pl$3N*Ah0M$3N *Fh4bEfYP$3Pp)'4NC@B0#5pIF(0c$3Pl$3N*Ah0M$3N*Fh-0#AdJC'4PCJd*,ep `DR0c$3Pl$3N*Ah0M$3N*DR0c$3Pp)'4NC@B0#5pIE(!J,fj[EQ8JC'4PCJep)'4 PCJd[33el$3P`Eh!0I5"NC@B0,f&ZEQpdBA4PF'&RC3el$A9cCA*ND@0d)#pKEQj [G'&dCA"KCf8J-L"MEh"j)'YZEhGZ)(YRCA3JCAKPBhdJHh"[F#"`Eh"p)'PQC@a cC3ep)'4PCJd[@&3JH`d*F'p`)("[F!ep)'4PCJd[C'PcBf&bC!el$3PcBACP)#p NDA0MBA*N8f&fC5"PH'0S)(0dEh*P$3PNDA0MBA*N4'PMG#"LC@GTEJd*,f9ZC&0 dFQPZCb"PH'0S)(0dEh*P$3PRG$-i2`d*H`d*#6)JB@4N$3Pp)'PQ$3PXEf&N$3P cG'p`F'9N$3P`Eh!0)'9ZC!d*C'PcBf&bC&0KGQ8JFQ9cG'pbC3ep)'*TEQ3JC'9 Q$A9cCA*ND@0d)#pNDA0MBA*N4'PMG#!h)'4TBh3JC(9`)'*PCfPZ$A"eG!d[F(* P-cK*EQPdD@&XDATP$AX0#5pPEQ46G(*TEQG-C@jRG'JJC@jN8h4bD@jR)'aPEQG dD#"cG'pbC3d*,fjPGd*eCQBJBR9QCQ9b)$!JC@jN8h4bD@jR6'9ZCh4S)'GPG'P ZG'9bGQ&X)(0dEh*P$3N[EQ9h3R9QCN*eG%CTFR0d)'jPGd*eCQBJ-5"PEQ46G(* TEQG-C@jRG'JJ-5"cG@)JCf9dD@jdCA*fB@`JFh4[FQ80#5pZCAG#G@CQ6'&cG#" ZCAG#G@CQ)'9ZC&0dFQPZCdaPEQGdD#!a)(0eBL!a)'GPG'PZG'9bGQ&X)(0dEh* P$AdJC'9Q$5pcD'PQG%*eCQCPFJel$3PZCAG#G@CQ)$!JEQ9h3R9QCN*eG%CTFR0 d)("eG'PZG'9bGQ&X$3PZCAG#G@CQ6'&cG#!`$3PMGA*bC@jdCQPXC5"bC@&N)'j [G!d*H`d*Fh4[F!d*I5"TCJd*F(9d$AdJC'9Q$6!0H`d*F(*P-cK*EQPdD@&XDAT P$3PYBA*V$3PMGA*bC@jdCQPXC5"ZCAG#G@CQ)(*PB@4cG(*TEQFJCAKMD#"`Eh! 0#AX0#3Pl$3N*#@jPGd*eCQBJC@jN8h4bD@jR)'9a$3N*#AX0#3N*#@0XC@&bG'p YBA*V)(0dEh!0#3N*I5"TCJd*#3PcD'PQG%*eCQCPFJd*#AdJE'p[F!d*I3d*H`d *Fh4[F!d*I5"TCQ9XFf80I5"NC@B0-3el$3P`FQ8c1%PZDA4TB@aTHQ80#5pLC@G TEP0dFQPZCb"PH'0S)(0dEh*P$3PYBA*V$3PMGA*bC@jdCQPXC5"ZCAG#G@CQ)(* PB@4cG(*TEQFJCAKMD#"`Eh!0#AX0#3Pl$3N*#@jPGd*eCQBJBQ9RD@j6G(*TEQF JCA%0#3N*H`d*#3N*,faKH@9b3fpeER3JC(9`)'a[B@3J-5"KC'3JFh4[FQ80#3N *I3d*#3Pl$3N*#3PZCAG#G@CQ)'9ZC&0dFQPZCb"PF3d*#3N*H`d*#3N*#5pXBAP PFN0[G@jd)'4eF#"XEf&N)$%JFh9L)(0dEh*P$3N*#3N*E'&jCA*$Eh9ZG#!`)'9 a$3N*#3N*H`d*#3N*#3PME'9KFR4[E@&bDb"cG'p`$3N*#3N*I5"TCJd*#3N*I5" TCJd*#3Pp)'PQC@acC3d*#3PcD'PQG%*eCQCPFJd*#AdJE'p[F!d*I5"TCJep)'4 PCJdb$AX0#@eKFQX0#AX0#3PMGA*bC@jdCQPXC5"LG@CQCA)JFQ9KC'aTEQ8JEQp d$3N*H`d*#A0dEh!0#3Pp)'PQ$3N*C@jN8h4bD@jR)'9a$3N*H`d*#3PME'9KFR4 [E@&bDb"cG'p`$3N*I5"TCJd*I5"XEfp`$AdJC'9Q$6-0H`d*,f*PCfPZ8h4bD@j R)'9iBfJJFh4[FQ80#5pXBAPPFN0ZG#!a)(0dEh*P$3PYBA*V$3Pl$3N*Bh9bFQ9 ZG'CTE'8JBR9QCQ9b)(*PB@4XD@jP)'j[G!d*#AX0#3PcG'p`$3N*I5"TCJd*#@4 eF#"LC@GTEP0dFQPZCb"PF3d*#AX0#3N*F'p`)#pXBAPPFN0ZG#"NGA!JE'pKC#! a)'&NC#"cG'pbC3d*#Ad0#3Pl$3N*#@9ZC&0dFQPZCb"PF3d*#3Pl$3N*#3PXBAP PFN0ZG#!a)'9a$3N*#3Pl$3N*#3N*BfaPBA*dEfeKFQXJFh4[F!d*#3N*I3d*#3N *H`d*#3N*#5pXBAPPFN0ZG#"NGA!JE'pKC#!a)(0eBL"cG'pbC3d*#3N*I5"TCQ9 XFf80#3N*I5"TCJd*#AdJD@CPE(0P$3Pp)'a[Eh!0I5"NC@B0C@jN$A9cCA*ND@0 d)#pME'P`8Q9ZC'9b6fCQ)$%e)'4TBh3JC(9`)'*PCfPZ$A"eG!el$3N[EL![6L! [Fb![8b![CL![4L![BL![3Jep$AX0#AX0#3PIC'p$E'P`)$%JCA%0#3Pl$3N*#5p IC'p$E'P`)$!JC'4PCL"IC@mJHf9[BfaTF(dJHf0XDA"p)'PQC@acC3d*#AdJD@B 0#3PZCAG`BA4S$3Pp)'4PCJep)'C[FQ&XE!d[9()J,h"[F#"XEf&N)'4PCJd[3Q) JHhdJC'9Q$5p#3L![F'p`)'a[B@3JC'9Q$5p#Cb"l-6)JER"[F(dJC'9Q$5p#E5" l0L"ZF'p`I5"NC@B0,d*M)#p#E5"XEf&N)'4PCJd[3QJJHc3JER"[F(dJC'9Q$@9 ZC!d[6')0H`d*0#"ZF'p`$3Nf)$%JFQpXE!d*F'p`$3Nd)$%JFQpXE!d*F'p`)(" [F#"`Eh!0#6!JCA%0#AX0#3N`)'9a$3N*H`d*#3NS*8&*09p#C@GTENaKH@9b+5! a)#JP38NeAd9ZC%aKH@9b,5dT)'4TFf0KFQ30#3Pp$3N*H`d*#3N0#3N*,f0XDA" 'Eh*hBA*N2b"dFR9P)'4PCJd*#3N0#3N*,e4i)#p`Eh!JE'pKC#"NC@B0#3N*,e4 U)#p`Eh!JE'pKC#"NC@B0#3N*$3N*#@0eFR*PER4ND@0d)'9ZC#"ME'P`8Q9ZC'9 b6fCQ)'*PCfPZ)'*PCfPZ$3N*I5"TCQ9XFf80#Ad0#AX0#3N`)'9a$3N*H`d*#3P cBACP)#pNDA0MBA*N8f&fC5"PH'0S)(0dEh*P$3N*I5"TCJd*I5"TCQ9XFf80I5" LD@jN)'4PCJd[6%)0H`d*C'PcBf&bC&0KGQ8JC(9`)'jeE'`JEQ80#AX0#3PbCA0 dEh*P$3Pp$3Pl$3N*F'p`$3N*BfaTF%C[FRGKFQ3r$3N*H`d*#3PMGA*bC@jdC'P MG!d*#5"PEQ30#3NJC@jN$3N*)'*PCfPZ$3N*#3N*$3N*#5pME'P`4QpbGf&bC$m JCQ&XFf8JC'4PCJd*#AdJD@B0#AdJD@CPE(0P$AdJBQPZC#"NC@B0,e"L$AX0#A" [F#"`Eh!0#6!J+#9"569I4@jN8'&XCA4dC5NJC'PcBf&bC!ep)'*TEQ3JC'9Q$5p 1F!el$3N`)#JP38NeAd9ZC&p1Efj3FQPZG'PZCbdY+5"NDA0MBA*N$AdJBQPZC#" NC@B0,daZ)#p`Eh!JE'pKC#"NC@B0,d&`$5p`Eh!JE'pKC#"NC@B0,d&b$AX0#6F b)'9iBfJJC'Pf$3N`)'4dFQ&ZFfC[FQdJC(9`)'eeE#"PH'0S)'4eF#"YG@`JB@4 N)(0aFR30#@4eF#!a)'ad$3Pl$3N*F'p`)$%0#AdJD@B0#A0PG'CXBA30I5"NC@B 0,deL$AX0#A%0I5"NC@B0,deN$AX0I5"NC@B0,de#$AX0#9%0I5"NC@B0,fjM)$- JC'PMG#"NC@B0EQ-JBQ9RD@i0,h0PG'GbBAN0H`d*F'p`$AdJBQPZC#"NC@B0,h0 PG'0YH@YMEfa[FJel$3Nd)'j`Eh!0I5"LD@jN)'4PCJd[Ff9dBh9cG'pYBfpXEh) 0H`d*-L"ZF'p`$AdJBQPZC#"NC@B0Bh9bFQ9ZG'4TBh3JFQ9KC'pZE(NJF'p`$@9 ZC!ePEQ30Ff9dF'&MDfPZC`dP*89ZC&*PFfpeFQ0P$58P4@jN8(*[E'pR$58P3Q9 RD@j6CA4eF!e"C'pLC9pXCACPE$*I38Ne)#pTEQPdD@&XDATP)'GPG#"PH'9M$8& NEf*PAd0[E'pb5@eKCf9I38Nf)#pTEQPdD@&XDATP)'GPG#"PH'9M$8&NEf*PAdP XE(9cG(*KG'pbAd&*05![D@jTG'PKE'PkC5"RCA3JCAKPB`dP38NeAd*PCfPZAdj [EP"bD@jdD@jR$8j`$6JJ3Qi0*8&*09p#C@GTENGbB@4TC@jd1L!S3QaKBfXJ*L" AD'PdC5N0+%*XB@0V)#BJ9fKTG'8T)$!J-L"#C!eE$6`04NC'48C%4N0'3NC"4MP '1%Bh4MC'08Bd4M0'-NBa4M"&4N9&484&3d9#48&&188i46G&0N8e464&-d8b46& &-%4'4%9%4%4$4%*%383j4$J04$G%0N3e4$4%-d3b4$&%-%0'3d9$4%0$3d*$38- j3cK$0d-f3c9$0%-c3c*$-8-`3NC#48*%3N0#3N*"3MP#1%)h3MC#08)d3M0#-N) a3M!038C"48&%380"3N&"36P"1%%h36C"08%d360"-N%a36!j4MP&183j3cP#18% j16Ni16Fj0MNe163j-cNb16%j-$K'1%8i4$K$1%)i36Jj1$J01$Fi0MJe1$3i-cJ b1$%i-$G'0d8h4$G$0d)h36Fj0cJh0cFf0c8h0$Fc0c)h-6F`0NBf46C%0N-f3MC "0MNf1$Bh0MBf06Bd0M-f-MBa0M!008Be469%08-e3M9"06Ne1$8h06Be068d06- e-M8a06!d4M4&0%3d3c4#0%%d163i0$Fd0M3e0$3d-c3b0$%d-$0'-d8c4$0$-d) c36-j-cJ0-cFc0M-e-c3c-c-b-c%c-$*'-N8b4$*$-N)b36)j-MJb0c)f-M8b0$) c-M)b-6)`-8Ba46&%-8-a3M&"-6Na1$%h-6Ba06%d-6-a-M%a-6!0-%B`46"%-%- `3M""-$N`1$!h-$B`06!d-$-`-M!a-$!02Jd`)#9I3R)0@`d`)$!J06!J-6!`)#9 I3R-0-5!`)$8`)$!J*9p#F`e#4!dP38NeAd9ZC%GbB@4TC@jd$59"569I3Q9RD@j (FQ&ND@9ZG$SJ+%GbC@9Z)#BJ3QaeC5N0+%GbC@9Z)#BJ3QaeC5NJ-#!b)%*N$9X 02!dj16Nj18%j36P#18)j3MP$18-j4$P%183j46P&18Bj4MP'36""-%%a36&"-8% b36*"-d%c360"0%%d369"08%e36C"0N%h36G"0d%i36K"13e"18%j38&"38&* "3N&$380"4%&%384"48&&38C"4N&'3M"#-%)a3M&#-8)b3M*#-d)c3M0#0%)d3M9 #08)e3MC#0N)h3MG#0d)i3MK#13e#18)j3N&*#3N*#3N*$3N0#4%*%3N4#48* &3NC#4N*'3c"$-%-a3c&$-8-b3c*$-d-c3c0$0%-d3c9$08-e3cC$0N-h3cG$0d- i3cK$13e$18-j3d&$380#3d*$3N0$3d0$4%0%3d4$480&3dC$4N0'4$"%-%3a4$& %-83b4$*%-d3c4$0%0%3d4$9%083e4$C%0N3h4$G%0d3i4$K%13e%183j4%&%384 #4%*%3N4$4%0%4%4%4%4%484&4%C%4N4'46"&-%8a46&&-88b46*&-d8c460&0%8 d469&088e46C&0N8h46G&0d8i46K&13e&188j48&&389#48*&3N9$480&4%9%484 &489&48C&4N9'4M"'-%Ba4M&'-8Bb4M*'-dBc4M0'0%Bd4M9'08Be4MC'0NBh4MG '0dBi4MK'13e'18Bj4N&'38C#4N*'3NC$4N0'4%C%4N4'48C&4NC'4Jdq$6`0-$! `-6!b-$)`-c!d-$8`06!f-$F`1$!i-$N`36"#-%)`3c"%-%8`46"'-6!a-6%a-6) a-c%d-63a06%f-6Fa0c%i-6Na36&"-8)a3c&%-830-88a4M)`-M!b-6)b-M-b-c) d-M8b0M)f-MFb1$)j-MNb36*#-N-b3c*%-N8b4M*'-c!c-6-b-c)c-c-d-c8c06- f-cFc1$-i-cNc360#-d)0-d-c4$0&-d8c4M3`0$%d-63b0$-d0$3d0$8d0M3h0$F d1$3j0%%d364#0%-d4$4%0%8d4M8`06!e-68b06-e-c8d068e0M8f06Fe1$8j06N 008%e3M9$08-e4$9&08Be4MB`0M%f-MBb0M-f0$Be0M8f0MBh0MJf1$Bj0N%f3MC #0N-f4$C&0N8f4MF`0c%h-6Fb0c-h0$Fd0c8h0MFh0cF00cJh16G"0d%h3MG$0d3 h4$G&0dBi-$J`1$%i-MJb1$-i0$Je1$8i0MJh1$Ji1$Jj1%%i3MK#1%-i4$K&1%8 i4MN`16%j-6Nb16-j0$Nd168016Bj0cNh16Jj16P"18%j3MP$183j4$P&18C"-%% `36&"-N%c360"0%%e36C"0N%h36K"18%j38&"3N&$380"4%&&38C"4N)`3M&#-N) b3M-03M4#08)e3MC#0d)i3MK#18*"3N*#3N*$3N4#48*&3NB02Jdm$8C'4N9'4%C $4N*'38Bj4MK'0dBf4M9'0%Bc4M*'-8B`48C&489%480&3N9"46P&1%8h46C&088 d460&-N8a46"%4N4&4%4%3d4#4%&%183i$83h4$C%083d4$0%-N3a4$"$4N0&3d4 $3d0#3d&$18-i3cG$0N-e3c4$-d-b3c&$-%*'3N9#4%*$3N*#38)j3MK#0d)f3M9 #0%)c3M*#-8)`$8&'389"4%&$38*"38%j36K"0d%f369"0%%c36*"-8%`18Bj46P %18-j3MP"16Nj1$Nh16Bj06Nd16-j-MNa16!i4MK&1%3i3cK#1%%i16Ji$6Jh1$B i06Jd1$-i-MJa1$!h4MG&0d3h3cG#0d%h16Fi0cFh0MFe0c3h-cFb0c%h-$C'0N8 f4$C$0N)f36Bj0MJf0cBf0M8f0$Bc0M)f-6B`$69'088e4$9$08)e368j06Je0c8 f068e0$8c06)e-68`0%Bd464%0%-d3M4"0$Nd1$3h0$Bd063d0$-d-M3a0$!c4M0 &-d3c3c0#-d%c16-i$6-h-cBc06-d-c-c-M-a-c!b4M*&-N3b3c*#-N%b16)i-MF b0M)e-M3b-c)b-M%b-$&'-88a4$&$-8)a36%j-6Ja0c%f-68a0$%c-6)a-6%`$6" '-%8`4$"$-%)`36!j-$J`0c!f-$8`0$!c-$)`-6!`$6i0-!da)#9I3R)0@`da)$! Z0c8J-#!`)$%J06!J-6!`)#9I3R-0-#if)$!J-5!`)$%J06!J-#!PAd*c$8*%$59 "569I4@jN4h*KC'PPER30*8&*09p#C@GTENGbB@4TC@jd1L!S8'PZDb`J@@9XE'p h,#"(FQ9PELN0+&"TEQXX)&PPE'a[Gb`J4h*PC@iT)$!J-b"#C!eE$6`0-$!`-$! `-$!`-$!`-$!`-$!`-$!`-$!`-$!`-$!`-$!`-$!`-$!`-6!a-$%`-6!a-$%`-6! a-$%`-6!a-$%`-6!a-$%`-6!a-$%`-6!a-$%0-$%`-6!a-$%`-6!b-$)`-M!b-$) `-M!b-$)`-M!b-$)`-M!b-$)`-M!b-$)`-M!b-$)`-M!b-$-`-c!c-$-`-c!c-$- `-c!c-$-`-c!c-$-0-$-`-c!c-$-`-c!c-$-`-c!d-$3`0$!d-$3`0$!d-$3`0$! d-$3`0$!d-$3`0$!d-$3`0$!d-$3`06!e-$8`06!e-$8`06!e-$8`06!e-$80-$8 `06!e-$8`06!e-$8`0M!f-$B`0M!f-$B`0M!f-$B`0M!f-$B`0M!f-$B`0M!f-$B `0M!h-$F`0c!h-$F`0c!h-$F`0c!h-$F`0c!h-$F0-$F`0c!h-$F`1$!i-$J`1$! i-$J`1$!i-$J`1$!i-$J`1$!i-$J`1$!i-$N`16!j-$N`16!j-$N`16!j-$N`16! j-$N`16!j-$N`16""-%%0-%%`36""-%%`36""-%%`36""-%%`36""-%%`36""-%) `3M"#-%)`3M"#-%)`3M"#-%)`3M"#-%)`3M"#-%)`3c"$-%-`3c"$-%-`3c"$-%- 0-%-`3c"$-%-`3c"$-%-`4$"%-%3`4$"%$6i02!d`06!e-$B`0M!f-$B`0c!h-$J `1$!i-$N`16""-%%`36"#-%)`3c"$-%3`4$"&-%8`4M"'-6!a-$%a-6%a-M%b-6- a-c%d-63a06%e-6Ba0`da0c%i-6Ja16%j-8%a36&#-8-a3c&%-83a46&'-8Bb-$) `-M%b-M)b-M-b-c)d-M8b06)f-MBb0c)i-MJb16*"-N%b3M*$-N-b4$*%-N8b4Jd b4M-`-c%c-6-b-c-c-c-d-c8c06-f-cFc0c-i-cNc160"-d)c3M0$-d3c460&-dB d-$3`0$%d-M3b0$-d0$3e0$8d0M3h0$Fd1$3j0$Nd33dd3M4$0%-d4$4&0%Bd4M8 `06%e-68b06-e0$8d068e0M8h06Fe1$8j08%e369#08-e3c9%088e4M9'0M!f-6B b0M-f-cBd0M8f0MBf0MFf1!df16Bj0N%f3MC$0N-f4$C&0NBh-$F`0c%h-MFc0c- h0$Fe0cBh0cFh0cJh16G"0d)h3MG$0d3h46G'0dBi-$Ja1$)i-cJc1$3i06Jf1$F i0`di1$Jj1%%i3MK#1%-i4$K&1%Bi4MN`16%j-MNc163j0$Ne16Bj0cNi16Jj16P "18)j3cP%183j46P'36""-8%b36*"-d%d369"0N%h36G"1!e"18&"38*"3d&%384 "48&'3M"#-8)b3M)02Jdm$80$3d0$3N0#3d*$380"3d&$18-j3cK$1%-h3cG$0N- f3c9$08-d3c4$-d-b3c*$-8-a3c"$-%*'3N9#48*%3N4#3d*#3N*#38)j3MP#1%) h$8)h3MC#0N)e3M4#0%)c3M*#-8)a3M""4N&'389"4%&%380"3N&"38&"18%i36K "0d%f369"08%d360"-N%b36&"-%%`18Bj46P%18-j3cP#$6P"16Nj16Ni16Fj0MN f168j0$Nc16)j-MNa16!i4MK&1%8i4$K$1%)i36K"1$Ni1$Jh1$Bi0MJe1$3i-cJ b1$%i-6J`0dBh46G%0d-h3cG#$6G"0cNh1$Fh0cFh0MFe0c3h-cFb0c%h-6F`0NB f46C%0N-f3MC"0N%f16Bi0MFf0MBe0M3f-cBc0M)f-6B`08Be469%08-e3M9#08% e168i$68h06Be068d06-e-M8a06%e-$4'0%8d4$4$0%)d363j0$Jd0c3f0$Bd063 d0$-d-M3a0$!c4M0&-d3c3c0#-d%c16-i-cJc0c-f-c8c0$-c$6-b-c%c-$*'-N8 b4$*$-N)b36)j-MJb0c)f-M8b0$)c-M)b-M)a-M!a4M&&-83a3c&#-8%a16%i-6F a0M%e-63a-c%b-6%a-$"'-%8`4$"$$6"#-%%`16!i-$F`0M!e-$3`-c!b-$%`-!d q$6!0-5!PAd*b$6`00c-h-MFa0c!f4MC&0N3f3cC#0N%f16Bi0MFf0MBe0M3f-cB b0M%f-$9'088e4$9$08)e3M9"06Ne1$8h06Be068d06-e-M8a06!e-$4'0%800%3 d3c4#0%%d163j0$Jd0c3f0$8d0$3c0$-d-M3a0$!c4M0&-d8c4$0$-d)c360"-cN c1$-h-cBc0M-e-c3c-c-c-c)c-6-`-c!b4M*&-N30-N3b3c*#-N%b36)j-MJb1$) h-MBb06)e-M3b-c)c-M)b-6)a-M!a4M&'-88a4$&%-8-a3c&#-8%a36%j-6Ja1$% h-6Fa0M%f-68a0$%d-6-0-6-a-M%b-6%a-6%`-%B`4M"&-%8`4$"%-%-`3c"$-%) `3M""-%%`16!j-$J`1$!i-$F`0c!f-$B`0M!e-$8`06!d-$3`0$!c-$-`-c!b-$) 0-$)`-M!a-$%`-6!a-$%`-$!`-$!`-$!`$6i02!d`-$!`-$!`-$!`-$!`-$!`-$! `-$!`-$!`-6!a-$%`-6!a-$%`-6!a-$%`-6!a-$%`-6!a-$%`-6!a-$%`-6!a-$% `-6!a-$%`-M!b-$)`-Jd`-M!b-$)`-M!b-$)`-M!b-$)`-M!b-$)`-M!b-$)`-M! b-$)`-M!b-$)`-M!c-$-`-c!c-$-`-c!c-$-`-c!c-$-`-c!c-$-`-c!c-$-`-`d `-c!c-$-`-c!c-$-`-c!c-$-`-c!c-$-`-c!d-$3`0$!d-$3`0$!d-$3`0$!d-$3 `0$!d-$3`0$!d-$3`0$!d-$3`0$!d-$3`0$!d-$3`0!d`0$!d-$3`0$!d-$3`0$! d-$3`0$!e-$8`06!e-$8`06!e-$8`06!e-$8`06!e-$8`06!e-$8`06!e-$8`06! e-$8`06!e-$8`06!e-$8`03d`06!e-$8`06!e-$8`06!e-$8`06!e-$802Jdm$8* '3NC#4N-`3c"$-%-`3c"$-%-`3c"$-%-a3c&$-8-a3c&$-8-a3c&$-8-b3c*$-N- b3c*$-N-b3c*$-N-b3c0$-d-c3c0$-d-c3c0$-d-c$8-c3c4$0%-d3c4$0%-d3c4 $0%-d3c4$08-e3c9$08-e3c9$08-e3c9$08-e3cC$0N-f3cC$0N-f3cC$0N-f3cC $0N-f3cG$0d-h3cG$0d-h$8-h3cG$0d-h3cG$0d-i3cK$1%-i3cK$1%-i3cK$1%- i3cK$1%-i3cP$18-j3cP$18-j3cP$18-j3cP$18-j3cP$18-j3d&$380"3d&$380 "$80"3d&$380"3d&$380"3d&$380"3d*$3N0#3d*$3N0#3d*$3N0#3d*$3N0#3d* $3N0#3d*$3N0#3d*$3N0#3d*$3d0$3d0$3d0$3d0$3d0$$80$3d0$3d0$3d0$3d0 $3d0$3d0$3d0$3`dq$6!0-5!PAd*b$9X0-#i`05!`,MFJ-#!`)$%J06!J-6!`)#9 I3R-0-#!`,M!b)$!Z1#!`)$%J06FJ-cBJ*9p#F`d`,M3e)$!J-#ih05!`)$%J-cF J-#!PAd*c$8*%$59"569I4@jN4h*KC'PPER30*8&*09p#C@GTENGbB@4TC@jd1L! S8(9bF'aP,#"5C@3J*L"CC@aXEhFT$5K3GA*`E'8X)&*PC#!Q)&PPE'a[GbNJ-#! c)%*N$9X0-!dm$8C'4N9'4%C$4N*'38Bj4MK'0dBf4M9'0%Bc4M*'-8B`48C&489 %480&3N9"46P&1%8h46C&088d460&-N8a46"%4N4&4%4%3d4#4%&%183i$83h4$C %083d4$0%-N3a4$"$4N0&3d4$3d0#3d&$18-i3cG$0N-e3c4$-d-b3c&$-%*'3N9 #4%*$3N*#38)j3MK#0d)f3M9#0%)c3M*#-8)`$8&'389"4%&$38*"38%j36K"0d% f369"0%%c36*"-8%`18Bj46P%18-j3MP"16Nj1$Nh16Bj06Nd16-j-MNa16!i4MK &1%3i3cK#1%%i16Ji$6Jh1$Bi06Jd1$-i-MJa1$!h4MG&0d3h3cG#0d%h16Fi0cF h0MFe0c3h-cFb0c%h-$C'0N8f4$C$0N)f36Bj0MJf0cBf0M8f0$Bc0M)f-6B`$69 '088e4$9$08)e368j06Je0c8f068e0$8c06)e-68`0%Bd464%0%-d3M4"0$Nd1$3 h0$Bd063d0$-d-M3a0$!c4M0&-d3c3c0#-d%c16-i$6-h-cBc06-d-c-c-M-a-c! b4M*&-N3b3c*#-N%b16)i-MFb0M)e-M3b-c)b-M%b-$&'-88a4$&$-8)a36%j-6J a0c%f-68a0$%c-6)a-6%`$6"'-%8`4$"$-%)`33dq$6`03d0$3d0$3d4$4%0%3d4 $4%0&3d9$480&3d9$4N0'3dC$4N3`4$"%-%3`4$"%-83a4$&%-83a4$*%-N3b4$* %-N3c4$0%-d3c4$0%0%3d4$304$4%083e4$9%083e4$C%0N3f4$C%0N3h4$G%0d3 h4$G%1%3i4$K%1%3i4$P%183j4$P%384"4%&%384"4%*%3N4#4%*%3N4$4%0%3d4 $4%-04%4%4%4%4%4%4%4&4%9%484&4%C%4N4'4%C%4N8`46"&-%8`46"&-88a46& &-88a46*&-N8b46*&-N8c460&-d8c464&0%8d464&0%8e4680469&088e46C&0N8 f46C&0N8h46G&0d8h46G&1%8i46K&1%8j46P&188j46P&389"48&&389"48*&3N9 #48*&3N9$480&3d9$480&4%9%4830484&489&489&489&48C&4N9'48C&4NB`4M" '-%B`4M"'-8Ba4M&'-8Ba4M*'-NBb4M*'-dBc4M0'-dBc4M4'0%Bd4M4'0%Be4M9 '08Be4M804MC'0NBf4MC'0NBh4MG'0dBh4MK'1%Bi4MK'1%Bj4MP'18Bj4MP'38C "4N&'38C"4N*'3NC#4N*'3NC$4N0'3dC$4N4'4%C%4N4'4%C&4N804N9'48C&4NC '4NC'$6i0-!da)#9I3R)02!e&088d460&-N8a46"%4N4&4%4%3d4#4%&%183i4$G %0N3e4$4%-d3b4$&%-%0'3d9$4%0$3d*$38-j3cK$0d-f3c9$0%-c3c*$-8-`3NC #43e#4%*$3N*#38)j3MK#0d)f3M9#0%)c3M*#-8)`38C"48&%380"3N&"36P"1%% h36C"08%d360"-N%a36!j4MP&183j3cP#18%j16Ni16Fj0Jdj06Nd16-j-MNa16! i4MK&1%3i3cK#1%%i16Ji1$Fi0MJe1$3i-cJb1$%i-$G'0d8h4$G$0d)h36Fj0cJ h0cFf0c8h0$Fc0c)h-6F`0NBf43df4$C$0N)f36Bj0MJf0cBf0M8f0$Bc0M)f-6B `08Be469%08-e3M9"06Ne1$8h06Be068d06-e-M8a06!d4M4&0%3d3c4#0%%d163 i0$Fd0Jdd063d0$-d-M3a0$!c4M0&-d3c3c0#-d%c16-i-cFc0M-e-c3c-c-b-c% c-$*'-N8b4$*$-N)b36)j-MJb0c)f-M8b0$)c-M)b-6)`-8Ba43da4$&$-8)a36% j-6Ja0c%f-68a0$%c-6)a-6%`-%B`46"%-%-`3M""-$N`1$!h-$B`06!d-$-`-M! a-$!02Jdm$88e46C&0N8f46C&0N8f46C&0N8h46G&0d8h46G&0d8h46G&0d8i46K &1%8i46K&1%8i46K&1%8j46P&188j46P&188j46P&189"48&&389"$89"48&&389 "48&&3N9#48*&3N9#48*&3N9#48*&3d9$480&3d9$480&3d9$480&4%9%484&4%9 %484&4%9%484&489&489&489&489&489&$89&48C&4N9'48C&4N9'48C&4N9'4M" '-%B`4M"'-%B`4M"'-%B`4M&'-8Ba4M&'-8Ba4M&'-8Ba4M*'-NBb4M*'-NBb4M* '-NBb4M0'-dBc$8Bc4M0'-dBc4M0'-dBd4M4'0%Bd4M4'0%Bd4M4'0%Be4M9'08B e4M9'08Be4M9'08Bf4MC'0NBf4MC'0NBf4MC'0NBh4MG'0dBh4MG'0dBh$8Bh4MG '1%Bi4MK'1%Bi4MK'1%Bi4MK'18Bj4MP'18Bj4MP'18Bj4MP'38C"4N&'38C"4N& '38C"4N&'3NC#4N*'3NC#4N*'3NC#4N*'3dC$$8C$4N0'3dC$4N0'3dC$4N4'4%C %4N4'4%C%4N4'4%C%4N9'48C&4N9'48C&4N9'48C&4NC'4NC'4NC'4Jdq$6`0-$! `-6!b-$-`0$!d-$8`0M!h-$J`16""-%)`3c"$-%3`46"'-6!a-6%b-6-a0$%d-68 a0M%h-6Ja16&"-8)a3c&%-83a46&'-M!b-6)b-M-0-M3b06)e-MBb0c)i-MNb36* #-N-b4$*%-N8b4M-`-c%c-M-c-c3c06-e-cBc0c-i-cNc360#-d-c4$0%-d8c4M3 `0$%d-M3c0$3d063e0$B00$Fd1$3j0%%d3M4$0%3d464&0%Be-$8a06)e-c8d068 e0M8f06Fe1$8j08%e3M9$083e469&08Bf-$Ba0M)f-cBd0M8f0MBf0MFf1$Bj0N% 00N)f3cC%0N8f46C'0c!h-6Fb0c-h0$Fe0cBh0MFh0cJh16G"0d)h3cG%0d8h4MG '1$!i-6Jb1$-i0$Je1$Bi0cJh1$Ji16K"1%)i3cK%1%801%Bi4MN`16%j-MNc163 j06Nf16Fj0cNi16Nj36P#18-j4$P&18Bj4N%`36&"-N%c364"08%f36G"0d%i36P "38ż"4%&&38C"4N)`3M%03M*#-d)d3M9#0N)h3MK#1%)j3NN*$3N4#48* '3c"$-%-a3c*$-d-d3c9$0N-h3cK$1%-j3d&$3N0$$6i0-!da)#9I3R)0@`d`)$! Z-$3J-5!`)$%J06!J-6!`)#9I3R-0-#!a)$!Z1#!`)$%J06!J06!J*9p#F`d`,MN J-#ij)$!J-#!a)$8`)$!J*9p#F`e#4!dP38NeAd9ZC%GbB@4TC@jd$59"569I3Q9 RD@j(FQ&ND@9ZG$SJ+&*KD@jLEhFT$5K5B@PZBQph+5!`)$BJ3Q30@`dm$8C'4N9 '4%C$4N*'38Bj4MK'0dBf4M9'0%Bc4M*'-8B`48C&489%480&3N9"46P&1%8h46C &088d460&-N8a46"%4N4&4%4%3d4#4%&%183i$83h4$C%083d4$0%-N3a4$"$4N0 &3d4$3d0#3d&$18-i3cG$0N-e3c4$-d-b3c&$-%*'3N9#4%*$3N*#38)j3MK#0d) f3M9#0%)c3M*#-8)`$8&'389"4%&$38*"38%j36K"0d%f369"0%%c36*"-8%`18B j46P%18-j3MP"16Nj1$Nh16Bj06Nd16-j-MNa16!i4MK&1%3i3cK#1%%i16Ji$6J h1$Bi06Jd1$-i-MJa1$!h4MG&0d3h3cG#0d%h16Fi0cFh0MFe0c3h-cFb0c%h-$C '0N8f4$C$0N)f36Bj0MJf0cBf0M8f0$Bc0M)f-6B`$69'088e4$9$08)e368j06J e0c8f068e0$8c06)e-68`0%Bd464%0%-d3M4"0$Nd1$3h0$Bd063d0$-d-M3a0$! c4M0&-d3c3c0#-d%c16-i$6-h-cBc06-d-c-c-M-a-c!b4M*&-N3b3c*#-N%b16) i-MFb0M)e-M3b-c)b-M%b-$&'-88a4$&$-8)a36%j-6Ja0c%f-68a0$%c-6)a-6% `$6"'-%8`4$"$-%)`36!j-$J`0c!f-$8`0$!c-$)`-6!`$6i0-3d`$6!0-5!PAd* b$6%02!d`0c!i-$N`36"#-%-`4$"&-%Ba-$%a-6)a-c%d-68a0M%h-6Ja16&"-8) a3c&%-88a4M)`-M%b-M)c-M3b06)f-MFb1$)j-N%b3M*$-N3b43db4M-`-c%c-M- c-c3c06-f-cFc1$-j-d%c3M0$-d3c460'0$!d-63b0$-d0$3e0$Bd0c3i0$Nd364 #0%-d4$4&0%Be-$8a06)e-c8d068e0Jde0c8i06Ne369#08-e4$9&08Bf-$Ba0M) f-cBd0M8f0MBh0MJf16C"0N)f3cC%0N8f4MF`0c%h-MFc0c3h06Ff0cFh1$Fj0d% h3MG$0d3h43dh4MJ`1$%i-MJc1$3i06Jf1$Fi1$Jj1%%i3MK$1%3i46K'16!j-6N b16-j0$Ne16Bj0cNi16Nj36P#18-j4$P&18C"-%%a36*"-d%d369"0Je"0d%i36P "38ż"4%&&38C#-%)a3M*#-d)d3M9#0N)h3MK#18*"3N*#3d*%3N9#4N-`3c& $-N-c3c4$08-f3cG$1%-j3d&$3N0$3d4$43e$4N3`4$&%-N3c4$4%083f4$G%1%3 j4%&%3N4$4%4%484'46"&-88b460&0%8e46C&0d8i46P&389#480&4%9&48C'-%B a4M*'-dBd4M9'0Je'0dBi4MP'38C#4N0'4%C&4NB02Jd`$6!0-5!PAd*b$6%02!d `-$!`-$!`-$!`-$!`-$!`-$!`-$!`-$!`-$!`-$!`-$!`-$!`-6!a-$%`-6!a-$% `-6!a-$%`-6!a-$%`-6!a-$%`-6!a-$%`-6!a-$%`-3d`-6!a-$%`-6!a-$%`-6! a-$%`-6!a-$%`-6!a-$)`-M!b-$)`-M!b-$)`-M!b-$)`-M!b-$)`-M!b-$)`-M! b-$)`-M!b-$)`-M!b-$)`-Jd`-M!b-$)`-M!b-$)`-M!b-$)`-M!c-$-`-c!c-$- `-c!c-$-`-c!c-$-`-c!c-$-`-c!c-$-`-c!c-$-`-c!c-$-`-c!c-$-`-c!c-$- `-`d`-c!c-$-`-c!c-$-`0$!d-$3`0$!d-$3`0$!d-$3`0$!d-$3`0$!d-$3`0$! d-$3`0$!d-$3`0$!d-$3`0$!d-$3`0$!d-$3`0$!d-$3`0!d`0$!d-$8`06!e-$8 `06!e-$8`06!e-$8`06!e-$8`06!e-$8`06!e-$8`06!e-$8`06!e-$8`06!e-$8 `06!e-$8`06!e-$8`06!e-$B`0Jd`0M!f-$B`0M!f-$B`0M!f-$B`0M!f-$B`0M! f-$B`0M!f-$B`0M!f-$B`0M!f-$B`0M!f-$B`0M!f-$B`0M!f-$B`0M!h-$F`0c! h-$F`0`d`0c!h-$F`0c!h-$F`0c!h-$F`0c!h-$F`0c!h-$F`0`dq$6`04NC'48C %4N0'3NC"4MP'1%Bh4MC'08Bd4M0'-NBa4M"&4N9&484&3d9#48&&188i46G&0N8 e464&-d8b46&&-%4'4%9%4%4$4%*%383j4$J04$G%0N3e4$4%-d3b4$&%-%0'3d9 $4%0$3d*$38-j3cK$0d-f3c9$0%-c3c*$-8-`3NC#48*%3N0#3N*"3MP#1%)h3MC #08)d3M0#-N)a3M!038C"48&%380"3N&"36P"1%%h36C"08%d360"-N%a36!j4MP &183j3cP#18%j16Ni16Fj0MNe163j-cNb16%j-$K'1%8i4$K$1%)i36Jj1$J01$F i0MJe1$3i-cJb1$%i-$G'0d8h4$G$0d)h36Fj0cJh0cFf0c8h0$Fc0c)h-6F`0NB f46C%0N-f3MC"0MNf1$Bh0MBf06Bd0M-f-MBa0M!008Be469%08-e3M9"06Ne1$8 h06Be068d06-e-M8a06!d4M4&0%3d3c4#0%%d163i0$Fd0M3e0$3d-c3b0$%d-$0 '-d8c4$0$-d)c36-j-cJ0-cFc0M-e-c3c-c-b-c%c-$*'-N8b4$*$-N)b36)j-MJ b0c)f-M8b0$)c-M)b-6)`-8Ba46&%-8-a3M&"-6Na1$%h-6Ba06%d-6-a-M%a-6! 0-%B`46"%-%-`3M""-$N`1$!h-$B`06!d-$-`-M!a-$!02Jd`$6%J*9p#FJdm$6! `-$%`-M!c-$3`06!f-$F`1$!j-%%`3M"$-%3`46"'-6!a-6%b-6-a0$%e-6Ba0c% i-6Na36&#-8-a4$&&-8Bb-$)a-M)b-c)d-M8b0M)h$6)i-MNb36*#-N-b4$*&-NB c-$-a-c)c-c-d-c8c0M-h-cJc160"-d)c3c0%-d8c4M3`0$%d-M3c0$3d063f0$F d1$3j0%%d3M4$0%3d464'$68`06%e-M8c063e068f06Fe1$8j08%e3M9$083e469 '0M!f-6Bb0M-f0$Be0MBf0cBi0MNf36C#0N-f4$C&0NBh-$Fa0c)h-cFd0c8h0MF h$6Fi0cNh36G#0d-h4$G&0dBi-$Ja1$)i-cJd1$8i0MJh1$Ji16K"1%)i3cK%1%8 i4MN`16%j-MNc163j06Nf16Fj1$Nj18%j3MP$183j46P'$8%`36&"-N%c364"08% f36G"1%%j38&"3N&$384"48&'3M"#-8)b3M0#0%)e3MC#0d)i3MP#38*#3N0#4%* &3NC$-%-a3c*$-d-d3c9$0N-h$8-i3cP$380#3d0$4%0&3dC%-%3a4$*%-d3d4$9 %0N3h4$K%184"4%*%3d4%4%9%4N8`46&&-N8c464&088f46G&1%8j48&&3N9$484 &489'$8B`4M&'-NBc4M4'08Bf4MG'1%Bj4N&'3NC$4N4'48C'$6i0-!da$6!0-5! PAd*b$6!02!e'4NC&4N4'3dC#4N&'18Bi4MG'0NBe4M4'-dBb4M&'-%9'489&4%9 $48*&388j46K&0d8f469&0%8c46*&-88`4%C%484%4%0%3N4"4$P%1!e%0d3f4$9 %0%3c4$*%-83`3dC$480%3d0$3N0"3cP$1%-h3cC$08-d3c0$-N-a3c"#4N*&3N4 #3d*#3N)i3MG#0N)e3M4#-d)b3M&#-!e"4N&&384"3d&&"18%i36G"0N% e364"-d%b36&"-$P'188j4$P$18)j36Nj16Jj0cNf168j0$Nc16)j-6N`1%Bi46K %1%-i3MK"1$Ni1!di0cJf1$8i0$Jc1$)i-6J`0dBh46G%0d-h3MG"0cNh1$Fh0cB h06Fd0c-h-MFa0c!f4MC&0N3f3cC#0N%f16Bi0MFf0MBe0M3f-cBb0M%f-!de4M9 &083e3c9#08%e168i06Fe0M8e063e-c8b06%e-$4'0%8d4$4$0%)d363j0$Jd0c3 f0$8d0$3c0$)d-63`-dBc460%-d-c3M0"-cNc1!dc0c-f-c8c0$-c-c)c-6-`-NB b46*%-N-b3M*"-MNb1$)h-MBb06)d-M-b-M)a-M!a4M&&-83a3c&#-8%a16%i-6F a0M%e-63a-c%b-6%a-!d`4M"&-%3`3c"#-%%`16!i-$F`0M!e-$3`-c!b-$%`-!d q$6%0-!da)#9I3R)0@`d`)$%J-#!`)$%J06!J-6!`)#9I3R-0-5!a)$!J-#!a)$8 `)$J`)#9I3R-0-5!`,M!b0cNJ-#!`)$%J06!J0M!J*9p#F`da)$!J-5!`)$%J06! J0$!J*9p#F`d`)$!J-5!`)$%J06!J-M!J*9p#F`d`)$%J-5!`)$%J06!J-#!PAd* c$8*%$59"569I4@jN4h*KC'PPER30*8&*09p#C@GTENGbB@4TC@jd1L!S8h4PC@` J3Q&b+3dS8h4PC@`J3Q&b+5!`)$-J3Q30@`dm$8C'4N9'4%C$4N*'38Bj4MK'0dB f4M9'0%Bc4M*'-8B`48C&489%480&3N9"46P&1%8h46C&088d460&-N8a46"%4N4 &4%4%3d4#4%&%183i$83h4$C%083d4$0%-N3a4$"$4N0&3d4$3d0#3d&$18-i3cG $0N-e3c4$-d-b3c&$-%*'3N9#4%*$3N*#38)j3MK#0d)f3M9#0%)c3M*#-8)`$8& '389"4%&$38*"38%j36K"0d%f369"0%%c36*"-8%`18Bj46P%18-j3MP"16Nj1$N h16Bj06Nd16-j-MNa16!i4MK&1%3i3cK#1%%i16Ji$6Jh1$Bi06Jd1$-i-MJa1$! h4MG&0d3h3cG#0d%h16Fi0cFh0MFe0c3h-cFb0c%h-$C'0N8f4$C$0N)f36Bj0MJ f0cBf0M8f0$Bc0M)f-6B`$69'088e4$9$08)e368j06Je0c8f068e0$8c06)e-68 `0%Bd464%0%-d3M4"0$Nd1$3h0$Bd063d0$-d-M3a0$!c4M0&-d3c3c0#-d%c16- i$6-h-cBc06-d-c-c-M-a-c!b4M*&-N3b3c*#-N%b16)i-MFb0M)e-M3b-c)b-M% b-$&'-88a4$&$-8)a36%j-6Ja0c%f-68a0$%c-6)a-6%`$6"'-%8`4$"$-%)`36! j-$J`0c!f-$8`0$!c-$)`-6!`$6i0-#!PAd*b$6`0-$!`-6!b-$-`0$!e-$B`0c! i-$N`36"#-%-`4$"&-%Ba-$%a-6)a-c%d-68a0M%h-6Ja16&"-8)a3c&%-88a4M) `-M%b-M)c-M3b06)f-MF0-MJb16*"-N)b3c*%-N8b4M-`-c%c-M-c-c3c06-f-cF c1$-j-d%c3M0$-d3c460'0$!d-63b0$-d0$3e0$Bd0c3i0$Nd364#0%-d4$4&0%B 006!e-68b06-e0$8e06Be0c8i06Ne369#08-e4$9&08Bf-$Ba0M)f-cBd0M8f0MB h0MJf16C"0N)f3cC%0N8f4MF`0c%h-MFc0c3h06Ff0cF00cJh16G"0d)h3cG%0d8 h4MJ`1$%i-MJc1$3i06Jf1$Fi1$Jj1%%i3MK$1%3i46K'16!j-6Nb16-j0$Ne16B j0cNi16Nj36P#18-j4$P&18B036""-8%b360"0%%e36C"0d%i36P"38ż"4%& &38C#-%)a3M*#-d)d3M9#0N)h3MK#18*"3N*#3d*%3N9#4N-`3c&$-N-c3c4$08- f3cF03cK$180"3d*$3d0%3d9$4N3`4$&%-N3c4$4%083f4$G%1%3j4%&%3N4$4%4 %484'46"&-88b460&0%8e46C&0d8i46P&389#480&4%9&48B04M"'-8Bb4M0'0%B e4MC'0dBi4MP'38C#4N0'4%C&4NB02Jd`)#9I3R)0@`d`)$!J06!J-6!`)#9I3R- 0-5!`)$8`)$F`)#9I3R-0-#!`)$8`)$!J*9p#F`e#4!dP38NeAd9ZC%GbB@4TC@j d$59"569I3Q9RD@j(FQ&ND@9ZG$SJ+&PPE'a[Gb!Q)%pbB@jRC5"5B@4TB@`T$5K CC@aXEhFJ*L"2FQ&ZCf8J8Q&ND@&X+5!a)$)J3Q30@`d`$6`0-$!`-6!a-$)`-c! d-$8`0M!f-$F`1$!j-%%`3M"$-%-`4$"&-%Ba-$%a-6)a-c%c-63a06%f-6Fa1$% j-8%a3M&$-83a4$&&-8Bb-$)a-M)0-M-b0$)e-MBb0c)i-MNb36*#-N)b3c*%-N8 b4M-`-c%c-M-c-c3c06-f-cFc1$-j-d%c3M0$-d3c460&-dBd-$3a0$)d-c3d0$8 d0M3h0$J00$Nd364#0%-d4$4&0%Be-$8a06)e-c8d068e0M8h06Je169"08)e3c9 %088e4MB`0M!f-6Bb0M-f0$Be0MBf0cBi0MNf36C#0N-f4$C&0NB00c!h-6Fb0c- h0$Fe0cBh0cFi0cNh36G#0d-h4$G&0dBi-$Ja1$)i-cJd1$8i0MJh1$Ji16K"1%) i3`dq$6`04NC'4NC'4NC'48C&4N9'48C&4N9'48C%4N4'4%C%4N4'4%C$4N0'3dC $4N0'3dC#4N*'3NC#4N*'3NC"4N&'38C"4N&'38Bj4MP'18Bj4MN04MP'1%Bi4MK '1%Bi4MK'0dBh4MG'0dBh4MG'0NBf4MC'0NBf4MC'08Be4M9'08Be4M9'0%Bd4M4 '0%Bd4M0'-dBc4M0'-dBc4M*'-NBb4M)04M*'-NBa4M&'-8Ba4M&'-%B`4M"'-%B `4M"&4N9'48C&4N9'48C&489&489&489&484&4%9%484&4%9%480&3d9$480&3d9 #48*&3N9#48)048*&389"48&&389"46P&188j46P&188j46K&1%8i46K&1%8i46G &0d8h46G&0d8f46C&0N8f46C&03dq$6!0-5!PAd*b$9X0-#!`)$%J-#!a)$8b)$% j)#9I3R-0-#!`,M8e)$!Z15!`)$%J06!J-6!`)#9I3R-03N30*8&*09p&EQ4(FQ& ND@9ZG!dP38NeAd*PCfPZ4h*KC'PPER3k)#KCC@aXEhFJ*L"3GA*`E'8J8Q&ND@& X+3dS@@9XE'ph)#BJ8(9bF'aP)&*KC'PKE#NJ-5!b)%*N$9X02!d`-$!a-$)`-c! d-$8`0M!h-$J`16""-%)`3c"%-%8`4M%`-6%a-M%c-63a06%f-6Fa1$%j-8%a3M& $-83a46&'-M!b-6)b-M-b0$)e-MBb0`db1$)j-N%b3M*$-N3b46*'-c!c-6-b-c- c0$-e-cBc0c-i-cNc360#-d-c4$0&-dBd-$3a0$)d-c3d0$8d0M3h0$Jd164"0%) d3c4%0%8d4Jde-$8a06)e-c8d068e0M8h06Je169"08)e3c9%088e4MB`0M%f-MB c0M3f06Bf0MFf1$Bj0N%f3MC$0N3f46C'0c!h-6Fb0c-h0$Fe0cBh0`dh1$Fj0d% h3MG$0d3h46G'1$!i-6Jb1$-i0$Je1$Bi0cJi1$Ni36K#1%-i4$K&1%Bj-$Na16) j-cNd168j0MNh16Jj16P"18)j3cP%188j4Je"-%%a36*"-d%d369"0N%h36K"18& "38*"3d&%389"4N)`3M&#-N)c3M4#08)f3MG#1%)j3NN*$3N4#48*'3c"$-8- b3c0$0%-e3cC$0`e$1%-j3d&$3N0$3d4$480'4$"%-83b4$0%0%3e4$C%0d3i4$P %384#4%0%4%4&4%C&-%8a46*&-d8d469&0N8h46K&189"48*&3d9%489&4Je'-%B a4M*'-dBd4M9'0NBh4MK'18C"4N*'3dC%4N9'4Jdq$6`0-63a06%f-6Fa1$%j-8% a3M&$-83a46&'-8Bb-$)a-M)b-c)d-M8b0M)h-MJb16*"-N%b3M*$-N3b46*'-c! c-6-b-c-c0$-e-cBc0M-h-cJ0-cNc360#-d-c4$0&-dBd-$3a0$%d-M3c0$3d063 f0$Fd1$3j0%%d3M4$0%3d4$4&0%Be-$8a06)e-c8d068e0M8h06Je1$8j08%e3M9 $0830088e4MB`0M%f-MBc0M3f0$Be0MBf0cBi0MNf36C#0N-f4$C&0NBf4MF`0c% h-MFc0c3h06Ff0cFh1$Fj0d%h3MG#0d-h4$G&0dBi-$Ja1$)01$-i0$Je1$Bi0MJ h1$Ji16K"1%)i3cK%1%8i4MN`16%j-MNb16-j0$Ne16Bj0cNi16Nj36P#18-j4$P %188j4N%`36&"-N%c364"08%f36F036K"18%j38&"3N&$384"48&'3M"#-8)b3M0 #0%)d3M9#0N)h3MK#18*"3N*#3d*%3N9#4N-`3c"$-8-b3c0$0%-e3cC$0d-i3cP $380#3d)03d0$4%0&3dC%-%3a4$*%-d3d4$9%0N3h4$G%1%3j4%&%3N4$4%4%484 '46"&-88b46*&-d8d469&0N8h46K&189"48*&3d9%489&489'4M!04M&'-NBc4M4 '08Bf4MG'1%Bj4MP'38C#4N0'4%C&4NB02Jdm$8&&"38%j36K"0d%h36C"08% e364"-d%c36*"-8%a36!j4MP'188j4$P%18-j3MP#18%j16Nj16Jj0cNh16Bj06N e163j-cNc16)j-6Na$6N`1%Bi4MK&1%3i4$K$1%)i3MK"1$Ni16Ji1$Fi0cJf1$8 i06Jd1$-i-cJb1$%i-6J`0dBh4MG&0d3h4$G$0d)h3MG"0cNh16Fi0cFh0cFf$6F e0c8h0$Fc0c-h-MFa0c%h-$C'0NBf46C%0N3f3cC#0N)f36Bj0MNf1$Bh0MFf0MB e0M8f0$Bc0M)f-MBa0M!f-$9'088e469%08-e3c9#$69"08%e168i06Je0c8f06B e068d063e-c8b06)e-68`06!d4M4&0%8d4$4$0%-d3M4"0%%d163i0$Jd0c3f0$B d063d0$3d-c3b0$)d-63`$63`-dBc460&-d3c3c0$-d)c360"-cNc1$-i-cFc0M- f-c8c0$-d-c-c-M-b-c%c-$-`-NBb46*&-N3b3c*$-N)b36*"-MNb1$)i-MFb0M) f$6)e-M3b0$)c-M)b-6)a-M!a4M&'-88a4$&%-8-a3M&#-8%a16%j-6Ja0c%h-6B a06%e-63a-c%c-6)a-6%a-6!`4M"'-%8`4$"%-%-`3M"#$6""-$N`16!i-$F`0c! f-$8`06!d-$-`-c!b-$%`-6!`$6i0-!da)#9I3R)0@`d`)$!Z-$JJ-#if0b!`)$% J06!J-63J*9p#F`da)$%J-#!`)$%J06!J-6!`)#9I3R-03N30*8&*09p&EQ4(FQ& ND@9ZG!dP38NeAd9ZC&p1Efj3FQPZG'PZCbdY$59"569I3Q9RD@j3B@aPG(4P$6! J-L"3BJe3EJe3B`da)'F08'-0-#"R$9"M$6!J-#!`)$!JD`e3B`d`,MFe)'F08'- 0-#ie)'F08'-0-#ib05"R$9"M$6!JC`e3B`e#BJdb)#K#E'&MDb!Q)&GSDA4P+5! Y0$!`0b!d0M3d)$!J-#!a)$!J-#!a)$!J-#"#C`d`)%*#$9"M$6!Z-M8J-#!`)$! JD`e3B`d`,M8J-#!`)$!JD`e3B`d`,MFe)$!J-#!`)'X08'-0-5!`)$!J-#"V$9" M$6!Z-M8J-#ib05!`)$!JD`e3B`d`,M8J-#ie)$!J-#"V$9"M$6!Z0c8J-#ih05! `)$!JD`e3B`da)$%J-#!`)'X08'-03Q)0-L!S8'PZDb`J@@9XE'ph,#"(FQ9PELN J,63`-$FJ0$Bd0#!`)$!J-5!`)$!J-5!`)$!J3QF0-#"#3Je3B`d`)$!Z-M8J-#! `)'X08'-0-#!`,M8J-#!`)'X08'-0-#!`,MFe)$!J-#"V$9"M$6!J-5!`)$!JD`e 3B`d`)$!Z-M8J-#ib05!`)'X08'-0-#!`,M8J-#ie)$!JD`e3B`d`)$!Z0c8J-#i h05!`)'X08'-0-#!a)$%J-#"V$9"M$8*L$6!J-#!`)$!J3QJ0-L!S@@9XE'ph)#B J8(9bF'aP)&*KC'PKE#NJ,63`-$FJ0$Bd0#!`)$!J-5!`)$!J-5!`)$!J3QF0-#" #3Je3B`d`)$!J-#ib05!`)'X08'-0-#!`)$!Z05!`)'X08'-0-#!`)$!Z0c8J-#" V$9"M$6!J-#!a)$!JD`e3B`d`,M)e)$!J-#ib05!`)'X08'-0-#ie)$!J-#ie)$! JD`e3B`d`,MFe)$!J-#ih05!`)'X08'-0-5!`)$%J-#"V$9"M$8*L$6)J+&*KD@j LEhFT)#dd-$!h)$3f0$3J-#!`)$%J-#!`)$%J-#!`)%*R$6!J3N)08'-0-#ib05! `,M%b05!`)$!JD`e3B`d`,M8J-#ib05!`)$!JD`e3B`d`,MFe)$!Z-cFe)$!J-#" V$9"M$6%J-#ie)$!J-#"V$9"M$6!Z-6)e)$!Z-M8J-#!`)'X08'-0-#ib05!`,M8 J-#!`)'X08'-0-#ic0c8J-#ih05!`)$!JD`e3B`d`,M8J-5!`)$!JD`e3B`e#BJd b)#K6G'9PE#"#BA)T)#dd-$!h)$3f0$3J-#!`)$%J-#!`)$%J-#!`)%*R$6!J3N) 08'-0-#!`,M)e)$!Z-6)e)$!JD`e3B`d`)$!Z05!`,M)e)$!JD`e3B`d`)$!Z0c8 J-#ic0c8J-#"V$9"M$6!J-5!`,M8J-#"V$9"M$6!J-#ia-M8J-#ib05!`)'X08'- 0-#!`,M)e)$!Z05!`)'X08'-0-#!`,M-h05!`,MFe)$!JD`e3B`d`)$!Z05!a)$! JD`e3B`e#BJdb)#K3GA*`E'8X)&*PC#!Q)&PPE'a[GbNJ,63`-$FJ0$Bd0#!`)$! J-5!`)$!J-5!`)$!J3QF0-#"#3Je3B`d`,M%b05!`)$!Z-M8J-#"V$9"M$6!Z-M8 J-#!`,M8J-#"V$9"M$6!Z-cFe)$!J-#ih05!`)'X08'-0-#ie)$!J-5!`)'X08'- 0-#ib05!`)$!Z-6)e)$!JD`e3B`d`,M8J-#!`,M)e)$!JD`e3B`d`,MFe)$!J-#i c0c8J-#"V$9"M$6%J-#!`,M8J-#"V$9"M$8*L$6)J+%GbC@9Z)#BJ3QaeC5NJ,63 `-$FJ0$Bd0#!`)$!J-5!`)$!J-5!`)$!J3QF0-#"#3Je3B`d`,M)e)$!Z-6)e)$! Z-6)e)$!JD`e3B`d`,M8J-#ib05!`,M)e)$!JD`e3B`d`,MFe)$!Z-cFe)$!Z-cF e)$!JD`e3B`da)$!Z05!`,M8J-#"V$9"M$6!Z-M8J-#ib05!`,M%b05!`)'X08'- 0-#ie)$!Z05!`,M)e)$!JD`e3B`d`,MFe)$!Z0c8J-#ic0c8J-#"V$9"M$6%J-5! `,M8J-#"V$9"M$8*L$6!J-#!`)$!J3QJ0-L!S@@9XE'ph)#BJ6h*KEQGP)&*KC'P KE#NJ,63`-$FJ0$Bd0#!`)$!J-5!`)$!J-5!`)$!J3QF0-#"#3Je3B`d`,M%b05! `,M)e)$!Z-6)e)$!JD`e3B`d`,M)e)$!Z05!`,M)e)$!JD`e3B`d`,M-h05!`,MF e)$!Z-cFe)$!JD`e3B`d`,M8J-5!`,M8J-#"V$9"M$6!Z-6)e)$!Z-M8J-#ib05! `)'X08'-0-#ib05!`,M8J-#ie)$!JD`e3B`d`,M-h05!`,MFe)$!Z0c8J-#"V$9" M$6!Z05!a)$%J-#"V$9"M$6!J-#!`)$!JD`e3B`d`,M%b05!`,M%b05!`,M)e)$! JD`e3B`d`,M)e)$!Z-M8J-#ie)$!JD`e3B`d`,M-h05!`,M-h05!`,MFe)$!JD`e 3B`d`,M8J-#ie)$%J-#"V$9"M$6!Z-M8J-#ia-M8J-#ib05!`)'X08'-0-#ie)$! Z-M8J-#ie)$!JD`e3B`d`,MFe)$!Z-cFe)$!Z0c8J-#"V$9"M$6%J-#ie)$%J-#" V$9"M$9"#$59"569I4@jN8'&XCA4dC3dP*89ZC&0PG(9`$59"569I3Q9RD@j-BAP PFJda)$%J-5!a)$!J-#!`)$Fj)$%b1#!b068J6')0+%aKH@9b)$%T)%aZ$6!J33d `)%m0-#"R$6J`-#""FJdb)%SJ-#"U)$%JGb!b)%dJ@ed`)'30*8&*-ep1Eh4P1Jd `)%30-#"B8Jdb-6!Z-$J`-5!e0c-Z16)j1#"Y$6)a0#id063c)$8f0bie-$%J-M% c,MFj-68J068i,M-e05!b-6)Z0$Bf)$8e-#if0MFJ3`db-6BZ-M3c0b!e06)Z0M8 e-b!b-M%Z1$%`15!e06%Z1$8j15!b-M8Z-6N`15!e0$NZ-$Ff0#"$$6)b0Lih-68 c)$8d1#i`-68j)$)b0bie-6!f)$8d05ij0M%d)$)b1#ij0MJh)$8d05i`16Ni)%- 0-MBa,MBd-MBJ063j,M)`1$NJ-MNh,M3j0cJJ063j,M)`1$NJ-c-`,M%h-6JJ063 e,M!j16JJ3`dc-c)Z-c8i15!e0$NZ-$Ff0#!c-cBZ06-d-b!e06%Z06Nd1#!c0$! Z16Fd1#!e06%Z0cNc0b"$$6-d-Lih0M3b)$8e-5ie163i)$-d0#if1$Bb)$8e-5i f0M%a)$-d0Li`0cJJ068`,M8c0$3J3`dc0$3Z0$)a-5!e06NZ0M%d-L!c0$3Z-M) b-b!e0c!Z163h0#!c06%Z0cFh0b!e0cFZ06Fd15"$$6-e05if-M%h)$8i-#ij068 J-cBa,M8b-$)J06Jb,M3h163J-cBf,M3b0$BJ06J`,M3b0$JJ3`dc0c%Z0MB`0#! e0cJZ0$-f05!c0c3Z-c%a05!e0c)Z1$Bj0#!c0cBZ0$-b-b!e0MJZ-cBb0L"$$6- i-#i`-6%b)$8h05ia-M)h)$-i0bic0MFi)$8h0bih-$Fe)$-j0#ie16%j)$8h0Li f0$Fa)%-00$!`,M8e0MFJ06Fe,M8b-$3J0$!f,M8b-68J06F`,M-e-$NJ0$!i,M3 d-c8J06Bd,M8a1$BJ3`dd-6BZ-cNf0L!e0$NZ-c3a05!d-M!Z1$-h-5!e-c)Z0c! f-L!d-c!Z16Fh-b!e-6JZ-cN`0b"$$63c0bif0c%a)$8`0bif063J0$3d,MBc-$% J0$Nf,MNa0c-J0$8b,M-a1$%J0$Jf,M8h1$-J3`dd06BZ-cB`15!d0cNZ1$Jd0#! d06NZ16-j1#!d0c-Z-$8i)$3e15id0c8j)$3f0#ie-$Jd)%-00$Be,MFh-L!d0$8 Z0M%j15!d0M!Z-6-i0L!d-M)Z-c8h-5!d0M8Z06!h)$3`-bi`0c!i)%-00$Bh,MB j0#!c1$JZ-c8h0L!d0c8Z0c%c0#!c0c8Z0cBe-L!d0c3Z16%i-5!c06NZ16Na05" $$63h-bia-MJh)$-e-bia0M8a)$3h-#ij0$%f)$-d0Lid0c%c)$3f15ia06)a)$- c15if0$3j)%-00$Bc,M8i05!c-$8Z-c%d)$3e0#ii-cBe)$)h-Lic-$Jh)$3c0bi f0c%a)$)d-Lih0$Nh)%-00$%h,M8i16BJ-M%`,M8c16BJ-cJd,M8i0$)J-6N`,MF b-c)J-c3i)$%i15"$$6-c-bib-M!e)$%i1#id-$-e)$-a1#ie0c-e)$%j-Lij-6! c)$-a-5if1$!i)$)`0Lif-MNd)%-0-c!f,MN`15!b-M!Z163d15!c-$JZ16Bc05! b-cJZ06Fd-b!c-6-Z-$!f0#!b06)Z0M)d1#"$$6)j-5ih-c%i)$)d15ie0cBa)$) f0bib0cBa)$)d15ic0cFc)$)d05ii0MNJ-M8b,MFe0c-J3`db0$NZ-6Jb1#!b-cJ Z-$3d-5!b06)Z0cBa0b!b-6JZ1$)d-5!b0$8Z1$Bj)$)`0#id0$)c)%-0-M-f,M! f-$)J-6Jh,MBh0$8J-M%e,MNh1$BJ-6Ji,M!h-M%J-6Ni,MBa0$-J-6Jj,MNb0cN J3`da0M3Z0MJa-L!a168Z06Ba-b!a-c!Z0MJa0b!b-6NZ0c8b)$%a05ih0MNf)$) e-Lid-M8j)%-0-6!a,MJe-6FJ-MFj,MJf0$%J163Z-M-J-c!j,MNe-c-J1$NZ-6N c)$-d-5i`-cBf)%-01$FZ0c-e)$-e-#i`06!b)$Ja,MJc0M3J-c8h,M8c16-J1$- Z168h-L!c0MFZ0M%c-L"$$6Jf,MJ`0c%J-cJb,MBe0cNJ16)Z0cFa15!c16BZ-cF f15!j0#ih0M!b)$3a-5ii-6Nb)%-016BZ1$%d1#!d-MNZ0c%c0b!j0#i`16Fd)$3 d15ij163J16NZ06-b)$3f0Lif168f)%-016JZ16-e0L!d0cBZ-c!e05!a-$3Z0cB h1#!d1$-Z-c-`1#!a-$NZ-M!i-b!d16!Z1$Jf-L"$$6%b-#ii-$Bf)$8`0Lif06N i)$%c-5ib-6%j)$8b-Lii16Fd)$%c15id-c!a)$8d-#i`0M)i)%-0-63c,M3`0MB J068`,M)f16-J-63h,MFi-$JJ06B`,M-d-c)J-68c,M)i-6FJ06Bj,MNe-c)J3`d a06FZ0c)b-L!e0c8Z-c)a0L!a0M3Z-$%i0#!e0cFZ1$3`-5!a0c!Z16%a-5!e0cB Z0M3h-5"$$6%h05id1$3a)$8h05ih-6Nb)$%h15ij16!j)$8h-Lih-cBi)$%i-Li b0$3b)$8f1#ic0M)f)%-0-6Jd,M3j0cBJ06Fc,MNb16JJ-6Jj,M!`0$3J06Ja,M! i0cBJ-6Ne,MJj0c%J06Ja,M3a1$NJ3`db-$%Z0c)j-b!e1$%Z0$Je-L!b-$BZ0cB f-b!e0cJZ1$-d-L!b-6!Z-$J`-5!e0c-Z16)j1#"$$@B0-5"R$6)`0Lie0MFd)$8 h-#ib1$3f)'d0-M%`,MBa-$-J06B`,MNc16FJ-M!f,MFJ068`,MB`-$FJ-M!d,MN h0MJJ063a,M3e0$BJ3`da168Z-cBf1#!e-cNZ0$Bf0#!a1$8Z-$)h1#!e-cFZ0M% `0L!a0cJZ0c-a0L!e-MJZ16)i05"$$6%h0bij-cBc)$8b0Lic0$-i)%`0-6Jb,M! d063J0$Ja,M!a-6%J6!da0cFZ0$!f-5!d0c!Z-c3`0b!a0c3Z-$)f)$3e15i`-$F e)$%f15ie-6Nc)$3d1#ib0c!j)%-0-6Be,MJh0$%J0$8f,M-e0M8J-6Ba,M%`-M- J0$Bd,MN`0M%J-68e,MJ`-$)J0$Fb,MFb0MBJ3`da06JZ0$8a-L!d1$%Z-$%a-5! a0M%Z-cBh0#!d1$NZ0$Nd0#!a0M3Z1$JJ0$Nh,M8i-$%J3`da1$!Z0M8c0L!e-cB Z068`-L"-$6%i-bib-cJd)$8d0#ih-$)b)$%i0#ii168c)$8e-bif0$Nd)$%i0#i a0MBb)$8f-Lih168d)%-0-6Jf,M)b-$JJ06Bi,M%f-cJJ-6Jj,M!`0$3J06Fe,MF a16)J-6Ne,MJj0c%J06Ff,MBd0c%J3`db-$!Z0$F`-5!e0cBZ1$3e15!b-$3Z06% b15!e0c3Z-MBa-5!b-$BZ06Bh0#!e0c!Z-MJd0L"$$@B0-cFa,M8b0cNJ06Bj,MF e0$3JE3dc0c3Z0c!j-5!e0M)Z0$Bd-5"-$6-h-bie-6Bb)$8e-Lii063a)$-h05i h0MNe)$8d-bij0c-a)$-h1#ic063c)$8c05ie06Ba)%-0-cNj,M-f-cFJ0$Jc,M) f0$8J6!dd-$-Z-$!i15!d0c)Z16)e05"-$6-j0bie0c3c)$3f0#ij0c)d)$-j-Li j-c8J0$8f,MFe0$)J-cJj,M%e0c)J0$3i,M!h-L"$$6-h0Lid-c)c)$3i-5id0c8 J6!dc1$!Z0M!h0b!e-MFZ-c-h15"-$6-h1#id-M!f)$8c-bia-$-j)$-h-Lia16! h)$8c0Li`1$Bc)$-f0bi`1$Fd)$8c1#ia0$!i)%-0-cBb,MBd0MNJ06-j,M3`-$% J-c8i,M-c15!e0$!Z0cNa15!c06-Z0MNj0b!e0$%Z0$8d0L"$$6-e-5ih-6%d)$8 e-5ii06Nj)$-d05if1$!c)$8f0bii16Jh)$-e0bi`-6-e)$8h05ic-M%f)%-0-c8 j,M-c-c%J06Ff,M8i-$JJ-cBb,M3d1$%J06Fh,M!d0$FJ-cBd,MNf0MBJ06Ff,M% a0MNJ3`dc0MFZ0MJc15!e0c3Z16N`-L!c0c!Z-$Bj1#!e0c)Z-c-j-L!c0c%Z06) h15!e0MNZ0c8d0#"$$@B0-6Fh,M%d-5!e0MFZ-6!c0#"Y$6%i-5ii0$Bf)$8e0bi j06Fc)$%h1#if0M8d)$8d0Lia0M!b)$%h0Lib-6-a)$8c0bi`-63b)%-0-6Fa,M8 h-cJJ06)d,MFe-c%J6!da06BZ-6-a0L!d16!Z-M)c05"-$6%e-#ih0M-b)$3h1#i f-M8b)%`0-63e,M!f-c8J0$Je,M%i0M8J-6-h,MF`0MNJ0$Jj,M!j0MJJ-6)i,MN e1$8J0$Jh,M8h-M3J3`da-M)Z16)h0#!d1$BZ-$3i-5!a-68Z1$-e15!d1$%Z-63 c0b!a-63Z0$3d-5!d0c3Z0M3i0L"$$6%a-Lia16!h)$3e1#i`-6-d)$%b-Lih-MJ f)$3d05id1$Fc)$%b-5id0MNc)$3b1#ih-6Ne)%-0-6)b,M-c-$NJ0$%a,MJi068 J-6)d,MNi-L!c168Z16%c)$%b0#if06!f)$-h1#if-68J3`da-M3Z-6Jf0L!c0M% Z-6%i-L!a-M-Z-6)f-L!c0$-Z1$Jf05!a-6FZ0M)e-b!c-MJZ06%`05"$$6%a0Li e0M3j)$-a0Lic1$)a)%`0-6)f,M8`0M-J-c-`,M8f06%J-6-`,M3i-MJJ-c3i,M% j0$8J-6-a,MBh06JJ-cBf,M3i0MBJ3`da-c%Z0MFe1#!c1$)Z-MB`-L"-$6%b1#i a0M-b)$3a0#if0MNa)%`0-6)f,MF`06%J0$)e,MJ`-c3J-6-`,M!i06)J0$-i,MN b0L!a-M8Z-c%c0#!d0$JZ0c-d1#"$$6%b-5id-$-a)$3e0Lif-M%f)$%a0bih06F j)$3f0bia06Ne)$%b-Lib0M3h)$3h05ij-$Fj)%-0-6)d,MFa0MJJ0$Fj,M%e063 J-6)i,M%f-c)J0$Ja,MJ`0M3J-6-b,M)h-M-J0$Ja,M)`16NJ3`da0$BZ-c)b0b! d1$!Z-63j05!a06-Z0$%d-b!d0M3Z0c!h-b!a06NZ0cFf1#!d063Z0$-d05"$$6% f0#ic0$Ni)$3d05ib-M)b)$%f0bii0M)d)$3c05id0cNh)$%f15i`068d)$3b0#i i0c8e)%-0-6Bj,MJe-$FJ0$%a,M8e0$%J-6Bi,MNb-MJJ-cNi,M%f0M3J-6Bi,M8 b06%J-cJd,MNh0c8J3`da0MJZ1$8f05!c0c!Z0MBa15!a0c)Z16Be0L!c06FZ16- h)$%i-5ie1$%e)$-d0bi`0MFi)%-0-6Nb,MFi-M%J-c-h,MJe063J-M!`,MFc06) J-c)f,M-i16FJ-M!e,M3d-$JJ-c%c,MNj0M%J3`db-6!Z1$Fe0#!b16FZ0$Nc05" -$6)b-#id-6Na)$)f-5i`0$%i)%`0-M)b,M%d-M-J-M8c,MBa1$NJ-M)h,MN`1$- J-M3h,MNa16)J-M)h,MF`163J-M-j,MF`-5"$$6)b0bih0c8h)$)c0Lih-6Jf)$) b1#ih-$-f)$)c0#ia-c-i)$)b15ij0M)i)$)c-5if-68c)%-0-M-c,MJh-c%J-M- e,M3e16-J-M-b,M8d0cBJ-M3b,M)a163J-M-a,MBi0L!b0$FZ-6N`-5"$$6)b1#i h-$-f)$)e0bia16Fi)%`0-M-f,M-b06-J-M8d,MBh16-J6!db0$!Z-6!c)$)d-5i `16)i)$)d0#if-$Ni)$)b-Lih-c3d)$)c05ie-b!b-6!Z-63b)%-0-M)i,MJc0M% J-M!b,M-b-63J-M)`,M!b-63J-6Ni,MBh0M-J-M!j,MJi-6)J-6Nj,M-c15"$$6% h1#ib-$%d)$)`-Lic1$Fh)$%d15ic-$8b)$)a15ib-M%i)$%c-5i`-6-J-M3h,M8 b-68J3`da-6%Z0$Ba0b!b0cBZ0MJb15!a-$)Z0c%c-b!c-6!Z-c8a)$Nf,MJa0$J J-c3e,M)a-L"$$6Nc,MBj16JJ-c8e,M%e-c3J16!Z-c%j0b!c0MBZ0c8a0b!j0#i d-MJi)$-h0bib1$Ne)%-016NZ0MBd0L!c16%Z0M!e-5!a-$-Z-M3c05!d-$BZ06J c0#!a-$-Z-$3d0b!d-M-Z-68b0#"$$6%`-Li`06!e)$3c0Lif0c)f)$%`-Lib0$N d)$3e-#ij-M%j)$%`0Lid16%J0$Bb,MNa0cJJ3`da-$FZ1$%f05!d0MJZ163i15! a-$BZ-M)e15!d0c8Z06Ff05!a-6!Z-M!b0#!d1$!Z063h-L"$$6%a0bic0M!c)$3 j-5ie0$NJ6!da-c8Z0$8c05!e-6NZ-cJd1#"-$6%d-bi`-$NJ06-a,MNa-$NJ-63 j,M8`0#!e0$3Z16Bh-b!a063Z0$!i0#!e06JZ0M)`-5"$$6%e05ii0MBe)$8f-bi h-M-c)$%e15ih-6!e)$8f15ib16!e)$%f05i`0cJi)$8h-5i`0cNj)%-0-6Bj,MB e-6JJ06Fb,M3h-6FJ-6Fd,M3j)$8h-5ia0$Bb)$%h0bia0$%J06Bh,M%`-c3J3`e Q$63`-5ie06!i)$8f0#ih-6Fd)'d00$!d,M8c-c)J068j,M-d16%J0$!e,MNb05! e06-Z-cJd-b!d-$JZ0$3c05!e0$FZ1$%h-5"$$63a-bii-6%i)$8c0Lib1$8a)$3 a15ic-6)h)$8b0#ih06-a)$3b0Lie-cBi)$8a-bij06!b)%-00$3i,MJ`063J0$F j,MJi0$3J6!dd06-Z06Fh-b!d0c3Z-6%i0#!d0$NZ16Ni0#!d0M8Z0$-f-b!d06- Z-6%c0#!d06JZ163a-b"$$63e1#ii-6-a)$3d-bi`-c8a)$3e-bij0c8J0$)c,MJ a06%J0$8f,MBb0L!d-$BZ16%d1#"$$63e0bib-M)e)$-i15if-6Bi)$3f1#ij06- c)$-h0Li`-c!c)$3f05ie-$FJ-c8i,M!f168J3`dd06JZ0M%d-b!c-cBZ06)j15! d06BZ168h0#!c-6)Z0c-f15!d0$NZ-6-f1#!b16%Z06Nd15"$$63c1#ia-c8a)$) e15if05!d-6FZ16Jh-L!b-M3Z-c)e)$-i0#ib06)i)$)`15i`-68c)%-0-cFb,M- b-c)J-M!c,M8i-$FJ-c8j,MBf0$8J-M!`,M!f1$%J-c3e,MJh16)J-6Nj,M%d-$) J3`dc-c8Z-c3a-b!a16NZ0MF`0#!c-M8Z-$Bi0L!b-$3Z16!f-L!c-M!Z-6Bd-L! b-63Z16%c1#"$$6-a05ia16-e)$)b0bie0c)e)$-a1#ij0c%b)$)d-Lid1$3f)$- b-Lic06%c)$)e0#if0cNc)%-0-c)d,MNc0L!b068Z-c3b-5!c-MFZ06Jh)$)e05i i0c)c)$-b15ii0$!d)$)e0bia16Fi)%-0-c)h,MFi06NJ-M3j,MF`1$BJ-c)c,M- d063J-M-j,M-`-c-J-c)i,M8i-6)J-M-a,MBa06-J3`dc-c)Z0$)e-L!b-cBZ-cJ h-L!c-MNZ16Fc)$)d0#i`0c8b)$-c-bia063b)$)d15ib0$3h)%-0-c3c,M)b1$% J-MBj,MBe0cBJ-c3d,MFe-M8J-MNc,M8a0MNJ-c8c,M-f1$-J-c%d,M3f-$%J3`d c06FZ0M%J-c)d,M%c0M-J-cBb,M8i-$FJ-c-c,M8d0c8J-cFa,M!f0#!c0$%Z-M- e05"$$6-i0#ie-6Fj)$-e-Lih-$%b)$-i15ie063j)$-f1#ib0cBJ-cN`,M%e-63 J-cJe,M3d-63J3`dc1$NZ068d15!d-$BZ0M3j0b!c1$BZ0cFa-b!d-c!Z0cFd-5! c16BZ-6Jb05!d0$JZ1$Bh0#"$$63`-#id16!d)$3e1#if0cBb)$3`0Lif063a)$3 f0bii1$Je)$3a0#id0c3f)$3h0Lia-$Bh)%-00$%j,M)d0M8J0$Fj,M3b-$8J0$) e,M)a-6-J0$Jb,MNj163J0$-a,M-`1$BJ0$J`,M3a0$BJ3`dd-cBZ-c3e0L!d0cJ Z-$Ne)$3c1#id0MBd)$3h-Lij16%i)$3c1#id0MBd)$3f0bii-M)b)%-00$-j,M- b1#!d06BZ-MN`-L!d-c!Z1$3d0b!d0$JZ0M!b-b!d-c!Z1$3d0b!d-cFZ0$Bh15" $$63c-5ic-$Jf)$3a1#ic-63b)$3b15ie1$8e)$3`-#i`1$Jd)$3b0bi`-$!h)$- i-Lib0M!b)%-00$)e,MBh06)J-c8i,M!`-c-J0$)j,MNa0MNJ-c-e,M-c0MNJ0$3 a,MNh15!c-6BZ-M3j05"$$63d-5id0$Ji)$-b-bie-cNj)$3d-5id0$Ji)$-c-5i d16)j)$3c1#ic-c-j)$-c0bii068d)%-00$-b,M-`-MJJ-cBb,MF`1$JJ0$-c,M3 b168J-cNb,M3`-$3J0$-f,M8d0$3J0$%i,M%i-6FJ3`dd-cFZ-c-j0b!d-MBZ16N f0#!d-cBZ0c3c-b!d-cBZ0$!h05!d-cJZ16-`0#!d0$3Z0M)e0b"$$63d-Li`0$8 c)$3e-bib0$%f)$3d0#if16Bd)$3f-Li`06Bb)$3d0#if16Bd)$3h-5ij-c%c)%- 00$3d,M!j16NJ0$Ff,MN`-L!d0$%Z-cJb0L!d1$%Z0$!i1#!d-cBZ1$Fe1#!d1$3 Z-cNa-L"$$63c-Lie-$%f)$3i0bib0$%J0$)f,MNc0$3J0$Ji,MFf063J0$)a,M- `-5!d1$FZ-cFc0L"$$63a0Lia16Fi)$3i05ij1$%i)$3a-5if-M3i)$3i-bia-c% j)$3`0bij-6-c)$3h1#if-M8b)%-0-cJj,M3i1$BJ06%j,M%i0L"-$6-i-bie16! a)$8c-Lie-$Fd)$-h0bii16!c)$8d0Lie06Fj)$-h15if-6-e)$8f-Lid0M3a)%- 0-cJ`,M3`1$JJ06Be,MJd0$%J-cJb,MBf-M)J06Bj,MJb-$FJ-cJf,M-`0c3J06F `,MJi-6%J3`dc16)Z-6-j0L!e0c)Z0$Fa0b!c16JZ-cBj0L!e0c!Z-MJd0L!d-$% Z068`1#!e0M3Z0c%h0#"$$@B0-M)b,M!`16FJ063d,M8`-c-JE3db-6!Z1$Fe0#! e0$)Z0c%c15"-$6)a-#if0cBf)$8d0#ic0c!i)$)a-Lib-$!j)$8d0Li`16-j)$) a-bii06Fi)$8d0Lif16!d)%-0-M%f,MFh-cNJ063h,MJi-c3J-M%j,MJb-MBJ063 f,MBb0$)J-M)b,M!`16FJ063d,M8`-c-J3`eQ$6-d0bib-$3h)$8d05i`16Ni)'d 0-c3h,M3f16JJ063d,M-`0$8J-c3h,MJf0c3J063c,MBd-6FJ-c3i)$8d-Lih-6- j)%-0-c-f,MBf0MJJ063d,M8`-c-J6!dc-cJZ-$8i0L!e0$BZ-M)f05!c-cNZ16% d-b!e0$BZ1$)c)$-d-5ij-$)f)$8d0bib-M!f)%-0-c3c,MJj-$NJ063h,M!b-6J J-c3e,MBi-$-J063f,M3j-6BJ-c3h,M)`0$FJ063e,M!j16JJ3`eQ$6-f-bia-6! j)$8b0bid0c!e)'d0-cBi,M!a06-J06)e,M3a06NJ6!dc06JZ0M!d-5!e-6NZ16J a-b!c0$FZ0M!b-b!e-6FZ0cNd-L!c-cBZ06-d-b!e-6BZ-M!c0L"$$6-b-5if1$J e)$8a0#ib1$%f)$-`0Lie-6%c)$8a-bib1$Fd)$)j-#ii0c!c)$8a-bib1$Fd)%- 0-M8d,MNd1$JJ06%c,M3i0M-J6!db-c3Z-$Fa15!e-63Z0c3e05!b-6-Z-$Bb05! e-68Z1$!e15!a163Z0M-h1#!e-M-Z-$-J3`da16!Z0MBa-b!e-M8Z-M%h-5"-$6) `-bid06)e)$8c-5ic-63d)$)a1#ib16Jc)$8c-Lij0c%c)$)c-Lij0$8b)$8c0#i h0M!i)%-0-MBd,M8e1$JJ06-i,M!h0$BJ-MNj,M!i1$8J06-h,MBa-$BJ-c-`,M8 `-c)J06-d,M)j0MNJ3`dc0$%Z06!e)$8c-Lie-$Fd)$-e-Lii-cJa)$8c-5ia1$% j)$-f-bia-6!j)$8b0bid0c!e)%-0CJdb0MJZ0$Bj-5!e-$%Z1$Ji)'d0-c!b,MF c-cBJ06!a,MBi16)J-c-h,M-b16BJ06!b,MBi-c-J-cBh,M8e-6-J06%b,M!b1$) J3`dc06)Z-M3a0L!c-MNZ06F`15"-$6-d-#ii0$)b)$-a-Lib-$Bh)$-c1#id06B c)$)j-#ij16Jd)$-c0#if-6)c)$)h-#id06)j)%-0-c!a,M8d-$FJ-M8i,M8b-c- J-M8h,M%c06NJ-M8i,M8b-c-J-M)d,M!f0$-J-MF`,M3e-MNJ3`db-M!Z0MJd-L! b1$FZ0c8`15!b-6JZ0MNe15!c-$8Z0M3e0#!b-6%Z-$!h15!c-M%Z-68c15"$$6) `0Lii16Ji)$-b1#ih0c8f)%`0-M!e,M-`1$)J-c3c,M)j)%`0-6Na,M%b06)J06% b,M)b0b"-$6)a0#ii06%j)$8`-bii-5!b0$%Z0MNc0L!e-$)Z1$Jb-5!b0MJZ0$B j-5!e-$%Z1$Ji)%-0CJda1$NZ0c-c0#!c16JZ16Ba0b"Y$6%i05id-M8e)$3`-Li d0c3c)$%i-#ih1$Bb)$3`0#ij16)i)$%h05if1$)j)$3`0Lie1$-d)%-0-6Ff,MB h0c%J0$%f,M8j-5!a0cBZ-M%c-5!d-MFZ-6Ne-L!a0c3Z-MNa-5!d-cBZ0MFb0L" $$6%i-bif-cBJ0$Be,MFf0cFJ6!da1$NZ0c-c0#!c16JZ16Ba0b"-$@B0-cJd,M- i063J0$-f,MBh-MBJE3dc1$)Z0$Bc0#!d-MFZ-6Ne-L!c1$%Z16Nj05!d-6BZ06N a)$-i-Lij16-f)$3`0Lie1$-d)%-0-cFh,MJj-$-J0$!e,M!e16%J-cFb,MNi06N J0$!b,M-d-6JJ-cBi,MNd-c%J-cNj,M!j0$)J3`dc0c8Z-$3`05!d0M8Z0cBh0b" -$6-i0#ic1$8d)$3c0Lif0c)f)%`0CJda16!Z-6Nh-b!c16%Z1$!c15"Y$6%j0#i f-cFi)$-d0#if1$%i)%`0-6Fh,MFc0c8J-c8j,M-b1$JJ-6Fc,MJb0c)J-cFj,MB h063J-6Fe,M)a15!d-$%Z0$J`-L"$$6%i-#ii06)d)$-j15ih06FJ-6Je,MBb0$- J-cNf,M!d06BJ-6N`,M%j0c-J-cNa,MJ`-cNJ3`eQ$6-i-bid06Fe)$3`-5id1$! b)'d0-cJd,MJd16-J-cFj,MBh063J-cJ`,MNc15!c06NZ-c)i1#!c0M3Z-$-i0b! c0$3Z0MJa1#"$$6-f1#ic0$Bf)$-j-5id0c)e)%`0-cFb,MFi0c%J-cNe,MNa-b! c0cFZ1$)d-5!c16NZ0MN`0b!c1$-Z0$8h05!d-$%Z0$J`-L"$$@B0-#"R$6)j0#i f168c)$3f0bic-cJe)'d0-c!d,MJa16JJ0$3`,M3i16BJ-c)a,M!a16)J0$%f,M) f068J-c-e,MFa1$FJ-cNa,M-f0M-J3`dc0$BZ06%i-b!c0c!Z-MNb-L!c0$)Z-M3 c0#!c0$)Z-6Bi-L!c-MFZ0M%j)$-b0#ib0$3J3`dc-6%Z06Bj0L!c-$8Z-MBj0b! b1$BZ1$Ne0L!b16FZ16)J-MBc,M!d0M8J-c!d,M3d0$FJ3`db0$%Z1$)b-L!c-$N Z-$Nd05!b-M)Z16)c)$-c-#ia0MJh)$)a15ic-M-a)$-e-5ib0$-J3`db-68Z163 i-b!c0M3Z0MBh0#!b-6FZ16Fc-5!c0cNZ1$Na15!b-M-Z16Fb15!c16%Z-cBf-b" $$6)d0bic0c)J0$-`,MJa0$NJ6!db068Z063f0b!d0$3Z0MJj-b!b0M)Z-cFa05! d06NZ-$Ji1#!b0MFZ16)a-L!d0c3Z-$%c-b"$$6)h-#i`16Bb)$3h1#ie-6-a)$) h0#id0$BJ0$Jb,MFa-MNJ-MFj,M-j06JJ0$Jc,M8c0cNJ3`db1$FZ163e05!d1$- Z-M-h15!b16)Z-$F`0#!d0c-Z0cJi-L!b163Z0MNe-b!d0MFZ-c-i05"$$@B0-5" R$6)i0Lib-M!f)$3e-5if0M3a)'d0-MNi,M8j06%J0$)h,M8j)$-a0Lic0MNe)$3 `05ih0M8i)$-b0Lid-6NJ-cJ`,MFj-6JJ3`dc-c)Z-6%i1#!c0M-Z-$%h05!c-MJ Z-M%i15!c0$)Z063c-L!c-63Z0c%j05!c-MNZ0$Nc1#"$$6-`0#ih0$3i)$-a15i e163b)$)j-Lic0c!c)$-a05if-6Nd)$)h1#ih-M!i)$-a0#ih-6Nc)%-0-M8j,MJ j0M8J-c%f,M!f16)J-M-j,MJh-M3J-c)i,M!f1$NJ-M-c,MJh-MBJ-c3f,MJj-b" $$6)c-#i`0$Ff)$-e0bid0MFh)$)b15id0$Fh)$-h-5ic0$)b)$)c-bih-M)e)$- i-5ii0$%h)%-0-M3c,M-j0c)J0$!e,M-a06JJ-M8j,MJb-68J0$)f,M!a06%J-MF a,M8b-6)J0$3i,M8i16-J3`db0c)Z1$Fa-5!d06%Z16Bd-L!b0cBZ-$Ne15!d063 Z1$Jj)$)h15ic168i)$3e0Lia0M-j)%-0-MJb,M)d06BJ0$8f,M!a-cNJ-MJd,M- d06FJ0$8c,MBi16%J-MJf,M)b-$BJ0$8a,MBf0$%J3`eQ$6!JC`db0$JZ0$)a15! c16)Z0cNa0#"Y$6)d05i`0$Fb)$-i-bif0$%f)$)d-5ie16Fc)$-h0#i`0$)a)$) d-bi`-M)b)$-f-bic-6Fe)%-0-M3c,M-j0c)J-c8f,M8f0cFJ-M8c,M!h-6JJ-c8 d,M)d-MJJ-M8b,M-j0MNJ-c3h,M%a1$%J3`db06!Z-M)b)$-d-5id16-c)$)e-bi e16Bi)$-c0Lii0$-e)$)e0bia-M%h)$-c-Lii0MJh)%-0-MBc,M%j0M3J-c)f,MB d-cNJ-MF`,M)d0M)J-c)b,MFd0#!b0cFZ06Ne15!c-6NZ-cBj-5"$$6)f-bid16B d)$-b-5ic-6Na)$)d15ih0c)J-c)j,M%a1$JJ-M3b,M-d0c)J-c3b,M)d-c-J3`d b-c%Z-c)b0L!c06NZ-$3b0L!b-cFZ063h0#!c1$-Z-$3a0b!b0$JZ-6)b)$-j1#i `0$%a)%-0-M8`,MJb-6NJ0$!b,M%f0L!b06)Z0cFa15!d-$BZ06%e1#!b068Z16N f0b!d-6!Z0$N`0L"$$6)e05ih0c%f)$3`0#i`0$%J-M8`,M3d0MNJ-cNi,MNd-6% J-M3i,M3b-6NJ-cNb,MFj-63J3`eQ$8a#$59"569I4@jN6'&jCA)Y,3dP*9"KCf9 8FQ&TE'9b$@GcBACP)'&ZEQpdBA4PF'&RC5"RFQ9cG'pbC5"cD'phF'&RC3dP*94 bB@PXCA)03@4[BQ9I5@aXGA0dFQ&dEh*I38Ne)#pdCA*YD@jKG'8JCf9d)'9iC@- 03@4[BQ9I3fpXEh**E@&RC9p"56BJ,h4PFQeTEQ&dC5"RCA3JCAKPB`e"C'pLC9p XCACPE$*I38Ne)#pdCA*YD@jKG'8JCf9d)'9iC@-0*59&6dB0V#8!!!%!!!"C5`! !@%X!!!$Yrfi)5'`!N!#U!'!'5'`!N!#SEcemJ!(rqMemJ!(rq$emI`P)B@jNFbj 038-#!!!!49"64N&59$8!!!!!!!!!!!!!!!"&8&0'39*803!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!+k[I`-!!-*$!!"D1%!!L'F@,bi!$#mX!(LSh!+Xrrrrh`!%F!" J#Lm-6VVqd(#8@%p-lKL!rqa1ANje6PB!!#m-+'i!%#m-6VSF+NS!@%pQ#$emq-B !&'!3+@i!$!$m+@i!#!%!3Qi!&#KZrra1AL"I6qm!$%l36PB!!#m-+'i!%#m-6VS ElNS!@%pQ#$d!!!!'rrrrr`!!!!!!#!!!!!!!!!!!!!!!!3!!!!!#!!!!!!!!!!! !AUk[I`3!!3!!!!!!!!!%VUpr"%&eG'K69&)J!3!!!!!!!!#ZVhm%5f9j9e088L- "!!!!!!!!!+k[I`4%CA0M9%9B9!%!!!!!!!!!VUpr"&"bCAC35808!3!!!!!!!!! !!&I!9m!!!!!!!BN"L!!4![m-!2rrrrm!!!!!!!!!!!')!!!"L3!!!!!!!!!H!!% !#J!!!!!"L3')!!S!!!!!!!!!!!!drrrrr`!!!!!!Q)')!!!!!!'*!BJ!!!!!!!! !!!")!!!!5!!!!!!!#!!"!!J!!!!!!B,f9!!!!!!!!!!)J!!!r`!!rrrrrrrr!!$ rrrrrc-`!!2rrrrqCQ3!!rrrrrfCQ!!$rrrrr-c-!!2rrrrm!!!!!rrr-c2rr!!$ rrmc-c-`!!2rrc-bCQ3!!rrr-c'CQ!!$rrmc--c-!!2rrc-`!!!!!rrqCQIrr!!$ rrjQCc-`!!2rrQCQCQ3!!rrqCQ@CQ!!$rrjQC-c-!!2rrQCN!!!!!rrpQC[rr!!$ rrfCQc-`!!2rrCQDCQ3!!rrpQCQCQ!!$rrfCQ-c-!!2rrCQB!!!!!rrmc-rrr!!$ rrc-cc-`!!2rr-c1CQ3!!rrmc-fCQ!!$rrc-c-c-!!2rr-c-!!!!!rrm!!2rr!!$ rr`!!c-`!!2rr!!#CQ3!!rrm!!'CQ!!$rr`!!-c-!!2rr!!!!!!!!c-crrrrr!!$ -c2rrc-`!!-c-rrqCQ3!!c-crrfCQ!!$-c2rr-c-!!-c-rrm!!!!!c-c-c2rr!!$ -c-c-c-`!!-c-c-bCQ3!!c-c-c'CQ!!$-c-c--c-!!-c-c-`!!!!!c-bCQIrr!!$ -c*QCc-`!!-c-QCQCQ3!!c-bCQ@CQ!!$-c*QC-c-!!-c-QCN!!!!!c-aQC[rr!!$ -c'CQc-`!!-c-CQDCQ3!!c-aQCQCQ!!$-c'CQ-c-!!-c-CQB!!!!!c-`c-rrr!!$ -c$-cc-`!!-c--c1CQ3!!c-`c-fCQ!!$-c$-c-c-!!-c--c-!!!!!c-`!!2rr!!$ -c!!!c-`!!-c-!!#CQ3!!c-`!!'CQ!!$-c!!!-c-!!-c-!!!!!!!!QCRrrrrr!!# CQIrrc-`!!*QCrrqCQ3!!QCRrrfCQ!!#CQIrr-c-!!*QCrrm!!!!!QCR-c2rr!!# CQFc-c-`!!*QCc-bCQ3!!QCR-c'CQ!!#CQFc--c-!!*QCc-`!!!!!QCQCQIrr!!# CQCQCc-`!!*QCQCQCQ3!!QCQCQ@CQ!!#CQCQC-c-!!*QCQCN!!!!!QCPQC[rr!!# CQ@CQc-`!!*QCCQDCQ3!!QCPQCQCQ!!#CQ@CQ-c-!!*QCCQB!!!!!QCNc-rrr!!# CQ6-cc-`!!*QC-c1CQ3!!QCNc-fCQ!!#CQ6-c-c-!!*QC-c-!!!!!QCN!!2rr!!# CQ3!!c-`!!*QC!!#CQ3!!QCN!!'CQ!!#CQ3!!-c-!!*QC!!!!!!!!CQErrrrr!!" QC[rrc-`!!'CQrrqCQ3!!CQErrfCQ!!"QC[rr-c-!!'CQrrm!!!!!CQE-c2rr!!" QCXc-c-`!!'CQc-bCQ3!!CQE-c'CQ!!"QCXc--c-!!'CQc-`!!!!!CQDCQIrr!!" QCTQCc-`!!'CQQCQCQ3!!CQDCQ@CQ!!"QCTQC-c-!!'CQQCN!!!!!CQCQC[rr!!" QCQCQc-`!!'CQCQDCQ3!!CQCQCQCQ!!"QCQCQ-c-!!'CQCQB!!!!!CQBc-rrr!!" QCM-cc-`!!'CQ-c1CQ3!!CQBc-fCQ!!"QCM-c-c-!!'CQ-c-!!!!!CQB!!2rr!!" QCJ!!c-`!!'CQ!!#CQ3!!CQB!!'CQ!!"QCJ!!-c-!!'CQ!!!!!!!!-c2rrrrr!!! c-rrrc-`!!$-crrqCQ3!!-c2rrfCQ!!!c-rrr-c-!!$-crrm!!!!!-c2-c2rr!!! c-mc-c-`!!$-cc-bCQ3!!-c2-c'CQ!!!c-mc--c-!!$-cc-`!!!!!-c1CQIrr!!! c-jQCc-`!!$-cQCQCQ3!!-c1CQ@CQ!!!c-jQC-c-!!$-cQCN!!!!!-c0QC[rr!!! c-fCQc-`!!$-cCQDCQ3!!-c0QCQCQ!!!c-fCQ-c-!!$-cCQB!!!!!-c-c-rrr!!! c-c-cc-`!!$-c-c1CQ3!!-c-c-fCQ!!!c-c-c-c-!!$-c-c-!!!!!-c-!!2rr!!! c-`!!c-`!!$-c!!#CQ3!!-c-!!'CQ!!!c-`!!-c-!!$-c!!!!!!!!!!$rrrrr!!! !!2rrc-`!!!!!rrqCQ3!!!!$rrfCQ!!!!!2rr-c-!!!!!rrm!!!!!!!$-c2rr!!! !!-c-c-`!!!!!c-bCQ3!!!!$-c'CQ!!!!!-c--c-!!!!!c-`!!!!!!!#CQIrr!!! !!*QCc-`!!!!!QCQCQ3!!!!#CQ@CQ!!!!!*QC-c-!!!!!QCN!!!!!!!"QC[rr!!! !!'CQc-`!!!!!CQDCQ3!!!!"QCQCQ!!!!!'CQ-c-!!!!!CQB!!!!!!!!c-rrr!!! !!$-cc-`!!!!!-c1CQ3!!!!!c-fCQ!!!!!$-c-c-!!!!!-c-!!!!!!!!!!2rr!!! !!!!!c-`!!!!!!!#CQ3!!!!!!!'CQ!!!!!!!!-c-!!1lZ!!!!!!!!hGd!!!!!!!# lZ`!!!!!!!+UU!!!!!!!!L)J!!!!!!!"hG`!!!!!!!&99!!!!!!!!4%3!!!!!!!! L)J!!!!!!!"%4!!!!!!!!!!$ZlJ!!!!!!!0hG!!!!!!!!ZlX!!!!!!!#UUJ!!!!! !!)L)!!!!!!!!GhF!!!!!!!"993!!!!!!!%4%!!!!!!!!)L)!!!!!!!!4%3!!!!! !!!!!lZi!!!!!!!$Gh3!!!!!!!,Zl!!!!!!!!UUS!!!!!!!#)L!!!!!!!!(Gh!!! !!!!!998!!!!!!!"%4!!!!!!!!#)L!!!!!!!!%4%!!1lZlZlZlJ!!hGhGhGhG!!# lZlZlZlX!!+UUUUUUUJ!!L)L)L)L)!!"hGhGhGhF!!&99999993!!4%4%4%4%!!! L)L)L)L)!!"%4%4%4%3!!!!!!!!!!!!!!!!'*!BJ!!!!!!BN"L!!$!!b6!2VrJ3$ M!2VrN`!!$*8!pIq"!1N!p2q@!!!-P`$ari%!l3$`rjJ!!!bB!1lrJ3$`!1lrQ3! !$*N!l2q"!2)!l2qD!!!8X`$drr8!k[q"!23!k[re!2ArX`!!&,8!m2ri!1MrJ3$ f!1Rrp`$`rlB!!"5h!1crqJ$Rri%!q!$RrrS!lIqh!!!8Z!$Urr`!j[q"!2J!j[r m!1VrZ3!!&,N!k2rq!16rJ3$k!1Arr3$SrlS!!"Dk!1Er!3!!j2q"!2S!j2m"!!$ QrlX!!"#l!-ArJ3$m!12r!!$Nrl`!!!bm!-6rJ3$m!-6r[3!!$,`!a2q"!2`!a2q p!!!-[3$$ri%!r3$#rli!!!bp!-,rJ3$q!-,r[J!!$,i!`Iq"!2i!`Iqr!!!-[J$ "ri%!rJ$"rlm!!!br!-$rJ3$q!-$r`!!!$,m!`2q"!2i!`2r!!!!-`!#rri%!rJ# rrm%!!!c!!,rrJ3$q!,rr`3!!$-%![[q"!2i![[r#!!!-`3#qri%!rJ#qrm)!!!c #!,hrJ3$q!,hr``!!$-)![Iq"!2i![Ir$!!!-``#mri%!rJ#prm-!!!c$!,crJ3$ q!,cra!!!$-3![2q"!2d![2r%!!!-a!#mri%!r3#lrm8!!!V&!,,rMJ#crm8!!!V &!,$rN`#[rmB!!!V&!+lrPJ#ZrmB!!!l'!+crf3$RrpS!VIr'!!!1aJ#Vrqi!`2r Z!+[ra`!!$XF!U[rj!+VrqJ#UrmF!!!V(!)(rJIrXrmJ!!!V)!)(rJIrVrmJ!!!V )!)(rJIrUrmN!!!V)!)(rJIrUrmN!!!V*!)(rJIrTrmN!!!V*!)(rJIrSrmS!!!V +!)(rJIrRrmS!!!V+!)(rJIrQrmX!!!V,!)(rJIrPrmX!!!V,!)(rJIrNrm`!!!V -!)(rJIrMrm`!!!V-!)(rJIrLrmd!!!V0!)(rJIrKrmd!!!V0!)(rJIrJrmi!!!V 1!)(rJIrIrmi!!!V1!)(rJIrHrmm!!!V2!)(rJIrGrmm!!!V2!)(rJIrFrp!!!!V 3!)(rJIrErp!!!!V3!)(rJIrDrp%!!!V4!)(rJIrCrp%!!!V5!)(rJIrArp)!!!V 5!)(rJIrArp)!!!V6!)(rJIr9rp-!!!V6!)(rJIr8rp3!!!V8!)(rJIr6rp3!!!V 8!)(rJIr5rp8!!!V9!)(rJIr3rpB!!!V@!)(rJIr2rpB!!!V@!)(rJIr1rpF!!!V A!)(rJIr-rpJ!!!VB!)(rJIr,rpJ!!!VB!)(rJIr+rpN!!!VC!)(rJIr*rpN!!!V C!)(rJIr)rpS!!!VD!)(rJIr'rpX!!!VE!)(rJIr&rpX!!!VE!)(rJIr%rp`!!!V F!)(rJIr#rpd!!!VG!)(rJIr"rpd!!!VG!)(rJIr!rpi!!!VH!)(rJIqqrpm!!!V I!)(rJIqprpm!!!VI!)(rJIqmrq!!!!VJ!)(rJIqkrq%!!!VK!)(rJIqjrq%!!!V K!)(rJIqirq)!!!VL!)(rJIqfrq-!!!VM!)(rJIqerq-!!!VN!)(rJIqcrq3!!!V N!)(rJIqbrq8!!!VP!)(rJIqarq8!!!VQ!)(rJIq[rqB!!!VQ!)(rJIqZrqF!!!V R!)(rJIqXrqJ!!!VS!)(rJIqVrqJ!!!VS!)(rJIqUrqN!!!VT!)(rJIqSrqS!!!V U!)(rJIqRrqS!!!VU!)(rJIqQrqX!!!VV!)(rJIqNrq`!!!VX!)(rJIqMrq`!!!V X!)(rJIqLrqd!!!VY!)(rJIqKrqd!!!VY!)(rJIqJrqi!!!VZ!)(rJIqIrqi!!!V Z!)(rJIqHrqm!!!V[!)(rJIqGrqm!!!V[!)(rJIqFrr!!!!V`!)(rJIqErr!!!!V `!)(rJIqDrr%!!!V`!)(rJIqDrr%!!!V`!)(rJIqDrr%!!!Va!)(rJIqCrr%!!!V a!)(rJIqBrr)!!!Va!)(rJIqBrr)!!!Va!)(rJIqBrr)!!!Va!)(rJIqBrr)!!!V a!)(rJIqBrr)!!!Va!)(rJIqBrr)!!!Va!)(rJIqBrr)!!!Vb!)(rJIqArr)!!!V b!)(rJIqArr)!!!Vb!)(rJIq@rr-!!!Vb!)(rJIq@rr-!!!Vc!)(rJIq9rr-!!!V c!)(rJIq9rr-!!!Vc!)(rJIq8rr3!!!Vc!)(rJIq8rr3!!!Vc!)(rJIq8rr3!!!V d!)(rJIq6rr3!!!Vd!)(rJIq6rr3!!!Vd!)(rJIq6rr3!!!Vd!)(rJIq5rr8!!!V d!)(rJIq5rr8!!!Vd!)(rJIq5rr8!!!Vd!)(rJIq5rr8!!!Vd!)(rJIq5rr8!!!V d!)(rJIq5rr8!!!Vd!)(rJIq5rr8!!!Vd!)(rJIq5rr8!!!Vd!)(rJIq5rr8!!!V e!)(rJIq4rr8!!!Ve!)(rJIq4rr8!!!Ve!)(rJIq4rr8!!!Ve!)(rJIq4rr8!!!V e!)(rJIq4rr8!!!Ve!)(rJIq4rr8!!!Ve!)(rJIq4rr8!!!Ve!)(rJIq4rr8!!!V e!)(rJIq4rr8!!!Ve!)(rJIq4rr8!!!Ve!)(rJIq4rr8!!!Ve!)(rJIq4rr8!!!V e!)(rJIq4rr8!!!Ve!)(rJIq4rr8!!!Ve!)(rJIq4rr8!!!Ve!)(rJIq4rr8!!!V e!)(rJIq4rr8!!!Ve!)(rJIq4rr8!!!Ve!)(rJIq4rr8!!!Ve!)(rJIq4rr8!!!V e!)(rJIq4rr8!!!Ve!)(rJIq4rr8!!!Ve!)(rJIq3!2rf!!!+p3#"ri(rN!$rpJ! !#[8!JIq"rj!!rrB!!!Ve!)(rJIq3!2rf!!!+p3#"ri(rN!$rpJ!!#[8!JIq"rj! !rrB!!!Ve!)(rJIq3!2rf!!!+pJ#"ri(rMrrf!!!+pJ#"ri(rMrrf!!!+pJ#"ri( rMrrf!!!+pJ#"ri(rMrrf!!!+pJ#"ri(rM[rh!!!+pJ#"ri(rM[rh!!!+pJ#"ri( rM[rh!!!+pJ#"ri(rM[rh!!!+p`#"ri(rMIrh!!!+p`#"ri(rMIrh!!!+p`#"ri( rM2ri!!!+p`#"ri(rM2ri!!!+q!#"ri(rLrri!!!+q!#"ri(rLrri!!!+q!#"ri( rL[rj!!!+q!#"ri(rL[rj!!!+q!#"ri(rL[rj!!!+q3#"ri(rLIrj!!!+q3#"ri( rLIrj!!!+q3#"ri(rL2rk!!!+qJ#"ri(rKrrk!!!+qJ#"ri(rKrrk!!!+qJ#"ri( rK[rl!!!+qJ#"ri(rK[rl!!!+q`#"ri(rKIrl!!!+q`#"ri(rK2rm!!!+q`#"ri( rK2rm!!!+r!#"ri(rJrrm!!!+r!#"ri(rJ[rp!!!+r!#"ri(rJ[rp!!!+r!#"ri( rJ[rp!!!-r3#"ri(rJIm!rri!!!cp!)(rJIq"r`$rrJ!!$2d!JIq"ri(r!2rq!!! 0rJ#"ri(rJIm"rrrq!!!0rJ#"ri(rJIrqr`%!!!!0rJ#"ri(rJIrqr`%!!!!0rJ# "ri(rJIrqr`%!!!!0!3!!JIq"ri(rr2m!!!!0!3!!JIq"ri(rr2m!!!!0!3!!JIq "ri(rr2m!!!!0!3!!JIq"ri(rr2m!!!!-!!#"ri(rJIrlr`!!!!S!!)(rJIq"rrV r!!S!!)(rJIq"rrVr!!S!!)(rJIq"rrVr!!S!!)(rJIq"rrVr!!L"ri(rJIrjr`! )JIq"ri(rqIm!#)(rJIq"rrRr!!L"ri(rJIrjr`!)JIq"ri(rqIm!#)(rJIq"rrR r!!L"ri(rJIrjr`!)JIq"ri(rqIm!#)(rJIq"rrRr!!L"ri(rJIrjr`!+!!#"ri( rJIrkr`!+!!#"ri(rJIrkr`!-!!#"ri(rJIrlr`!!!!`!!)(rJIq"rr[r!!!!$3% !!)(rJIq"rrcr!!!!$J%!!)(rJIq"rrhr!3!!!!i"!!#"ri(rJIrpr`%!!!!0rJ# "ri(rJIrqr`%!!!!0rJ#"ri(rJIrqr`%!!!!0rJ#"ri(rJIm"rrrq!!!-r3#"ri( rJIm!rri!!!cp!)(rJIq"r`$rrJ!!#[d!JIq"ri(rr3!!#[`!JIq"ri,rr3!!#[` !JIq"ri,rr3!!#[`!JIq"ri,rr3!!#[X!JIq"ri6rr!!!#[X!JIq"ri6rr!!!#[X !JIq"ri6rr!!!#[X!JIq"ri6rr!!!#[X!JIq"riArq`!!#[X!JIq"riArq`!!#[S !JIq"riErq`!!#[S!JIq"riErq`!!#[S!JIq"riErq`!!#[S!JIq"riErq`!!#[S !JIq"riIrqJ!!#[S!JIq"riIrqJ!!#[N!JIq"riMrqJ!!#[N!JIq"riMrqJ!!#[N !JIq"riMrqJ!!#[N!JIq"riRrq3!!#[N!JIq"riRrq3!!#[J!JIq"riVrq3!!#[J !JIq"riVrq3!!#[J!JIq"riVrq3!!#[J!JIq"ri[rq!!!#[J!JIq"ri[rq!!!#[F !JIq"ricrq!!!#[F!JIq"ricrq!!!#[F!JIq"ricrq!!!#[F!JIq"rihrp`!!#[F !JIq"rihrp`!!#[B!JIq"rilrp`!!#[B!JIq"rilrp`!!#[B!JIq"rilrp`!!#[B !JIq"rirrpJ!!#[8!JIq"rj!!rrB!!!Ve!)(rJIq3!2rf!!!+p3#"ri(rN!$rpJ! !#[8!JIq"rj(rp3!!#[3!JIq"rj,rp3!!#[3!JIq"rj,rp3!!#[3!JIq"rj,rp3! !#[3!JIq"rj2rp!!!#[-!JIq"rj6rp!!!#[-!JIq"rj6rp!!!#[-!JIq"rj6rp!! !#[-!JIq"rjArm`!!#[)!JIq"rjErm`!!#[)!JIq"rjErm`!!#[)!JIq"rjIrmJ! !#[)!JIq"rjIrmJ!!#[%!JIq"rjMrmJ!!#[%!JIq"rjMrmJ!!#[%!JIq"rjRrm3! !#[!!JIq"rjVrm3!!#[!!JIq"rjVrm3!!#[!!JIq"rj[rm!!!#Zm!JIq"rjcrm!! !#Zm!JIq"rjcrm!!!#Zm!JIq"rjcrm!!!#Zi!JIq"rjlrl`!!#Zi!JIq"rjlrl`! !#Zi!JIq"rjlrl`!!#Zd!JIq"rk$rlJ!!#Zd!JIq"rk$rlJ!!#Zd!JIq"rk$rlJ! !#Z`!JIq"rk,rl3!!#Z`!JIq"rk,rl3!!#Z`!JIq"rk2rl!!!#ZX!JIq"rk6rl!! !#ZX!JIq"rk6rl!!!#ZX!JIq"rkArk`!!#ZS!JIq"rkErk`!!#ZS!JIq"rkErk`! !#ZN!JIq"rkMrkJ!!#ZN!JIq"rkMrkJ!!#ZN!JIq"rkRrk3!!#ZJ!JIq"rkVrk3! !#ZJ!JIq"rkVrk3!!#ZF!JIq"rkcrk!!!#ZF!JIq"rkcrk!!!#ZF!JIq"rkhrj`! !#ZB!JIq"rklrj`!!#ZB!JIq"rkrrjJ!!#Z8!JIq"rl$rjJ!!#Z8!JIq"rl$rjJ! !#Z3!JIq"rl,rj3!!#Z3!JIq"rl,rj3!!#Z-!JIq"rl6rj!!!#Z-!JIq"rl6rj!! !#Z-!JIq"rlAri`!!#Z)!JIq"rlEri`!!#Z)!JIq"rlIriJ!!#Z%!JIq"rlMriJ! !%Z%!JIrprrd!arrq!)(rr[rK!!!5i!#"rrlrp!$Drr3!JIrqrq%!!!rJ!)(rr[r !!)(r!Irri!!!$pm!JIm"rrr"!)(rr[rJ!!!2h`#"rrlr`J#"r`(rrpm!!"$H!)( r!Irr`J#"r`(rrpm!!!lG!)(r!2r#!)(r!2rH!!!2h3#"r`$r``#"r`(rrpi!!!c F!)(r``#"r`$rh3!!$0`!JIm!rm3!JIrF!!!+f`#"rm3!JIrF!!!+f`#"rm3!J[r E!!!+fJ##rm8!J[rD!!!+f3#$rm8!J[rD!!!+f3#$rm8!JrrC!!!+f!#%rm8!K2r B!!!+e`#%rmB!K2rB!!!+eJ#&rmB!KIrA!!!+eJ#&rmB!K[r@!!!+e3#'rmB!Krr 9!!!+e!#(rmB!Krr9!!!+d`#)rmB!L2r8!!!+d`#)rmB!LIr6!!!+dJ#*rmF!LIr 5!!!+d3#+rmF!L[r4!!!+d!#,rmF!Lrr3!!!+c`#-rmF!Lrr3!!!+cJ#0rmF!M2r 2!!!+c3#1rmF!MIr1!!!+c!#2rmF!M[r0!!!+b`#3!2r(!)rrc!!!#XS!NIr'!*( rb`!!#XN!N[r'!*,rbJ!!#XJ!Nrr'!*2rb3!!#XF!P2r'!*6rb!!!#XB!PIr'!*A ra`!!#X8!P[r'!*Ira3!!#X-!Q2r'!*Mra!!!#X)!Q[r&!*Rr``!!#X%!Qrr%!*[ r`J!!#X!!R2r%!*cr`3!!#Vi!R[r%!*lr[`!!#Vd!S2r$!*rr[J!!#V`!SIr$!+$ r[3!!#VS!Srr#!+2rZ`!!#VN!TIr"!+6rZJ!!#VF!Trr"!+ErZ!!!#V8!UIr!!+R rYJ!!#V3!Urqq!+[rY3!!#V)!V[qp!+hrX`!!#V!!X2qm!,$rX3!!#Ui!Xrqk!,2 rV`!!#U`!Y[qi!,ErV3!!#US!ZIqf!,RrU`!!#UJ![2qd!,crU3!!#UB![rqb!,r rT`!!#U3!`[q`!-2rT!!!#U%!a[qY!-MrS3!!#Ti!brqU!-crRJ!!#TX!d2qQ!0( rQ`!!#TF!e[qL!0IrP`!!#T-!hIqF!0lrN`!!#Si!j[q8!1MrM3!!Q)')!!!!!!' *!BJ!!!!!!!!!!!")!!!!5!!!!!!!#!!"!!J!!!!!!B,f9!!!!!!!!!!)J!!!r`! !rrrrrrrr!!$rrrrrc-`!!2rrrrqCQ3!!rrrrrfCQ!!$rrrrr-c-!!2rrrrm!!!! !rrr-c2rr!!$rrmc-c-`!!2rrc-bCQ3!!rrr-c'CQ!!$rrmc--c-!!2rrc-`!!!! !rrqCQIrr!!$rrjQCc-`!!2rrQCQCQ3!!rrqCQ@CQ!!$rrjQC-c-!!2rrQCN!!!! !rrpQC[rr!!$rrfCQc-`!!2rrCQDCQ3!!rrpQCQCQ!!$rrfCQ-c-!!2rrCQB!!!! !rrmc-rrr!!$rrc-cc-`!!2rr-c1CQ3!!rrmc-fCQ!!$rrc-c-c-!!2rr-c-!!!! !rrm!!2rr!!$rr`!!c-`!!2rr!!#CQ3!!rrm!!'CQ!!$rr`!!-c-!!2rr!!!!!!! !c-crrrrr!!$-c2rrc-`!!-c-rrqCQ3!!c-crrfCQ!!$-c2rr-c-!!-c-rrm!!!! !c-c-c2rr!!$-c-c-c-`!!-c-c-bCQ3!!c-c-c'CQ!!$-c-c--c-!!-c-c-`!!!! !c-bCQIrr!!$-c*QCc-`!!-c-QCQCQ3!!c-bCQ@CQ!!$-c*QC-c-!!-c-QCN!!!! !c-aQC[rr!!$-c'CQc-`!!-c-CQDCQ3!!c-aQCQCQ!!$-c'CQ-c-!!-c-CQB!!!! !c-`c-rrr!!$-c$-cc-`!!-c--c1CQ3!!c-`c-fCQ!!$-c$-c-c-!!-c--c-!!!! !c-`!!2rr!!$-c!!!c-`!!-c-!!#CQ3!!c-`!!'CQ!!$-c!!!-c-!!-c-!!!!!!! !QCRrrrrr!!#CQIrrc-`!!*QCrrqCQ3!!QCRrrfCQ!!#CQIrr-c-!!*QCrrm!!!! !QCR-c2rr!!#CQFc-c-`!!*QCc-bCQ3!!QCR-c'CQ!!#CQFc--c-!!*QCc-`!!!! !QCQCQIrr!!#CQCQCc-`!!*QCQCQCQ3!!QCQCQ@CQ!!#CQCQC-c-!!*QCQCN!!!! !QCPQC[rr!!#CQ@CQc-`!!*QCCQDCQ3!!QCPQCQCQ!!#CQ@CQ-c-!!*QCCQB!!!! !QCNc-rrr!!#CQ6-cc-`!!*QC-c1CQ3!!QCNc-fCQ!!#CQ6-c-c-!!*QC-c-!!!! !QCN!!2rr!!#CQ3!!c-`!!*QC!!#CQ3!!QCN!!'CQ!!#CQ3!!-c-!!*QC!!!!!!! !CQErrrrr!!"QC[rrc-`!!'CQrrqCQ3!!CQErrfCQ!!"QC[rr-c-!!'CQrrm!!!! !CQE-c2rr!!"QCXc-c-`!!'CQc-bCQ3!!CQE-c'CQ!!"QCXc--c-!!'CQc-`!!!! !CQDCQIrr!!"QCTQCc-`!!'CQQCQCQ3!!CQDCQ@CQ!!"QCTQC-c-!!'CQQCN!!!! !CQCQC[rr!!"QCQCQc-`!!'CQCQDCQ3!!CQCQCQCQ!!"QCQCQ-c-!!'CQCQB!!!! !CQBc-rrr!!"QCM-cc-`!!'CQ-c1CQ3!!CQBc-fCQ!!"QCM-c-c-!!'CQ-c-!!!! !CQB!!2rr!!"QCJ!!c-`!!'CQ!!#CQ3!!CQB!!'CQ!!"QCJ!!-c-!!'CQ!!!!!!! !-c2rrrrr!!!c-rrrc-`!!$-crrqCQ3!!-c2rrfCQ!!!c-rrr-c-!!$-crrm!!!! !-c2-c2rr!!!c-mc-c-`!!$-cc-bCQ3!!-c2-c'CQ!!!c-mc--c-!!$-cc-`!!!! !-c1CQIrr!!!c-jQCc-`!!$-cQCQCQ3!!-c1CQ@CQ!!!c-jQC-c-!!$-cQCN!!!! !-c0QC[rr!!!c-fCQc-`!!$-cCQDCQ3!!-c0QCQCQ!!!c-fCQ-c-!!$-cCQB!!!! !-c-c-rrr!!!c-c-cc-`!!$-c-c1CQ3!!-c-c-fCQ!!!c-c-c-c-!!$-c-c-!!!! !-c-!!2rr!!!c-`!!c-`!!$-c!!#CQ3!!-c-!!'CQ!!!c-`!!-c-!!$-c!!!!!!! !!!$rrrrr!!!!!2rrc-`!!!!!rrqCQ3!!!!$rrfCQ!!!!!2rr-c-!!!!!rrm!!!! !!!$-c2rr!!!!!-c-c-`!!!!!c-bCQ3!!!!$-c'CQ!!!!!-c--c-!!!!!c-`!!!! !!!#CQIrr!!!!!*QCc-`!!!!!QCQCQ3!!!!#CQ@CQ!!!!!*QC-c-!!!!!QCN!!!! !!!"QC[rr!!!!!'CQc-`!!!!!CQDCQ3!!!!"QCQCQ!!!!!'CQ-c-!!!!!CQB!!!! !!!!c-rrr!!!!!$-cc-`!!!!!-c1CQ3!!!!!c-fCQ!!!!!$-c-c-!!!!!-c-!!!! !!!!!!2rr!!!!!!!!c-`!!!!!!!#CQ3!!!!!!!'CQ!!!!!!!!-c-!!1lZ!!!!!!! !hGd!!!!!!!#lZ`!!!!!!!+UU!!!!!!!!L)J!!!!!!!"hG`!!!!!!!&99!!!!!!! !4%3!!!!!!!!L)J!!!!!!!"%4!!!!!!!!!!$ZlJ!!!!!!!0hG!!!!!!!!ZlX!!!! !!!#UUJ!!!!!!!)L)!!!!!!!!GhF!!!!!!!"993!!!!!!!%4%!!!!!!!!)L)!!!! !!!!4%3!!!!!!!!!!lZi!!!!!!!$Gh3!!!!!!!,Zl!!!!!!!!UUS!!!!!!!#)L!! !!!!!!(Gh!!!!!!!!998!!!!!!!"%4!!!!!!!!#)L!!!!!!!!%4%!!1lZlZlZlJ! !hGhGhGhG!!#lZlZlZlX!!+UUUUUUUJ!!L)L)L)L)!!"hGhGhGhF!!&99999993! !4%4%4%4%!!!L)L)L)L)!!"%4%4%4%3!!!!!!!!!!!!!!!!'*!BJ!!!!!!BN"L!! N!!b6!2VrJ3$M!2VrN`!!$*8!pIq"!1N!p2q@!!!-P`$ari%!l3$`rjJ!!!bB!1l rJ3$`!1lrQ3!!$*N!l2q"!2)!l2qD!!!FX`$drr8!q[rj!2RrJ3$d!2Rrq3$krr8 !pIqc!!!FY3$`rrJ!qrre!2VrJ3$f!2VrpJ$lrrF!m2qf!!!FY`$XrrS!r2rc!2V rJ3$i!2Vrm`$mrrS!lIqh!!!FZ!$Urr`!r2ra!2[rJ3$i!2[rm3$mrr`!k[qj!!! FZ3$Srri!r2r[!2[rJ3$k!2[rl`$prrd!k2qk!!!QZJ$hrrJ!qIm"!!$prqd!r2q "!2S!r2rZ!2cr!3!!qIrj!2ErZ`!!),X!q2rd!2Arl3$lri%!r!$lrqd!rIm!!2V rp!$irl`!!"bm!2MrmJ$hrqX!r2q"!2`!r2rX!2ErmJ$irld!!"bm!2Rrm!$irqX !r2q"!2`!r2rV!2Mrm!$jrld!!"bp!2RrlJ$krqS!r2q"!2d!qrrV!2RrlJ$jrli !!"bp!2Vrl3$krqS!qrq"!2i!r2rT!2[rl!$krli!!"bq!2Vrk`$lrqN!r2q"!2i !r2rT!2[rk`$krlm!!"bq!2[rkJ$mrqJ!r2q"!2i!r2rS!2crk`$krlm!!"br!2V rkJ$mrqJ!r2q"!2i!r2rS!2hrk3$krm!!!"br!2[rk3$mrqJ!r2q"!2i!r2rS!2h rk3$krm!!!"c!!2Vrk!$prqJ!r2q"!2i!r2rS!2hrk!$krm%!!"c!!2[rj`$prqJ !r2q"!2i!r2rS!2hrk!$krm%!!"c"!2Vrj`$prqJ!r2q"!2i!r2rS!2hrj`$krm) !!"c"!2Vrj`$prqJ!r2q"!2i!r2rS!2hrj`$krm)!!"c#!2VrjJ$prqJ!r2q"!2i !r2rS!2hrj`$jrm-!!"c#!2VrjJ$prqJ!r2q"!2i!r2rS!2hrjJ$krm-!!"c$!2R rjJ$prqN!qrq"!2i!r2rS!2hrjJ$krm-!!"c$!2Vrj3$prqN!qrq"!2i!r2rS!2h rjJ$jrm3!!"c%!2Rrj3$prqN!r2q"!2d!r2rS!2hrj3$krm3!!"c%!2Vrj!$qrqJ !r2q"!2d!qrrT!2hrj3$jrm8!!"V&!2Rrj!$qrqJ!mrq1!22rk3$prq3!q[r&!!! Da3$jrq3!r[rS!2(rN`$`rqN!rIrN!2RraJ!!'X8!q[rM!2lrk3$ZrjB!lrrS!2l rj!$jrmB!!"l'!2Rrj!$prqN!lIrC!1IrfJ$YrqN!r[rM!2VraJ!!*XB!q[rM!2h rk3$krrd!prrZ!-$rlJ$hrri!qIrT!2lri`$jrmF!!#E(!2Rri`$prqN!r2ri!2V rq3#UrrS!qIrj!2[rk3$prq-!q[r(!!!Ha`$krq)!r[rT!2crpJ#1rrB!rIrT!2h ri`$jrmJ!!"l)!2RriJ$qrqN!r2re!*!!rr8!rIrS!2lriJ$krmJ!!"l)!2Rri`$ prqN!rIri!)Rrq!$mrqN!r[rL!2Rrb3!!)FJ!q[rL!2hrk3$prri!JIrmr`%!!2c rk3$qrq%!q[r*!!!Bb3$jrq)!r[rS!)(rl[rT!2hriJ$krmN!!"M*!2Vri3$qrqX !JIrSrqX!r[rK!2VrbJ!!'-S!qIrL!2hrl`#"rq$rl`$qrq%!q[r+!!!BbJ$krq% !rIrc!)(rf2rc!2lri!$krmX!!"V,!2Rri3$qrr8!X2rf!+lrpJ$prq%!q[r,!!! Db`$krq!!r[ri!-Ir`3$(rrF!r[rJ!2Vrc!!!'X`!qIrK!2hrqJ$4rkJ!d[rj!2l ri!$krm`!!"V-!2Vri!$qrrS!fIq@!0Rrq`$prq!!q[r0!!!Dc3$jrq!!r[rm!0l rL3$Grr`!r[rJ!2Vrc3!!(-d!q[rJ!2lrr!$Mri%!r3$Lrrd!r[rI!2VrcJ!!(-i !qIrJ!2lrr3$Rri%!mJ$Rrrd!r[rJ!2VrcJ!!(-i!q[rJ!2hrrJ$Uri%!kJ$Urri !r[rI!2Vrc`!!(Fm!q[rI!2lrrJ$Yri%!iJ$Yr`%!!2lrh`$krmm!!"h2!2Vrh`$ qr`%!!1rrJ3$F!2$rrJ$qrpm!q[r3!!!Gd!$krpm!r[rq!2,rJ3$@!2,r!3!!r[r I!2Vrd!!!(0!!q[rI!2lrrJ$dri%!dJ$drri!r[rI!2Vrd3!!(G%!q[rH!!(rrrd !p[q"!-i!p[rq!2lrh`$krp%!!"c5!2Rrh`$qrrd!pIq"!0!!pIrq!2lrhJ$krp) !!"c5!2VrhJ$qrrd!p2q"!0-!mrrp!2lrh`$krp)!!"c6!2Rrh`$qrr`!m[q"!0F !mIrp!2lrhJ$krp-!!"c6!2VrhJ$qrr`!lrq"!0d!l[rm!2lrhJ$krp3!!"c8!2V rhJ$qrrX!l2q"!1)!lIrl!2lrhJ$krp3!!"c8!2VrhJ$qrrX!kIq"!1J!k[rk!2l rhJ$krp8!!"c9!2Vrh3$qrrX!jIq"!2!!j[rk!2lrhJ$jrpB!!"c@!2Vrh3$qrrS !iIq"!2J!i[rk!2hrhJ$krpB!!"V@!2Vrh3$qrrS!frq%!0crq3$qrpd!q[rA!!! De`$krpd!r[rj!06rNJ$9rrN!r[rG!2Rrf!!!'YJ!q[rF!2lrq!$-rk3!c2ri!2l rh3$krpJ!!"VB!2Vrh3$prrJ![rqp!-$rq!$qrp`!q[rC!!!Jf3$krp`!r[rh!2E r!!#"rp,r!!$frrJ!rIrG!2Vrf3!!)0N!q[rG!2hrp`$frrd!JIrBrrd!p[rh!2l rh!$krpS!!#$D!2Vrh!$qrrB!p[rj!)(ri2rj!2Erp`$prp`!q[rE!!!Jf`$krp` !rIrf!2ErpJ#"rqIrp3$hrr8!r[rF!2Vrf`!!)0X!q[rF!2hrpJ$frr)!JIr[rr% !prre!2hrh!$krp`!!#$F!2Vrf`$qrr8!p[rY!)(rqIrX!2Irp3$prpX!q[rG!!! Hh3$krpX!rIre!2Erk!#%rqB!prrd!2hrh!$krpd!!"lG!2Vrf`$qrr3!p[rK!*, rh`$hrr3!rIrE!2VrhJ!!(Yi!q[rE!2hrp!$frpJ!SrrB!2Erm`$qrpS!q[rI!!! Hh`$krpS!rIrc!2Irb`#mrm`!p[rc!2hrf`$krpm!!"lI!2Vrf`$prr)!prqf!1R rY!$frr-!rIrD!2Vri!!!(1!!q[rD!2hrmJ$hri%!d3$frr)!rIrD!2Vri3!!(1% !q[rD!2hrm3$fri%!dJ$frr)!rIrD!2Vri3!!(1%!q[rD!2hrm3$fri%!dJ$frr% !rIrD!2VriJ!!(1)!q[rC!2hrm3$fri%!dJ$hrr!!rIrD!2Rri`!!(1-!q[rC!2h rm!$fri%!dJ$hrr!!r2rD!2Vri`!!(13!qIrC!2hrm!$fri%!dJ$hrqm!rIrC!2V rj!!!(13!q[rC!2hrl`$fri%!dJ$hrqm!r2rD!2Rrj3!!(18!q[rB!2hrl`$fri% !dJ$hrqi!rIrC!2Vrj3!!(1B!qIrC!2hrlJ$fri%!dJ$hrqi!rIrB!2VrjJ!!(1B !q[rB!2hrl3$hri%!d`$frqi!r2rC!2Rrj`!!(1F!qIrC!2crl3$hri%!d`$frqd !rIrB!2Rrk!!!(1J!qIrB!2hrl!$hri%!d`$frqd!r2rB!2Vrk!!!(1J!q[rA!2h rl!$hri%!d`$frq`!rIrB!2Rrk3!!(1N!qIrB!2crl!$fri%!e!$frq`!r2rB!2R rkJ!!(1S!qIrA!2hrk`$fri%!e!$hrqX!r2rA!2VrkJ!!*1S!q[rb!2Irm!$mrqX !p[q"!03!prrU!2crm!$hrr-!qIrV!!!Nk`$jrr8!mIrc!2hrkJ$fri%!e!$hrqS !r2rc!2,rp!$jrq`!!#6X!2RrpJ$YrrB!r2rU!2ErJ3$8!2Irk3$mrrB!l[re!2V rl!!!*Z`!q[rf!1[rp`$mrqS!p[qY!2[rVJ$hrqN!r2ri!1Vrp`$jrqd!!#EY!2R rq!$RrrS!r2rT!2ErV`$hrl!!prrT!2crq3$SrrF!q[rY!!!Zl3$krrJ!q2rl!26 rq`$mrqJ!prqa!22rXJ$hrqJ!r2rl!2Arq`$irrF!q[rZ!!!ZlJ$krrJ!qIre!2I rr3$lrqJ!prqb!2(rY!$frqJ!r2rm!2Irp3$krrJ!q[rZ!!!ZlJ$krrJ!q[rb!2M rrJ$mrqJ!p[qc!1rrY3$frqJ!qrrq!2MrmJ$krrJ!q[r[!!![l`$krrJ!q[r[!2R r!!$lrqJ!p[qd!1hrYJ$erqJ!r2m"!!$jrqm!q[ri!2[rl`!!*Zm!q[rj!2Vrl!$ drqN!pIqe!1crYJ$erqJ!p2rX!2[rq!$krr!!!#E`!2Vrq!$lrqS!p[rS!26rYJ$ VrlF!p2rT!2ArkJ$lrrN!q[r`!!!Qm!$krrN!qrrS!2Irk3$crlF!kIqi!26rk!$ hrqN!qrri!2Vrm3!!*[!!q[rj!2[rj`$irqN!mrqi!1MrZ!$drqJ!q2rR!2[rq3$ krr%!!#E`!2Vrq3$lrqB!q[rS!22rZ!$RrlN!mrrT!2RrjJ$lrrN!q[ra!!!Qm3$ jrrN!r2rN!2[rk3$brlJ!jrqj!22rk!$lrq8!qrrj!2Vrm3!!*[%!qIrj!2cri`$ lrqS!m[qj!1ArZJ$brqS!qrrM!2crq3$jrr)!!#Ea!2Rrq3$mrq-!qrrU!2,rZ3$ PrlS!m[rV!2Vri`$mrrN!qIrb!!!Qm3$jrrN!r2rL!2[rl!$arlN!j2ql!2,rk`$ lrq)!r2rj!2RrmJ!!*[%!qIrj!2cri3$lrqd!mIqk!12r[!$`rqd!qrrK!2crq3$ jrr)!!#Ea!2Rrq3$mrq!!r2rZ!2$rZJ$Mrl`!m2rZ!2[ri!$mrrN!qIrb!!!Qm3$ krrJ!r2rJ!2[rl`$`rlX!iIqp!2$rlJ$lrq!!r2rj!2RrmJ!!,r%!q[ri!2crh`$ lrr!!qrm!!2Er[!$Krld!prm"!!$lrr!!qrrI!2crq3$jrr)!!#rb!2Rrq!$mrpi !r2ra!2Vr!!$frld!i2qp!2Ir!3!!qrra!2[rhJ$mrrN!qIrb!!!`mJ$jrrJ!r2r H!2[rmJ$lr`%!!2Er[3$Irli!prm"!!$krr)!r2rG!2hrq!$jrr)!!#rb!2Rrq!$ mrpd!r2rb!2[r!3!!p[qp!0rr[J$hrri!qrrc!2[rh3$prrF!qIrc!!!ZmJ$krrB !rIrG!2[rp!$krri!prqq!0hr[`$hrri!qrrc!2crh!$prrF!qIrc!!!Zm`$jrrB !rIrF!2[rp3$lrrd!prqq!0hr[`$hrri!q[re!2[rh3$mrrF!qIrc!!!Zm`$jrrB !r2rF!2crp3$lrrd!prqr!0[r`!$hrrd!qrre!2crh!$mrrB!q[rc!!!Zm`$krr8 !r2rF!2[rp`$krrd!prqr!0[r`!$hrrd!qrrf!2crf`$mrrB!qIrd!!!Zm`$krr3 !rIrE!2crp`$lrr`!prr!!0Vr`!$hrrd!q[ri!2[rf`$prr8!qIrd!!!cm`$krr3 !rIrE!2[rq3$krr`!prr!!1lr!3!!l[r#!2Err!$lrrJ!r2rE!2crp!$krr3!!$, d!2Rrp!$mrpX!r2rj!2Vrr!$hrm!!m2rl!2$r`J$frr`!q[rk!2[rf`$mrr3!q[r d!!!bp!$jrr3!r2rE!2[rqJ$lrrX!prr"!2(rq!$`rm-!prrl!2VrqJ$mrpX!qrr d!2Vrp!!!-[3!q[rb!2hrfJ$mrrX!q[rl!2Er`J$brrB!mIr$!2IrqJ$lrrX!qrr E!2crm`$krr3!!$,d!2VrmJ$mrpX!qrrm!2Vrq`$frm-!m[rd!2(ra!$hrrS!q[r m!2crfJ$mrr-!qIre!!!bp!$krr)!r2rD!2crr!$lrrS!p[r$!22rmJ$brm3!prr k!2Vrr3$lrpX!qrrb!2Vrp3!!-[3!q[ra!2crf`$lrri!q[rj!2Ira!$brr%!m[r &!2Irq3$krri!r2rD!2crm3$krr8!!$,d!2Vrm3$mrpS!r2rq!2Vrq3$hrm3!mrr `!2,ra3$hrrN!q[rq!2crf`$lrr%!q[re!!!cp!$krr%!qrrE!2[r!!$krrJ!prr &!2,rl`$brmB!prrj!2Vr!3!!r2rD!2[rm3$krr8!!#Vd!2Vrm3$lrpS!p2ri!2I ra3$crqi!m[r'!2Irq!$drpS!r2r`!2Vrp3!!+[3!qrr[!2[rf`$drrJ!prr'!2, rl3$brmF!prri!2ArfJ$lrr!!q[re!!!Up!$lrqm!qrrE!2Arp`$hrmB!mrrX!2, ra`$hrrJ!pIrD!2[rm!$krr8!!#Vd!2[rl`$lrpS!p[rh!2Ira`$brqX!m[r*!2E rp`$hrpN!r2r[!2Vrp3!!+[8!q[rZ!2crfJ$frrF!prr(!22rkJ$brmN!prrf!2I rfJ$lrqm!q[re!!!Up3$krqi!qrrD!2Irp`$hrmJ!mrrS!2,rbJ$hrrB!prrD!2[ rl`$krr8!!#Ve!2VrlJ$lrpS!q2rf!2Erb3$crqF!mrr+!2IrpJ$irpN!qrrZ!2[ rp3!!+[8!q[rZ!2[rfJ$irrB!p[r+!22rjJ$brmX!prre!2Rrf3$mrqd!qrre!!! Up3$krqi!qrrC!2Rrp3$hrmS!mrrP!22rb`$hrr8!qIrD!2[rl3$lrr8!!#Ve!2V rl3$mrpN!q[rd!2Irb`$crq3!m[r-!2Irp3$jrpS!qrrY!2[rp3!!+[8!q[rY!2c rf3$krr3!prr-!2,ri`$crm`!prrd!2[rf3$lrqd!qrre!!!Up3$krqd!r2rC!2V rp!$hrm`!mrrK!22rc3$hrr3!qrrC!2[rl3$lrr8!!#Ve!2Vrl3$mrpJ!qrrd!2I rc3$crq!!mrr0!2Irp!$lrpN!qrrY!2[rp3!!+[8!q[rY!2crf!$lrr3!prr0!22 rh`$crmi!prrd!2[rf3$lrqd!qrre!!!Up3$krqd!r2rB!2[rp!$hrmi!mrrH!2, rc`$hrr8!qrrB!2[rl3$lrr8!!#Ve!2Vrl3$mrpJ!qrrd!2IrcJ$crpd!mrr3!2I rp!$lrpJ!qrrY!2[rp3!!+[8!q[rY!2cre`$lrr8!prr2!22rf`$crp%!prrd!2[ rf!$lrqi!q[re!!!Up3$krqd!r2rA!2[rp3$hrp!!mrrD!22rd3$hrr3!qrrB!2[ rlJ$krr8!!#Ve!2Vrl3$mrpF!qrre!2Erd3$crpN!mrr5!2Irp!$lrpJ!qrrZ!2V rp3!!+[8!q[rY!2cre`$lrr3!prr5!22rf!$crp)!prrd!2[rf!$lrqi!q[re!!! Up3$krqd!r2rA!2[rp!$hrp)!mrrA!22rd`$hrr3!qrrB!2[rlJ$krr8!!#Ve!2V rl3$mrpF!qrrd!2Ird`$crp8!p2r6!2Irp3$lrpF!r2rY!2Vrp3!!+[8!q[rY!2c reJ$mrr3!prr8!22re!$crp3!prre!2[re`$mrqd!q[re!!!Up3$krqd!r2r@!2c rp!$hrp3!mrr6!22re3$hrr8!qrrA!2crl3$krr8!!#Ve!2Vrl3$mrpB!r2rd!2I re3$crp%!p2r9!2Irp3$lrpF!r2rY!2Vrp3!!+[8!qIrZ!2creJ$lrr8!prr9!26 rd!$crpB!prre!2[re`$mrqd!q[re!!!Up3$jrqi!r2r@!2[rp3$hrpB!mrr2!26 re`$hrr3!qrrA!2crl3$jrrB!!#Ve!2Rrl3$prpB!qrre!2Ire`$crmd!p2rB!2I rp!$lrpF!r2rY!2RrpJ!!+[8!qIrY!2hreJ$lrr8!prrA!22rc3$crpN!prrd!2[ re`$mrqd!qIrf!!!Up3$krq`!rIr@!2[rp3$hrpJ!mrr,!26rf3$hrr3!qrrA!2c rl3$jrrB!!#Ve!2Vrl!$prpB!qrrd!2Irf3$drmS!mrrD!2Irp!$lrpF!r2rY!2R rpJ!!+[8!q[rX!2hreJ$lrr3!prrD!22rb3$drpS!prrd!2[re`$mrqd!qIrf!!! Up3$krq`!r2rA!2[rp!$hrpX!mrr(!26rf`$hrr3!qrrA!2crl3$jrrB!!#Vf!2R rl!$mrpF!qrrd!2Irf`$drmB!mrrF!2Irp!$lrpF!r2rY!2RrpJ!!+[B!qIrX!2c re`$lrr3!prrF!22ra3$drp`!prrd!2[re`$prq`!qIrf!!!UpJ$jrq`!r2rA!2[ rp!$hrp`!p2r$!26rh3$hrr3!qrrA!2hrk`$krrB!!#Vf!2Rrl!$mrpF!qrrd!2I rh3$crm-!p2rG!2Irp!$lrpF!rIrV!2VrpJ!!,[B!qIrX!2cre`$mrr-!prrG!26 rqJ!!rmN!p2rH!2Mrm`$lrpF!rIrV!2Rrp`!!,rB!qIrV!2hre`$mrr-!prrH!26 rqJ!"rrr*!22ri!$hrr-!qrrA!2hrk`$jrrF!!#rf!2Rrk`$prpF!r2rc!2Irh`$ crrS!!Irrb!$drq!!prrc!2[re`$prqX!qIrh!!!ZpJ$jrqX!rIrA!2crm`$hrpm !p2rk!2lra`$drq%!prrc!2[rf!$mrqX!qIrh!!!Zp`$jrqS!rIrA!2crmJ$irq! !mrrl!2hra`$drq%!prrc!2[rf!$mrqX!qIrh!!!Zp`$jrqS!r2rB!2Vrp!$hrq% !p2rk!2hraJ$drq)!prrd!2Vrf!$mrqX!qIrh!!!Zp`$jrqS!r2rB!2MrpJ$hrq) !p2rk!2hra3$crq-!prrh!2Irf!$mrqX!q2ri!!!Zp`$jrqS!r2rB!2Arq3$hrq- !mrrk!2hra!$drq-!prrj!2Arf!$mrqX!q2ri!!!Zq!$irqS!r2rB!26rqJ$hrq- !p2rk!2hr``$crq3!prrl!22rf!$prqN!qIri!!!iq!$irqS!r2rB!2cr!3!!qIr m!2Irj!$crrX!r2r#!26rj!$hrr`!qIm"!!$mrpJ!rIrT!2Rrq!!!0[J!qIrT!2c rf!$mrrd!qIrq!2Irj!$drrS!rIr!!26rj3$hrri!q[rm!2crf!$prqN!q2rj!!! hq!$jrqN!r2rB!2crq`$kr`%!!2Irj3$crrX!rIqr!22rjJ$irri!qrrk!2crf!$ prqN!q2rj!!!bq!$jrqN!r2rB!2crq3$lr`!!prrQ!22rqJ$prli!p2rQ!2$rq3$ mrpJ!rIrT!2Mrq3!!,[N!q2rS!2hrf!$mrrJ!mIrQ!26rqJ$prld!mrrS!2(rp`$ mrpJ!rIrS!2Rrq3!!,[N!q2rS!2crfJ$mrr8!mrrR!22rq`$mrl`!p2rS!2,rpJ$ mrpN!r2rS!2Rrq3!!,[N!qIrR!2crfJ$mrr3!p2rR!26rqJ$prlX!mrrT!22rp3$ mrpN!r2rS!2MrqJ!!,[S!q2rR!2crfJ$mrr-!pIrS!22rq`$mrlS!mrrU!26rp!$ mrpN!r2rS!2MrqJ!!,[S!q2rR!2crfJ$mrr)!pIrU!22rq`$mrlN!mrrU!2ErmJ$ mrpN!r2rR!2RrqJ!!,[S!q2rR!2crfJ$mrr%!p[rU!22rq`$mrlJ!mrrV!2Irm3$ mrpN!r2rR!2Mrq`!!,[S!qIrQ!2crfJ$mrr!!prrV!22rq`$lrlJ!mrrV!2Irm3$ mrpN!r2rR!2Mrq`!!,[X!q2rQ!2crfJ$mrr!!prrV!22rq`$mrlB!mrrX!2Irm3$ mrpN!r2rQ!2Rrq`!!,[X!q2rQ!2crfJ$lrr%!prrX!22rq`$lrlB!mrrX!2Irm3$ mrpN!r2rQ!2Mrr!!!,[X!qIrP!2crfJ$lrr%!prrX!22rq`$lrl8!mrrY!2Irm3$ lrpX!qrrQ!2Mrr!!!,[`!q2rP!2[rf`$lrr%!prrY!22rq`$lrl3!mrrY!2Mrm!$ lrpX!qrrP!2Rrr!!!,[`!q2rP!2[rf`$lrr%!prrY!22rq`$lrl-!mrrZ!2Mrm!$ lrpX!qrrP!2Mrr3!!,[`!q2rP!2[rf`$lrr%!prrY!22rq`$lrl-!mrr[!2Irm!$ lrpX!qrrP!2Mrr3!!,[`!qIrN!2[rf`$lrr%!prrZ!22rq`$lrl%!p2r[!2Irm!$ lrpX!qrrN!2Rrr3!!,[d!q2rN!2[rf`$lrr!!q2rZ!22rq`$lrl%!mrr`!2Irm!$ lrpX!qrrN!2MrrJ!!,[d!q2rN!2[rf`$lrr!!q2rZ!26rq`$krl%!mrr`!2Irm!$ mrpS!qrrN!2MrrJ!!,[d!qIrM!2[rf`$lrr!!prr`!22rq`$lrkm!p2r`!2Irm!$ mrpX!q[rM!2RrrJ!!,[i!q2rM!2[rf`$lrr!!prr`!22rq`$lrkm!p2r`!2Irm3$ lrpX!q[rM!2RrrJ!!,ri!q2rM!2[rf`$lrr!!prr`!26rq`$krkm!mrra!2Irm3$ lrpX!q[rM!2Mr!3!!!#rq!2RriJ$lrpX!q[ra!2Irm!$drrX!qrqY!26rm3$hrr% !qrrE!2VriJ$jr`%!!!![rJ$jrq)!qrrD!2[rm3$hrr%!mrrl!2[rV3$drr%!prr a!2[rf`$krq)!qIm"!!!!,`%!!2Rri3$lrpS!qrra!2Irm3$drrS!qrqY!26rm3$ irr!!qrrE!2VriJ$ir`!!!#m"!!$jrq%!qrrD!2[rm3$hrr%!p2rl!2VrV3$drr% !q2r`!2[rf`$krq)!q2m!!!![!3!!qIrK!2[rfJ$lrr%!prra!26rq`$krk`!p2r b!2Mrm3$krpX!q[rK!2Rr!!!!,`%!!2Rri3$lrpS!q[rb!2Irm3$drrX!q[qX!26 rm`$hrr%!qrrD!2Vri3$jr`!!!#i!!2Rri!$lrpS!q[ra!2Mrm3$drrX!qrqV!26 rm`$hrr%!qrrD!2Vri3$jr`!!!#`!!2Rri!$lrpN!qrra!2Mrm3$drrX!qrqV!26 rm`$hrr%!qrrD!2Vri3$ir`!X!!$jrq!!qrrC!2[rm3$irr)!p2rk!2[rU`$drr- !prrb!2VrfJ$krq%!q2m!,!!!qIrJ!2[rf3$krr)!prrc!26rq`$krkX!p2rc!2I rmJ$lrpN!q[rK!2Mr!#`!!2Rri!$lrpN!q[rb!2Irm`$drrX!q[qV!26rm`$hrr) !qrrC!2Vri3$ir`!Uq2rJ!2[rf!$lrr)!prrc!26rq`$krkX!p2rc!2Irm`$krpN !q[rJ!2Rr!#Virq!!qrrB!2Vrm`$hrr-!p2rl!2VrU`$drr-!prrc!2Vrf3$krq! !qIm!+[Mri!$lrpJ!q[rc!2Irm`$drrX!q[qV!26rm`$irr)!qrrA!2[ri!$jr`! Uq2rJ!2[re`$lrr-!prrc!26rq`$krkX!p2rc!2Mrm`$krpF!qrrJ!2Rr!#Virq! !qrrA!2Vrp!$hrr-!p2rl!2RrV!$drr-!q2rc!2Vre`$lrq!!qIm!+[Mri3$krpF !q[rc!2Mrm`$drrX!qIqX!26rm`$irr3!q[r@!2[ri!$jr`!Uq2rK!2VreJ$krr3 !q2rc!26rq`$jrk`!p2rd!2Irp!$krpB!qrrJ!2Rr!#Virq%!q[r@!2Vrp!$irr- !p2rl!2MrV3$drr3!prre!2Vre3$lrq%!q2m!+[IriJ$krp8!q[re!2Mrm`$drrX !q2qY!26rp!$hrr8!q[r9!2[ri3$ir`!UprrL!2[re!$krr8!q2rc!22rr!$hrki !p2rd!2IrpJ$jrp8!qrrK!2Mr!#`!!2MriJ$lrp-!q[rf!2Irm`$drr`!p[q[!26 rp!$hrrB!q[r8!2[ri3$ir`!X!!$irq)!qrr6!2Rrp`$hrr-!p2rm!2ArX!$drr3 !prrh!2Rre!$krq)!q2m!,J!!q2rL!2[rdJ$krrF!prrc!26rq`$erl%!p2rd!2M rp`$jrp)!qrrM!2Mr!!!!,J!!prrM!2[rdJ$jrrJ!prrc!26rq`$drl)!pIrc!2M rp`$krp%!qrrM!2Mr!!!!,`%!!2Mri`$lrp%!qIrj!2Irm`$drrX!mrqd!26rm`$ irrJ!qIr4!2[ri`$ir`!!!$!"!!$irq-!qrr3!2Vrq3$hrr-!mrrm!2,rY3$drr- !q2rj!2Rrd!$lrq3!q2m"!!!!-!%!!2Mrj!$lrmm!qIrj!2MrmJ$drr`!m[qe!26 rm`$irrN!q[r2!2[rj!$ir`%!!!![rJ$irq8!qrr1!2RrqJ$irr)!p2rl!2,rYJ$ drr-!q2rk!2Rrc`$lrq3!q2m"!!!!,ri!q2rP!2[rc3$jrrX!q2rb!26rq`$brlF !mrrd!2Irq`$jrmd!r2rN!2Mr!3!!!#lq!2Mrj3$lrmd!q2rm!2MrmJ$crr`!m[q h!26rm`$hrr`!qIr-!2[rjJ$irri!!#lp!2Rrj3$lrm`!q2rp!2MrmJ$crrX!mrq h!26rm`$hrrd!qIr,!2[rjJ$irri!!#lp!2MrjJ$mrmS!q2rq!2Mrm3$drrX!mrq i!22rm`$hrri!qIr+!2[rjJ$irri!!$$p!2MrjJ$mrmN!q2m"!!$hrr)!mrrl!26 rZ!$drr)!prm"!!$irmS!qrrQ!2Rrr3!!,[`!qIrR!2[ra`$jr`!!prrb!22rq`$ erlF!p2rb!2Ir!!$irmJ!r2rR!2Mrr3!!*[`!q2rS!2[raJ$[rr%!p2rk!2ErZ!$ crr)!l[r(!2[rk!$irrd!!#Em!2Mrk!$mrm3!m2ra!22rq`$frlJ!p2ra!2$ra3$ lrqJ!q2rp!!!Qq`$jrqJ!r2r$!2(rm3$crrS!p[qk!22rm3$arm-!r2rS!2Rrr!! !*[X!qIrS!2cr`J$brr!!mrrk!2IrZJ$crr%!m[r#!2crk!$jrr`!!#El!2Rrk3$ lrm%!mrr`!22rqJ$hrlX!mrr`!22r`3$mrqN!q2rm!!!Qq`$jrqN!r2r!!22rl`$ crrS!prqm!22rm!$drm!!qrrU!2Mrr!!!*[X!q2rU!2cr[`$drqm!m[rk!2Mr[3$ crr!!p2qq!2crkJ$jrrX!!#El!2MrkJ$mrli!pIrZ!22rqJ$hrlm!m[r`!26r[J$ mrqS!qIrl!!!QqJ$jrqX!r2qm!2Arl`$brrS!prr!!2,rm!$erld!qrrX!2Mrq`! !*[S!qIrV!2crZ`$frqi!m[rk!2Ir`J$brqm!p[ql!2crl!$irrX!!#Ek!2Rrk`$ mrlS!prrZ!2,rq3$hrm3!mIr[!2IrZJ$mrq`!q2rl!!!QqJ$irq`!rIqj!2Irl3$ brrN!q2r&!2(rlJ$irlJ!r2rY!2Mrq`!!*[S!q2rY!2crZ!$irqd!mIrj!2Ira`$ brqd!q2qi!2crl3$jrrS!!#Ek!2Mrl3$prlB!qIrX!2(rq3$hrmN!mIrY!2RrY`$ mrqi!q2rk!!!Qq3$jrqd!rIqf!2Rrk`$arrN!prr,!2(rl!$krl8!rIrZ!2MrqJ! !*[N!qIrZ!2crY3$krqX!m2ri!2Mrc3$`rqd!qIqe!2hrlJ$irrS!!#Ej!2Mrl`$ prl-!q[rV!2$rq!$irmm!m2rX!2VrX`$prqm!q2rk!!!Qq3$irqm!rIqc!2VrkJ$ `rrJ!prr5!2$rl!$jrl-!rIr[!2Rrq3!!*[N!q2r[!2lrX3$krqX!l[ri!2Mre3$ [rqX!q[qa!2lrm!$irrN!!#Ei!2Rrl`$qrl%!q[rU!1lrp`$irpJ!l[rX!2VrX!$ qrr!!q2rj!!!Sq!$jrqm!!IrrV`$krqS!l[rf!2Mrf`$Zrq`!qIq[!!(rrr!!q2r j!!!Sq!$irr!!!IrrV`$jrqS!lIrf!2Mrh`$YrqX!q[qZ!!(rrr!!q2rj!!!Qq!$ irr!!!2qY!2Vrk3$XrrB!q2rM!1crk`$jrkd!!2r`!2Rrq!!!*[J!q2ra!!$rV!$ jrqN!l2rc!2VrjJ$XrqS!q[qX!!$rm3$irrJ!!#,h!2Rrm3!!rkX!q[rS!1[rmJ$ mrqN!krrU!2RrQ`$irrJ!!"Vh!2RrQJ$jrqJ!kIrE!1Rrk3$krjS!q2ri!!!Dp`$ irjS!q[rR!1Mrh`$SrqJ!q[qD!2Mrq!!!'[F!q2qD!2VrjJ$QrqB!jIrS!2RrQJ$ jrrF!!"Vh!2MrQ3$krqB!irrZ!1,rj`$krjS!q2rh!!!DpJ$jrjN!q[rP!0rrqJ$ GrqB!qIqD!2Mrp`!!&[B!q2qD!2Rrj!#hrq8!q[qC!2Mrp`!!&[B!q2qC!2Vri`# jrq3!q[qC!2Mrp`!!&[B!q2qC!2VriJ#mrq-!qIqC!2RrpJ!!&[8!qIqC!2Rri3# rrq)!q[qC!2MrpJ!!&[8!q2qC!2Vrh`$$rq!!q[qC!2MrpJ!!&[8!q2qC!2VrhJ$ 'rpm!q[qB!2MrpJ!!&[8!q2qC!2Rrh3$+rpd!q[qB!2Rrp3!!&[3!qIqB!2VrfJ$ 2rpX!q[qC!2Mrp3!!&[3!q2qC!2Vrf!$8rpN!q[qB!2Mrp3!!&[3!q2qC!2RreJ$ DrpB!q[qB!2Mrp3!!&[3!q2qB!2VrdJ$Krp-!q[qB!2Rrp!!!&[-!q2qC!2Vrc3$ Vrmi!q[qC!2Mrp!!!%[-!q2qC!2VrK3$krjJ!q2rd!!!5m`$irjJ!q[q'!2VrQ!$ irr3!!",c!2MrQ!$kriB!q[qC!2Mrm`!!%[)!q2qC!2VrKJ$lrjJ!q2rc!!!5mJ$ irjJ!qrq(!2VrQ!$irr-!!",b!2MrQ!$kriJ!q[qC!2MrmJ!!%[)!prqC!2VrL!$ krjN!q2rb!!!5m3$irjN!q[q)!2[rQ!$irr)!!",a!2MrQ!$lriN!q[qC!2IrmJ! !%[%!prqC!2[rL3$krjN!q2ra!!!5m!$irjN!q[q+!2VrQ3$irr%!!",`!2MrQ3$ kriS!qrqC!2Irm3!!%[!!prqC!2[rLJ$lrjN!q2r`!!!5l`$irjN!qrq,!2VrQ3$ irr!!!",[!2MrQ3$lriX!q[qD!2Irm!!!%Zm!prqD!2VrM!$lrjN!prr`!!!5lJ$ irjN!qrq-!2[rQ3$irqm!!",Z!2IrQJ$lri`!qrqD!2Irl`!!%Zi!prqD!2[rM!$ lrjS!prr[!!!5l3$irjS!qrq0!2[rQJ$hrqi!!",Y!2IrQJ$mrid!qrqD!2IrlJ! !%Zd!prqD!2[rMJ$lrjS!prrZ!!!5l!$irjS!qrq1!2[rQ`$hrqd!!",X!2IrQ`$ lrii!r2qD!2Irl3!!%Z`!prqD!2crM`$lrjX!prrX!!!5k`$hrjX!r2q2!2[rQ`$ hrq`!!",V!2IrQ`$lrj!!!2[rQ`$hrq`!!",V!2ErQ`$mrj!!!2crQ`$hrqX!!", U!2IrQ`$mrj!!!2crQ`$hrqX!!",U!2IrQ`$mrj!!!2crR!$frqX!!",T!2IrR!$ mrj%!qrqF!2IrkJ!!%ZN!prqE!2hrN3$mrj`!p[rU!!!5k3$frj`!qrq8!2[rR!$ hrqN!!",S!2IrR!$irjS!q2qG!2Erk3!!%ZJ!p[qG!2ArS!$frj`!p[rT!!!5j`$ hrj`!m[qS!2,rR3$frqJ!!",R!2ErR3$Zrl!!l[qG!2Erk!!!%ZF!p[qG!1VrZ3$ Urjd!p[rR!!!5jJ$frji!j2r%!1ArR3$frqF!!",Q!2ErR3$Irp%!h[qH!2ErjJ! !%Z8!p[qH!0Arj3$9rjd!p[rQ!!!1j3$frji!MIqH!2ArjJ!!$Z3!p[qH!)lrRJ$ frq8!!!lN!2ErRJ#2rji!pIrP!!!Ai`$frjm!qrm"!!#Hr`!!qrqH!2Erj!!!&Z- !pIqI!2crr!#Mrri!qrqI!2Arj!!!&Z-!pIqI!2[rqJ#UrrS!r2qI!2Ari`!!&Z) !pIqI!2crq3#XrrN!r2qI!2Ari`!!&Z)!pIqI!2crq3#YrrN!r2qI!2AriJ!!&Z% !pIqI!2hrq!#ZrrN!r2qI!2AriJ!!(Z%!p2qJ!2crq3$irrd!arrq!2Mrq3$prjm !pIrK!!!Hi!$erjm!rIrj!2Mrp!$Drr3!q2rj!2hrS!$drq%!!"VJ!26rS!$prrN !q2r!!2Rrq3$prjm!pIrJ!!!Dh`$drk%!r2rj!2Rr`3$irrN!rIqJ!26ri!!!'Ym !p2qJ!2hrq3$irm)!q2rj!2hrS3$drpm!!"VH!26rS3$prrN!q2r#!2MrqJ$prk! !p2rI!!!Dh3$drk%!r[rj!2Mr`J$jrrN!rIqK!26rhJ!!'Yd!p2qK!2hrq3$jrm- !q2rj!2hrSJ$crpi!!"VF!26rSJ$prrN!qIr$!2Mrq3$prk)!p2rG!!!Dh!$crk- !rIrj!2Mra!$irrN!rIqM!26rh!!!'YX!p2qM!2hrq3$irm3!q2rj!2hrT!$crp` !!"VE!22rT!$prrN!q2r%!2Rrq!$prk8!mrrE!!!DfJ$crk8!rIrj!2Mra3$irrJ !rIqP!26rfJ!!'YN!mrqQ!2hrq!$jrm8!q2ri!2lrT3$crpS!!"VC!22rT3$qrrJ !qIr&!2Mrq!$qrkB!mrrC!!!Df!$crkB!r[ri!2Rra3$irrJ!r[qR!22rf!!!'YF !mrqR!2lrq!$irmB!q2ri!2lrU!$brpJ!!"[@!22rU!!"rrrh!2MraJ$irrF!!2q R!22re`!!'YB!m[qS!!$rp`$irmB!qIrf!!$rU!$crpB!!",9!2,rRJ$irmB!qIq G!22re3!!%Y3!m[qI!2MraJ$jrji!m[r9!!!5d`$brk!!q2r'!2RrR`$brp3!!", 6!2(rS3$irmB!qIqJ!2,rd`!!%Y)!mIqL!2Mra`$irk%!m[r5!!!5d3$ark-!q2r (!2MrSJ$brp%!!",3!2(rT!$irmF!q2qM!2,rd!!!%Xm!mIqP!2Mra`$irk3!mIr 3!!!5cJ$arkB!q2r(!2MrT3$armm!!",0!2(rT`$irmF!prqR!2(rcJ!!%X`!mIq S!2Mra`$hrkJ!mIr0!!!5b`$arkN!q2r(!2IrUJ$`rm`!!",+!2$rU`$irmB!q2q V!2$rb`!!%XN!m2qY!2IraJ$irk`!m2r+!!!5b!$`rki!prr'!2MrV3$`rmN!!", (!1rrX!$hrmB!prq`!1rrb!!!%XB!lrqa!2IraJ$hrl%!lrr(!!!5a3$Zrl3!p[r '!2IrX`$[rm8!!",$!1rrY3$frmB!p[qe!1rra!!!%X)!l[qi!2Era3$frlF!l[r $!!!5`3$YrlS!p[r%!2ErZJ$Yrm)!!",!!1hr[!$erm3!p[ql!1hr`3!!%Vi!lIq q!2Ara!$erli!lIqr!!!5[3$Xrm%!pIr$!26r`3$Xrli!!"+m!1[ra!$drm-!mrr %!1[r[3!!%VS!krr(!22r`J$crmJ!k[ql!!!5Z3$TrmX!mrr"!2,rb`$TrlS!!"+ h!1RrcJ$brm%!mIr1!1RrZ!!!%V8!k2r5!2(r`!$arp)!k2qf!!!5Y!$QrpF!m2q q!2$re`$Qrl8!!"+b!1Arh!$[rld!lrrE!1ArX`!!%V!!irrK!1lr[!$Zrq%!irq a!!!5VJ$KrqJ!l2qk!1crk3$Jrkm!!"+X!0hrm3$UrlJ!k[ra!0hrV3!!#US!ZIq f!,RrU`!!#UJ![2qd!,crU3!!#UB![rqb!,rrT`!!#U3!`[q`!-2rT!!!#U%!a[q Y!-MrS3!!#Ti!brqU!-crRJ!!#TX!d2qQ!0(rQ`!!#TF!e[qL!0IrP`!!#T-!hIq F!0lrN`!!#Si!j[q8!1MrM3!!r`!!!3!!!&P,!!"B5`!!!1d"JaS%&JS!!!!F!+S !"P4&69!!!!!k8%&(43!!!%C69&)J!!!!8P088L-!!!"H9%9B9!!!!'T`EQpd!!! !GP"*3e3!!!##!3!!!!!!!!!"J[IB!3!!#3!!!!S"J[E-!3!!%`!!!"B"J[HX!3! !'J!!!"X"J[J%!3!!)`!!!#%"J[JB!!!!,`!!!#8"J`1X!3!!1`!!!)F"J[I%#&4 PEA"XBA4P#9"KCf8J8fPkC3C"GA4SEh))5f9jGfpbC(-,4'9cBh*TF(4TEfi,5@j QEh*YBA4TEfi(8(*PGQPPGkJ,: release-cpan-changes.t100644000765000024 52112622157435 22276 0ustar00stephenenelsonstaff000000000000Convert-BinHex-1.125/t#!perl BEGIN { unless ($ENV{RELEASE_TESTING}) { require Test::More; Test::More::plan(skip_all => 'these tests are for release candidate testing'); } } use strict; use warnings; use Test::More 0.96 tests => 2; use_ok('Test::CPAN::Changes'); subtest 'changes_ok' => sub { changes_file_ok('Changes'); }; done_testing();