diff --git a/sys/arch/m68k/fpsp/README b/sys/arch/m68k/fpsp/README deleted file mode 100644 index 453413134d18..000000000000 --- a/sys/arch/m68k/fpsp/README +++ /dev/null @@ -1,1232 +0,0 @@ -SECTION 1 FLOATING POINT SOFTWARE PACKAGE TERMS. - -From: Microprocessor & Memory Technologies Group - Semiconductor Products Sector - 6501 William Cannon Drive West, - Mail Station OE33, Austin, Texas 78735-8598 - -To: FLOATING POINT SOFTWARE PACKAGE USERS - -Date: August 27, 1993 - - -1.1 TITLE TO FLOATING POINT SOFTWARE PACKAGE FPSP - -Title to the 68040 Floating Point Software Package, all copies -thereof (in whole or in part and in any form), and all rights -therein, including all rights in patents, and copyrights, -applicable thereto, shall remain vested in MOTOROLA. All -rights, title and interest in the resulting modifications belong -to MOTOROLA except where such modifications (a) are made -solely for use with computer systems manufactured or -distributed by user; (b) are themselves copyrightable; and (c) -would not constitute a copyright infringement if not licensed -hereunder. - - -1.2 DISCLAIMER OF WARRANTY. - -THE 68040 FLOATING POINT SOFTWARE PACKAGE is provided on an -"AS IS" basis and without other warranty except as stated herein. - -IN NO EVENT SHALL MOTOROLA BE LIABLE FOR INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING FROM USE OF THE 68040 -FLOATING POINT SOFTWARE PACKAGE. THIS DISCLAIMER OF -WARRANTY EXTENDS TO ALL USERS OF THE THE 68040 FLOATING -POINT SOFTWARE PACKAGE AND IS IN LIEU OF ALL WARRANTIES -WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING -IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR -PARTICULAR PURPOSE. - - -SECTION 2 Release 2.3 Errata - -As of this release, the following may be considered an -errata of the 040 (Mask 20D43B Mask 4D50D and Mask 5D98D) FPSP: - - 1. INEX1 reported by inexact conversion of packed source - operand for a dyadic instruction will not be reported - by the 040 upon completion of that instruction. This - errata corresponds to errata "F5" on the 68040 Errata Sheet. - Fixed in D98D. - - 2. FREM and FMOD with packed operands will occasionally - differ from the 881/2 results by one ulp in the conversion - of the packed source operand. - - 3. INEX2/AINEX are not calculated in the same manner as in the - 881/882 for some cases in which the result is overflowed. - Currently, if the operation was an integer move-out, INEX2/AINEX - is not set for any case. - In some cases of fscale with integer input, the INEX2 bit will not - be set on inex calculation. - Under extended rounding precision, FSCALE results which underflow - and are inexact may be incorrectly rounded. Inaddition, INEX2 - is not signaled in these cases. - - 4. If an Fmove FPn,FPM(this also applies to the FNEG and FABS), is preceded by any floating point operation with a denorm source operand , the FMOVE - destination (FPm) is incorrectly tagged and may result in silent data - corruption. A software fix in release 2.2. - - - -SECTION 3 Software Specification for an MC68040 Floating- - Point Software Package - -The purpose of this section is to provide an overview of -the floating-point software package (FPSP) for the -MC68040. The FPSP emulates the floating-point -instructions of the MC68881/MC68882 which are not provided -by the MC68040. - - -3.1 DEFINITIONS, ACRONYMS, AND ABBREVIATIONS - -FPn - Floating-Point Data Register Source -FPSP - Floating-Point Software Package -FPU - Floating-Point Unit -FPx - Floating-Point Data Register -See the Glossary of Reference 1 for additional -definitions. - - -3.2 PRODUCT OVERVIEW - -The FPSP adds additional floating-point capabilities to -the MC68040. A subset of the MC6888x instruction set is -executed by the MC68040 on-chip FPU. The remaining -floating-point instructions are emulated in software by -the FPSP (see Reference 2). There are two types of FPSP: -one for applications compiled for the MC68881/MC68882 and -another for applications compiled for the MC68040 (see -3.8.2 Packaging). - -The FPSP provides: -* Arithmetic and Transcendental Instructions -* Decimal Conversions -* Exception Handlers -* MC68040 Unimplemented Data Type and Data Format Handlers -There are two types of users: 1) end users who are running -applications and 2) system integrators who will install -the package (see 3.8.3 Site Adaptations). - - -3.3 GENERAL CONSTRAINTS - -The FPSP satisfies the requirements of the ANSI IEEE -Standard for Binary Floating-Point Arithmetic 754. The -FPSP runs old user code unchanged and is transparent for -old code. The FPSP is easy to modify and install. The -performance of the transcendental function routines is -equivalent or superior to that of a 33-MHz -MC68881/MC68882. The error bound is equivalent or -superior to the MC68881/MC68882 (see 3.7.2 Accuracy). - - -3.4 ASSUMPTIONS AND DEPENDENCIES - -The FPSP can be installed into any operating system. The -MC68040 FPU shall be implemented as described in Reference -2. Table 3-1 Lists the functions provided by the MC68040. - - -3.5.2 Exceptions - -The main goal of the FPSP exception handlers is to provide -the user with an easy path to port over existing MC68882 -exception handlers for use with the MC68040. The end -result is that the FPSP provides an entry point so that -once this point is reached, there is an indication that -an IEEE-defined trap condition exist. - - -3.5.2.1 BSUN Ñ BRANCH/SET ON UNORDERED. - -On a trap-enabled condition, the FPSP updates the floating-point -instruction address register (FPIAR) by copying the PC -value in the pre-instruction stack frame to the FPIAR. -Once this is done, the exceptional frame is restored -without clearing the exception, and the program flow goes -to the FPSP provided entry point. At the entry point the -MC68040 is in an exceptional state, ready to execute the -user-supplied exception handler. - - -3.5.2.2 SNAN Ñ SIGNALING NOT-A-NUMBER. - -On a trap-disabled condition, and if the destination format is B, -W,or L, then the FPSP stores the most significant 8, 16, or -32 bits, respectively, of the SNAN mantissa, with the SNAN -bit set, to the destination. The FPSP discards the -exceptional frame, then returns to the main program flow -without entering the FPSP provided entry point, hence the -user-provided exception handler is not executed. - -On a trap-enabled condition, the FPSP checks if the -destination format is B, W, or L. Then, the FPSP stores -the most significant 8, 16, or 32 bits, respectively, of -the SNAN mantissa, with the SNAN bit set, to the -destination. The FPSP then restores the exceptional frame -without clearing the exception, and branches to the FPSP -provided entry point. At the entry point, the MC68040 is -in an exceptional state, ready to execute the user- -supplied exception handler. - - -3.5.2.3 OPERR Ñ OPERAND ERROR. - -This exception traps through vector number 52. -Table 3-3 shows the operand errors generated by the MC68040. -Table 3-4 shows the operand errors generated by the FPSP. -Note that the FPSP Unimplemented Instruction Handler -detects and adds to the cases in which OPERR exceptions -occur. Refer to Table 3-4 for these specific exception- -causing conditions. - -On a trap-disabled condition, the FPSP checks if the -operand error is caused by an FMOVE to a B, W, or L memory -or integer data register destination. If it is caused by -an integer overflow or if the floating-point data register -to be stored contains infinity, the FPSP stores the -largest positive or negative integer that can fit in the -specified destination format size. If the destination is -integer and the floating-point number to be stored is a -NAN, then the 8, 16, or 32 most significant bits of the -NAN significand is stored as a result. -Next the FPSP checks for a false OPERR condition for an -FMOVE to memory or integer data register. This condition -occurs if the operand is equal to the largest negative -integer representable in its format. The FPSP then stores -the proper result, discards the exceptional frame, and -returns to the main program flow without executing the -user-supplied exception handler. - -On a trap-enabled condition, the FPSP does the same -functions as the above trap-disabled condition, with the -exception that in the end, the FPSP restores the -exceptional frame without clearing the exception and -branches to the FPSP supplied entry point instead of -returning to the main program flow. At the FPSP supplied -entry point, the MC68040 is in an exceptional state, ready -to execute the user-supplied exception handler. - - - -3.5.2.4 OVFL Ñ OVERFLOW. - -This exception traps through vector number 53. - -On a trap-disabled case, the FPSP stores the result in the -destination as determined by the rounding mode at the -destination as follows: - -Rounding Mode Result - RN Infinity, with the sign of the intermediate result - RZ Largest magnitude number, with the sign of the - intermediate result. - RM For positive overflow, largest positive - number - For negative overflow, infinity - RP For positive overflow, infinity - For negative overflow, largest negative - number - -The FPSP then clears the appropriate exception bit in -the frame and restores the non-exceptional frame into -the MC68040, and then returns to the main program flow. - -On a trap-enabled case, the FPSP actions are identical to -those found in the trap-disabled case, with the exception -that instead of restoring a non-exceptional frame, the -original exceptional frame is restored to the MC68040 and -the FPSP branches to the FPSP supplied entry point. At -this entry point, the MC68040 is in an exceptional state, -ready to execute the user-supplied exception handler. - - -3.5.2.5 UNFL Ñ UNDERFLOW. - -This exception traps through vector number 51. - -On a trap-disabled case, the FPSP stores the result in the -destination as determined by the rounding mode at the -destination as follows: - - RN Zero with the sign of the intermediate result. - RZ Zero with the sign of the intermediate result. - RM For positive underflow, +zero. For negative - underflow, the smallest denormalized - negative number. - RP For positive underflow, the smallest denormalized - positive number. For negative underflow, -zero. - -The FPSP then clears the appropriate exception bit in the -frame and restores the non-exceptional frame into the -MC68040, and then returns to the main program flow. - -On a trap-enabled case, the FPSP actions are identical to -those found in the trap-disabled case, with the exception -that instead of restoring a non-exceptional frame, the -original exceptional frame is restored to the MC68040 and -the FPSP branches to the FPSP supplied entry point. At -this entry point, the MC68040 is in an exceptional state, -ready to execute the user-supplied exception handler. - - -3.5.2.6 DZ Ñ DIVIDE BY ZERO. - -Note that the FPSP Unimplemented Instruction Handler detects -and adds to the cases in which DZ exceptions occur. Refer to -Table 3-5 for these specific exception-causing conditions. -Table 3-6 lists the DZ exceptions generated by the MC68040. - -The FPSP is not needed for this exception. The user- -supplied exception handler is always entered. A system -call is provided by the FPSP to calculate the exceptional -operand. - - -3.5.2.7 INEX1/INEX2 Ñ INEXACT RESULT 1/2. - -Note that the FPSP Unimplemented Instruction Handler detects -and allows INEX1 exceptions to occur. Furthermore, many new -cases of INEX2 exceptions may be generated by the FPSP -Unimplemented Instruction Handler as well. The INEX1 -exception traps into this handler as well as INEX2 -exceptions. - -The FPSP is not needed for this exception. The user- -supplied exception handler is always entered. - - -3.5.3 Instructions - -The following paragraphs describe the arithmetic and -transcendental instructions supported by the FPSP. - - -3.5.3.1 ARITHMETIC. - -Table 3-7 shows the arithmetic instructions supported by the FPSP. - - -3.5.3.2 TRANSCENDENTAL. - -Table 3-8 shows the transcendental instructions supported by the FPSP. - - -3.6 EXTERNAL INTERFACE REQUIREMENTS - -For end users the FPSP is transparent; system Integrators -will integrate the FPSP into their system. (See 3.8.3. -Site Adaptations) - -For applications compiled for the MC68881/MC68882 the FPSP -provides kernel routines to support the MC68040 -unimplemented instructions. The MC68040 uses vector -number 11 for the unimplemented instructions. The MC68040 -stack frames are different for unimplemented -MC68881/MC68882 instructions and other F-line traps. For -applications compiled for the MC68040 the unimplemented -instructions are contained in a library (to avoid the -F_line trap overhead at runtime). - -For both applications the FPSP provides kernel routines to -support exceptions (vectors 48Ñ54) and unsupported data -types (vector 55). - - -3.7 PERFORMANCE REQUIREMENTS - -The following paragraphs describe the speed, accuracy, and -compatibility requirements for the FPSP. - - -3.7.1 Speed - -The performance of the transcendental function routines is -equivalent or superior to that of a 33-MHz -MC68881/MC68882. - - -3.7.2 Accuracy - -The following paragraphs describe the arithmetic -instructions, transcendental instructions, and decimal -conversions for the FPSP. - - -3.7.2.1 ARITHMETIC INSTRUCTIONS. - -The error bound is one-half unit in the last place of the -destination format in the round-to-nearest mode, and one -unit in the last place in the other rounding modes. - - -3.7.2.2 TRANSCENDENTAL INSTRUCTIONS. - -The error bound is less than 0.502 ulp of double precision. - - -3.7.2.3 DECIMAL CONVERSIONS. - -The error bound is 0.97 unit in the last digit of the -destination precision for the round-to-nearest mode; and -1.47 units in the last digit of the destination precision for -the other rounding modes. - - -3.7.3 Compatibility - -The FPSP transcendental calculation results are not the -same as for the MC68881/MC68882. This is because the -algorithms used by the MC68881/MC68882 (CORDIC) cannot be -effectively implemented in software. All other -calculations are identical. The error bound is equivalent -or superior to the MC68881/MC68882. - - -3.8 OTHER REQUIREMENTS - -The following paragraphs describe other requirements for -the FPSP, such as maintainability, packaging, and site -adaptations. - - -3.8.1 Maintainability - -The speed requirements have forced writing most of the -package in assembly language. - - -3.8.2 Packaging - -There are two versions of the FPSP. The FPSP Kernel -Version is used to execute pre-existing user object code -written for the MC68882. This is installed as part of the -operating system. User applications need not be recompiled -or modified in any way once the FPSP Kernel Version is -installed. - -The FPSP Library Version is used to compile code that uses -only the MC68040-implemented floating point instructions. -The library version provides less overhead than the FPSP -Kernel Version. Other features of this library includes -ABI compliance as well as IEEE exception-reporting -compliant. It is not however, UNIX exception-reporting -compliant. The FPSP is not yet available in library -format. - - -3.8.3 Site Adaptations - -Some of the entries in the vector table needs to point to -entry points within the FPSP Kernel Version. For those -vectors the FPSP displaces, an entry point is provided to -replace that which it takes. Note that former MC68882 -floating-point exception handlers need to go through minor -modifications to account for the differences between the -MC68040 and MC68882 floating point exceptional state -frames. The FPSP provides skeleton code for each floating- -point exception handler to aid in porting the MC68882 -floating-point exception handlers. - -For systems and applications that never set any of the -exception bits in the FPCR, or if the former MC68882 -floating-point exception handlers only contain minimum -code needed to clear the exception and return, no work is -needed and the FPSP is a drop-in package. - -The FPSP Library Version needs to "intercept" the -appropriate math library calls which use MC68882 -transcendental instructions. Since each site has different -naming conventions, the FPSP subroutines need to be -renamed accordingly and recompiled. The resident compiler -also needs to provide a library path search pattern such -that the FPSP is given a chance to resolve those -trancendentals instructions. - - -3.8.4 Stack Area Usage - -To achieve code re-entrace, the FPSP allocates context- -sensitive variables on the stack. The FPSP does not -require more than 512 bytes on the stack per context. This -may be an installation concern for UNIX applications in -which there is a limited UBLOCK area, and that the system -stack resides there. - - -3.8.5 ROM-based applications - -One of the goals of the FPSP Kernel Version is to be able -to fit in a read-only space of no more than 64 KBytes. -There are two main sections that need to reside in ROM. -The text section, and the initialized data section. The -text section accounts for 65% while the initialized data -section accounts for 35%. - - -3.9 FPSP KERNEL VERSION INSTALLATION NOTES - -The following paragraphs provide the MC68882 users with an -understanding of the issues involved in porting over the -FPSP into existing MC68030/MC68882 systems. Once these -issues are understood, then the actual installation is -explained. - - -3.9.1 Differences between the MC68040 and MC68882 - Floating-point Exception Handling - -The main reason for providing the FPSP is to provide -MC68882 compatibility. If the installer understands the -main differences between the MC68882 and MC68040 in the -area of floating-point exception handlers, skip this -section and go to the next section. - -There are three areas that differ between the MC68040 and -MC68882. - -The first difference is that of unimplemented -instructions. The FPSP handles this by means of the F-line -exception handling. This means that if there is an -existing F-line handler, the FPSP replaces the existing F- -line exception handler, but provides an alternate entry -point for the existing F-line handler. - -The second difference is unsupported data types. The -MC68040 provides a new entry point in the vector table, -therefore no existing handler is replaced by the FPSP. -There are no installation issues here. - -The third difference is that of floating point exception -differences. This issue is more involved and requires -further explanations. - -The IEEE standard allows the user to enable or disable -each floating point exception individually. If an -exceptional condition occurs, the IEEE defines a specific -action for the trap-disabled condition, and it also -defines certain specific actions for a trap-enabled -condition. The IEEE standard however, does not constrain -the implementation of exception handling; both software -and hardware can be used. - -The MC68882 supports the IEEE exception handling -compliance totally in hardware. For example, a user- -disabled (trap disabled) exception will cause the -specified IEEE defined actions for user-disabled exception -handling to occur. Similarly, user-enabled exceptions -will cause the MC68882 to take the exception as defined by -the IEEE trap enabled case. - -The MC68040 provides full IEEE trap-disabled exception -handling compliance for the INEX and DZ exceptions. Just -as the MC68882, the MC68040 takes these exceptions only -for an IEEE trap-enabled condition. Existing MC68882 -handlers have a minimum code requirement as defined by the -MC68882 User's Manual. As the MC68882 handlers, the -MC68040 handlers have a minimum code requirement as well. -The FPSP provides this minimum code requirement. - -The MC68040 does not provide full IEEE exception -compliance on IEEE defined trap-disabled conditions for -the following exceptions: OVFL, UNFL, OPERR, SNAN. For -these exceptions, the MC68040 may take an exception even -on an IEEE-defined trap-disabled condition. The FPSP -provided exception handlers decide if its job is to -implement IEEE trap-disabled exception compliance, (and -therefore not execute the user supplied exception handler) -or to implement IEEE trap-enabled exception compliance, -(hence executing the user supplied exception handler). The -FPSP provides a user entry point so that when this entry -point is taken an IEEE-defined trap-enabled condition has -definitely occurred. At this specified entry point, an -exception handler written for the MC68882 needs to be -modified to account for MC68040 stack differences, and -then placed at the user entry point. - -As with the MC68882, there is a minimum code requirement -for the MC68040 handler, but this minimum code is provided -by the FPSP. - -From an installation perspective, the OVFL, UNFL, OPERR, -SNAN exception handlers are replaced by the FPSP handlers, -but the FPSP provides an entry point so that MC68882-like -exception handlers may be written. Furthermore, minimum -code is provided by the FPSP and can be used as a -template. - -The BSUN exception is different in that unlike the -previous exception handlers, the difference between the -MC68882 and MC68040 resides in the IEEE-defined trap -enabled case. The FPSP handles this by performing the -patch needed for MC68882 compatibility, and then restoring -the exception to the MC68040 without performing the -necessary steps to clear the BSUN exception. The -exceptional frame is restored into the MC68040 and the -FPSP branches to the user entry point provided. At this -entry point, an MC68882-like exception handler written for -the MC68040 is executed without having to worry about the -built-in incompatibility. Although this method incurs a -performance hit, it frees the user-defined exception -handler from having to write the code needed to implement -MC68882 code compatibility. As with the other exception -handlers, the FPSP provides the minimum code needed. - -In summary, the FPSP replaces the following exception -handlers and provides an entry-point for MC68882-like -exception handlers for these exceptions: OVFL, UNFL, -OPERR, SNAN, BSUN, F-line. - -The FPSP is not needed for the INEX and DZ exception -handlers, and these exception handlers just need to be -MC68882-like. - - -3.9.2 Vector Table - -The entry point into the FPSP is achieved by having the -appropriate vector table offset point to a specified entry -point within the FPSP. For simplicity, all of the FPSP -main entry points are found in the file skeleton.sa. -Table 3-9 shows the vector table offset and the -appropriate labels within the file skeleton.sa that it -needs to point to. Figure 3-1 shows a flowchart of the -entry points. - -Once the entry point is reached, the user may add some -user-specific code prior to jumping to the FPSP routines ( -FPSP routines are prefixed by "fpsp_"). After the jump to -the FPSP routines, the FPSP performs its function and then -jumps to the FPSP supplied entry points (if needed) found -in the file skeleton.sa. - - -3.9.3 FPSP Supplied Entry Points - -To replace the vector table entries it displaces, the FPSP -provides an alternate entry point. For simplicity, all of -the FPSP supplied entry points are found in the file -skeleton.sa. The FPSP supplied F-line exception entry -point is straight-forward. An F-line exception handler -written for an MC68030 can be placed here without -modifications. The Unsupported Data Type exception handler -is newly-defined, it does not displace any MC68030/MC68882 -exception handler. Therefore, the FPSP does not provide an -alternate entry point for this exception. - -The alternate entry points have the naming convention such -that the specified exception handler is prefixed by -"real_". For instance, the entry point for user-supplied -BSUN exception handler is named "real_bsun". - -For the floating-point exception handlers (BSUN, OPERR, -SNAN, DZ, OVFL, and UNFL) previously written for an -MC68882 based system, these handlers need to be modified -slightly for use with the MC68040. Once these handlers are -modified, they are then placed in the FPSP provided entry -points. - - -3.9.4 Extract the Hardware Independent portion of -the MC68882 handlers - -To modify the existing MC68882 handlers, all of the code -used in accessing the MC68882 generated frame needs to be -stripped off. The code used in clearing an MC68882 -exception (setting bit 27 of the BIU Flag) needs to be -stripped off as well. Only the hardware independent -portions of the MC68882 handlers may be used. - -To aid the installer in rewriting the MC68882 exception -handlers, the file skeleton.sa provides the minimum code -necessary to clear the exception once the specific handler -is entered. - -Once the hardware-independent portion is written, the -modified MC68882 handlers need to be integrated into the -portion of the code which is hardware dependent. The -minimum code needed by each exception handler is already -provided by the FPSP within the file skeleton.sa. The -following section describes the mechanics behind the -written code. - - -3.9.5 MC68040 Minimum Exception Code - -This section describes the minimum requirements for the -user-supplied exception handlers. As mentioned in the -previous sections, these minimum handlers are provided as -part of the package, and this section is strictly for the -user's information only. - -As with the MC68882, if all exceptions are always -disabled, no minimum code is necessary since the FPSP -guarantees that these FPSP provided entry points are never -entered on trap-disabled condition. Therefore, for -existing systems that do not provide exception handlers -for the MC68882, it is likely that the assumption that all -exceptions are always disabled is valid, and therefore no -user-defined MC68040 exception handlers are needed either. - -The above paragraph should not be interpreted to mean that -the FPSP provided exception handlers are unnecessary. On -the contrary, the FPSP provided exception handlers are -needed, and that these FPSP exception handlers provide the -entry points for user-defined exception handlers. Whether -or not the user-defined MC68040 exception handers are -needed is the issue being discussed. - -Assuming that it is possible that the exceptions are -enabled at some point, the minimum exception handler is -similar to that defined for an MC68882. As with the -MC68882, the MC68040 requires that the first floating -point instruction be an FSAVE. Unlike the -MC68882, the MC68040 does not always require an equivalent -FRESTORE. For an E1 exception, only the FSAVE requirement -is needed, the state frame may be discarded. The E3 -exception is more similar to that found in an MC68882. As -with the MC68882, the E3 exception requires an FSAVE, an -instruction that clears the exception in the resulting -FSAVE stack, followed by an FRESTORE. - -If both E3 and E1 exceptions exist at the same time, then -the exception is handled as though it were an E3 -exception. After which, the MC68040 re-traps to handle the -E1 exception. - -The E3 exception can only be reported by the following -exception handlers: OVFL, UNFL, INEX. For these exception -handlers, this is the minimum code requirement: - 1) FSAVE - 2) if E3 bit set, goto (4), else goto (3) - 3) E1 exception, throw away stack and RTE - 4) Clear E3 bit, FRESTORE, RTE - -The E3 exception cannot be reported by the following -exception handlers: SNAN, OPERR and DZ. Since only an E1 -exception needs to be handled here, this is the minimum -code requirement: - 1) FSAVE - 2) throw away stack and RTE - -For the BSUN exception handler, the minimum code -requirement is: - 1) FSAVE - 2) Do one of 4 methods described in MC68040 User's - Manual - 3) throw away stack and RTE - -If the above minimum code requirements are not met, then, -an infinitely looping exception sequence occurs. - - -3.9.6 Mem_read and Mem_write - -The mem_write and mem_read subroutines are used by the -FPSP to read and write from user space. These routines -perform a UNIX system call to lcopyin and lcopyout. The -FPSP provides a simple version of lcopyin and lcopyout for -non-UNIX applications. Installation to UNIX-based systems -requires that the FPSP provided lcopyin and lcopyout be -deleted or commented out. For simplicity, these -subroutines are found in the file skeleton.sa. - -The production version of the FPSP is fully re-entrant. If -a page fault occurs on either a mem_read or mem_write, the -operating system may perform a page-in operation and still -allow other processes to use the FPSP. - - -3.9.7 Increasing F-line Handler Performance - -The FPSP was written to handle all possible cases of -MC68040 vs MC68030/MC68882 problem areas. Any performance -improvement in this handler increases floating-point -performance. The F-line handling may be made quicker by -pointing the vector table entry directly into the label -"fpsp_unimp" found in the file x_unimp.sa, if these -conditions are met: - - 1) That the system never has to execute an FMOVECR - instruction in which bits 0 to 5 of the F-line word are - non-zero. - - 2) An alternate F-line entry point is unnecessary. - This optimization saves a total of three instructions. ( 1 - bra, 1 cmpi, 1 beq). - - -3.10 REFERENCES - -1. MC68881UM/AD, MC68881/MC68882 Motorola Floating-Point - Coprocessor User's Manual. Motorola Inc., 1989 -2. M68040UM/AD M68040 32-Bit Microprocessor User's - Manual, Motorola, Inc.,1992, -3. MC68020UM/AD, MC68020 32-Bit Microprocessor User's - Manual, Motorola, Inc., 1990. -4. MC68030UM/AD, MC68030 Enhanced 32-Bit Microprocessor - User's Manual, Motorola Inc., 1990 -5. ANSI/IEEE Std. 754,1985 Standard for Binary Floating- - Point Arithmetic -6. M68000PM/AD REV. 1 Programmer's Reference Manual. Motorola Inc., 1992 - - -3.11 Tables and Figures - - Table 3-1. Functions Provided by MC68040 - ------------------------------------------------------------------ - Name | Description - ------------------------------------------------------------------ - FMOVE Move to FPU - FMOVEM Move Multiple Registers - FSMOVE Single-Precision Move - FDMOVE Double-Precision Move - FCMP Compare - FABS Absolute Value - FSABS Single-Precision Absolute Value - FDABS Double-Precision Absolute Value - FTST Test - FNEG Negate - FSNEG Single-Precision Negate - FDNEG Double-Precision Negate - FADD Add - FSUB Subtract - FDIV Divide - FMUL Multiply - FBcc Branch Conditionally - FScc Set According to Condition - FDBcc Test Cond, Dec and Branch - FTRAPcc Trap Conditionally - FSADD Single-Precision Add - FSSUB Single-Precision Subtract - FSMUL Single-Precision Multiply - FSDIV Single-Precision Divide - FDADD Double-Precision Add - FDSUB Double-Precision Subtract - FDMUL Double-Precision Multiply - FDDIV Double-Precision Divide - FSQRT Square Root - FSSQRT Single-Precision Square Root - FDSQRT Double-Precision Square Root - FNOP No Operation - FSAVE Save Internal State - FRESTORE Restore Internal State - FSGLDIV Single-Precision Divide (68882 compatible) - FSGLMUL Single-Precision Multiply (68882 compatible) - ------------------------------------------------------------------ - - - Table 3-2. Support for Data Types and Data Formats - ------------------------------------------------------------------ - | Data Formats - |---------------------------------------------------- - Data Types | SGL | DBL | EXT | Dec | Byte | Word | Long - ------------------------------------------------------------------ - Norm * * * @ * * * - Zero * * * @ * * * - Infinity * * * @ - NaN * * * @ - Denorm # # @ @ - Unnorm @ @ - ------------------------------------------------------------------ -Notes: - @ = supported by FPSP - * = supported by the MC68040 FPU - # = supported by FPSP after being converted to extended precision by - MC68040 - - - Table 3-3. Operand Errors Handled by the MC68040 - ------------------------------------------------------------------ - Instruction | Conditions Causing Operand Error - ------------------------------------------------------------------ - FADD ( + inf )+( - inf ) or (- inf )+( + inf ) - FSUB ( + inf )-( + inf ) or (- inf )-(- inf ) - FMUL ( 0 ) x ( inf ) or ( inf ) x ( 0 ) - FDIV 0 / 0 or inf / inf - FMOVE.BWL Integer overflow, Source is NaN, or Source is inf - FSQRT Source < 0, Source = - inf - ------------------------------------------------------------------ - - - - Table 3-4. Operand Errors Generated by the FPSP - ------------------------------------------------------------------ - Instruction | Condition Causing Operand Error - ------------------------------------------------------------------ - FSADD ( + inf )+( - inf ) or ( - inf )+( + inf ) - FDADD ( + inf )+( - inf ) or ( - inf )+( + inf ) - FSSUB ( + inf )-( + inf ) or ( - inf )-( - inf ) - FDSUB ( + inf )-( + inf ) or ( - inf )-( - inf ) - FSMUL ( 0 ) x ( inf ) or ( inf ) x ( 0 ) - FDMUL ( 0 ) x ( inf ) or ( inf ) x ( 0 ) - FSDIV 0 / 0 or inf / inf - FDDIV 0 / 0 or inf / inf - FCOS Source is +/- inf - FSIN Source is +/- inf - FTAN Source is +/- inf - FACOS Source is +/- inf, > +1, or < -1 - FASIN Source is +/- inf, > +1, or < -1 - FATANH Source is > +1, or < -1, Source = ± inf - FSINCOS Source is +/- inf - FGETEXP Source is +/- inf - FGETMAN Source is +/- inf - FLOG10 Source is < 0, Source = - inf - FLOG2 Source is +/- inf, > +1, or < -1 - FLOGN Source is +/- inf, > +1, or < -1 - FLOGNP1 Source is < -1, Source is = - inf - FMOD FPx is +/- inf or Source is 0, Other Operand is not a - NaN - FMOVE to P Result Exponent > 999 (Decimal) or k-Factor > +17 - FREM FPx is +/- inf or Source, Other Operand is not a NaN - FSCALE Source is +/- inf, Other Operand is not a NaN - ------------------------------------------------------------------ - - Table 3-5. DZ Exceptions Generated by the FPSWP - ------------------------------------------------------------------ -Ê Instruction | Condition Causing DZ Exception - ------------------------------------------------------------------ - FATANH Source Operand = $ + -$1 - FLOG10 Source Operand = 0 - FLOG2 Source Operand = 0 - FLOGN Source Operand = 0 - FLOGNP1 Source Operand = -1 - FSGLDIV Source Operand = 0 and FPn is not a NaN, Infinity, - or 0 - ------------------------------------------------------------------ - - - Table 3-6. DZ Exceptions Generated by the MC68040 - ------------------------------------------------------------------ - Instruction | Condition Causing DZ Exception - ------------------------------------------------------------------ - FDIV Source Operand = 0 and FPn is not a NaN, Infinity, - or 0 - FSDIV Source Operand = 0 and FPn is not a NaN, Infinity, - or 0 - FDDIV Source Operand = 0 and FPn is not a NaN, Infinity, - or 0 - ------------------------------------------------------------------ - - - Table 3-7. Arithmetic Instructions - ------------------------------------------------------------------ - Name | Description - ------------------------------------------------------------------ - FADD* Add - FSUB* Subtract - FSADD*+ Single-Precision Add - FSSUB*+ Single-Precision Subtract - FDADD*+ Double-Precision Add - FDSUB*+ Double-Precision Subtract - FMUL* Multiply - FDIV* Divide - FSMUL*+ Single-Precision Multiply - FSDIV*+ Single-Precision Divide - FDMUL*+ Double-Precision Multiply - FDDIV*+ Double-Precision Divide - FINT Integer Part - FINTRZ Integer Part (Truncated) - FABS* Absolute Value - FNEG* Negate - FGETEXP Get Exponent - FGETMAN Get Mantissa - FTST* Test Operand - FCMP* Compare - FREM IEEE Remainder - FSCALE Scale Exponent - FMOVE* Move FP data register - FSMOVE* Single-Precision Move - FDMOVE* Double-Precision Move - FSQRT* Square Root - FSSQRT* Single-Precision Square Root - FTWOTOX 2 to the X Power - FMOD Modulo Remainder - FDSQRT* Double-Precision Square Root - FDMOD Double-Precision Modulo Remainder - FSMOD Single-Precision Modulo Remainder - ------------------------------------------------------------------ -Notes: - * The FPSP provides these functions for all decimal data formats, - single, double, and extended denormalized data types, and extended - unnormalized data types. The MC68040 provides these functions - for the remaining formats and types (See page 11 of Reference 2). - + Additional functions which are not provided by the MC68881/MC68882. - - - Table 3-8. Transcendental Instructions - ------------------------------------------------------------------ - Name | Description - ------------------------------------------------------------------ - FCOS Cosine - FSIN Sine - FACOS Arc Cosine - FASIN Arc Sine - FCOSH Hyperbolic Cosine - FSINH Hyperbolic Sine - FSINCOS Simultaneous Sine & Cosine - FATAN Arc Tangent - FTAN Tangent - FATANH Hyperbolic Arc Tan - FTANH Hyperbolic Tangent - FLOG10 Log Base 10 - FLOG2 Log Base 2 - FLOGNP1 Log Base e of (x+1) - FLOGN Log Base e - FETOXM1 (e to the x Power) -1 - FETOX e to the x Power - FTWOTOX 2 to the x Power - FTENTOX 10 to the x Power - ------------------------------------------------------------------ - - - Table 3-9. FPSP Provided Entry Points - ------------------------------------------------------------------ - Exception Type | Vector Table | FPSP entry | User entry - | (offset) | point | point - ------------------------------------------------------------------ - F-line unimplemented vector 11 ($2C) fline real_fline - float instruction - ------------------------------------------------------------------ - Branch or set on vector 48 ($20) bsun real_bsun - unordered - ------------------------------------------------------------------ - Inexact vector 49 ($C4) inex real_inex - ------------------------------------------------------------------ - Divide-by-zero vector 50 ($C8) dz real_dz - ------------------------------------------------------------------ - Underflow vector 51 ($CC) unfl real_unfl - ------------------------------------------------------------------ - Operand error vector 52 ($D0) operr real_operr - ------------------------------------------------------------------ - Overflow vector 53 ($D4) ovfl real_ovfl - ------------------------------------------------------------------ - Signalling Not-A- vector 54 ($D8) snan real_snan - Number - ------------------------------------------------------------------ - Unsupported data type vector 55 ($DC) unsupp - ------------------------------------------------------------------ - - - File: skeleton.sa - |---------------------| - | | File: x_unfl.sa - | | |----------------------| - VECTOR | | | | - TABLE | | /->|fpsp_unfl: | - |------------| /->|unfl: | | | . | - | | | | jmp fpsp_unfl ----|-/ | . | - | | | | | | . | -vbr+$cc |addr of unfl|-/ | | | HANDLE NON-MASKABLE | - | | |real_unfl: <--------|--\ | EXCEPTION CONDITION | - | | | . | | | . | - | | | . | | | . | - | | | . | | | . | - | | | USER TRAP HANDLER | | | | - |------------| | . | | | if FPCR Exception | - | . | | | Byte UNFL bit set,| - | . | \-|-- jmp real_unfl | - |rte . | | else rte | - | | |----------------------| - |---------------------| - Figure 3-1 FPSP Entry Points - - - -SECTION 4 FPSP Library Version - -4.1 When to use the FPSP Library Version. - -The FPSP Library Version is intended to provide better performance for -trancendental instructions. It gets its performance by avoiding the -overhead involved in F-line trap emulation, as used by the Unimplemented -Instruction Handler. The FPSP Library Version is optional, and user code -needs to be recompiled to make use of it. - - -4.2 Installation Notes - -The library version of the FPSP can be built by running 'make libFPSP.a' -from either the Makefile (for asm syntax) or fpsp.mk (for as syntax). -The 'make convert' step in Makefile will build both kernel and library .s -files from the .sa sources. Change the SYS= and PREFIX= variables -in Makefile BEFORE running 'make convert'. Three templates are supplied -for building the library version: GEN, CI5 and R3V6. The GEN templates -generate entry points for single, double and extended precision routines and -provide the closest emulation of the kernel FPSP. The CI5 and R3V6 -templates are faster, but discard most of the condition code and control -register handling, and only provide the double precision entry points. - -The entry point names are contained in L_LIST. Change the first 3 -entries of each line to suit your system. - - -4.3 Differences in the library version: - - 1.) Single and Double precision SNAN's will not generate an SNAN - exception because they are converted to extended precision - and doing so causes them to turn into non-signalling NAN's. - - Example: facos.d 7ff7_ffff_ffff_ffff snan - - 2.) An enabled Inexact exception may not be taken in all cases. - - Example: facos.x 000000000000000000000001 d inex2 - fint.x 403d_0000_aaaa_aaaa_aaaa_ffff inex2 - - 3.) The return value in fp0 is undefined when an enabled OPERR or DZ - exception ocurrs. In the kernel FPSP, the destination register - is unchanged. - - 4.)fscale does not return the right result when an underflow ocurrs. - The problem is that the t_unfl code in the l_support.sa file - cannot exactly mimic the kernel FPSP version because the incoming - FPCR is not in the same place every time. - - -4.4 Changes in the library version of FPSP rel 2.3: - - A floating point exception occurs when a transcendentals called twice. - example: main() - { double d; - d= 0.0; - x = facosd(0.0); - y = facosd(d); - } - This is fixed in release 2.2 of FPSP. - A followup on the above bug was to restore the fpcr beforw it unlinks. - This is fixed in release 2.3 of FPSP. - - -4.5 Performance - -Overall, the library version is twice as fast as the kernel code. - - -APPENDIX A BUG TEMPLATE - -Use the template below when reporting bugs. - -Any fields designated with an asterick (*) can be left blank. -When complete, please fax the report to the following -phone number : - - (800) 248-8567 - -To assist you in filling out this form, a description of each field follows -the template. -Should you have any questions, please fax us at the above number. ----------------------------------------------------------------------------- - -Problem# (0-0000) - -Key Words - -Severity (1,2,3) - -Customer Description - -Long Description - -System Description - -Date Reported - -Reported By - -Phone - -*Resolved? - -*Date Resolved - -*Who fixed - -*Correction Description - -*Modules Affected - -Problem Release/Load - -*Test suite passed - -*sccs version control - ---------------------------------------------------------------------------- - -The following is a brief description of how to use the bug report template. - ---------------------------------------------------------------------------- - -Problem# (0-0000) You may include a number that you will use internally - to track this bug. We will log it but assign our own - # to track your bug repair. Please choose one person - as the individual to send in all bug reports for your - firm. This should help avoid confusion and ensure a - smooth working relationship. - -Key Words Indicate the key terms associated with this bug - report. For example: fpcr, denorm - -Severity (1,2,3,4,5) This indicates the severity of the bug. - The following descriptions are taken from AT&T test - document: - 1: an error that causes the FPSP to crash and no - further work can be done. An error that causes gross - deviations of results. Non-waiverable compliance - violations are also severity 1. - 2: an error that represents a substantial deviation in - the functionality of the FPSP or deviation from - IEEE 754 standard. - 3: an error that represents a deviation in the - functionality. However, the customer is able to - implement a workaround to this problem. - 4: an error that represents a minor deviation or - incorrect documentation. - 5: a request for product enhancement. - - -Customer Description This is a brief description of the problem. - -Long Description This is a more detailed description of the problem. - This could contain a short code fragment, a - suggested fix for the bug or reference a longer - file with this type of information in it. - -System Description This is a brief description of your system. - -Date Reported MM/DD/YY - -Reported By Your name - -Phone Enter your telephone number including the - area code. - -*Resolved? Enter "yes" or "no" only. - -*Date Resolved When the bug is fixed the date it was fixed - will be entered by us in this field. - -*Who fixed Name of the person who fixed the bug. - -*Correction Description When the bug is fixed we will enter a - description of the fix in this field. - -*Modules Affected When the bug is fixed we will enter the - module name. - - -Problem Release/Load Enter the release or load information in this - field. This information should be on the label - for the tape that was sent to you. - -*Test suite passed You do not need to fill out this field. This is - the test suite file that we use to verify bugs - and/or fixes. - -*sccs version control You do not need to fill out this field. This is - the sccs version that contains the fix. - diff --git a/sys/arch/m68k/fpsp/README.source b/sys/arch/m68k/fpsp/README.source deleted file mode 100644 index 62e44b38ffc1..000000000000 --- a/sys/arch/m68k/fpsp/README.source +++ /dev/null @@ -1,5 +0,0 @@ -The source for the Motorola FPSP (Floating Point Software Package) was ported -to gas by Eric Norum at the University of Saskatchewan. It is available -by anonymous ftp from: - ftp.usask.ca /pub/software/fpsp/fpsp_gas.tar.gz - diff --git a/sys/arch/m68k/fpsp/README_FIRST b/sys/arch/m68k/fpsp/README_FIRST deleted file mode 100644 index d2961a60496f..000000000000 --- a/sys/arch/m68k/fpsp/README_FIRST +++ /dev/null @@ -1,40 +0,0 @@ -I got the FPSP source from the Motorola BBS and have converted it -to GNU GAS format. - -The three subdirectories are: - src_asm FPSP source from the Motorola BBS. - src_as FPSP source from the Motorola BBS. - src_gas FPSP source in GNU GAS format. I did this by - running some `flex' lexical analyzers on the - src_asm files. - -A big thanks goes out to Michael Hitch (osymh@gemini.oscs.montana.edu) for -solving the problem I had with some operations locking up. The problem -was that there were some branch instructions in gen_except.s that -were `word' when they should have been `long'. - -I had to make a little tweak to gas version 2.1.1 to get it to assemble. -Around line 2190 of tc-m68k.c you have to change a `#if 0' to `#if 1': -============================================================================= - /* We gotta put out some float */ -#if 1 - if (seg (opP->con1) != SEG_BIG) - { - int_to_gen (nextword); - gen_to_words (words, baseo, (long int) outro); - for (wordp = words; baseo--; wordp++) - addword (*wordp); - break; - } /* Its BIG */ -#else - if (seg (opP->con1) != big_section) - { - abort (); - } -#endif -============================================================================= - -Eric Norum eric@skatter.usask.ca -Saskatchewan Accelerator Laboratory -University of Saskatchewan -Saskatoon, Canada. NeXTMail accepted. diff --git a/sys/arch/m68k/fpsp/fpsp.U b/sys/arch/m68k/fpsp/fpsp.U deleted file mode 100644 index 3f0f6c30bb2c..000000000000 --- a/sys/arch/m68k/fpsp/fpsp.U +++ /dev/null @@ -1,1089 +0,0 @@ -begin 644 fpsp.o -M`(@!!P``E/@`````````````!]0````````9`````#^```````````````````!````````````` -M````````02```````````````````$6:*````````````````````````P," -M`@,"`@,"`P,"2.<_(/(GX`?R/)``````("U0_[`N`$(N_[4P+O\8`D#@`&<` -M`#`P$`)`?_\B*``$)"@`"%-`U(+3@4J!;/9*0&X$4.[_M0)`?_\P@"%!``0A -M0@`(+5#_G"UH``3_H"UH``C_I`*N?_____^<2B[_M6<(+#S__^R[8#@P+O^< -M/7P___^<\BY(`/^KO^['WP` -M8``!'WP`$`!$/WP`(P!`'WP`_@`(\U_R*4@C`"3R*4@C`#!@%$I"9PSR*4@C -M`"3R*4@C`##R``0C\@"H`/(N:`#_G$7N_YP(```)9PX`J@````$`"/(N2`#_ -MG"UN_X#_K`*N````,/^`2.?`P"\N_ZPO+O^P0>[_G/(0:`!*KO^P;`8`D(`` -M```O+O^$80!)W!U7_X18CRU?_[`M7_^L3-\#`RUN_[#_G"UN_ZS_@$A%2D5F -M``""\CI%`/T\(`13@$*#XHAD!O(Q22,X``:#````#$J`9NQ*+O^U9PCR```8 -M8```)O(``!CR``@X\I,`&E.&.CP``?(\D``````@\CI%(_T48`#]_/(Z12/] -M"O(`"#CRE`!<\I(`#/(Z1"#\^%*&8$Q2ACH\``'R/)``````(&``_<[R.D4` -M_+P@!$*#XHAD!O(Q22,X``:#````#$J`9NSR```8\@`(./*.`!+R.D0@_+)2 -MAE*$\CI%(_RH\CR0`````!#R``@@0>[_C/(0:``D*``$)B@`"$*H``1"J``( -M(!!(0&<4!(```#_]2H!N"D2`XHKBDU'(__I*@F8$2H-G$$*!!H,```"`U8$" -M@____X`@!%:(80``VDHN_[5G*/(``#KR@0`,\@9``/(``!A@+DJ';0CR.D0` -M_#A@(O(&0`#R```88!CR```Z\HX`"O(Z1`#[[F`(\@9``/(``!CR*4@@`!CR -M+F@`_YPD*@`$)BH`"#`29PX$0#_]1$#BBN*34@(H,%P`9@A3A5"!*#!<`'8<=`?IQ`C$9@A9@U*! -M4 -M9P;R``0@8`3R``0C\@"H``B```GR`(@`9P@`K@```0C_A$S?`#Q.=0``/_\` -M`(``````````O_\``(``````````````````````````@``````````````` -M?_\`````````````__\`````````````?_\``/__________/_\``,D/VJ(A -M:,(UO_\``,D/VJ(A:,(U0B[_NNGN``;_'`R`````%V8&3OD``%HL,"[_'`*` -M````?PR`````.&PLZ>X0`_\8YXC0@4/Y``!Y5")Q!`!![O\T(B[_@`*!```` -M__(\D```````3M%0[O^T3G4(*``'``!F"&$`!`Y@`!$&80`$%F``$/X(*``' -M``!F``0(8``#]`@H``<``&8``\)@``.N""@`!P``9@`#S&```\`(*``'``!F -M``.$8``#=@@H``<``&8``\!@``.$""@`!P``9@`/<&```W;R$-"`\CQ8./__ -M\I)/B/*!#NSR/(@``````&``#TX(*``'``!F``-V8``#2@@H``<``&8`#S8, -M:#__``!F`$W`#*B```````1F`$VT2J@`"&8`3:SR.D@`_HQ.=0@H``<``&<` -M31!@``\"""@`!P``9@`.^`QH/_\``&8`4(0,J(``````!&8`4'A*J``(9@!0 -MP```GX```)]```"?@```GL```)]```"?0```GT```)[``` -M"?````GP```)\```"?!"+O^%Z>X``_\8Z>X0`_\@"(```@B!``+E"8(`0_K_ -MHB)Q%`!.T6``#_)@``]X8``.%!(N_S00+O\HL0$(`0`'9P8([@`'_X4(```' -M9P`".&```D02+O\T$"[_*+$!"`$`!V<&".X`!_^%2B[_(&H(0>[_*&``$!+R -M+I``_X#R+D@`_RA.=0``6Z(```JZ```*X```"K(```J^```*N@``"KX```JR -M```*N@``"KH```JZ```*L@``"K8```JV```*M@``"K9"+O^%Z>X``_\8Z>X0 -M`_\@"(```@B!``+E"8(`0_K_HB)Q%`!.T6``#RQ@``ZR8``-3A(N_S00+O\H -ML0$(`0`'9P8([@`'_X4(```'9P`![_*&``#TSR+I``_X#R+D@`_RA.=0``7BP``%XL```+=``` -M"Y@```M\```+?```"W0```N8```+B@``"XH```MT```+F```"W@```MX```+ -M>```"WCI[@`#_QCI[A`#_R`(@``""($``N4)@@!#^O^F(G$4`$[18``,E&`` -M#?`(+@`'_RAG``#(8```U`@N``?_*&<``()@``".8``.1@@N``?_-&<(\CI( -M`/OH8`;R.D@`^]3R.=!````';&``9ASR.DB`^_)A`&82\CI(`/OH8``,.BUN -M_S3_C"UN_SC_D"UN_SS_E`CN``;_D/(NT$#_C&$`9>9@``WJ\CI(`/O$8``- -M2/(Z2`#[Q@"N"````/^$8``--O(Z2`#[A`"N`@```/^$3G7R.D@`^X``K@H` -M``#_A$YU\CI(`/LT3G7R.D@`^S@`K@@```#_A$YU\CI(`/LT`*X$````_X1. -M=?(Z2`#[,`"N#````/^$3G4```V6```-F@``#9H```XT```.-```#9H```VD -M```-I```#?P,+P````%G``"J#"\`*``!9W`,+P`P``%G:`PO`&```6;____S -M3D/O`20C;O\T_S0C;O\X_S@C;O\\_SPC;O\<_QP@+O\<`H`#PP``Z>X30?\< -MZXE(08"!Z>X2@_\GN$H/_'.6)2$&`@2U` -M_Q`(K@`%_R5@``$`""X``?^"9PH(+@`$_X9G`F`F2B[_N6<(2B[_MV8``.!, -M[@,#_T#R+M#P_U#R+IP`_X!.7F```49*+O^Y9S1*+O^Z9P#_>D(N_N0([@`" -M_R0];O\T_R@M;O\X_RPM;O\\_S`([@`$_R`(K@`%_R5@``".'5?_NPPO`&`` -M`6GN$H/_'.6)2$&`@2U`_Q`,+P`H -M``%F!'`-8`H,+P`P``%F2'`+'5?_NT*70J=1R/_\0^\!)!ZN_[L??`!@``$C -M;O^,_O0C;O^0_O@C;O^4_OSI[@1$_X3OZ0$$_Q4C;O^$_P``J0&```#_)$SN -M`P/_0/(NT/#_4/(NG`#_@/-?2B[_MV<```9A``!.3EX(%P`'9@P(%P`&9@9@ -M____\'KH[P`$``9F```D68\NKP`$+V\`"``$G_P```!D\Q?R+Z0``&SS5]_\ -M````9#]\("0`!F#____P0DY5``#S)PP7`$%G```N;@``7DHO``%F``!*0I:Q`````DUV-W:JHK!<__P``@`````````!``@``H`````````!`!0``R``` -M``````!`#```G$````````!`&0``OKP@``````!`-```CAO)OP0```!`:0`` -MG<6MJ"MPM9Y`TP``PG@?2?_/IM5!J```D[I'R8#IC.!#40``JG[K^YWYWHY& -MHP``XQF@KJ8.D<=-2```R79UAH%U#!=:D@``GHL[7<4]7>5U)0``Q&!2`HH@ -MEYL__@``L7(7]]'/>:M`````DUV-W:JHK!8__P``@`````````!``@``H``` -M``````!`!0``R`````````!`#```G$````````!`&0``OKP@``````!`-``` -MCAO)OP0```!`:0``G<6MJ"MPM9U`TP``PG@?2?_/IM5!J```D[I'R8#IC-]# -M40``JG[K^YWYWHU&HP``XQF@KJ8.D<9-2```R79UAH%U#!=:D@``GHL[7<4] -M7>5U)0``Q&!2`HH@EYH__@``L7(7]]'/>:Q`````DUV-W:JHK!<__P``@``` -M``````!``@``H`````````!`!0``R`````````!`#```G$````````!`&0`` -MOKP@``````!`-```CAO)OP0```!`:0``G<6MJ"MPM9Y`TP``PG@?2?_/IM9! -MJ```D[I'R8#IC.!#40``JG[K^YWYWHY&HP``XQF@KJ8.D<=-2```R79UAH%U -M#!A:D@``GHL[7<4]7>9U)0``Q&!2`HH@EYM"+O^X2B[_N6X`P_\<#````V<``-AA``$\2B[_N&=<""X`!_\@9U1@.NGN -M``;_'`R`````%V8```1.=0@N``+_)&8``*@0+O\8@"[_(&L"3G4(+@`'_R!G -M(F$``/A*+O^X9Q@P+O\H`D!__V<.0>[_*&$``08=;O^L_R`(+@`'_QAG``#. -M""X`!?\89APP+O\T`D!__V<``+I![O\T80``VAUN_ZS_&$YU""X`!/\<9@8R -M/#^!8`0R/#P!""X`!_\T9P0(P0`//4'_-#(N_QP"0>/_`$$(`#U!_QQ![O\T -M80``F!UN_ZS_&$YU+6[_,/\T80``8&$``2!*+O^X9U+I[@&#_QQR!Y*`0H`# -MP/(N^`#_*`@N``?_(&8`_T@0+O\@`@``\$H`9B@P+O\H`D!__PQ`/_]L&@`N -M`!#_(&`20B[_N.GN`0+_'`P```-F`/\^3G4P+O\<"```!6<6"```!&<*`D`` -M?PQ``#AF!E#N_[A.=4(N_[A.=4*N_ZP(J``'``!6Z``"#"X`+``+9@9A``!J -M8!((+@`%_QQF!F$``$!@!&$``"`,:#__``!N!@CN``3_K.SH``@``F<&".@` -M!P``3G5A`!T:""@`!P`$9@P`+@"`_ZP([@`#_X9.=6$`'0`(*``'``1G"``N -M``#_K$YU`"X`@/^L3G5A`!SD""@`!P`$9P@`+@``_ZQ.=0`N`(#_K$YU,"[_ -M'`)``#MG``"F,"[_-.G`%0P,00__9C#IP!1##$$`!V8F2J[_.&8*2J[_/&8$ -M8``!7@@N``;_.&8``50`K@$`0(#_A&```4@P+O\V`D``#TI`9@``/$JN_SAF -M```T2J[_/&8``"Q*KO\T;!0M?(````#_-$*N_SA"KO\\8``!$$*N_S1"KO\X -M0J[_/&```0#R)^`#80#O-/(N:`#_-/(?T,#R/(@``````&```.(P+O\TZ<`5 -M#`Q!#_]F`"N`@`$$/^$3G4(+@`'_S1G -M!@CN``/_A`"N`@`$$/^$4.[_M$YU`*X!`""`_X0(+@`%_X)F"O(YT(```!>$ -M3G50[O^T3G5"KO^,0J[_D$*N_Y1*$&H&".X`!_^,0>[_C`"N```**/^$""X` -M`_^"9QCL[@%#_Q@([@`$_R$([@`'_QD(K@`"_R3I[@`"_X,(J``'``!6Z``" -M80!K^NSH``@``F<,".@`!P``".X`!_^,\A#0@$YU`*X``!!(_X0M;O\T_XPM -M;O\X_Y`M;O\\_Y00+O^#`@``P&<``#X,``!`9A9*+O\\9AX@+O\X`H````#_ -M9A)@```B("[_/`*````'_V<``!0`K@```@#_A&`(`*X``!)(_X0(+@`$_X)G -M)$*N_XQ"KO^00J[_E.SN`4/_&`BN``3_(0CN``?_&0BN``+_)&$`9ZKL[@`( -M_S9G#`CN``?_-`CN``?_C/(NT(#_-$YU`*X```((_X1.=0"N```""/^$""X` -M`_^&9P8([@`%_X=.=0@N``?_*&<&".X``_^$""X`!O\L9RKR`9``\BY(`/\H -M$"[_&`(``.`,``!@9A`(+@`&_SAF"`"N`0!`@/^$3G4(+@`&_X)G%``N`&#_ -M(%#N_[0`K@$`0(#_A$YU".X`!O\L\@&0`/(N2`#_*`"N`0!`@/^$3G4(+@`' -M_S1G!@CN``/_A`@N``;_.&<,\@&0`/(N2`#_-$YU""X`!O^"9R`([@`&_S@` -M+@``_R``+@!@_QA0[O^T`*X!`$"`_X1.=0CN``;_./(!D`#R+D@`_S0`K@$` -M0(#_A$YU`*X```HH_X1@"`"N```(`/^$""X``_^"9UHO""UH``#_C"UH``3_ -MD"UH``C_E$'N_XP(J``'``!6Z``"2F@``&<$80`8,@BH``<``.SH``@``F<& -M".@`!P``[.X!0_\8".X`!/\A"*X`!_\9"*X``O\D(%_I[@`"_X-F$`@H``<` -M`&K_-`@H -M``<``%;H``((J@`'_QAA`!=>"*@`!P``[.@`"``"9P8(Z``'```5?`#^_N1" -M:O\4"*H``O\D\U].6DYU6(].6DYU```_@4!^/VH``#P!0_X[S0``0B[_MD(N -M_[="+O^Z2B[_N&=`""X`!_\@9SA![O\H"*@`!P``5N@``F$`%O`(J``'``#L -MZ``(``)G!@CH``<``.SN``3_(`CN``3_(``N``__MD'N_S0(+@`%_QQF``Z2 -M""X`!_\89@`"UDHN_[AF``,@,"[_'`*`````?P@```!F``,.4.[_NC`N_QP" -M```[2@!G_P```)X,```89_\```!N#```&F?_````>#`H```(@``/5N@``F<( -M`*X(````_X0,0'__9B9*J``$9A!*J``(9@H`K@(```#_A$YU`*X!````_X0M -M;O\T_RA.=4JH``1F_P```!9*J``(9O\````,`*X$````_X1.=1`N_Q@(```% -M9@`,P@BH``<``&`2$"[_&`@```5F``RN"&@`!P``$"[_&`(``.!F``R<""X` -M`O\=9@``(`@N``;_'68``&CI[@`"_X-*`&<``;@,```!9P``5'`",B@```)! -M?_\,03P!8P``F.GN$(+_@P"!``(``$*`"*@`!P``5N@``F'_```3>NSH``@` -M`F<&".@`!P``,B@```)!?_\,04/_;```5&```5YP`3(H```"07__#$$_@6,` -M`$;I[A""_X,`@0`!``!"@`BH``<``%;H``)A_P``$RCLZ``(``)G!@CH``<` -M`#(H```"07__#$%`?VT``1!A`/M,8``!"`BH``<``%;H``)A`!58[.@`"``" -M9P8(Z``'``#I[A""_X,(+@`"_QUF```:""X`!O\=9@``&DA!$B[_@^P)2$%@ -M```2`($``@``8```"`"!``$```BH``<``%;H``)A_P``$I[LZ``(``)G!@CH -M``<```@N``'_AF<(`*X````@_X1*J``$9F9*J``(9F`@+O^``H`````P#(`` -M```@;3AF$$IH``!L,`@N``?_@V<<8`Y*:```;2`(+@`'_X-G#`"H```(```( -M8```)`"H```!```$8```&`"N!````/^$$"[_&`(``.`,``!`9P@`K@``"`#_ -MA"U0_S0M:``$_S@M:``(_SQ*:```9P@,:(````!F"`"N!````/^$2F@``&H` -M"J@`K@@```#_A&``"IQ*+O^X9A@P+O\<`H````!_"````&8(4.[_NF```%0( -MJ``'``!6Z``"80`3L@BH``<``.SH``@``F<&".@`!P``[.X`!/\8".X`!/\8 -M`"X`\/^V2B[_MF8``FH=?`#^_N0(K@`"_R1";O\44.[_MTYU4.[_NC`N_QP" -M```[2@!G_P```(8,```89_\```!N#```&F?_````;#`H```(@``/5N@``F<( -M`*X(````_X0,0'__9B9*J``$9A!*J``(9@H`K@(```#_A$YU`*X!````_X0M -M;O\T_RA.=4JH``1F_P```!9*J``(9O\````,`*X$````_X1.=0BH``<``&`& -M"&@`!P``""X``O\=9@``(`@N``;_'68``#KI[@`"_X-*`&<``%(,```!9P`` -M)NGN$(+_@TIH``!M#`P!``-F``!28```<@P!``)F``"*8```LNGN$(+_@TIH -M``!M#`P!``-F``#&8```Y@P!``)F``#^8``!)@"N```(`/^$2F@``&<`"18` -MK@@```#_A&``"0HA?#P!`````$*H``1"J``(`*X$````_X0`K@``"BC_A&`` -M".8A?#P!`````$*H``0A?```"```"`"N```**/^$8``(QB%\O`$`````0J@` -M!$*H``@`K@0```#_A`"N"````/^$`*X```HH_X1@``B:(7R\`0````!"J``$ -M(7P```@```@`K@@```#_A`"N```**/^$8``(X``O^#8?\``%[2[.X`"/[V9P`&+@CN``?^]&``!B0, -M+@#__[9G`/Q6#"X`#_^V9B9A_____S1F`/Q$Z>X`3_\TZ^X03_\HD($,@``` -M@`!M`/PL8```)&'_____%F8`_![I[@!/_RCK[A!/_S20@0R```"``&T`_`8P -M+O\T,B[_*+-``D"``&<``/(,+@`/_[9F=#`N_R@"0(```$`__SU`_R@@+O^` -M`H`````P\@"0`/(N2`#_-/(N2"+_*$'N_O3R`:@`@Z[_A/(N:`#^].B((B[_ -M@`*!````P.R)2$&"@$*`"*X`!_[T5N[^]F'_```-`NSN``C^]F<`!/X([@`' -M_O1@``3T,"[_-`)`@```0#__/4#_-"`N_X`"@````##R`)``\BY(`/\T\BY( -M(O\H\@&H`(.N_X1![O[T\BYH`/[TZ(@B+O^``H$```#`[(E(08*`0H`(K@`' -M_O16[O[V8?\```R.[.X`"/[V9P`$B@CN``?^]&``!(`,+@`/_[9F;$'N_S0@ -M+O^``H`````PZ(@B+O^``H$```#`[(E(08*`(#P@````"*X`!_\T5N[_-F'_ -M```,/.SN``C_-F<&".X`!_\T0>[^]""N_S0A;O\X``0A;O\\``A*;O\T;@`` -M=@"N"````/^$8```:D'N_R@@+O^``H`````PZ(@B+O^``H$```#`[(E(08*` -M(#P@````"*X`!_\H5N[_*F'_```+T.SN``C_*F<&".X`!_\H0>[^]""N_R@A -M;O\L``0A;O\P``A*;O\H;@``"@"N"````/^$,"[^]`)`?_\,0'__9@`#E`"N -M`@`02/^$0J@`!&```X0,+@#__[9G`/G^#"X`#_^V9B9A_____-QF`/GLZ>X` -M3_\TZ^X03_\HD($,@```@`!M`/G48```)&'____\OF8`^<;I[@!/_RCK[A!/ -M_S20@0R```"``&T`^:XP+O\T,B[_*+-``D"``&8``/(,+@`/_[9F=#`N_R@" -M0(```$`__SU`_R@@+O^``H`````P\@"0`/(N2`#_*/(N2"C_-/(!J`"#KO^$ -M0>[^]/(N:`#^].B((B[_@`*!````P.R)2$&"@$*`"*X`!_[T5N[^]F'_```* -MJNSN``C^]F<``J8([@`'_O1@``*<,"[_-`)`@```0#__/4#_-"`N_X`"@``` -M`##R`)``\BY(`/\H\BY(*/\T\@&H`(.N_X1![O[T\BYH`/[TZ(@B+O^``H$` -M``#`[(E(08*`0H`(K@`'_O16[O[V8?\```HV[.X`"/[V9P`",@CN``?^]&`` -M`B@,+@`/_[9F<$'N_S0@+O^``H`````PZ(@B+O^``H$```#`[(E(08*`(#P@ -M````"FZ``/\T2F[_-&X(`*X(````_X0(K@`'_S16[O\V8?\```G0[.X`"/\V -M9P8([@`'_S1![O[T(*[_-"%N_S@`!"%N_SP`"&```&I![O\H("[_@`*````` -M,.B((B[_@`*!````P.R)2$&"@"`\(`````BN``?_*%;N_RIA_P``"73L[@`( -M_RIG!@CN``?_*$'N_O0@KO\H(6[_+``$(6[_,``(2F[_*&X```H`K@@```#_ -MA#`N_O0"0'__#$!__V8``3@`K@(`$$C_A$*H``1@``$H#"X`__^V9P#WH@PN -M``__MF8L8?____J`9@#WD.GN`$__-.ON$$__*)"!#(```(``;0#W>$IN_S1L -M```P3G5A____^EQF`/=DZ>X`3_\HZ^X03_\TD($,@```@`!M`/=,2F[_*&T` -M``1.=0"N"````/^$3G4,+@#__[9G``!&#"X`#_^V9B!A____^@QF`/<X` -M3_\TZ^X03_\HT(%N`/<*8```'F'____Y]&8`]OSI[@!/_RCK[A!/_S30@6X` -M]NH(K@`"_R0`K@``"BC_A$)N_Q1"+O[V,"[_-#(N_RBS0`)`@`!G!%#N_O9! -M[O[T,"[_'`@```9G#@@```)F!'`!8`IP`F`&Z>X``O^#8?\``%O:[.X`"/[V -M9U(([@`'_O1@``!*,"[_'`@```9G#@@```)F!'`!8`YP`F`*Z>X``O^#2@!G -M)@BN``?^]%;N_O9A_P``6++L[@`(_O9G!@CN``?^]`"N```22/^$Z>X!@_\< -M#````V\0<@>2@$*``\#R+M@`_O1.=4H`9T@,```!9RX,```"9Q0M;O[T_W0M -M;O[X_W@M;O[\_WQ.=2UN_O3_:"UN_OC_;"UN_OS_<$YU+6[^]/]<+6[^^/]@ -M+6[^_/]D3G4M;O[T_U`M;O[X_U0M;O[\_UA.=0@N``;_AF<@""X`!O^"9Q@M -M;O\T_RA*+O\T;0).=0"N`````_^$3G5";O\4"*X``O\D$"[_&`(``.`,``!` -M9AH`K@(```#_A$IH``!L3@"N"````/^$8```1`P``&!F(`"N`0```/^$+6[_ -M-/\H2F@``&PH`*X(````_X1@```>#```(&86`*X$````_X1*:```;`@`K@@` -M``#_A.GN`8/_'`P```-O$'('DH!"@`/`\B[8`/\T3G5*`&=(#````6@``+5X``"K8```KQ```+:P``"Q" -M```JV.GN$,/_'$'Z_]@@`````0``#RE`%$8``!-G`"""X`!_\89@``\O(N -MT(#_-/(\1#A.C?_\\I,`+O(\1#C.9```\I4`/"(N_X`"@0```##R`9``\BYP -M`/^L\@&H`(.N_X1@``$$/7Q___^L\H$`^O(\1#A.C?_^\I,`X&```-(]?(`` -M_ZSR@0#@\CQ$.,YC__[RE`#&8```N'`!""X`!_\89@``=/(NT(#_-/(\1#A. -MA?P`\I,`+O(\1#C.=```\I4`/"(N_X`"@0```##R`9``\BYX`/^L\@&H`(.N -M_X1@``"&'7P`?_^L\H$`?/(\1#A.A?X`\I,`8F```%0=?`"`_ZSR@0!B\CQ$ -M.,YS_@#RE`!(8```.D*N_ZSI[A""_X,,`0`":RAF$$IN_S1J("U\______^L -M8!9*;O\T:Q!#[O^LT\"3_`````$(T0```*X```((_X1@#O(N\(#_*`"N```@ -M@/^$(FX`#$J)9PY![O^L8?___]+B8`#]["\`8?\``%66`D``!R(?#($````$ -M9Q`,@0````)F#@"`````"&`&`(`````0(@!A_P``6+Y@`/VT0>[_-`BH``<` -M`%;H``((+@`'_QAF``"L0H!@8D'N_S0(J``'``!6Z``"""X`!_\89@`!!#`H -M``!#^NWXL%%M``"BL&D``FX``4IP`6`P0>[_-`BH``<``%;H``((+@`'_QAF -M``$`,"@``$/Z[X0@O^#2$#2@$*`8?\```+" -M(D@@;@`,Z>X0P_\<#`$``FX69@IA_P``88!@`/S.8?\``&$&8`#\Q&'_``!@ -MC&``_+IA``%V".X`!/\A(D@@;@`,8?\``&%2".X``_^&8`#\F@CN``3_&+!I -M``1M2'`!(CP``#^!8?\```$28?\``&"X".X``_^&8`#\<`CN``3_&+!I``1M -M3"(\```\`7`"8?\```#H8?\``&`>".X``_^&8`#\1B\N_X1P`6'_``!5W"U? -M_X1P`9%H```B2"!N``QA_P``8&(`K@``"BC_A&``_!@O+O^$<`)A_P``5:XM -M7_^$<`&1:```(D@@;@`,8?\``%_$`*X```HH_X1@`/OJ+R[_A'`!0>[_C""N -M_S0A;O\X``0A;O\\``AA_P``4H@M7_^$(D@@;@`,8?\``%_X`*X``!)(_X1@ -M`/NN+R[_A'`"0>[_C""N_S0A;O\X``0A;O\\``AA_P``4DPM7_^$(D@@;@`, -M8?\``%],`*X``!)(_X1@`/MR+P!"@&'_```$.NGN$(+_@TA!,B\``DA!8?\` -M``$J,#P``9%H```B2"!N``Q8CTYU+6@``/[T+6@`!/[X+6@`"/[\[.X`"/[V -M9P8([@`'_O3L[@%$_QA.=0``,!P``#!0```P9```,'@``#`<```PA```,(H` -M`#"0```PE```,)@``#"<```PH```,*9!^O_*,"[_&.G`!`,@<`0`3M!P#")N -M``QA`,_R0B[^Y.SN``/_($YU,"[_'`@```QG#NG`!D-!^O^H('`,`$[0`D`` -M?^O`!D=![O\T8?___]`N0>[_C&#_____ND'N_S1":``"0J@`!$*H``A@`/^D -M\CR(``````!![O\T0F@``F``_Y!![O\T0F@``F``_X0@+O]`8*H@+O]$8*0@ -M`F"@(`-@G"`$8)@@!6"4(`9@`/^0(`=@`/^*87I*@&8```A(06```8(`K@`` -M`@C_A$/Y```PSB)Q%`!.T0``,10``#$.```P]@``,-Y(04HH``)K``%4Y:LD -M*``$`H(````_9BA*J``(9B)*@&8>8"#IZ#5"``AT'N6K)"@`"`*"```!_V8& -M2H!F`F`$",,`'2`#3-\`#$A!3G4``#'$```QE@``,?```#'P!J@```$```1D -M#.3H``3DZ``&4F@``$J`9@8":/X```8"J/___P``!$*H``A.=5*H``AD&E*H -M``1D%.3H``3DZ``&Y.@`".3H``I2:```2H!F!@(H`/X`"TYU!J@```@```AD -M&E*H``1D%.3H``3DZ``&Y.@`".3H``I2:```2H!F!@)H\```"@*H___X```( -M3G5.=0``,D0``#&V```R'@``,AY#^O_N(G$4`$[13G4P*```#$``0&L&80`` -M:$YU2.AP```$9RHO!I]H```@*``$(B@`".^H+`'OKB%& -M``A\()R'[*F`@2%```1,WP#`3G4P*```(B@`"`1``"#MP7``D$?OJ3%````A -M00`$0J@`""X?3G4(*``&``!G!@CH``<``$H`9A!"@4*`80``?DH!9P``=F!J -M#(`````!9QPR/#P!(`&0:```#$``0VHH0H!A``!82@%G4&!&,CP_@2`!D&@` -M``Q``$-J#$*`80``/$H!9S1@*DJH``1F"$JH``AF`F`.`*X```((_X0@/"`` -M```Q00``0J@`!$*H``A.=0"N```""/^$3G4O`@@N``'_)&<,Z>XA@_\8@H````Z<(H8.GH&```!.GN"`#_I"%"``0A00`(0@'H -MP`">9P8(P``=4,$D+O^H`H+@````2H)G!@"`(`````*`X````"0?3G4O`C%` -M```$00`@<""00>GH*````.G"*&#IZ!@```3HP0">9@[H[@@`_Z1F!B`!0@%@ -M""`!",``'5#!0J@`!"%"``@D+O^H`H+@````2H)G!@"`(`````*`X````"0? -M3G4Q0```2F@``FP(`*B````````,00!`9Q@,00!!9R)"J``$0J@`""`\(``` -M`%#!3G4@*``$Z<`0G@*`P````&`0("@`!.G`$%\"@(````#BB$J!9A!*J``( -M9@I*+O^H9@1"`6`&",``'5#!0J@`!$*H``A.=0``0````,D/VJ(A:,(U```` -M`#__``#)#]JB(6C"-0````#R`9``\CI(`/_H8`#D$O(02``@$#`H``0"@'__ -M__\,@#__@`!L./(\1(!.?@``\@``HO(``!KR/$0B3GX``/(`!"#R```$\A#P -M@"\!0H%A``FH\A^0`/(``")@`./"\@``&/(\1#A.?@``\I+B:B`0,"@`!$J` -M;A;R.D@`_V3R`9``\CQ$(DL```!@`..2\@&0`/(\1```````3G4__P``R0_: -MHB%HPC4`````8`#D8O(02``@$#`H``0"@'____\,@#__@`!L./(\1(!.?@`` -M\@``J/(GX`3R/$4`3GX``/(``2+R``BC\A_0(/(`!(3R``0@\A#P@&$`"/Y@ -M`.,@\@``&/(\1#A.?@``\I+AR/(Z2`#_B"`0`H"``````(`_@```+P#R`9`` -M\A]$(V``XNX``#_[@`!``O__/X````````"_]FA^,4F'V$`"K&DTHFVSO\)' -M;TX=HHX_LT1$?X=IB;^W1.Y_KT7;/[QQQD:4`B"_PDDDDAAR^3_)F9F9F8^I -MO]555555556_MPOSF%.>:C^\<8>6+1U]O\)))()Q![@_R9F9F98F/K_55555 -M554V/_\``,D/VJ(A:,(U`````+__``#)#]JB(6C"-0```````0``@``````` -M````````@`$``(```````````````#_[``"#T5+%!@MZ40`````_^P``B\A4 -M165)BXL`````/_L``).^0&`78FL-`````#_[``";LP>--:["`@`````_^P`` -MHZ::4EW4"^<688@`````_ -M^P``NWE^0VL)YOL`````/_L``,-GI<L`````/_L``/+:\92=OGG5`````#_[``#ZO5@3 -M8=1^/@`````__```@T:L(0E9[,0`````/_P``(LC*@@P0H+8`````#_\``"2 -M^W"XTIKB^0`````__```FL]';US-'+0`````/_P``**>=C!)5/(_`````#_\ -M``"J:,70BKA2,``````__```LBW__9U3GX,`````/_P``+GM[T4^D`ZE```` -M`#_\``#!J%\8`````/_P``-$+\P"$#2WD -M`````#_\``#8M+*Z:\!>>@`````__```X%MHE).(FB)P`````__0``I>]RPT2'-AL````` -M/_T``*T7`+KP>G(G`````#_]``"T++SZ_3?OMP`````__0``NS`ZE`NH#XD` -M````/_T``,(A%<;\KKNO`````#_]``#(_O/FAC,2(0`````__0``S\F#,+0` -M#'``````/_T``-:`>J$0+%OY`````#_]``#=(YF\,24JHP`````__0``X[*H -M56N/Q1<`````/_T``.HM=D]D,5F)`````#_]``#SOUOXNM&B'0`````__@`` -M@!SCG@T@7)H`````/_X``(8PHMK:'M!F`````#_^``",&M1%\^";C``````_ -M_@``D=N/%F3S4.(`````/_X``)=S%"`V7E.,`````#_^``"<#0`````__@``\^$"$:A\-WD`````/_X``/D9`YUUBXU! -M`````#_^``#^!8N/9)-?LP`````__P``@57[27MH700`````/_\``(.(GC5) -MT0CA`````#__``"%G/IV41UR2P`````__P``AY4NS_^!,><`````/_\``(ES -M+]&55V0;`````#__``"+.,K1`9,J-0`````__P``C.>HV#`>YK4`````/_\` -M`(]&HYXNKE*!`````#__``"2+:?7D8B$AP`````__P``E-&?R][?4D$````` -M/_\``)OKP&,*`````#__``"CB+2O]N\.R0`````__P``I--? -M$&'2DL0`````/_\``*8(E=S[XQA^`````#__``"G*E'<^K``````__P`` -MJ#I14PE6%H\`````/_\``*DZ(`=U.51N`````#__``"JGG)%`CLF!0`````_ -M_P``K$R$NF_DU8\`````/_\``*W.2DI@:Y<2`````#__``"O*BW-C28\G``` -M```__P``L&5O@?(B9<<`````/_\``+&$914/<4EJ`````#__``"RBJH5;YK: -M-0`````__P``LWM$_S=FN)4`````/_\``+18P]SI8P0S`````#__``"U)5*= -M5B)&O0`````__P``M>+,J5^=B,P`````/_\``+:2RMIZRAK:`````#__``"W -M-JZGII)8.``````__P``M\^K*'Z?>S8`````/_\``+A>S&;+(9@U`````#__ -M``"XY/U:(*63V@`````__P``N9]!]DK_F[4`````/_\``+I_'A>$*[Y[```` -M`#__``"[1Q*%=C?A?0`````__P``N_J^BD>(WV\`````/_\``+R=#ZTK:)UY -M`````#__``"],&HY1Q[-A@`````__P``O;;',85J\8H`````/_\``+XQRL4" -MZ`UP`````#__``"^HM5AC:RW>-`````#__``"_Q.I&8_H8]@`````__P``P!@;WHN)I%0`````/_\` -M`,!EL&;/OV0Y`````#__``#`KC1?5C0*Y@`````__P``P/(BD9RYYJ<````` -M8`#;&O(02``@$#`H``3R+F@`_XP"@'____\,@#_[@`!L!&```,8,@$`"__]O -M!&```3I";O^.`J[X````_Y``K@0```#_D$*N_Y3R``"`\BY(H_^,\BY(*/^, -M\CQ$HDY^``#R``0@+P(D``*```!X``*"?_\```2"/_L``.*"T(+N@$/Z]WS3 -MP"U9_YPM6?^@+5G_I"`N_XP"@(````"!KO^<)!_R``"`\@`$H_(Z50#VH/(` -M!2+R``4C\@``H_(Z52+VEO(Z5*/VF/(`"*/R``0B\@&0`/(N2"+_G&``V4P, -M@#__@`!N``""#(`_UX``;0``9O(``"-";O^.\@``@/(`!*/R.E4`]F#R.E6` -M]F+R``4C\@`%H_(Z52+V7/(Z5:+V7O(`!2/R``RC\CI5(O98\CI4HO9:\@`! -M(_(N2"/_C/(`"*+R``0C\@&0`/(N2"+_C&``V-1";O^.\@&0`/(N2`#_C&`` -MV,(,@$!C@`!N``"$\CQ$@,Z!``#R``"@\@`$`/(``"/R+FB`_XSR``"`\@`$ -MH_(Z58#U_O(Z50#V`/(`!:/R``4C\CI5HO7Z\CI5(O7\\@`,H_(``2/R.E2B -M]?;R+D@C_XSR``BB\@`$(_(N2"+_C/(!D``($``'9PKR.D@B]>I@`-A`\CI( -M(O708`#8-@@0``=G%/(Z2`#UT/(!D`#R.D@H]>9@`-@<\CI(`/6L\@&0`/(Z -M2"CUPF``V`A@`-CV(!`P*``$`H!_____#(`__X``;$3R$$@8\@``@/(`!)KR -M```B\CQ$HDY^``#R``0@(!`"@(``````@#\````O`/(0\(`O`4*!80`6FO(? -MD`#R'T0C8`#7K/(02!CR/$0X3GX``/*2UE1@`-7Z0,8M.-/61C0];Y"NL>=< -MQW_[``"```````````````#R/$0`3GX``/(!D`#R/$0B2P```&``UV#R$$@` -M(!`P*``$`H!_____#(!`#+%G;C+R```8+P%"@?(0\(!A``4^\CQ$(TY\```B -M'_(\1(!.>@``\@``H/(!D`#R``0B8`#7%@R`0`RRLVXJ\@``&/(Z5"C_;O(Z -M5"C_<"\!0H'R$/"`80`$^/(?D`#R.D@C_V)@`-;D\CR(```````(D``'\A#0 -M@&``UG(_W```@N,(94-AQ,8`````/Z5555551#$_Q555555`&'_^``#_____ -M_____P```````0``__________\`````/X$1$1$70X4_I555555/6C_%5555 -M5555```````````^QQWCI7=&@C[Z`:`9U\MH/RH!H!H!G?,_5L%L%L%PXC^! -M$1$1$1$1/Z555555554__```JJJJJJJJJJL`````2+`````````W,``````` -M`#__``"````````````````__P``@631\[P#!W2?A!J;/_\``(+-AIBL*Z'8 -MG\'5N3__``"$.BC#K-Y`2*!R@VD__P``A:K#9\Q(>Q0?Q -MC1`0'NA_FO/_\``(N5 -MP>/JB];HH`(-SS__``"-&M];?ENIY"!:8]H__P``CJ0YBT7-4\`>MP!1/_\` -M`)`QW$,49K'<'VZP*3__``"1P]-SJQ'#.*!X%)0__P``DUHK+Q/FZ2R>LQFP -M/_\``)3T[ZC^]PE@(!=%?3__``"6E"TW(!A:`!\1U3<__P``F#?P48VXJ7"? -MN5+=/_\``)G@19,@M_ID'^0PAS__``";C3FYU4Y5.!^BJ!@__P``G3[9IRS_ -MMU`?WDE-/_\``)[U,F"1H1&L(%!(D#__``"@L%$/N7%/Q*!S:1P__P``HG!# -M`PQ):!@?FWH%/_\``*0U%:X)YH"@H'EQ)C__``"E_M:IL5$X[*!QH4`__P`` -MI\V3M.EE-6@@3V+:/_\``*FA6K3J?`[X'R@\2C__``"K>CFUJ3[3.)^:?]P_ -M_P``K5@^ZD*A2LB@6S^L/_\``*\[>*UI"D-T']\F$#__``"Q(_6!TJPED)]P -M7Y`__P``LQ'$$JD1)(@@'V>*/_\``+4$\S/YWF2$'S+[$S__``"V_9'C*-%W -MD"`#BS`__P``N/NO1V+[GN@@#9MGIS$(2@"_48/_\``,$L3,IF<)18H$'=03__``## -M1LS:))=D")_?$WL__P``Q6-=,BKN;%<'\$Z+C__ -M``#)N;V&;B\GI*`_CP,__P``R^P4_O)R?%P?])!]/_\``,XDC!4?A(#DGFY3 -MY#__``#08S/:[RLEE!_6U%P__P``TJ@=D?$JY%R@=NVY/_\``-3S6JO/[?H@ -MGZ;>(3__``#71/S*UIUJ]![FFB\__P``V9T5PGBOU[0@?T.?/_\``-O[MY?: -M\C=4(!["!S__``#>8/2"7@Z1))Z+X74__P``X,S>["J4X1`@`RQ+/_\``.,_ -MB7*^BEI0(`3?]3__``#EN0;G?(-(J!YR]'H__P``Z#EJ4#Q+W&@?V90KA!]`&EL__P``[^2YF]S:]OK*_ZSR``$`\CQ$ -M(\Z'G1SR.DDC^K;R``0B\@`((O(``(#R``2C\CQ%`$YJV"[R``4C\@`%@/(\ -M1:-.<"(B\CI5(OJ8\CI5HOJ:\@`%(SU`_XQ";O^.+7R`````_Y!"KO^4\@`% -MH_(\12).?```\@`!H_(`!2/R``PB\AE(@/(`""+R``0C\A_0,/(11"+R``0B -M("[_L$J`9P;R+D@C_YSR`9``\BY((_^,8`#0[/(0T(#R`9``\CQ$(DY^``!@ -M`-#8#(!`#+)\;FKR$$@`\@``@/(\1"-.A7%4\B?@#"U\`````?^P\@!@`$/Z -M^H[R`$``+4#_K`*`````/^F(T\`@+O^L[(`M0/^LXH"1KO^L!D`__SU`_YQ" -M;O^>+7R`````_Z!"KO^D("[_K`9`/_]@`/[2\@&0`"`0")``!TJ`;0#/+F`` -MS_1@`-%`(!`"@'__```,@#_]``!L!&```5@P*``$#(!`!,(5;P1@``):\A!( -M`/(``(#R/$0C3H5Q5/(GX`SR`&``0_KY\/(`0``M0/^L`H`````_Z8C3P"`N -M_ZSL@"U`_ZSR``$`\CQ$(\Z'G1SR.DDC^1+R``0B\@`((@9`/__R``"`\@`$ -MH_(\10!.94`F\@`%(_(`!8#R/$6C3FK8+O(Z52+Y(/(Z5:+Y(CU`_\!";O_" -M+7R`````_\1"KO_(\@`%(R`N_ZQ$0/(`!:,&0#__\CI5(OC^\CQ%HDY\``#R -M``4C`$"``#U`_]!";O_2+7R`````_]1"KO_8\@`,H_(``2/R``0B\@`((O(? -MT##R$4@C("[_K`R`````/V\6\BE$@``,\BY(HO_0\@`$(O(12")@+`R`____ -M_6P2\BE$(@`,\A%((O(N2"+_T&`2\AE(@/(11"+R+DBB_]#R``0B\@&0`/(N -M2"/_P&``SN0,@#^^``!L8`R``#,``&TF+7R``0``_\`M?(````#_Q$*N_\CR -M$$@`\@&0`/(N2"+_P&``SJ[R$$@`\CI4(_AV+7R``0``_\`M?(````#_Q$*N -M_\CR+D@B_\#R`9``\CI4(_A:8`#.?/(02`#R```C\B?@#/(\1(!./,,K\@`` -MH_(\10!.1#X*\CQ$HDY+7,GR``$C\@``H_(\12).4D_*\CI4HO?0\@`!(_(` -M`*/R.E4B]\KR.E2B]\SR``$C\@``H_(Z52+WQO(Z5*+WR/(``2/R``"C\CI5 -M(O?"\CI(HO?$\@`!(_(``*/R``$C\A!(H_(\1"-.?```\@`(HO(?T##R``0B -M\@&0`/(02")@`,W2(!!*@&X`^^3R/$0`SH$``/(!D`#R/$0B2P```&``S;(` -M`#`H```(@``/!$`___(`4`!.=0BH``<``&$`YOPP*```!$`___(`4`!.=2`N -M_X`"@/___P#R`)``,"@```!`?_\(@``.,4```/(02`!.=2`H``0B*``(80`` -M#"%```0A00`(8,9*@&842H%F`F`H+P/!0>W`,`#GJ"8?8!I(YQ8`[<`P`.>H -M+`'GJ7H@FH/JKH"&3-\`:$YUZ>X0@O^#+4'_K&!6""X`!?^#9P"[Y`@N``3_ -M@V<0""@`!P``9B!A`+_08`#,X`@H``<``&<(80"_R&``S-!A`+_08`#,R&$` -MO]A@`,S`+7P````!_ZQ@"NGN$(+_@RU!_ZP(J``'``!6Z``"#&A`/@``;EX, -M:#_]``!N``!\""X``?^O9S9**``"9A@,+@`#_Z]G"&$`OWI@`,QR80"_6F`` -MS&H,+@`"_Z]G"&$`OW)@`,Q:80"_2F``S%)**``"9@AA`+],8`#,1&$`OU1@ -M`,P\[.@`"``"9P8(Z``'``#R)[``\CR0``````#R*$@```#R'Y``3G5"@"(\ -M``!`/F$`YFHB+O^L80#C9F$`Y7#LZ``(``)G!@CH``<``/(GL`#R/)`````` -M`/(H2````/(?D`!.=0``/_[P?3__B$$__H``/__``#_^``"QP_M555555554``````````/YD``(```````````````#_^``#^ -M`_@/X#^`_@`````_]P``_P%36(,\1^(`````/_X``/HC+/)2$XK``````#_Y -M``"]R-@^K8C520`````__@``]F`]F`]F`]H`````/_H``)ST/<_UZOU(```` -M`#_^``#RN=9(#RN=90`````_^@``VA;KB,N-]A0`````/_X``.\NMQ_$-%(X -M`````#_[``"+*;=U&]<'0P`````__@``Z[VRI<%AG(P`````/_L``*C8.?@P -MP?M)`````#_^``#H9:Q[=@.AEP`````_^P``QAHNL8S9!ZT`````/_X``.4E -MF"KW#(@.`````#_[``#B\J1ZWCH8KP`````__@``X?QX#A_'@.(`````/_L` -M`/]DB8[?5=51`````#_^``#>Z5Q,H#>Z5P`````__```C;E6J7L]`4@````` -M/_X``-OK8>[1G%E8`````#_\``";C^$`]'NAW@`````__@``V0&R`V0&R`X` -M````/_P``*DW+QT-H;T7`````#_^``#6*X#6*X#6+``````__```MK!_.,Z0 -MY&L`````/_X``--H#3:`TV@-`````#_\``##_0,I!DB$@0`````__@``T+:? -MR])8#0L`````/_P``-$=X/\5JQC*`````#_^``#.%HIW)0@,X0`````__``` -MWA0SH6QFL5``````/_X``,N')\!EPY/@`````#_\``#JX0M:?=R*W0`````_ -M_@``R0?:3H<11JT`````/_P``/>%;E[BR;*1`````#_^``#&F`QI@,:8#``` -M```__0``@@$LI::"!M<`````/_X``,0W+X5=@DRF`````#_]``"(+%_-2[U97VZ4<`````/_T``(Y$Q@M,S]?>`````#_^``"_H"_H -M"_H"_P`````__0``E$K0GO0U&O8`````/_X``+UI$$<'9AJC`````#_]``": -M/NS4P^JFL@`````__@``NS[G(:5-B`P`````/_T``*`AA#0U/QWH`````#_^ -M``"Y(4/Z-O7@+@`````__0``I?+\J[O%!MH`````/_X``+*#6W.H`````#_]``#`````#_^``"C!EX_KGS0X``````__0``YPUX -M7"^?6]P`````/_X``*%K,2ZH_#=]`````#_]``#L'SDL47GR@P`````__@`` -MG]@)_8"?V`H`````/_T``/$D0-/C83#F`````#_^``">3*TCW5\Z(``````_ -M_0``]AS.DC1F`+L`````/_X``)S(X6##^QFY`````#_]``#["1_3@45C"@`` -M```__@``FTQOGO`Z/*H`````/_T``/_I<$*_I,*M`````#_^``"9UR+:O>6/ -M!@`````__@``@E[\[4DVDS``````/_X``)AHR`F&C("8`````#_^``"$PWIZ -MN:D%R0`````__@``EP$N`EP$N`D`````/_X``(Q,T%_@`````__@``DO$3A`27B)P`````/_X``(X=P/N)X27E```` -M`#_^``"1HK/$U>;X"0`````__@``D&;FC)5;;)L`````/_X``)!:.&,^!L0[ -M`````#_^``"2JMYTQ[Y9X``````__@``CQ=YV?W#HAD`````/_X``)3IO_85 -MA%9#`````#_^``"-VE("-VE("0`````__@``ER.AMR`30@,`````/_X``(RB -MG`1E%.`C`````#_^``"96)G(D.N)D``````__@``BW`T2A.;QUH`````/_X` -M`)N(O:HZ/:XO`````#_^``"*0OAP5FG;1@`````__@``G;0B3__A%7P````` -M/_X``(D:QSKI@9M0`````#_^``"?VMPFBWH2V@`````__@``A_>`A_>`A_@` -M````/_X``*'\_Q?.C2LQ@`````__@``I!J>CU1& -M^Y\`````/_X``(6_-V$L[CR;`````#_^``"F,\U^9W'-BP`````__@``A*GY -MR`A*GYT`````/_X``*A(GF`+0UI>`````#_^``"#F3!2/[XS:``````__@`` -MJEDC/,RDO4D`````/_X``(*,O[ZYH""C`````#_^``"L96VN:\Q)A0`````_ -M_@``@82-J/KPTG<`````/_X``*YMCN-@NR1H`````#_^``"`@("`@("`@0`` -M```__@``L'&7HCQ&QE0`````+7S___^<_ZQ(YS\`0H,H*``$*B@`"$*"2H1F -M,B@%0H5T($*&[<1@`.VLU(8M0_^,+43_D"U%_Y1$@BU"_ZSR+D@`_XQ,WP#\ -M0>[_C&!$0H;MQ&``)`;MK"X%[:U$A@:&````(.ROB([_C&`(\A!(`$*N_ZP@$#`H``0M4/^,+6@`!/^0 -M+6@`"/^42H!M``%L!/H``/:N9```X."`X(`$@```/__0KO^L0?KW./(`0(`M -M?#__``#_C"UN_Y#_H`*N_@```/^@`*X!````_Z`@+O^@`H!^````X(#@@.B` -MT<#R+D@`_XPM?#__``#_G$*N_Z3R+D@H_YSR)^`,\A!((_(Z2*/V3O(``0#R -M``DC\BYH@/_`\@`)@/(`"(#R.E2C]E+R.E4C]E3R.E2B]E;R.E4B]ECR``RC -M\@`-(_(Z5*+V4O(Z52+V5/(`#*/1_````!#R``TC\@``H_(`""+R$$BB\A_0 -M,/(`!"+R`9``\BY((O_`8`#!JO(``(#R.D2H]>+R.D0B]=SR``2B\@``H/(G -MX`SR``0`\@``(_(N:(#_T/(``(#R``2C\CI5@/7T\CI5`/7V\@`%H_(`!2/R -M.E6B]?#R.E4B]?+R``RC\@`!(_(Z5*+U[/(N2"/_T/(`"*+R']`P\@`$(_(! -MD`#R+D@B_]!@`,$J3G5@`+_<8`#"$O(02`#R```8\CI(./7$\I(`%O(\B``` -M````\@&0`/(02`!@`,#Z\A!(`$*N_ZSR``"`\CI$(O4J\BYH`/^,/6[_D/^. -M("[_C$J`;P``Q`3Z``#T]F4`_D($^@``].1E#O(`!*+R.D0B]/A@`/\>+6[_ -MD/^@`J[^````_Z``K@$```#_H`R`/_^``&Q$\CI$`/4X+7P__P``_YQ"KO^D -M\BY(*/^<("[_H`*`?@```."`X(#H@/(`!*+R)^`,\@`$(D'Z]1[1P/(Z1(#T -MHF``_BSR.D0`](PM?#__``#_G$*N_Z3R+D@H_YP@+O^@`H!^````X(#@@.B` -M\@`$(O(GX`Q!^O3>T<#R.D2`]%I@`/WL2H!M#O(Z1`#T5/(!D`!@`+Y@\CI$ -M`/0^\@&0`&``OJ@__0``WEO8J3/(Z1`#_SDYU2@%G$`P!``-G -M%$'Y```01&```+9!^0``$#A@``"L0?D``!!08```H@2`````"TH!9Q@,`0`# -M9R1!^0``$)@,```";P``A&```(A!^0``$%P,```";P``[_C`@H``<``%;H``)A -M`-4V[.@`"``"9P8(Z``'``#R$-"`3G4``0``@```````````````0J[_O&`( -M+7P````!_[Q(YS\`-A`]0__$`H,``'__*"@`!"HH``A*@V8\)CP``#_^2H1F -M%B@%0H4$@P```"!"ANW$8`#MK):&8")"ANW$8`"6ANVL+@7MK42&!H8````@ -M[*^(AV`&!H,``#_^,"C_]#U`_\@R+O_$L8$"@0``@``]0?_,`H```'__(BC_ -M^"0H__Q*@&8\(#P``#_^2H%F%B("0H($@````"!"ANW!8`#MJ9"&8")"ANW! -M8`"0ANVI+@+MJD2&!H8````@[*^"AV`&!H```#_^+4/_K"U`_["0@T*&0H,B -M?`````!*@&P(("[_L&```&A*AFX.LH1F"+2%9@1@``%$90B4A9.$0H92@TJ` -M9P[6@]2"TX%5QE*)4X!@U"`N_ZQ*@686(@)"@@2`````($*&[<%@`.VID(9@ -M'$*&[<%@`&L4D(;MJ2X"[:I$A@:&````(.RO@H<,@```0?YL-#U`_YQ";O^> -M+4'_H"U"_Z0L+O^L/4;_C$)N_XXM1/^0+47_E/(N2`#_G"U\`````?_08#HM -M0?^@+4+_I`2````__CU`_YQ";O^>+"[_K`2&```__BU&_ZSR+D@`_YP]1O^, -M+43_D"U%_Y1"KO_0+"[_O&[_-&``NC@`K@``"`#_A$HN_ZQG"`"N"````/^$8,X`K@`` -M""C_A`@N``7_@V=$""X`!/^#9QA*+O^L9C9"KO\H0J[_+"U\`````?\P8)Y* -M+O^L9QX]?(``_RA"KO\L+7P````!_S``K@@```#_A&``_WQ*+O^L;!9"KO^, -M0J[_D$*N_Y3R/$0`SP```$YU0J[_C$*N_Y!"KO^4\CQ$``````!.=4CG,``R -M+O\H)"[_+"8N_S!*@FT,2H!G.%.`UH/5@F#PTD!*+O^L9P0`08``2*X``O\H -M2.X`!/\L2.X`"/\P\BZ0`/^`\BY(`/\H3-\`#$YU2B[_K&<,`*X(````_X0` -M08``2*X``O\T2.X`!/\X2.X`"/\\`*X```@`_X1,WP`,0>[_-&``N1)*+O^L -M9P0`08``+6[_+/\X+6[_,/\\2F[_-&T(/4'_-&``MSH]0?\T0>[_-&``MKX` -M`#_7@`!`!+Q^/^1?,&W)R(.]:JIWS,F4]3WF$@EZKHVAOEKF12H1BN0^QQWC -MI305,;\J`:`:`8M9```````````_^```B(B(B(B(6:\`````O_P``*JJJJJJ -MJJJ9`````#TJQ-#6`1[CO:DY;Y]%K!D^(>[9!A+)\@``@/(`!*/BF`*`@````+&N_^#R``6C -M\@`%(_(Z5:+^A/(Z52+^AO(`!:/R``4C\CI5HOZ`\CI)(OZ*\@`,H_(``2/R -M.DBB_HSR+D@C_^#R``BB\@`$(_(!D`#R+D@B_^!@`+8"\@``(_(Z50#^=O(Z -M58#^>/(``(#R``2C\BYH`/_@XI@"@(````#R``4CL:[_X`*`@````/(`!:,` -M@#^````M0/^L\CI5(OY(\CI5HOY*\@`%(_(`!:/R.E4B_D3R.DFB_D[R``4C -M\@`,H_(Z22+^4/(Z1*+^5O(`""/R``0B\BY((__@\@&0`/(N1"+_K&``M7`, -M@#__@`!N,B`N_[Q*@&X20F[_XO(!D`#R+D@`_^!@`+5.\CQ$`$Y^``#R`9`` -M\CQ$*$L```!@`+4V\B?@/"\"\CQ$@``````,@'_^__]F5BU\?_X``/^<+7S) -M#]JB_Z!"KO^D\@``.BU\?]P``/_`+7R%HPC3_\1"KO_(\I0`#@!N@`#_G`!N -M@`#_P/(N2"+_G/(``(#R+D@B_\#R``"H\BY(HO_`\BYH`/_0,"[_T")``H`` -M`'__!(```#__#(`````<;PP$@````!M"KO^P8`I"@"U\`````?^P)#P``#_^ -ME(`M?*+Y@V[_D"U\3D05*O^4/4+_C/(``0#R+DDC_XPD"4A"`H*``````()? -M````+4+_K"0`!H(``#__\BY%(O^L/4+_G$)N_YXM?,D/VJ+_H$*N_Z3R+D4H -M_ZP&@```/]T]0/_`0F[_PBU\A:,(T__$0J[_R"`N_[#R``H`\BY*(_^<\@`* -M@/(N2J/_P/(`$8#R`!6B\@`.*/(`#"CR`!8B\@`!@/(`$*CR``0B2H!N```. -M\@`!J/(`#*)@`/\&\BYA`/^P)!_R']`\("[_O`R`````!&T`_2A@;/(\1(!. -M?@``80`,+&``M)0M?`````3_O/(02``@$#`H``3R+F@`_^`"@'____\,@#_7 -M@`!L!&```CH,@$`$O'YM!&``_CCR``"`\CI4H_N(0_D``&NT\BY@@/^P("[_ -ML.F`T\#R&4@H\A%$*"`N_[#BF$J`;``!!O(N:`#_C/(``"/R.E2`^UCR.E4` -M^Z+R``"C+P(D`/(``2/BF@*"@````/(Z5*+[0+&"`H*`````\CI5(ON"\@`` -MH[6N_XPD'_(``2/BF`*`@````/(Z5*+['BU\/X```/^LL:[_K/(Z52+[7/(` -M`*/R``$C\BYH`/^<\CI4HOL`L:[_G/(Z52+[1O(``*/R``$C\CI4HOKP\CI5 -M(OLZ\@``H_(``2/R.DBB^NSR.DDB^S;R``"C\@`!(_(Z2*+ZZ/(Z22+[,O(` -M`*/R``@C\BY(H_^,\CI$(OLJ\BY((_^<+P$"@0```/_R`9``\BY(HO^,80`* -MRO(?D`#R+D0B_ZQ@`+(V\BYH`/^,\@``(_(Z5(#ZI/(Z50#Z3O(``*/R+F@` -M_YSR``$CXI@"@(````#R.E2B^HKR.E4B^C2QKO^,L:[_G/(``*,`@#^````M -M0/^L\@`!(_(Z5*+Z;/(Z52+Z%O(``*/R``$C\CI4HOI@\CI5(OH*\@``H_(` -M`2/R.E2B^E3R.E4B^?[R``"C\@`!(_(Z2*+Z4/(Z22+Y^O(``*/R``$C\CI( -MHOI,\CI)(OGV\@``H_(`""/R.D2B^D3R+D@C_XSR+DBC_YPO`0*!````__(! -MD`#R+D2B_ZQA``G>\A^0`/(N2"+_C&``L4H,@#__@`!N`/P,0F[_XO(\1(!. -M?@``+P$"@0```/_R`9``\CQ$J$L```!A``FB\A^0`/(N2`#_X&``L0X``$#& -M+3C3UD8T/6^0KK'G7,=@`+'J\A!(`"`0,"@`!")``H!_____#(!`#+%G;E+R -M```82.=`0/(0\(!"@6$`X(#R/)```````$S?`@+R``"`\CQ$HDY^``#R)V@` -M\@`$("`)`H"``````(`_````\A]((B\`\@&0`/(?1"-@`+",#(!`#+*S;@"P -M)/(``!CR.E0H_VY"IR\\@````"`)`H"``````(!_^P``+P#R.E0H_U@O`4*! -M\A#P@&$`WE3R'Y``\A]((V``L$(``#_7@`!`!+Q^/^1?,&W)R(,^H+=9]0^& -MB+[RNJ6HDD\$OS1O6;.;IE\``````````#_V``#@<]/\&9Q*```````_^0`` -MTCS6A!797Z$`````O_P``(B5IL7[0CO*`````+_]``#N]7X-J$O(S@`````_ -M_```HOF#;DY$%2H`````0`$``,D/VJ(``````````#_?``"%HPC4```````` -M``#`!```R0_:HB%HPC4A@```P`0``,+'6\T077PCH-```,`$``"\?MSW_U(V -M$:'H``#`!```MC9>(NY&\``A2```P`0``*_MWTW=.ZGNH2```,`$``"II6!X -MS#!CW2'\``#`!```HUSAH[LE'YH5@``,`$``"6 -MR^/YF0Z1J"'@``#`!```D(-E)(@#2Y8@L```P`0``(HZYD]V^`6$H8@``,`$ -M``"#\F=Z9>R_Z$P``#``P``U:#83$-_3EB?P```P`,``,D/VJ(A:,(U -M(0```,`#``"\?MSW_U(V$:%H``#``P``K^W?3=T[J>Z@H```P`,``*-Z"P``#``@``R0_:HB%HPC4@@```P`(` -M`*_MWTW=.ZGNH"```,`"``"6R^/YF0Z1J"#@``#``0``^U/12JG"\L(?```` -MP`$``,D/VJ(A:,(U(````,`!``"6R^/YF0Z1J"!@``#`````R0_:HB%HPC4? -M@```O_\``,D/VJ(A:,(U'P`````````````````````````__P``R0_:HB%H -MPC6?````0````,D/VJ(A:,(UGX```$`!``"6R^/YF0Z1J*!@``!``0``R0_: -MHB%HPC6@````0`$``/M3T4JIPO+"GP```$`"``"6R^/YF0Z1J*#@``!``@`` -MK^W?3=T[J>X@(```0`(``,D/VJ(A:,(UH(```$`"``#B,=7V997:>R"P``!` -M`@``^U/12JG"\L*?@```0`,``(HZYD]V^`6$(0@``$`#``"6R^/YF0Z1J*%@ -M``!``P``HUSAH[LE'R$P``!``P``[L+3H(>L9I^A.```0`,``/M3T4JIPO+"H````$`$``"# -M\F=Z9>R_XA(```0`0``+8V7B+N1O`` -MH4@``$`$``"\?MSW_U(V$2'H``!`!```PL=;S1!=?",@T```0`0``,D/VJ(A -M:,(UH8```&``K'[R$$@`(!`P*``$`H!_____#(`_UX``;`1@``$@#(!`!+Q^ -M;01@``$D\@``@/(Z5*/[)$/Z_;CR`&"`Z8#3P/(92"CR$40HZI@"@(````!* -M@&T``&SR``"`\@`$H_(Z58#Z_/(Z50#Z_O(`!:/R``4C\CI5HOKX\CI)(OL" -M\@`%H_(`!2/R.DFB^P3R.DDB^P[R``6C\@`%(_(Z2:+[$/(``2/R``RC\@`( -M(O(\1*).?@``\@&0`/(`!"!@`*K.\@``@/(``"/R.E6`^I+R.E4`^I3R``&C -M\@`!(_(Z5:+ZCO(Z22+ZF/(``:/R``$C\CI)HOJ:\CI)(OJD\@`!H_(``2/R -M.DFB^J;R``4C\@`,(_(`"*+R/$0B3GX``/(G:(`*EX````#R`9``\A]((&`` -MJEH,@#__@`!N$/(G:`#R`9``\A](`&``JD+R)^`\+P+R/$2```````R`?_[_ -M_V96+7Q__@``_YPM?,D/VJ+_H$*N_Z3R```Z+7Q_W```_\`M?(6C"-/_Q$*N -M_\CRE``.`&Z``/^<`&Z``/_`\BY((O^<\@``@/(N2"+_P/(``*CR+DBB_\#R -M+F@`_]`P+O_0(D`"@```?_\$@```/_\,@````!QO#`2`````&T*N_[!@"D*` -M+7P````!_[`D/```/_Z4@"U\HOF#;O^0+7Q.1!4J_Y0]0O^,\@`!`/(N22/_ -MC"0)2$("@H``````@E\````M0O^L)``&@@``/__R+D4B_ZP]0O^<0F[_GBU\ -MR0_:HO^@0J[_I/(N12C_K`:````_W3U`_\!";O_"+7R%HPC3_\1"KO_(("[_ -ML/(`"@#R+DHC_YSR``J`\BY*H__`\@`1@/(`%:+R``XH\@`,*/(`%B+R``&` -M\@`0J/(`!")*@&X```[R``&H\@`,HF``_P;R+F$`_[PD'_(?T#P@+O^\XIA@ -M`/V(/]>``#__W`R`0`2*H6X``(`@+O_@+4#_O`*`?_\```:```$` -M`"U`_^`"KH````#_O"`N_[SR+D@`_^`O`4*!\A#P@&$`U?8B'R`N_[SR/$0B -M3GX```J`P````/(`1(#R``"@("[_O`"`/X```/(`1`#R`9``\@`$(F``I[I" -M;O_B\@&0`/(N2`#_X&``IZ@@+O_@`H"``````(`_@```\@!$``*`@`````J` -M@(```/(!D`#R`$0B8`"G?.GN`T/_'`P```-O$O(GX`)R!Y*`0H`#P/(?V`!. -M=4H`9R0,```!9Q8,```"9PCR+O!`_W1.=?(N\$#_:$YU\B[P0/]<3G7R+O!` -M_U!.=>GN`8/_'`P```-O$O(GX`%R!Y*`0H`#P/(?V`!.=4H`9R0,```!9Q8, -M```"9PCR+O"`_W1.=?(N\(#_:$YU\B[P@/]<3G7R+O"`_U!.=3^Y@`!`#8#` -M/[F``$`+FP=`:I-/"7FC<3]S1!-0GX``O\T``,`AG<':F4_2`````$````"3 -M78W=JJBL%P`````__@``L7(7]]'/>:P`````/U;!;6][T+(_@1$2,"QQ+#^E -M555554S!/\5555552E0_X```````````````````?_X``/__________```` -M```!``#__________P`````__P``@``````````_0$8_O-?)/_\``(6JPV?, -M2'L5O[WHVC__``"''V&6GHT0$#^]Z%P__P``B)@.@)+:A2<_OKOQ/_\``(H4 -MU75);OV:/[N`RC__``"+E<'CZHO6Y[^Z@W,__P``C1K?6WY;J>:_OI9P/_\` -M`(ZD.8M%S5/`/[VW`#__``"0,=Q#%&:QW#^^[K`__P``D]3)@D:$1KK^^OMT__P``H+!1 -M#[EQ3\(_O,EN/_\``*)P0P,,26@9O[[)"S__``"D-16N">:`GC^[T=L__P`` -MI?[6J;%1..H_O.7K/_\``*?-D[3I935JO[["=#__``"IH5JTZGP.^#^^J#P_ -M_P``JWHYM:D^TS<_OLL`/_\``*U8/NI"H4K&/[Z3`3__``"O.WBM:0I#=;^] -M@V<__P``L2/U@=*L)9"_OO!?/_\``+,1Q!*I$22)/[W[/#__``"U!/,S^=YD -MA#^^LOL__P``MOV1XRC1=Y$_NN++/_\``+C[KT=B^Y[I/[S::/_\``-F=%<)X -MK]>VO[B\83__``#;^[>7VO(W53^]]A`__P``WF#T@EX.D22_O8OA/_\``.#, -MWNPJE.$1/[K+$C__``#C/XEROHI:43^[F_X__P``Y;D&YWR#2*@_O/+T/_\` -M`.@Y:E`\2]QH/[[R+S__``#JP,;GW20Y+[^]OTH__P``[4\P'MF4*X0_OL`: -M/_\``._DN9OPM -M6?_`\CI)(_GJ+5G_Q"U9_\CR``0H/5G_T/(`""A";O_2/5G_U$)N_]9"KO_8 -M\CI((_G0T6[_P-%N_]#R``"`\@`$H_(Z50#YVO(Z58#YW/(`!2/R``6C\CI5 -M(OG6\CI5HOG8\@`%(_(`!:/R.E4B^=+R``&C\@`%(_(`#"+R``@B\BY((__` -M\BY((O_0\BY((O_`\@&0`$)N_YXM?(````#_H$*N_Z3R+D@C_YQ@`*````!: -M+```6BP``%HL``!:+```6BP``%HL``!:+```6BP``$P\```(3```"%H``!G@ -M``!,2```""X```@N```(+@``:%P```A,```(6@``&>```&A8```(+@``""X` -M``@N``!,B@``"$P```A:```9X```"#0```@N```(+@``""X```@N```(+@`` -M""X```@N```(+@``""X```@N```(+@``""X```@N```(+@``""X```@N```( -M+@``""X```@N```(H```"$P```B2```9X```6#````@N```(+@``""X```@N -M```(+@``""X```@N```(+@``""X```@N```(+@``208```A,```(O@``&>`` -M`$D"```(+@``""X```@N``!PG```"$P```AH```9X```<)@```@N```(+@`` -M""X``#\L```(3```"'8``!G@```_*```""X```@N```(+@``""X```@N```( -M+@``""X```@N```(+@``""X```@N```UY```"$P``!@*```9X```->````@N -M```(+@``""X``$%0```(3```&`H``!G@``!!3```""X```@N```(+@``8F0` -M``A,```8"@``&>```&),```(+@``""X```@N``!MR```"$P``!@*```9X``` -M;<0```@N```(+@``""X``$=8```,-```"(0``!G@``!'-```""X```@N```( -M+@``=S````PT```(A```&>```'<4```(+@``""X```@N``!X*@``##0```B$ -M```9X```>`X```@N```(+@``""X```@N```(+@``""X```@N```(+@``""X` -M``@N```(+@``",P``!><```(D@``&>````C\```(+@``""X```@N```)"@`` -M%YP```B2```9X```"3H```@N```(+@``""X```E(```7G```")(``!G@```) -M>```""X```@N```(+@``""X```@N```(+@``""X```@N```(+@``""X```@N -M```(+@``""X```@N```(+@``""X```@N```(+@``""X``$'T```,-```#!0` -M`!G@``!!W```""X```@N```(+@``""X```@N```(+@``""X```@N```(+@`` -M""X```@N```(+@``""X```@N```(+@``""X```@N```(+@``""X``#5"```+ -M^```&`H``!G@```U-```""X```@N```(+@``8FH```PT```8"@``&>```&)0 -M```(+@``""X```@N``!+I```"$P``!@*```9X```2[8```@N```(+@``""X` -M`$O.```(3```&`H``!G@``!+\@``""X```@N```(+@``""X```@N```(+@`` -M""X```@N```(+@``""X```@N```)Q@``"<8```G&```)Q@``"<8```@N```( -M+@``""X```@N```(+@``""X```@N```(+@``""X```@N```(+@``""X```@N -M```(+@``""X```@N```(+@``""X```@N```(+@``""X```@N```(+@``""X` -M``@N```(+@``""X```J,```*C```"HP```J,```*C```""X```@N```(+@`` -M"U(```M2```+4@``"U(```M2```(+@``""X```@N```(+@``""X```@N```( -M+@``""X```@N```(+@``""X```@N```(+@``""X```@N```(+@``""X```@N -M```(+@``""X```@N```(+@``""X```@N```(+@``""X```@N```(+@``""X` -M``@N```(+@``""X```@N```(+@``""X```@N```(+@``""X```@N```(+@`` -M""X```@N```(+@``""X```@N```(+@``""X```@N```(+@``""X```@N```( -M+@``""X```@N```(+@``""X```@N```(+@``""X```@N```(+@``""X```@N -M```(+@``""X```@N```(+@``""X```@N```(+@``""X```@N```(+@``""X` -M``@N``!EL@``"YP```N^```+T@``9:(```@N```(+@``""X``&6R```+G``` -M"[X```O2``!EH@``""X```@N```(+@``9;(```N<```+O@``"](``&6B```( -M+@``""X```@N``!EL@``"YP```N^```+T@``9:(```@N```(+@``""X``&6R -M```+G```"[X```O2``!EH@``""X```@N```(+@``9;(```N<```+O@``"](` -M`&6B```(+@``""X```@N``!EL@``"YP```N^```+T@``9:(```@N```(+@`` -M""X``&6R```+G```"[X```O2``!EH@``""X```@N```(+G__```````````` -M``````!__@``__________\`````0'X``/___P```````````$/^``#_____ -M___X`````````(&H``"!M@``@;X``('<``""5```@F```()F``""@```@?X` -M`((,``""%```@C(``(*^``""O@``@KX``(*^0>[_-`BN``?_-%;N_S8(+@`! -M_R1G_P```$HP+O\0`D``8`R`````0&?_````@@R`````8&?_````>C`N_Q`" -M@````'\,@````#-G_P```%P,@````#!G_P```%!@``!6,"[_'`*`````1`R` -M````0&?_````.@R`````1&?_````,C`N_QP"@````'\,@````"=G_P```!0, -M@````"1G_P````A@```.0H!@%'`!8!!P`F`,Z>X``O^#8`1A``(:Y8CI[A"" -M_X.`@4/Z_O0B<0P`3M%#^OZJ".X``?^$8```ZD/Z_JQ@``#B2B@``F<00_K^ -MC@"N"@```/^$8```V$/Z_HY@``#02B@``F<.0_K^@`CN``/_A&```+Q#^OYB -M".X``?^$8```KD/Z_E0([@`!_X1@``"40_K^=F```(Q**``"9Q!#^OXX`*X* -M````_X1@``""0_K^6&```'I**``"9PY#^OY*".X``_^$8```9D/Z_@P([@`! -M_X1@``!80_K]_@CN``'_A&`^0_K^$F`X2B@``F<.0_K]Y@"N"@```/^$8#!# -M^OWX8"I**``"9PQ#^OWL".X``_^$8!A#^OW`".X``?^$8`Q**``"9P8([@`# -M_X0Q:0`````A:0`$``0A:0`(``A.=4YU(&[_B$*G0^\``G`"8?___WTR(!]. -M=6$``+X,0``#9@9A``#*3G4(+@`!_R1G_P```$H@+O\0Z<`"0@R``````F?_ -M````?@R``````V?_````=C`N_Q`"@````'\,@````#-G_P```&0,@````#!G -M_P```%A@``!6("[_'`*``$0```R``$```&?_````-@R``$0``&?_````+B`N -M_QP"@`!_```,@``G``!G_P```!P,@``D``!G_P```!!@```.<`%.=7`"3G5" -M@$YU("[_@.G`!@).=0@N``'_)&<$0H!.=2`N_QSIP``#3G4(+@`!_R1G!$*` -M3G4@+O\+O^L3G4];O^L_T). -M=3UN_ZS_1DYU-"[_K$YU-B[_K$YU."[_K$YU.B[_K$YU/"[_K$YU/B[_K$YU -M+6[_K/]`3G4M;O^L_T1.=20N_ZQ.=28N_ZQ.=2@N_ZQ.=2HN_ZQ.=2PN_ZQ. -M=2XN_ZQ.=0``3E;_0/,G2.X#`_]`\B[P\/]0\BZ\`/^`+6X`!O^(3.X#`_]` -M\B[0\/]0\BZ<`/^`\U].7F#___]Y#@``#&\@+``&9_\```IL68].5O]`\R=( -M[@,#_T`@;@`*0^[_K'`$6(YA____>.!9CB`N_ZSIP!$##`$``68``(3IP!0& -M#`$`%V8``'@,%P!`9A:?_````"@>O`!`'WP`*``!0F\``F`>#!<`06;___]X -MG)_\````,!Z\`$$??``P``%";P`"/6X`"``$+6X`"@`&\BZ$```&<@33K@`& -M/7P@+``*0JX`##U`_QQ"KO\D".X`!?\E3.X#`_]`8/\```F^3.X#`_]`\U]. -M7EB/8/___W@Z``!.5O]`\R=([@,#_T#R+O#P_U#R+KP`_X`(+@`$_R5G'B`N -M_QSIP`##2@!G```Z#```!&<``+X,```&9P`!!`CN``7_A@CN``?_ATSN`P/_ -M0/(NT/#_4/(NG`#_@/-?3EY@____=])R!!`N_Q@"``#@#```8&<``1@,KH`` -M``#_,&8680`!KDJ`9@X@/(````!A``%.8``!XC`N_R@"0'__#$`__F8,("[_ -M,&$``31@``'(,"[_*`)`?_\,0$``9```XB`N_S`"@'__```,@'__``!GTDJN -M_S!J#@RN______\L9\)@``"\2J[_+&>X8```LG("$"[_&`(``.`,``!@9P`` -MC`RN__^``/\P9A9A``$B2H!F#B`\@````&$``,)@``%6,"[_*`)`?_\,0#_^ -M9G`@+O\P2$!A``"F8``!.G(!$"[_&`(``.`,``!@9SX,KO___X#_,&8680`` -MUDJ`9@X@/(````!A``!V8``!"C`N_R@"0'__#$`__F8D("[_,.&`2$!A``!8 -M8```[`"N```@@/^$("[_.&$``$1@``"T`*X``""`_X0(K@`!_X8(K@`#_X?R -M/(@``````$IN_RAM#B`\?____V$``!1@``"$(#R`````80``!F```'8M0/^L -M+P%A____^0PB'^C`!H-F+`*`````!PR!````!&<0#($````"9@X`@`````A@ -M!@"`````$"(`8/____PL0>[_K")N``P@`6'___]V"$YU#*[______RQF$`QN -MP`#_*&<,#&Z___\H9P1P`4YU0H!.=0@N``7_@F<<3.X#`_]`\B[0\/]0\BZ< -M`/^`\U].7F#___]UP!`N_X+`+O^&`@```V<``#(=?`#$``LM;O^$_P``K@&` -M``#_)$SN`P/_0/(NT/#_4/(NG`#_@/-?3EY@____=8!,[@,#_T#R+M#P_U#R -M+IP`_X!.7F#___]U9@``3E;_0/,G2.X#`_]`\B[P\/]0\BZ\`/^`".X``_^' -M8?\```#Z""X`!/^"9T((+@`!_R1G'NGN`8/_$`&N_N5A_P``!W0M;O^$_P`` -MK@&```#_)$SN`P/_0/(NT/#_4/(NG`#_@/-?3EY@____=/8(+@`!_X)G2`@N -M``'_)&<>Z>X!@_\0`:[^Y6'_```'*BUN_X3_``"N`8```/\D'7P`Q``+3.X# -M`_]`\B[0\/]0\BZ<`/^`\U].7F#___]TI@BN``'_)&X!@_\0`:[^Y6'_ -M```&XBUN_X3_``"N`8```/\D3.X#`_]`\B[0\/]0\BZ<`/^`\U].7F#___]T -M9$SN`P/_0/(NT/#_4/(NG`#_@$Y>8/___W1*""X``?\D9P9![O[T8`1![O\T -M"*@`!P``5N@``F'____WO@Q```-F&!UN_X3_K&'____UIAUN_ZS_A&#_```" -M&F'____TYF#_```"#@``3E;_0/,G2.X#`_]`\B[P\/]0\BZ\`/^`""X`!O^" -M9CAA_P```.00+O^"P"[_A@(```-G``"`'7P`Q``+3.X#`_]`\B[0\/]0\BZ< -M`/^`\U].7F#___]SI`@N``7_'&<``61A_P```*(=5_^[#!<`0&8$<`U@`G`+ -M0I="IU'(__P>KO^['WP`8``!+6[_A/\``*X!@```_R1,[@,#_T#R+M#P_U#R -M+IP`_X#S7TY>8/___W-("*X``O\D'5?_NPP7`$!F!'`-8`)P"T*70J=1R/_\ -M'J[_NQ]\`&```2UN_X3_``"N`8```/\D3.X#`_]`\B[0\/]0\BZ<`/^`\U]. -M7F#___]R]B!N``SI[@##_QQ*@&<2#(`````$9R@,@`````9G/DYU(B[_.'`$ -M",$`'DJ(9TPO`2)(($]A____`@2U`_ZQP!$J(9P[!24'N_ZQA____<)I.=6'____S4@)```Z>X!@_\0`:[^ -MY6'_```">BUN_X3_``"N`8```/\D3.X#`_]`\B[0\/]0\BZ<`/^`\U].7F#_ -M__]O_!`N_X+`+O^&`@```V=(""X``?\D9Q[I[@&#_Q`!KO[E8?\```(J+6[_ -MA/\``*X!@```_R0=?`#$``M,[@,#_T#R+M#P_U#R+IP`_X#S7TY>8/___V^F -M"*X``?\D9SKI[@&#_Q`!KO[E8?\```'B+6[_A/\``*X!@```_R1,[@,#_T#R -M+M#P_U#R+IP`_X#S7TY>8/___V]D3.X#`_]`\B[0\/]0\BZ<`/^`3EY@____ -M;TIA____\AI"9S\`""X``?\D9R!![O[T,B[_$`)!`'\,00`P9P8,00`S9@Q" -M@#Z\``%@!$'N_R@(J``'``!6Z``"8?___Z(6Z>X0@O^#TI]A____GZ)A____ -M\H8,```#9AQA____\I!*`&<*2B@`!&L$4V@``&'____\X&`F8?____S82J@` -M!&8,2J@`"&8&".X``O^$""@`!P``9P8([@`#_X0(+@`!_X9G!@CN``7_ATYU -M3E;_0/,G2.X#`_]`\B[P\/]0\BZ\`/^`$!<"``#P#```0&;___]N<"`N_X0" -M@`#_`/\M0/^$\CR(``````#R/)```````$(N_[EA____@9A"+O^T8?___W86 -M\R=*+O^T9@9A____X%9@____>KH``$Y6_T#S)TCN`P/_0/(N\/#_4/(NO`#_ -M@!U7_[L0%P(``/`,``!`9O___VW\\CR(``````#R/)```````"(N_X0(+@`% -M_QQF```*`H$`_P#_8`8"@0__0/\M0?^$4.[_N6'___^!$F'___^)7$*G'J[_ -MNV#___]Z0`PO`$``!&8``I@0+O[D`@``_F<``HPP+O\<`D#@`&8``4+I[@## -M_QSI[A&#_Q"R`&X!@_\X`P_\<<@>2@$*``\#R+O@`_S00/``2[^X`!O\<""X`!O\T9P``#`BN -M``3_&&```AH([@`$_QA@``(0+6[_&/^L+6[_'/^P+6[_(/^\`J[@````_[Q" -M+O[D(A_S7_,G#%=`8&<``*#I[@&#_PP,@`````-N*FGN`,/_''('DH!"@`/`\B[X`/\T -M$#P`$N_N``;_'`@N``;_-&<```P(K@`$_QA@``%0".X`!/\88``!1D[Y```` -M`#`N_QP"0/P`#$!$`&8``3#I[@&#_QSI[A&#_Q"R`&<``,3I[A&#_PRR`&8` -M`1(M;O\8_ZPM;O\<_[`M;O\@_[P"KN````#_O$(N_N0M;O\T_YPM;O\X_Z`M -M;O\\_Z0B'_-?\R<,5T!@9P``SNGN`8/_#`R``````VXJ9R(,@`````%M$F<( -M\B[P(/]H8!;R+O!`_UQ@#O(N\(#_4&`&\B[P$/]T@``!*````MV -M```$H```"TX```1````+2@``!$````M&```$0```"T(```1````+/@``!$`` -M``LZ```$0```"S8```1````+,@``!$````LN```$0```"RH```1````+)@`` -M!$````LB```$0```"QX```1````+&@``!$````L6```$0```"Q(```1````+ -M`@``!*````J\```$H```"K@```2@```*M```!*````J(```$0```"H0```1` -M```*@```!$````I\```$0```"G@```1````*=```!$````IP```$0```"FP` -M``1````*:```!$````ID```$0```"F````1````*7```!$````I8```$0``` -M"E0```1````*4```!$````I,```$0```"CP```2@```)]@``!*````GR```$ -MH```">X```2@```)P@``!$````F^```$0```";H```1````)M@``!$````FR -M```$0```":X```1````)J@``!$````FF```$0```":(```1````)G@``!$`` -M``F:```$0```"98```1````)D@``!$````F.```$0```"8H```1````)A@`` -M!$````F$```$H```"8````2@```);@``!*````EF```$H```"5H```2@```) -M4```!*````E&```$H```"4(```2@```),```!*````DH```$H```"1P```2@ -M```)$@``!*````D(```$H```"00```2@```(\@``!*````CJ```$H```"-X` -M``2@```(U```!*````B\```$H```"+````2@```(K```!*````B:```$H``` -M"$H```2@```(0@``!*````@.```$0```!^P```1````/O@``']````^&``", -MT```#HH``"O0```-*```*]````RR```KT```#(P```1````,B```!$````R$ -M```$0```#(````1````,?```!$````QX```$0```#'0```1````,<```!$`` -M``QL```$0```%P````2@```6%```!*```!5B```$H```%48```2@```5+``` -M!*```!M<```$H```&R@```2@```:W```!*```!J(```$H```&2H```2@```8 -M?@``!*```!@>```$0```%^````1````7T```!$```#!"```$P```,`X``("P -M```O\```!$```"_L```$0```+^@```1````OY```!$```"_@```$0```+]P` -M``1````OV```!$```"_4```$0```+]````1````OS```!$```"_(```$0``` -M+\0```1````OP```!$```"^"```$P```+VX```3````O6```!,```"](```$ -MP```+QP```3````O#```!,```"[@```$P```+LH```3````NL@``!,```"Z< -M```$P```+H8```3````N7```!,```"XR```$P```+A@```3````N#@``!,`` -M`"X$```$P```+>H```3````M5@``!,```"TJ```$P```+1X``(#0```JQ``` -M!$```"K````$0```*KP```1````JN```!$```"JT```$0```*K````1````J -MK```!$```"JH```$0```*.(```3````HG@``!,```"```$P```(ZH` -M``3````BP@``!,```!\(```$H```'@X```3````=N@``!*```!VH```$H``` -M'80```3````=,@``!,```!O*```$H```,C8```1````R,@``!$```#(N```$ -M0```,BH```1````QD@``!$```#&.```$0```,8H```1````QA@``!$```#$> -M```$0```,00```1````P[```!$```##:```$0```,-8```1````PT@``!$`` -M`##.```$0```,,0```1````UP```!*```#6@```$H```-9````2@```UA``` -M!*```#5````$H```-F0```2@```V0@``!*```#8R```$H```-BX```2@```U -MX@``!*```$%*```$H```038```2@``!!'```!*```$$2```$H```0)````2@ -M``!`?@``!*```$`&```$H```/RH```2@``!!N@``!*```$&V```$H```0:8` -M``2@``!!F@``!*```$%.```$H```0H(```2@``!";@``!*```$)@```$H``` -M0CP```2@``!"&@``!*```$'R```$H```2Z````2@``!+@```!*```$K6```$ -MH```2J0```2@``!*;@``!*```$D$```$H```20````2@``!(_```!*```$AZ -M```$H```2&8```2@``!'5@``!*```$N^```$H```34H```2@``!-1@``!*`` -M`$T^```$H```30P```2@``!-"```!*```$T$```$H```30````2@``!,]@`` -M!*```$SR```$H```3.X```2@``!,Z@``!*```$S>```$H```3-H```2@``!, -MU@``!*```$S2```$H```3(@```2@``!,A```!*```$R````$H```3'P```2@ -M``!,>```!*```$QT```$H```3&@```2@``!,9```!*```$Q0```$H```66(` -M``2@``!95```!*```%A8```$H```6#(```2@``!8+@``!*```%@H```$H``` -M5Z@```2@``!:)```!*```%H@```$H```6A(```2@``!:"@``!*```%G6```$ -MH```6<@```2@``!9N@``!*```%FL```$H```69X```2@``!9D```!*```%MV -M```$H```6Q(```1```!:^```!$```%K>```$0```6KP```1```!:J@``!$`` -M`%J8```$0```6GX```1```!:=```!$```%IJ```$0```7=X```2@``!A;``` -M!*```&%@```$H```83P```2@``!@%@``!*```%\H```$H```7O@```2@``!> -M>@``!*```&A$```$H```:#8```2@``!H"```!*```&?Z```$H```9QP```2@ -M``!G#@``!*```&7T```$0```9;````2@``!EK```!*```&0<```$H```9`0` -M``2@``!CX@``!*```&-0```$H```8JP```1```!B8@``!*```&).```$H``` -M:1````2@``!I!```!*```&C0```$H```:,8```2@``!HA@``!*```&A:```$ -MH```;Q````2@``!N^```!*```&Z$```$H```;<8```2@``!QU@``!*```'&J -M```$H```<9@```2@``!Q8@``!*```'$8```$H```<.X```2@``!PF@``!*`` -M`'E2```$H```>"@```2@``!X#```!*```'@$```$H```=_0```2@``!W+@`` -M!*```(!0```$0```@$P```1```"`2```!$```(!$```$0```@$````1```"` -M/```!$```(`X```$0```@#0```1```"`,```!$```(`L```$0```@"@```1` -M``"`)```!$```(`@```$0```@!P```1```"`&```!$```(`4```$0```@!`` -M``1```"`#```!$```(`(```$0```@`0```1```"`````!$```'_\```$0``` -M?_@```1```!_]```!$```'_P```$0```?^P```1```!_Z```!$```'_D```$ -M0```?^````1```!_W```!$```'_8```$0```?]0```1```!_T```!$```'_, -M```$0```?\@```1```!_Q```!$```'_````$0```?[P```1```!_N```!$`` -M`'^T```$0```?[````1```!_K```!$```'^H```$0```?Z0```1```!_H``` -M!$```'^<```$0```?Y@```1```!_E```!$```'^0```$0```?XP```1```!_ -MB```!$```'^$```$0```?X````1```!_?```!$```']X```$0```?W0```1` -M``!_<```!$```']L```$0```?V@```1```!_9```!$```']@```$0```?UP` -M``1```!_6```!$```']4```$0```?U````1```!_3```!$```'](```$0``` -M?T0```1```!_0```!$```'\\```$0```?S@```1```!_-```!$```'\P```$ -M0```?RP```1```!_*```!$```'\D```$0```?R````1```!_'```!$```'\8 -M```$0```?Q0```1```!_$```!$```'\,```$0```?P@```1```!_!```!$`` -M`'\````$0```?OP```1```!^^```!$```'[T```$0```?O````1```!^[``` -M!$```'[H```$0```?N0```1```!^X```!$```'[<```$0```?M@```1```!^ -MU```!$```'[0```$0```?LP```1```!^R```!$```'[$```$0```?L````1` -M``!^O```!$```'ZX```$0```?K0```1```!^L```!$```'ZL```$0```?J@` -M``1```!^I```!$```'Z@```$0```?IP```1```!^F```!$```'Z4```$0``` -M?I````1```!^C```!$```'Z(```$0```?H0```1```!^@```!$```'Y\```$ -M0```?G@```1```!^=```!$```'YP```$0```?FP```1```!^:```!$```'YD -M```$0```?F````1```!^7```!$```'Y8```$0```?E0```1```!^4```!$`` -M`'Y,```$0```?D@```1```!^1```!$```'Y````$0```?CP```1```!^.``` -M!$```'XT```$0```?C````1```!^+```!$```'XH```$0```?B0```1```!^ -M(```!$```'X<```$0```?A@```1```!^%```!$```'X0```$0```?@P```1` -M``!^"```!$```'X$```$0```?@````1```!]_```!$```'WX```$0```??0` -M``1```!]\```!$```'WL```$0```?>@```1```!]Y```!$```'W@```$0``` -M?=P```1```!]V```!$```'W4```$0```?=````1```!]S```!$```'W(```$ -M0```?<0```1```!]P```!$```'V\```$0```?;@```1```!]M```!$```'VP -M```$0```?:P```1```!]J```!$```'VD```$0```?:````1```!]G```!$`` -M`'V8```$0```?90```1```!]D```!$```'V,```$0```?8@```1```!]A``` -M!$```'V````$0```?7P```1```!]>```!$```'UT```$0```?7````1```!] -M;```!$```'UH```$0```?60```1```!]8```!$```'U<```$0```?5@```1` -M``!]5```!$```'U0```$0```?4P```1```!]2```!$```'U$```$0```?4`` -M``1```!]/```!$```'TX```$0```?30```1```!],```!$```'TL```$0``` -M?2@```1```!])```!$```'T@```$0```?1P```1```!]&```!$```'T4```$ -M0```?1````1```!]#```!$```'T(```$0```?00```1```!]````!$```'S\ -M```$0```?/@```1```!\]```!$```'SP```$0```?.P```1```!\Z```!$`` -M`'SD```$0```?.````1```!\W```!$```'S8```$0```?-0```1```!\T``` -M!$```'S,```$0```?,@```1```!\Q```!$```'S````$0```?+P```1```!\ -MN```!$```'RT```$0```?+````1```!\K```!$```'RH```$0```?*0```1` -M``!\H```!$```'R<```$0```?)@```1```!\E```!$```'R0```$0```?(P` -M``1```!\B```!$```'R$```$0```?(````1```!\?```!$```'QX```$0``` -M?'0```1```!\<```!$```'QL```$0```?&@```1```!\9```!$```'Q@```$ -M0```?%P```1```!\6```!$```'Q4```$0```?%````1```!\3```!$```'Q( -M```$0```?$0```1```!\0```!$```'P\```$0```?#@```1```!\-```!$`` -M`'PP```$0```?"P```1```!\*```!$```'PD```$0```?"````1```!\'``` -M!$```'P8```$0```?!0```1```!\$```!$```'P,```$0```?`@```1```!\ -M!```!$```'P````$0```>_P```1```![^```!$```'OT```$0```>_````1` -M``![[```!$```'OH```$0```>^0```1```![X```!$```'O<```$0```>]@` -M``1```![U```!$```'O0```$0```>\P```1```![R```!$```'O$```$0``` -M>\````1```![O```!$```'NX```$0```>[0```1```![L```!$```'NL```$ -M0```>Z@```1```![I```!$```'N@```$0```>YP```1```![F```!$```'N4 -M```$0```>Y````1```![C```!$```'N(```$0```>X0```1```![@```!$`` -M`'M\```$0```>W@```1```![=```!$```'MP```$0```>VP```1```![:``` -M!$```'MD```$0```>V````1```![7```!$```'M8```$0```>U0```1```![ -M4```!$```'M,```$0```>T@```1```![1```!$```'M````$0```>SP```1` -M``![.```!$```'LT```$0```>S````1```![+```!$```'LH```$0```>R0` -M``1```![(```!$```'L<```$0```>Q@```1```![%```!$```'L0```$0``` -M>PP```1```!["```!$```'L$```$0```>P````1```!Z_```!$```'KX```$ -M0```>O0```1```!Z\```!$```'KL```$0```>N@```1```!ZY```!$```'K@ -M```$0```>MP```1```!ZV```!$```'K4```$0```>M````1```!ZS```!$`` -M`'K(```$0```>L0```1```!ZP```!$```'J\```$0```>K@```1```!ZM``` -M!$```'JP```$0```>JP```1```!ZJ```!$```'JD```$0```>J````1```!Z -MG```!$```'J8```$0```>I0```1```!ZD```!$```'J,```$0```>H@```1` -M``!ZA```!$```'J````$0```>GP```1```!Z>```!$```'IT```$0```>G`` -M``1```!Z;```!$```'IH```$0```>F0```1```!Z8```!$```'I<```$0``` -M>E@```1```!Z5```!$```'I0```$0```>DP```1```!Z2```!$```'I$```$ -M0```>D````1```!Z/```!$```'HX```$0```>C0```1```!Z,```!$```'HL -M```$0```>B@```1```!Z)```!$```'H@```$0```>AP```1```!Z&```!$`` -M`'H4```$0```>A````1```!Z#```!$```'H(```$0```>@0```1```!Z```` -M!$```'G\```$0```>?@```1```!Y]```!$```'GP```$0```>>P```1```!Y -MZ```!$```'GD```$0```>>````1```!YW```!$```'G8```$0```>=0```1` -M``!YT```!$```'G,```$0```><@```1```!YQ```!$```'G````$0```>;P` -M``1```!YN```!$```'FT```$0```>;````1```!YK```!$```'FH```$0``` -M>:0```1```!YH```!$```'F<```$0```>9@```1```!YE```!$```'F0```$ -M0```>8P```1```!YB```!$```'F$```$0```>8````1```!Y?```!$```'EX -M```$0```>70```1```!Y<```!$```'EL```$0```>6@```1```!Y9```!$`` -M`'E@```$0```>5P```1```!Y6```!$```'E4```$0```AA````1```"&#``` -M!$```(8(```$0```A@0```1```"&````!$```(7\```$0```A?@```1```"% -M]```!$```(7P```$0```A>P```1```"%Z```!$```(7D```$0```A>````1` -M``"%W```!$```(78```$0```A=0```1```"%T```!$```(7,```$0```A<@` -M``1```"%Q```!$```(7````$0```A;P```1```"%N```!$```(6T```$0``` -MA'0```1```"$<```!$```(1L```$0```A&@```1```"$9```!$```(1@```$ -M0```A%P```1```"$6```!$```(14```$0```A%````1```"$3```!$```(1( -M```$0```A$0```1```"$0```!$```(0\```$0```A#@```1```""S@``1M`` -M`(#0```$0```@,P```1```"`R```!$```(#$```$0```@,````1```"`O``` -M!$```("X```$0```@+0```1```"`L```!$```("L```$0```@*@```1```"` -MI```!$```("@```$0```@)P```1```"`F```!$```("4```$0```AO(``(?0 -M``"'Q@``4-```(>T```$P```AV0``"O0``"'(```1M```(<````$P```BIH` -M`(S0``"*@```B=```(I````^T```B?@``(#0``")Z```!,```(FT```$P``` -MB"X``#[0``",`@``!,```(O\```$P```B_8```3```"+Z@``!,```(O8```$ -MP```B[8``(S0``"+G```C-```(MR```$P```BUH``(G0``"+*@``!,```(L* -M``!YT```BN````3```"-R```!,```(W"```$P```C;8```3```"-D```!,`` -M`(V```"`T```C6(``(#0``"-1```@-```(T*``",T```C+@``�``",7``` -MB=```(^:``"`T```CX````3```"/;@``!,```(]F``"`T```CPX``(#0``". -MC```!,```(YT```$P```D3@```3```"1,```!,```)$<```$P```D1````3` -M``"1"@``!,```)#\```$P```D+P```3```"0M@``C-```)"<``",T```D'(` -M``3```"06@``B=```)`J```$P```D`0``%;0``"/V@``!,```)'6```$P``` -MD=````3```"1P@``!,```)&X```$P```D9```"O0``"24```!,```))$```$ -MP```DCX```3```"2!```*]```)3P```K4```D[(``"M0````!`4``````!EJ -M````#`4``````(84````%04```````PD````'04``````%@P````)@4````` -M``P\````+@4```````54````-04```````6F````/`4```````P"````1`4` -M``````@T````3`4``````%F$````5`4``````!I$````7@4``````#,2```` -M904```````!P````;`4``````!E2````=04``````(#4````?04``````!*T -M````A`4``````#*Z````C`4``````))4````E@4``````!-0````G04````` -M`!'T````I`4``````!$T````JP4``````'@.````M`4``````!><````N@4` -M``````B@````PP4```````OX````RP4``````$ND````TP4``````$O.```` -MVP4```````30````X@4``````)%R````Z`4```````5(````[P4```````B2 -M````^`$````````````!`P4``````%G8```!"04``````&)0```!#P4````` -M`(&4```!%P4``````#5"```!'04``````$'T```!(P4```````P4```!*P4` -M`````!KR```!.@4```````PT```!0@4``````!-:```!3`4``````#"L```! -M4@4``````&6B```!6P$````````````!:@4```````N^```!04``````#7D```!?P4``````(.L```!B`4``````$Q(```!C@4````` -M`%:>```!E`4```````N<```!G04``````!E(```!I`4```````9N```!K`4` -M``````Q<```!M04```````7H```!O04``````$=8```!PP4``````!CT```! -MR@4``````!!<```!T04``````(#B```!V@4``````(&0```!XP4``````#)& -M```![`4``````#.H```!]`$````````````!_P4``````$D&```"!P4````` -M`(1X```"#P4```````AV```"%04```````Q,```"'@4``````!#4```")04` -M`````!!$```"+`4``````'"<```",@$````````````".P4``````&W$```" -M004``````(X0```"1P4``````&),```"304``````&A<```"4P4``````#`< -M```"6@4``````!@J```"804``````$%,```":04``````!"8```"<@4````` -M`(^$```">P$````````````"A@4```````A,```"C`4``````(ZD```"E04` -M`````!N@```"G@4``````%@T```"I@4``````%F@```"K0$````````````" -MMP4```````<^```"O`4``````(?,```"QP4``````'@J```"SP4``````%F\ -M```"U@4```````DZ```"WP4``````$'<```"Y@4``````(\4```"[P4````` -M`!>T```"]`4``````#4T```"^P$````````````#!04``````$NV```##@4` -M``````A:```#$P4```````C\```#&P4``````$OR```#)`4```````G&```# -M*04``````$P\```#+@4``````%N<```#,P4```````AH```#.`4``````'E4 -M```#/P4``````&6R```#1P4``````!I.```#404``````&)J```#5@4````` -M`'<4```#7P4``````(.6```#9P4``````%HL```#;@4``````(;X```#>04` -M`````!@*```#@04```````EX```#B04```````O2```#E`4``````$'1D;G)M`&1E;F]R;0!B:6YD96,`=%]F&0`=%]D>C(`@!T7VEN>#(`87!?F5R;P!A -M<%]S=%]Z`'-E=&]X`'1?;W9F;`!334%,4DX`;W9F7W)?>#(`;W9F7W)?>#,` -M;G)M7WIEF5R;P!334%,4E``4$E26E)-`'-T86YH`&UE;5]R96%D`'-T -M86YD`'-T;W)E`'-S:6YD`'-S:6YH`'!?;6]V90!T7W5N9FP``!S;&]G,F0`&-E<'0``!P