From de19c97eaed8b2ba6e76ec19257555a64bf7b652 Mon Sep 17 00:00:00 2001 From: "fabio.olimpieri" Date: Sat, 7 Apr 2012 10:33:47 +0000 Subject: [PATCH] First release --- AMSTRAD | 43 + CAPABILITIES | 19 + COPYING | 674 + FAQ | 133 + INSTALL | 32 + Makefile | 156 + Makefile.ori | 89 + PORTING | 22 + README | 223 + README.TZX | 26 + TODO | 14 + VERSIONS | 141 + fbzx.desktop | 12 + fbzx.pnproj | 1 + fbzx.pnps | 1 + fbzx.svg | 12 + keymap.bmp | Bin 0 -> 220160 bytes spectrum-roms/128-0.rom | Bin 0 -> 16384 bytes spectrum-roms/128-1.rom | Bin 0 -> 16384 bytes spectrum-roms/128-spanish-0.rom | Bin 0 -> 16384 bytes spectrum-roms/128-spanish-1.rom | Bin 0 -> 16384 bytes spectrum-roms/48.rom | Bin 0 -> 16384 bytes spectrum-roms/if1-2.rom | Bin 0 -> 8192 bytes spectrum-roms/plus2-0.rom | Bin 0 -> 16384 bytes spectrum-roms/plus2-1.rom | Bin 0 -> 16384 bytes spectrum-roms/plus3-0.rom | Bin 0 -> 16384 bytes spectrum-roms/plus3-1.rom | Bin 0 -> 16384 bytes spectrum-roms/plus3-2.rom | Bin 0 -> 16384 bytes spectrum-roms/plus3-3.rom | Bin 0 -> 16384 bytes src/cargador.c | 625 + src/cargador.h | 43 + src/characters.c | 224 + src/characters.h | 23 + src/computer.c | 1599 +++ src/computer.h | 215 + src/emulator.c | 802 ++ src/emulator.h | 45 + src/menus.c | 1949 +++ src/menus.h | 53 + src/microdrive.c | 176 + src/microdrive.h | 33 + src/sound.c | 476 + src/sound.h | 39 + src/spk_ay.c | 337 + src/spk_ay.h | 26 + src/tape.c | 771 ++ src/tape.h | 31 + src/z80free/COPYING | 674 + src/z80free/Makefile | 141 + src/z80free/Makefile.ori | 32 + src/z80free/README.txt | 247 + src/z80free/Z80free.c | 783 ++ src/z80free/Z80free.h | 153 + src/z80free/Z80free_codes.c | 1242 ++ src/z80free/Z80free_codes.txt | 259 + src/z80free/Z80free_codesCB.c | 1052 ++ src/z80free/Z80free_codesCB.txt | 259 + src/z80free/Z80free_codesDD.c | 890 ++ src/z80free/Z80free_codesDD.txt | 262 + src/z80free/Z80free_codesDDCB.c | 1391 +++ src/z80free/Z80free_codesDDCB.txt | 262 + src/z80free/Z80free_codesED.c | 1025 ++ src/z80free/Z80free_codesED.txt | 260 + src/z80free/Z80free_codesFD.c | 890 ++ src/z80free/Z80free_codesFD.txt | 262 + src/z80free/Z80free_codesFDCB.c | 1391 +++ src/z80free/Z80free_codesFDCB.txt | 262 + src/z80free/tests.expected | 18395 ++++++++++++++++++++++++++++ src/z80free/tests.in | 9011 ++++++++++++++ src/z80free/tests.z80free | 14752 ++++++++++++++++++++++ src/z80free/z80_test.pnproj | 1 + src/z80free/z80_test.pnps | 1 + src/z80free/z80free_gencode.py | 1308 ++ src/z80free/z80free_tester.c | 286 + src/z80free/z80free_testgen.py | 83 + src/z80free/z80txt_converter.py | 67 + 76 files changed, 64706 insertions(+) create mode 100644 AMSTRAD create mode 100644 CAPABILITIES create mode 100644 COPYING create mode 100644 FAQ create mode 100644 INSTALL create mode 100644 Makefile create mode 100644 Makefile.ori create mode 100644 PORTING create mode 100644 README create mode 100644 README.TZX create mode 100644 TODO create mode 100644 VERSIONS create mode 100644 fbzx.desktop create mode 100644 fbzx.pnproj create mode 100644 fbzx.pnps create mode 100644 fbzx.svg create mode 100644 keymap.bmp create mode 100644 spectrum-roms/128-0.rom create mode 100644 spectrum-roms/128-1.rom create mode 100644 spectrum-roms/128-spanish-0.rom create mode 100644 spectrum-roms/128-spanish-1.rom create mode 100644 spectrum-roms/48.rom create mode 100644 spectrum-roms/if1-2.rom create mode 100644 spectrum-roms/plus2-0.rom create mode 100644 spectrum-roms/plus2-1.rom create mode 100644 spectrum-roms/plus3-0.rom create mode 100644 spectrum-roms/plus3-1.rom create mode 100644 spectrum-roms/plus3-2.rom create mode 100644 spectrum-roms/plus3-3.rom create mode 100644 src/cargador.c create mode 100644 src/cargador.h create mode 100644 src/characters.c create mode 100644 src/characters.h create mode 100644 src/computer.c create mode 100644 src/computer.h create mode 100644 src/emulator.c create mode 100644 src/emulator.h create mode 100644 src/menus.c create mode 100644 src/menus.h create mode 100644 src/microdrive.c create mode 100644 src/microdrive.h create mode 100644 src/sound.c create mode 100644 src/sound.h create mode 100644 src/spk_ay.c create mode 100644 src/spk_ay.h create mode 100644 src/tape.c create mode 100644 src/tape.h create mode 100644 src/z80free/COPYING create mode 100644 src/z80free/Makefile create mode 100644 src/z80free/Makefile.ori create mode 100644 src/z80free/README.txt create mode 100644 src/z80free/Z80free.c create mode 100644 src/z80free/Z80free.h create mode 100644 src/z80free/Z80free_codes.c create mode 100644 src/z80free/Z80free_codes.txt create mode 100644 src/z80free/Z80free_codesCB.c create mode 100644 src/z80free/Z80free_codesCB.txt create mode 100644 src/z80free/Z80free_codesDD.c create mode 100644 src/z80free/Z80free_codesDD.txt create mode 100644 src/z80free/Z80free_codesDDCB.c create mode 100644 src/z80free/Z80free_codesDDCB.txt create mode 100644 src/z80free/Z80free_codesED.c create mode 100644 src/z80free/Z80free_codesED.txt create mode 100644 src/z80free/Z80free_codesFD.c create mode 100644 src/z80free/Z80free_codesFD.txt create mode 100644 src/z80free/Z80free_codesFDCB.c create mode 100644 src/z80free/Z80free_codesFDCB.txt create mode 100644 src/z80free/tests.expected create mode 100644 src/z80free/tests.in create mode 100644 src/z80free/tests.z80free create mode 100644 src/z80free/z80_test.pnproj create mode 100644 src/z80free/z80_test.pnps create mode 100644 src/z80free/z80free_gencode.py create mode 100644 src/z80free/z80free_tester.c create mode 100644 src/z80free/z80free_testgen.py create mode 100644 src/z80free/z80txt_converter.py diff --git a/AMSTRAD b/AMSTRAD new file mode 100644 index 0000000..5dc2ec8 --- /dev/null +++ b/AMSTRAD @@ -0,0 +1,43 @@ +Although Amstrad is the current propietary of the copyright of the original +ZX Spectrum ROMs, they have kindly given their permission for its +redistribution with Spectrum emulators. + +These are the conditions put by Amstrad to use and distribute the ROM files, +extracted from +http://groups.google.com/group/comp.sys.amstrad.8bit/msg/c092cc4d4943131e + +-------------------------------------------------------------------------- + +1) What exactly do you have to do to use Sinclair ROMs in an emulator, such +as acknowledgements etc?" + +Amstrad are happy for emulator writers to include images of our copyrighted +code as long as the (c)opyright messages are not altered and we appreciate +it if the program/manual includes a note to the effect that "Amstrad have +kindly given their permission for the redistribution of their copyrighted +material but retain that copyright". + +"2) Can you charge a shareware fee for an emulator that uses the Sinclair +ROMs?" + +No. No one should be charging for the ROM code because (as a result of the +point above) there are loads of freely available images anyway. If I ever +thought someone was charging for the ROM images then I'd make them available +as a free download on the www.amstrad.com web site. Naturally I imagine that +some emulator writers want to charge a shareware fee for the code they have +written and we have absolutely no problem with that as long as they aren't, +in any sense, charging for the parts of the code that are (c)Amstrad and (c) +Sinclair. + +"3) Can you modify the ROMs, for instance to enable tape loading and saving, +and if so what are the requirements?" + +The ROM code is simply a tool to let the emulator writers make a program +that works as close to the original machine as possible. If they choose to +modify the behaviour in any way then that's entirely up to them (I guess you +could say that that is exactly what an emulator IS doing (ie modifying the +screen output and keyboard input to go via the PC bits)!!) + +"4) Can you distribute modified ROMs?" + +If you like (with that (c) proviso). diff --git a/CAPABILITIES b/CAPABILITIES new file mode 100644 index 0000000..300bfd5 --- /dev/null +++ b/CAPABILITIES @@ -0,0 +1,19 @@ +WHAT EMULATES RIGHT IN FBZX? + +-Screen timmings in 48K and 128K mode. +-Screen generation, so border efects and even attribute changing efects + should work fine. +-48K sound (included the low-pass filter efect of Tape out). +-128K sound (fully emulation of the AY-3-8912). +-Trash in the bus when reading from a non-existing port. This is right generated + (from the data being displayed in that moment) so games works right (like + SHORTCIRCUIT, that runs without flickering). +-Spectrum 48K Issue 2 and 3 efects in the EAR bit are correctly emulated. +-Priority of joystick over keyboard. +-Snow efect when I register points between 64 and 127. +-Emulation of Interface I and Microdrive (only one drive). +-Memory contention +-Emulates Spanish 128K from Investronica/Sinclair +-Allows to insert POKE values in memory (inmunity, infinite lives...) +-Can load and save SCR snapshots +-ULAPlus support diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/FAQ b/FAQ new file mode 100644 index 0000000..27b847b --- /dev/null +++ b/FAQ @@ -0,0 +1,133 @@ +FBZX CAN'T INITIALIZATE THE SDL LIBRARY. + +Is possible that you don't have the '/dev/mouse' symlink, or maybe, that +symlink (or the device pointed by) has no access permissions for the user you +are using. Just try (as root): + + +FBZX SAYS THAT IS RUNNING WITHOUT SOUND, AND TO READ THE FAQ + +Currently FBZX uses ALSA, OSS or PulseAudio to generate the sound, and that +means that there can be only one sound source at each time in the system. If +you have a MP3 playing, without the PULSEAUDIO daemon launched, FBZX won't be +able to get access to the sound. + + +WHAT SPEED DO I NEED TO USE FBZX? + +I'm not sure what's exactly the minimum speed, but I used it in an AMD K6-II +runing at 450 MHz and it worked at fully speed. Now, with the new OSS sound +*seems* to work even better, so maybe you could use it with an smaller +computer. + + +FBZX CAN BE USED FROM X-WINDOWS? + +Since FBZX uses the SDL library, it can be used both from console and from X, +but, of course, in X it will need more system resources due to the fact that it +needs to emulate an 8-bit screen. Of course this was problematic with 2003 +computers, but current systems can run FBZX under X without problems. + +If you use it from console, it is strongly reccomended to use a native +FrameBuffer driver, in order to allow FBZX to change the current video mode +(see next question). + +You can use the -fb option to make FBZX work in fullscreen mode. + + +I'M USING VESAFB IN MY (16-24 bits) CONSOLE, BUT FBZX WORKS SLOW... + +That's because SDL is emulating an 8-bit screen for FBZX. The solution is to +change it for a FrameBuffer specific for your graphic card. If there's no +native driver (or it doesn't work reliably), you can use the SuperVESAfb +driver. This is a VESA driver that allows to change the resolution on-the-fly. +You can find it in: + + http://www.rastersoft.com/supervesafb.html + +This driver is only for 2.4 kernels. 2.6 versions have a new VESAFB driver +capable of switching the resolution. + + +MY COMPUTER DOESN'T HAVE FUNCTION KEYS (F1, F2...). HOW CAN I GET ACCESS TO +THE MENUS? + +Just press the TAB key and you will see the message "Function key mode on". +Now you can use the number keys (0-9) to emulate the functions keys (F10 is '0', +F1 is '1', and so on, F11 is 'o' and F12 is 'p'). + + +THERE'S A DELAY IN THE SOUND. HOW CAN I ELIMINATE IT? + +Unfortunately, you can't. I have to use at least two buffers of 4096 bytes each +one in order to have an stable sound, and this means, at 48000 samples/sec, +0'17 seconds, and that's a perceptible delay for the human ear (with lower +sample rates it would became even worse; to avoid it, at sample rates lower +than 24000 samples/sec I reduce the buffer to 2048 bytes). + + +THERE ARE SOME GLITCHES IN THE SOUND + +Maybe your CPU is too slow to run FBZX at full speed. But you can see with top +the load of each program, and give less priority to the ones that uses more +CPU. I do this with aMule, and the glitches dissapears. + + +I TRIED TO LOAD A .TZX FILE, BUT THE EMULATOR SHOWS A MESSAGE THAT +TELLS: "Unsuported TZX. Contact FBZX autor". WHAT'S HAPPEN? + +Just read the file README.TZX. + + +I CHOOSE A .TZX FILE AND TYPE LOAD "", BUT NOTHING HAPPENS. + +Fast load is available only with TAP files. If you want to load a TZX file, +you must press F6 in order to play the tape. + + +I TRIED TO LOAD A .TAP FILE IN FAST MODE, BUT IT FAILS AND THE EMULATOR +SHOWS THE MESSAGE "Block with right flag not found". WHAT'S HAPPENNING? + +Each Spectrum's tape block has a flag byte that identify each one. Flag 0 is +for headers, and flag FF is for data blocks. A programmer can define its own +flag bytes if he wants. + +If the program loader wants to load a block with a flag XX, but there isn't a +block in the TAP file with that flag, the fast loader will stop and show that +message (and will return a "Tape error" to the program loader). If I don't do +this, the fast loader should be reading the tape again and again, trying to +find a block with that flag, and the emulator should hang up (not really hang, +but it wouldn't be able to respond to keystrokes, even to the ESC key). + + +I CREATED A NEW MDR FILE, BUT WHEN I TRY TO WRITE TO IT, OR DO A CAT 1, +IT DOESN'T WORK, AND I HAVE TO PRESS BREAK (SHIFT + SPACE) TO STOP THE +COMMAND. + +When you create a MDR file, it is created "in blank", so you must format the +medium before using it. To do it, just use: + + FORMAT "m";1;"name" + +changing 'name' with the name you want to give to the cartridge. + +You can format a cartridge too if you want to erase a MDR file. + + +THE SYSTEM RETURNS THE MESSAGE DRIVE 'WRITE' PROTECTED. WHAT CAN I DO TO +UNPROTECT IT? + +Just press F7 and change the 'Write protection' status with F3. Remember that +the status is stored with the cartridge, so if you exit the emulator and load +a MDR file again, it will have the same status you left it. + + +WHERE CAN I FIND INFO ABOUT HOW TO USE THE INTERFACE I AND THE MICRODRIVES? + +In: + + http://www.madhippy.com/8-bit/sinclair/zxif1micro.html + +you can find the HTML version of the original manual of the Interface I and +Microdrive. There's ALL what you shoul need to know to work with it. + diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..5fd51ab --- /dev/null +++ b/INSTALL @@ -0,0 +1,32 @@ +HOW TO INSTALL FBZX + +If you want to install FBZX, you must compile your own version, +just typing as root: + + make clean + make + make install + +Be sure you have the SDL, libasound2 and libpulse libraries (both runtime and +headers). + + +HOW TO RUN FBZX + +Just type + + fbzx + +If you don't want sound (or you haven't a sound card), you can run it with + + fbzx -nosound + +To know all the other FBZX options, just type + + fbzx -h + +or + + fbzx --help + +and enjoy! diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2e9cf98 --- /dev/null +++ b/Makefile @@ -0,0 +1,156 @@ +#--------------------------------------------------------------------------------- +# Clear the implicit built in rules +#--------------------------------------------------------------------------------- +.SUFFIXES: +#--------------------------------------------------------------------------------- +ifeq ($(strip $(DEVKITPPC)),) +$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") +endif + +include $(DEVKITPPC)/wii_rules + +#--------------------------------------------------------------------------------- +# TARGET is the name of the output +# BUILD is the directory where object files & intermediate files will be placed +# SOURCES is a list of directories containing source code +# INCLUDES is a list of directories containing extra header files +#--------------------------------------------------------------------------------- +TARGET := fbzx +BUILD := build +SOURCES := src src/z80free +DATA := +INCLUDES := + +#--------------------------------------------------------------------------------- +# options for code generation +#--------------------------------------------------------------------------------- + +CFLAGS = -g -O2 -Wall $(MACHDEP) $(INCLUDE) -Wno-pointer-sign -DDEBUG +CXXFLAGS = $(CFLAGS) + +LDFLAGS = -g $(MACHDEP) -Wl,-Map,$(notdir $@).map + +#--------------------------------------------------------------------------------- +# any extra libraries we wish to link with the project +#--------------------------------------------------------------------------------- +LIBS := -lSDL_mixer -lsmpeg -lvorbisidec -lSDL_image -lpng -ljpeg -lz -lSDL -lSDL_gfx -lfreetype -lfat -lwiiuse -lbte -logc -lm -lwiikeyboard + +#--------------------------------------------------------------------------------- +# list of directories containing libraries, this must be the top level containing +# include and lib +#--------------------------------------------------------------------------------- +LIBDIRS := $(PORTLIBS) + + +#--------------------------------------------------------------------------------- +# no real need to edit anything past this point unless you need to add additional +# rules for different file extensions +#--------------------------------------------------------------------------------- +ifneq ($(BUILD),$(notdir $(CURDIR))) +#--------------------------------------------------------------------------------- + +export OUTPUT := $(CURDIR)/$(TARGET) + +export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \ + $(foreach dir,$(DATA),$(CURDIR)/$(dir)) + +export DEPSDIR := $(CURDIR)/$(BUILD) + +#--------------------------------------------------------------------------------- +# automatically build a list of object files for our project +#--------------------------------------------------------------------------------- +CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) +CFILES := $(filter-out z80free_tester.c, $(CFILES)) +CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) +sFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) +SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.S))) +BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) + +#--------------------------------------------------------------------------------- +# use CXX for linking C++ projects, CC for standard C +#--------------------------------------------------------------------------------- +ifeq ($(strip $(CPPFILES)),) + export LD := $(CC) +else + export LD := $(CXX) +endif + +export OFILES := $(addsuffix .o,$(BINFILES)) \ + $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) \ + $(sFILES:.s=.o) $(SFILES:.S=.o) + +#--------------------------------------------------------------------------------- +# build a list of include paths +#--------------------------------------------------------------------------------- +export INCLUDE := $(foreach dir,$(INCLUDES), -iquote $(CURDIR)/$(dir)) \ + $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ + -I$(CURDIR)/$(BUILD) \ + -I$(LIBOGC_INC) + +#--------------------------------------------------------------------------------- +# build a list of library paths +#--------------------------------------------------------------------------------- +export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) \ + -L$(LIBOGC_LIB) + +export OUTPUT := $(CURDIR)/$(TARGET) +.PHONY: $(BUILD) clean + +#--------------------------------------------------------------------------------- +$(BUILD): + @[ -d $@ ] || mkdir -p $@ + @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile + +#--------------------------------------------------------------------------------- +clean: + @echo clean ... + @rm -fr $(BUILD) $(OUTPUT).elf $(OUTPUT).dol dist + +#--------------------------------------------------------------------------------- + + +dist: $(BUILD) + rm -fr $@ + mkdir -p $@/apps/fbzx-wii + mkdir -p $@/fbzx-wii/fbzx + mkdir -p $@/fbzx-wii/spectrum-roms + mkdir -p $@/fbzx-wii/applications + mkdir -p $@/fbzx-wii/pixmaps + mkdir -p $@/fbzx-wii/doc/fbzx + cp fbzx.dol $@/apps/fbzx-wii/boot.dol + cp spectrum-roms/* $@/fbzx-wii/spectrum-roms + cp keymap.bmp $@/fbzx-wii/fbzx + cp fbzx.desktop $@/fbzx-wii/applications + cp fbzx.svg $@/fbzx-wii/pixmaps + cp AMSTRAD CAPABILITIES COPYING FAQ README README.TZX VERSIONS $@/fbzx-wii/doc/fbzx/ + cd $@ && tar -czf ../fbzx-wii-bin.tar.gz * + +#--------------------------------------------------------------------------------- +run: + wiiload $(TARGET).dol + + +#--------------------------------------------------------------------------------- +else + +DEPENDS := $(OFILES:.o=.d) + +#--------------------------------------------------------------------------------- +# main targets +#--------------------------------------------------------------------------------- +$(OUTPUT).dol: $(OUTPUT).elf +$(OUTPUT).elf: $(OFILES) + +#--------------------------------------------------------------------------------- +# This rule links in binary data with the .jpg extension +#--------------------------------------------------------------------------------- +%.jpg.o : %.jpg +#--------------------------------------------------------------------------------- + @echo $(notdir $<) + $(bin2o) + +-include $(DEPENDS) + +#--------------------------------------------------------------------------------- +endif +#--------------------------------------------------------------------------------- diff --git a/Makefile.ori b/Makefile.ori new file mode 100644 index 0000000..ef2695c --- /dev/null +++ b/Makefile.ori @@ -0,0 +1,89 @@ +ifdef PREFIX + PREFIX2=$(PREFIX)/usr +else + PREFIX2=/usr/local +endif + +CFLAGS += `pkg-config --cflags sdl libpulse-simple alsa` -O2 -Wno-pointer-sign -Wall -D D_SOUND_PULSE -D D_SOUND_ALSA -D D_SOUND_OSS +LDFLAGS += `pkg-config --libs sdl libpulse-simple alsa` + +fbzx: computer.o Z80free.o Z80free_codes.o Z80free_codesCB.o Z80free_codesED.o Z80free_codesDD.o Z80free_codesFD.o Z80free_codesDDCB.o Z80free_codesFDCB.o emulator.o cargador.o characters.o menus.o sound.o tape.o spk_ay.o microdrive.o + + $(CC) -o fbzx computer.o Z80free.o Z80free_codes.o Z80free_codesCB.o Z80free_codesED.o Z80free_codesDD.o Z80free_codesFD.o Z80free_codesDDCB.o Z80free_codesFDCB.o emulator.o cargador.o characters.o menus.o sound.o tape.o spk_ay.o microdrive.o $(LDFLAGS) + +clean: + rm fbzx *.o *~ + +install: + rm -f $(PREFIX2)/bin/fbzx + cp fbzx $(PREFIX2)/bin + mkdir -p $(PREFIX2)/share/fbzx + mkdir -p $(PREFIX2)/share/spectrum-roms + mkdir -p $(PREFIX2)/share/applications + mkdir -p $(PREFIX2)/share/pixmaps + mkdir -p $(PREFIX2)/share/doc/fbzx + cp spectrum-roms/* $(PREFIX2)/share/spectrum-roms + cp keymap.bmp $(PREFIX2)/share/fbzx + cp fbzx.desktop $(PREFIX2)/share/applications + cp fbzx.svg $(PREFIX2)/share/pixmaps + cp AMSTRAD CAPABILITIES COPYING FAQ README README.TZX VERSIONS $(PREFIX2)/share/doc/fbzx/ + +uninstall: + rm -f $(PREFIX2)/bin/fbzx + rm -rf $(PREFIX2)/share/fbzx + rm -f $(PREFIX2)/share/applications/fbzx.desktop + rm -f $(PREFIX2)/share/pixmaps/fbzx.svg + rm -rf $(PREFIX2)/share/doc/fbzx + rm -rf $(PREFIX2)/share/spectrum-roms + +spk_ay.o: spk_ay.c spk_ay.h emulator.h sound.h computer.h z80free/Z80free.h + $(CC) $(CFLAGS) -c -o spk_ay.o spk_ay.c + +microdrive.o: microdrive.c microdrive.h z80free/Z80free.h computer.h emulator.h z80free/Z80free.h + $(CC) $(CFLAGS) -c -o microdrive.o microdrive.c + +sound.o: sound.c sound.h computer.h emulator.h z80free/Z80free.h + $(CC) $(CFLAGS) -c -o sound.o sound.c + +emulator.o: emulator.c z80free/Z80free.h computer.h emulator.h characters.h menus.h cargador.h sound.h tape.h microdrive.h + $(CC) $(CFLAGS) -c -o emulator.o emulator.c + +computer.o: computer.c z80free/Z80free.h computer.h emulator.h characters.h menus.h cargador.h sound.h tape.h spk_ay.h microdrive.h + $(CC) $(CFLAGS) -c -o computer.o computer.c + +tape.o: tape.c z80free/Z80free.h computer.h emulator.h menus.h tape.h computer.h + $(CC) $(CFLAGS) -c -o tape.o tape.c + +cargador.o: cargador.c cargador.h computer.h emulator.h z80free/Z80free.h characters.h menus.h computer.h + $(CC) $(CFLAGS) -c -o cargador.o cargador.c + +characters.o: characters.c characters.h emulator.h computer.h + $(CC) $(CFLAGS) -c -o characters.o characters.c + +menus.o: menus.c menus.h characters.h computer.h emulator.h z80free/Z80free.h cargador.h tape.h + $(CC) $(CFLAGS) -c -o menus.o menus.c + +Z80free.o: z80free/Z80free.c z80free/Z80free.h + $(CC) $(CFLAGS) -c -o Z80free.o z80free/Z80free.c + +Z80free_codes.o: z80free/Z80free_codes.c z80free/Z80free.h + $(CC) $(CFLAGS) -c -o Z80free_codes.o z80free/Z80free_codes.c + +Z80free_codesCB.o: z80free/Z80free_codesCB.c z80free/Z80free.h + $(CC) $(CFLAGS) -c -o Z80free_codesCB.o z80free/Z80free_codesCB.c + +Z80free_codesED.o: z80free/Z80free_codesED.c z80free/Z80free.h + $(CC) $(CFLAGS) -c -o Z80free_codesED.o z80free/Z80free_codesED.c + +Z80free_codesDD.o: z80free/Z80free_codesDD.c z80free/Z80free.h + $(CC) $(CFLAGS) -c -o Z80free_codesDD.o z80free/Z80free_codesDD.c + +Z80free_codesFD.o: z80free/Z80free_codesFD.c z80free/Z80free.h + $(CC) $(CFLAGS) -c -o Z80free_codesFD.o z80free/Z80free_codesFD.c + +Z80free_codesDDCB.o: z80free/Z80free_codesDDCB.c z80free/Z80free.h + $(CC) $(CFLAGS) -c -o Z80free_codesDDCB.o z80free/Z80free_codesDDCB.c + +Z80free_codesFDCB.o: z80free/Z80free_codesFDCB.c z80free/Z80free.h + $(CC) $(CFLAGS) -c -o Z80free_codesFDCB.o z80free/Z80free_codesFDCB.c + diff --git a/PORTING b/PORTING new file mode 100644 index 0000000..ae98fec --- /dev/null +++ b/PORTING @@ -0,0 +1,22 @@ +HOW TO PORT FBZX INTO OTHER O.S. AND ARQUITECTURES + +FBZX uses the SDL library, so you must have it available in the +arquitecture/operating system where you want to port it. It's the only 'must +have'. Of course, is possible that you have to rewrite the Makefile, but that's +relatively easy (isn't it?). + +The sound system is designed to be easily portable; currently it supports both +the OSS and ALSA arquitecture. In the file 'sound.c' are defined the three +functions needed to support it: + + sound_init: initializates the sound system with the desired sound format, + speed, and so on, and fills the 'ordenador' struct with the parameters + needed to sincronize the emulation. + + sound_play: plays the current sound buffer, and initializates + 'ordenador.current_buffer' to the new buffer to be filled. It must not + return until the buffer has been played (this allows the sincronization). + + sound_close: closes the sound device and frees all memory used. + +That's all. Start to compile :) diff --git a/README b/README new file mode 100644 index 0000000..3346fca --- /dev/null +++ b/README @@ -0,0 +1,223 @@ +FBZX +A ZX Spectrum emulator for FrameBuffer + + +DISCLAIMER + +FBZX is distributed under the GPL license, version three or later, which means +that is distributed "as is", without warraty of any kind. To know more details, +read the file COPYING. + +The old exception for the Z80 emulator has been removed because now FBZX uses +Z80FREE, a brand new, fully GPLv3, Z80 emulator. So finally FBZX is 100% free +software. + +Amstrad have kindly given their permission for the redistribution of their +copyrighted material (the original Spectrum ROMs) but retain that copyright. +To know more details about how to distribute them, read the file AMSTRAD. + + +WHAT IS FBZX? + +FBZX is a Sinclair ZX Spectrum emulator, designed to work in FrameBuffer under +Linux, but can work under Xwindows too, both in full screen mode and in a +window. It uses the SDL library, so it should be easily ported to other +architectures. Please, read the file PORTS to know more details about this. + +FBZX is based in Z80FREE, which you can find into the folder z80free. + +To work with FBZX you need: + + -A FrameBuffer-capable graphic card (or compatible with X-windows) + -A Linux system with FrameBuffer configured (can use X too) + -Sound Card with ALSA or OSS drivers (optional) + +In order to get the maximum performance, your FrameBuffer driver must allow to +change to 640x480 or 480x640 resolution in 8 bits. Only the old VESAFB driver can +have problems with this fact, so if you use this driver, be sure to boot your +Linux box in 640x480 in 8 bits. If you don't do this, SDL will emulate that +mode, resulting in a high performance penalty. If you use an specific Framebuffer +driver, or the VESAFB driver from kernels 2.6, just don't worry: FBZX will +automagically change the graphic mode when starts. + + +WHAT CAPABILITIES HAVE FBZX? + +FBZX can emulate the original 48K spectrum (issue 2 and issue 3), the original +128K, the Amstrad +2, the Amstrad +2A and the Spanish 128K. + +The screen and the sound are emulated in a very acuracy way, so nearly all +the sound and screen effects should work in this emulator. + +128K sound is emulated too, and can be disabled in 128K mode in order to save +CPU time procesing, if your computer is slow. + +It emulates the Interface I and one microdrive unit, allowing to load from and +save to MDR files. + +FBZX can handle Z80 snapshots (both load and save) and SNA (only load). In a +future, more snapshot formats will be supported. + +FBZX can handle TAP files (load and save), and have a fast-load mode that allows +to load in milliseconds a TAP file. This fast-load mode is enabled by default, but +can be disabled. + +FBZX can also handle TZX files (see README.TZX for details). + +FBZX can emulate the Kempston, Cursor, Sinclair 1 and Sinclair 2 joysticks, +with the cursor keys (fire is emulated with the right ALT key, ALT-GR +key, WINDOWS MENU key or WINDOWS SYSTEM right key), or with a real +JoyStick. + + +HOW DO I USE FBZX? + +To run FBZX just type + + fbzx + +from a console. + +You can load a snapshot directly with: + + fbzx game.z80 + fbzx game.sna + +or assign a TAP or TZX file with: + + fbzx game.tap + fbzx game.tzx + +(in this case you still must use LOAD ""). This allows you to asociate that +file extensions to FBZX. + +You can use the option -fs to run it in FullScreen mode. If you use the -rotate +option, FBZX will run in 480x640 mode (needed for some PDAs like the Zaurus) +rotating the screen 90 degrees. There's another option, -mini, that will run +FBZX in 480x640 mode but the screen won't be rotated, but will be half width +and height (very small). + +You can run it without sound too, just typing: + + fbzx -nosound + +You can use this if you don't have a sound card, or it hasn't OSS support. + +You can combine theses options as you like. An example: + + fbzx -nosound -fs + + fbzx -rotate -nosound + +By default, FBZX will try to use ALSA sound; if it can't, it will try with OSS +sound; finally, if both fails it will use no sound and alert the user. + +You can change the order with + + fbzx -oss + +That way it will try firts with OSS, then with ALSA. + +FBZX works in X too, but it would run slower due to the penalty of the X +Window System. Fortunately this only applies to old systems. Current +computers can run FBZX under X without problem. + +The PC keyboard works exactly like the Spectrum keyboard (but only numbers and +letters). ENTER key is Return, CAPS SHIFT is in both Shift keys, and SYMBOL +SHIFT is in both Control keys. Delete, ',' and '.' works too. I hope to add +'extended keys' in a near future. + +Whit ESC you exit FBZX. + +F1 shows a help page with all the available keys. + +F2 sends you to a menu where you can load and save snapshots. + +F3 sends you to a menu where you can choose a TAP/TZX file, rewind it, +choose if you want normal speed or fast speed for loading, enable or +disable the write protection, and create a new (and empty) TAP file. + +F4 send you to a menu where you can choose the emulation type you want (48K, +128K, +2, +2A or spanish 128K), the joystick, enable or disable the AY +emulation and enable or disable the Interface I. + +F5 stops the tape when normal speed is selected. With fast speed, it does +nothing. + +F6 plays the tape when normal speed is selected. With fast speed, it does +nothing. + +F7 allows to choose a MDR file (microdrive), protect and unprotect it, +and create a new (and empty) one. + +F8 allows to shows a picture with the keyboard layout, or insert POKE values + +F9 toggles between fullscreen/windowed mode + +F10 resets the spectrum. + +F11 is volume down. + +F12 is volume up. + +If your system doesn't have function keys, you can use TAB plus keys 0 to 9 +to emulate them (F11 is TAB and O, and F12 is TAB and P). + + +HOW DO I CHOOSE A FILE WITH THE TAP/TZX OR Z80/SNA SELECTOR? + +You can choose a file just by moving the white bar with the cursor keys. You +can use also the RePag and AvPag to jump over 12 positions. + +The files are in white ink, the directories in green ink, and the upper +directory are the two red dots. + +When you choose a TAP file, it is marked as "save protected", so if you want +to save programs, you must enable it. If you create a new TAP file, it is +marked as "save enabled", so you can start to save directly. + +The SAVE option works only with the classic ROM routine, so you will be able +to save from programs that use them (it can save programs without header, too, +since the emulator intercepts the call to SA-BYTES). Each new block is added at +the end of the file, but only if the SAVE operation is enabled for this file. + + +HOW WORKS THE FAST SPEED LOAD AND SAVE FOR TAP FILES? + +Just type LOAD "" in the emulator (or choose the TAPE LOADER option in the 128K +menu) and the tape will automagically load. This only works with programs that +uses the ROM to load all the blocks. If you have a TAP file with a program that +uses a custom routine to load the blocks, then you must use the NORMAL SPEED. +To do this, press F3 to go to the TAP menu and choose NORMAL SPEED. Then return +to the emulation (with ESC) and use LOAD "" (or the TAPE LOADER option). +Finally, put the tape in Play with F6. You can stop the tape with F5 and start +it again with F6 as many times you want. + +When the tape ends, is automatically stoped and rewinded. You can rewind the +tape when you want with the right option in the TAP menu (F3 key). + +In a near future a block manager will be added, in order to allow the user to +choose a block into the TAP file (thinking in multistage games). + +Remember that the Fast Speed is available only for TAP files, not in TZX. In +the last case you can go to the SETTINGS menu (F4) and change the TURBO mode +to FAST, so the tape will load faster, and then change again to NORMAL. + +The FAST SPEED applies when saving too. The SAVE operation is done ALWAYS +when SA-BYTES (in the Spectrum ROM) is called. The difference between FAST and +normal SAVE is that FAST returns inmediately, and NORMAL calls the original +routine. This means that, if you abort the save command, the block will be saved +in the TAP file anyway. + + +HOW WORKS THE INTERFACE I AND MICRODRIVE EMULATION? + +FBZX can emulate an Interface I with one microdrive attached, but only when +working as Spectrum 48K, 128K or +2, never as +2A/+3 since it's incompatible. + +You just have to choose an MDR file (or create a new MDR file) using the F7 +key, and you will be able to use all the Interface I commands and programs. +Remember to format your cartridge (MDR file) after creating one. + +When you save something to the cartridge, the MDR file is updated as soon as +the Spectrum stops the "motor" of the drive. diff --git a/README.TZX b/README.TZX new file mode 100644 index 0000000..3e8caea --- /dev/null +++ b/README.TZX @@ -0,0 +1,26 @@ +ABOUT THE TZX SUPPORT + +Currently, the support for TZX files is incomplete, in the sense it only +supports the most common tape blocks. The current implementation should +allow to load the 99% of the games, including a lot with specific load +routines (like Turbo). + +I didn't add that blocks because I was able to find only a limited number of +TZX with estrange load protections, so I preferred to add only blocks that I can test +myself. + +If you try to load a TZX file that contains an unsuported block, FBZX will show +you a message "Unsuported TZX. Contact FBZX autor". In that case, please, +send me by e-mail that TZX file in order to implement that new block kind in +the TZX loader. + + +PROBLEMS WITH SPEEDLOCK-2? + +The old Z80 emulator had problems to load SpeedLock programs (turbo protection). +I haven't been unable to test the new emulator in this case, so I can't +say if it finally works or not. All comments are welcome. + +Other kind of TURBO protections (like Alkatraz, the one used in Fairlight) +have been tested and work fine. + diff --git a/TODO b/TODO new file mode 100644 index 0000000..01749a7 --- /dev/null +++ b/TODO @@ -0,0 +1,14 @@ +TO-DO list (in any particular order) + +-Add support for more snapshot types, like SLP, SP, ZX, ZXS, ZX82... +-Finish support for TZX tape format (see README.TZX for details). +-Discover why Speedlock-protected games doesn't work (see README.TZX for + details) +-Add support for saving compressed Z80 snapshots (at this moment, are stored + always uncompressed). +-Add +3 disk drive emulation +-Add Disciple/PlusD emulation +-Add emulation for Russian spectrums (scorpion & pentagon). +-Add a TAP manager, to allow to go to a specific block into the TAP file. +-Add support for mouse, emulating the AMX Mouse. + diff --git a/VERSIONS b/VERSIONS new file mode 100644 index 0000000..3687ab0 --- /dev/null +++ b/VERSIONS @@ -0,0 +1,141 @@ +2.7.0 + +*Fixed a bug that prevented FBZX to store the current mode +*Now supports 320x240 mode + +2.6.0 + +*ULAPlus support +*Fixed a little bug in the ROM loading +*Allows to go to TAP/Snapshots/etc menus from HELP menu + +2.5.0 + +*Allows to set POKEs +*Emulates B&W sets +*Allows to load and save SCR snapshots + +2.4.3 + +*Fixed a bug with the double-scan flag + +2.4.2 + +*Fixed a bug with alsa sound + +2.4.1 + +*Now will work fine under all 64bit systems + +2.4.0 + +*Fixed a bug in SNA loader (thanks to Jose Luis) +*Added a DC filter in PulseAudio sound, to avoid losing the sound when +mixing with other audio sources (thanks to Paul N) +*Added a help message at startup + +2.3.0 + +*Added support for PulseAudio +*Allows to selectively compile the audio backend (useful for Gentoo users) + +2.2.0 + +*Several bugfixes in the Z80 emulator, giving a much more accurate +emulation of the Z80 instruction set (thanks to the Z80 tests from +FUSE). Anyway, still not perfect. + +2.1b + +*Directory ROMS in TAR.BZ2 package renamed to SPECTRUM-ROMS to allow FBZX +to run without global installation. + +2.1 + +*Changed the ROM format for compatibility with files in +Debian package SPECTRUM-ROMS +*Added new icon (thanks to Paulo Silva) + +2.0 + +*100% Free code (under GPL3) due to a rewriten Z80 emulator +*Emulates the Spanish 128K (thanks to J. Baltasar) +*Can use ALSA or OSS to sound output +*Stores the volume settings +*Fixed a bug in the sound with some soundcards +*Can be run from the local directory, without installing in /usr + +1.10 + +*Allows to switch between full screen and window mode +*Added Turbo mode, to load TZX files faster (both thanks to a patch +from Marcin Bukat) +*Shows FBZX as window name + +1.9 + +*Stores the current mode before exiting, so if you was playing in 128K +mode, it will return in 128K mode. +*Allows to show the screen with or without scanline emulation +*Shows the OSD in the bottom of the screen +*Clicking on the X button in the window bar closes the emulator + +1.8 + +*Fixed a bug when loading .Z80 snapshots +*Added support for .SNA snapshots +*Added support for Joysticks +*Now creates an entry in the GNOME/KDE menus +*Can load snapshots or tapes from the command line +*Allows to asociate to it the file extensions .SNA, .Z80, .TAP and TZX so +you can load games just clicking over the file. + +1.7 + +*Fixed a bug in the creation of 128K snapshots +*Fixed the memory access ports in 128K mode + +1.6 +*Fixed an stupid bug that can crash FBZX +*Added support for rotated, 480x640 screens (like PDAs) +*Direct support for 8, 16, 24 and 32 bpp (more performance) +*Added contended memory emulation +*Added support for ',' and '.' keys +*Added FullScreen mode in XWindows +*Added a picture with the keyboard layout +*Added support for computers without function keys +*Asks for confirmation before exiting +*Fixed the version number + +1.5 +*Direct compilation under BIG ENDIAN arquitectures (eg. PowerPC). + +1.4 +*Added the ability to create .TAP files and save to them. +*Added Interface I and Microdrive emulation (read and write). +*Added emulation of DELETE key. +*Added emulation of SNOW effect. +*Fixed a little bug in the fast-TAP loader. +*Fixed a speed problem when used without sound. + + +1.3 +*Added support for more TZX tape files (thanks to Daley Thompson :) + +1.2 +*Added support for TZX tape files. +*Fixed a bug in the file selector. +*Added right emulation of register R. +*Added a digital low-pass filter to enhace the 48K sound. + +1.1 +*Changed the sound system. Now it uses OSS instead the SDL API. This fixes a +problem with the temporization and some glitches in the sound. +*Now can be used without sound card (run it with '-nosound' parameter). + +1.0.1 +*Very little fixes to remove some innocent warnings during compilation. Thanks +to Philip Kendall. + +1.0 +*First public release. diff --git a/fbzx.desktop b/fbzx.desktop new file mode 100644 index 0000000..120d400 --- /dev/null +++ b/fbzx.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +X-MultipleArgs=false +Type=Application +Version=2.4.3 +Encoding=UTF-8 +Name=FBZX +GenericName=A Sinclair ZX Spectrum emulator +Comment=Play with the old, great games of the venerable ZX Spectrum +TryExec=fbzx +Exec=fbzx +Categories=Game; +Icon=fbzx diff --git a/fbzx.pnproj b/fbzx.pnproj new file mode 100644 index 0000000..0414710 --- /dev/null +++ b/fbzx.pnproj @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fbzx.pnps b/fbzx.pnps new file mode 100644 index 0000000..7e6c7be --- /dev/null +++ b/fbzx.pnps @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/fbzx.svg b/fbzx.svg new file mode 100644 index 0000000..07f42f9 --- /dev/null +++ b/fbzx.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/keymap.bmp b/keymap.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a748db7048a262b64c7864b3e91ef1ad49560526 GIT binary patch literal 220160 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
ipD&GM&n~T#SW1#>(92sPt_@C${X0r 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 literal 0 HcmV?d00001 diff --git a/spectrum-roms/128-1.rom b/spectrum-roms/128-1.rom new file mode 100644 index 0000000000000000000000000000000000000000..64c3e73769cb459680f335a2db0abc557c243d8b GIT binary patch literal 16384 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 Qs19QP8;1_PQIz+80l1Bavj6}9 literal 0 HcmV?d00001 diff --git a/spectrum-roms/128-spanish-0.rom b/spectrum-roms/128-spanish-0.rom new file mode 100644 index 0000000000000000000000000000000000000000..ca505c8781dc192c58ffc32b6308724dcdfcfa4f GIT binary patch literal 16384 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 b1qrAxt*BU1YQ&OJ8^~3@wr}5Sm8Jg|XAU6l literal 0 HcmV?d00001 diff --git a/spectrum-roms/48.rom b/spectrum-roms/48.rom new file mode 100644 index 0000000000000000000000000000000000000000..4d6895e0bbf3fa543f192a66a297192b3c969ac9 GIT binary patch literal 16384 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

5RYmg65FY9s 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 literal 0 HcmV?d00001 diff --git a/spectrum-roms/if1-2.rom b/spectrum-roms/if1-2.rom new file mode 100644 index 0000000000000000000000000000000000000000..2587b3a9b0f830f778f1f4601d42bafa978a2103 GIT binary patch literal 8192 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 QGL;=(gTMEn!b(g32hI^dkN^Mx literal 0 HcmV?d00001 diff --git a/spectrum-roms/plus2-0.rom b/spectrum-roms/plus2-0.rom new file mode 100644 index 0000000000000000000000000000000000000000..feff23334d6ea7ad861fefa9f4588366711207fb GIT binary patch literal 16384 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 z z2t9q>MAHb{T(mE#90n^BoMw*HbUoc**Osl8KKA`{**T>Q2VJs#PP25F=3r4D&iAWyVH0C+oatrDJZ_ zM+q_WS1WEK>phAxl343V@}*vBwI_jZQo6y*b4sp{(Ho$cM0FN?`3D^eDgDNkRN5!@fz<{rX49oAU{yc8u&+R!QZ=Tlhi`<^lduMKbuA_6_$%37MtQu0nOaSg`Ewm3&_#|AWJ1$a17BKuCcd_n*6vk z*re%sKf=!A^j~&668p$e4zy5FVwQR+mU%`2BMsmpI8ZqHQkGSUsB83>}>&QvhNzA zY&!x;X^rpJu@$5*dDlcje`o+@!M;5p%<$IEzZsn*`xJ9>S;3raO1Ct5^@^F9we==2 zg8gFgIPMAn5xbTSbOhj#Kag@;!VVgW-3yyNvPtKU0yGZPxt-1f4rAwC2(LrNeiwe* ziMaz|N^n{mdS51tL7IUUj5&9<1u(CIHWgO0ncgxHGb`eUb_lZ-`xr>|eLeD=)?)WP@*xN=5mGJlEM6&xaR-fE`>!Ke|9BOWV zU0B>Fy?TB0CTz1*=RrZOVHqvmbG;oFPG^WF`*fHN#4L;-W&IqR5nJr6^5|taRAj^Z z3r);-a44!tD45S0L0Ys&wmm_OOcDZeU zFB|YZ9$eYBtNwAsXkUOYMjLCN2@Ia2e)(E`|WNLQ5Dd_3|+2&}6g~I`=6cr%n`+mNQE6pNg#vnJq zI$rD->%WgWxd9Y@KhKRp6%;*@O(Nh$t&JcToK0GFP~Q--wq-@qVM0Zwn9;Q@dJ71!}&`J73+NenqRdWKN;h8VLeCf z>Q{04U4tqxjksI-l^?a@u6~(jVYweqtBVVHS}W4uasA5Qi<164V3e|5{rN#=B;$Mt zob^!Nd4GP9(tEow0l(D?Vo}FnQ7aTu9?H|-0Kz~6xB^+M%F_gHb(upcC|%>A=$DnT z6*-*YU@vS z=r~MOP{H7^4tkoPN#P)ue$wQHd+{xg_zAgrE?GX8%$Y})Eh39=h9vy|^kM!l9-KiZ literal 0 HcmV?d00001 diff --git a/spectrum-roms/plus2-1.rom b/spectrum-roms/plus2-1.rom new file mode 100644 index 0000000000000000000000000000000000000000..2c206476a98704ed3e7892d5c4c13b3dc706a744 GIT binary patch literal 16384 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 CIfC~9 literal 0 HcmV?d00001 diff --git a/spectrum-roms/plus3-0.rom b/spectrum-roms/plus3-0.rom new file mode 100644 index 0000000000000000000000000000000000000000..29e047c403ca34fa8e98e99a1438d74bfbedf244 GIT binary patch literal 16384 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 XXXX9hfCJ&%pQrx|fQ#%) literal 0 HcmV?d00001 diff --git a/spectrum-roms/plus3-1.rom b/spectrum-roms/plus3-1.rom new file mode 100644 index 0000000000000000000000000000000000000000..0f8113b26e7d0baf79635a5e60613245ef20c07c GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/spectrum-roms/plus3-2.rom b/spectrum-roms/plus3-2.rom new file mode 100644 index 0000000000000000000000000000000000000000..d4b02bfe8d5e7da20d7ee63ff143013c1ace145f GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/spectrum-roms/plus3-3.rom b/spectrum-roms/plus3-3.rom new file mode 100644 index 0000000000000000000000000000000000000000..e83937de5961d412171e901d33091bda6bf72847 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/src/cargador.c b/src/cargador.c new file mode 100644 index 0000000..d479566 --- /dev/null +++ b/src/cargador.c @@ -0,0 +1,625 @@ +/* + * Copyright 2003-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "z80free/Z80free.h" +#include "computer.h" +#include "emulator.h" +#include "cargador.h" +#include +#include + +void uncompress_z80(FILE *fichero,int length,unsigned char *memo) { + + unsigned char byte_loaded,EDfound,counter; + int position,retval; + + counter=0; + byte_loaded=0; + EDfound=0; + position=0; + + printf("Descomprimo de longitud %d\n",length); + + do { + if(counter) { + memo[position++]=byte_loaded; + counter--; + continue; + } else + retval=fread(&byte_loaded,1,1,fichero); + + if(EDfound==2) { // we have two EDs + counter=byte_loaded; + retval=fread(&byte_loaded,1,1,fichero); + EDfound=0; + continue; + } + + if(byte_loaded==0xED) { + EDfound++; + } else { + if(EDfound==1) { // we found ED xx. We write ED and xx + memo[position++]=0xED; + EDfound=0; + } + if (position>=length) { + break; + } + memo[position++]=byte_loaded; + } + } while(position>8)&0xFF)); // PC + else + fprintf(fichero,"%c%c",0,0); // 128K + + fprintf(fichero,"%c%c",procesador.Rm.br.P,procesador.Rm.br.S); // SP + fprintf(fichero,"%c%c%c",procesador.I,procesador.R,(((procesador.R2>>7)&0x01)|((ordenador.border<<1)&0x0E))); // I, R and border color + + fprintf(fichero,"%c%c%c%c%c%c%c%c%c%c%c%c%c%c",procesador.Rm.br.E,procesador.Rm.br.D,procesador.Ra.br.C,procesador.Ra.br.B,procesador.Ra.br.E,procesador.Ra.br.D,procesador.Ra.br.L,procesador.Ra.br.H,procesador.Ra.br.A,procesador.Ra.br.F,procesador.Rm.br.IYl,procesador.Rm.br.IYh,procesador.Rm.br.IXl,procesador.Rm.br.IXh); + + if (procesador.IFF1) + value=1; + else + value=0; + fprintf(fichero,"%c",value); + if (procesador.IFF2) + value=1; + else + value=0; + fprintf(fichero,"%c",value); + value=procesador.IM; + if(ordenador.issue==2) + value|=4; + switch (ordenador.joystick) { + case 1: + value|=64; + break; + case 2: + value|=128; + break; + case 3: + value|=192; + break; + } + fprintf(fichero,"%c",value); + + if(ordenador.mode128k==0) { // 48K + retval=fwrite((ordenador.memoria+147456),16384,1,fichero); // video memory + retval=fwrite((ordenador.memoria+98304),32768,1,fichero); // memory pages 2 & 3 + fclose(fichero); + return 0; + } + + // 128K + + fprintf(fichero,"%c%c",23,0); // Z80 file v2.01 + fprintf(fichero,"%c%c",(byte)(procesador.PC&0x0FF),(byte)((procesador.PC>>8)&0x0FF)); // PC + fprintf(fichero,"%c",3); // hardware mode=3 + fprintf(fichero,"%c",ordenador.mport1); // content of 0x7FFD latch + fprintf(fichero,"%c%c",0,0); // no If1, no emulation of any kind + fprintf(fichero,"%c",ordenador.ay_latch); // last selected AY register + for(bucle=0;bucle<16;bucle++) + fprintf(fichero,"%c",ordenador.ay_registers[bucle]); // AY registers + for(bucle=0;bucle<8;bucle++) { + fprintf(fichero,"%c%c",0xFF,0xFF); // length=0xFFFF (uncompressed) + fprintf(fichero,"%c",bucle+3); // page number + retval=fwrite(ordenador.memoria+(16384*bucle)+65536,16384,1,fichero); // store page + } + fclose(fichero); + return 0; +} + +int load_z80(char *filename) { + + struct z80snapshot snap; + unsigned char tempo[30],tempo2[56],memo[49152],type,compressed,page,byte_read[3]; + FILE *fichero; + int longitud=0,longitud2,bucle,retval; + + longitud=strlen(filename); + if ((longitud>4)&&(0==strcasecmp(".sna",filename+(longitud-4)))) { + printf("Read SNA file\n"); + return load_sna(filename); + } + + printf("Read Z80 file\n"); + + for(bucle=0;bucle<16;bucle++) + snap.ay_regs[bucle]=0; + + fichero=fopen(filename,"r"); + if(fichero==NULL) + return -1; // error + + printf("Read header (first 30 bytes)\n"); + retval=fread(tempo,1,30,fichero); + + if((tempo[6]==0)&&(tempo[7]==0)) { // extended Z80 + printf("It's an extended Z80 file\n"); + type=1; // new type + + retval=fread(tempo2,1,2,fichero); // read the length of the extension + + longitud=((int)tempo2[0])+256*((int)tempo2[1]); + if(longitud>54) { + fclose(fichero); + printf("Not suported Z80 file\n"); + return -3; // not a supported Z80 file + } + printf("Length: %d\n",longitud); + retval=fread(tempo2+2,1,longitud,fichero); + + if(longitud==23) // z80 ver 2.01 + switch(tempo2[4]) { + case 0: + case 1: + snap.type=0; // 48K + break; + case 3: + case 4: + snap.type=1; // 128K + break; + default: + fclose(fichero); + printf("Again not suported Z80 file\n"); + return -3; // not a supported Z80 file + break; + } + else // z80 ver 3.0x + switch(tempo2[4]) { + case 0: + case 1: + case 3: + snap.type=0; // 48K + break; + case 4: + case 5: + case 6: + snap.type=1; // 128K + break; + default: + fclose(fichero); + return -3; // not a supported Z80 file + break; + } + } else { + printf("Old type z80\n"); + type=0; // old type + snap.type=0; // 48k + } + + if(tempo[29]&0x04) { + printf("Issue 2\n"); + snap.issue=2; // issue2 + } else { + printf("Issue 3\n"); + snap.issue=3; // issue3 + } + + snap.A=tempo[0]; + snap.F=tempo[1]; + snap.C=tempo[2]; + snap.B=tempo[3]; + snap.L=tempo[4]; + snap.H=tempo[5]; + if(type) { + snap.PC=((word)tempo2[2])+256*((word)tempo2[3]); + for(bucle=0;bucle<16;bucle++) + snap.ay_regs[bucle]=tempo2[9+bucle]; + snap.ay_latch=tempo2[8]; + } else { + snap.PC=((word)tempo[6])+256*((word)tempo[7]); + } + + snap.SP=((word)tempo[8])+256*((word)tempo[9]); + snap.I=tempo[10]; + snap.R=(tempo[11]&0x7F); + + if(tempo[12]==255) { + printf("Byte 12 is 255! doing 1\n"); + tempo[12]=1; + } + + if(tempo[12]&0x01) + snap.R|=0x80; + + snap.border=(tempo[12]>>1)&0x07; + + if(tempo[12]&32) + compressed=1; + else + compressed=0; + + snap.E=tempo[13]; + snap.D=tempo[14]; + snap.CC=tempo[15]; + snap.BB=tempo[16]; + snap.EE=tempo[17]; + snap.DD=tempo[18]; + snap.LL=tempo[19]; + snap.HH=tempo[20]; + snap.AA=tempo[21]; + snap.FF=tempo[22]; + snap.IY=((word)tempo[23])+256*((word)tempo[24]); + snap.IX=((word)tempo[25])+256*((word)tempo[26]); + + if(tempo[27]!=0) + snap.IFF1=1; + else + snap.IFF1=0; + + if(tempo[28]!=0) + snap.IFF2=1; + else + snap.IFF2=0; + + switch(tempo[29]&0x03) { + case 0: + snap.Imode=0; + break; + case 1: + snap.Imode=1; + break; + case 2: + snap.Imode=2; + break; + } + + snap.joystick=((tempo[29]>>6)&0x03); + + if(type) + snap.pager=tempo2[5]; + + if(type) { // extended z80 + if(snap.type==1) { // 128K snapshot + + /* fclose(fichero); + return -3;*/ // z80 file not yet supported + + while(!feof(fichero)) { + retval=fread(byte_read,3,1,fichero); + if(feof(fichero)) + break; + longitud2=((int)byte_read[0])+256*((int)byte_read[1]); + switch(byte_read[2]) { + case 3: + page=0; + break; + case 4: + page=1; + break; + case 5: + page=2; + break; + case 6: + page=3; + break; + case 7: + page=4; + break; + case 8: + page=5; + break; + case 9: + page=6; + break; + case 10: + page=7; + break; + default: + page=11; + break; + } + printf("Loading page %d of length %d\n",page,longitud); + if(longitud2==0xFFFF) // uncompressed raw data + retval=fread(snap.page[page],16384,1,fichero); + else + uncompress_z80(fichero,16384,snap.page[page]); + } + + } else { + while(!feof(fichero)) { + retval=fread(byte_read,3,1,fichero); + if(feof(fichero)) + break; + longitud2=((int)byte_read[0])+256*((int)byte_read[1]); + switch(byte_read[2]) { + case 8: + page=0; + break; + case 4: + page=1; + break; + case 5: + page=2; + break; + default: + page=11; + break; + } + if(longitud2==0xFFFF) // uncompressed raw data + retval=fread(snap.page[page],16384,1,fichero); + else + uncompress_z80(fichero,16384,snap.page[page]); + } + } + } else { + + if(compressed) { + // 48k compressed z80 loader + + // we uncompress first the data + + uncompress_z80(fichero,49152,memo); + + memcpy(snap.page[0],memo,16384); + memcpy(snap.page[1],memo+16384,16384); + memcpy(snap.page[2],memo+32768,16384); + + } else { + // 48k uncompressed z80 loader + + retval=fread(snap.page[0],16384,1,fichero); + retval=fread(snap.page[1],16384,1,fichero); + retval=fread(snap.page[2],16384,1,fichero); + } + + } + + load_snap(&snap); + fclose(fichero); + return 0; // all right +} + +int load_sna(char *filename) { + + unsigned char tempo[49179]; + unsigned char tempo2[98308]; + unsigned char type=0; + FILE *fichero; + struct z80snapshot snap; + unsigned char v1,v2; + int addr,loop; + + + printf("Loading SNA file\n"); + + fichero=fopen(filename,"r"); + if(fichero==NULL) + return -1; // error + + if (1!=fread(tempo,49179,1,fichero)) { + return -1; + } + + if (0==fread(tempo2,1,98308,fichero)) { + printf("48K SNA\n"); + type=0; + } else { + printf("128K SNA\n"); + type=1; + } + + snap.type=type; + + snap.I=tempo[0]; + snap.LL=tempo[1]; + snap.HH=tempo[2]; + snap.EE=tempo[3]; + snap.DD=tempo[4]; + snap.CC=tempo[5]; + snap.BB=tempo[6]; + snap.FF=tempo[7]; + snap.AA=tempo[8]; + + snap.L=tempo[9]; + snap.H=tempo[10]; + snap.E=tempo[11]; + snap.D=tempo[12]; + snap.C=tempo[13]; + snap.B=tempo[14]; + + snap.IY=((word)tempo[15])+256*((word)tempo[16]); + snap.IX=((word)tempo[17])+256*((word)tempo[18]); + + if (tempo[19]&0x01) { + snap.IFF1=1; + } else { + snap.IFF1=0; + } + + if (tempo[19]&0x02) { + snap.IFF2=1; + } else { + snap.IFF2=0; + } + + snap.R=tempo[20]; + snap.F=tempo[21]; + snap.A=tempo[22]; + snap.SP=((word)tempo[23])+256*((word)tempo[24]); + snap.Imode=tempo[25]; + snap.border=tempo[26]; + + if (type==0) { + + v1=tempo[23]; + v2=tempo[24]; + addr=((int)v1)+256*((int)v2); + if ((addr<16384)||(addr>=65534)) { + printf("Error loading SNA file. Return address in ROM.\n"); + return -1; + } + addr-=16384; + addr+=27; + snap.PC=((word)tempo[addr])+256*((word)tempo[addr+1]); + tempo[addr]=0; + tempo[addr+1]=0; + snap.SP+=2; + snap.IFF1=snap.IFF2; + memcpy(snap.page[0],tempo+27,16384); + memcpy(snap.page[1],tempo+16411,16384); + memcpy(snap.page[2],tempo+32795,16384); + } else { + snap.PC=((word)tempo2[0])+256*((word)tempo2[1]); + memcpy(snap.page[5],tempo+27,16384); + memcpy(snap.page[2],tempo+16411,16384); + v1=tempo[2]; + snap.pager=v1; + v1&=0x07; + memcpy(snap.page[v1],tempo+32795,16384); + addr=4; + for (loop=0;loop<7;loop++) { + if ((loop==2)||(loop==5)||(loop==((int)v1))) { + continue; + } + memcpy(snap.page[loop],tempo2+addr,16384); + addr+=16384; + } + } + + load_snap(&snap); + return 0; + +} + +void load_snap(struct z80snapshot *snap) { + + int bucle; + + printf("Loading SnapShot\n"); + + switch(snap->type) { + case 0: // 48k + printf("Mode 48K\n"); + ordenador.mode128k=0; // 48K mode + ordenador.issue=snap->issue; + ResetComputer(); + break; + case 1: // 128k + printf("Mode 128K\n"); + ordenador.mode128k=2; // +2 mode + ordenador.issue=3; + ResetComputer(); + printf("Pager: %X\n",snap->pager); + Z80free_Out(0x7FFD,snap->pager); + break; + default: + break; + } + + ordenador.joystick=snap->joystick; + + procesador.Rm.br.A=snap->A; + procesador.Rm.br.F=snap->F; + procesador.Rm.br.B=snap->B; + procesador.Rm.br.C=snap->C; + procesador.Rm.br.D=snap->D; + procesador.Rm.br.E=snap->E; + procesador.Rm.br.H=snap->H; + procesador.Rm.br.L=snap->L; + printf("A:%d F:%d B:%d C:%d D:%d E:%d H:%d L:%d\n",snap->A,snap->F,snap->B,snap->C,snap->D,snap->E,snap->H,snap->L); + procesador.Ra.br.A=snap->AA; + procesador.Ra.br.F=snap->FF; + procesador.Ra.br.B=snap->BB; + procesador.Ra.br.C=snap->CC; + procesador.Ra.br.D=snap->DD; + procesador.Ra.br.E=snap->EE; + procesador.Ra.br.H=snap->HH; + procesador.Ra.br.L=snap->LL; + printf("A:%d F:%d B:%d C:%d D:%d E:%d H:%d L:%d\n",snap->AA,snap->FF,snap->BB,snap->CC,snap->DD,snap->EE,snap->HH,snap->LL); + procesador.Rm.wr.IX=snap->IX; + procesador.Rm.wr.IY=snap->IY; + procesador.Rm.wr.SP=snap->SP; + procesador.PC=snap->PC; + printf("IX:%d IY:%d SP:%d PC:%d\n",snap->IX,snap->IY,snap->SP,snap->PC); + procesador.I=snap->I; + procesador.R=snap->R; + procesador.R2=snap->R; + printf("I:%d R:%d\n",snap->I,snap->R); + + if(snap->IFF1) { + procesador.IFF1=1; + } else { + procesador.IFF1=0; + } + if(snap->IFF2) { + procesador.IFF2=1; + } else { + procesador.IFF2=0; + } + + procesador.IM=snap->Imode; + Z80free_Out(0xFFFE,((snap->border&0x07)|0x10)); + + switch(snap->type) { + case 0: // 48K + + for(bucle=0;bucle<16384;bucle++) { + ordenador.memoria[bucle+147456]=snap->page[0][bucle]; + ordenador.memoria[bucle+98304]=snap->page[1][bucle]; + ordenador.memoria[bucle+114688]=snap->page[2][bucle]; + } + + ordenador.ay_emul=0; + break; + case 1: // 128K + + for(bucle=0;bucle<16384;bucle++) { + ordenador.memoria[bucle+65536]=snap->page[0][bucle]; + ordenador.memoria[bucle+81920]=snap->page[1][bucle]; + ordenador.memoria[bucle+98304]=snap->page[2][bucle]; + ordenador.memoria[bucle+114688]=snap->page[3][bucle]; + ordenador.memoria[bucle+131072]=snap->page[4][bucle]; + ordenador.memoria[bucle+147456]=snap->page[5][bucle]; + ordenador.memoria[bucle+163840]=snap->page[6][bucle]; + ordenador.memoria[bucle+180224]=snap->page[7][bucle]; + } + ordenador.ay_emul=1; + for(bucle=0;bucle<16;bucle++) + ordenador.ay_registers[bucle]=snap->ay_regs[bucle]; + ordenador.ay_latch=snap->ay_latch; + break; + default: + break; + } +} diff --git a/src/cargador.h b/src/cargador.h new file mode 100644 index 0000000..9e3a2b3 --- /dev/null +++ b/src/cargador.h @@ -0,0 +1,43 @@ +/* + * Copyright 2003-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "z80free/Z80free.h" +#include "computer.h" +#include "emulator.h" + +struct z80snapshot { + + byte A,F,B,C,D,E,H,L,AA,FF,BB,CC,DD,EE,HH,LL,R,I,IFF1,IFF2,Imode,issue; + word PC,IX,IY,SP; + byte type; // bit 0/1: 48K/128K/+3 + byte border; // border color + byte pager; // content of pagination register in 128K mode + unsigned char page[12][16384]; + unsigned int found_pages; // bit=1: page exists. bit=0: page don't exists. + unsigned char ay_regs[16]; + unsigned char ay_latch; + unsigned char joystick; + +}; + +int save_z80(char *); +int load_z80(char *); +int load_sna(char *); +void load_snap(struct z80snapshot *); +void uncompress_z80(FILE *,int,unsigned char *); diff --git a/src/characters.c b/src/characters.c new file mode 100644 index 0000000..99f59fb --- /dev/null +++ b/src/characters.c @@ -0,0 +1,224 @@ +/* + * Copyright 2003-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "characters.h" +#include +#include "emulator.h" + +// prints the ASCII character CHARAC in the framebuffer MEMO, at X,Y with ink color COLOR and paper color BACK, asuming that the screen width is WIDTH + +void printchar(unsigned char *memo, unsigned char carac, int x, int y, unsigned char color, unsigned char back, int width) { + + int bucle1, bucle2, pos; + unsigned char bit_rot; + unsigned char *lugar, *lugar2; + + pos=0; + bit_rot=0x80; + + lugar=memo + (y * width + x) * ordenador.bpp; + for (bucle1=0;bucle1<16;bucle1++) { + lugar2=lugar; + for (bucle2=0;bucle2 < 16;bucle2++) { + if ((characters[carac-32][pos]) & bit_rot) + paint_one_pixel (colors + (int) (color), lugar2); + //*((unsigned int *)lugar2)=*(colors+(int)(color-16)); + else if ((ordenador.text_mini==0)||((bucle1%2==0)&&(bucle2%2==0))) + paint_one_pixel (colors + (int) (back), lugar2); + //*((unsigned int *)lugar2)=*(colors+(int)(back-16)); + if ((ordenador.text_mini==0)||(bucle2%2==1)) { + lugar2+=ordenador.bpp; + } + bit_rot/=2; + if ((bucle2 == 7) || (bucle2 == 15)) { + pos++; + bit_rot=0x80; + } + } + if ((ordenador.text_mini==0)||(bucle1%2==1)) { + lugar+=(width * ordenador.bpp); + } + } +} + +// prints the string CADENA in X,Y (centered if X=-1), with colors COLOR and BACK + +void print_string(unsigned char *memo, char *cadena, int x, int y, unsigned char color, unsigned char back, int width) { + + int length, ncarac, bucle, xx; + int xxx, yyy; + int w,h; + unsigned char *str2; + + if (ordenador.text_mini==1) { + if (x!=-1) + x/=2; + y/=2; + w=8; + h=10; + } else { + w=16; + h=20; + } + + for (ncarac=0,str2=cadena;*str2;str2++) { + if ((*str2)>=' ') { + ncarac++; + } + } + length=w * ncarac; + + if (length > width) { + if (x>=0) + xx=x; + else + xx=0; + } else { + if (x == -1) // we want it centered + xx=(width / 2) - (length / 2); + else + xx=x; + } + + xxx=xx; + yyy=y; + str2=cadena; + for (bucle=0;bucle= width - w) { + xxx=0; + yyy+=h; + } + } + str2++; + } +} + +unsigned char characters[96][32]={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} + ,{0,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,2,0,2,0,2,0,0,0,0,0,3,0,3,0,0,0} + ,{0,0,28,224,28,224,28,224,28,224,8,64,8,64,8,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} + ,{0,0,2,64,2,64,2,64,2,64,2,64,31,240,4,128,4,128,4,128,63,224,4,128,4,128,4,128,4,128,0,0} + ,{0,0,1,0,3,208,4,48,8,16,8,0,8,0,4,0,3,192,0,32,0,16,0,16,16,16,24,32,23,192,1,0} + ,{14,0,17,0,32,128,32,128,32,128,17,0,14,56,1,192,14,0,112,224,1,16,2,8,2,8,2,8,1,16,0,224} + ,{0,0,0,0,7,64,9,128,8,0,8,0,4,0,12,0,18,96,34,64,33,128,32,128,32,192,17,64,14,48,0,0} + ,{0,0,3,128,3,128,3,128,3,128,3,128,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} + ,{0,0,0,64,0,128,0,128,0,128,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,128,0,128,0,128,0,64} + ,{0,0,16,0,8,0,8,0,8,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,8,0,8,0,8,0,16,0} + ,{0,0,1,0,1,0,1,0,25,48,15,224,3,128,6,192,12,96,24,48,0,0,0,0,0,0,0,0,0,0,0,0} + ,{0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,63,248,1,0,1,0,1,0,1,0,1,0,0,0,0,0} + ,{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,128,3,128,7,0,6,0} + ,{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0} + ,{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,128,3,128,3,128,0,0} + ,{0,0,0,16,0,32,0,32,0,64,0,64,0,128,0,128,1,0,1,0,2,0,2,0,4,0,4,0,8,0,8,0} + ,{0,0,3,128,12,96,8,32,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,8,32,12,96,3,128} + ,{0,0,3,0,29,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,31,240} + ,{0,0,7,128,24,64,32,32,32,32,0,32,0,32,0,64,0,128,1,0,2,0,4,0,8,0,16,0,32,16,63,240} + ,{0,0,15,128,16,96,0,32,0,32,0,32,0,64,7,128,0,96,0,16,0,16,0,16,0,16,32,16,24,96,7,128} + ,{0,0,0,192,1,64,2,64,2,64,4,64,8,64,8,64,16,64,16,64,32,64,63,240,0,64,0,64,0,64,3,240} + ,{0,0,31,224,16,0,16,0,16,0,16,0,23,128,24,96,0,32,0,16,0,16,0,16,0,16,0,32,48,96,15,128} + ,{0,0,1,224,6,0,12,0,8,0,16,0,19,192,20,32,24,16,16,16,16,16,16,16,16,16,8,16,12,32,3,192} + ,{0,0,63,224,32,32,32,64,0,64,0,64,0,128,0,128,0,128,0,128,1,0,1,0,1,0,2,0,2,0,2,0} + ,{0,0,7,128,8,64,16,32,16,32,16,32,16,32,8,64,15,192,16,32,32,16,32,16,32,16,16,32,24,96,7,128} + ,{0,0,3,128,12,96,24,48,16,16,16,16,16,16,8,48,12,80,3,144,0,16,0,16,0,32,0,32,0,192,31,0} + ,{0,0,0,0,0,0,0,0,3,128,3,128,3,128,0,0,0,0,0,0,0,0,0,0,3,128,3,128,3,128,0,0} + ,{0,0,0,0,0,0,7,0,7,0,7,0,0,0,0,0,0,0,0,0,0,0,7,0,7,0,14,0,12,0,24,0} + ,{0,0,0,0,0,0,0,48,0,192,3,0,12,0,48,0,96,0,48,0,12,0,3,0,0,192,0,48,0,0,0,0} + ,{0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,248,0,0,0,0,63,248,0,0,0,0,0,0,0,0,0,0} + ,{0,0,0,0,0,0,48,0,12,0,3,0,0,192,0,48,0,24,0,48,0,192,3,0,12,0,48,0,0,0,0,0} + ,{0,0,31,0,32,128,32,64,0,64,0,64,0,64,0,128,3,0,4,0,4,0,0,0,0,0,6,0,6,0,0,0} + ,{0,0,7,128,24,64,16,32,32,32,32,224,33,32,34,32,34,32,34,32,34,32,33,32,32,240,16,0,24,96,7,192} + ,{0,0,31,128,2,128,4,64,4,64,4,64,8,32,8,32,8,32,31,240,16,16,16,16,32,8,32,8,120,60,0,0} + ,{0,0,127,224,16,16,16,8,16,8,16,8,16,16,31,224,16,16,16,8,16,8,16,8,16,8,16,16,127,224,0,0} + ,{0,0,3,200,12,40,24,24,16,8,32,0,32,0,32,0,32,0,32,0,32,0,16,8,24,24,12,48,3,192,0,0} + ,{0,0,127,192,32,48,32,16,32,8,32,8,32,8,32,8,32,8,32,8,32,8,32,8,32,16,32,48,127,192,0,0} + ,{0,0,127,240,16,16,16,16,16,16,17,0,17,0,31,0,17,0,17,0,16,8,16,8,16,8,16,8,127,248,0,0} + ,{0,0,63,248,8,8,8,8,8,8,8,128,8,128,15,128,8,128,8,128,8,0,8,0,8,0,8,0,63,128,0,0} + ,{0,0,7,144,24,80,48,48,32,16,64,0,64,0,64,0,64,0,65,248,64,16,32,16,48,16,24,32,7,192,0,0} + ,{0,0,124,124,16,16,16,16,16,16,16,16,16,16,31,240,16,16,16,16,16,16,16,16,16,16,16,16,124,124,0,0} + ,{0,0,31,240,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,31,240,0,0} + ,{0,0,7,252,0,32,0,32,0,32,0,32,0,32,0,32,0,32,32,32,32,32,32,32,32,64,16,192,15,0,0,0} + ,{0,0,124,120,16,32,16,64,16,128,17,0,18,0,22,0,25,0,16,128,16,64,16,32,16,32,16,16,124,60,0,0} + ,{0,0,127,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,8,8,8,8,8,8,8,127,248,0,0} + ,{0,0,112,28,48,24,48,24,40,40,40,40,36,72,36,72,34,136,35,136,32,8,32,8,32,8,32,8,120,60,0,0} + ,{0,0,240,252,48,16,40,16,36,16,36,16,34,16,34,16,33,16,33,16,32,144,32,144,32,80,32,48,252,48,0,0} + ,{0,0,7,192,24,48,48,24,32,8,64,4,64,4,64,4,64,4,64,4,64,4,32,8,48,24,24,48,7,192,0,0} + ,{0,0,63,224,8,16,8,8,8,8,8,8,8,8,8,16,15,224,8,0,8,0,8,0,8,0,8,0,63,128,0,0} + ,{0,0,7,192,24,48,48,24,32,8,64,4,64,4,64,4,64,4,64,4,64,4,32,8,48,24,24,48,7,192,3,24} + ,{0,0,127,192,16,32,16,16,16,16,16,16,16,16,16,32,31,192,16,128,16,64,16,32,16,32,16,16,124,28,0,0} + ,{0,0,7,144,24,80,32,48,32,16,32,0,24,0,7,128,0,96,0,16,0,16,32,16,48,16,40,32,39,192,0,0} + ,{0,0,63,248,33,8,33,8,33,8,33,8,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,15,224,0,0} + ,{0,0,124,248,32,16,32,16,32,16,32,16,32,16,32,16,32,16,32,16,32,16,32,16,32,16,16,32,15,192,0,0} + ,{0,0,124,124,32,8,32,8,16,16,16,16,8,32,8,32,8,32,4,64,4,64,4,64,2,128,3,128,1,0,0,0} + ,{0,0,124,124,32,8,32,8,33,8,33,8,34,136,34,136,18,144,20,80,20,80,20,80,24,48,24,48,24,48,0,0} + ,{0,0,124,124,16,16,8,32,8,32,4,64,2,128,1,0,2,128,4,64,4,64,8,32,16,16,16,16,124,124,0,0} + ,{0,0,120,60,16,16,8,32,8,32,4,64,4,64,2,128,1,0,1,0,1,0,1,0,1,0,1,0,15,224,0,0} + ,{0,0,63,240,32,16,32,32,32,64,32,128,0,128,1,0,2,0,4,0,4,16,8,16,16,16,32,16,63,240,0,0} + ,{0,0,1,192,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,192} + ,{16,0,16,0,8,0,8,0,4,0,4,0,2,0,2,0,1,0,1,0,0,128,0,128,0,64,0,64,0,32,0,32} + ,{0,0,7,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,7,0} + ,{0,0,2,0,7,0,8,128,16,64,32,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} + ,{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,254,0,0} + ,{0,0,12,0,6,0,3,0,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} + ,{0,0,0,0,0,0,0,0,15,128,16,64,0,32,0,32,15,160,16,96,32,32,32,32,32,32,16,96,15,184,0,0} + ,{0,0,112,0,16,0,16,0,19,224,20,24,24,8,16,4,16,4,16,4,16,4,16,4,24,8,20,24,115,224,0,0} + ,{0,0,0,0,0,0,0,0,7,208,24,48,16,16,32,16,32,0,32,0,32,0,32,0,16,24,24,48,7,192,0,0} + ,{0,0,0,112,0,16,0,16,15,144,48,80,32,48,64,16,64,16,64,16,64,16,64,16,32,48,48,80,15,156,0,0} + ,{0,0,0,0,0,0,0,0,7,192,24,48,16,16,32,8,32,8,63,248,32,0,32,0,16,0,24,24,7,224,0,0} + ,{0,0,1,240,3,8,2,0,2,0,31,240,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,31,240,0,0} + ,{0,0,0,0,0,0,0,0,7,216,8,48,16,16,16,16,16,16,16,16,8,48,7,208,0,16,0,32,0,96,7,192} + ,{0,0,112,0,16,0,16,0,16,0,19,192,20,32,24,16,16,16,16,16,16,16,16,16,16,16,16,16,124,124,0,0} + ,{0,0,1,0,1,0,0,0,0,0,15,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,31,240,0,0} + ,{0,0,0,64,0,64,0,0,0,0,31,224,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0,64,0,192,31,0} + ,{0,0,56,0,8,0,8,0,8,0,8,240,8,64,8,128,9,0,10,0,14,0,9,0,8,128,8,64,56,120,0,0} + ,{0,0,31,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,63,248,0,0} + ,{0,0,0,0,0,0,0,0,238,112,49,136,33,8,33,8,33,8,33,8,33,8,33,8,33,8,33,8,249,140,0,0} + ,{0,0,0,0,0,0,0,0,115,192,20,32,24,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,124,124,0,0} + ,{0,0,0,0,0,0,0,0,7,192,24,48,16,16,32,8,32,8,32,8,32,8,32,8,16,16,24,48,7,192,0,0} + ,{0,0,0,0,0,0,0,0,55,192,24,32,16,16,16,16,16,16,16,16,24,32,23,192,16,0,16,0,16,0,126,0} + ,{0,0,0,0,0,0,0,0,7,216,8,48,16,16,16,16,16,16,16,16,8,48,7,208,0,16,0,16,0,16,0,252} + ,{0,0,0,0,0,0,0,0,28,112,5,136,6,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,63,224,0,0} + ,{0,0,0,0,0,0,0,0,7,208,8,48,8,16,8,0,7,0,0,224,0,16,0,16,16,16,24,32,23,192,0,0} + ,{0,0,8,0,8,0,8,0,63,224,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,4,48,3,192,0,0} + ,{0,0,0,0,0,0,0,0,112,112,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,48,8,80,7,152,0,0} + ,{0,0,0,0,0,0,0,0,124,124,16,16,16,16,8,32,8,32,8,32,4,64,4,64,2,128,3,128,1,0,0,0} + ,{0,0,0,0,0,0,0,0,120,60,32,8,32,8,33,8,17,16,18,144,18,144,18,144,10,160,12,96,12,96,0,0} + ,{0,0,0,0,0,0,0,0,60,120,16,16,8,32,4,64,2,128,1,0,2,128,4,64,8,32,16,16,60,120,0,0} + ,{0,0,0,0,0,0,0,0,30,120,4,32,4,32,4,64,2,64,2,128,1,128,1,0,3,0,2,0,63,128,0,0} + ,{0,0,0,0,0,0,0,0,31,240,16,16,16,32,0,64,0,128,1,0,2,0,4,0,8,16,16,16,31,240,0,0} + ,{0,0,0,192,1,0,1,0,1,0,1,0,1,0,1,0,6,0,1,0,1,0,1,0,1,0,1,0,1,0,0,192} + ,{0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0} + ,{0,0,6,0,1,0,1,0,1,0,1,0,1,0,1,0,0,192,1,0,1,0,1,0,1,0,1,0,1,0,6,0} + ,{0,0,0,0,0,0,0,0,0,0,15,12,25,152,48,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} + ,{0,0,85,84,0,0,64,4,0,0,64,4,0,0,64,4,0,0,64,4,0,0,64,4,0,0,85,84,0,0,0,0}}; diff --git a/src/characters.h b/src/characters.h new file mode 100644 index 0000000..6a1f7ce --- /dev/null +++ b/src/characters.h @@ -0,0 +1,23 @@ +/* + * Copyright 2003-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +extern unsigned char characters[96][32]; + +void printchar(unsigned char *,unsigned char,int,int,unsigned char,unsigned char,int); +void print_string(unsigned char *,char*,int,int,unsigned char,unsigned char,int); diff --git a/src/computer.c b/src/computer.c new file mode 100644 index 0000000..f7e5d8e --- /dev/null +++ b/src/computer.c @@ -0,0 +1,1599 @@ +/* + * Copyright 2003-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "z80free/Z80free.h" +#include "computer.h" +#include "emulator.h" +#include "menus.h" +#include "characters.h" +#include "sound.h" +#include +#include +#include +#include +#include +#include "tape.h" +#include "microdrive.h" + +#ifdef DEBUG +extern FILE *fdebug; +#define printf(...) fprintf(fdebug,__VA_ARGS__); fflush (fdebug) +#endif + +/* Returns the bus value when reading a port without a periferial */ + +inline byte bus_empty () { + + if (ordenador.mode128k != 3) + return (ordenador.bus_value); + else + return (255); // +2A and +3 returns always 255 +} + +/* calls all the routines that emulates the computer, runing them for 'tstados' + tstates */ + +inline void emulate (int tstados) { + + if((procesador.I>=0x40)&&(procesador.I<=0x7F)) { + ordenador.screen_snow=1; + } else + ordenador.screen_snow=0; + show_screen (tstados); + play_ay (tstados); + play_sound (tstados); + tape_read (ordenador.tap_file, tstados); + microdrive_emulate(tstados); + if (!ordenador.pause) { + if (ordenador.tape_readed) + ordenador.sound_bit = 1; + else + ordenador.sound_bit = 0; // if not paused, asign SOUND_BIT the value of tape + } +} + +void computer_init () { + + int bucle; + + ordenador.bus_counter = 0; + ordenador.port254 = 0; + ordenador.issue = 3; + ordenador.mode128k = 0; + ordenador.joystick = 0; + + ordenador.tape_readed = 0; + ordenador.pause = 1; // tape stop + ordenador.tape_fast_load = 1; // fast load by default + ordenador.tape_current_mode = TAP_TRASH; + ordenador.tap_file = NULL; + + ordenador.osd_text[0] = 0; + ordenador.osd_time = 0; + + ordenador.other_ret = 0; + + ordenador.s8 = ordenador.s9 = ordenador.s10 = ordenador.s11 = + ordenador.s12 = ordenador.s13 = ordenador.s14 = + ordenador.s15 = 0xFF; + ordenador.tab_extended=0; + ordenador.esc_again=0; + + ordenador.js = 0x00; + + for (bucle = 0; bucle < 16; bucle++) + ordenador.ay_registers[bucle] = 0; + ordenador.ay_emul = 0; + ordenador.aych_a = 0; + ordenador.aych_b = 0; + ordenador.aych_c = 0; + ordenador.aych_n = 0; + ordenador.aych_envel = 0; + ordenador.vol_a = 0; + ordenador.vol_b = 0; + ordenador.vol_c = 0; + ordenador.tst_ay = 0; + ordenador.tst_ay2 = 0; + + ordenador.ayval_a = 0; + ordenador.ayval_b = 0; + ordenador.ayval_c = 0; + ordenador.ayval_n = 0; + ordenador.ay_envel_value = 0; + ordenador.ay_envel_way = 0; + + ordenador.tape_loop_counter = 0; +} + +void computer_set_palete() { + + SDL_Color colores[16]; + + if (ordenador.bw==0) { + // Color mode + + colores[0].r = 0; + colores[0].g = 0; + colores[0].b = 0; + colores[1].r = 0; + colores[1].g = 0; + colores[1].b = 192; + colores[2].r = 192; + colores[2].g = 0; + colores[2].b = 0; + colores[3].r = 192; + colores[3].g = 0; + colores[3].b = 192; + colores[4].r = 0; + colores[4].g = 192; + colores[4].b = 0; + colores[5].r = 0; + colores[5].g = 192; + colores[5].b = 192; + colores[6].r = 192; + colores[6].g = 192; + colores[6].b = 0; + colores[7].r = 192; + colores[7].g = 192; + colores[7].b = 192; + colores[8].r = 0; + colores[8].g = 0; + colores[8].b = 0; + colores[9].r = 0; + colores[9].g = 0; + colores[9].b = 255; + colores[10].r = 255; + colores[10].g = 0; + colores[10].b = 0; + colores[11].r = 255; + colores[11].g = 0; + colores[11].b = 255; + colores[12].r = 0; + colores[12].g = 255; + colores[12].b = 0; + colores[13].r = 0; + colores[13].g = 255; + colores[13].b = 255; + colores[14].r = 255; + colores[14].g = 255; + colores[14].b = 0; + colores[15].r = 255; + colores[15].g = 255; + colores[15].b = 255; + + SDL_SetColors (ordenador.screen, colores, 16, 16); // set 16 colors from the 16th + + if (ordenador.bpp!=1) { + colors[0]=SDL_MapRGB(screen->format,0,0,0); + colors[1]=SDL_MapRGB(screen->format,0,0,192); + colors[2]=SDL_MapRGB(screen->format,192,0,0); + colors[3]=SDL_MapRGB(screen->format,192,0,192); + colors[4]=SDL_MapRGB(screen->format,0,192,0); + colors[5]=SDL_MapRGB(screen->format,0,192,192); + colors[6]=SDL_MapRGB(screen->format,192,192,0); + colors[7]=SDL_MapRGB(screen->format,192,192,192); + colors[8]=SDL_MapRGB(screen->format,0,0,0); + colors[9]=SDL_MapRGB(screen->format,0,0,255); + colors[10]=SDL_MapRGB(screen->format,255,0,0); + colors[11]=SDL_MapRGB(screen->format,255,0,255); + colors[12]=SDL_MapRGB(screen->format,0,255,0); + colors[13]=SDL_MapRGB(screen->format,0,255,255); + colors[14]=SDL_MapRGB(screen->format,255,255,0); + colors[15]=SDL_MapRGB(screen->format,255,255,255); + } + } else { + + // B&W mode + + colores[0].r = 0; + colores[0].g = 0; + colores[0].b = 0; + + colores[1].r = 22; + colores[1].g = 22; + colores[1].b = 22; + + colores[2].r = 57; + colores[2].g = 57; + colores[2].b = 57; + + colores[3].r = 79; + colores[3].g = 79; + colores[3].b = 79; + + colores[4].r = 113; + colores[4].g = 113; + colores[4].b = 113; + + colores[5].r = 135; + colores[5].g = 135; + colores[5].b = 135; + + colores[6].r = 160; + colores[6].g = 160; + colores[6].b = 160; + + colores[7].r = 192; + colores[7].g = 192; + colores[7].b = 192; + + colores[8].r = 0; + colores[8].g = 0; + colores[8].b = 0; + + colores[9].r = 29; + colores[9].g = 29; + colores[9].b = 29; + + colores[10].r = 76; + colores[10].g = 76; + colores[10].b = 76; + + colores[11].r = 105; + colores[11].g = 105; + colores[11].b = 105; + + colores[12].r = 150; + colores[12].g = 150; + colores[12].b = 150; + + colores[13].r = 179; + colores[13].g = 179; + colores[13].b = 179; + + colores[14].r = 226; + colores[14].g = 226; + colores[14].b = 226; + + colores[15].r = 255; + colores[15].g = 255; + colores[15].b = 255; + + SDL_SetColors (ordenador.screen, colores, 16, 16); // set 16 colors from the 16th + + if (ordenador.bpp!=1) { + colors[0]=SDL_MapRGB(screen->format,0,0,0); + colors[1]=SDL_MapRGB(screen->format,22,22,22); + colors[2]=SDL_MapRGB(screen->format,57,57,57); + colors[3]=SDL_MapRGB(screen->format,79,79,79); + colors[4]=SDL_MapRGB(screen->format,113,113,113); + colors[5]=SDL_MapRGB(screen->format,135,135,135); + colors[6]=SDL_MapRGB(screen->format,160,160,160); + colors[7]=SDL_MapRGB(screen->format,192,192,192); + colors[8]=SDL_MapRGB(screen->format,0,0,0); + colors[9]=SDL_MapRGB(screen->format,29,29,29); + colors[10]=SDL_MapRGB(screen->format,76,76,76); + colors[11]=SDL_MapRGB(screen->format,105,105,105); + colors[12]=SDL_MapRGB(screen->format,150,150,150); + colors[13]=SDL_MapRGB(screen->format,179,179,179); + colors[14]=SDL_MapRGB(screen->format,226,226,226); + colors[15]=SDL_MapRGB(screen->format,255,255,255); + } + } + + unsigned int c; + + for(c=0x10;c<60;c++) { + colors[c]=0x00000000; + } + + if (ordenador.bpp==1) { + unsigned int v; + for (c=0x10;c<0x60;c++) { + v=c+((c<<8)&0x0000FF00)+((c<<16)&0x00FF0000)+((c<<24)&0xFF000000); + colors[c-0x10]=v; + } + } + for(c=0;c<64;c++) { + set_palete_entry((unsigned char)c,ordenador.ulaplus_palete[c]); + } +} + +/* Registers the screen surface where the Spectrum will put the picture, +prepares the palette and creates two arrays (translate and translate2) +that gives the memory address for each scan */ + +void register_screen (SDL_Surface * pantalla) { + + //int resx,resy; + int bucle, bucle2, bucle3, bucle4, bucle5; + + // we prepare the scanline transform arrays + + bucle5 = 0; + for (bucle = 0; bucle < 3; bucle++) + for (bucle2 = 0; bucle2 < 8; bucle2++) + for (bucle3 = 0; bucle3 < 8; bucle3++) + for (bucle4 = 0; bucle4 < 32; bucle4++) { + ordenador.translate[bucle5] = + 147456 + bucle * 2048 + + bucle2 * 32 + bucle3 * 256 + + bucle4; + ordenador.translate2[bucle5] = + 153600 + bucle * 256 + + bucle2 * 32 + bucle4; + bucle5++; + } + ordenador.tstados_counter = 0; + + ordenador.screen = pantalla; + + ordenador.border = 0; + ordenador.currline = 0; + ordenador.currpix = 0; + ordenador.flash = 0; + + //resx = ordenador.screen->w; + //resy = ordenador.screen->h; + + switch (ordenador.zaurus_mini) { + case 0: + ordenador.init_line = 0; + ordenador.next_line = 640; + ordenador.next_scanline = 640; + ordenador.first_line = 40; + ordenador.last_line = 280; + ordenador.first_pixel = 16; + ordenador.last_pixel = 336; + ordenador.next_pixel = 1; + ordenador.jump_pixel = 16; + break; + case 1: + ordenador.init_line = 65; + ordenador.next_line = 160; + ordenador.next_scanline = 160; + ordenador.first_line = 40; + ordenador.last_line = 280; + ordenador.first_pixel = 0; + ordenador.last_pixel = 351; + ordenador.next_pixel = 1; + ordenador.jump_pixel = 8; + break; + case 2: + ordenador.init_line = 479; + ordenador.next_line = -(307202); + ordenador.next_scanline = -1; + ordenador.first_line = 40; + ordenador.last_line = 280; + ordenador.first_pixel = 16; + ordenador.last_pixel = 336; + ordenador.next_pixel = 480; + ordenador.jump_pixel = 7680; + break; + case 3: + ordenador.init_line = 0; + ordenador.next_line = 0; + ordenador.next_scanline = 0; + ordenador.first_line = 40; + ordenador.last_line = 280; + ordenador.first_pixel = 0; + ordenador.last_pixel = 319; + ordenador.next_pixel = 1; + ordenador.jump_pixel = 4; + break; + } + + ordenador.next_line*=ordenador.bpp; + ordenador.next_scanline*=ordenador.bpp; + ordenador.init_line*=ordenador.bpp; + ordenador.next_pixel*=ordenador.bpp; + ordenador.jump_pixel*=ordenador.bpp; + + computer_set_palete(); + + ordenador.pixel = ((unsigned char *) (ordenador.screen->pixels)) + ordenador.init_line; + ordenador.interr = 0; + + ordenador.p_translt = ordenador.translate; + ordenador.p_translt2 = ordenador.translate2; + + ordenador.contador_flash = 0; + ordenador.readed = 0; + + ordenador.contended_zone=0; + ordenador.cicles_counter=0; + + ordenador.tstados_counter_sound = 0; + ordenador.current_buffer = sound[0]; + ordenador.num_buff = 0; // first buffer + ordenador.sound_cuantity = 0; + ordenador.sound_current_value = 0; + ordenador.pixancho = 447; + ordenador.pixalto = 311; // values for 48K mode +} + +void set_memory_pointers () { + + static unsigned int rom, ram; + + // assign the offset for video page + + if (ordenador.mport1 & 0x08) + ordenador.video_offset = 32768; // page 7 + else + ordenador.video_offset = 0; // page 5 + + // assign ROMs and, if in special mode, RAM for the whole blocks + + if ((ordenador.mode128k == 3)) { + if (ordenador.mport2 & 0x01) { // +2A/+3 special mode + ram = (unsigned int) (ordenador.mport1 & 0x06); // bits 1&2 + switch (ram) { + case 0: + ordenador.block0 = ordenador.memoria + 65536; + ordenador.block1 = ordenador.memoria + 65536; + ordenador.block2 = ordenador.memoria + 65536; + ordenador.block3 = ordenador.memoria + 65536; + break; + case 2: + ordenador.block0 = ordenador.memoria + 131072; + ordenador.block1 = ordenador.memoria + 131072; + ordenador.block2 = ordenador.memoria + 131072; + ordenador.block3 = ordenador.memoria + 131072; + break; + case 4: + ordenador.block0 = ordenador.memoria + 131072; + ordenador.block1 = ordenador.memoria + 131072; + ordenador.block2 = ordenador.memoria + 131072; + ordenador.block3 = ordenador.memoria + 65536; + break; + case 6: + ordenador.block0 = ordenador.memoria + 131072; + ordenador.block1 = ordenador.memoria + 163840; + ordenador.block2 = ordenador.memoria + 131072; + ordenador.block3 = ordenador.memoria + 65536; + break; + } + return; + } else { // ROMs for +2A/+3 normal mode + rom = 0; + if (ordenador.mport1 & 0x10) + rom++; + if (ordenador.mport2 & 0x04) + rom += 2; + // assign the first block pointer to the right block bank + ordenador.block0 = ordenador.memoria + (16384 * rom); + } + } else { // ROMs for 128K/+2 mode + if (ordenador.mport1 & 0x10) + ordenador.block0 = ordenador.memoria + 16384; + else + ordenador.block0 = ordenador.memoria; + } + + // RAMs for 128K/+2 mode, and +2A/+3 in normal mode + + ordenador.block1 = ordenador.memoria + 131072; // page 5 minus 16384 + ordenador.block2 = ordenador.memoria + 65536; // page 2 minus 32768 + + ram = 1 + ((unsigned int) (ordenador.mport1 & 0x07)); // RAM page for block3 plus 1 + ordenador.block3 = ordenador.memoria + (16384 * ram); // page n minus 49152 +} + +/* Paints the spectrum screen during the TSTADOS tstates that the Z80 used +to execute last instruction */ + +inline void show_screen (int tstados) { + + static unsigned char temporal, ink, paper, fflash, tmp2; + + ordenador.tstados_counter += tstados; + ordenador.cicles_counter += tstados; + + if (curr_frames!=jump_frames) { + if (ordenador.tstados_counter>=69888) { + ordenador.tstados_counter-=69888; + ordenador.interr = 1; + curr_frames++; + } + return; + } + + fflash = 0; // flash flag + while (ordenador.tstados_counter > 3) { + ordenador.tstados_counter -= 4; + + // test if current pixel is for border or for user area + + if ((ordenador.currline < 64) || (ordenador.currline > 255) + || (ordenador.currpix < 48) || (ordenador.currpix > 303)) { + + // is border + + ordenador.contended_zone=0; // no contention here + if (ordenador.ulaplus) { + paint_pixels (255, ordenador.border+24, 0); // paint 8 pixels with BORDER color + } else { + paint_pixels (255, ordenador.border, 0); // paint 8 pixels with BORDER color + } + + ordenador.bus_value = 255; + + } else { + + // is user area. We search for ink and paper colours + + ordenador.contended_zone=1; // can have contention + + temporal = ordenador.memoria[(*ordenador.p_translt2) + ordenador.video_offset]; // attributes + ordenador.bus_value = temporal; + ink = temporal & 0x07; // ink colour + paper = (temporal >> 3) & 0x07; // paper colour + if (ordenador.ulaplus) { + tmp2=0x10+((temporal>>2)&0x30); + ink+=tmp2; + paper+=8+tmp2; + } else { + if (temporal & 0x40) { // bright flag? + ink += 8; + paper += 8; + } + fflash = temporal & 0x80; // flash flag + } + + // Snow Effect + + if(ordenador.screen_snow) { + temporal = ordenador.memoria[(((*ordenador.p_translt) + (ordenador.video_offset))&0xFFFFFF00)+(procesador.R)]; // data with snow + ordenador.screen_snow=0; // no more snow for now + } else + temporal = ordenador.memoria[(*ordenador.p_translt) + ordenador.video_offset]; // data + + ordenador.p_translt++; + ordenador.p_translt2++; + if ((fflash) && (ordenador.flash)) + paint_pixels (temporal, paper, ink); // if FLASH, invert PAPER and INK + else + paint_pixels (temporal, ink, paper); + } + ordenador.currpix += 8; + if (ordenador.currpix > ordenador.pixancho) { + ordenador.currpix = 0; + ordenador.currline++; + if (ordenador.currline > ordenador.first_line) { // ordenador.first_line) + ordenador.pixel += ordenador.next_line; // ordenador.next_line; + } + } + + if ((ordenador.currline > ordenador.pixalto)&&(ordenador.currpix>=64)) { + ordenador.currpix=64; + if (ordenador.osd_time) { + ordenador.osd_time--; + if (ordenador.osd_time==0) { + ordenador.tab_extended=0; + ordenador.esc_again=0; + } + + if (ordenador.osd_time) + print_string (ordenador.screenbuffer,ordenador.osd_text, -1,460, 12, 0,ordenador.screen_width); + else { + if (ordenador.zaurus_mini==0) + print_string (ordenador.screenbuffer," ",-1, 460, 12, 0,ordenador.screen_width); + else + print_string (ordenador.screenbuffer," ",-1, 460, 12, 0,ordenador.screen_width); + } + } + + if (ordenador.mustlock) { + SDL_UnlockSurface (ordenador.screen); + SDL_Flip (ordenador.screen); + SDL_LockSurface (ordenador.screen); + } else { + SDL_Flip (ordenador.screen); + } + + curr_frames=0; + ordenador.currline = 0; + ordenador.interr = 1; + ordenador.cicles_counter=0; + ordenador.pixel = ((unsigned char *) (ordenador.screen->pixels))+ordenador.init_line; // +ordenador.init_line; + ordenador.p_translt = ordenador.translate; + ordenador.p_translt2 = ordenador.translate2; + ordenador.contador_flash++; + if (ordenador.contador_flash == 16) { + ordenador.flash = 1 - ordenador.flash; + ordenador.contador_flash = 0; + } + } + } +} + + +/* PAINT_PIXELS paints one byte with INK color for 1 bits and PAPER color +for 0 bits, and increment acordingly the pointer PIXEL */ + +inline void paint_pixels (unsigned char octet,unsigned char ink, unsigned char paper) { + + static int bucle,valor,*p; + static unsigned char mask; + + if ((ordenador.currpix < 16) || (ordenador.currpix >= 336) + || (ordenador.currline < 40) || (ordenador.currline >= 280)) + return; + + mask = 0x80; + for (bucle = 0; bucle < 8; bucle++) { + valor = (octet & mask) ? (int) ink : (int) paper; + p=(colors+valor); + + paint_one_pixel((unsigned char *)p,ordenador.pixel); + if ((ordenador.zaurus_mini!=1)&&(ordenador.zaurus_mini!=3)&&(ordenador.dblscan)) { + paint_one_pixel((unsigned char *)p,ordenador.pixel+ordenador.next_scanline); + } + ordenador.pixel+=ordenador.next_pixel; + if ((ordenador.zaurus_mini!=1)&&(ordenador.zaurus_mini!=3)) { + paint_one_pixel((unsigned char *)p,ordenador.pixel); + if (ordenador.dblscan) { + paint_one_pixel((unsigned char *)p,ordenador.pixel+ordenador.next_scanline); + } + ordenador.pixel+=ordenador.next_pixel; + } + mask = ((mask >> 1) & 0x7F); + } +} + +inline void paint_one_pixel(unsigned char *colour,unsigned char *address) { + + #if BYTE_ORDER == LITTLE_ENDIAN + switch(ordenador.bpp) { + case 1: + *address=*colour; + break; + case 3: + *(address++)=*(colour++); + case 2: + *(address++)=*(colour++); + *(address++)=*(colour++); + break; + case 4: + *((unsigned int *)address)=*((unsigned int *)colour); + break; + } + #else //BIG ENDIAN + switch(ordenador.bpp) { + case 1: + *address=*(colour+3); + break; + case 3: + *(address++)=*(colour+1); + case 2: + *(address++)=*(colour+2); + *(address++)=*(colour+3); + break; + case 4: + *((unsigned int *)address)=*((unsigned int *)colour); + break; + } + #endif + +} + +// Read the keyboard and stores the flags + +inline void read_keyboard (SDL_Event *pevento2) { + + unsigned int temporal_io; + SDL_Event evento,evento2,*pevento; + Sint16 valor; + Uint8 eje; + + if (pevento2==NULL) { + pevento=&evento; + if (!SDL_PollEvent (&evento)) + return; + } else { + pevento=pevento2; + } + + if (pevento->type==SDL_QUIT) { + salir = 0; + return; + } + + if (pevento->type==SDL_JOYBUTTONDOWN) { + pevento->type=SDL_KEYDOWN; + pevento->key.keysym.sym=SDLK_MENU; // emulate pressing the MENU key + } + + if (pevento->type==SDL_JOYBUTTONUP) { + pevento->type=SDL_KEYUP; + pevento->key.keysym.sym=SDLK_MENU; // emulate depressing the MENU key + } + + if (pevento->type==SDL_JOYAXISMOTION) { + eje=pevento->jaxis.axis; + valor=pevento->jaxis.value; + + evento2.type=SDL_KEYUP; + if ((valor<16384)&&(valor>-16384)) { // JoyStick centered + pevento->type=SDL_KEYUP; + if (eje==1) { + evento2.key.keysym.sym=SDLK_DOWN; + pevento->key.keysym.sym=SDLK_UP; // pull up both keys + read_keyboard(&evento2); + } + if (eje==0) { + evento2.key.keysym.sym=SDLK_LEFT; + pevento->key.keysym.sym=SDLK_RIGHT; + read_keyboard(&evento2); + } + } else { // JoyStick moved + if (eje==0) { + if (valor>=0) { + evento2.key.keysym.sym=SDLK_LEFT; // pull up LEFT + read_keyboard(&evento2); + pevento->key.keysym.sym=SDLK_RIGHT; // and press RIGHT + } else { + evento2.key.keysym.sym=SDLK_RIGHT; // pull up RIGHT + read_keyboard(&evento2); + pevento->key.keysym.sym=SDLK_LEFT; // and press LEFT + } + } + if (eje==1) { + if (valor<0) { + evento2.key.keysym.sym=SDLK_DOWN; // pull up DOWN + pevento->key.keysym.sym=SDLK_UP; // and press UP + read_keyboard(&evento2); + } else { + evento2.key.keysym.sym=SDLK_UP; // pull up UP + pevento->key.keysym.sym=SDLK_DOWN; // and press DOWN + read_keyboard(&evento2); + } + } + pevento->type=SDL_KEYDOWN; + } + } + + if ((pevento->type != SDL_KEYDOWN) && (pevento->type != SDL_KEYUP)) + return; + + ordenador.k8 = ordenador.k9 = ordenador.k10 = ordenador.k11 = + ordenador.k12 = ordenador.k13 = ordenador.k14 = + ordenador.k15 = 0; + ordenador.jk = 0; + + temporal_io = (unsigned int) pevento->key.keysym.sym; + + if ((pevento->type==SDL_KEYUP)&&(temporal_io==SDLK_TAB)) { + if (ordenador.tab_extended==0) { + ordenador.tab_extended=1; + strcpy(ordenador.osd_text,"Function Key mode on"); + ordenador.osd_time=100; + return; + } else { + ordenador.tab_extended=0; + ordenador.osd_time=0; + return; + } + } + + if ((pevento->type==SDL_KEYDOWN)&&(ordenador.tab_extended==1)) + return; + + if ((pevento->type==SDL_KEYUP)&&(ordenador.tab_extended==1)) { + ordenador.tab_extended=0; + ordenador.osd_time=0; + switch(temporal_io) { + case SDLK_1: + temporal_io=SDLK_F1; + break; + case SDLK_2: + temporal_io=SDLK_F2; + break; + case SDLK_3: + temporal_io=SDLK_F3; + break; + case SDLK_4: + temporal_io=SDLK_F4; + break; + case SDLK_5: + temporal_io=SDLK_F5; + break; + case SDLK_6: + temporal_io=SDLK_F6; + break; + case SDLK_7: + temporal_io=SDLK_F7; + break; + case SDLK_8: + temporal_io=SDLK_F8; + break; + case SDLK_9: + temporal_io=SDLK_F9; + break; + case SDLK_0: + temporal_io=SDLK_F10; + break; + case SDLK_o: + temporal_io=SDLK_F11; + break; + case SDLK_p: + temporal_io=SDLK_F12; + break; + } + } + + + if (pevento->type == SDL_KEYUP) + switch (temporal_io) { + case SDLK_ESCAPE: // to exit from the emulator + if (ordenador.esc_again==0) { + ordenador.esc_again=1; + strcpy(ordenador.osd_text,"ESC again to exit"); + ordenador.osd_time=100; + } else + salir = 0; + return; + break; + case SDLK_F1: + help_menu (); // shows the help menu + break; + + case SDLK_F2: + case SDLK_F3: + case SDLK_F4: + case SDLK_F7: + case SDLK_F8: + launch_menu(temporal_io); + break; + + case SDLK_F5: // STOP tape + if ((ordenador.tape_fast_load == 0) || (ordenador.tape_file_type==TAP_TZX)) + ordenador.pause = 1; + break; + + case SDLK_F6: // PLAY tape + if ((ordenador.tape_fast_load == 0) || (ordenador.tape_file_type==TAP_TZX)) + ordenador.pause = 0; + break; + + case SDLK_F9: + SDL_Fullscreen_Switch(); + break; + + case SDLK_F10: // Reset emulator + ResetComputer (); + ordenador.pause = 1; + if (ordenador.tap_file != NULL) { + ordenador.tape_current_mode = TAP_TRASH; + rewind_tape (ordenador.tap_file,1); + } + break; + + case SDLK_F11: // lower volume + if (ordenador.volume > 3) + set_volume (ordenador.volume - 4); + sprintf (ordenador.osd_text, " Volume: %d ",ordenador.volume / 4); + ordenador.osd_time = 50; + break; + + case SDLK_F12: // upper volume + set_volume (ordenador.volume + 4); + sprintf (ordenador.osd_text, " Volume: %d ",ordenador.volume / 4); + ordenador.osd_time = 50; + break; + } + + // reorder joystick if screen is rotated + + if(ordenador.zaurus_mini==2) { + switch(temporal_io) { + case SDLK_UP: + temporal_io=SDLK_LEFT; + break; + case SDLK_LEFT: + temporal_io=SDLK_DOWN; + break; + case SDLK_DOWN: + temporal_io=SDLK_RIGHT; + break; + case SDLK_RIGHT: + temporal_io=SDLK_UP; + break; + } + } + + + // test for joystick + + switch (temporal_io) { + case SDLK_UP: + switch (ordenador.joystick) { + case 0: // cursor + temporal_io = SDLK_7; + break; + + case 1: + ordenador.jk = 8; + break; + + case 2: // sinclair 1 + temporal_io = SDLK_4; + break; + + case 3: // sinclair 2 + temporal_io = SDLK_7; + break; + } + break; + + case SDLK_DOWN: + switch (ordenador.joystick) { + case 0: // cursor + temporal_io = SDLK_6; + break; + + case 1: + ordenador.jk = 4; + break; + + case 2: // sinclair 1 + temporal_io = SDLK_3; + break; + + case 3: // sinclair 2 + temporal_io = SDLK_8; + break; + } + break; + + case SDLK_RIGHT: + switch (ordenador.joystick) { + case 0: // cursor + temporal_io = SDLK_8; + break; + + case 1: + ordenador.jk = 1; + break; + + case 2: // sinclair 1 + temporal_io = SDLK_1; + break; + + case 3: // sinclair 2 + temporal_io = SDLK_9; + break; + + } + break; + + case SDLK_LEFT: + switch (ordenador.joystick) { + case 0: // cursor + temporal_io = SDLK_5; + break; + + case 1: + ordenador.jk = 2; + break; + + case 2: // sinclair 1 + temporal_io = SDLK_2; + break; + + case 3: // sinclair 2 + temporal_io = SDLK_0; + break; + } + break; + + case SDLK_RALT: + case SDLK_RMETA: + case SDLK_LMETA: + case SDLK_RSUPER: + case SDLK_LSUPER: + case SDLK_MENU: + switch (ordenador.joystick) { + case 0: // cursor + temporal_io = SDLK_0; + break; + + case 1: + ordenador.jk = 16; + break; + + case 2: // sinclair 1 + temporal_io = SDLK_5; + break; + + case 3: // sinclair 2 + temporal_io = SDLK_6; + break; + } + break; + } + + switch (temporal_io) { + + case SDLK_SPACE: + ordenador.k15 = 1; + break; + + case SDLK_RCTRL: + case SDLK_LCTRL: + ordenador.k15 = 2; + break; + + case SDLK_m: + ordenador.k15 = 4; + break; + + case SDLK_n: + ordenador.k15 = 8; + break; + + case SDLK_b: + ordenador.k15 = 16; + break; + + case SDLK_RETURN: + ordenador.k14 = 1; + break; + + case SDLK_l: + ordenador.k14 = 2; + break; + + case SDLK_k: + ordenador.k14 = 4; + break; + + case SDLK_j: + ordenador.k14 = 8; + break; + + case SDLK_h: + ordenador.k14 = 16; + break; + + case SDLK_p: + ordenador.k13 = 1; + break; + + case SDLK_o: + ordenador.k13 = 2; + break; + + case SDLK_i: + ordenador.k13 = 4; + break; + + case SDLK_u: + ordenador.k13 = 8; + break; + + case SDLK_y: + ordenador.k13 = 16; + break; + + case SDLK_0: + ordenador.k12 = 1; + break; + + case SDLK_9: + ordenador.k12 = 2; + break; + + case SDLK_8: + ordenador.k12 = 4; + break; + + case SDLK_7: + ordenador.k12 = 8; + break; + + case SDLK_6: + ordenador.k12 = 16; + break; + + case SDLK_1: + ordenador.k11 = 1; + break; + + case SDLK_2: + ordenador.k11 = 2; + break; + + case SDLK_3: + ordenador.k11 = 4; + break; + + case SDLK_4: + ordenador.k11 = 8; + break; + + case SDLK_5: + ordenador.k11 = 16; + break; + + case SDLK_q: + ordenador.k10 = 1; + break; + + case SDLK_w: + ordenador.k10 = 2; + break; + + case SDLK_e: + ordenador.k10 = 4; + break; + + case SDLK_r: + ordenador.k10 = 8; + break; + + case SDLK_t: + ordenador.k10 = 16; + break; + + case SDLK_a: + ordenador.k9 = 1; + break; + + case SDLK_s: + ordenador.k9 = 2; + break; + + case SDLK_d: + ordenador.k9 = 4; + break; + + case SDLK_f: + ordenador.k9 = 8; + break; + + case SDLK_g: + ordenador.k9 = 16; + break; + + case SDLK_RSHIFT: + case SDLK_LSHIFT: + ordenador.k8 = 1; + break; + + case SDLK_z: + ordenador.k8 = 2; + break; + + case SDLK_x: + ordenador.k8 = 4; + break; + + case SDLK_c: + ordenador.k8 = 8; + break; + + case SDLK_v: + ordenador.k8 = 16; + break; + + case SDLK_BACKSPACE: + ordenador.k12 = 1; + ordenador.k8 = 1; + break; + case SDLK_PERIOD: + ordenador.k15 = 6; + break; + case SDLK_COMMA: + ordenador.k15 = 10; + break; + + } + + if (pevento->type == SDL_KEYUP) { + ordenador.s8 |= ordenador.k8; + ordenador.s9 |= ordenador.k9; + ordenador.s10 |= ordenador.k10; + ordenador.s11 |= ordenador.k11; + ordenador.s12 |= ordenador.k12; + ordenador.s13 |= ordenador.k13; + ordenador.s14 |= ordenador.k14; + ordenador.s15 |= ordenador.k15; + ordenador.js &= (ordenador.jk ^ 255); + } else { + ordenador.s8 &= (ordenador.k8 ^ 255); + ordenador.s9 &= (ordenador.k9 ^ 255); + ordenador.s10 &= (ordenador.k10 ^ 255); + ordenador.s11 &= (ordenador.k11 ^ 255); + ordenador.s12 &= (ordenador.k12 ^ 255); + ordenador.s13 &= (ordenador.k13 ^ 255); + ordenador.s14 &= (ordenador.k14 ^ 255); + ordenador.s15 &= (ordenador.k15 ^ 255); + ordenador.js |= ordenador.jk; + } + + return; +} + +// resets the computer and loads the right ROMs + +void ResetComputer () { + + static int bucle; + + Z80free_reset (&procesador); + load_rom (ordenador.mode128k); + + // reset the AY-3-8912 + + for (bucle = 0; bucle < 16; bucle++) + ordenador.ay_registers[bucle] = 0; + + ordenador.aych_a = 0; + ordenador.aych_b = 0; + ordenador.aych_c = 0; + ordenador.aych_n = 0; + ordenador.aych_envel = 0; + ordenador.vol_a = 0; + ordenador.vol_b = 0; + ordenador.vol_c = 0; + + ordenador.s8|=0x1F; + ordenador.s9|=0x1F; + ordenador.s10|=0x1F; + ordenador.s11|=0x1F; + ordenador.s12|=0x1F; + ordenador.s13|=0x1F; + ordenador.s14|=0x1F; + ordenador.s15|=0x1F; + ordenador.js=0; + + ordenador.updown=0; + ordenador.leftright=0; + + ordenador.ulaplus=0; + + ordenador.mport1 = 0; + ordenador.mport2 = 0; + ordenador.video_offset = 0; // video in page 9 (page 5 in 128K) + switch (ordenador.mode128k) { + case 0: // 48K + ordenador.pixancho = 447; + ordenador.pixalto = 311; + + ordenador.block0 = ordenador.memoria; + ordenador.block1 = ordenador.memoria + 131072; // video mem. in page 9 (page 5 in 128K) + ordenador.block2 = ordenador.memoria + 65536; // 2nd block in page 6 (page 2 in 128K) + ordenador.block3 = ordenador.memoria + 65536; // 3rd block in page 7 (page 3 in 128K) + ordenador.mport1 = 32; // access to port 7FFD disabled + break; + + case 3: // +2A/+3 + Z80free_Out (0x1FFD, 0); + case 1: // 128K + case 2: // +2 + case 4: // spanish 128K + Z80free_Out (0x7FFD, 0); + ordenador.pixancho = 455; + ordenador.pixalto = 310; + break; + } + + microdrive_reset(); +} + +// check if there's contention and waits the right number of tstates + +void do_contention() { + + if (!ordenador.contended_zone) + return; + + if (ordenador.cicles_counter<14335) { + return; + } + + int ccicles=(ordenador.cicles_counter-14335)%8; + + if (ccicles>5) { + return; + } + + emulate(6-ccicles); + +} + +void Z80free_Wr (register word Addr, register byte Value) { + + switch (Addr & 0xC000) { + case 0x0000: + // only writes in the first 16K if we are in +3 mode and bit0 of mport2 is 1 + + if ((ordenador.mode128k == 3) && (1 == (ordenador.mport2 & 0x01))) + *(ordenador.block0 + Addr) = (unsigned char) Value; + break; + + case 0x4000: + do_contention(); + *(ordenador.block1 + Addr) = (unsigned char) Value; + break; + + case 0x8000: + *(ordenador.block2 + Addr) = (unsigned char) Value; + break; + + case 0xC000: + *(ordenador.block3 + Addr) = (unsigned char) Value; + break; + } +} + + +byte Z80free_Rd (register word Addr) { + + if((ordenador.mdr_active)&&(ordenador.mdr_paged)&&(Addr<8192)) // Interface I + return((byte)ordenador.shadowrom[Addr]); + + switch (ordenador.other_ret) { + case 1: + ordenador.other_ret = 0; + return (201); // RET instruction + break; + + default: + switch (Addr & 0xC000) { + case 0x0000: + return ((byte) (*(ordenador.block0 + Addr))); + break; + + case 0x4000: + do_contention(); + return ((byte) (*(ordenador.block1 + Addr))); + break; + + case 0x8000: + return ((byte) (*(ordenador.block2 + Addr))); + break; + + case 0xC000: + return ((byte) (*(ordenador.block3 + Addr))); + break; + + default: + printf ("Memory error\n"); + exit (1); + return 0; + } + break; + } +} + +void set_palete_entry(unsigned char entry, byte Value) { + + + SDL_Color color; + + color.r = ((Value<<3)&0xE0)+((Value)&0x1C)+((Value>>3)&0x03); + color.g = (Value&0xE0)+((Value>>3)&0x1C)+((Value>>6)&0x03); + color.b = ((Value<<6)&0xC0)+((Value<<4)&0x30)+((Value<<2)&0x0C)+((Value)&0x03); + + if (ordenador.bw!=0) { + int final; + final=(((int)color.r)*3+((int)color.g)*6+((int)color.b))/10; + color.r=color.g=color.b=(unsigned char)final; + } + // Color mode + + SDL_SetColors (ordenador.screen, &color, 32+entry, 1); // set 16 colors from the 16th + + if (ordenador.bpp!=1) { + colors[entry+16]=SDL_MapRGB(screen->format,color.r,color.g,color.b); + } +} + +void Z80free_Out (register word Port, register byte Value) { + + // Microdrive access + + register word maskport; + + if (((Port&0x0001)==0)||((Port>=0x4000)&&(Port<0x8000))) { + do_contention(); + } + + // ULAPlus + if (Port == 0xBF3B) { + ordenador.ulaplus_reg = Value; + return; + } + if (Port == 0xFF3B) { + if (ordenador.ulaplus_reg==0x40) { // mode + ordenador.ulaplus=Value&0x01; + return; + } + if (ordenador.ulaplus_reg<0x40) { // register set mode + ordenador.ulaplus_palete[ordenador.ulaplus_reg]=Value; + set_palete_entry(ordenador.ulaplus_reg,Value); + } + } + + if(((Port &0x0018)!=0x0018)&&(ordenador.mdr_active)) + microdrive_out(Port,Value); + + // ULA port (A0 low) + + if (!(Port & 0x0001)) { + ordenador.port254 = (unsigned char) Value; + ordenador.border = (((unsigned char) Value) & 0x07); + + if (ordenador.pause) { + if (Value & 0x10) + ordenador.sound_bit = 1; + else + ordenador.sound_bit = 0; // assign to SOUND_BIT the value + } + } + + // Memory page (7FFD & 1FFD) + + if (ordenador.mode128k==3) { + maskport=0x0FFD; + } else { + maskport=0x3FFD; + } + + if (((Port|maskport) == 0x7FFD) && (0 == (ordenador.mport1 & 0x20))) { + ordenador.mport1 = (unsigned char) Value; + set_memory_pointers (); // set the pointers + } + + if (((Port|maskport) == 0x1FFD) && (0 == (ordenador.mport1 & 0x20))) { + ordenador.mport2 = (unsigned char) Value; + set_memory_pointers (); // set the pointers + } + + // Sound chip (AY-3-8912) + + if (((Port|maskport) == 0xFFFD)&&(ordenador.ay_emul)) + ordenador.ay_latch = ((unsigned int) (Value & 0x0F)); + + if (((Port|maskport) == 0xBFFD)&&(ordenador.ay_emul)) { + ordenador.ay_registers[ordenador.ay_latch] = (unsigned char) Value; + if (ordenador.ay_latch == 13) + ordenador.ay_envel_way = 2; // start cycle + } +} + + +byte Z80free_In (register word Port) { + + static unsigned int temporal_io; + byte pines; + + if (((Port&0x0001)==0)||((Port>=0x4000)&&(Port<0x8000))) { + do_contention(); + } + + temporal_io = (unsigned int) Port; + + if (Port == 0xFF3B) { + if (ordenador.ulaplus_reg==0x40) { // mode + return(ordenador.ulaplus&0x01); + } + if (ordenador.ulaplus_reg<0x40) { // register set mode + return(ordenador.ulaplus_palete[ordenador.ulaplus_reg]); + } + } + + if (!(temporal_io & 0x0001)) { + pines = 0xBF; // by default, sound bit is 0 + if (!(temporal_io & 0x0100)) + pines &= ordenador.s8; + if (!(temporal_io & 0x0200)) + pines &= ordenador.s9; + if (!(temporal_io & 0x0400)) + pines &= ordenador.s10; + if (!(temporal_io & 0x0800)) + pines &= ordenador.s11; + if (!(temporal_io & 0x1000)) + pines &= ordenador.s12; + if (!(temporal_io & 0x2000)) + pines &= ordenador.s13; + if (!(temporal_io & 0x4000)) + pines &= ordenador.s14; + if (!(temporal_io & 0x8000)) + pines &= ordenador.s15; + + if (ordenador.pause) { + if (ordenador.issue == 2) { + if (ordenador.port254 & 0x18) + pines |= 0x40; + } else { + if (ordenador.port254 & 0x10) + pines |= 0x40; + } + } else { + if (ordenador.tape_readed) + pines |= 0x40; // sound input + else + pines &= 0xBF; // sound input + } + return (pines); + } + + // Joystick + if (!(temporal_io & 0x0020)) { + if (ordenador.joystick == 1) { + return (ordenador.js); + } else { + return 0; // if Kempston is not selected, emulate it, but always 0 + } + } + + if ((temporal_io == 0xFFFD)&&(ordenador.ay_emul)) + return (ordenador.ay_registers[ordenador.ay_latch]); + + // Microdrive access + + if(((Port &0x0018)!=0x0018)&&(ordenador.mdr_active)) + return(microdrive_in(Port)); + + pines=bus_empty(); + + return (pines); +} + +void set_volume (unsigned char volume) { + + unsigned char vol2; + int bucle; + + if (volume > 64) + vol2 = 64; + else + vol2 = volume; + + ordenador.volume = vol2; + + for (bucle = 0; bucle < 4; bucle++) { + ordenador.sample0[bucle] = 0; + ordenador.sample1[bucle] = 0; + ordenador.sample1b[bucle] = 0; + } + + switch (ordenador.format) { + case 0: // 8 bits/sample + ordenador.sample1[0] = 1 * vol2; + ordenador.sample1[1] = 1 * vol2; + ordenador.sample1b[0] = 1; + ordenador.sample1b[1] = 1; + break; + case 1: // 16 bits/sample, Little Endian + ordenador.sample1[0] = 1 * vol2; + ordenador.sample1[1] = 1 * vol2; + ordenador.sample1[2] = 1 * vol2; + ordenador.sample1[3] = 1 * vol2; + ordenador.sample1b[0] = 1; + ordenador.sample1b[1] = 1; + ordenador.sample1b[2] = 1; + ordenador.sample1b[3] = 1; + break; + case 2: // 16 bits/sample, Big Endian + ordenador.sample1[0] = 1 * vol2; + ordenador.sample1[1] = 1 * vol2; + ordenador.sample1[2] = 1 * vol2; + ordenador.sample1[3] = 1 * vol2; + ordenador.sample1b[0] = 1; + ordenador.sample1b[1] = 1; + ordenador.sample1b[2] = 1; + ordenador.sample1b[3] = 1; + break; + } +} diff --git a/src/computer.h b/src/computer.h new file mode 100644 index 0000000..5aca4db --- /dev/null +++ b/src/computer.h @@ -0,0 +1,215 @@ +/* + * Copyright 2003-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#ifndef computer_h +#define computer_h + +#include +#include + +// #define MUT + +extern char salir; + +enum tapmodes {TAP_GUIDE, TAP_DATA, TAP_PAUSE, TAP_TRASH, TAP_STOP, TAP_PAUSE2, TZX_PURE_TONE, + TZX_SEQ_PULSES, TAP_FINAL_BIT, TAP_PAUSE3}; +enum taptypes {TAP_TAP, TAP_TZX}; + +struct computer { + + unsigned int temporal_io; + + // screen private global variables + SDL_Surface *screen; + unsigned char *screenbuffer; + unsigned int screen_width; + unsigned int translate[6144],translate2[6144]; + unsigned char zaurus_mini; + unsigned char text_mini; + unsigned char dblscan; + unsigned char bw; + + int contador_flash; + + unsigned int *p_translt,*p_translt2; + unsigned char *pixel; // current address + char border,flash; + int currline,currpix; + + int tstados_counter; // counts tstates leaved to the next call + int resx,resy,bpp; // screen resolutions + int init_line; // cuantity to add to the base address to start to paint + int next_line; // cuantity to add when we reach the end of line to go to next line + int next_scanline; // cuantity to add to pass to the next scanline + int first_line; // first line to start to paint + int last_line; // last line to paint + int first_pixel; // first pixel of a line to paint + int last_pixel; // last pixel of a line to paint + int next_pixel; // next pixel + int pixancho,pixalto; // maximum pixel value for width and height + int jump_pixel; + unsigned char screen_snow; // 0-> no emulate snow; 1-> emulate snow + unsigned char contended_zone; // 0-> no contention; 1-> contention possible + int cicles_counter; // counts how many pixel clock cicles passed since las interrupt + + char ulaplus; // 0 = inactive; 1 = active + unsigned char ulaplus_reg; // contains the last selected register in the ULAPlus + unsigned char ulaplus_palete[64]; // contains the current palete + + // keyboard private global variables + + unsigned char s8,s9,s10,s11,s12,s13,s14,s15; + unsigned char k8,k9,k10,k11,k12,k13,k14,k15; + unsigned char readed; + unsigned char tab_extended; + unsigned char esc_again; + + // kempston joystick private global variables + + unsigned char js,jk; + + // Linux joystick private global variables + + unsigned char use_js; + unsigned char updown,leftright; + + // sound global variables + + int tst_sample; // number of tstates per sample + int freq; // frequency for reproduction + int format; // 0: 8 bits, 1: 16 bits LSB, 2: 16 bits MSB + signed char sign; // 0: unsigned; 1: signed + int channels; // number of channels + int buffer_len; // sound buffer length (in samples) + int increment; // cuantity to add to jump to the next sample + unsigned char volume; // volume + unsigned char sample1[4]; // buffer with precalculated sample 1 (for buzzer) + unsigned char sample1b[4]; // buffer with prec. sample 1 (for AY-3-8912) + unsigned char sample0[4]; // buffer with precalculated sample 0 + unsigned char sound_bit; + unsigned int tstados_counter_sound; + unsigned char *current_buffer; + unsigned char num_buff; + unsigned int sound_cuantity; // counter for the buffer + unsigned char ay_registers[16]; // registers for the AY emulation + unsigned int aych_a,aych_b,aych_c,aych_n,aych_envel; // counters for AY emulation + unsigned char ayval_a,ayval_b,ayval_c,ayval_n; + unsigned char ay_emul; // 0: no AY emulation; 1: AY emulation + unsigned char vol_a,vol_b,vol_c; + unsigned int tst_ay; + unsigned int tst_ay2; + unsigned int ay_latch; + signed char ay_envel_value; + unsigned char ay_envel_way; + unsigned char sound_current_value; + + // bus global variables + + unsigned char bus_counter; + unsigned char bus_value; + unsigned char issue; // 2= 48K issue 2, 3= 48K issue 3 + unsigned char mode128k; // 0=48K, 1=128K, 2=+2, 3=+3 + unsigned char joystick; // 0=cursor, 1=kempston, 2=sinclair1, 3=sinclair2 + unsigned char port254; + + + // tape global variables + + enum tapmodes tape_current_mode; + unsigned char pause; // 1=tape stop + enum taptypes tape_file_type; + unsigned int tape_counter0; + unsigned int tape_counter1; + unsigned int tape_counter_rep; + unsigned char tape_byte; + unsigned char tape_bit; + unsigned char tape_readed; + unsigned int tape_byte_counter; + unsigned int tape_pause_at_end; + FILE *tap_file; + unsigned char tape_fast_load; // 0 normal load; 1 fast load + unsigned char current_tap[2049]; + + unsigned char tape_current_bit; + unsigned int tape_block_level; + unsigned int tape_sync_level0; + unsigned int tape_sync_level1; + unsigned int tape_bit0_level; + unsigned int tape_bit1_level; + unsigned char tape_bits_at_end; + unsigned int tape_loop_counter; + long tape_loop_pos; + + unsigned char tape_write; // 0 can't write; 1 can write + + // Microdrive global variables + FILE *mdr_file; // Current microdrive file + unsigned char mdr_current_mdr[2049]; // current path and name for microdrive file + unsigned char mdr_active; // 0: not installed; 1: installed + unsigned char mdr_paged; // 0: not pagined; 1: pagined + unsigned int mdr_tapehead; // current position in the tape + unsigned int mdr_bytes; // number of bytes read or written in this transfer + unsigned int mdr_maxbytes; // maximum number of bytes to read or write in this transfer + unsigned int mdr_gap; // TSTATEs remaining for GAP end + unsigned int mdr_nogap; // TSTATEs remaining for next GAP + unsigned char mdr_cartridge[137923]; // current cartridge + unsigned char mdr_drive; // current drive + byte mdr_old_STATUS; // to detect an edge in COM CLK + unsigned char mdr_modified; // if a sector is stored, this change to know that it must be stored in the file + + // OSD global variables + + unsigned char osd_text[200]; + unsigned int osd_time; + + // pagination global variables + + unsigned char mport1,mport2; // ports for memory management (128K and +3) + unsigned int video_offset; // 0 for page 5, and 32768 for page 7 + unsigned char *block0,*block1,*block2,*block3; // pointers for memory access (one for each 16K block). + + // public + + unsigned char memoria[196608]; // memory (12 pages of 16K each one). 4 for ROM, and 8 for RAM + unsigned char shadowrom[8192]; // space for Interface I's ROMs + unsigned char interr; + unsigned char mustlock; + unsigned char other_ret; // 0=no change; 1=memory returns RET (201) + + unsigned char turbo; +}; + +void computer_init(); +void register_screen(SDL_Surface *); +inline void show_screen(int); +inline void paint_pixels(unsigned char, unsigned char, unsigned char); +inline void read_keyboard(); +void fill_audio(void *udata,Uint8 *,int); +void set_volume(unsigned char); +inline void play_sound(unsigned int); +inline void emulate(int); +void ResetComputer(); +inline byte bus_empty(); +void set_memory_pointers(); +inline void play_ay(); +inline void paint_one_pixel(unsigned char *colour,unsigned char *address); +void computer_set_palete(); +void set_palete_entry(unsigned char entry, byte Value); + +#endif diff --git a/src/emulator.c b/src/emulator.c new file mode 100644 index 0000000..5c4bd3f --- /dev/null +++ b/src/emulator.c @@ -0,0 +1,802 @@ +/* + * Copyright 2003-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "z80free/Z80free.h" +#include "computer.h" +#include "emulator.h" +#include "cargador.h" +#include +#include +#include +#include +#include +#include "characters.h" +#include "menus.h" +#include +#include +#include +#include "sound.h" +#include "tape.h" +#include "microdrive.h" + +#ifdef GEKKO +#include +#include +#endif + +#ifdef DEBUG +FILE *fdebug; +#define printf(...) fprintf(fdebug,__VA_ARGS__); fflush (fdebug) +#endif + +char debug_var=1; + +Z80FREE procesador; +struct computer ordenador; +SDL_Surface *screen; +char salir,sound_aborted; +unsigned char *sound[NUM_SNDBUF]; +char path_snaps[2049]; +char path_taps[2049]; +char path_mdrs[2049]; +unsigned int colors[80]; +unsigned int jump_frames,curr_frames; +char *filenames[5]; + +void SDL_Fullscreen_Switch() +{ + Uint32 flags = screen->flags; + if ( flags & SDL_FULLSCREEN ) + flags &= ~SDL_FULLSCREEN; + else + flags |= SDL_FULLSCREEN; + + screen = SDL_SetVideoMode(screen->w, screen->h, screen->format->BitsPerPixel,flags); +} + +FILE *myfopen(char *filename,char *mode) { + + char tmp[4096]; + FILE *fichero; + + fichero=fopen(filename,mode); + if (fichero!=NULL) { + return (fichero); + } + sprintf(tmp,"/usr/share/%s",filename); + fichero=fopen(tmp,mode); + if (fichero!=NULL) { + return (fichero); + } + sprintf(tmp,"/usr/local/share/%s",filename); + fichero=fopen(tmp,mode); + if (fichero!=NULL) { + return (fichero); + } + #ifdef GEKKO + sprintf(tmp,"/fbzx-wii/%s",filename); + fichero=fopen(tmp,mode); + if (fichero!=NULL) { + return (fichero); + } + #endif + + return (NULL); +} + +char *load_a_rom(char **filenames) { + + char **pointer; + int offset=0; + FILE *fichero; + int size; + + for(pointer=filenames;*pointer!=NULL;pointer++) { + fichero=myfopen(*pointer,"r"); + if(fichero==NULL) { + return (*pointer); + } + size=fread(ordenador.memoria+offset,16384,1,fichero); + offset+=16384; + fclose(fichero); + } + return (NULL); +} + +void load_rom(char type) { + + char *retval; + FILE *fichero; + int size; + + switch(type) { + case 0: + filenames[0]="spectrum-roms/48.rom"; + filenames[1]=NULL; + retval=load_a_rom(filenames); + if (retval) { + printf("Can't load file %s\n",retval); + exit(1); + } + break; + case 1: + filenames[0]="spectrum-roms/128-0.rom"; + filenames[1]="spectrum-roms/128-1.rom"; + filenames[2]=NULL; + retval=load_a_rom(filenames); + if (retval) { + printf("Can't load file %s\n",retval); + exit(1); + } + break; + case 2: + filenames[0]="spectrum-roms/plus2-0.rom"; + filenames[1]="spectrum-roms/plus2-1.rom"; + filenames[2]=NULL; + retval=load_a_rom(filenames); + if (retval) { + printf("Can't load file %s\n",retval); + exit(1); + } + break; + case 3: + // first, try last version of PLUS3 roms + + filenames[0]="spectrum-roms/plus3-41-0.rom"; + filenames[1]="spectrum-roms/plus3-41-1.rom"; + filenames[2]="spectrum-roms/plus3-41-2.rom"; + filenames[3]="spectrum-roms/plus3-41-3.rom"; + filenames[4]=NULL; + retval=load_a_rom(filenames); + if (retval) { + printf("Can't load the Spectrum +3 ROM version 4.1. Trying with version 4.0\n"); + filenames[0]="spectrum-roms/plus3-40-0.rom"; + filenames[1]="spectrum-roms/plus3-40-1.rom"; + filenames[2]="spectrum-roms/plus3-40-2.rom"; + filenames[3]="spectrum-roms/plus3-40-3.rom"; + filenames[4]=NULL; + retval=load_a_rom(filenames); + if (retval) { + printf("Can't load the Spectrum +3 ROM version 4.0. Trying with legacy filenames\n"); + filenames[0]="spectrum-roms/plus3-0.rom"; + filenames[1]="spectrum-roms/plus3-1.rom"; + filenames[2]="spectrum-roms/plus3-2.rom"; + filenames[3]="spectrum-roms/plus3-3.rom"; + filenames[4]=NULL; + retval=load_a_rom(filenames); + if (retval) { + printf("Can't load file %s\n",retval); + exit(1); + } + } + } + break; + case 4: + filenames[0]="spectrum-roms/128-spanish-0.rom"; + filenames[1]="spectrum-roms/128-spanish-1.rom"; + filenames[2]=NULL; + retval=load_a_rom(filenames); + if (retval) { + printf("Can't load file %s\n",retval); + exit(1); + } + break; + } + + fichero=myfopen("spectrum-roms/if1-2.rom","r"); // load Interface1 ROM + if(fichero==NULL) { + // try legacy name + fichero=myfopen("spectrum-roms/if1-v2.rom","r"); + if(fichero==NULL) { + printf("Can't open Interface1 ROM file\n"); + exit(1); + } + } + size=fread(ordenador.shadowrom,8192,1,fichero); + fclose(fichero); +} + +void init_screen(int resx,int resy,int depth,int fullscreen,int dblbuffer,int hwsurface) { + + int retorno,bucle,bucle2,valores,ret2; + unsigned char value; + + //if (sound_type!=3) + retorno=SDL_Init(SDL_INIT_VIDEO); + /*else + retorno=SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO);*/ + if(retorno!=0) { + printf("Can't initialize SDL library. Exiting\n"); + exit(1); + } + + if (SDL_InitSubSystem(SDL_INIT_JOYSTICK)) { + ordenador.use_js=0; + printf("Can't initialize JoyStick subsystem\n"); + } else { + printf("JoyStick subsystem initialized\n"); + ordenador.use_js=1; + if(SDL_NumJoysticks()>0){ + // Open joystick + for (bucle=0;bucleformat->BytesPerPixel; + printf("Bytes per pixel: %d\n",ordenador.bpp); + + if(SDL_MUSTLOCK(screen)) { + ordenador.mustlock=1; + SDL_LockSurface(screen); + } else + ordenador.mustlock=0; + + printf("Locking screen: %d\n", ordenador.mustlock); + + // sound initialization + + if (sound_type==SOUND_AUTOMATIC) { + ret2=sound_init(1); // check all sound systems + } else { + ret2=sound_init(0); // try with the one specified in command line + } + if(ret2==0) { + sound_aborted=0; + } else { // if fails, run without sound + sound_type=SOUND_NO; + sound_init(0); + sound_aborted=1; + } + printf("Init sound\n"); + if(ordenador.format) + ordenador.increment=2*ordenador.channels; + else + ordenador.increment=ordenador.channels; + + value=0; + for(bucle2=0;bucle20)&&(config_path[length-1]!='/')) + strcat(config_path,"/"); + strcat(config_path,"fbzx_conf"); + fconfig = fopen(config_path,"wb"); + if (fconfig==NULL) { + return; + } + fprintf(fconfig,"mode=%c%c",48+object->mode128k,10); + fprintf(fconfig,"issue=%c%c",48+object->issue,10); + fprintf(fconfig,"joystick=%c%c",48+object->joystick,10); + fprintf(fconfig,"ay_sound=%c%c",48+object->ay_emul,10); + fprintf(fconfig,"interface1=%c%c",48+object->mdr_active,10); + fprintf(fconfig,"doublescan=%c%c",48+object->dblscan,10); + fprintf(fconfig,"volume=%c%c",65+(object->volume/4),10); + fprintf(fconfig,"bw=%c%c",48+object->bw,10); + fclose(fconfig); +} + +void load_config(struct computer *object) { + + char config_path[1024]; + char line[1024],carac,done; + int length,pos; + FILE *fconfig; + unsigned char volume=255,mode128k=255,issue=255,joystick=255,ay_emul=255,mdr_active=255,dblscan=255,bw=255; + + strcpy(config_path,getenv("HOME")); + length=strlen(config_path); + if ((length>0)&&(config_path[length-1]!='/')) + strcat(config_path,"/"); + strcat(config_path,"fbzx_conf"); + fconfig = fopen(config_path,"rb"); + if (fconfig==NULL) { + return; + } + + done=1; + pos=0; + line[0]=0; + while(!feof(fconfig)) { + if (done) { + line[0]=0; + pos=0; + done=0; + } + if (0!=fread(&carac,1,1,fconfig)) { + if ((carac!=13)&&(carac!=10)) { + line[pos]=carac; + if (pos<1023) { + pos++; + } + continue; + } + } + done=1; + line[pos]=0; + if (line[0]=='#') { // coment + continue; + } + if (!strncmp(line,"mode=",5)) { + printf("Cambio a modo %c\n",line[5]-'0'); + mode128k=line[5]-'0'; + continue; + } + if (!strncmp(line,"issue=",6)) { + issue=line[6]-'0'; + continue; + } + if (!strncmp(line,"joystick=",9)) { + joystick=line[9]-'0'; + continue; + } + if (!strncmp(line,"ay_sound=",9)) { + ay_emul=line[9]-'0'; + continue; + } + if (!strncmp(line,"interface1=",11)) { + mdr_active=line[11]-'0'; + continue; + } + if (!strncmp(line,"doublescan=",11)) { + dblscan=line[11]-'0'; + continue; + } + if (!strncmp(line,"volume=",7)) { + volume=4*(line[7]-'A'); + continue; + } + if (!strncmp(line,"bw=",3)) { + bw=(line[3]-'0'); + continue; + } + } + + if (mode128k<5) { + object->mode128k=mode128k; + } + if (issue<4) { + object->issue=issue; + } + if (joystick<4) { + object->joystick=joystick; + } + if (ay_emul<2) { + object->ay_emul=ay_emul; + } + if (mdr_active<2) { + object->mdr_active=mdr_active; + } + if (dblscan<2) { + object->dblscan=dblscan; + } + if (bw<2) { + object->bw=bw; + } + if (volume<255) { + object->volume=volume; + set_volume(volume); + } + + fclose(fconfig); +} + +int main(int argc,char *argv[]) { + + int bucle,tstados,argumento,fullscreen,dblbuffer,hwsurface,length; + char gamefile[4096]; + word PC=0; + + // by default, try all sound modes + sound_type=SOUND_AUTOMATIC; + gamefile[0]=0; + ordenador.zaurus_mini=0; + ordenador.text_mini=0; + ordenador.ulaplus=0; + ordenador.ulaplus_reg=0; + fullscreen=0; + dblbuffer=0; + hwsurface=0; + + argumento=0; + jump_frames=0; + curr_frames=0; + ordenador.dblscan=0; + ordenador.bw=0; + + #ifdef DEBUG + fatInitDefault(); + fdebug = fopen("/fbzx-wii/logfile.txt","w"); + #endif + + #ifdef GEKKO + fullscreen=1; + dblbuffer=1; + hwsurface=1; + setenv("HOME", "/fbzx-wii", 1); + + printf("\x1b[2;0H"); + + //initialize libfat library + if (!fatInitDefault()) + { + printf("Couldn't initialize SD fat subsytem\n\n"); + + exit(0); + } + else + printf("SD FAT subsytem initialized\n\n"); + + //SDL_Delay(3000); + + #endif + + + computer_init(); + printf("Computer init\n"); + + printf("Modo: %d\n",ordenador.mode128k); + // load current config + load_config(&ordenador); + printf("Modo: %d\n",ordenador.mode128k); + while(argumentopixels; + ordenador.screen_width=ordenador.screen->w; + + // assign initial values for PATH variables + + strcpy(path_snaps,getenv("HOME")); + length=strlen(path_snaps); + if ((length>0)&&(path_snaps[length-1]!='/')) + strcat(path_snaps,"/"); + strcpy(path_taps,path_snaps); + strcpy(path_mdrs,path_snaps); + ordenador.current_tap[0]=0; + + // assign random values to the memory before start execution + + printf("Reset memory\n"); + printf("Modo: %d\n",ordenador.mode128k); + for(bucle=0;bucle<196608;bucle++) + ordenador.memoria[bucle]=(unsigned char) rand(); + + printf("Memory resetted\n"); + ordenador.tap_file=NULL; + printf("Modo: %d\n",ordenador.mode128k); + + // we filter all the events, except keyboard events + + SDL_EventState(SDL_ACTIVEEVENT,SDL_IGNORE); + SDL_EventState(SDL_MOUSEMOTION,SDL_IGNORE); + SDL_EventState(SDL_MOUSEBUTTONDOWN,SDL_IGNORE); + SDL_EventState(SDL_MOUSEBUTTONUP,SDL_IGNORE); + SDL_EventState(SDL_JOYAXISMOTION,SDL_ENABLE); + SDL_EventState(SDL_JOYBALLMOTION,SDL_ENABLE); + SDL_EventState(SDL_JOYHATMOTION,SDL_ENABLE); + SDL_EventState(SDL_JOYBUTTONDOWN,SDL_ENABLE); + SDL_EventState(SDL_JOYBUTTONUP,SDL_ENABLE); + SDL_EventState(SDL_QUIT,SDL_ENABLE); + SDL_EventState(SDL_SYSWMEVENT,SDL_IGNORE); + SDL_EventState(SDL_VIDEORESIZE,SDL_IGNORE); + SDL_EventState(SDL_USEREVENT,SDL_IGNORE); + + SDL_ShowCursor(SDL_DISABLE); + salir=1; + + printf("Init microdrive\n"); + microdrive_init(); + + printf("Reset computer\n"); + ResetComputer(); + + sleep(1); + + printf("Reset screen\n"); + clean_screen(); + + if (sound_aborted==1) { + strcpy(ordenador.osd_text,"Running without sound (read the FAQ)"); + ordenador.osd_time=100; + } + + printf("Modo: %d\n",ordenador.mode128k); + printf("load main game\n"); + load_main_game(gamefile); + printf("Modo: %d\n",ordenador.mode128k); + + sprintf(ordenador.osd_text,"Press F1 for help"); + ordenador.osd_time=200; + + printf("BPP: %d\n",ordenador.bpp); + while(salir) { + + do { + tstados=Z80free_ustep(&procesador); + if(tstados<0) { + printf("Error %X\n",procesador.PC); + exit(1); + } + emulate(tstados); // execute the whole hardware emulation for that number of TSTATES + } while(procesador.Status!=Z80XX); + + PC=procesador.PC; + + /* if PC is 0x0556, a call to LD_BYTES has been made, so if + FAST_LOAD is 1, we must load the block in memory and return */ + + if((!ordenador.mdr_paged)&&(PC==0x0556) && (ordenador.tape_fast_load==1)&&(ordenador.tape_file_type==TAP_TAP)) { + if(ordenador.tap_file!=NULL) + fastload_block(ordenador.tap_file); + else { + sprintf(ordenador.osd_text,"No TAP file selected"); + ordenador.osd_time=50; + } + } + + /* if PC is 0x04C2, a call to SA_BYTES has been made, so if + we want to save to the TAP file, we do it */ + + if((!ordenador.mdr_paged)&&(PC==0x04C2)&&(ordenador.tape_write==1)&&(ordenador.tape_file_type==TAP_TAP)) { + if(ordenador.tap_file!=NULL) + save_file(ordenador.tap_file); + else { + sprintf(ordenador.osd_text,"No TAP file selected"); + ordenador.osd_time=50; + } + } + + /* if ordenador.mdr_paged is 2, we have executed the RET at 0x0700, so + we have to return to the classic ROM */ + + if(ordenador.mdr_paged==2) + ordenador.mdr_paged=0; + + /* if PC is 0x0008 or 0x1708, and we have a microdrive, we have to page + the Interface 1 ROM */ + + if(((PC==0x0008)||(PC==0x1708))&&(ordenador.mdr_active)) + ordenador.mdr_paged = 1; + + /* if PC is 0x0700 and we have a microdrive, we have to unpage + the Interface 1 ROM after the last instruction */ + + if((PC==0x0700)&&(ordenador.mdr_active)) + ordenador.mdr_paged = 2; + + if(ordenador.interr==1) { + read_keyboard (NULL); // read the physical keyboard + Z80free_INT(&procesador,bus_empty()); + ordenador.interr=0; + } + } + + save_config(&ordenador); + return 0; +} diff --git a/src/emulator.h b/src/emulator.h new file mode 100644 index 0000000..df973f8 --- /dev/null +++ b/src/emulator.h @@ -0,0 +1,45 @@ +/* + * Copyright 2003-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "z80free/Z80free.h" +#include "computer.h" + +#ifndef emulator_h +#define emulator_h + +#define NUM_SNDBUF 2 + +extern char debug_var; + +extern SDL_Surface *screen; +extern Z80FREE procesador; +extern struct computer ordenador; +extern unsigned char *sound[NUM_SNDBUF]; +extern char path_snaps[2049]; +extern char path_taps[2049]; +extern char path_mdrs[2049]; +extern unsigned int colors[80]; +extern unsigned int jump_frames,curr_frames; + +void SDL_Fullscreen_Switch(void); +void load_rom(char); +void load_main_game(char *nombre); +FILE *myfopen(char *filename,char *mode); + +#endif diff --git a/src/menus.c b/src/menus.c new file mode 100644 index 0000000..38c1531 --- /dev/null +++ b/src/menus.c @@ -0,0 +1,1949 @@ +/* + * Copyright 2003-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "z80free/Z80free.h" +#include "computer.h" +#include "emulator.h" +#include "cargador.h" +#include +#include +#include +#include +#include +#include +#include +#include "characters.h" +#include "menus.h" +#include "tape.h" +#include + + +// shows the settings menu + +void print_copy(unsigned char *fbuffer,int ancho) { + + print_string(fbuffer,"(C) 2003-2011 Raster Software Vigo",-1,455,13,0,ancho); + +} + +int launch_menu(unsigned int key_pressed) { + + int retval=0; + switch(key_pressed) { + + case SDLK_F2: + snapshots_menu (); // manage snapshot files + retval=1; + break; + + case SDLK_F3: + taps_menu (); // manage TAP files + retval=1; + break; + + case SDLK_F4: // settings + settings_menu (); + retval=1; + break; + + case SDLK_F7: + microdrive_menu (); // shows the microdrive menu + retval=1; + break; + + case SDLK_F8: + tools_menu(); + retval=1; + break; + } + return (retval); +} + +void settings_menu() { + + unsigned char *fbuffer,fin; + unsigned char texto[41]; + int ancho=screen->w; + + fbuffer=screen->pixels; + + fin=1; + + texto[0]=0; + + do { + clean_screen(); + + print_string(fbuffer,"Current settings",-1,5,15,0,ancho); + switch(ordenador.mode128k) { + case 0: + if(ordenador.issue==2) + sprintf(texto,"Mode: 48K issue2"); + else + sprintf(texto,"Mode: 48K issue3"); + break; + case 1: + sprintf(texto,"Mode: Sinclair 128K"); + break; + case 2: + sprintf(texto,"Mode: Amstrad +2"); + break; + case 3: + sprintf(texto,"Mode: Amstrad +2A/+3"); + break; + case 4: + sprintf(texto,"Mode: Spanish 128K"); + break; + } + + print_string(fbuffer,texto,-1,45,14,0,ancho); + + switch(ordenador.joystick) { + case 0: + sprintf(texto,"Joystick emulation: Cursor"); + break; + case 1: + sprintf(texto,"Joystick emulation: Kempston"); + break; + case 2: + sprintf(texto,"Joystick emulation: Sinclair (1)"); + break; + case 3: + sprintf(texto,"Joystick emulation: Sinclair (2)"); + break; + } + print_string(fbuffer,texto,-1,65,13,0,ancho); + + if(ordenador.ay_emul) + sprintf(texto,"AY-3-8912 Emulation: enabled"); + else + sprintf(texto,"AY-3-8912 Emulation: disabled"); + + print_string(fbuffer,texto,-1,85,11,0,ancho); + + if(ordenador.mdr_active) + sprintf(texto,"Interface I Emulation: enabled"); + else + sprintf(texto,"Interface I Emulation: disabled"); + + print_string(fbuffer,texto,-1,105,15,0,ancho); + + if(ordenador.dblscan) + sprintf(texto,"Double scan: enabled"); + else + sprintf(texto,"Double scan: disabled"); + + print_string(fbuffer,texto,-1,125,12,0,ancho); + + if(ordenador.turbo) + sprintf(texto,"TURBO mode: enabled"); + else + sprintf(texto,"TURBO mode: disabled"); + print_string(fbuffer,texto,-1,145,14,0,ancho); + + if (ordenador.bw) { + print_string(fbuffer,"TV Set: \001\011B\001\012&\001\014W",-1,165,15,0,ancho); + } else { + print_string(fbuffer,"TV Set: \001\012C\001\014o\001\015l\001\016o\001\013r",-1,165,15,0,ancho); + } + + print_string(fbuffer,"1:",30,190,12,0,ancho); + print_string(fbuffer,"48K issue2",78,190,15,0,ancho); + + print_string(fbuffer,"2:",350,190,12,0,ancho); + print_string(fbuffer,"48K issue3",398,190,15,0,ancho); + + print_string(fbuffer,"3:",30,220,12,0,ancho); + print_string(fbuffer,"Sinclair 128K",78,220,15,0,ancho); + + print_string(fbuffer,"4:",350,220,12,0,ancho); + print_string(fbuffer,"Amstrad +2",398,220,15,0,ancho); + + print_string(fbuffer,"5:",30,250,12,0,ancho); + print_string(fbuffer,"Amstrad +2A/+3",78,250,15,0,ancho); + + print_string(fbuffer,"6:",350,250,12,0,ancho); + print_string(fbuffer,"Spanish 128K",398,250,15,0,ancho); + + print_string(fbuffer,"7:",30,280,12,0,ancho); + print_string(fbuffer,"Cursor",78,280,15,0,ancho); + + print_string(fbuffer,"8:",350,280,12,0,ancho); + print_string(fbuffer,"Kempston",398,280,15,0,ancho); + + print_string(fbuffer,"9:",30,310,12,0,ancho); + print_string(fbuffer,"Sinclair (1)",78,310,15,0,ancho); + + print_string(fbuffer,"0:",350,310,12,0,ancho); + print_string(fbuffer,"Sinclair (2)",398,310,15,0,ancho); + + print_string(fbuffer,"I:",30,340,12,0,ancho); + print_string(fbuffer,"Interface I",78,340,15,0,ancho); + + print_string(fbuffer,"D:",350,340,12,0,ancho); + print_string(fbuffer,"Double Scan",398,340,15,0,ancho); + + print_string(fbuffer,"A:",350,370,12,0,ancho); + print_string(fbuffer,"AY emulation",398,370,15,0,ancho); + print_string(fbuffer,"T:",30,370,12,0,ancho); + print_string(fbuffer,"TURBO mode",78,370,15,0,ancho); + + print_string(fbuffer,"V:",30,400,12,0,ancho); + print_string(fbuffer,"TV Set mode",78,400,15,0,ancho); + + print_string(fbuffer,"ESC:",168,460,12,0,ancho); + print_string(fbuffer,"return emulator",232,460,15,0,ancho); + + switch(wait_key()) { + case SDLK_ESCAPE: + case SDLK_RETURN: + fin=0; + break; + case SDLK_1: + ordenador.issue=2; + ordenador.mode128k=0; + ordenador.ay_emul=0; + ResetComputer(); + break; + case SDLK_2: + ordenador.issue=3; + ordenador.mode128k=0; + ordenador.ay_emul=0; + ResetComputer(); + break; + case SDLK_3: + ordenador.issue=3; + ordenador.mode128k=1; + ordenador.ay_emul=1; + ResetComputer(); + break; + case SDLK_4: + ordenador.issue=3; + ordenador.mode128k=2; + ordenador.ay_emul=1; + ResetComputer(); + break; + case SDLK_5: + ordenador.issue=3; + ordenador.mode128k=3; + ordenador.ay_emul=1; + ordenador.mdr_active=0; + ResetComputer(); + break; + case SDLK_6: + ordenador.issue=3; + ordenador.mode128k=4; + ordenador.ay_emul=1; + ResetComputer(); + break; + case SDLK_7: + ordenador.joystick=0; + break; + case SDLK_8: + ordenador.joystick=1; + break; + case SDLK_9: + ordenador.joystick=2; + break; + case SDLK_0: + ordenador.joystick=3; + break; + case SDLK_i: + if(ordenador.mode128k!=3) { + ordenador.mdr_active=1-ordenador.mdr_active; + ResetComputer(); + } + break; + case SDLK_d: + ordenador.dblscan=1-ordenador.dblscan; + break; + case SDLK_a: + ordenador.ay_emul=1-ordenador.ay_emul; + break; + case SDLK_v: + ordenador.bw=1-ordenador.bw; + computer_set_palete(); + break; + case SDLK_t: + if(ordenador.turbo){ + ordenador.tst_sample=3500000/ordenador.freq; + ordenador.turbo = 0; + } else { + ordenador.tst_sample=100000000/ordenador.freq; + ordenador.turbo = 1; + } + } + } while(fin); + + clean_screen(); +} + +// shows the help menu + +void help_menu() { + + unsigned char *fbuffer,fin; + int ancho=screen->w; + + fbuffer=screen->pixels; + + clean_screen(); + + print_string(fbuffer,"FBZX (2.7.0)",-1,10,15,0,ancho); + print_string(fbuffer,"Available keys",-1,40,14,0,ancho); + print_string(fbuffer,"Shift:Caps Shift Ctrl:Symbol Shift",-1,95,11,0,ancho); + + print_string(fbuffer,"F1:",14,160,12,0,ancho); + print_string(fbuffer,"this help",62,160,15,0,ancho); + + print_string(fbuffer,"F2:",336,160,12,0,ancho); + print_string(fbuffer,"manage snapshots",382,160,15,0,ancho); + + print_string(fbuffer,"F3:",14,200,12,0,ancho); + print_string(fbuffer,"manage TAP/TZX",62,200,15,0,ancho); + + print_string(fbuffer,"F4:",336,200,12,0,ancho); + print_string(fbuffer,"change settings",382,200,15,0,ancho); + + print_string(fbuffer,"F5:",14,240,12,0,ancho); + print_string(fbuffer,"stop TAPE",62,240,15,0,ancho); + + print_string(fbuffer,"F6:",336,240,12,0,ancho); + print_string(fbuffer,"play TAPE",382,240,15,0,ancho); + + print_string(fbuffer,"F7:",14,280,12,0,ancho); + print_string(fbuffer,"manage MICRODRIVE",62,280,15,0,ancho); + + print_string(fbuffer,"F8:",336,280,12,0,ancho); + print_string(fbuffer,"tools",382,280,15,0,ancho); + + print_string(fbuffer,"F9:",14,320,12,0,ancho); + print_string(fbuffer,"Toggle fullscreen",62,320,15,0,ancho); + + print_string(fbuffer,"F10:",336,320,12,0,ancho); + print_string(fbuffer,"reset spectrum",398,320,15,0,ancho); + + print_string(fbuffer,"F11/O:",14,360,12,0,ancho); + print_string(fbuffer,"volume low",110,360,15,0,ancho); + + print_string(fbuffer,"F12/P:",336,360,12,0,ancho); + print_string(fbuffer,"volume up",430,360,15,0,ancho); + + print_string(fbuffer,"ESC:",184,400,12,0,ancho); + print_string(fbuffer,"exit emulator",248,400,15,0,ancho); + + print_copy(fbuffer,ancho); + + fin=1; + do { + unsigned int key = wait_key(); + switch(key) { + case SDLK_ESCAPE: // to exit the help + fin=0; + break; + default: + if (launch_menu(key)) { + fin=0; + } + break; + } + } while(fin); + clean_screen(); +} + + +// shows the POKE menu + +void do_poke() { + + unsigned char *videomem,string[80]; + int ancho,retorno,address,old_value,new_value; + + videomem=screen->pixels; + ancho=screen->w; + + clean_screen(); + + while(1) { + print_string(videomem,"Type address to POKE",-1,32,15,0,ancho); + print_string(videomem,"(ESC to exit)",-1,52,12,0,ancho); + + retorno=ask_value(&address,84,65535); + + clean_screen(); + + if (retorno==2) { + return; + } + + if ((address<16384) && ((ordenador.mode128k != 3) || (1 != (ordenador.mport2 & 0x01)))) { + print_string(videomem,"That address is ROM memory.",-1,13,15,0,ancho); + continue; + } + + switch (address & 0x0C000) { + case 0x0000: + old_value= (*(ordenador.block0 + address)); + break; + + case 0x4000: + old_value= (*(ordenador.block1 + address)); + break; + + case 0x8000: + old_value= (*(ordenador.block2 + address)); + break; + + case 0xC000: + old_value= (*(ordenador.block3 + address)); + break; + default: + old_value=0; + break; + } + + print_string(videomem,"Type new value to POKE",-1,32,15,0,ancho); + print_string(videomem,"(ESC to cancel)",-1,52,12,0,ancho); + sprintf(string,"Address: %d; old value: %d\n",address,old_value); + print_string(videomem,string,-1,130,14,0,ancho); + + retorno=ask_value(&new_value,84,255); + + clean_screen(); + + if (retorno==2) { + continue; + } + + switch (address & 0x0C000) { + case 0x0000: + (*(ordenador.block0 + address))=new_value; + break; + + case 0x4000: + (*(ordenador.block1 + address))=new_value; + break; + + case 0x8000: + (*(ordenador.block2 + address))=new_value; + break; + + case 0xC000: + (*(ordenador.block3 + address))=new_value; + break; + default: + break; + } + + sprintf(string,"Set address %d from %d to %d\n",address,old_value,new_value); + print_string(videomem,string,-1,130,14,0,ancho); + + } +} + +// shows the tools menu + +void tools_menu() { + + unsigned char *fbuffer,fin; + int ancho=screen->w; + + fbuffer=screen->pixels; + + fin=1; + do { + clean_screen(); + + print_string(fbuffer,"Tools",-1,10,15,0,ancho); + + print_string(fbuffer,"1:",14,50,12,0,ancho); + print_string(fbuffer,"show keyboard template",62,50,15,0,ancho); + + print_string(fbuffer,"2:",14,90,12,0,ancho); + print_string(fbuffer,"insert POKEs",62,90,15,0,ancho); + + print_string(fbuffer,"ESC:",14,250,12,0,ancho); + print_string(fbuffer,"return emulator",78,250,15,0,ancho); + + print_copy(fbuffer,ancho); + + switch(wait_key()) { + case SDLK_ESCAPE: // to exit the help + fin=0; + break; + case SDLK_1: + fin=0; + keyboard_menu(); + break; + case SDLK_2: + fin=0; + do_poke(); + break; + default: + break; + } + + } while(fin); + + clean_screen(); +} + + + + +// shows the SNAPSHOTS menu + +void snapshots_menu() { + + unsigned char *fbuffer,fin; + int ancho=screen->w; + + fbuffer=screen->pixels; + + clean_screen(); + + print_string(fbuffer,"SNAPSHOTS",-1,10,15,0,ancho); + + print_string(fbuffer,"1:",14,100,12,0,ancho); + print_string(fbuffer,"load a Z80/SNA snapshot",62,100,15,0,ancho); + + if(ordenador.mode128k!=3) { // not in +3 mode + print_string(fbuffer,"2:",14,160,12,0,ancho); + print_string(fbuffer,"make a Z80 snapshot",62,160,15,0,ancho); + } else { + print_string(fbuffer,"Can't make snapshots in +3 mode",14,160,15,0,ancho); + } + + print_string(fbuffer,"3: \001\017load a SCR snapshot",14,220,12,0,ancho); + + print_string(fbuffer,"4: \001\017save a SCR snapshot",14,280,12,0,ancho); + + print_string(fbuffer,"ESC: \001\017return to emulator",-1,400,12,0,ancho); + + print_copy(fbuffer,ancho); + + fin=1; + do { + switch(wait_key()) { + case SDLK_ESCAPE: // to exit the help + fin=0; + break; + case SDLK_1: + fin=0; + load_z80file(); + break; + case SDLK_2: + fin=0; + if(ordenador.mode128k!=3) // not in +3 mode + save_z80file(); + break; + case SDLK_3: + fin=0; + load_scrfile(); + break; + case SDLK_4: + fin=0; + create_scrfile(); + break; + default: + break; + } + } while(fin); + clean_screen(); +} + + +// shows the TAPs menu + +void taps_menu() { + + unsigned char *fbuffer,fin; + int ancho=screen->w; + + fbuffer=screen->pixels; + + fin=1; + do { + clean_screen(); + + print_string(fbuffer,"TAP/TZX files",-1,10,15,0,ancho); + + print_string(fbuffer,"1:",14,50,12,0,ancho); + print_string(fbuffer,"select a TAP/TZX file",62,50,15,0,ancho); + + + print_string(fbuffer,"2:",14,90,12,0,ancho); + print_string(fbuffer,"rewind TAP/TZX file",62,90,15,0,ancho); + + print_string(fbuffer,"3:",14,130,12,0,ancho); + print_string(fbuffer,"fast/normal speed",62,130,15,0,ancho); + + print_string(fbuffer,"4:",14,170,12,0,ancho); + print_string(fbuffer,"write protection",62,170,15,0,ancho); + + print_string(fbuffer,"5:",14,210,12,0,ancho); + print_string(fbuffer,"create TAP file",62,210,15,0,ancho); + + print_string(fbuffer,"ESC:",14,250,12,0,ancho); + print_string(fbuffer,"return emulator",78,250,15,0,ancho); + + print_string(fbuffer,"Current TAP/TZX file is:",-1,300,12,0,ancho); + print_string(fbuffer,ordenador.current_tap,-1,320,12,0,ancho); + + print_copy(fbuffer,ancho); + + if(ordenador.tape_fast_load) + print_string(fbuffer,"Fast load enabled ",10,420,14,0,ancho); + else + print_string(fbuffer,"Fast load disabled ",10,420,14,0,ancho); + + if(ordenador.tape_write) + print_string(fbuffer,"Write enabled",390,420,14,0,ancho); + else + print_string(fbuffer,"Write disabled",390,420,14,0,ancho); + + switch(wait_key()) { + case SDLK_ESCAPE: // to exit the help + fin=0; + break; + case SDLK_1: + ordenador.pause=1; + select_tapfile(); + break; + case SDLK_2: + fin=0; + ordenador.pause=1; + if(ordenador.tap_file!=NULL) { + ordenador.tape_current_mode=TAP_TRASH; + rewind_tape(ordenador.tap_file,1); + } + sprintf(ordenador.osd_text,"Tape rewinded"); + ordenador.osd_time=50; + break; + case SDLK_3: + ordenador.pause=1; + ordenador.tape_fast_load=1-ordenador.tape_fast_load; + if(ordenador.tap_file!=NULL) { + ordenador.tape_current_mode=TAP_TRASH; + rewind_tape(ordenador.tap_file,1); + } + break; + case SDLK_4: + ordenador.tape_write=1-ordenador.tape_write; + break; + case SDLK_5: + create_tapfile(); + break; + default: + break; + } + + } while(fin); + + clean_screen(); +} + +// shows a menu to allow user to choose a tape file + +void select_tapfile() { + + unsigned char *videomem,*filename; + int ancho,retorno,retval; + unsigned char char_id[11]; + + videomem=screen->pixels; + ancho=screen->w; + + clean_screen(); + + if(ordenador.tap_file!=NULL) + rewind_tape(ordenador.tap_file,1); + + ordenador.tape_current_bit=0; + ordenador.tape_current_mode=TAP_TRASH; + + print_string(videomem,"Choose the TAPE file to load",-1,32,13,0,ancho); + + filename=select_file(path_taps,FILETYPE_TAP_TZX); + + if(filename==NULL) { // Aborted + clean_screen(); + return; + } + + if(ordenador.tap_file!=NULL) { + fclose(ordenador.tap_file); + } + + ordenador.tap_file=fopen(filename,"r+"); // read and write + ordenador.tape_write = 0; // by default, can't record + if(ordenador.tap_file==NULL) + retorno=-1; + else + retorno=0; + + clean_screen(); + + strcpy(ordenador.current_tap,filename); + + free(filename); + + switch(retorno) { + case 0: // all right + break; + case -1: + print_string(videomem,"Error: Can't load that file",-1,232,10,0,ancho); + print_string(videomem,"Press any key",-1,248,10,0,ancho); + ordenador.current_tap[0]=0; + wait_key(); + break; + } + + retval=fread(char_id,10,1,ordenador.tap_file); // read the (maybe) TZX header + if((!strncmp(char_id,"ZXTape!",7)) && (char_id[7]==0x1A)&&(char_id[8]==1)) { + ordenador.tape_file_type = TAP_TZX; + rewind_tape(ordenador.tap_file,1); + } else { + ordenador.tape_file_type = TAP_TAP; + rewind_tape(ordenador.tap_file,1); + } + + clean_screen(); +} + +void create_tapfile() { + + unsigned char *videomem; + int ancho,retorno; + unsigned char nombre2[1024]; + + videomem=screen->pixels; + ancho=screen->w; + + clean_screen(); + + print_string(videomem,"Choose a name for the TAP file",-1,32,14,0,ancho); + print_string(videomem,"(up to 30 characters)",-1,52,14,0,ancho); + + print_string(videomem,"TAP file will be saved in:",-1,132,12,0,ancho); + print_string(videomem,path_taps,0,152,12,0,ancho); + + + retorno=ask_filename(nombre2,84,"tap"); + + clean_screen(); + + if(retorno==2) // abort + return; + + if(ordenador.tap_file!=NULL) + fclose(ordenador.tap_file); + + ordenador.tap_file=fopen(nombre2,"r"); // test if it exists + if(ordenador.tap_file==NULL) + retorno=0; + else + retorno=-1; + + if(!retorno) { + ordenador.tap_file=fopen(nombre2,"a+"); // create for read and write + if(ordenador.tap_file==NULL) + retorno=-2; + else + retorno=0; + } + ordenador.tape_write=1; // allow to write + strcpy(ordenador.current_tap,nombre2); + ordenador.tape_file_type = TAP_TAP; + switch(retorno) { + case 0: + break; + case -1: + print_string(videomem,"File already exists",-1,80,10,0,ancho); + ordenador.current_tap[0]=0; + wait_key(); + break; + case -2: + print_string(videomem,"Can't create file",-1,80,10,0,ancho); + ordenador.current_tap[0]=0; + wait_key(); + break; + } + clean_screen(); +} + +// shows the microdrive menu + +void microdrive_menu() { + + unsigned char *fbuffer,fin; + int retval,ancho=screen->w; + + fbuffer=screen->pixels; + + fin=1; + do { + clean_screen(); + + print_string(fbuffer,"MICRODRIVE files",-1,10,15,0,ancho); + + print_string(fbuffer,"1:",14,50,12,0,ancho); + print_string(fbuffer,"select a MDR file",62,50,15,0,ancho); + + print_string(fbuffer,"2:",14,90,12,0,ancho); + print_string(fbuffer,"create a MDR file",62,90,15,0,ancho); + + print_string(fbuffer,"3:",14,130,12,0,ancho); + print_string(fbuffer,"write protection",62,130,15,0,ancho); + + print_string(fbuffer,"ESC:",14,170,12,0,ancho); + print_string(fbuffer,"return emulator",78,170,15,0,ancho); + + print_string(fbuffer,"Current MDR file is:",-1,300,12,0,ancho); + print_string(fbuffer,ordenador.mdr_current_mdr,-1,320,12,0,ancho); + + print_copy(fbuffer,ancho); + + if(!ordenador.mdr_cartridge[137922]) + print_string(fbuffer,"Write enabled",-1,420,14,0,ancho); + else + print_string(fbuffer,"Write disabled",-1,420,14,0,ancho); + + switch(wait_key()) { + case SDLK_ESCAPE: // to exit the help + fin=0; + break; + + case SDLK_1: + select_mdrfile(); + break; + case SDLK_2: + create_mdrfile(); + break; + case SDLK_3: + if(ordenador.mdr_cartridge[137922]) + ordenador.mdr_cartridge[137922]=0; + else + ordenador.mdr_cartridge[137922]=1; + ordenador.mdr_file=fopen(ordenador.mdr_current_mdr,"wb"); // create for write + if(ordenador.mdr_file!=NULL) { + retval=fwrite(ordenador.mdr_cartridge,137923,1,ordenador.mdr_file); // save cartridge + fclose(ordenador.mdr_file); + ordenador.mdr_file=NULL; + ordenador.mdr_modified=0; + } + break; + default: + break; + } + + } while(fin); + + clean_screen(); +} + +// shows a menu to allow user to choose a microdrive file + +void select_mdrfile() { + + unsigned char *videomem,*filename; + int ancho,retorno,retval; + // unsigned char char_id[11]; + + videomem=screen->pixels; + ancho=screen->w; + + clean_screen(); + + print_string(videomem,"Choose the MICRODRIVE file to load",-1,32,13,0,ancho); + + filename=select_file(path_mdrs,FILETYPE_MDR); // MDR files + + if(filename==NULL) { // Aborted + clean_screen(); + return; + } + + ordenador.mdr_file=fopen(filename,"rb"); // read + if(ordenador.mdr_file==NULL) + retorno=-1; + else { + retorno=0; + retval=fread(ordenador.mdr_cartridge,137923,1,ordenador.mdr_file); // read the cartridge in memory + ordenador.mdr_modified=0; // not modified + fclose(ordenador.mdr_file); + ordenador.mdr_tapehead=0; + } + + clean_screen(); + + strcpy(ordenador.mdr_current_mdr,filename); + + free(filename); + + switch(retorno) { + case 0: // all right + break; + case -1: + print_string(videomem,"Error: Can't load that file",-1,232,10,0,ancho); + print_string(videomem,"Press any key",-1,248,10,0,ancho); + ordenador.mdr_current_mdr[0]=0; + wait_key(); + break; + } + + clean_screen(); +} + +void create_mdrfile() { + + unsigned char *videomem; + int ancho,retorno,bucle,retval; + unsigned char nombre2[1024]; + + videomem=screen->pixels; + ancho=screen->w; + + clean_screen(); + + print_string(videomem,"Choose a name for the MDR file",-1,32,14,0,ancho); + print_string(videomem,"(up to 30 characters)",-1,52,14,0,ancho); + + print_string(videomem,"MDR file will be saved in:",-1,132,12,0,ancho); + print_string(videomem,path_mdrs,0,152,12,0,ancho); + + retorno=ask_filename(nombre2,84,"mdr"); + + clean_screen(); + + if(retorno==2) // abort + return; + + ordenador.mdr_file=fopen(nombre2,"r"); // test if it exists + if(ordenador.mdr_file==NULL) + retorno=0; + else + retorno=-1; + + if(!retorno) { + ordenador.mdr_file=fopen(nombre2,"wb"); // create for write + if(ordenador.mdr_file==NULL) + retorno=-2; + else { + for(bucle=0;bucle<137921;bucle++) + ordenador.mdr_cartridge[bucle]=0xFF; // erase cartridge + ordenador.mdr_cartridge[137922]=0; + retval=fwrite(ordenador.mdr_cartridge,137923,1,ordenador.mdr_file); // save cartridge + fclose(ordenador.mdr_file); + ordenador.mdr_file=NULL; + ordenador.mdr_modified=0; + retorno=0; + } + } + strcpy(ordenador.mdr_current_mdr,nombre2); + switch(retorno) { + case 0: + break; + case -1: + print_string(videomem,"File already exists",-1,80,10,0,ancho); + ordenador.mdr_current_mdr[0]=0; + wait_key(); + break; + case -2: + print_string(videomem,"Can't create file",-1,80,10,0,ancho); + ordenador.mdr_current_mdr[0]=0; + wait_key(); + break; + } + clean_screen(); +} + + +void create_scrfile() { + + unsigned char *videomem; + int ancho,retorno,retval; + unsigned char nombre2[1024]; + FILE *fichero; + + videomem=screen->pixels; + ancho=screen->w; + + clean_screen(); + + print_string(videomem,"Choose a name for the SCR file",-1,32,14,0,ancho); + print_string(videomem,"(up to 30 characters)",-1,52,14,0,ancho); + + print_string(videomem,"SCR file will be saved in:",-1,132,12,0,ancho); + print_string(videomem,path_mdrs,0,152,12,0,ancho); + + retorno=ask_filename(nombre2,84,"scr"); + + clean_screen(); + + if(retorno==2) // abort + return; + + fichero=fopen(nombre2,"r"); // test if it exists + if(fichero==NULL) + retorno=0; + else { + fclose(fichero); + retorno=-1; + } + + if(!retorno) { + fichero=fopen(nombre2,"wb"); // create for write + if(fichero==NULL) + retorno=-2; + else { + retval=fwrite(ordenador.block1+0x04000,6912,1,fichero); // save screen + if (ordenador.ulaplus!=0) { + retval=fwrite(ordenador.ulaplus_palete,64,1,fichero); // save ULAPlus palete + } + fclose(fichero); + retorno=0; + } + } + + switch(retorno) { + case -1: + print_string(videomem,"File already exists",-1,80,10,0,ancho); + wait_key(); + break; + case -2: + print_string(videomem,"Can't create file",-1,80,10,0,ancho); + wait_key(); + break; + default: + break; + } + clean_screen(); +} + + +int ask_filename(char *nombre_final,int y_coord,char *extension) { + + int longitud,retorno; + unsigned char nombre[37],nombre2[38]; + + unsigned char *videomem; + int ancho; + + videomem=screen->pixels; + ancho=screen->w; + + nombre[0]=127; + nombre[1]=0; + longitud=0; + retorno=0; + + do { + sprintf (nombre2, " %s.%s ", nombre,extension); + print_string (videomem, nombre2, -1, y_coord, 15, 0, ancho); + switch (wait_key ()) { + case SDLK_BACKSPACE: + if (longitud > 0) { + nombre[longitud]=0; + longitud--; + nombre[longitud]=127; + } + break; + case SDLK_ESCAPE: + retorno=2; + break; + case SDLK_RETURN: + retorno=1; + break; + case SDLK_a: + if (longitud < 30) { + nombre[longitud++]='a'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_b: + if (longitud < 30) { + nombre[longitud++]='b'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_c: + if (longitud < 30) { + nombre[longitud++]='c'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_d: + if (longitud < 30) { + nombre[longitud++]='d'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_e: + if (longitud < 30) { + nombre[longitud++]='e'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_f: + if (longitud < 30) { + nombre[longitud++]='f'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_g: + if (longitud < 30) { + nombre[longitud++]='g'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_h: + if (longitud < 30) { + nombre[longitud++]='h'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_i: + if (longitud < 30) { + nombre[longitud++]='i'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_j: + if (longitud < 30) { + nombre[longitud++]='j'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_k: + if (longitud < 30) { + nombre[longitud++]='k'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_l: + if (longitud < 30) { + nombre[longitud++]='l'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_m: + if (longitud < 30) { + nombre[longitud++]='m'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_n: + if (longitud < 30) { + nombre[longitud++]='n'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_o: + if (longitud < 30) { + nombre[longitud++]='o'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_p: + if (longitud < 30) { + nombre[longitud++]='p'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_q: + if (longitud < 30) { + nombre[longitud++]='q'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_r: + if (longitud < 30) { + nombre[longitud++]='r'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_s: + if (longitud < 30) { + nombre[longitud++]='s'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_t: + if (longitud < 30) { + nombre[longitud++]='t'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_u: + if (longitud < 30) { + nombre[longitud++]='u'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_v: + if (longitud < 30) { + nombre[longitud++]='v'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_w: + if (longitud < 30) { + nombre[longitud++]='w'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_x: + if (longitud < 30) { + nombre[longitud++]='x'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_y: + if (longitud < 30) { + nombre[longitud++]='y'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_z: + if (longitud < 30) { + nombre[longitud++]='z'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_0: + if (longitud < 30) { + nombre[longitud++]='0'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_1: + if (longitud < 30) { + nombre[longitud++]='1'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_2: + if (longitud < 30) { + nombre[longitud++]='2'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_3: + if (longitud < 30) { + nombre[longitud++]='3'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_4: + if (longitud < 30) { + nombre[longitud++]='4'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_5: + if (longitud < 30) { + nombre[longitud++]='5'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_6: + if (longitud < 30) { + nombre[longitud++]='6'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_7: + if (longitud < 30) { + nombre[longitud++]='7'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_8: + if (longitud < 30) { + nombre[longitud++]='8'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_9: + if (longitud < 30) { + nombre[longitud++]='9'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + case SDLK_MINUS: + if (longitud < 30) { + nombre[longitud++]='-'; + nombre[longitud]=127; + nombre[longitud + 1]=0; + } + break; + } + } while (!retorno); + + nombre[longitud]=0; // erase cursor + + longitud=strlen(path_snaps); + if((path_snaps[longitud-1]!='/')&&(longitud>1)) + sprintf(nombre_final,"%s/%s.%s",path_snaps,nombre,extension); // name + else + sprintf(nombre_final,"%s%s.%s",path_snaps,nombre,extension); + + return (retorno); +} + + + + +int ask_value(int *final_value,int y_coord,int max_value) { + + unsigned char nombre2[50]; + unsigned char *videomem; + int ancho,value,tmp,retorno; + + videomem=screen->pixels; + ancho=screen->w; + + retorno=0; + value=0; + do { + sprintf (nombre2, " %d\177 ", value); + print_string (videomem, nombre2, -1, y_coord, 15, 0, ancho); + switch (wait_key ()) { + case SDLK_BACKSPACE: + value/=10; + break; + case SDLK_ESCAPE: + retorno=2; + break; + case SDLK_RETURN: + retorno=1; + break; + case SDLK_0: + tmp=value * 10; + if (tmp <= max_value) { + value=tmp; + } + break; + case SDLK_1: + tmp=1+value * 10; + if (tmp <= max_value) { + value=tmp; + } + break; + case SDLK_2: + tmp=2+value * 10; + if (tmp <= max_value) { + value=tmp; + } + break; + case SDLK_3: + tmp=3+value * 10; + if (tmp <= max_value) { + value=tmp; + } + break; + case SDLK_4: + tmp=4+value * 10; + if (tmp <= max_value) { + value=tmp; + } + break; + case SDLK_5: + tmp=5+value * 10; + if (tmp <= max_value) { + value=tmp; + } + break; + case SDLK_6: + tmp=6+value * 10; + if (tmp <= max_value) { + value=tmp; + } + break; + case SDLK_7: + tmp=7+value * 10; + if (tmp <= max_value) { + value=tmp; + } + break; + case SDLK_8: + tmp=8+value * 10; + if (tmp <= max_value) { + value=tmp; + } + break; + case SDLK_9: + tmp=9+value * 10; + if (tmp <= max_value) { + value=tmp; + } + break; + } + } while (!retorno); + + *final_value=value; + + return (retorno); +} + + + + +// shows a menu to allow user to save a snapshot file + +void save_z80file() { + + unsigned char *videomem; + int ancho,retorno; + unsigned char nombre2[1024]; + + videomem=screen->pixels; + ancho=screen->w; + + clean_screen(); + + print_string(videomem,"Choose a name for the Z80 snapshot",-1,32,14,0,ancho); + print_string(videomem,"(up to 30 characters)",-1,52,14,0,ancho); + + print_string(videomem,"Snapshot will be saved in:",-1,132,12,0,ancho); + print_string(videomem,path_snaps,0,152,12,0,ancho); + + + retorno=ask_filename(nombre2,84,"z80"); + + clean_screen(); + + if(retorno==2) // abort + return; + + retorno=save_z80(nombre2); + switch(retorno) { + case 0: + break; + case -1: + print_string(videomem,"File already exists",-1,80,10,0,ancho); + wait_key(); + break; + case -2: + print_string(videomem,"Can't create file",-1,80,10,0,ancho); + wait_key(); + break; + } + clean_screen(); +} + +// shows a menu to allow user to load a snapshot file + +void load_z80file() { + + + unsigned char *videomem,*filename; + int ancho,retorno; + + videomem=screen->pixels; + ancho=screen->w; + + clean_screen(); + + print_string(videomem,"Choose the Z80 snapshot file to load",-1,32,13,0,ancho); + + filename=select_file(path_snaps,FILETYPE_Z80); + + if(filename==NULL) { // Aborted + clean_screen(); + return; + } + + retorno=load_z80(filename); + free(filename); + clean_screen(); + + switch(retorno) { + case 0: // all right + break; + case -1: + print_string(videomem,"Error: Can't load that file",-1,232,10,0,ancho); + print_string(videomem,"Press any key",-1,248,10,0,ancho); + wait_key(); + break; + case -2: + case -3: + print_string(videomem,"Error: unsuported snap file",-1,232,10,0,ancho); + print_string(videomem,"Press any key",-1,248,10,0,ancho); + wait_key(); + break; + } + clean_screen(); +} + + +void load_scrfile() { + + + unsigned char *videomem,*filename,value; + int ancho,retorno,loop; + FILE *fichero; + unsigned char paleta_tmp[64]; + + videomem=screen->pixels; + ancho=screen->w; + + clean_screen(); + + print_string(videomem,"Choose the SCR snapshot file to load",-1,32,13,0,ancho); + + filename=select_file(path_snaps,FILETYPE_SCR); + + if(filename==NULL) { // Aborted + clean_screen(); + return; + } + + ordenador.osd_text[0]=0; + fichero=fopen(filename,"rb"); + retorno=0; + if (!fichero) { + retorno=-1; + } else { + for(loop=0;loop<6912;loop++) { + if (1==fread(&value,1,1,fichero)) { + *(ordenador.block1 + 0x04000 + loop) = value; + } else { + retorno=-1; + break; + } + } + if (1==fread(paleta_tmp,64,1,fichero)) { + memcpy(ordenador.ulaplus_palete,paleta_tmp,64); + ordenador.ulaplus=1; + } else { + ordenador.ulaplus=0; + } + fclose(fichero); + } + + free(filename); + clean_screen(); + + switch(retorno) { + case 0: // all right + break; + default: + print_string(videomem,"Error: Can't load that file",-1,232,10,0,ancho); + print_string(videomem,"Press any key",-1,248,10,0,ancho); + wait_key(); + break; + } + clean_screen(); +} + + + +/* fills a FICHERO chained list with all the files and directories contained in PATH. + If KIND is 0, it returns only Snapshots, if is 1, it returns only TAPE files, and + if is 2, it returns only MDR files */ + +struct fichero *read_directory(char *cpath,enum LOAD_FILE_TYPES kind) { + + struct fichero *listhead,*listend; + struct dirent *entry; + DIR *directory; + struct stat estado; + unsigned char path[2049],fichero[2049],extension[5],found; + int bucle,length; + + strcpy(path,cpath); + if('/'!=path[strlen(path)-1]) + strcat(path,"/"); // add the final / to the path + + listhead=malloc(sizeof(struct fichero)); + strcpy(listhead->nombre,".."); + listhead->tipo=2; + listhead->next=NULL; + listend=listhead; + + directory=opendir(path); + if(directory==NULL) + return(listhead); // can't access the directory + + do { + entry=readdir(directory); + if((NULL!=entry)&&(strcmp(entry->d_name,"."))&&(strcmp(entry->d_name,".."))) { + strcpy(fichero,path); + strcat(fichero,entry->d_name); + stat(fichero,&estado); + found=0; // by default is not a valid file... + length=strlen(entry->d_name); + if(length>3) { + extension[4]=0; + for(bucle=0;bucle<4;bucle++) + extension[bucle]=entry->d_name[length-4+bucle]; // copy the 4 last chars of the file (the extension) + switch(kind) { + case FILETYPE_Z80: + if((!strcasecmp(extension,".z80"))||(!strcasecmp(extension,".sna"))) + found=1; // is a .z80 or SNA file + break; + case FILETYPE_TAP_TZX: + if((!strcasecmp(extension,".tap"))||(!strcasecmp(extension,".tzx"))) + found=1; // is a .tap file + break; + case FILETYPE_MDR: + if(!strcasecmp(extension,".mdr")) + found=1; // is a .mdr file + break; + case FILETYPE_SCR: + if(!strcasecmp(extension,".scr")) + found=1; // is a .mdr file + break; + default: + break; + } + } else + found=0; + if(((found)||(S_ISDIR(estado.st_mode)))&&('.'!=entry->d_name[0])) { // is a directory. We must add it + listend->next=malloc(sizeof(struct fichero)); + listend=listend->next; + listend->next=NULL; + strcpy(listend->nombrepath,fichero); + strcpy(listend->nombre,entry->d_name); + if(S_ISDIR(estado.st_mode)) + listend->tipo=1; // a directory + else + listend->tipo=0; // a file + } + } + } while(entry!=NULL); + closedir(directory); + return(listhead); +} + +// deletes a filelist tree, freeing the memory used by it + +void delete_filelist(struct fichero *filelist) { + + struct fichero *fl1,*fl2; + + fl1=fl2=filelist; + + while(fl1!=NULL) { + fl2=fl1->next; + free(fl1); + fl1=fl2; + } +} + + +/* allows user to choose a file from PATH. If KIND=0, only snapshots. If KIND=1, only + TAPE files */ + +char *select_file(char *path,enum LOAD_FILE_TYPES kind) { + + struct fichero *filelist,*fl2; + unsigned char fin,read,*salida; + int bucle,ancho,numitems,selected,from,longitud; + + salida=(unsigned char *)malloc(2049); + salida[0]=0; + + ancho=screen->w; + + fin=1; + read=1; + selected=0; + from=0; + numitems=0; + + filelist=NULL; + + do { + + if(read) { + filelist=read_directory(path,kind); + read=0; + + fl2=filelist; + numitems=0; + while(fl2!=NULL) { // counts the number of items + fl2=fl2->next; + numitems++; + } + selected=0; + from=0; + } + + print_files(filelist,from,selected); + + switch(wait_key()) { + case SDLK_ESCAPE: // to exit the help + fin=0; + break; + case SDLK_UP: + if(selected>0) { + selected--; + if(selected(from+23)) // 23 is the total of items that can be displayed + from++; + } + break; + case SDLK_PAGEUP: + for(bucle=0;bucle<15;bucle++) + if(selected>0) { + selected--; + if(selected(from+23)) // 23 is the total of items that can be displayed + from++; + } + break; + case SDLK_RETURN: + fl2=filelist; + if(selected!=0) + for(bucle=0;buclenext; + switch(fl2->tipo) { + case 0: // select file + strcpy(salida,fl2->nombrepath); + delete_filelist(filelist); + return(salida); // ends returning the filename + break; + case 1: // change directory + strcpy(path,fl2->nombrepath); // new path_taps is namepath + delete_filelist(filelist); // frees the memory + read=1; // and redisplay all the files + break; + case 2: // upper directory + longitud=strlen(path); + if(longitud<2) // there's no upper directory + break; + if('/'==path[longitud-1]) { // is the char ended in '/' ? + path[longitud-1]=0; // eliminated + longitud--; + } + while('/'!=path[longitud-1]) { + longitud--; + path[longitud]=0; + } + if(longitud>2) { // it's not the upper directory + longitud--; + path[longitud]=0; // delete the final '/' + } + read=1; + break; + default: + break; + } + break; + default: + break; + } + } while(fin); + + delete_filelist(filelist); + return(NULL); + +} + +void keyboard_menu() { + + FILE *fichero; + int bucle1,bucle2,retval; + unsigned char *buffer,*buffer2,valor; + + buffer=screen->pixels; + + clean_screen(); + fichero=myfopen("fbzx/keymap.bmp","r"); + if (fichero==NULL) { + strcpy(ordenador.osd_text,"Keymap picture not found"); + ordenador.osd_time=100; + return; + } + if (ordenador.zaurus_mini==0) { + for (bucle1=0;bucle1<344;bucle1++) + for(bucle2=0;bucle2<640;bucle2++) { + retval=fscanf(fichero,"%c",&valor); + paint_one_pixel(colors+valor,buffer); + buffer+=ordenador.bpp; + } + } else { + buffer+=(479*ordenador.bpp); + for(bucle1=0;bucle1<344;bucle1++) { + buffer2=buffer; + for(bucle2=0;bucle2<640;bucle2++) { + retval=fscanf(fichero,"%c",&valor); + paint_one_pixel(colors+valor,buffer); + buffer+=(480*ordenador.bpp); + } + buffer=buffer2-ordenador.bpp; + } + } + print_copy(screen->pixels,screen->w); + wait_key(); + clean_screen(); +} + + + +void clean_screen() { + + int bucle; + unsigned char *buffer; + + buffer=screen->pixels; + + for(bucle=0;bucle<((screen->h)*(screen->w)*(ordenador.bpp));bucle++) + *(buffer++)=0; + +} + +// waits for a keystroke and returns its value + +unsigned int wait_key() { + + char fin; + unsigned int temporal_io=0; + SDL_Event evento; + + fin=1; + + do { + SDL_Flip(ordenador.screen); + if(!SDL_WaitEvent(&evento)) + continue; + + if(evento.type!=SDL_KEYUP) + continue; + + fin=0; + + temporal_io=(unsigned int)evento.key.keysym.sym; + } while(fin); + + return (temporal_io); +} + +// shows the files from the number FROM, and marks the file number MARK + +void print_files(struct fichero *filelist,int from,int mark) { + + struct fichero *fl2; + int bucle,numitems,ancho,pos; + char ink1,ink2; + unsigned char spaces[39]=" "; + unsigned char namefile[2089]; + unsigned char *videomem; + + videomem=screen->pixels; + ancho=screen->w; + + fl2=filelist; + numitems=0; + + while(fl2!=NULL) { // counts the number of items + fl2=fl2->next; + numitems++; + } + + ink1=ink2=0; + + fl2=filelist; + pos=72; + for(bucle=0;bucle=from) { + strcpy(namefile,fl2->nombre); + strcat(namefile,spaces); + namefile[36]=0; // we print up to 36 chars + switch(fl2->tipo) { + case 0: // file + ink1=15; + ink2=0; + break; + case 1: // directory + ink1=12; + ink2=4; + break; + case 2: // parent directory + ink1=10; + ink2=2; + break; + } + if(bucle==mark) + print_string(videomem,namefile,-1,pos,ink2,15,ancho); + else + print_string(videomem,namefile,-1,pos,ink1,0,ancho); + pos+=16; + } + if((pos+16)>460) + break; // reached bottom part of the rectangle + fl2=fl2->next; + } + while((pos+16<460)) { + print_string(videomem,spaces,-1,pos,0,0,ancho); + pos+=16; + } +} diff --git a/src/menus.h b/src/menus.h new file mode 100644 index 0000000..99c4d31 --- /dev/null +++ b/src/menus.h @@ -0,0 +1,53 @@ +/* + * Copyright 2003-2011 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +struct fichero { + char nombre[256]; // filename (for files and directories) + char nombrepath[2049]; // filename with path + int tipo; // file type (0=file, 1=directory, 2=parent directory) + struct fichero *next; +}; + +enum LOAD_FILE_TYPES {FILETYPE_Z80, FILETYPE_TAP_TZX, FILETYPE_MDR, FILETYPE_SCR}; + +void clean_screen(); +void help_menu(); +void load_z80file(); +char *select_file(char *,enum LOAD_FILE_TYPES); +struct fichero *read_directory(char *,enum LOAD_FILE_TYPES); +unsigned int wait_key(); +void print_files(struct fichero *,int,int); +void delete_filelist(struct fichero *); +void select_tapfile(); +void save_z80file(); +void settings_menu(); +void snapshots_menu(); +void taps_menu(); +void create_tapfile(); +void select_mdrfile(); +void create_mdrfile(); +void microdrive_menu(); +void keyboard_menu(); +void load_scrfile(); +int ask_filename(char *nombre,int y_coord,char *extension); +void create_scrfile(); +void do_poke(); +int ask_value(int *final_value,int y_coord,int max_value); +void tools_menu(); +int launch_menu(unsigned int key_pressed); diff --git a/src/microdrive.c b/src/microdrive.c new file mode 100644 index 0000000..f999691 --- /dev/null +++ b/src/microdrive.c @@ -0,0 +1,176 @@ +/* + * Copyright 2003-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "microdrive.h" +#include "computer.h" +#include "emulator.h" + +byte basura; + +void microdrive_init() { + + int bucle; + + basura = 0; + + ordenador.mdr_active = 0; + ordenador.mdr_paged = 0; + + for(bucle=0;bucle<137922;bucle++) + ordenador.mdr_cartridge[bucle]=0xFF; // cartridge erased + ordenador.mdr_cartridge[137922]=0; // but not write-protected + + ordenador.mdr_tapehead=0; + ordenador.mdr_drive=0; // no motor on + ordenador.mdr_old_STATUS=0x00; // default -> no down edge + ordenador.mdr_modified=0; // not modified + ordenador.mdr_current_mdr[0]=0; // no cartridge + +} + +void microdrive_reset() { + + ordenador.mdr_gap = 15; + ordenador.mdr_nogap = 15; + ordenador.mdr_tapehead = 0; // head is at start position + +} + +void microdrive_emulate(int tstados) { + // still nothing to do here + +} + +byte microdrive_in(word Port) { + + byte retorno; + + /* allow access to the port only if motor 1 is ON and there's a file open */ + + if(((Port|0xFFE7)==0xFFE7)&&(ordenador.mdr_drive==0x01)&&(ordenador.mdr_current_mdr[0])) { + if(ordenador.mdr_bytes11)&&(ordenador.mdr_bytes<(ordenador.mdr_maxbytes+12))) { + ordenador.mdr_cartridge[ordenador.mdr_tapehead]=(unsigned int) Value; + increment_head(); + ordenador.mdr_modified=1; + } + ordenador.mdr_bytes++; + return; + } + + if((Port|0xFFE7)==0xFFEF) { + if(((Value&0x02)==0)&&((ordenador.mdr_old_STATUS&0x02)==2)) { // edge down-> new bit for motor ON + ordenador.mdr_drive=((ordenador.mdr_drive<<1)&0xFE); // rotate one drive + if(!(Value&0x01)) // if COM DATA is 0, we add a 1 bit to mdr_drive + ordenador.mdr_drive|=0x01; + + if(ordenador.mdr_modified) { // if the cartridge has been modified, we store it in hard disk + ordenador.mdr_file=fopen(ordenador.mdr_current_mdr,"wb"); // create for write + if(ordenador.mdr_file==NULL) { + sprintf(ordenador.osd_text,"Can't store the cartridge"); + ordenador.osd_time=150; + } else { + retval=fwrite(ordenador.mdr_cartridge,137923,1,ordenador.mdr_file); // save cartridge + fclose(ordenador.mdr_file); + ordenador.mdr_file=NULL; + ordenador.mdr_modified=0; + } + } + } + ordenador.mdr_old_STATUS=Value; + microdrive_restart(); + return; + } + + if ((Port|0xFFE7)==0xFFF7) { + microdrive_restart(); + return; + } +} + +void increment_head() { // gets the tape head to the next byte + + ordenador.mdr_tapehead++; + if(ordenador.mdr_tapehead>137921) + ordenador.mdr_tapehead=0; +} + +void microdrive_restart() { // there's an access to a port. Reset counters and relocate the head + + //printf("Inicializado\n"); + + while(((ordenador.mdr_tapehead%543)!=0)&&((ordenador.mdr_tapehead%543)!=15)) + increment_head(); // put head in the start of a block + + ordenador.mdr_bytes = 0; // reset current number of bytes written + if((ordenador.mdr_tapehead%543)==0) + ordenador.mdr_maxbytes = 15; // up to 15 bytes for header blocks + else + ordenador.mdr_maxbytes = 528; // up to 528 bytes for data blocks + +} diff --git a/src/microdrive.h b/src/microdrive.h new file mode 100644 index 0000000..ac7bf04 --- /dev/null +++ b/src/microdrive.h @@ -0,0 +1,33 @@ +/* + * Copyright 2003-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#ifndef H_MICRODRIVE +#define H_MICRODRIVE + +#include "z80free/Z80free.h" + +void microdrive_init(); +void microdrive_reset(); +byte microdrive_in(word); +void microdrive_out(word,byte); +void microdrive_emulate(int); +void increment_head(); +void microdrive_restart(); + +#endif diff --git a/src/sound.c b/src/sound.c new file mode 100644 index 0000000..f49a3de --- /dev/null +++ b/src/sound.c @@ -0,0 +1,476 @@ +/* + * Copyright 2003-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "z80free/Z80free.h" +#include "computer.h" +#include "emulator.h" +#include +#include +#include + +char tabla[1024]; + +#include +#ifndef GEKKO +#include +#endif + +#ifdef DEBUG +extern FILE *fdebug; +#define printf(...) fprintf(fdebug,__VA_ARGS__); fflush (fdebug) +#endif + +/*#include +#include "SDL/SDL_audio.h" +#include "SDL_thread.h"*/ + +#include "sound.h" + +#ifdef D_SOUND_OSS +#include +int audio_fd; +#endif + +#ifdef D_SOUND_ALSA +#define ALSA_PCM_NEW_HW_PARAMS_API +#define ALSA_PCM_NEW_SW_PARAMS_API +#include +int started_sound; +snd_pcm_t * _soundDevice; +#endif + +#ifdef D_SOUND_PULSE +#include +pa_simple *pulse_s; +#endif + +enum e_soundtype sound_type; + +int sound_init() { + + if (sound_type!=SOUND_AUTOMATIC) { + switch(sound_type) { + case SOUND_NO: // No sound; simulate 8bits mono + printf("No Sound\n"); + ordenador.sign=0; + ordenador.format=0; + ordenador.channels=1; + ordenador.channels = 1; + ordenador.freq=48000; + ordenador.buffer_len=4800; // will wait 1/10 second + return (0); + break; +#ifdef D_SOUND_PULSE + case SOUND_PULSEAUDIO: + printf("Trying PulseAudio\n"); + if(0==sound_init_pulse()) { + sound_type=SOUND_PULSEAUDIO; + return 0; + } else { + printf("Failed\n"); + return -1; + } + break; +#endif +#ifdef D_SOUND_ALSA + case SOUND_ALSA: + printf("Trying ALSA sound\n"); + if(0==sound_init_alsa()) { + sound_type=SOUND_ALSA; + return 0; + } else { + printf("Failed\n"); + return -1; + } + break; +#endif +#ifdef D_SOUND_OSS + case SOUND_OSS: + printf("Trying OSS sound\n"); + if(0==sound_init_oss()) { + sound_type=SOUND_OSS; + return 0; + } else { + printf("Failed\n"); + return -1; + } + break; +#endif + default: + break; + } + } +#ifdef D_SOUND_PULSE + printf("Trying PulseAudio\n"); + if(0==sound_init_pulse()) { + sound_type=SOUND_PULSEAUDIO; + return 0; + } +#endif + +#ifdef D_SOUND_ALSA + printf("Trying ALSA sound\n"); + if(0==sound_init_alsa()) { + sound_type=SOUND_ALSA; + return 0; + } +#endif + +#ifdef D_SOUND_OSS + printf("Trying OSS sound\n"); + if(0==sound_init_oss()) { + sound_type=SOUND_OSS; + return 0; + } +#endif + + return -1; +} + +#ifdef D_SOUND_PULSE +int sound_init_pulse() { + + pa_sample_spec ss; + pa_buffer_attr buf; + + ss.format = PA_SAMPLE_U8; + ss.channels = 1; + ss.rate = 48000; + + buf.maxlength=8192; + buf.tlength=4096; + buf.prebuf=4096; + buf.minreq=4096; + buf.fragsize=4096; + + pulse_s = pa_simple_new(NULL,"fbzx",PA_STREAM_PLAYBACK,NULL,"Spectrum",&ss,NULL,&buf,NULL); + if (pulse_s==NULL) { + return -1; + } + ordenador.sign=0; + ordenador.format=0; + ordenador.channels=1; + ordenador.freq=48000; + ordenador.buffer_len=4096; + + return 0; + +} +#endif + +#ifdef D_SOUND_ALSA +int sound_init_alsa() { + + int err; + snd_pcm_hw_params_t *hw_params; + + unsigned int resample,samplerate; + snd_pcm_uframes_t bufferSize; + + err = snd_pcm_open( &_soundDevice, "plughw:0,0", SND_PCM_STREAM_PLAYBACK, 0 ); + if (err<0) { + return -1; + } + + if ((err = snd_pcm_hw_params_malloc (&hw_params)) < 0) { + snd_pcm_close (_soundDevice); + return -2; + } + + if ((err = snd_pcm_hw_params_any (_soundDevice, hw_params)) < 0) { + snd_pcm_close (_soundDevice); + return -2; + } + + + if ((err = snd_pcm_hw_params_set_access (_soundDevice, hw_params,SND_PCM_ACCESS_RW_INTERLEAVED)) < 0) { + snd_pcm_close (_soundDevice); + return -3; + } + + if (snd_pcm_hw_params_set_format (_soundDevice, hw_params,SND_PCM_FORMAT_U8) >= 0) { + ordenador.sign=0; + ordenador.format=0; + } else if (snd_pcm_hw_params_set_format (_soundDevice, hw_params,SND_PCM_FORMAT_S8) >= 0) { + ordenador.sign=-128; + ordenador.format=0; + } else if (snd_pcm_hw_params_set_format (_soundDevice, hw_params,SND_PCM_FORMAT_U16_LE) >= 0) { + ordenador.sign=0; + ordenador.format=1; + } else if (snd_pcm_hw_params_set_format (_soundDevice, hw_params,SND_PCM_FORMAT_S16_LE) >= 0) { + ordenador.sign=-128; + ordenador.format=1; + } else if (snd_pcm_hw_params_set_format (_soundDevice, hw_params,SND_PCM_FORMAT_U16_BE) >= 0) { + ordenador.sign=0; + ordenador.format=2; + } else if (snd_pcm_hw_params_set_format (_soundDevice, hw_params,SND_PCM_FORMAT_S16_BE) >= 0) { + ordenador.sign=-128; + ordenador.format=2; + } else { + snd_pcm_close (_soundDevice); + return -3; + } + + // Disable resampling. + resample = 0; + err = snd_pcm_hw_params_set_rate_resample(_soundDevice, hw_params, resample); + if (err < 0) { + snd_pcm_close (_soundDevice); + return -3; + } + + if ((err = snd_pcm_hw_params_set_channels (_soundDevice, hw_params, 1)) >= 0) { + ordenador.channels=1; + } else if ((err = snd_pcm_hw_params_set_channels (_soundDevice, hw_params, 2)) >= 0) { + ordenador.channels=2; + } else { + snd_pcm_close (_soundDevice); + return -3; + } + + samplerate=48000; + if ((err = snd_pcm_hw_params_set_rate_near (_soundDevice, hw_params, &samplerate, 0)) < 0) { + snd_pcm_close (_soundDevice); + return -3; + } + + bufferSize=4096; + if (snd_pcm_hw_params_set_buffer_size_near(_soundDevice, hw_params, &bufferSize) < 0) { + fprintf(stderr, "Error setting buffersize.\n"); + return -3; + } + + ordenador.freq=samplerate; + + err = snd_pcm_hw_params (_soundDevice, hw_params); + if (err<0) { + return -3; + } + //snd_pcm_hw_params_get_buffer_size( hw_params, &bufferSize ); + + ordenador.buffer_len=bufferSize; + + started_sound=0; + return 0; + + err = snd_pcm_prepare (_soundDevice); + if (err<0) { + return -5; + } + return 0; +} +#endif + +#ifdef D_SOUND_OSS +int sound_init_oss() { + + int parameter; + int parameter2; + int bytes,stereo; + int retval; + audio_buf_info bi; + + audio_fd=open("/dev/dsp",O_WRONLY); // open DSP + if(audio_fd==-1) { + return (-1); + } + + ordenador.sign=0; + ordenador.format=0; + bytes=1; + ordenador.channels=1; + ordenador.freq=22050; + ordenador.buffer_len=2048/(ordenador.channels*bytes); + + parameter=0x0002000C ; // two buffers with 4096 bytes each one + + if(ioctl(audio_fd,SNDCTL_DSP_SETFRAGMENT, ¶meter)==-1) + return (-6); + + // set format + + if(ioctl(audio_fd,SNDCTL_DSP_GETFMTS, ¶meter2)==-1) + return (-2); + parameter = 2; // we want mono audio + if(ioctl(audio_fd,SNDCTL_DSP_CHANNELS, ¶meter)==-1) + return (-4); + + ordenador.channels = parameter; + + // Priority: U8, S8, U16LE, S16LE, U16BE, U16LE + + if(parameter2 & AFMT_S16_BE) { + parameter = AFMT_S16_BE; + } + if(parameter2 & AFMT_U16_BE){ + parameter = AFMT_U16_BE; + } + if(parameter2 & AFMT_S16_LE) { + parameter = AFMT_S16_LE; + } + if(parameter2 & AFMT_U16_LE) { + parameter = AFMT_U16_LE; + } + if(parameter2 & AFMT_S8) { + parameter = AFMT_S8; + } + if(parameter2 & AFMT_U8) { + parameter = AFMT_U8; + } + + bytes=0; //8 bits + stereo=0; // no stereo + + retval=ioctl(audio_fd,SNDCTL_DSP_SETFMT,¶meter); + if(retval != 0) { + return (-3); + } + + switch(parameter) { + case AFMT_U8: + ordenador.sign=0; + ordenador.format=0; + bytes=1; + break; + case AFMT_S8: + ordenador.sign=-128; + ordenador.format=0; + bytes=1; + break; + case AFMT_U16_LE: + ordenador.sign=0; + ordenador.format=1; + bytes=2; + break; + case AFMT_S16_LE: + ordenador.sign=-128; + ordenador.format=1; + bytes=2; + break; + case AFMT_U16_BE: + ordenador.sign=0; + ordenador.format=2; + bytes=2; + break; + case AFMT_S16_BE: + ordenador.sign=-128; + ordenador.format=2; + bytes=2; + break; + } + + parameter=48000; // we want, by default, 48000 samples per second + if(ioctl(audio_fd,SNDCTL_DSP_SPEED, ¶meter)==-1) + return (-5); + ordenador.freq=parameter; + + if(ioctl(audio_fd,SNDCTL_DSP_GETOSPACE, &bi)==-1) + return (-6); + + parameter=bi.bytes/4; + ordenador.buffer_len=parameter/(ordenador.channels*bytes); + return(0); + +} +#endif + + +void sound_remove_dc(unsigned char *sound_buffer,int size){ + static float oldsample=0.0; + static float origsample; + static int i; + + for (i=0;i. + * + */ + +#ifndef SOUND_H +#define SOUND_H + +enum e_soundtype {SOUND_NO, SOUND_OSS, SOUND_ALSA, SOUND_PULSEAUDIO, SOUND_AUTOMATIC}; + +extern enum e_soundtype sound_type; + +int sound_init(); +void sound_play(); +void sound_close(); + +extern volatile unsigned char *sdl_sound_buffer; + +int sound_init_oss(); +int sound_init_alsa(); +int sound_init_pulse(); + +void sdlcallback(void *userdata, Uint8 *stream, int len); + +#endif diff --git a/src/spk_ay.c b/src/spk_ay.c new file mode 100644 index 0000000..5a72372 --- /dev/null +++ b/src/spk_ay.c @@ -0,0 +1,337 @@ +/* + * Copyright 2003-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "emulator.h" +#include "sound.h" +#include + +/* emulates the AY-3-8912 during TSTADOS tstates */ + +inline void play_ay (unsigned int tstados) { + + if (!ordenador.ay_emul) + return; + + ordenador.tst_ay += tstados; + ordenador.tst_ay2 += tstados; + + if (ordenador.tst_ay2 > 255) { + ordenador.tst_ay2 -= 256; + if ((ordenador.ay_registers[11]) + || (ordenador.ay_registers[12])) { + if (ordenador.aych_envel) + ordenador.aych_envel--; + else { + ordenador.aych_envel = (((unsigned int) ordenador.ay_registers[11]) + 256 * ((unsigned int) (ordenador.ay_registers[12]))); + if (ordenador.ay_envel_way & 0x02) // start cycle? + switch ((ordenador. + ay_registers[13]) & 0x0F) + { + case 0: + case 1: + case 2: + case 3: + case 8: + case 9: + case 10: + case 11: + ordenador.ay_envel_way = 4; // cycle started and decrementing + ordenador.ay_envel_value = 16; + break; + default: + ordenador.ay_envel_way = 5; // cycle started and incrementing + ordenador.ay_envel_value = -1; + } + if (ordenador.ay_envel_way & 0x04) + { // cycle started? + switch ((ordenador. + ay_registers[13]) & 0x0F) + { + case 0: + case 1: + case 2: + case 3: + case 9: + ordenador.ay_envel_value--; + if (ordenador. + ay_envel_value == 0) + ordenador.ay_envel_way = 0; // end + break; + + case 4: + case 5: + case 6: + case 7: + case 15: + ordenador.ay_envel_value++; + if (ordenador. + ay_envel_value == 16) + { + ordenador. + ay_envel_value + = 0; + ordenador.ay_envel_way = 0; // end + } + break; + + case 8: + ordenador.ay_envel_value--; + if (ordenador.ay_envel_value == -1) + ordenador.ay_envel_value = 15; // repeat + break; + + case 10: + case 14: + if (ordenador.ay_envel_way & 0x01) + ordenador.ay_envel_value++; + else + ordenador.ay_envel_value--; + if (ordenador.ay_envel_value == 16) { + ordenador.ay_envel_value = 14; + ordenador.ay_envel_way =4; + } + if (ordenador.ay_envel_value == -1) { + ordenador.ay_envel_value = 1; + ordenador.ay_envel_way = 5; + } + break; + + case 11: + ordenador.ay_envel_value--; + if (ordenador.ay_envel_value == -1) { + ordenador.ay_envel_value = 15; + ordenador.ay_envel_way = 0; // end + } + break; + + case 12: + ordenador.ay_envel_value++; + if (ordenador.ay_envel_value == 16) + ordenador.ay_envel_value = 0; + break; + + case 13: + ordenador.ay_envel_value++; + if (ordenador.ay_envel_value == 15) + ordenador.ay_envel_way = 0; // end + break; + } + } + } + } + else + ordenador.ay_envel_value = 15; + } + + while (ordenador.tst_ay >= 16) + { + ordenador.tst_ay -= 16; + + if ((ordenador.ay_registers[0]) + || (ordenador.ay_registers[1])) + { + if (ordenador.aych_a) + ordenador.aych_a--; + else + { + ordenador.ayval_a = 1 - ordenador.ayval_a; + ordenador.aych_a = + (((unsigned int) ordenador. + ay_registers[0]) + + 256 * + ((unsigned + int) ((ordenador. + ay_registers[1]) & 0x0F))) / + 2; + } + } + else + ordenador.ayval_a = 0; + + if ((ordenador.ay_registers[2]) + || (ordenador.ay_registers[3])) + { + if (ordenador.aych_b) + ordenador.aych_b--; + else + { + ordenador.ayval_b = 1 - ordenador.ayval_b; + ordenador.aych_b = + (((unsigned int) ordenador. + ay_registers[2]) + + 256 * + ((unsigned + int) ((ordenador. + ay_registers[3]) & 0x0F))) / + 2; + } + } + else + ordenador.ayval_b = 0; + + if ((ordenador.ay_registers[4]) + || (ordenador.ay_registers[5])) + { + if (ordenador.aych_c) + ordenador.aych_c--; + else + { + ordenador.ayval_c = 1 - ordenador.ayval_c; + ordenador.aych_c = + (((unsigned int) ordenador. + ay_registers[4]) + + 256 * + ((unsigned + int) ((ordenador. + ay_registers[5]) & 0x0F))) / + 2; + } + } + else + ordenador.ayval_c = 0; + + if (ordenador.ay_registers[6]) + { + if (ordenador.aych_n) + ordenador.aych_n--; + else + { + ordenador.ayval_n = 1 - ordenador.ayval_n; + ordenador.aych_n = + ((((unsigned int) ordenador. + ay_registers[6]) & 0x1F) + + (rand () % 3)) / 2; + if (ordenador.aych_n > 16) + ordenador.aych_n = 16; + } + } + else + ordenador.ayval_n = 0; + + if (ordenador.ay_registers[8] & 0x10) + ordenador.vol_a = + (unsigned + char) ((((unsigned int) ordenador. + ay_envel_value)) * + (unsigned int) ordenador.volume) / 15; + else + ordenador.vol_a = + (unsigned + char) ((((unsigned int) (ordenador. + ay_registers[8] & + 0x0F)) * + (unsigned int) ordenador.volume) / + 15); + + if (ordenador.ay_registers[10] & 0x10) + ordenador.vol_c = + (unsigned + char) ((((unsigned int) ordenador. + ay_envel_value)) * + (unsigned int) ordenador.volume) / 15; + else + ordenador.vol_c = + (unsigned + char) ((((unsigned int) (ordenador. + ay_registers[10] & + 0x0F)) * + (unsigned int) ordenador.volume) / + 15); + + if (ordenador.ay_registers[9] & 0x10) + ordenador.vol_b = + (unsigned + char) ((((unsigned int) ordenador. + ay_envel_value)) * + (unsigned int) ordenador.volume) / 15; + else + ordenador.vol_b = + (unsigned + char) ((((unsigned int) (ordenador. + ay_registers[9] & + 0x0F)) * + (unsigned int) ordenador.volume) / + 15); + + } +} + + +/* Creates the sound buffer during the TSTADOS tstate that the Z80 used to + execute last instruction */ + +inline void play_sound (unsigned int tstados) { + + int bucle; + int value; + unsigned char sample_v; + + ordenador.tstados_counter_sound += tstados; + + while (ordenador.tstados_counter_sound >= ordenador.tst_sample) { + + ordenador.tstados_counter_sound -= ordenador.tst_sample; + if (sound_type!=1) + for (bucle = 0; bucle < ordenador.increment; bucle++) { + sample_v = ordenador.sample1b[bucle]; + if ((ordenador.sound_bit) && (sample_v)) { + ordenador.sound_current_value+=(ordenador.tst_sample/8); + if(ordenador.sound_current_value>ordenador.volume) + ordenador.sound_current_value = ordenador.volume; + } else { + if(ordenador.sound_current_value>=(ordenador.tst_sample/8)) + ordenador.sound_current_value-=((ordenador.tst_sample)/8); + else + ordenador.sound_current_value = 0; + } + value = ordenador.sound_current_value; + if (ordenador.ay_emul) { // if emulation is ON, emulate it + if ((ordenador.ayval_a) && (sample_v) + && (!(ordenador.ay_registers[7] & 0x01))) + value += (int) ordenador.vol_a; + if ((ordenador.ayval_b) && (sample_v) + && (!(ordenador.ay_registers[7] & 0x02))) + value += (int) ordenador.vol_b; + if ((ordenador.ayval_c) && (sample_v) + && (!(ordenador.ay_registers[7] & 0x04))) + value += (int) ordenador.vol_c; + if ((ordenador.ayval_n) && (sample_v) + && (!(ordenador.ay_registers[7] & 0x08))) + value += (int) ordenador.vol_a; + if ((ordenador.ayval_n) && (sample_v) + && (!(ordenador.ay_registers[7] & 0x10))) + value += (int) ordenador.vol_b; + if ((ordenador.ayval_n) && (sample_v) + && (!(ordenador.ay_registers[7] & 0x20))) + value += (int) ordenador.vol_c; + } + if (value > 255) + value = 255; + sample_v = (char)(value - (unsigned int)ordenador.sign); + *ordenador.current_buffer = 2*sample_v; + ordenador.current_buffer++; + } + ordenador.sound_cuantity++; + + if (ordenador.sound_cuantity == ordenador.buffer_len) { // buffer filled + sound_play(); + ordenador.sound_cuantity = 0; + } + } +} diff --git a/src/spk_ay.h b/src/spk_ay.h new file mode 100644 index 0000000..6db1ac0 --- /dev/null +++ b/src/spk_ay.h @@ -0,0 +1,26 @@ +/* + * Copyright 2003-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#ifndef H_SPK_AY +#define H_SPK_AY + +inline void play_ay (unsigned int); +inline void play_sound (unsigned int); + +#endif; diff --git a/src/tape.c b/src/tape.c new file mode 100644 index 0000000..69593cf --- /dev/null +++ b/src/tape.c @@ -0,0 +1,771 @@ +/* + * Copyright 2003-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "z80free/Z80free.h" +#include "computer.h" +#include "emulator.h" +#include "menus.h" +#include "tape.h" + +int elcontador=0; +int eltstado=0; +char elbit=0; + +/* reads a tape file and updates the readed bit */ + +inline void tape_read(FILE *fichero, int tstados) { + + if(ordenador.pause) + return; + + if(ordenador.tape_file_type == TAP_TAP) + tape_read_tap(fichero,tstados); + else + tape_read_tzx(fichero,tstados); + +} + +// manages TAP files in REAL_MODE + +inline void tape_read_tap (FILE * fichero, int tstados) { + + static unsigned char value, value2; + int retval; + + if (fichero == NULL) + return; + + if (!ordenador.pause) { + if (ordenador.tape_current_mode == TAP_TRASH) { // initialize a new block + retval=fread (&value, 1, 1, fichero); + retval=fread (&value2, 1, 1, fichero); // read block longitude + if (feof (fichero)) { + rewind_tape(fichero,1); + ordenador.tape_current_mode = TAP_TRASH; + return; + } + ordenador.tape_byte_counter = ((unsigned int) value) + 256 * ((unsigned int) value2); + retval=fread (&(ordenador.tape_byte), 1, 1, fichero); + ordenador.tape_bit = 0x80; + ordenador.tape_current_mode = TAP_GUIDE; + ordenador.tape_counter0 = 2168; + ordenador.tape_counter1 = 2168; + if (!(0x80 & ordenador.tape_byte)) + ordenador.tape_counter_rep = 3228; // 4 seconds + else + ordenador.tape_counter_rep = 1614; // 2 seconds + } + + // if there's a pulse still being reproduce, just reproduce it + + if (ordenador.tape_counter0) { + if (ordenador.tape_counter0 > tstados) { + ordenador.tape_readed = 0; // return 0 + ordenador.tape_counter0 -= tstados; // decrement counter; + return; + } else { + tstados -= ordenador.tape_counter0; + ordenador.tape_counter0 = 0; + } + } + + ordenador.tape_readed = 1; // return 1 + if (ordenador.tape_counter1) { + if (ordenador.tape_counter1 > tstados) { + ordenador.tape_counter1 -= tstados; // decrement counter; + return; + } else { + tstados -= ordenador.tape_counter1; + ordenador.tape_counter1 = 0; + ordenador.tape_readed = 0; // return 0 + } + } + + // pulse ended + + switch (ordenador.tape_current_mode) { + case TAP_GUIDE: // guide tone + if (ordenador.tape_counter_rep) { // still into guide tone + ordenador.tape_counter_rep--; + ordenador.tape_counter0 = 2168 - tstados; + ordenador.tape_counter1 = 2168; // new pulse + return; + } else { // guide tone ended. send sync tone + ordenador.tape_counter0 = 667 - tstados; + ordenador.tape_counter1 = 735; // new pulse + ordenador.tape_current_mode = TAP_DATA; // data mode + ordenador.tape_bit = 0x80; // from bit0 to bit7 + return; + } + break; + case TAP_DATA: // data + if (ordenador.tape_byte & ordenador.tape_bit) { // next bit is 1 + ordenador.tape_counter0 = 1710 - tstados; + ordenador.tape_counter1 = 1710; + } else { + ordenador.tape_counter0 = 851 - tstados; + ordenador.tape_counter1 = 852; + } + ordenador.tape_bit = ((ordenador.tape_bit >> 1) & 0x7F); // from bit0 to bit7 + if (!ordenador.tape_bit) { + ordenador.tape_byte_counter--; + if (!ordenador.tape_byte_counter) { // ended the block + ordenador.tape_current_mode = TAP_PAUSE; // pause + ordenador.tape_readed = 0; + ordenador.tape_counter_rep = 3500000; // 1 seconds + return; + } + ordenador.tape_bit = 0x80; + retval=fread (&(ordenador.tape_byte), 1, 1, fichero); // read next byte + if (feof (fichero)) { + rewind_tape(fichero,0); + ordenador.tape_current_mode = TAP_STOP; // stop tape + return; + } + } + break; + case TAP_PAUSE: // pause + ordenador.tape_readed = 0; + if (ordenador.tape_counter_rep > tstados) { + ordenador.tape_counter_rep -= tstados; + } else { + ordenador.tape_counter_rep = 0; + ordenador.tape_current_mode = TAP_TRASH; // read new block + } + return; + break; + case TAP_STOP: + ordenador.tape_current_mode = TAP_TRASH; // initialize + ordenador.pause = 1; // pause it + break; + default: + break; + } + } +} + +// manages TZX files + +inline void tape_read_tzx (FILE * fichero, int tstados) { + + static unsigned char value, value2,value3,value4,done; + static unsigned int bucle,bucle2; + int retval; + + if ((fichero == NULL)||(ordenador.pause)) + return; + + if (ordenador.tape_current_mode == TAP_TRASH) { // initialize a new block + done = 0; + do { + retval=fread(&value,1,1,fichero); // read block ID + //printf("ID: %X en %d\n",value,ftell(fichero)); + if(feof(fichero)) + done = 1; + else + switch(value) { + case 0x10: // classic tape block + done = 1; + bucle = 0; + ordenador.tape_current_bit = 0; + ordenador.tape_bit0_level = 852; + ordenador.tape_bit1_level = 1710; + ordenador.tape_bits_at_end = 8; + ordenador.tape_block_level = 2168; + ordenador.tape_sync_level0 = 667; + ordenador.tape_sync_level1 = 735; + + retval=fread(&value2,1,1,fichero); + retval=fread(&value3,1,1,fichero); // pause length + ordenador.tape_pause_at_end = ((unsigned int) value2) + 256 * ((unsigned int) value3); + if(ordenador.tape_pause_at_end==0) + ordenador.tape_pause_at_end=10; // to avoid problems + ordenador.tape_pause_at_end *= 3500; + retval=fread (&value, 1, 1, fichero); + + retval=fread (&value2, 1, 1, fichero); // read block longitude + if (feof (fichero)) { + rewind_tape(fichero,1); + ordenador.tape_current_bit = 0; + ordenador.tape_current_mode = TAP_TRASH; + for(bucle=0;bucle<10;bucle++) + retval=fread(&value3,1,1,fichero); // jump over the header + return; + } + ordenador.tape_byte_counter = ((unsigned int) value) + 256 * ((unsigned int) value2); + retval=fread (&(ordenador.tape_byte), 1, 1, fichero); + ordenador.tape_bit = 0x80; + ordenador.tape_current_mode = TAP_GUIDE; + ordenador.tape_counter0 = 2168; + ordenador.tape_counter1 = 2168; + if (!(0x80 & ordenador.tape_byte)) + ordenador.tape_counter_rep = 3228; // 4 seconds + else + ordenador.tape_counter_rep = 1614; // 2 seconds + break; + + case 0x11: // turbo tape block + done = 1; + bucle = 0; + + retval=fread(&value2,1,1,fichero); + retval=fread(&value3,1,1,fichero); + ordenador.tape_block_level = ((unsigned int) value2) + 256 * ((unsigned int) value3); + retval=fread(&value2,1,1,fichero); + retval=fread(&value3,1,1,fichero); + ordenador.tape_sync_level0 = ((unsigned int) value2) + 256 * ((unsigned int) value3); + retval=fread(&value2,1,1,fichero); + retval=fread(&value3,1,1,fichero); + ordenador.tape_sync_level1 = ((unsigned int) value2) + 256 * ((unsigned int) value3); + retval=fread(&value2,1,1,fichero); + retval=fread(&value3,1,1,fichero); + ordenador.tape_bit0_level = ((unsigned int) value2) + 256 * ((unsigned int) value3); + retval=fread(&value2,1,1,fichero); + retval=fread(&value3,1,1,fichero); + ordenador.tape_bit1_level = ((unsigned int) value2) + 256 * ((unsigned int) value3); + retval=fread(&value2,1,1,fichero); + retval=fread(&value3,1,1,fichero); + ordenador.tape_counter_rep = ((unsigned int) value2) + 256 * ((unsigned int) value3); + ordenador.tape_counter_rep /=2; + retval=fread(&value2,1,1,fichero); + ordenador.tape_bits_at_end = value2; + + retval=fread(&value2,1,1,fichero); + retval=fread(&value3,1,1,fichero); // pause length + ordenador.tape_pause_at_end = ((unsigned int) value2) + 256 * ((unsigned int) value3); + + + if(ordenador.tape_pause_at_end==0) + ordenador.tape_pause_at_end=10; // to avoid problems + ordenador.tape_pause_at_end *= 3500; + + retval=fread (&value, 1, 1, fichero); + retval=fread (&value2, 1, 1, fichero); + retval=fread (&value3, 1, 1, fichero); // read block longitude + ordenador.tape_byte_counter = ((unsigned int) value) + 256 * ((unsigned int) value2) + 65536* ((unsigned int) value3); + + if (feof (fichero)) { + rewind_tape(fichero,1); + ordenador.tape_current_bit = 0; + ordenador.tape_current_mode = TAP_TRASH; + return; + } + + retval=fread (&(ordenador.tape_byte), 1, 1, fichero); + ordenador.tape_bit = 0x80; + ordenador.tape_current_mode = TAP_GUIDE; + ordenador.tape_counter0 = ordenador.tape_block_level; + ordenador.tape_counter1 = ordenador.tape_block_level; + ordenador.tape_current_bit = 0; + break; + + case 0x12: // pure tone + done = 1; + retval=fread(&value2,1,1,fichero); + retval=fread(&value3,1,1,fichero); // length of pulse in T-states + ordenador.tape_block_level = ((unsigned int) value2) + 256 * ((unsigned int) value3); + ordenador.tape_counter0 = ordenador.tape_block_level; + ordenador.tape_counter1 = 0; + retval=fread(&value2,1,1,fichero); + retval=fread(&value3,1,1,fichero); // number of pulses + ordenador.tape_counter_rep = ((unsigned int) value2) + 256 * ((unsigned int) value3); + if(ordenador.tape_counter_rep == 0) + done = 0; + ordenador.tape_current_mode = TZX_PURE_TONE; + break; + + case 0x13: // multiple pulses + done=1; + retval=fread(&value2,1,1,fichero); // number of pulses + ordenador.tape_counter_rep = ((unsigned int) value2); + if(ordenador.tape_counter_rep == 0) + done = 0; + else { + retval=fread(&value2,1,1,fichero); + retval=fread(&value3,1,1,fichero); // length of pulse in T-states + ordenador.tape_counter0 = ((unsigned int) value2) + 256 * ((unsigned int) value3); + ordenador.tape_counter1 = 0; + ordenador.tape_current_mode = TZX_SEQ_PULSES; + } + break; + + case 0x14: // turbo tape block + done = 1; + bucle = 0; + ordenador.tape_current_bit = 0; + retval=fread(&value2,1,1,fichero); + retval=fread(&value3,1,1,fichero); + ordenador.tape_bit0_level = ((unsigned int) value2) + 256 * ((unsigned int) value3); + retval=fread(&value2,1,1,fichero); + retval=fread(&value3,1,1,fichero); + ordenador.tape_bit1_level = ((unsigned int) value2) + 256 * ((unsigned int) value3); + retval=fread(&value2,1,1,fichero); + ordenador.tape_bits_at_end = value2; + retval=fread(&value2,1,1,fichero); + retval=fread(&value3,1,1,fichero); // pause length + ordenador.tape_pause_at_end = ((unsigned int) value2) + 256 * ((unsigned int) value3); + /*if(ordenador.tape_pause_at_end==0) + ordenador.tape_pause_at_end=10;*/ // to avoid problems + ordenador.tape_pause_at_end *= 3500; + retval=fread (&value, 1, 1, fichero); + retval=fread (&value2, 1, 1, fichero); + retval=fread (&value3,1,1,fichero); // read block longitude + if (feof (fichero)) { + rewind_tape(fichero,1); + ordenador.tape_current_bit = 0; + ordenador.tape_current_mode = TAP_TRASH; + return; + } + ordenador.tape_byte_counter = ((unsigned int) value) + 256 * ((unsigned int) value2) + 65536*((unsigned int)value3); + ordenador.tape_bit = 0x80; + retval=fread (&(ordenador.tape_byte), 1, 1, fichero); // read next byte + if((ordenador.tape_byte_counter==1)&&(ordenador.tape_bits_at_end!=8)) { // last byte + for(bucle=ordenador.tape_bits_at_end;bucle<8;bucle++) { + ordenador.tape_byte=((ordenador.tape_byte>>1)&0x7F); + ordenador.tape_bit = ((ordenador.tape_bit>>1)&0x7F); + } + } + ordenador.tape_current_mode = TAP_DATA; + ordenador.tape_counter0 = 0; + ordenador.tape_counter1 = 0; + ordenador.tape_counter_rep = 0; + break; + + case 0x20: // pause + done = 1; + retval=fread(&value2,1,1,fichero); + retval=fread(&value3,1,1,fichero); // pause length + ordenador.tape_counter_rep = ((unsigned int) value2) + 256 * ((unsigned int) value3); + ordenador.tape_readed = 0; + ordenador.tape_counter0 = 0; + ordenador.tape_counter1 = 0; // 1ms of inversed pulse + if(ordenador.tape_counter_rep == 0) { + ordenador.tape_current_mode = TAP_PAUSE2; // initialize + ordenador.tape_byte_counter = 31500; + break; + } + ordenador.tape_counter_rep *= 3500; + ordenador.tape_current_mode = TAP_PAUSE; + break; + + case 0x21: // group start + retval=fread(&value2,1,1,fichero); + bucle2=(unsigned int) value2; + for(bucle=0;bucle tstados) { + ordenador.tape_readed = ordenador.tape_current_bit; // return current + ordenador.tape_counter0 -= tstados; // decrement counter; + return; + } else { + tstados -= ordenador.tape_counter0; + ordenador.tape_counter0 = 0; + } + } + + ordenador.tape_readed = 1 - ordenador.tape_current_bit; // return oposite current + if (ordenador.tape_counter1) { + if (ordenador.tape_counter1 > tstados) { + ordenador.tape_counter1 -= tstados; // decrement counter; + return; + } else { + tstados -= ordenador.tape_counter1; + ordenador.tape_counter1 = 0; + ordenador.tape_readed = ordenador.tape_current_bit; // return current + } + } + + // pulse ended + + switch (ordenador.tape_current_mode) { + case TAP_FINAL_BIT: + ordenador.tape_current_mode = TAP_TRASH; + break; + case TAP_GUIDE: // guide tone + if (ordenador.tape_counter_rep) { // still into guide tone + ordenador.tape_counter_rep--; + ordenador.tape_counter0 = ordenador.tape_block_level - tstados; + ordenador.tape_counter1 = ordenador.tape_block_level; // new pulse + return; + } else { // guide tone ended. send sync tone + ordenador.tape_counter0 = ordenador.tape_sync_level0 - tstados; + ordenador.tape_counter1 = ordenador.tape_sync_level0; // new pulse + ordenador.tape_current_mode = TAP_DATA; // data mode + ordenador.tape_bit = 0x80; // from bit0 to bit7 + if((ordenador.tape_byte_counter==1)&&(ordenador.tape_bits_at_end!=8)) { // last byte + for(bucle=ordenador.tape_bits_at_end;bucle<8;bucle++) { + ordenador.tape_byte=((ordenador.tape_byte>>1)&0x7F); + ordenador.tape_bit = ((ordenador.tape_bit>>1)&0x7F); + } + } + return; + } + break; + case TAP_DATA: // data + if (ordenador.tape_byte & ordenador.tape_bit) { // next bit is 1 + ordenador.tape_counter0 = ordenador.tape_bit1_level - tstados; + ordenador.tape_counter1 = ordenador.tape_bit1_level; + } else { + ordenador.tape_counter0 = ordenador.tape_bit0_level - tstados; + ordenador.tape_counter1 = ordenador.tape_bit0_level; + } + ordenador.tape_bit = ((ordenador.tape_bit >> 1) & 0x7F); // from bit0 to bit7 + if (!ordenador.tape_bit) { + ordenador.tape_byte_counter--; + if (!ordenador.tape_byte_counter) { // ended the block + if(ordenador.tape_pause_at_end) { + ordenador.tape_current_mode = TAP_PAUSE3; // pause + ordenador.tape_counter_rep = ordenador.tape_pause_at_end; + } else + ordenador.tape_current_mode = TAP_FINAL_BIT; + return; + } + ordenador.tape_bit = 0x80; + retval=fread (&(ordenador.tape_byte), 1, 1, fichero); // read next byte + if (feof (fichero)) { + rewind_tape (fichero,0); + ordenador.tape_current_bit = 0; + ordenador.tape_current_mode = TAP_STOP; // stop tape + return; + } + if((ordenador.tape_byte_counter==1)&&(ordenador.tape_bits_at_end!=8)) { // last byte + for(bucle=ordenador.tape_bits_at_end;bucle<8;bucle++) { + ordenador.tape_byte=((ordenador.tape_byte>>1)&0x7F); + ordenador.tape_bit = ((ordenador.tape_bit>>1)&0x7F); + } + } + } + break; + + case TAP_PAUSE3: // one pulse of 1 ms for ending the bit + ordenador.tape_counter0 = 3500; // 1 ms + ordenador.tape_counter1 = 0; + ordenador.tape_current_mode = TAP_PAUSE; + break; + + case TAP_PAUSE: // pause + ordenador.tape_readed = 0; + ordenador.tape_current_bit = 0; + if (ordenador.tape_counter_rep > tstados) { + ordenador.tape_counter_rep -= tstados; + } else { + ordenador.tape_counter_rep = 0; + ordenador.tape_current_mode = TAP_TRASH; // read new block + } + break; + case TAP_PAUSE2: // pause and stop + ordenador.tape_readed = 0; + ordenador.tape_current_bit = 0; + if (ordenador.tape_counter_rep > tstados) { + ordenador.tape_counter_rep -= tstados; + } else { + ordenador.tape_counter_rep = 0; + ordenador.tape_current_mode = TAP_TRASH; // read new block + ordenador.pause = 1; + } + break; + case TZX_PURE_TONE: + ordenador.tape_counter_rep--; + ordenador.tape_current_bit = 1 - ordenador.tape_current_bit; // invert current bit + if (ordenador.tape_counter_rep) { // still into guide tone + ordenador.tape_counter0 = ordenador.tape_block_level - tstados; + ordenador.tape_counter1 = 0; // new pulse + } else + ordenador.tape_current_mode = TAP_TRASH; // next ID + break; + case TZX_SEQ_PULSES: + ordenador.tape_current_bit = 1 - ordenador.tape_current_bit; // invert current bit + ordenador.tape_counter_rep--; + if(ordenador.tape_counter_rep) { + retval=fread(&value2,1,1,fichero); + retval=fread(&value3,1,1,fichero); // length of pulse in T-states + ordenador.tape_counter0 = ((unsigned int) value2) + 256 * ((unsigned int) value3); + ordenador.tape_counter1 = 0; + } else + ordenador.tape_current_mode = TAP_TRASH; // next ID + break; + + case TAP_STOP: + ordenador.tape_current_bit = 0; + ordenador.tape_current_mode = TAP_TRASH; // initialize + ordenador.pause = 1; // pause it + break; + default: + break; + } +} + +void rewind_tape(FILE *fichero,unsigned char pause) { + + int thebucle; + unsigned char value; + int retval; + + rewind (ordenador.tap_file); + if(ordenador.tape_file_type==TAP_TZX) + for(thebucle=0;thebucle<10;thebucle++) + retval=fread(&value,1,1,ordenador.tap_file); // jump over the header + ordenador.pause=pause; +} + +unsigned char file_empty(FILE *fichero) { + + long position,position2; + + position=ftell(fichero); + fseek(fichero,0,SEEK_END); // set the pointer at end + position2=ftell(fichero); + fseek(fichero,position,SEEK_SET); // return the pointer to the original place + if(position2==0) + return 1; // empty file + else + return 0; +} + +void save_file(FILE *fichero) { + + long position; + unsigned char xor,salir; + byte dato; + int longitud; + + position=ftell(fichero); // store current position + fseek(fichero,0,SEEK_END); // put position at end + xor=0; + + longitud=(int)(procesador.Rm.wr.DE); + longitud+=2; + + dato=(byte)(longitud%256); + fprintf(fichero,"%c",dato); + dato=(byte)(longitud/256); + fprintf(fichero,"%c",dato); // file length + + fprintf(fichero,"%c",procesador.Rm.br.A); // flag + + xor^=procesador.Rm.br.A; + + salir = 0; + do { + if (procesador.Rm.wr.DE == 0) + salir = 2; + if (!salir) { + dato=Z80free_Rd(procesador.Rm.wr.IX); // read data + fprintf(fichero,"%c",dato); + xor^=dato; + procesador.Rm.wr.IX++; + procesador.Rm.wr.DE--; + } + } while (!salir); + fprintf(fichero,"%c",xor); + procesador.Rm.wr.IX++; + procesador.Rm.wr.IX++; + fseek(fichero,position,SEEK_SET); // put position at end + + if(ordenador.tape_fast_load==1) //if we want fast load, we assume we want fast save too + ordenador.other_ret = 1; // next instruction must be RET + + return; +} + +void fastload_block (FILE * fichero) { + + unsigned int longitud; + unsigned char value[65536], salir,empty,flag_found; + unsigned int veces; + int retval; + + ordenador.other_ret = 1; // next instruction must be RET + + if (!(procesador.Rm.br.F & F_C)) { // if Carry=0, is VERIFY, so return OK + procesador.Rm.br.F |= F_C; // verify OK + procesador.Rm.wr.IX += procesador.Rm.wr.DE; + procesador.Rm.wr.DE = 0; + return; + } + + empty=file_empty(fichero); + + + if ((fichero == NULL)||(empty)) { + procesador.Rm.br.F &= (~F_C); // Load error + procesador.Rm.wr.IX += procesador.Rm.wr.DE; + procesador.Rm.wr.DE = 0; + if(empty) + sprintf (ordenador.osd_text, "Tape file empty"); + else + sprintf (ordenador.osd_text, "No tape selected"); + ordenador.osd_time = 100; + return; + } + + veces=0; + + flag_found=0; + do { + retval=fread (value, 2, 1, fichero); // read length of current block + if (feof (fichero)) { // end of file? + veces++; // one more time rewinded + sprintf (ordenador.osd_text, "Tape rewind"); + ordenador.osd_time = 100; + rewind (fichero); // again + retval=fread (value, 2, 1, fichero); // read length of current block + } + longitud = ((unsigned int) value[0]) + 256 * ((unsigned int) value[1]); + retval=fread (value, 1, 1, fichero); // read flag byte + longitud--; + if (value[0] != procesador.Rm.br.A) { // different flag + retval=fread (value, longitud, 1, fichero); // jump to the next block + if (veces==3) { // tape rewinded three times? Block with that flag not found. + sprintf(ordenador.osd_text,"Block with right flag not found"); + ordenador.osd_time = 100; + procesador.Rm.br.F &= (~F_C); // Load error + return; + } + } else + flag_found = 1; + } while(flag_found == 0); + + salir = 0; + do { + if (longitud == 0) + salir = 1; + if (procesador.Rm.wr.DE == 0) + salir = 2; + if (!salir) { + retval=fread (value, 1, 1, fichero); // read byte + Z80free_Wr (procesador.Rm.wr.IX, (byte) value[0]); // store the byte + procesador.Rm.wr.IX++; + procesador.Rm.wr.DE--; + longitud--; + } + } + while (!salir); + + clean_screen (); + + if (salir == 1) { // system wants to load more bytes that the existent + procesador.Rm.br.F &= (~F_C); // Load error + return; + } + + if ((salir == 2) && (longitud != 1)) { // there are more bytes to load + procesador.Rm.br.F &= (~F_C); // Load error + if (longitud > 1) + retval=fread (value, longitud, 1, fichero); // jump to the next block + return; + } + + retval=fread (value, 1, 1, fichero); // jump over the checksum + procesador.Rm.br.F |= F_C; // Load OK + return; + +} diff --git a/src/tape.h b/src/tape.h new file mode 100644 index 0000000..b277a08 --- /dev/null +++ b/src/tape.h @@ -0,0 +1,31 @@ +/* + * Copyright 2003-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of FBZX + * + * FBZX is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * FBZX is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#ifndef H_TAPE +#define H_TAPE + +inline void tape_read(FILE *, int); +inline void tape_read_tap(FILE *, int); +inline void tape_read_tzx(FILE *, int); +void rewind_tape(FILE *,unsigned char); +unsigned char file_empty(FILE *); +void fastload_block (FILE *); +void save_file(FILE *); + +#endif diff --git a/src/z80free/COPYING b/src/z80free/COPYING new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/src/z80free/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/src/z80free/Makefile b/src/z80free/Makefile new file mode 100644 index 0000000..ef36b09 --- /dev/null +++ b/src/z80free/Makefile @@ -0,0 +1,141 @@ +#--------------------------------------------------------------------------------- +# Clear the implicit built in rules +#--------------------------------------------------------------------------------- +.SUFFIXES: +#--------------------------------------------------------------------------------- +ifeq ($(strip $(DEVKITPPC)),) +$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") +endif + +include $(DEVKITPPC)/wii_rules + +#--------------------------------------------------------------------------------- +# TARGET is the name of the output +# BUILD is the directory where object files & intermediate files will be placed +# SOURCES is a list of directories containing source code +# INCLUDES is a list of directories containing extra header files +#--------------------------------------------------------------------------------- +TARGET := z80_test +BUILD := build +SOURCES := . +DATA := +INCLUDES := + +#--------------------------------------------------------------------------------- +# options for code generation +#--------------------------------------------------------------------------------- + +CFLAGS = -g -O1 -Wall $(MACHDEP) $(INCLUDE) +CXXFLAGS = $(CFLAGS) + +LDFLAGS = -g $(MACHDEP) -Wl,-Map,$(notdir $@).map +#-fpack-struct +#--------------------------------------------------------------------------------- +# any extra libraries we wish to link with the project +#--------------------------------------------------------------------------------- +LIBS := -lfat -lwiiuse -lbte -logc -lm -lwiikeyboard + +#--------------------------------------------------------------------------------- +# list of directories containing libraries, this must be the top level containing +# include and lib +#--------------------------------------------------------------------------------- +LIBDIRS := $(PORTLIBS) + + +#--------------------------------------------------------------------------------- +# no real need to edit anything past this point unless you need to add additional +# rules for different file extensions +#--------------------------------------------------------------------------------- +ifneq ($(BUILD),$(notdir $(CURDIR))) +#--------------------------------------------------------------------------------- + +export OUTPUT := $(CURDIR)/$(TARGET) + +export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \ + $(foreach dir,$(DATA),$(CURDIR)/$(dir)) + +export DEPSDIR := $(CURDIR)/$(BUILD) + +#--------------------------------------------------------------------------------- +# automatically build a list of object files for our project +#--------------------------------------------------------------------------------- +CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) +CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) +sFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) +SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.S))) +BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) + +#--------------------------------------------------------------------------------- +# use CXX for linking C++ projects, CC for standard C +#--------------------------------------------------------------------------------- +ifeq ($(strip $(CPPFILES)),) + export LD := $(CC) +else + export LD := $(CXX) +endif + +export OFILES := $(addsuffix .o,$(BINFILES)) \ + $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) \ + $(sFILES:.s=.o) $(SFILES:.S=.o) + +#--------------------------------------------------------------------------------- +# build a list of include paths +#--------------------------------------------------------------------------------- +export INCLUDE := $(foreach dir,$(INCLUDES), -iquote $(CURDIR)/$(dir)) \ + $(foreach dir,$(LIBDIRS),-I$(dir)/include) \ + -I$(CURDIR)/$(BUILD) \ + -I$(LIBOGC_INC) + +#--------------------------------------------------------------------------------- +# build a list of library paths +#--------------------------------------------------------------------------------- +export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) \ + -L$(LIBOGC_LIB) + +export OUTPUT := $(CURDIR)/$(TARGET) +.PHONY: $(BUILD) clean + +#--------------------------------------------------------------------------------- +$(BUILD): + @[ -d $@ ] || mkdir -p $@ + @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile + +#--------------------------------------------------------------------------------- +clean: + @echo clean ... + @rm -fr $(BUILD) $(OUTPUT).elf $(OUTPUT).dol dist + +#--------------------------------------------------------------------------------- + + + + +#--------------------------------------------------------------------------------- +run: + wiiload $(TARGET).dol + + +#--------------------------------------------------------------------------------- +else + +DEPENDS := $(OFILES:.o=.d) + +#--------------------------------------------------------------------------------- +# main targets +#--------------------------------------------------------------------------------- +$(OUTPUT).dol: $(OUTPUT).elf +$(OUTPUT).elf: $(OFILES) + +#--------------------------------------------------------------------------------- +# This rule links in binary data with the .jpg extension +#--------------------------------------------------------------------------------- +%.jpg.o : %.jpg +#--------------------------------------------------------------------------------- + @echo $(notdir $<) + $(bin2o) + +-include $(DEPENDS) + +#--------------------------------------------------------------------------------- +endif +#--------------------------------------------------------------------------------- diff --git a/src/z80free/Makefile.ori b/src/z80free/Makefile.ori new file mode 100644 index 0000000..c380e5e --- /dev/null +++ b/src/z80free/Makefile.ori @@ -0,0 +1,32 @@ +CC = gcc -c -O1 -Wall +CCo = gcc -O1 -Wall + +z80free_tester: z80free_tester.o Z80free.o Z80free_codes.o Z80free_codesCB.o Z80free_codesED.o Z80free_codesDD.o Z80free_codesFD.o Z80free_codesDDCB.o Z80free_codesFDCB.o + $(CCo) -o z80free_tester z80free_tester.o Z80free.o Z80free_codes.o Z80free_codesCB.o Z80free_codesED.o Z80free_codesDD.o Z80free_codesFD.o Z80free_codesDDCB.o Z80free_codesFDCB.o + +z80free_tester.o: z80free_tester.c Z80free.h + $(CC) -o z80free_tester.o z80free_tester.c + +Z80free.o: Z80free.c Z80free.h + $(CC) -o Z80free.o Z80free.c + +Z80free_codes.o: Z80free_codes.c Z80free.h + $(CC) -o Z80free_codes.o Z80free_codes.c + +Z80free_codesCB.o: Z80free_codesCB.c Z80free.h + $(CC) -o Z80free_codesCB.o Z80free_codesCB.c + +Z80free_codesED.o: Z80free_codesED.c Z80free.h + $(CC) -o Z80free_codesED.o Z80free_codesED.c + +Z80free_codesDD.o: Z80free_codesDD.c Z80free.h + $(CC) -o Z80free_codesDD.o Z80free_codesDD.c + +Z80free_codesFD.o: Z80free_codesFD.c Z80free.h + $(CC) -o Z80free_codesFD.o Z80free_codesFD.c + +Z80free_codesDDCB.o: Z80free_codesDDCB.c Z80free.h + $(CC) -o Z80free_codesDDCB.o Z80free_codesDDCB.c + +Z80free_codesFDCB.o: Z80free_codesFDCB.c Z80free.h + $(CC) -o Z80free_codesFDCB.o Z80free_codesFDCB.c \ No newline at end of file diff --git a/src/z80free/README.txt b/src/z80free/README.txt new file mode 100644 index 0000000..c0e516a --- /dev/null +++ b/src/z80free/README.txt @@ -0,0 +1,247 @@ +Z80Free +A free Z80 emulator + + +DISCLAIMER + +Z80free is distributed under the GPL license, version three or later, which +means that is distributed "as is", without warraty of any kind. To know more +details, read the file COPYING. + + +WHAT IS Z80free? + +Z80free is a Z80 emulator written in C. It's designed to be as accurate as +possible, mainly in the flags from the F register, the instruction set +(emulating all the oficial and unoficial instructions like SET n,(IX+10h),r +the phantom IN, incorrect FD and DD sequences...) and the R register. It also +aims to allow a very accurate emulation of the computer hardware by dividing +the instructions as finely as possible; that way the prefixes, when +available, are executed in a first round, and only then the instruction +itself is executed. This allows a much more precise emulation of incorrect +sequences of prefixes like FDFDFDFDxx... and others. + + +WORKING WITH Z80FREE + +The heart is the typedef struct Z80FREE, which contains all the registers and +some variables needed to maintain the current state. + +typedef struct { + Z80FRegs Rm; /** Main register set (R) */ + Z80FRegs Ra; /** Alternate register set (R') */ + word PC; /** Program counter */ + byte R; /** Refresh */ + byte R2; /** Upper bit for Refresh */ + byte I; + byte IFF1; /** Interrupt Flipflop 1. If it's 2 + decrement it and don't allow INT */ + byte IFF2; /** Interrupt Flipflop 2 */ + byte IM; /** Interrupt mode */ + byte HALT; /** HALT status */ + byte INT_P; /** INT pending */ + byte NMI_P; /** NMI pending */ + byte empty_bus; /** value for empty bus when procesing + a maskable int */ + word IAddr; /** address with offset for IX+d and IY+d */ + byte IAddr_done; /** if 1, IAddr contains a valid data */ + enum {Z80XX, Z80CB, Z80DD, Z80ED, Z80FD, Z80INT} Status; +} Z80FREE; + +The first two elements, Rm and Ra, contains the main and alternate register +sets. The typedef is the following: + +typedef union { + /** Word registers. */ + struct + { + word AF, BC, DE, HL, IX, IY, SP; + } wr; + +#if __BYTE_ORDER == __LITTLE_ENDIAN + struct + { + byte F,A, C,B, E,D, L,H, IXl,IXh, IYl,IYh, P,S; + } br; +#else + struct + { + byte A,F, B,C, D,E, H,L, IXh,IXl, IYh,IYl, S,P; + } br; +#endif + +} Z80FRegs; + +This means that accessing a register (like HL) is done with + + processor.Rm.wr.HL + +while accessing a register like H in 8bit mode is done with + + processor.Rm.br.H + +Since Z80FRegs is an union, both structs are solaped. The conditional +#if __BYTE_ORDER == __LITTLE_ENDIAN allows to set the right register +order depending on the endiannes of the machine. + +The register R is stored twice: as R and R2, but only R is incremented after +each instruction or prefix. When reading it (with LD A,R), the value is +composed with (R&0x7F)|(R2&0x80). That way the true value is returned, +since the real Z80 only increment the lower 7 bits of R, but stores all the +8 bits. + +IFF1 and IFF2 are modified by DI and EI. But IFF1 can be 0, 1 or 2. When its +2, it means that the interrups have to be allowed after the next instruction. +This is because, when doing + + ... + EI + XXX + YYY + ... + +if an interrupt arrives during EI, it won't be accepted between EI and XXX, +but between XXX and YYY. When IFF1 is 2, Z80FREE won't still accept +interrupts, but will decrement it, so at the next instruction it will be 1, +accepting the pending interrupt. + +IM can be 0, 1 or 2, but currently modes 0 and 1 are the same (they both jump +to 38h). + +When HALT is 1, the processor is running a HALT instruction, returning 4 +tstates consumed and maintaining the PC counter until an interrupt is +accepted (or a reset is done). + +All the other info is internal and should not be needed when creating an +emulator. + +There are four functions offered by Z80FREE to interact with it: + + void Z80free_reset(Z80FREE *); + +RESET function resets the processor. + + void Z80free_INT(Z80FREE *,byte); + +INT triggers a maskable interrupt. The BYTE value contains the value +currently present in the bus (useful when, in a future, the true IM0 +mode will be implemented). + + int Z80free_step(Z80FREE *); + +Runs the processor for one complete instruction. It returns the number of +TSTates used by that instruction. After it, the PC points to the next +instruction, and is safe to do operations like creating snapshots or +similar. + + int Z80free_ustep(Z80FREE *); + +Runs the processor for a microstep. That means that, if the current +instruction has a prefix, only the prefix will be recognized, and the +PC will point to the middle of the instruction; but if the instruction +doesn't have a prefix, it will run it complete. It returns the TSTates +used to run that piece of the current instruction. It's unsafe to create +an snapshot after running this function because the processor can be +in an intermediate state, but is safe to update the hardware (like the +screen or the sound). + +To know when is safe to do things, a piece of code like this one can +be used: + +while (1) { + + do { + // Insecure zone. Only update the hardware + tstados=Z80free_ustep(&procesador); + EMULATE(tstados); + } while(procesador.Status!=Z80XX); + + // Secure zone. Do snapshots and other things that + // require the Z80 to be in a defined state. + ... +} + +Here is assumed that EMULATE(int) emulates the screen, sound,... for +that number of TSTates. When STATUS is Z80XX, the processor is going +to read the first byte of an instruction, and is safe to do other things +like creating snapshots. + +Of course, if you don't want to complicate things, just use Z80FREE_STEP. + +Finally, you must implement the following functions in order to emulate the +hardware itself: + + byte Z80free_Rd (register word Addr); + +When Z80Free needs to read a byte from memory, it will call this function. +It must return the value contained in the possition ADDR. + + void Z80free_Wr (register word Addr, register byte Value); + +When Z80Free needs to write a byte to memory, it will call this funcion. +It must store the data VALUE at the position ADDR. + + byte Z80free_In (register word Port); + +When Z80Free needs to access to an input port, it will call this function. +PORT contains the 16bit port being accessed. + + void Z80free_Out (register word Port, register byte Value); + +When Z80Free needs to access to an output port, it will call this function. +PORT contains the 16bit port being accessed, and VALUE the data to be +written to the port. + + +HOW Z80FREE IS IMPLEMENTED + +There are two main files: Z80FREE.C and Z80FREE.H. Z80FREE.C contains the main +loop and some help functions. Some of them were extracted from LibZ80 (from +Gabriel Gambetta), adapted to the new processor structure and, where needed, +fixed some little bugs. + +But the true magic is in the files z80FREE_CODESXXXX.C. These files contains +big switch/case functions which plays each Z80 instruction and returns the +number of TSTATES used by them. But these files weren't created "by hand", +but parsing the files Z80FREE_CODESXXXX.TXT. These files contains a list of +all the Z80 instructions, with its opcode numbers and the number of TSTATES +used (when it's a conditional instruction, which can use more TSTATES when +true than when false, it contain both values), and are parsed by the program +Z80FREE_GENCODE.PY. + +This program gets the opcode, the number of TSTATES and the instruction. +Then it splits the instruction in the instruction itself (like LD, or EX) and +parameters (like A or 5). With all that data it generates the code for that +instruction in the right CASE statement. + +The code in Z80FREE_GENCODE.PY is divided in several classes, so is extremely +easy to adapt it to other processors. Just read the comments (you should use +the GENERIC_PARSER class "as is", and create a new class which inherits from +it and implements the methods GET_CODE_FROM_ONE_PARAM, CREATE_CODE, +WRITE_START_CODE and WRITE_END_CODE. + +In order to simplify the parser, the syntax of some instructions have been +modified, like the I/O ones: instead of (C) we use [BC]. + +If an instruction is incorrectly implemented, you must fix it in +Z80FREE_GENCODE.PY, run it again to regenerate the .C files, and only then +recompile your emulator. + +The big advantage of this method is that, if the implementation of one +instruction type is incorrect, fixing it once will fix it in all the +instructions with all the access modes used. An example: if the LD +instruction type has a bug, fixing it will fix all the LD instructions, like +LD A,n, LD (HL),A, LD B,C... The same when the bug is in the parameter code: +if there's an error in the code that implements (HL) as writing, fixing it +will fix all the instructions that uses it, like LD (HL),A, or CP (HL). + + +CONTACTING THE AUTHOR + +This program is +(C) 2008 Sergio Costas Rodriguez +(Raster Software Vigo) + +raster@rastersoft.com +http://www.rastersoft.com + diff --git a/src/z80free/Z80free.c b/src/z80free/Z80free.c new file mode 100644 index 0000000..99b9ae0 --- /dev/null +++ b/src/z80free/Z80free.c @@ -0,0 +1,783 @@ +/* + * Copyright 2008-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of Z80Free, with some bits extracted + * and fixed from libZ80 (from Gabriel Gambetta) + * + * Z80Free is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Z80Free is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "Z80free.h" + +void Z80free_reset(Z80FREE *processor) { + + processor->PC=0; + processor->IFF1=0; + processor->IFF2=0; + processor->Rm.wr.AF=0xFFFF; + processor->Rm.wr.BC=0xFFFF; + processor->Rm.wr.DE=0xFFFF; + processor->Rm.wr.HL=0xFFFF; + processor->Rm.wr.IX=0xFFFF; + processor->Rm.wr.IY=0xFFFF; + processor->Ra.wr.AF=0xFFFF; + processor->Ra.wr.BC=0xFFFF; + processor->Ra.wr.DE=0xFFFF; + processor->Ra.wr.HL=0xFFFF; + processor->HALT=0; + processor->IM=0; + processor->I=0; + processor->Status=0; + processor->IAddr_done=0; + processor->INT_P=0; + processor->NMI_P=0; + +} + +void Z80free_INT(Z80FREE *processor,byte value) { + + processor->INT_P=1; + processor->empty_bus=value; + +} + +int Z80free_step(Z80FREE *processor) { + + int retval=0; + do { + retval+=Z80free_ustep(processor); + } while(processor->Status!=Z80XX); + return (retval); +} + +int Z80free_ustep(Z80FREE *processor) { + + static byte opcode,d1; + int retval=0; + + processor->R++; + if (processor->Status==Z80XX) { + if (processor->NMI_P) { // NMI triggered + if (processor->HALT) { + processor->HALT=0; + processor->PC++; + } + processor->NMI_P=0; + Z80free_doPush(processor,processor->PC); + processor->PC=0x0066; + processor->IFF1=0; // disable INTs + processor->Status=Z80INT; + return(11); // we use 11 tstates for attending a NMI + } + if (processor->INT_P) { + processor->INT_P=0; + if (processor->IFF1==1) { // allow INTs only in this case + if (processor->HALT) { + processor->HALT=0; + processor->PC++; + } + processor->Status=Z80INT; + processor->IFF1=0; + processor->IFF2=0; + Z80free_doPush(processor,processor->PC); + if (processor->IM!=2) { // we will forget IM0 mode for now; maybe in the future... + processor->PC=0x0038; + return (13); + } else { + processor->PC=Z80free_read16(((((word)processor->I)<<8)&0xFF00) | ((word)processor->empty_bus)); + return (19); + } + } + } + } + + if (processor->IFF1>1) // set the right status for interrupts + processor->IFF1--; + + opcode=Z80free_Rd(processor->PC); + processor->PC++; + switch(processor->Status) { + case Z80INT: + processor->Status=Z80XX; + case Z80XX: + if (opcode==0xCB) { + processor->Status=Z80CB; + return 4; + } else if (opcode==0xED) { + processor->Status=Z80ED; + return 4; + } else if (opcode==0xDD) { + processor->Status=Z80DD; + return 4; + } else if (opcode==0xFD) { + processor->Status=Z80FD; + return 4; + } else { + return(Z80free_codes(processor,opcode)); + } + break; + case Z80CB: + processor->Status=Z80XX; + return(Z80free_codesCB(processor,opcode)); + break; + case Z80ED: + processor->Status=Z80XX; + return(Z80free_codesED(processor,opcode)); + break; + case Z80DD: + if (opcode==0xDD) { + return 4; + } + if (opcode==0xFD) { + processor->Status=Z80FD; + return 4; + } + processor->Status=Z80XX; + if (opcode==0xCB) { + d1=Z80free_Rd(processor->PC++); + retval+=Z80free_codesDDCB(processor,d1); + } else { + retval+=Z80free_codesDD(processor,opcode); + } + processor->IAddr_done=0; + return (retval); + break; + case Z80FD: + if (opcode==0xDD) { + processor->Status=Z80DD; + return 4; + } + if (opcode==0xFD) { + return 4; + } + processor->Status=Z80XX; + if (opcode==0xCB) { + d1=Z80free_Rd(processor->PC++); + retval+=Z80free_codesFDCB(processor,d1); + } else { + retval+=Z80free_codesFD(processor,opcode); + } + processor->IAddr_done=0; + return (retval); + break; + } + return 0; +} + + +/* --------------------------------------------------------- + * Flag operations + * --------------------------------------------------------- + */ + +/** Sets a flag */ +inline void Z80free_setFlag(Z80FREE *processor, byte flag) { + + processor->Rm.br.F |= flag; +} + +/** Resets a flag */ +inline void Z80free_resFlag(Z80FREE *processor, byte flag) { + + processor->Rm.br.F &= ~flag; +} + +/** Puts a value in a flag */ +inline void Z80free_valFlag(Z80FREE *processor, byte flag, int val) { + + if (val) + processor->Rm.br.F |= flag; + else + processor->Rm.br.F &= ~flag; +} + +/** Returns a flag */ +inline int Z80free_getFlag(Z80FREE *processor, byte flag) { + + return (processor->Rm.br.F & flag) != 0; +} + + +/* --------------------------------------------------------- + * Flag adjustments + * --------------------------------------------------------- + */ + +static int Z80free_parityBit[256] = { + + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, + 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, + 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1 }; + + +inline void Z80free_adjustFlags (Z80FREE *processor, byte val) { + + Z80free_valFlag(processor,F_5, (val & F_5) != 0); + Z80free_valFlag(processor,F_3, (val & F_3) != 0); +} + + +inline void Z80free_adjustFlagSZP (Z80FREE *processor, byte val) { + + Z80free_valFlag(processor,F_S, (val & 0x80) != 0); + Z80free_valFlag(processor,F_Z, (val == 0)); + Z80free_valFlag(processor,F_PV, Z80free_parityBit[val]); +} + + +// Adjust flags after AND, OR, XOR +inline void Z80free_adjustLogicFlag (Z80FREE *processor, int flagH) { + + Z80free_valFlag(processor,F_S, (processor->Rm.br.A & 0x80) != 0); + Z80free_valFlag(processor,F_Z, (processor->Rm.br.A == 0)); + Z80free_valFlag(processor,F_H, flagH); + Z80free_valFlag(processor,F_N, 0); + Z80free_valFlag(processor,F_C, 0); + Z80free_valFlag(processor,F_PV, Z80free_parityBit[processor->Rm.br.A]); + + Z80free_adjustFlags(processor, processor->Rm.br.A); +} + + +/* --------------------------------------------------------- + * Generic operations + * --------------------------------------------------------- + */ + +byte Z80free_readR(Z80FREE *processor) { + Z80free_adjustFlagSZP(processor,(0x7F&processor->R)|(0x80&processor->R2)); + Z80free_valFlag(processor,F_PV,processor->IFF2); + Z80free_valFlag(processor,F_N, 0); + Z80free_valFlag(processor,F_H, 0); + Z80free_adjustFlags(processor,(0x7F&processor->R)|(0x80&processor->R2)); + return ((0x7F&processor->R)|(0x80&processor->R2)); +} + +void Z80free_setR(Z80FREE *processor,byte value) { + processor->R=value; + processor->R2=value; +} + +byte Z80free_readI(Z80FREE *processor) { + + Z80free_adjustFlagSZP(processor,processor->I); + Z80free_valFlag(processor,F_PV,processor->IFF2); + Z80free_valFlag(processor,F_N, 0); + Z80free_valFlag(processor,F_H, 0); + Z80free_adjustFlags(processor,processor->I); + return (processor->I); +} + + +/** Do an arithmetic operation (ADD, SUB, ADC, SBC y CP) */ +byte Z80free_doArithmetic (Z80FREE *processor, byte value1,byte value2, int withCarry, int isSub) { + + static word res; /* To detect carry */ + static byte carry; + + if (withCarry && Z80free_getFlag(processor,F_C)) + carry=1; + else + carry=0; + + if (isSub) { + Z80free_setFlag(processor,F_N); + res = ((word)value1) - ((word)value2) - ((word)carry); + Z80free_valFlag(processor,F_H, ((value1 ^ value2 ^ res) & 0x10) != 0); + Z80free_valFlag(processor,F_PV, (((value1 ^ value2)&0x080) && (((res^value1)&0x080)))); + } else { + Z80free_resFlag(processor,F_N); + res = ((word)value1) + ((word)value2) + ((word)carry); + Z80free_valFlag(processor,F_H, (((value1 & 0x0F) + (value2 & 0x0F)+carry) & 0x10) != 0); + Z80free_valFlag(processor,F_PV, ((((value1 ^ value2)&0x080)==0) && ((res^value1)&0x080))); + } + + Z80free_valFlag(processor,F_S, ((res & 0x080) != 0)); + Z80free_valFlag(processor,F_C, ((res & 0x0100) != 0)); + Z80free_valFlag(processor,F_Z, ((res&0xFF) == 0)); + + Z80free_adjustFlags(processor, res&0xFF); + + return (byte)(res & 0xFF); +} + +word Z80free_doArithmetic16 (Z80FREE *processor, word value1,word value2, int withCarry, int isSub) { + + static word tmp; + static byte Ftmp; + + Ftmp=processor->Rm.br.F; // store the F register to restore the unchanged bits when doing operations without carry + + tmp=(word)Z80free_doArithmetic(processor,(byte)(value1&0x00FF),(byte)(value2&0x00FF),withCarry,isSub); + tmp|=((word)Z80free_doArithmetic(processor,(byte)((value1>>8)&0x00FF),(byte)((value2>>8)&0x00FF),1,isSub))<<8; + if (tmp) { + Z80free_resFlag(processor,F_Z); + } else { + Z80free_setFlag(processor,F_Z); + } + + if (tmp&0x08000) { + Z80free_setFlag(processor,F_S); + } else { + Z80free_resFlag(processor,F_S); + } + + if (!(withCarry|isSub)) { + processor->Rm.br.F &= 0x3B; // preserve the new values of C, N, 3, H and 5 + processor->Rm.br.F |= (Ftmp & 0xC4); // set the old values of P/V, Z and S + } + + return (tmp); +} + +void Z80free_doAND (Z80FREE *processor, byte value) { + + processor->Rm.br.A &= value; + Z80free_adjustLogicFlag(processor, 1); +} + + +void Z80free_doOR (Z80FREE *processor, byte value) { + + processor->Rm.br.A |= value; + Z80free_adjustLogicFlag(processor, 0); +} + + +void Z80free_doXOR (Z80FREE *processor, byte value) { + + processor->Rm.br.A ^= value; + Z80free_adjustLogicFlag(processor, 0); +} + + +void Z80free_doBIT (Z80FREE *processor, int b, byte val) { + + if (val & (1 << b)) + Z80free_resFlag(processor,F_Z | F_PV); + else + Z80free_setFlag(processor,F_Z | F_PV); + + Z80free_setFlag(processor,F_H); + Z80free_resFlag(processor,F_N); + + + if ((b == 7) && !Z80free_getFlag(processor,F_Z)) + Z80free_setFlag(processor,F_S); + else + Z80free_resFlag(processor,F_S); + + /*Z80free_resFlag(processor,F_5); + if ((b == 5) && !Z80free_getFlag(processor,F_Z)) + Z80free_setFlag(processor,F_5); + + Z80free_resFlag(processor,F_3); + if ((b == 3) && !Z80free_getFlag(processor,F_Z)) + Z80free_setFlag(processor,F_3);*/ + Z80free_adjustFlags(processor,val); +} + + +byte Z80free_doSetRes (Z80FREE *processor, int bit, int pos, byte val) { + + if (bit) + val |= (1 << pos); + else + val &= ~(1 << pos); + return val; +} + + + +byte Z80free_doIncDec (Z80FREE *processor, byte val, int isDec) { + + if (isDec) { + Z80free_valFlag(processor,F_PV, (val & 0x80) && !((val - 1) & 0x80)); + val--; + Z80free_valFlag(processor,F_H, (val & 0x0F)==0x0F); + } else { + Z80free_valFlag(processor,F_PV, !(val & 0x80) && ((val + 1) & 0x80)); + val++; + Z80free_valFlag(processor,F_H, (val & 0x0F)==0); + } + + Z80free_valFlag(processor,F_S, ((val & 0x80) != 0)); + Z80free_valFlag(processor,F_Z, (val == 0)); + Z80free_valFlag(processor,F_N, isDec); + + Z80free_adjustFlags(processor, val); + + return val; +} + + +word Z80free_doIncDec16 (Z80FREE *processor, word val, int isDec) { + + if (isDec) { + val--; + } else { + val++; + } + + return val; +} + + +byte Z80free_doRLC (Z80FREE *processor, int adjFlags, byte val) { + + Z80free_valFlag(processor,F_C, (val & 0x80) != 0); + val <<= 1; + val |= (byte)Z80free_getFlag(processor,F_C); + + Z80free_adjustFlags(processor, val); + Z80free_resFlag(processor,F_H | F_N); + + if (adjFlags) + Z80free_adjustFlagSZP(processor, val); + + return val; +} + + +byte Z80free_doRL (Z80FREE *processor, int adjFlags, byte val) { + + int CY = Z80free_getFlag(processor,F_C); + Z80free_valFlag(processor,F_C, (val & 0x80) != 0); + val <<= 1; + val |= (byte)CY; + + Z80free_adjustFlags(processor, val); + Z80free_resFlag(processor,F_H | F_N); + + if (adjFlags) + Z80free_adjustFlagSZP(processor, val); + + return val; +} + + +byte Z80free_doRRC (Z80FREE *processor, int adjFlags, byte val) { + + Z80free_valFlag(processor,F_C, (val & 0x01) != 0); + val >>= 1; + val |= ((byte)Z80free_getFlag(processor,F_C) << 7); + + Z80free_adjustFlags(processor, val); + Z80free_resFlag(processor,F_H | F_N); + + if (adjFlags) + Z80free_adjustFlagSZP(processor, val); + + return val; +} + + +byte Z80free_doRR (Z80FREE *processor, int adjFlags, byte val) { + + int CY = Z80free_getFlag(processor,F_C); + Z80free_valFlag(processor,F_C, (val & 0x01)); + val >>= 1; + val |= (CY << 7); + + Z80free_adjustFlags(processor, val); + Z80free_resFlag(processor,F_H | F_N); + + if (adjFlags) + Z80free_adjustFlagSZP(processor, val); + + return val; +} + + +byte Z80free_doSL (Z80FREE *processor, int isArith, byte val) { + + Z80free_valFlag(processor,F_C, (val & 0x80) != 0); + val <<= 1; + + if (isArith) + val |= 1; + + Z80free_adjustFlags(processor, val); + Z80free_resFlag(processor,F_H | F_N); + Z80free_adjustFlagSZP(processor, val); + + return val; +} + + +byte Z80free_doSR (Z80FREE *processor, int isArith, byte val) { + + static int b; + + b = (val & 0x80); + + Z80free_valFlag(processor,F_C, (val & 0x01) != 0); + val >>= 1; + + if (isArith) + val |= (byte)b; + + Z80free_adjustFlags(processor, val); + Z80free_resFlag(processor,F_H | F_N); + Z80free_adjustFlagSZP(processor, val); + + return val; +} + +void Z80free_doRLD(Z80FREE *processor) { + + static byte tmp,tmp2; + + tmp=processor->Rm.br.A; + tmp2=Z80free_Rd(processor->Rm.wr.HL); + processor->Rm.br.A&=0xF0; + processor->Rm.br.A|=(0x0F&(tmp2>>4)); + Z80free_Wr(processor->Rm.wr.HL,((tmp2<<4)&0xF0)|(tmp&0x0F)); + + Z80free_resFlag(processor,F_H | F_N); + Z80free_adjustFlagSZP(processor, processor->Rm.br.A); + +} + +void Z80free_doRRD(Z80FREE *processor) { + + static byte tmp,tmp2; + + tmp=processor->Rm.br.A; + tmp2=Z80free_Rd(processor->Rm.wr.HL); + processor->Rm.br.A&=0xF0; + processor->Rm.br.A|=(0x0F&tmp2); + Z80free_Wr(processor->Rm.wr.HL,((tmp2>>4)&0x0F)|((tmp<<4)&0xF0)); + + Z80free_resFlag(processor,F_H | F_N); + Z80free_adjustFlagSZP(processor, processor->Rm.br.A); + +} + +void Z80free_doPush (Z80FREE *processor, word val) { + + processor->Rm.wr.SP-=2; + Z80free_write16(processor->Rm.wr.SP, val); +} + + +word Z80free_doPop (Z80FREE *processor) { + + static word val; + + val = Z80free_read16(processor->Rm.wr.SP); + processor->Rm.wr.SP+=2; + + return val; +} + + +/* The DAA opcode + * According to the value in A and the flags set, add a value to A + * + * Flags set Byte (0..9)(0..9) + * -------------------------------------------- + * (None) + &00 + * Carry:+ &60 + * Subtract:+ &00 + * Subtract+Carry:+ &A0 + * Half-carry:+ &06 + * Half-carry+Carry:+ &66 + * Half-carry+Subtract:+ &FA + * Half-carry+Subtract+Carry:+ &9A + * + * Flags set Byte (0..9)(A..F) + * -------------------------------------------- + * (None) + &06 + * Carry:+ &66 + * Subtract:+ &00 + * Subtract+Carry:+ &a0 + * Half-carry:+ &06 + * Half-carry+Carry:+ &66 + * Half-carry+Subtract:+ &fa + * Half-carry+Subtract+Carry:+ &9A + * + * Flags set Byte (A..F)(0..9) + * -------------------------------------------- + * (None) + &60 + * Carry:+ &60 + * Subtract:+ &00 + * Subtract+Carry:+ &A0 + * Half-carry:+ &66 + * Half-carry+Carry:+ &66 + * Half-carry+Subtract:+ &fa + * Half-carry+Subtract+Carry:+ &9A + * + * Flags set Byte (A..F)(A..F) + * -------------------------------------------- + * (None) + &66 + * Carry:+ &66 + * Subtract:+ &00 + * Subtract+Carry:+ &a0 + * Half-carry:+ &66 + * Half-carry+Carry:+ &66 + * Half-carry+Subtract:+ &fa + * Half-carry+Subtract+Carry:+ &9A + */ + +static int Z80free_DAA_BYTETYPE1[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1 }; +static int Z80free_DAA_BYTETYPE2[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2 }; + +static byte Z80free_DAA_ADJUSTMENT[4][6] = { + {0x00,0x06,0x00,0x66,0x60,0x66}, + {0x06,0x06,0x06,0x66,0x66,0x66}, + {0x60,0x66,0x60,0x66,0x60,0x66}, + {0x66,0x66,0x66,0x66,0x66,0x66} }; + +void Z80free_doDAA (Z80FREE *processor) { + + byte oldval; + int byteType; + int flagMask = 0; + + /* (0..8)(0..9) = 0 */ + /* (0..8)(A..F) = 1 */ + /* (9) (0..9) = 2 */ + /* (9) (A..F) = 3 */ + /* (A..F)(0..9) = 4 */ + /* (A..F)(A..F) = 5 */ + byteType = Z80free_DAA_BYTETYPE1[(processor->Rm.br.A&0x0F)] | ((Z80free_DAA_BYTETYPE2[(processor->Rm.br.A >> 4)&0x0F]) << 1); + oldval=(processor->Rm.br.A&0x0F); + + if (Z80free_getFlag(processor,F_C)) + flagMask |= 2; + if (Z80free_getFlag(processor,F_H)) + flagMask |= 1; + + if (processor->Rm.br.F&F_N) { + processor->Rm.br.A -= Z80free_DAA_ADJUSTMENT[flagMask][byteType]; + } else { + processor->Rm.br.A += Z80free_DAA_ADJUSTMENT[flagMask][byteType]; + } + if ((byteType<3)&&((processor->Rm.br.F&F_C)==0)) { + Z80free_resFlag(processor,F_C); + } else { + Z80free_setFlag(processor,F_C); + } + + if ((processor->Rm.br.F&F_N)==0) { + if (oldval>9) { + Z80free_setFlag(processor,F_H); + } else { + Z80free_resFlag(processor,F_H); + } + } else { + if (processor->Rm.br.F&F_H) { + if (oldval>5) { + Z80free_resFlag(processor,F_H); + } else { + Z80free_setFlag(processor,F_H); + } + } + } + + processor->Rm.br.F&=0x57; + processor->Rm.br.F|=(processor->Rm.br.A&0xA4); + if (processor->Rm.br.A) { + Z80free_resFlag(processor,F_Z); + } else { + Z80free_setFlag(processor,F_Z); + } + Z80free_valFlag(processor,F_PV, Z80free_parityBit[processor->Rm.br.A]); + +} + +void Z80free_jump_relative(Z80FREE *processor,byte relvar) { + + static word rel2; + + rel2=(word)relvar; + if (relvar&0x080) { + rel2|=0xFF00; + } + processor->PC+=rel2; +} + +word Z80free_addr_relative(Z80FREE *processor,word address) { + + static word rel2; + + if (processor->IAddr_done) { + return (processor->IAddr); + } + processor->IAddr_done=1; + rel2=(word)Z80free_read_param_8(processor); + if (rel2&0x080) { + rel2|=0xFF00; + } + processor->IAddr=address+rel2; + return (address+rel2); +} + +word Z80free_addr_relativeXDCB(Z80FREE *processor,word address,byte d1) { + + static word rel2; + + rel2=(word)d1; + if (rel2&0x080) { + rel2|=0xFF00; + } + processor->IAddr=address+rel2; + return (address+rel2); +} + +void Z80free_write16 (register word addr,register word val) { + + Z80free_Wr(addr, (byte)(val & 0xFF)); + val >>= 8; + addr++; + Z80free_Wr(addr, (byte)(val & 0xFF)); +} + +word Z80free_read16 (register word addr) { + + static word v1; + v1=((word)Z80free_Rd(addr))&0x00FF; + addr++; + return (v1 + ((((word)Z80free_Rd(addr)) << 8)&0xFF00)); +} + +byte Z80free_read_param_8(Z80FREE *processor) { + + return(Z80free_Rd(processor->PC++)); + +} + + +word Z80free_read_param_16(Z80FREE *processor) { + + static word value; + value=Z80free_read16(processor->PC); + processor->PC+=2; + return (value); +} + diff --git a/src/z80free/Z80free.h b/src/z80free/Z80free.h new file mode 100644 index 0000000..fcc0d06 --- /dev/null +++ b/src/z80free/Z80free.h @@ -0,0 +1,153 @@ +/* + * Copyright 2008-2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of Z80Free, with some bits extracted + * and fixed from libZ80 (from Gabriel Gambetta) + * + * Z80Free is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Z80Free is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + + +#ifndef Z80FREE_H +#define Z80FREE_H + +#include +#ifndef Z80_H +typedef unsigned short int word; +typedef unsigned char byte; +#endif + +#define F_S 0x80 +#define F_Z 0x40 +#define F_5 0x20 +#define F_H 0x10 +#define F_3 0x08 +#define F_PV 0x04 +#define F_N 0x02 +#define F_C 0x01 + +//enum Z80free_prefix {Z80XX, Z80CB, Z80DD, Z80ED, Z80FD}; + + +typedef union { + /** Word registers. */ + struct + { + word AF, BC, DE, HL, IX, IY, SP; + } wr; + + /** Byte registers. SP can be accessed partially to simplify the load/save code. */ + + +#if BYTE_ORDER == LITTLE_ENDIAN + struct + { + byte F,A, C,B, E,D, L,H, IXl,IXh, IYl,IYh, P,S; + } br; +#else + + struct + { + byte A,F, B,C, D,E, H,L, IXh,IXl, IYh,IYl, S,P; + } br; + +#endif + +} Z80FRegs; + +/** A Z80 execution context. */ +typedef struct +{ + Z80FRegs Ra; /* Alternate register set (R) */ + Z80FRegs Rm; /* Main register set (R) */ + word PC; /* Program counter */ + byte R; /* Refresh */ + byte R2; /* Upper bit for Refresh */ + byte I; + byte IFF1; /* Interrupt Flipflop 1. If it's 2, decrement it and don't allow INT */ + byte IFF2; /* Interrupt Flipflop 2 */ + byte IM; /* Interrupt mode */ + byte HALT; /* HALT status */ + byte INT_P; /* INT pending */ + byte NMI_P; /* NMI pending */ + byte empty_bus; /* value for empty bus when procesing a maskable int */ + word IAddr; /* address with offset for IX+d and IY+d */ + byte IAddr_done; /* if 1, IAddr contains a valid data */ + enum {Z80XX, Z80CB, Z80DD, Z80ED, Z80FD, Z80INT} Status; +} Z80FREE; + +/* internal Z80 methods */ + +void Z80free_setFlag(Z80FREE *processor, byte flag); +void Z80free_resFlag(Z80FREE *processor, byte flag); +void Z80free_valFlag(Z80FREE *processor, byte flag, int val); +int Z80free_getFlag(Z80FREE *processor, byte flag); +void Z80free_adjustFlags (Z80FREE *processor, byte val); +void Z80free_adjustFlagSZP (Z80FREE *processor, byte val); +void Z80free_adjustLogicFlag (Z80FREE *processor, int flagH); +byte Z80free_doArithmetic (Z80FREE *processor, byte value1,byte value2, int withCarry, int isSub); +word Z80free_doArithmetic16 (Z80FREE *processor, word value1,word value2, int withCarry, int isSub); +void Z80free_doAND (Z80FREE *processor, byte value); +void Z80free_doOR (Z80FREE *processor, byte value); +void Z80free_doXOR (Z80FREE *processor, byte value); +void Z80free_doBIT (Z80FREE *processor, int b, byte val); +byte Z80free_doSetRes (Z80FREE *processor, int bit, int pos, byte val); +byte Z80free_doIncDec (Z80FREE *processor, byte val, int isDec); +word Z80free_doIncDec16 (Z80FREE *processor, word val, int isDec); +byte Z80free_doRLC (Z80FREE *processor, int adjFlags, byte val); +byte Z80free_doRL (Z80FREE *processor, int adjFlags, byte val); +byte Z80free_doRRC (Z80FREE *processor, int adjFlags, byte val); +byte Z80free_doRR (Z80FREE *processor, int adjFlags, byte val); +byte Z80free_doSL (Z80FREE *processor, int isArith, byte val); +byte Z80free_doSR (Z80FREE *processor, int isArith, byte val); +void Z80free_doPush (Z80FREE *processor, word val); +word Z80free_doPop (Z80FREE *processor); +void Z80free_doDAA (Z80FREE *processor); +byte Z80free_readR(Z80FREE *processor); +void Z80free_setR(Z80FREE *processor,byte value); +byte Z80free_readI(Z80FREE *processor); +void Z80free_doRRD(Z80FREE *processor); +void Z80free_doRLD(Z80FREE *processor); + +void Z80free_jump_relative(Z80FREE *processor,byte relvar); +word Z80free_addr_relative(Z80FREE *processor,word address); +word Z80free_addr_relativeXDCB(Z80FREE *processor,word address,byte d1); +byte Z80free_read_param_8(Z80FREE *z80); +word Z80free_read_param_16(Z80FREE *z80); +word Z80free_read16 (register word addr); +void Z80free_write16 (register word addr,register word val); + +/* external Z80 methods */ + +void Z80free_reset(Z80FREE *); +int Z80free_step(Z80FREE *); +int Z80free_ustep(Z80FREE *); +void Z80free_INT(Z80FREE *,byte); + +byte Z80free_Rd (register word Addr); +void Z80free_Wr (register word Addr, register byte Value); +byte Z80free_In (register word Port); +void Z80free_Out (register word Port, register byte Value); + +/* Opcode functions */ + +int Z80free_codes (Z80FREE *processor,byte opcode); +int Z80free_codesCB (Z80FREE *processor,byte opcode); +int Z80free_codesDD (Z80FREE *processor,byte opcode); +int Z80free_codesED (Z80FREE *processor,byte opcode); +int Z80free_codesFD (Z80FREE *processor,byte opcode); +int Z80free_codesDDCB (Z80FREE *processor,byte d1); +int Z80free_codesFDCB (Z80FREE *processor,byte d1); + +#endif diff --git a/src/z80free/Z80free_codes.c b/src/z80free/Z80free_codes.c new file mode 100644 index 0000000..0e2cd82 --- /dev/null +++ b/src/z80free/Z80free_codes.c @@ -0,0 +1,1242 @@ +/* + * Copyright (C) 2008-2009 Sergio Costas (Raster Software Vigo) + * This file is part of Z80Free + * + * Z80Free is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Z80Free is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "Z80free.h" + +int Z80free_codes (Z80FREE *processor,byte opcode) { + static byte tmp1; + static word tmp2; + + switch(opcode) { + case 0: // NOP + return (4); + break; + case 1: // LD BC,nn + processor->Rm.wr.BC=Z80free_read_param_16(processor); + return (10); + break; + case 2: // LD (BC),A + Z80free_Wr(processor->Rm.wr.BC,processor->Rm.br.A); + return (7); + break; + case 3: // INC BC + processor->Rm.wr.BC=Z80free_doIncDec16(processor,processor->Rm.wr.BC,0); + return (6); + break; + case 4: // INC B + processor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,0); + return (4); + break; + case 5: // DEC B + processor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1); + return (4); + break; + case 6: // LD B,n + processor->Rm.br.B=Z80free_read_param_8(processor); + return (7); + break; + case 7: // RLCA + processor->Rm.br.A=Z80free_doRLC(processor,0,processor->Rm.br.A); + return (4); + break; + case 8: // EX AF,AF' + tmp2=processor->Rm.wr.AF; + processor->Rm.wr.AF=processor->Ra.wr.AF; + processor->Ra.wr.AF=tmp2; + return (4); + break; + case 9: // ADD HL,BC + processor->Rm.wr.HL=Z80free_doArithmetic16(processor,processor->Rm.wr.HL,processor->Rm.wr.BC,0,0); + return (11); + break; + case 10: // LD A,(BC) + processor->Rm.br.A=Z80free_Rd(processor->Rm.wr.BC); + return (7); + break; + case 11: // DEC BC + processor->Rm.wr.BC=Z80free_doIncDec16(processor,processor->Rm.wr.BC,1); + return (6); + break; + case 12: // INC C + processor->Rm.br.C=Z80free_doIncDec(processor,processor->Rm.br.C,0); + return (4); + break; + case 13: // DEC C + processor->Rm.br.C=Z80free_doIncDec(processor,processor->Rm.br.C,1); + return (4); + break; + case 14: // LD C,n + processor->Rm.br.C=Z80free_read_param_8(processor); + return (7); + break; + case 15: // RRCA + processor->Rm.br.A=Z80free_doRRC(processor,0,processor->Rm.br.A); + return (4); + break; + case 16: // DJNZ n + tmp1=Z80free_read_param_8(processor); + processor->Rm.br.B--; + if (processor->Rm.br.B) { + Z80free_jump_relative(processor,tmp1); + return (13); + } else { + return (8); + } + break; + case 17: // LD DE,nn + processor->Rm.wr.DE=Z80free_read_param_16(processor); + return (10); + break; + case 18: // LD (DE),A + Z80free_Wr(processor->Rm.wr.DE,processor->Rm.br.A); + return (7); + break; + case 19: // INC DE + processor->Rm.wr.DE=Z80free_doIncDec16(processor,processor->Rm.wr.DE,0); + return (6); + break; + case 20: // INC D + processor->Rm.br.D=Z80free_doIncDec(processor,processor->Rm.br.D,0); + return (4); + break; + case 21: // DEC D + processor->Rm.br.D=Z80free_doIncDec(processor,processor->Rm.br.D,1); + return (4); + break; + case 22: // LD D,n + processor->Rm.br.D=Z80free_read_param_8(processor); + return (7); + break; + case 23: // RLA + processor->Rm.br.A=Z80free_doRL(processor,0,processor->Rm.br.A); + return (4); + break; + case 24: // JR n + tmp1=Z80free_read_param_8(processor); + Z80free_jump_relative(processor,tmp1); + return (12); + break; + case 25: // ADD HL,DE + processor->Rm.wr.HL=Z80free_doArithmetic16(processor,processor->Rm.wr.HL,processor->Rm.wr.DE,0,0); + return (11); + break; + case 26: // LD A,(DE) + processor->Rm.br.A=Z80free_Rd(processor->Rm.wr.DE); + return (7); + break; + case 27: // DEC DE + processor->Rm.wr.DE=Z80free_doIncDec16(processor,processor->Rm.wr.DE,1); + return (6); + break; + case 28: // INC E + processor->Rm.br.E=Z80free_doIncDec(processor,processor->Rm.br.E,0); + return (4); + break; + case 29: // DEC E + processor->Rm.br.E=Z80free_doIncDec(processor,processor->Rm.br.E,1); + return (4); + break; + case 30: // LD E,n + processor->Rm.br.E=Z80free_read_param_8(processor); + return (7); + break; + case 31: // RRA + processor->Rm.br.A=Z80free_doRR(processor,0,processor->Rm.br.A); + return (4); + break; + case 32: // JR NZ,n + tmp1=Z80free_read_param_8(processor); + if (0==(F_Z&processor->Rm.br.F)) { + Z80free_jump_relative(processor,tmp1); + return (12); + } else { + return (7); + } + break; + case 33: // LD HL,nn + processor->Rm.wr.HL=Z80free_read_param_16(processor); + return (10); + break; + case 34: // LD (nn),HL + Z80free_write16(Z80free_read_param_16(processor),processor->Rm.wr.HL); + return (16); + break; + case 35: // INC HL + processor->Rm.wr.HL=Z80free_doIncDec16(processor,processor->Rm.wr.HL,0); + return (6); + break; + case 36: // INC H + processor->Rm.br.H=Z80free_doIncDec(processor,processor->Rm.br.H,0); + return (4); + break; + case 37: // DEC H + processor->Rm.br.H=Z80free_doIncDec(processor,processor->Rm.br.H,1); + return (4); + break; + case 38: // LD H,n + processor->Rm.br.H=Z80free_read_param_8(processor); + return (7); + break; + case 39: // DAA + Z80free_doDAA(processor); + return (4); + break; + case 40: // JR Z,n + tmp1=Z80free_read_param_8(processor); + if (F_Z&processor->Rm.br.F) { + Z80free_jump_relative(processor,tmp1); + return (12); + } else { + return (7); + } + break; + case 41: // ADD HL,HL + processor->Rm.wr.HL=Z80free_doArithmetic16(processor,processor->Rm.wr.HL,processor->Rm.wr.HL,0,0); + return (11); + break; + case 42: // LD HL,(nn) + processor->Rm.wr.HL=Z80free_read16(Z80free_read_param_16(processor)); + return (16); + break; + case 43: // DEC HL + processor->Rm.wr.HL=Z80free_doIncDec16(processor,processor->Rm.wr.HL,1); + return (6); + break; + case 44: // INC L + processor->Rm.br.L=Z80free_doIncDec(processor,processor->Rm.br.L,0); + return (4); + break; + case 45: // DEC L + processor->Rm.br.L=Z80free_doIncDec(processor,processor->Rm.br.L,1); + return (4); + break; + case 46: // LD L,n + processor->Rm.br.L=Z80free_read_param_8(processor); + return (7); + break; + case 47: // CPL + processor->Rm.br.A=255-processor->Rm.br.A; + Z80free_adjustFlags(processor,processor->Rm.br.A); + Z80free_setFlag(processor,F_H); + Z80free_setFlag(processor,F_N); + return (4); + break; + case 48: // JR NC,n + tmp1=Z80free_read_param_8(processor); + if (0==(F_C&processor->Rm.br.F)) { + Z80free_jump_relative(processor,tmp1); + return (12); + } else { + return (7); + } + break; + case 49: // LD SP,nn + processor->Rm.wr.SP=Z80free_read_param_16(processor); + return (10); + break; + case 50: // LD (nn),A + Z80free_Wr(Z80free_read_param_16(processor),processor->Rm.br.A); + return (13); + break; + case 51: // INC SP + processor->Rm.wr.SP=Z80free_doIncDec16(processor,processor->Rm.wr.SP,0); + return (6); + break; + case 52: // INC b(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doIncDec(processor,Z80free_Rd(processor->Rm.wr.HL),0)); + return (11); + break; + case 53: // DEC b(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doIncDec(processor,Z80free_Rd(processor->Rm.wr.HL),1)); + return (11); + break; + case 54: // LD (HL),n + Z80free_Wr(processor->Rm.wr.HL,Z80free_read_param_8(processor)); + return (10); + break; + case 55: // SCF + Z80free_setFlag(processor,F_C); + Z80free_resFlag(processor,F_H); + Z80free_resFlag(processor,F_N); + Z80free_adjustFlags(processor,processor->Rm.br.A); + return (4); + break; + case 56: // JR CF,n + tmp1=Z80free_read_param_8(processor); + if (F_C&processor->Rm.br.F) { + Z80free_jump_relative(processor,tmp1); + return (12); + } else { + return (7); + } + break; + case 57: // ADD HL,SP + processor->Rm.wr.HL=Z80free_doArithmetic16(processor,processor->Rm.wr.HL,processor->Rm.wr.SP,0,0); + return (11); + break; + case 58: // LD A,(nn) + processor->Rm.br.A=Z80free_Rd(Z80free_read_param_16(processor)); + return (13); + break; + case 59: // DEC SP + processor->Rm.wr.SP=Z80free_doIncDec16(processor,processor->Rm.wr.SP,1); + return (6); + break; + case 60: // INC A + processor->Rm.br.A=Z80free_doIncDec(processor,processor->Rm.br.A,0); + return (4); + break; + case 61: // DEC A + processor->Rm.br.A=Z80free_doIncDec(processor,processor->Rm.br.A,1); + return (4); + break; + case 62: // LD A,n + processor->Rm.br.A=Z80free_read_param_8(processor); + return (7); + break; + case 63: // CCF + Z80free_valFlag(processor,F_C,(~processor->Rm.br.F)&F_C); + Z80free_resFlag(processor,F_N); + Z80free_adjustFlags(processor,processor->Rm.br.A); + return (4); + break; + case 64: // LD B,B + processor->Rm.br.B=processor->Rm.br.B; + return (4); + break; + case 65: // LD B,C + processor->Rm.br.B=processor->Rm.br.C; + return (4); + break; + case 66: // LD B,D + processor->Rm.br.B=processor->Rm.br.D; + return (4); + break; + case 67: // LD B,E + processor->Rm.br.B=processor->Rm.br.E; + return (4); + break; + case 68: // LD B,H + processor->Rm.br.B=processor->Rm.br.H; + return (4); + break; + case 69: // LD B,L + processor->Rm.br.B=processor->Rm.br.L; + return (4); + break; + case 70: // LD B,(HL) + processor->Rm.br.B=Z80free_Rd(processor->Rm.wr.HL); + return (7); + break; + case 71: // LD B,A + processor->Rm.br.B=processor->Rm.br.A; + return (4); + break; + case 72: // LD C,B + processor->Rm.br.C=processor->Rm.br.B; + return (4); + break; + case 73: // LD C,C + processor->Rm.br.C=processor->Rm.br.C; + return (4); + break; + case 74: // LD C,D + processor->Rm.br.C=processor->Rm.br.D; + return (4); + break; + case 75: // LD C,E + processor->Rm.br.C=processor->Rm.br.E; + return (4); + break; + case 76: // LD C,H + processor->Rm.br.C=processor->Rm.br.H; + return (4); + break; + case 77: // LD C,L + processor->Rm.br.C=processor->Rm.br.L; + return (4); + break; + case 78: // LD C,(HL) + processor->Rm.br.C=Z80free_Rd(processor->Rm.wr.HL); + return (7); + break; + case 79: // LD C,A + processor->Rm.br.C=processor->Rm.br.A; + return (4); + break; + case 80: // LD D,B + processor->Rm.br.D=processor->Rm.br.B; + return (4); + break; + case 81: // LD D,C + processor->Rm.br.D=processor->Rm.br.C; + return (4); + break; + case 82: // LD D,D + processor->Rm.br.D=processor->Rm.br.D; + return (4); + break; + case 83: // LD D,E + processor->Rm.br.D=processor->Rm.br.E; + return (4); + break; + case 84: // LD D,H + processor->Rm.br.D=processor->Rm.br.H; + return (4); + break; + case 85: // LD D,L + processor->Rm.br.D=processor->Rm.br.L; + return (4); + break; + case 86: // LD D,(HL) + processor->Rm.br.D=Z80free_Rd(processor->Rm.wr.HL); + return (7); + break; + case 87: // LD D,A + processor->Rm.br.D=processor->Rm.br.A; + return (4); + break; + case 88: // LD E,B + processor->Rm.br.E=processor->Rm.br.B; + return (4); + break; + case 89: // LD E,C + processor->Rm.br.E=processor->Rm.br.C; + return (4); + break; + case 90: // LD E,D + processor->Rm.br.E=processor->Rm.br.D; + return (4); + break; + case 91: // LD E,E + processor->Rm.br.E=processor->Rm.br.E; + return (4); + break; + case 92: // LD E,H + processor->Rm.br.E=processor->Rm.br.H; + return (4); + break; + case 93: // LD E,L + processor->Rm.br.E=processor->Rm.br.L; + return (4); + break; + case 94: // LD E,(HL) + processor->Rm.br.E=Z80free_Rd(processor->Rm.wr.HL); + return (7); + break; + case 95: // LD E,A + processor->Rm.br.E=processor->Rm.br.A; + return (4); + break; + case 96: // LD H,B + processor->Rm.br.H=processor->Rm.br.B; + return (4); + break; + case 97: // LD H,C + processor->Rm.br.H=processor->Rm.br.C; + return (4); + break; + case 98: // LD H,D + processor->Rm.br.H=processor->Rm.br.D; + return (4); + break; + case 99: // LD H,E + processor->Rm.br.H=processor->Rm.br.E; + return (4); + break; + case 100: // LD H,H + processor->Rm.br.H=processor->Rm.br.H; + return (4); + break; + case 101: // LD H,L + processor->Rm.br.H=processor->Rm.br.L; + return (4); + break; + case 102: // LD H,(HL) + processor->Rm.br.H=Z80free_Rd(processor->Rm.wr.HL); + return (7); + break; + case 103: // LD H,A + processor->Rm.br.H=processor->Rm.br.A; + return (4); + break; + case 104: // LD L,B + processor->Rm.br.L=processor->Rm.br.B; + return (4); + break; + case 105: // LD L,C + processor->Rm.br.L=processor->Rm.br.C; + return (4); + break; + case 106: // LD L,D + processor->Rm.br.L=processor->Rm.br.D; + return (4); + break; + case 107: // LD L,E + processor->Rm.br.L=processor->Rm.br.E; + return (4); + break; + case 108: // LD L,H + processor->Rm.br.L=processor->Rm.br.H; + return (4); + break; + case 109: // LD L,L + processor->Rm.br.L=processor->Rm.br.L; + return (4); + break; + case 110: // LD L,(HL) + processor->Rm.br.L=Z80free_Rd(processor->Rm.wr.HL); + return (7); + break; + case 111: // LD L,A + processor->Rm.br.L=processor->Rm.br.A; + return (4); + break; + case 112: // LD (HL),B + Z80free_Wr(processor->Rm.wr.HL,processor->Rm.br.B); + return (7); + break; + case 113: // LD (HL),C + Z80free_Wr(processor->Rm.wr.HL,processor->Rm.br.C); + return (7); + break; + case 114: // LD (HL),D + Z80free_Wr(processor->Rm.wr.HL,processor->Rm.br.D); + return (7); + break; + case 115: // LD (HL),E + Z80free_Wr(processor->Rm.wr.HL,processor->Rm.br.E); + return (7); + break; + case 116: // LD (HL),H + Z80free_Wr(processor->Rm.wr.HL,processor->Rm.br.H); + return (7); + break; + case 117: // LD (HL),L + Z80free_Wr(processor->Rm.wr.HL,processor->Rm.br.L); + return (7); + break; + case 118: // HALT + processor->PC--; + processor->HALT=1; + return (4); + break; + case 119: // LD (HL),A + Z80free_Wr(processor->Rm.wr.HL,processor->Rm.br.A); + return (7); + break; + case 120: // LD A,B + processor->Rm.br.A=processor->Rm.br.B; + return (4); + break; + case 121: // LD A,C + processor->Rm.br.A=processor->Rm.br.C; + return (4); + break; + case 122: // LD A,D + processor->Rm.br.A=processor->Rm.br.D; + return (4); + break; + case 123: // LD A,E + processor->Rm.br.A=processor->Rm.br.E; + return (4); + break; + case 124: // LD A,H + processor->Rm.br.A=processor->Rm.br.H; + return (4); + break; + case 125: // LD A,L + processor->Rm.br.A=processor->Rm.br.L; + return (4); + break; + case 126: // LD A,(HL) + processor->Rm.br.A=Z80free_Rd(processor->Rm.wr.HL); + return (7); + break; + case 127: // LD A,A + processor->Rm.br.A=processor->Rm.br.A; + return (4); + break; + case 128: // ADD A,B + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.B,0,0); + return (4); + break; + case 129: // ADD A,C + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.C,0,0); + return (4); + break; + case 130: // ADD A,D + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.D,0,0); + return (4); + break; + case 131: // ADD A,E + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.E,0,0); + return (4); + break; + case 132: // ADD A,H + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.H,0,0); + return (4); + break; + case 133: // ADD A,L + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.L,0,0); + return (4); + break; + case 134: // ADD A,(HL) + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(processor->Rm.wr.HL),0,0); + return (7); + break; + case 135: // ADD A,A + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.A,0,0); + return (4); + break; + case 136: // ADC A,B + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.B,1,0); + return (4); + break; + case 137: // ADC A,C + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.C,1,0); + return (4); + break; + case 138: // ADC A,D + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.D,1,0); + return (4); + break; + case 139: // ADC A,E + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.E,1,0); + return (4); + break; + case 140: // ADC A,H + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.H,1,0); + return (4); + break; + case 141: // ADC A,L + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.L,1,0); + return (4); + break; + case 142: // ADC A,(HL) + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(processor->Rm.wr.HL),1,0); + return (7); + break; + case 143: // ADC A,A + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.A,1,0); + return (4); + break; + case 144: // SUB B + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.B,0,1); + return (4); + break; + case 145: // SUB C + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.C,0,1); + return (4); + break; + case 146: // SUB D + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.D,0,1); + return (4); + break; + case 147: // SUB E + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.E,0,1); + return (4); + break; + case 148: // SUB H + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.H,0,1); + return (4); + break; + case 149: // SUB L + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.L,0,1); + return (4); + break; + case 150: // SUB b(HL) + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(processor->Rm.wr.HL),0,1); + return (7); + break; + case 151: // SUB A + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.A,0,1); + return (4); + break; + case 152: // SBC A,B + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.B,1,1); + return (4); + break; + case 153: // SBC A,C + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.C,1,1); + return (4); + break; + case 154: // SBC A,D + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.D,1,1); + return (4); + break; + case 155: // SBC A,E + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.E,1,1); + return (4); + break; + case 156: // SBC A,H + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.H,1,1); + return (4); + break; + case 157: // SBC A,L + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.L,1,1); + return (4); + break; + case 158: // SBC A,(HL) + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(processor->Rm.wr.HL),1,1); + return (7); + break; + case 159: // SBC A,A + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.A,1,1); + return (4); + break; + case 160: // AND B + Z80free_doAND(processor,processor->Rm.br.B); + return (4); + break; + case 161: // AND C + Z80free_doAND(processor,processor->Rm.br.C); + return (4); + break; + case 162: // AND D + Z80free_doAND(processor,processor->Rm.br.D); + return (4); + break; + case 163: // AND E + Z80free_doAND(processor,processor->Rm.br.E); + return (4); + break; + case 164: // AND H + Z80free_doAND(processor,processor->Rm.br.H); + return (4); + break; + case 165: // AND L + Z80free_doAND(processor,processor->Rm.br.L); + return (4); + break; + case 166: // AND b(HL) + Z80free_doAND(processor,Z80free_Rd(processor->Rm.wr.HL)); + return (7); + break; + case 167: // AND A + Z80free_doAND(processor,processor->Rm.br.A); + return (4); + break; + case 168: // XOR B + Z80free_doXOR(processor,processor->Rm.br.B); + return (4); + break; + case 169: // XOR C + Z80free_doXOR(processor,processor->Rm.br.C); + return (4); + break; + case 170: // XOR D + Z80free_doXOR(processor,processor->Rm.br.D); + return (4); + break; + case 171: // XOR E + Z80free_doXOR(processor,processor->Rm.br.E); + return (4); + break; + case 172: // XOR H + Z80free_doXOR(processor,processor->Rm.br.H); + return (4); + break; + case 173: // XOR L + Z80free_doXOR(processor,processor->Rm.br.L); + return (4); + break; + case 174: // XOR b(HL) + Z80free_doXOR(processor,Z80free_Rd(processor->Rm.wr.HL)); + return (7); + break; + case 175: // XOR A + Z80free_doXOR(processor,processor->Rm.br.A); + return (4); + break; + case 176: // OR B + Z80free_doOR(processor,processor->Rm.br.B); + return (4); + break; + case 177: // OR C + Z80free_doOR(processor,processor->Rm.br.C); + return (4); + break; + case 178: // OR D + Z80free_doOR(processor,processor->Rm.br.D); + return (4); + break; + case 179: // OR E + Z80free_doOR(processor,processor->Rm.br.E); + return (4); + break; + case 180: // OR H + Z80free_doOR(processor,processor->Rm.br.H); + return (4); + break; + case 181: // OR L + Z80free_doOR(processor,processor->Rm.br.L); + return (4); + break; + case 182: // OR b(HL) + Z80free_doOR(processor,Z80free_Rd(processor->Rm.wr.HL)); + return (7); + break; + case 183: // OR A + Z80free_doOR(processor,processor->Rm.br.A); + return (4); + break; + case 184: // CP B + tmp1=processor->Rm.br.B; + Z80free_doArithmetic(processor,processor->Rm.br.A,tmp1,0,1); + Z80free_adjustFlags(processor,tmp1); + return (4); + break; + case 185: // CP C + tmp1=processor->Rm.br.C; + Z80free_doArithmetic(processor,processor->Rm.br.A,tmp1,0,1); + Z80free_adjustFlags(processor,tmp1); + return (4); + break; + case 186: // CP D + tmp1=processor->Rm.br.D; + Z80free_doArithmetic(processor,processor->Rm.br.A,tmp1,0,1); + Z80free_adjustFlags(processor,tmp1); + return (4); + break; + case 187: // CP E + tmp1=processor->Rm.br.E; + Z80free_doArithmetic(processor,processor->Rm.br.A,tmp1,0,1); + Z80free_adjustFlags(processor,tmp1); + return (4); + break; + case 188: // CP H + tmp1=processor->Rm.br.H; + Z80free_doArithmetic(processor,processor->Rm.br.A,tmp1,0,1); + Z80free_adjustFlags(processor,tmp1); + return (4); + break; + case 189: // CP L + tmp1=processor->Rm.br.L; + Z80free_doArithmetic(processor,processor->Rm.br.A,tmp1,0,1); + Z80free_adjustFlags(processor,tmp1); + return (4); + break; + case 190: // CP b(HL) + tmp1=Z80free_Rd(processor->Rm.wr.HL); + Z80free_doArithmetic(processor,processor->Rm.br.A,tmp1,0,1); + Z80free_adjustFlags(processor,tmp1); + return (7); + break; + case 191: // CP A + tmp1=processor->Rm.br.A; + Z80free_doArithmetic(processor,processor->Rm.br.A,tmp1,0,1); + Z80free_adjustFlags(processor,tmp1); + return (4); + break; + case 192: // RET NZ + if (0==(F_Z&processor->Rm.br.F)) { + processor->PC=Z80free_doPop(processor); + return (11); + } else { + return (5); + } + break; + case 193: // POP BC + processor->Rm.wr.BC=Z80free_doPop(processor); + return (10); + break; + case 194: // JP NZ,nn + tmp2=Z80free_read_param_16(processor); + if (0==(F_Z&processor->Rm.br.F)) { + processor->PC=tmp2; + return (10); + } else { + return (10); + } + break; + case 195: // JP nn + tmp2=Z80free_read_param_16(processor); + processor->PC=tmp2; + return (10); + break; + case 196: // CALL NZ,nn + tmp2=Z80free_read_param_16(processor); + if (0==(F_Z&processor->Rm.br.F)) { + Z80free_doPush(processor,processor->PC); + processor->PC=tmp2; + return (17); + } else { + return (10); + } + break; + case 197: // PUSH BC + Z80free_doPush(processor,processor->Rm.wr.BC); + return (11); + break; + case 198: // ADD A,n + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_read_param_8(processor),0,0); + return (7); + break; + case 199: // RST 0H + Z80free_doPush(processor,processor->PC); + processor->PC=0; + return (11); + break; + case 200: // RET Z + if (F_Z&processor->Rm.br.F) { + processor->PC=Z80free_doPop(processor); + return (11); + } else { + return (5); + } + break; + case 201: // RET + processor->PC=Z80free_doPop(processor); + return (10); + break; + case 202: // JP Z,nn + tmp2=Z80free_read_param_16(processor); + if (F_Z&processor->Rm.br.F) { + processor->PC=tmp2; + return (10); + } else { + return (10); + } + break; + case 204: // CALL Z,nn + tmp2=Z80free_read_param_16(processor); + if (F_Z&processor->Rm.br.F) { + Z80free_doPush(processor,processor->PC); + processor->PC=tmp2; + return (17); + } else { + return (10); + } + break; + case 205: // CALL nn + tmp2=Z80free_read_param_16(processor); + Z80free_doPush(processor,processor->PC); + processor->PC=tmp2; + return (17); + break; + case 206: // ADC A,n + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_read_param_8(processor),1,0); + return (7); + break; + case 207: // RST 8H + Z80free_doPush(processor,processor->PC); + processor->PC=8; + return (11); + break; + case 208: // RET NC + if (0==(F_C&processor->Rm.br.F)) { + processor->PC=Z80free_doPop(processor); + return (11); + } else { + return (5); + } + break; + case 209: // POP DE + processor->Rm.wr.DE=Z80free_doPop(processor); + return (10); + break; + case 210: // JP NC,nn + tmp2=Z80free_read_param_16(processor); + if (0==(F_C&processor->Rm.br.F)) { + processor->PC=tmp2; + return (10); + } else { + return (10); + } + break; + case 211: // OUT n,A + tmp1=processor->Rm.br.A; + tmp2=((word)tmp1)<<8; + Z80free_Out(tmp2+((word)Z80free_read_param_8(processor)),tmp1); + return (11); + break; + case 212: // CALL NC,nn + tmp2=Z80free_read_param_16(processor); + if (0==(F_C&processor->Rm.br.F)) { + Z80free_doPush(processor,processor->PC); + processor->PC=tmp2; + return (17); + } else { + return (10); + } + break; + case 213: // PUSH DE + Z80free_doPush(processor,processor->Rm.wr.DE); + return (11); + break; + case 214: // SUB n + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_read_param_8(processor),0,1); + return (7); + break; + case 215: // RST 10H + Z80free_doPush(processor,processor->PC); + processor->PC=16; + return (11); + break; + case 216: // RET CF + if (F_C&processor->Rm.br.F) { + processor->PC=Z80free_doPop(processor); + return (11); + } else { + return (5); + } + break; + case 217: // EXX + tmp2=processor->Rm.wr.BC; + processor->Rm.wr.BC=processor->Ra.wr.BC; + processor->Ra.wr.BC=tmp2; + tmp2=processor->Rm.wr.DE; + processor->Rm.wr.DE=processor->Ra.wr.DE; + processor->Ra.wr.DE=tmp2; + tmp2=processor->Rm.wr.HL; + processor->Rm.wr.HL=processor->Ra.wr.HL; + processor->Ra.wr.HL=tmp2; + return (4); + break; + case 218: // JP CF,nn + tmp2=Z80free_read_param_16(processor); + if (F_C&processor->Rm.br.F) { + processor->PC=tmp2; + return (10); + } else { + return (10); + } + break; + case 219: // IN A,n + tmp2=((word)processor->Rm.br.A)<<8; + processor->Rm.br.A=Z80free_In(tmp2+((word)Z80free_read_param_8(processor))); + return (11); + break; + case 220: // CALL CF,nn + tmp2=Z80free_read_param_16(processor); + if (F_C&processor->Rm.br.F) { + Z80free_doPush(processor,processor->PC); + processor->PC=tmp2; + return (17); + } else { + return (10); + } + break; + case 222: // SBC A,n + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_read_param_8(processor),1,1); + return (7); + break; + case 223: // RST 18H + Z80free_doPush(processor,processor->PC); + processor->PC=24; + return (11); + break; + case 224: // RET PO + if (0==(F_PV&processor->Rm.br.F)) { + processor->PC=Z80free_doPop(processor); + return (11); + } else { + return (5); + } + break; + case 225: // POP HL + processor->Rm.wr.HL=Z80free_doPop(processor); + return (10); + break; + case 226: // JP PO,nn + tmp2=Z80free_read_param_16(processor); + if (0==(F_PV&processor->Rm.br.F)) { + processor->PC=tmp2; + return (10); + } else { + return (10); + } + break; + case 227: // EX (SP),HL + tmp2=Z80free_read16(processor->Rm.wr.SP); + Z80free_write16(processor->Rm.wr.SP,processor->Rm.wr.HL); + processor->Rm.wr.HL=tmp2; + return (19); + break; + case 228: // CALL PO,nn + tmp2=Z80free_read_param_16(processor); + if (0==(F_PV&processor->Rm.br.F)) { + Z80free_doPush(processor,processor->PC); + processor->PC=tmp2; + return (17); + } else { + return (10); + } + break; + case 229: // PUSH HL + Z80free_doPush(processor,processor->Rm.wr.HL); + return (11); + break; + case 230: // AND n + Z80free_doAND(processor,Z80free_read_param_8(processor)); + return (7); + break; + case 231: // RST 20H + Z80free_doPush(processor,processor->PC); + processor->PC=32; + return (11); + break; + case 232: // RET PE + if (F_PV&processor->Rm.br.F) { + processor->PC=Z80free_doPop(processor); + return (11); + } else { + return (5); + } + break; + case 233: // JP HL + tmp2=processor->Rm.wr.HL; + processor->PC=tmp2; + return (4); + break; + case 234: // JP PE,nn + tmp2=Z80free_read_param_16(processor); + if (F_PV&processor->Rm.br.F) { + processor->PC=tmp2; + return (10); + } else { + return (10); + } + break; + case 235: // EX DE,HL + tmp2=processor->Rm.wr.DE; + processor->Rm.wr.DE=processor->Rm.wr.HL; + processor->Rm.wr.HL=tmp2; + return (4); + break; + case 236: // CALL PE,nn + tmp2=Z80free_read_param_16(processor); + if (F_PV&processor->Rm.br.F) { + Z80free_doPush(processor,processor->PC); + processor->PC=tmp2; + return (17); + } else { + return (10); + } + break; + case 238: // XOR n + Z80free_doXOR(processor,Z80free_read_param_8(processor)); + return (7); + break; + case 239: // RST 28H + Z80free_doPush(processor,processor->PC); + processor->PC=40; + return (11); + break; + case 240: // RET P + if (0==(F_S&processor->Rm.br.F)) { + processor->PC=Z80free_doPop(processor); + return (11); + } else { + return (5); + } + break; + case 241: // POP AF + processor->Rm.wr.AF=Z80free_doPop(processor); + return (10); + break; + case 242: // JP P,nn + tmp2=Z80free_read_param_16(processor); + if (0==(F_S&processor->Rm.br.F)) { + processor->PC=tmp2; + return (10); + } else { + return (10); + } + break; + case 243: // DI + processor->IFF1=0; + processor->IFF2=0; + return (4); + break; + case 244: // CALL P,nn + tmp2=Z80free_read_param_16(processor); + if (0==(F_S&processor->Rm.br.F)) { + Z80free_doPush(processor,processor->PC); + processor->PC=tmp2; + return (17); + } else { + return (10); + } + break; + case 245: // PUSH AF + Z80free_doPush(processor,processor->Rm.wr.AF); + return (11); + break; + case 246: // OR n + Z80free_doOR(processor,Z80free_read_param_8(processor)); + return (7); + break; + case 247: // RST 30H + Z80free_doPush(processor,processor->PC); + processor->PC=48; + return (11); + break; + case 248: // RET M + if (F_S&processor->Rm.br.F) { + processor->PC=Z80free_doPop(processor); + return (11); + } else { + return (5); + } + break; + case 249: // LD SP,HL + processor->Rm.wr.SP=processor->Rm.wr.HL; + return (6); + break; + case 250: // JP M,nn + tmp2=Z80free_read_param_16(processor); + if (F_S&processor->Rm.br.F) { + processor->PC=tmp2; + return (10); + } else { + return (10); + } + break; + case 251: // EI + processor->IFF1=2; /* this allows to delay one instruction the interrupts*/ + processor->IFF2=1; + return (4); + break; + case 252: // CALL M,nn + tmp2=Z80free_read_param_16(processor); + if (F_S&processor->Rm.br.F) { + Z80free_doPush(processor,processor->PC); + processor->PC=tmp2; + return (17); + } else { + return (10); + } + break; + case 254: // CP n + tmp1=Z80free_read_param_8(processor); + Z80free_doArithmetic(processor,processor->Rm.br.A,tmp1,0,1); + Z80free_adjustFlags(processor,tmp1); + return (7); + break; + case 255: // RST 38H + Z80free_doPush(processor,processor->PC); + processor->PC=56; + return (11); + break; + } + + return -1; +} diff --git a/src/z80free/Z80free_codes.txt b/src/z80free/Z80free_codes.txt new file mode 100644 index 0000000..c0e7ef0 --- /dev/null +++ b/src/z80free/Z80free_codes.txt @@ -0,0 +1,259 @@ +# OPCODES, TSTATES and INSTRUCTIONS for not prefixed instructions +# some syntax have been modified (like JP (HL) to JP HL, or Carry +# condition from C to CF) to simplify the parser +00 4 NOP +01 10 LD BC,nn +02 7 LD (BC),A +03 6 INC BC +04 4 INC B +05 4 DEC B +06 7 LD B,n +07 4 RLCA +08 4 EX AF,AF' +09 11 ADD HL,BC +0A 7 LD A,(BC) +0B 6 DEC BC +0C 4 INC C +0D 4 DEC C +0E 7 LD C,n +0F 4 RRCA +10 13/8 DJNZ n +11 10 LD DE,nn +12 7 LD (DE),A +13 6 INC DE +14 4 INC D +15 4 DEC D +16 7 LD D,n +17 4 RLA +18 12 JR n +19 11 ADD HL,DE +1A 7 LD A,(DE) +1B 6 DEC DE +1C 4 INC E +1D 4 DEC E +1E 7 LD E,n +1F 4 RRA +20 12/7 JR NZ,n +21 10 LD HL,nn +22 16 LD (nn),HL +23 6 INC HL +24 4 INC H +25 4 DEC H +26 7 LD H,n +27 4 DAA +28 12/7 JR Z,n +29 11 ADD HL,HL +2A 16 LD HL,(nn) +2B 6 DEC HL +2C 4 INC L +2D 4 DEC L +2E 7 LD L,n +2F 4 CPL +30 12/7 JR NC,n +31 10 LD SP,nn +32 13 LD (nn),A +33 6 INC SP +34 11 INC b(HL) +35 11 DEC b(HL) +36 10 LD (HL),n +37 4 SCF +38 12/7 JR CF,n +39 11 ADD HL,SP +3A 13 LD A,(nn) +3B 6 DEC SP +3C 4 INC A +3D 4 DEC A +3E 7 LD A,n +3F 4 CCF +40 4 LD B,B +41 4 LD B,C +42 4 LD B,D +43 4 LD B,E +44 4 LD B,H +45 4 LD B,L +46 7 LD B,(HL) +47 4 LD B,A +48 4 LD C,B +49 4 LD C,C +4A 4 LD C,D +4B 4 LD C,E +4C 4 LD C,H +4D 4 LD C,L +4E 7 LD C,(HL) +4F 4 LD C,A +50 4 LD D,B +51 4 LD D,C +52 4 LD D,D +53 4 LD D,E +54 4 LD D,H +55 4 LD D,L +56 7 LD D,(HL) +57 4 LD D,A +58 4 LD E,B +59 4 LD E,C +5A 4 LD E,D +5B 4 LD E,E +5C 4 LD E,H +5D 4 LD E,L +5E 7 LD E,(HL) +5F 4 LD E,A +60 4 LD H,B +61 4 LD H,C +62 4 LD H,D +63 4 LD H,E +64 4 LD H,H +65 4 LD H,L +66 7 LD H,(HL) +67 4 LD H,A +68 4 LD L,B +69 4 LD L,C +6A 4 LD L,D +6B 4 LD L,E +6C 4 LD L,H +6D 4 LD L,L +6E 7 LD L,(HL) +6F 4 LD L,A +70 7 LD (HL),B +71 7 LD (HL),C +72 7 LD (HL),D +73 7 LD (HL),E +74 7 LD (HL),H +75 7 LD (HL),L +76 4 HALT +77 7 LD (HL),A +78 4 LD A,B +79 4 LD A,C +7A 4 LD A,D +7B 4 LD A,E +7C 4 LD A,H +7D 4 LD A,L +7E 7 LD A,(HL) +7F 4 LD A,A +80 4 ADD A,B +81 4 ADD A,C +82 4 ADD A,D +83 4 ADD A,E +84 4 ADD A,H +85 4 ADD A,L +86 7 ADD A,(HL) +87 4 ADD A,A +88 4 ADC A,B +89 4 ADC A,C +8A 4 ADC A,D +8B 4 ADC A,E +8C 4 ADC A,H +8D 4 ADC A,L +8E 7 ADC A,(HL) +8F 4 ADC A,A +90 4 SUB B +91 4 SUB C +92 4 SUB D +93 4 SUB E +94 4 SUB H +95 4 SUB L +96 7 SUB b(HL) +97 4 SUB A +98 4 SBC A,B +99 4 SBC A,C +9A 4 SBC A,D +9B 4 SBC A,E +9C 4 SBC A,H +9D 4 SBC A,L +9E 7 SBC A,(HL) +9F 4 SBC A,A +A0 4 AND B +A1 4 AND C +A2 4 AND D +A3 4 AND E +A4 4 AND H +A5 4 AND L +A6 7 AND b(HL) +A7 4 AND A +A8 4 XOR B +A9 4 XOR C +AA 4 XOR D +AB 4 XOR E +AC 4 XOR H +AD 4 XOR L +AE 7 XOR b(HL) +AF 4 XOR A +B0 4 OR B +B1 4 OR C +B2 4 OR D +B3 4 OR E +B4 4 OR H +B5 4 OR L +B6 7 OR b(HL) +B7 4 OR A +B8 4 CP B +B9 4 CP C +BA 4 CP D +BB 4 CP E +BC 4 CP H +BD 4 CP L +BE 7 CP b(HL) +BF 4 CP A +C0 11/5 RET NZ +C1 10 POP BC +C2 10 JP NZ,nn +C3 10 JP nn +C4 17/10 CALL NZ,nn +C5 11 PUSH BC +C6 7 ADD A,n +C7 11 RST 0H +C8 11/5 RET Z +C9 10 RET +CA 10 JP Z,nn +CB * PREFIX +CC 17/10 CALL Z,nn +CD 17 CALL nn +CE 7 ADC A,n +CF 11 RST 8H +D0 11/5 RET NC +D1 10 POP DE +D2 10 JP NC,nn +D3 11 OUT n,A +D4 17/10 CALL NC,nn +D5 11 PUSH DE +D6 7 SUB n +D7 11 RST 10H +D8 11/5 RET CF +D9 4 EXX +DA 10 JP CF,nn +DB 11 IN A,n +DC 17/10 CALL CF,nn +DD * PREFIX +DE 7 SBC A,n +DF 11 RST 18H +E0 11/5 RET PO +E1 10 POP HL +E2 10 JP PO,nn +E3 19 EX (SP),HL +E4 17/10 CALL PO,nn +E5 11 PUSH HL +E6 7 AND n +E7 11 RST 20H +E8 11/5 RET PE +E9 4 JP HL +EA 10 JP PE,nn +EB 4 EX DE,HL +EC 17/10 CALL PE,nn +ED * PREFIX +EE 7 XOR n +EF 11 RST 28H +F0 11/5 RET P +F1 10 POP AF +F2 10 JP P,nn +F3 4 DI +F4 17/10 CALL P,nn +F5 11 PUSH AF +F6 7 OR n +F7 11 RST 30H +F8 11/5 RET M +F9 6 LD SP,HL +FA 10 JP M,nn +FB 4 EI +FC 17/10 CALL M,nn +FD * PREFIX +FE 7 CP n +FF 11 RST 38H diff --git a/src/z80free/Z80free_codesCB.c b/src/z80free/Z80free_codesCB.c new file mode 100644 index 0000000..154a8d7 --- /dev/null +++ b/src/z80free/Z80free_codesCB.c @@ -0,0 +1,1052 @@ +/* + * Copyright (C) 2008-2009 Sergio Costas (Raster Software Vigo) + * This file is part of Z80Free + * + * Z80Free is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Z80Free is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "Z80free.h" + +int Z80free_codesCB (Z80FREE *processor,byte opcode) { + + switch(opcode) { + case 0: // RLC B + processor->Rm.br.B=Z80free_doRLC(processor,1,processor->Rm.br.B); + return (4); + break; + case 1: // RLC C + processor->Rm.br.C=Z80free_doRLC(processor,1,processor->Rm.br.C); + return (4); + break; + case 2: // RLC D + processor->Rm.br.D=Z80free_doRLC(processor,1,processor->Rm.br.D); + return (4); + break; + case 3: // RLC E + processor->Rm.br.E=Z80free_doRLC(processor,1,processor->Rm.br.E); + return (4); + break; + case 4: // RLC H + processor->Rm.br.H=Z80free_doRLC(processor,1,processor->Rm.br.H); + return (4); + break; + case 5: // RLC L + processor->Rm.br.L=Z80free_doRLC(processor,1,processor->Rm.br.L); + return (4); + break; + case 6: // RLC b(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doRLC(processor,1,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 7: // RLC A + processor->Rm.br.A=Z80free_doRLC(processor,1,processor->Rm.br.A); + return (4); + break; + case 8: // RRC B + processor->Rm.br.B=Z80free_doRRC(processor,1,processor->Rm.br.B); + return (4); + break; + case 9: // RRC C + processor->Rm.br.C=Z80free_doRRC(processor,1,processor->Rm.br.C); + return (4); + break; + case 10: // RRC D + processor->Rm.br.D=Z80free_doRRC(processor,1,processor->Rm.br.D); + return (4); + break; + case 11: // RRC E + processor->Rm.br.E=Z80free_doRRC(processor,1,processor->Rm.br.E); + return (4); + break; + case 12: // RRC H + processor->Rm.br.H=Z80free_doRRC(processor,1,processor->Rm.br.H); + return (4); + break; + case 13: // RRC L + processor->Rm.br.L=Z80free_doRRC(processor,1,processor->Rm.br.L); + return (4); + break; + case 14: // RRC b(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doRRC(processor,1,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 15: // RRC A + processor->Rm.br.A=Z80free_doRRC(processor,1,processor->Rm.br.A); + return (4); + break; + case 16: // RL B + processor->Rm.br.B=Z80free_doRL(processor,1,processor->Rm.br.B); + return (4); + break; + case 17: // RL C + processor->Rm.br.C=Z80free_doRL(processor,1,processor->Rm.br.C); + return (4); + break; + case 18: // RL D + processor->Rm.br.D=Z80free_doRL(processor,1,processor->Rm.br.D); + return (4); + break; + case 19: // RL E + processor->Rm.br.E=Z80free_doRL(processor,1,processor->Rm.br.E); + return (4); + break; + case 20: // RL H + processor->Rm.br.H=Z80free_doRL(processor,1,processor->Rm.br.H); + return (4); + break; + case 21: // RL L + processor->Rm.br.L=Z80free_doRL(processor,1,processor->Rm.br.L); + return (4); + break; + case 22: // RL b(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doRL(processor,1,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 23: // RL A + processor->Rm.br.A=Z80free_doRL(processor,1,processor->Rm.br.A); + return (4); + break; + case 24: // RR B + processor->Rm.br.B=Z80free_doRR(processor,1,processor->Rm.br.B); + return (4); + break; + case 25: // RR C + processor->Rm.br.C=Z80free_doRR(processor,1,processor->Rm.br.C); + return (4); + break; + case 26: // RR D + processor->Rm.br.D=Z80free_doRR(processor,1,processor->Rm.br.D); + return (4); + break; + case 27: // RR E + processor->Rm.br.E=Z80free_doRR(processor,1,processor->Rm.br.E); + return (4); + break; + case 28: // RR H + processor->Rm.br.H=Z80free_doRR(processor,1,processor->Rm.br.H); + return (4); + break; + case 29: // RR L + processor->Rm.br.L=Z80free_doRR(processor,1,processor->Rm.br.L); + return (4); + break; + case 30: // RR b(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doRR(processor,1,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 31: // RR A + processor->Rm.br.A=Z80free_doRR(processor,1,processor->Rm.br.A); + return (4); + break; + case 32: // SLA B + processor->Rm.br.B=Z80free_doSL(processor,0,processor->Rm.br.B); + return (4); + break; + case 33: // SLA C + processor->Rm.br.C=Z80free_doSL(processor,0,processor->Rm.br.C); + return (4); + break; + case 34: // SLA D + processor->Rm.br.D=Z80free_doSL(processor,0,processor->Rm.br.D); + return (4); + break; + case 35: // SLA E + processor->Rm.br.E=Z80free_doSL(processor,0,processor->Rm.br.E); + return (4); + break; + case 36: // SLA H + processor->Rm.br.H=Z80free_doSL(processor,0,processor->Rm.br.H); + return (4); + break; + case 37: // SLA L + processor->Rm.br.L=Z80free_doSL(processor,0,processor->Rm.br.L); + return (4); + break; + case 38: // SLA b(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSL(processor,0,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 39: // SLA A + processor->Rm.br.A=Z80free_doSL(processor,0,processor->Rm.br.A); + return (4); + break; + case 40: // SRA B + processor->Rm.br.B=Z80free_doSR(processor,1,processor->Rm.br.B); + return (4); + break; + case 41: // SRA C + processor->Rm.br.C=Z80free_doSR(processor,1,processor->Rm.br.C); + return (4); + break; + case 42: // SRA D + processor->Rm.br.D=Z80free_doSR(processor,1,processor->Rm.br.D); + return (4); + break; + case 43: // SRA E + processor->Rm.br.E=Z80free_doSR(processor,1,processor->Rm.br.E); + return (4); + break; + case 44: // SRA H + processor->Rm.br.H=Z80free_doSR(processor,1,processor->Rm.br.H); + return (4); + break; + case 45: // SRA L + processor->Rm.br.L=Z80free_doSR(processor,1,processor->Rm.br.L); + return (4); + break; + case 46: // SRA b(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSR(processor,1,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 47: // SRA A + processor->Rm.br.A=Z80free_doSR(processor,1,processor->Rm.br.A); + return (4); + break; + case 48: // SLL B + processor->Rm.br.B=Z80free_doSL(processor,1,processor->Rm.br.B); + return (4); + break; + case 49: // SLL C + processor->Rm.br.C=Z80free_doSL(processor,1,processor->Rm.br.C); + return (4); + break; + case 50: // SLL D + processor->Rm.br.D=Z80free_doSL(processor,1,processor->Rm.br.D); + return (4); + break; + case 51: // SLL E + processor->Rm.br.E=Z80free_doSL(processor,1,processor->Rm.br.E); + return (4); + break; + case 52: // SLL H + processor->Rm.br.H=Z80free_doSL(processor,1,processor->Rm.br.H); + return (4); + break; + case 53: // SLL L + processor->Rm.br.L=Z80free_doSL(processor,1,processor->Rm.br.L); + return (4); + break; + case 54: // SLL b(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSL(processor,1,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 55: // SLL A + processor->Rm.br.A=Z80free_doSL(processor,1,processor->Rm.br.A); + return (4); + break; + case 56: // SRL B + processor->Rm.br.B=Z80free_doSR(processor,0,processor->Rm.br.B); + return (4); + break; + case 57: // SRL C + processor->Rm.br.C=Z80free_doSR(processor,0,processor->Rm.br.C); + return (4); + break; + case 58: // SRL D + processor->Rm.br.D=Z80free_doSR(processor,0,processor->Rm.br.D); + return (4); + break; + case 59: // SRL E + processor->Rm.br.E=Z80free_doSR(processor,0,processor->Rm.br.E); + return (4); + break; + case 60: // SRL H + processor->Rm.br.H=Z80free_doSR(processor,0,processor->Rm.br.H); + return (4); + break; + case 61: // SRL L + processor->Rm.br.L=Z80free_doSR(processor,0,processor->Rm.br.L); + return (4); + break; + case 62: // SRL b(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSR(processor,0,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 63: // SRL A + processor->Rm.br.A=Z80free_doSR(processor,0,processor->Rm.br.A); + return (4); + break; + case 64: // BIT 0,B + Z80free_doBIT(processor,0,processor->Rm.br.B); + return (4); + break; + case 65: // BIT 0,C + Z80free_doBIT(processor,0,processor->Rm.br.C); + return (4); + break; + case 66: // BIT 0,D + Z80free_doBIT(processor,0,processor->Rm.br.D); + return (4); + break; + case 67: // BIT 0,E + Z80free_doBIT(processor,0,processor->Rm.br.E); + return (4); + break; + case 68: // BIT 0,H + Z80free_doBIT(processor,0,processor->Rm.br.H); + return (4); + break; + case 69: // BIT 0,L + Z80free_doBIT(processor,0,processor->Rm.br.L); + return (4); + break; + case 70: // BIT 0,(HL) + Z80free_doBIT(processor,0,Z80free_Rd(processor->Rm.wr.HL)); + return (8); + break; + case 71: // BIT 0,A + Z80free_doBIT(processor,0,processor->Rm.br.A); + return (4); + break; + case 72: // BIT 1,B + Z80free_doBIT(processor,1,processor->Rm.br.B); + return (4); + break; + case 73: // BIT 1,C + Z80free_doBIT(processor,1,processor->Rm.br.C); + return (4); + break; + case 74: // BIT 1,D + Z80free_doBIT(processor,1,processor->Rm.br.D); + return (4); + break; + case 75: // BIT 1,E + Z80free_doBIT(processor,1,processor->Rm.br.E); + return (4); + break; + case 76: // BIT 1,H + Z80free_doBIT(processor,1,processor->Rm.br.H); + return (4); + break; + case 77: // BIT 1,L + Z80free_doBIT(processor,1,processor->Rm.br.L); + return (4); + break; + case 78: // BIT 1,(HL) + Z80free_doBIT(processor,1,Z80free_Rd(processor->Rm.wr.HL)); + return (8); + break; + case 79: // BIT 1,A + Z80free_doBIT(processor,1,processor->Rm.br.A); + return (4); + break; + case 80: // BIT 2,B + Z80free_doBIT(processor,2,processor->Rm.br.B); + return (4); + break; + case 81: // BIT 2,C + Z80free_doBIT(processor,2,processor->Rm.br.C); + return (4); + break; + case 82: // BIT 2,D + Z80free_doBIT(processor,2,processor->Rm.br.D); + return (4); + break; + case 83: // BIT 2,E + Z80free_doBIT(processor,2,processor->Rm.br.E); + return (4); + break; + case 84: // BIT 2,H + Z80free_doBIT(processor,2,processor->Rm.br.H); + return (4); + break; + case 85: // BIT 2,L + Z80free_doBIT(processor,2,processor->Rm.br.L); + return (4); + break; + case 86: // BIT 2,(HL) + Z80free_doBIT(processor,2,Z80free_Rd(processor->Rm.wr.HL)); + return (8); + break; + case 87: // BIT 2,A + Z80free_doBIT(processor,2,processor->Rm.br.A); + return (4); + break; + case 88: // BIT 3,B + Z80free_doBIT(processor,3,processor->Rm.br.B); + return (4); + break; + case 89: // BIT 3,C + Z80free_doBIT(processor,3,processor->Rm.br.C); + return (4); + break; + case 90: // BIT 3,D + Z80free_doBIT(processor,3,processor->Rm.br.D); + return (4); + break; + case 91: // BIT 3,E + Z80free_doBIT(processor,3,processor->Rm.br.E); + return (4); + break; + case 92: // BIT 3,H + Z80free_doBIT(processor,3,processor->Rm.br.H); + return (4); + break; + case 93: // BIT 3,L + Z80free_doBIT(processor,3,processor->Rm.br.L); + return (4); + break; + case 94: // BIT 3,(HL) + Z80free_doBIT(processor,3,Z80free_Rd(processor->Rm.wr.HL)); + return (8); + break; + case 95: // BIT 3,A + Z80free_doBIT(processor,3,processor->Rm.br.A); + return (4); + break; + case 96: // BIT 4,B + Z80free_doBIT(processor,4,processor->Rm.br.B); + return (4); + break; + case 97: // BIT 4,C + Z80free_doBIT(processor,4,processor->Rm.br.C); + return (4); + break; + case 98: // BIT 4,D + Z80free_doBIT(processor,4,processor->Rm.br.D); + return (4); + break; + case 99: // BIT 4,E + Z80free_doBIT(processor,4,processor->Rm.br.E); + return (4); + break; + case 100: // BIT 4,H + Z80free_doBIT(processor,4,processor->Rm.br.H); + return (4); + break; + case 101: // BIT 4,L + Z80free_doBIT(processor,4,processor->Rm.br.L); + return (4); + break; + case 102: // BIT 4,(HL) + Z80free_doBIT(processor,4,Z80free_Rd(processor->Rm.wr.HL)); + return (8); + break; + case 103: // BIT 4,A + Z80free_doBIT(processor,4,processor->Rm.br.A); + return (4); + break; + case 104: // BIT 5,B + Z80free_doBIT(processor,5,processor->Rm.br.B); + return (4); + break; + case 105: // BIT 5,C + Z80free_doBIT(processor,5,processor->Rm.br.C); + return (4); + break; + case 106: // BIT 5,D + Z80free_doBIT(processor,5,processor->Rm.br.D); + return (4); + break; + case 107: // BIT 5,E + Z80free_doBIT(processor,5,processor->Rm.br.E); + return (4); + break; + case 108: // BIT 5,H + Z80free_doBIT(processor,5,processor->Rm.br.H); + return (4); + break; + case 109: // BIT 5,L + Z80free_doBIT(processor,5,processor->Rm.br.L); + return (4); + break; + case 110: // BIT 5,(HL) + Z80free_doBIT(processor,5,Z80free_Rd(processor->Rm.wr.HL)); + return (8); + break; + case 111: // BIT 5,A + Z80free_doBIT(processor,5,processor->Rm.br.A); + return (4); + break; + case 112: // BIT 6,B + Z80free_doBIT(processor,6,processor->Rm.br.B); + return (4); + break; + case 113: // BIT 6,C + Z80free_doBIT(processor,6,processor->Rm.br.C); + return (4); + break; + case 114: // BIT 6,D + Z80free_doBIT(processor,6,processor->Rm.br.D); + return (4); + break; + case 115: // BIT 6,E + Z80free_doBIT(processor,6,processor->Rm.br.E); + return (4); + break; + case 116: // BIT 6,H + Z80free_doBIT(processor,6,processor->Rm.br.H); + return (4); + break; + case 117: // BIT 6,L + Z80free_doBIT(processor,6,processor->Rm.br.L); + return (4); + break; + case 118: // BIT 6,(HL) + Z80free_doBIT(processor,6,Z80free_Rd(processor->Rm.wr.HL)); + return (8); + break; + case 119: // BIT 6,A + Z80free_doBIT(processor,6,processor->Rm.br.A); + return (4); + break; + case 120: // BIT 7,B + Z80free_doBIT(processor,7,processor->Rm.br.B); + return (4); + break; + case 121: // BIT 7,C + Z80free_doBIT(processor,7,processor->Rm.br.C); + return (4); + break; + case 122: // BIT 7,D + Z80free_doBIT(processor,7,processor->Rm.br.D); + return (4); + break; + case 123: // BIT 7,E + Z80free_doBIT(processor,7,processor->Rm.br.E); + return (4); + break; + case 124: // BIT 7,H + Z80free_doBIT(processor,7,processor->Rm.br.H); + return (4); + break; + case 125: // BIT 7,L + Z80free_doBIT(processor,7,processor->Rm.br.L); + return (4); + break; + case 126: // BIT 7,(HL) + Z80free_doBIT(processor,7,Z80free_Rd(processor->Rm.wr.HL)); + return (8); + break; + case 127: // BIT 7,A + Z80free_doBIT(processor,7,processor->Rm.br.A); + return (4); + break; + case 128: // RES 0,B + processor->Rm.br.B=Z80free_doSetRes(processor,0,0,processor->Rm.br.B); + return (4); + break; + case 129: // RES 0,C + processor->Rm.br.C=Z80free_doSetRes(processor,0,0,processor->Rm.br.C); + return (4); + break; + case 130: // RES 0,D + processor->Rm.br.D=Z80free_doSetRes(processor,0,0,processor->Rm.br.D); + return (4); + break; + case 131: // RES 0,E + processor->Rm.br.E=Z80free_doSetRes(processor,0,0,processor->Rm.br.E); + return (4); + break; + case 132: // RES 0,H + processor->Rm.br.H=Z80free_doSetRes(processor,0,0,processor->Rm.br.H); + return (4); + break; + case 133: // RES 0,L + processor->Rm.br.L=Z80free_doSetRes(processor,0,0,processor->Rm.br.L); + return (4); + break; + case 134: // RES 0,(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSetRes(processor,0,0,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 135: // RES 0,A + processor->Rm.br.A=Z80free_doSetRes(processor,0,0,processor->Rm.br.A); + return (4); + break; + case 136: // RES 1,B + processor->Rm.br.B=Z80free_doSetRes(processor,0,1,processor->Rm.br.B); + return (4); + break; + case 137: // RES 1,C + processor->Rm.br.C=Z80free_doSetRes(processor,0,1,processor->Rm.br.C); + return (4); + break; + case 138: // RES 1,D + processor->Rm.br.D=Z80free_doSetRes(processor,0,1,processor->Rm.br.D); + return (4); + break; + case 139: // RES 1,E + processor->Rm.br.E=Z80free_doSetRes(processor,0,1,processor->Rm.br.E); + return (4); + break; + case 140: // RES 1,H + processor->Rm.br.H=Z80free_doSetRes(processor,0,1,processor->Rm.br.H); + return (4); + break; + case 141: // RES 1,L + processor->Rm.br.L=Z80free_doSetRes(processor,0,1,processor->Rm.br.L); + return (4); + break; + case 142: // RES 1,(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSetRes(processor,0,1,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 143: // RES 1,A + processor->Rm.br.A=Z80free_doSetRes(processor,0,1,processor->Rm.br.A); + return (4); + break; + case 144: // RES 2,B + processor->Rm.br.B=Z80free_doSetRes(processor,0,2,processor->Rm.br.B); + return (4); + break; + case 145: // RES 2,C + processor->Rm.br.C=Z80free_doSetRes(processor,0,2,processor->Rm.br.C); + return (4); + break; + case 146: // RES 2,D + processor->Rm.br.D=Z80free_doSetRes(processor,0,2,processor->Rm.br.D); + return (4); + break; + case 147: // RES 2,E + processor->Rm.br.E=Z80free_doSetRes(processor,0,2,processor->Rm.br.E); + return (4); + break; + case 148: // RES 2,H + processor->Rm.br.H=Z80free_doSetRes(processor,0,2,processor->Rm.br.H); + return (4); + break; + case 149: // RES 2,L + processor->Rm.br.L=Z80free_doSetRes(processor,0,2,processor->Rm.br.L); + return (4); + break; + case 150: // RES 2,(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSetRes(processor,0,2,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 151: // RES 2,A + processor->Rm.br.A=Z80free_doSetRes(processor,0,2,processor->Rm.br.A); + return (4); + break; + case 152: // RES 3,B + processor->Rm.br.B=Z80free_doSetRes(processor,0,3,processor->Rm.br.B); + return (4); + break; + case 153: // RES 3,C + processor->Rm.br.C=Z80free_doSetRes(processor,0,3,processor->Rm.br.C); + return (4); + break; + case 154: // RES 3,D + processor->Rm.br.D=Z80free_doSetRes(processor,0,3,processor->Rm.br.D); + return (4); + break; + case 155: // RES 3,E + processor->Rm.br.E=Z80free_doSetRes(processor,0,3,processor->Rm.br.E); + return (4); + break; + case 156: // RES 3,H + processor->Rm.br.H=Z80free_doSetRes(processor,0,3,processor->Rm.br.H); + return (4); + break; + case 157: // RES 3,L + processor->Rm.br.L=Z80free_doSetRes(processor,0,3,processor->Rm.br.L); + return (4); + break; + case 158: // RES 3,(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSetRes(processor,0,3,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 159: // RES 3,A + processor->Rm.br.A=Z80free_doSetRes(processor,0,3,processor->Rm.br.A); + return (4); + break; + case 160: // RES 4,B + processor->Rm.br.B=Z80free_doSetRes(processor,0,4,processor->Rm.br.B); + return (4); + break; + case 161: // RES 4,C + processor->Rm.br.C=Z80free_doSetRes(processor,0,4,processor->Rm.br.C); + return (4); + break; + case 162: // RES 4,D + processor->Rm.br.D=Z80free_doSetRes(processor,0,4,processor->Rm.br.D); + return (4); + break; + case 163: // RES 4,E + processor->Rm.br.E=Z80free_doSetRes(processor,0,4,processor->Rm.br.E); + return (4); + break; + case 164: // RES 4,H + processor->Rm.br.H=Z80free_doSetRes(processor,0,4,processor->Rm.br.H); + return (4); + break; + case 165: // RES 4,L + processor->Rm.br.L=Z80free_doSetRes(processor,0,4,processor->Rm.br.L); + return (4); + break; + case 166: // RES 4,(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSetRes(processor,0,4,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 167: // RES 4,A + processor->Rm.br.A=Z80free_doSetRes(processor,0,4,processor->Rm.br.A); + return (4); + break; + case 168: // RES 5,B + processor->Rm.br.B=Z80free_doSetRes(processor,0,5,processor->Rm.br.B); + return (4); + break; + case 169: // RES 5,C + processor->Rm.br.C=Z80free_doSetRes(processor,0,5,processor->Rm.br.C); + return (4); + break; + case 170: // RES 5,D + processor->Rm.br.D=Z80free_doSetRes(processor,0,5,processor->Rm.br.D); + return (4); + break; + case 171: // RES 5,E + processor->Rm.br.E=Z80free_doSetRes(processor,0,5,processor->Rm.br.E); + return (4); + break; + case 172: // RES 5,H + processor->Rm.br.H=Z80free_doSetRes(processor,0,5,processor->Rm.br.H); + return (4); + break; + case 173: // RES 5,L + processor->Rm.br.L=Z80free_doSetRes(processor,0,5,processor->Rm.br.L); + return (4); + break; + case 174: // RES 5,(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSetRes(processor,0,5,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 175: // RES 5,A + processor->Rm.br.A=Z80free_doSetRes(processor,0,5,processor->Rm.br.A); + return (4); + break; + case 176: // RES 6,B + processor->Rm.br.B=Z80free_doSetRes(processor,0,6,processor->Rm.br.B); + return (4); + break; + case 177: // RES 6,C + processor->Rm.br.C=Z80free_doSetRes(processor,0,6,processor->Rm.br.C); + return (4); + break; + case 178: // RES 6,D + processor->Rm.br.D=Z80free_doSetRes(processor,0,6,processor->Rm.br.D); + return (4); + break; + case 179: // RES 6,E + processor->Rm.br.E=Z80free_doSetRes(processor,0,6,processor->Rm.br.E); + return (4); + break; + case 180: // RES 6,H + processor->Rm.br.H=Z80free_doSetRes(processor,0,6,processor->Rm.br.H); + return (4); + break; + case 181: // RES 6,L + processor->Rm.br.L=Z80free_doSetRes(processor,0,6,processor->Rm.br.L); + return (4); + break; + case 182: // RES 6,(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSetRes(processor,0,6,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 183: // RES 6,A + processor->Rm.br.A=Z80free_doSetRes(processor,0,6,processor->Rm.br.A); + return (4); + break; + case 184: // RES 7,B + processor->Rm.br.B=Z80free_doSetRes(processor,0,7,processor->Rm.br.B); + return (4); + break; + case 185: // RES 7,C + processor->Rm.br.C=Z80free_doSetRes(processor,0,7,processor->Rm.br.C); + return (4); + break; + case 186: // RES 7,D + processor->Rm.br.D=Z80free_doSetRes(processor,0,7,processor->Rm.br.D); + return (4); + break; + case 187: // RES 7,E + processor->Rm.br.E=Z80free_doSetRes(processor,0,7,processor->Rm.br.E); + return (4); + break; + case 188: // RES 7,H + processor->Rm.br.H=Z80free_doSetRes(processor,0,7,processor->Rm.br.H); + return (4); + break; + case 189: // RES 7,L + processor->Rm.br.L=Z80free_doSetRes(processor,0,7,processor->Rm.br.L); + return (4); + break; + case 190: // RES 7,(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSetRes(processor,0,7,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 191: // RES 7,A + processor->Rm.br.A=Z80free_doSetRes(processor,0,7,processor->Rm.br.A); + return (4); + break; + case 192: // SET 0,B + processor->Rm.br.B=Z80free_doSetRes(processor,1,0,processor->Rm.br.B); + return (4); + break; + case 193: // SET 0,C + processor->Rm.br.C=Z80free_doSetRes(processor,1,0,processor->Rm.br.C); + return (4); + break; + case 194: // SET 0,D + processor->Rm.br.D=Z80free_doSetRes(processor,1,0,processor->Rm.br.D); + return (4); + break; + case 195: // SET 0,E + processor->Rm.br.E=Z80free_doSetRes(processor,1,0,processor->Rm.br.E); + return (4); + break; + case 196: // SET 0,H + processor->Rm.br.H=Z80free_doSetRes(processor,1,0,processor->Rm.br.H); + return (4); + break; + case 197: // SET 0,L + processor->Rm.br.L=Z80free_doSetRes(processor,1,0,processor->Rm.br.L); + return (4); + break; + case 198: // SET 0,(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSetRes(processor,1,0,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 199: // SET 0,A + processor->Rm.br.A=Z80free_doSetRes(processor,1,0,processor->Rm.br.A); + return (4); + break; + case 200: // SET 1,B + processor->Rm.br.B=Z80free_doSetRes(processor,1,1,processor->Rm.br.B); + return (4); + break; + case 201: // SET 1,C + processor->Rm.br.C=Z80free_doSetRes(processor,1,1,processor->Rm.br.C); + return (4); + break; + case 202: // SET 1,D + processor->Rm.br.D=Z80free_doSetRes(processor,1,1,processor->Rm.br.D); + return (4); + break; + case 203: // SET 1,E + processor->Rm.br.E=Z80free_doSetRes(processor,1,1,processor->Rm.br.E); + return (4); + break; + case 204: // SET 1,H + processor->Rm.br.H=Z80free_doSetRes(processor,1,1,processor->Rm.br.H); + return (4); + break; + case 205: // SET 1,L + processor->Rm.br.L=Z80free_doSetRes(processor,1,1,processor->Rm.br.L); + return (4); + break; + case 206: // SET 1,(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSetRes(processor,1,1,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 207: // SET 1,A + processor->Rm.br.A=Z80free_doSetRes(processor,1,1,processor->Rm.br.A); + return (4); + break; + case 208: // SET 2,B + processor->Rm.br.B=Z80free_doSetRes(processor,1,2,processor->Rm.br.B); + return (4); + break; + case 209: // SET 2,C + processor->Rm.br.C=Z80free_doSetRes(processor,1,2,processor->Rm.br.C); + return (4); + break; + case 210: // SET 2,D + processor->Rm.br.D=Z80free_doSetRes(processor,1,2,processor->Rm.br.D); + return (4); + break; + case 211: // SET 2,E + processor->Rm.br.E=Z80free_doSetRes(processor,1,2,processor->Rm.br.E); + return (4); + break; + case 212: // SET 2,H + processor->Rm.br.H=Z80free_doSetRes(processor,1,2,processor->Rm.br.H); + return (4); + break; + case 213: // SET 2,L + processor->Rm.br.L=Z80free_doSetRes(processor,1,2,processor->Rm.br.L); + return (4); + break; + case 214: // SET 2,(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSetRes(processor,1,2,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 215: // SET 2,A + processor->Rm.br.A=Z80free_doSetRes(processor,1,2,processor->Rm.br.A); + return (4); + break; + case 216: // SET 3,B + processor->Rm.br.B=Z80free_doSetRes(processor,1,3,processor->Rm.br.B); + return (4); + break; + case 217: // SET 3,C + processor->Rm.br.C=Z80free_doSetRes(processor,1,3,processor->Rm.br.C); + return (4); + break; + case 218: // SET 3,D + processor->Rm.br.D=Z80free_doSetRes(processor,1,3,processor->Rm.br.D); + return (4); + break; + case 219: // SET 3,E + processor->Rm.br.E=Z80free_doSetRes(processor,1,3,processor->Rm.br.E); + return (4); + break; + case 220: // SET 3,H + processor->Rm.br.H=Z80free_doSetRes(processor,1,3,processor->Rm.br.H); + return (4); + break; + case 221: // SET 3,L + processor->Rm.br.L=Z80free_doSetRes(processor,1,3,processor->Rm.br.L); + return (4); + break; + case 222: // SET 3,(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSetRes(processor,1,3,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 223: // SET 3,A + processor->Rm.br.A=Z80free_doSetRes(processor,1,3,processor->Rm.br.A); + return (4); + break; + case 224: // SET 4,B + processor->Rm.br.B=Z80free_doSetRes(processor,1,4,processor->Rm.br.B); + return (4); + break; + case 225: // SET 4,C + processor->Rm.br.C=Z80free_doSetRes(processor,1,4,processor->Rm.br.C); + return (4); + break; + case 226: // SET 4,D + processor->Rm.br.D=Z80free_doSetRes(processor,1,4,processor->Rm.br.D); + return (4); + break; + case 227: // SET 4,E + processor->Rm.br.E=Z80free_doSetRes(processor,1,4,processor->Rm.br.E); + return (4); + break; + case 228: // SET 4,H + processor->Rm.br.H=Z80free_doSetRes(processor,1,4,processor->Rm.br.H); + return (4); + break; + case 229: // SET 4,L + processor->Rm.br.L=Z80free_doSetRes(processor,1,4,processor->Rm.br.L); + return (4); + break; + case 230: // SET 4,(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSetRes(processor,1,4,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 231: // SET 4,A + processor->Rm.br.A=Z80free_doSetRes(processor,1,4,processor->Rm.br.A); + return (4); + break; + case 232: // SET 5,B + processor->Rm.br.B=Z80free_doSetRes(processor,1,5,processor->Rm.br.B); + return (4); + break; + case 233: // SET 5,C + processor->Rm.br.C=Z80free_doSetRes(processor,1,5,processor->Rm.br.C); + return (4); + break; + case 234: // SET 5,D + processor->Rm.br.D=Z80free_doSetRes(processor,1,5,processor->Rm.br.D); + return (4); + break; + case 235: // SET 5,E + processor->Rm.br.E=Z80free_doSetRes(processor,1,5,processor->Rm.br.E); + return (4); + break; + case 236: // SET 5,H + processor->Rm.br.H=Z80free_doSetRes(processor,1,5,processor->Rm.br.H); + return (4); + break; + case 237: // SET 5,L + processor->Rm.br.L=Z80free_doSetRes(processor,1,5,processor->Rm.br.L); + return (4); + break; + case 238: // SET 5,(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSetRes(processor,1,5,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 239: // SET 5,A + processor->Rm.br.A=Z80free_doSetRes(processor,1,5,processor->Rm.br.A); + return (4); + break; + case 240: // SET 6,B + processor->Rm.br.B=Z80free_doSetRes(processor,1,6,processor->Rm.br.B); + return (4); + break; + case 241: // SET 6,C + processor->Rm.br.C=Z80free_doSetRes(processor,1,6,processor->Rm.br.C); + return (4); + break; + case 242: // SET 6,D + processor->Rm.br.D=Z80free_doSetRes(processor,1,6,processor->Rm.br.D); + return (4); + break; + case 243: // SET 6,E + processor->Rm.br.E=Z80free_doSetRes(processor,1,6,processor->Rm.br.E); + return (4); + break; + case 244: // SET 6,H + processor->Rm.br.H=Z80free_doSetRes(processor,1,6,processor->Rm.br.H); + return (4); + break; + case 245: // SET 6,L + processor->Rm.br.L=Z80free_doSetRes(processor,1,6,processor->Rm.br.L); + return (4); + break; + case 246: // SET 6,(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSetRes(processor,1,6,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 247: // SET 6,A + processor->Rm.br.A=Z80free_doSetRes(processor,1,6,processor->Rm.br.A); + return (4); + break; + case 248: // SET 7,B + processor->Rm.br.B=Z80free_doSetRes(processor,1,7,processor->Rm.br.B); + return (4); + break; + case 249: // SET 7,C + processor->Rm.br.C=Z80free_doSetRes(processor,1,7,processor->Rm.br.C); + return (4); + break; + case 250: // SET 7,D + processor->Rm.br.D=Z80free_doSetRes(processor,1,7,processor->Rm.br.D); + return (4); + break; + case 251: // SET 7,E + processor->Rm.br.E=Z80free_doSetRes(processor,1,7,processor->Rm.br.E); + return (4); + break; + case 252: // SET 7,H + processor->Rm.br.H=Z80free_doSetRes(processor,1,7,processor->Rm.br.H); + return (4); + break; + case 253: // SET 7,L + processor->Rm.br.L=Z80free_doSetRes(processor,1,7,processor->Rm.br.L); + return (4); + break; + case 254: // SET 7,(HL) + Z80free_Wr(processor->Rm.wr.HL,Z80free_doSetRes(processor,1,7,Z80free_Rd(processor->Rm.wr.HL))); + return (11); + break; + case 255: // SET 7,A + processor->Rm.br.A=Z80free_doSetRes(processor,1,7,processor->Rm.br.A); + return (4); + break; + } + + return -1; +} diff --git a/src/z80free/Z80free_codesCB.txt b/src/z80free/Z80free_codesCB.txt new file mode 100644 index 0000000..91c59d3 --- /dev/null +++ b/src/z80free/Z80free_codesCB.txt @@ -0,0 +1,259 @@ +# OPCODES, TSTATES and INSTRUCTIONS for CB prefixed instructions +# The TSTATES are 4 less than the real ones because they are counted +# when executing the CB prefix +00 4 RLC B +01 4 RLC C +02 4 RLC D +03 4 RLC E +04 4 RLC H +05 4 RLC L +06 11 RLC b(HL) +07 4 RLC A +08 4 RRC B +09 4 RRC C +0A 4 RRC D +0B 4 RRC E +0C 4 RRC H +0D 4 RRC L +0E 11 RRC b(HL) +0F 4 RRC A +10 4 RL B +11 4 RL C +12 4 RL D +13 4 RL E +14 4 RL H +15 4 RL L +16 11 RL b(HL) +17 4 RL A +18 4 RR B +19 4 RR C +1A 4 RR D +1B 4 RR E +1C 4 RR H +1D 4 RR L +1E 11 RR b(HL) +1F 4 RR A +20 4 SLA B +21 4 SLA C +22 4 SLA D +23 4 SLA E +24 4 SLA H +25 4 SLA L +26 11 SLA b(HL) +27 4 SLA A +28 4 SRA B +29 4 SRA C +2A 4 SRA D +2B 4 SRA E +2C 4 SRA H +2D 4 SRA L +2E 11 SRA b(HL) +2F 4 SRA A +30 4 SLL B +31 4 SLL C +32 4 SLL D +33 4 SLL E +34 4 SLL H +35 4 SLL L +36 11 SLL b(HL) +37 4 SLL A +38 4 SRL B +39 4 SRL C +3A 4 SRL D +3B 4 SRL E +3C 4 SRL H +3D 4 SRL L +3E 11 SRL b(HL) +3F 4 SRL A +40 4 BIT 0,B +41 4 BIT 0,C +42 4 BIT 0,D +43 4 BIT 0,E +44 4 BIT 0,H +45 4 BIT 0,L +46 8 BIT 0,(HL) +47 4 BIT 0,A +48 4 BIT 1,B +49 4 BIT 1,C +4A 4 BIT 1,D +4B 4 BIT 1,E +4C 4 BIT 1,H +4D 4 BIT 1,L +4E 8 BIT 1,(HL) +4F 4 BIT 1,A +50 4 BIT 2,B +51 4 BIT 2,C +52 4 BIT 2,D +53 4 BIT 2,E +54 4 BIT 2,H +55 4 BIT 2,L +56 8 BIT 2,(HL) +57 4 BIT 2,A +58 4 BIT 3,B +59 4 BIT 3,C +5A 4 BIT 3,D +5B 4 BIT 3,E +5C 4 BIT 3,H +5D 4 BIT 3,L +5E 8 BIT 3,(HL) +5F 4 BIT 3,A +60 4 BIT 4,B +61 4 BIT 4,C +62 4 BIT 4,D +63 4 BIT 4,E +64 4 BIT 4,H +65 4 BIT 4,L +66 8 BIT 4,(HL) +67 4 BIT 4,A +68 4 BIT 5,B +69 4 BIT 5,C +6A 4 BIT 5,D +6B 4 BIT 5,E +6C 4 BIT 5,H +6D 4 BIT 5,L +6E 8 BIT 5,(HL) +6F 4 BIT 5,A +70 4 BIT 6,B +71 4 BIT 6,C +72 4 BIT 6,D +73 4 BIT 6,E +74 4 BIT 6,H +75 4 BIT 6,L +76 8 BIT 6,(HL) +77 4 BIT 6,A +78 4 BIT 7,B +79 4 BIT 7,C +7A 4 BIT 7,D +7B 4 BIT 7,E +7C 4 BIT 7,H +7D 4 BIT 7,L +7E 8 BIT 7,(HL) +7F 4 BIT 7,A +80 4 RES 0,B +81 4 RES 0,C +82 4 RES 0,D +83 4 RES 0,E +84 4 RES 0,H +85 4 RES 0,L +86 11 RES 0,(HL) +87 4 RES 0,A +88 4 RES 1,B +89 4 RES 1,C +8A 4 RES 1,D +8B 4 RES 1,E +8C 4 RES 1,H +8D 4 RES 1,L +8E 11 RES 1,(HL) +8F 4 RES 1,A +90 4 RES 2,B +91 4 RES 2,C +92 4 RES 2,D +93 4 RES 2,E +94 4 RES 2,H +95 4 RES 2,L +96 11 RES 2,(HL) +97 4 RES 2,A +98 4 RES 3,B +99 4 RES 3,C +9A 4 RES 3,D +9B 4 RES 3,E +9C 4 RES 3,H +9D 4 RES 3,L +9E 11 RES 3,(HL) +9F 4 RES 3,A +A0 4 RES 4,B +A1 4 RES 4,C +A2 4 RES 4,D +A3 4 RES 4,E +A4 4 RES 4,H +A5 4 RES 4,L +A6 11 RES 4,(HL) +A7 4 RES 4,A +A8 4 RES 5,B +A9 4 RES 5,C +AA 4 RES 5,D +AB 4 RES 5,E +AC 4 RES 5,H +AD 4 RES 5,L +AE 11 RES 5,(HL) +AF 4 RES 5,A +B0 4 RES 6,B +B1 4 RES 6,C +B2 4 RES 6,D +B3 4 RES 6,E +B4 4 RES 6,H +B5 4 RES 6,L +B6 11 RES 6,(HL) +B7 4 RES 6,A +B8 4 RES 7,B +B9 4 RES 7,C +BA 4 RES 7,D +BB 4 RES 7,E +BC 4 RES 7,H +BD 4 RES 7,L +BE 11 RES 7,(HL) +BF 4 RES 7,A +C0 4 SET 0,B +C1 4 SET 0,C +C2 4 SET 0,D +C3 4 SET 0,E +C4 4 SET 0,H +C5 4 SET 0,L +C6 11 SET 0,(HL) +C7 4 SET 0,A +C8 4 SET 1,B +C9 4 SET 1,C +CA 4 SET 1,D +CB 4 SET 1,E +CC 4 SET 1,H +CD 4 SET 1,L +CE 11 SET 1,(HL) +CF 4 SET 1,A +D0 4 SET 2,B +D1 4 SET 2,C +D2 4 SET 2,D +D3 4 SET 2,E +D4 4 SET 2,H +D5 4 SET 2,L +D6 11 SET 2,(HL) +D7 4 SET 2,A +D8 4 SET 3,B +D9 4 SET 3,C +DA 4 SET 3,D +DB 4 SET 3,E +DC 4 SET 3,H +DD 4 SET 3,L +DE 11 SET 3,(HL) +DF 4 SET 3,A +E0 4 SET 4,B +E1 4 SET 4,C +E2 4 SET 4,D +E3 4 SET 4,E +E4 4 SET 4,H +E5 4 SET 4,L +E6 11 SET 4,(HL) +E7 4 SET 4,A +E8 4 SET 5,B +E9 4 SET 5,C +EA 4 SET 5,D +EB 4 SET 5,E +EC 4 SET 5,H +ED 4 SET 5,L +EE 11 SET 5,(HL) +EF 4 SET 5,A +F0 4 SET 6,B +F1 4 SET 6,C +F2 4 SET 6,D +F3 4 SET 6,E +F4 4 SET 6,H +F5 4 SET 6,L +F6 11 SET 6,(HL) +F7 4 SET 6,A +F8 4 SET 7,B +F9 4 SET 7,C +FA 4 SET 7,D +FB 4 SET 7,E +FC 4 SET 7,H +FD 4 SET 7,L +FE 11 SET 7,(HL) +FF 4 SET 7,A diff --git a/src/z80free/Z80free_codesDD.c b/src/z80free/Z80free_codesDD.c new file mode 100644 index 0000000..1f5c322 --- /dev/null +++ b/src/z80free/Z80free_codesDD.c @@ -0,0 +1,890 @@ +/* + * Copyright (C) 2008-2009 Sergio Costas (Raster Software Vigo) + * This file is part of Z80Free + * + * Z80Free is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Z80Free is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "Z80free.h" + +int Z80free_codesDD (Z80FREE *processor,byte opcode) { + static byte tmp1; + static word tmp2; + + switch(opcode) { + case 0: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 1: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 2: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 3: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 4: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 5: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 6: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 7: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 8: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 9: // ADD IX,BC + processor->Rm.wr.IX=Z80free_doArithmetic16(processor,processor->Rm.wr.IX,processor->Rm.wr.BC,0,0); + return (11); + break; + case 10: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 11: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 12: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 13: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 14: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 15: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 16: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 17: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 18: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 19: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 20: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 21: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 22: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 23: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 24: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 25: // ADD IX,DE + processor->Rm.wr.IX=Z80free_doArithmetic16(processor,processor->Rm.wr.IX,processor->Rm.wr.DE,0,0); + return (11); + break; + case 26: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 27: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 28: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 29: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 30: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 31: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 32: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 33: // LD IX,nn + processor->Rm.wr.IX=Z80free_read_param_16(processor); + return (10); + break; + case 34: // LD (nn),IX + Z80free_write16(Z80free_read_param_16(processor),processor->Rm.wr.IX); + return (16); + break; + case 35: // INC IX + processor->Rm.wr.IX=Z80free_doIncDec16(processor,processor->Rm.wr.IX,0); + return (6); + break; + case 36: // INC IXH + processor->Rm.br.IXh=Z80free_doIncDec(processor,processor->Rm.br.IXh,0); + return (4); + break; + case 37: // DEC IXH + processor->Rm.br.IXh=Z80free_doIncDec(processor,processor->Rm.br.IXh,1); + return (4); + break; + case 38: // LD IXH,n + processor->Rm.br.IXh=Z80free_read_param_8(processor); + return (7); + break; + case 39: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 40: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 41: // ADD IX,IX + processor->Rm.wr.IX=Z80free_doArithmetic16(processor,processor->Rm.wr.IX,processor->Rm.wr.IX,0,0); + return (11); + break; + case 42: // LD IX,(nn) + processor->Rm.wr.IX=Z80free_read16(Z80free_read_param_16(processor)); + return (16); + break; + case 43: // DEC IX + processor->Rm.wr.IX=Z80free_doIncDec16(processor,processor->Rm.wr.IX,1); + return (6); + break; + case 44: // INC IXL + processor->Rm.br.IXl=Z80free_doIncDec(processor,processor->Rm.br.IXl,0); + return (4); + break; + case 45: // DEC IXL + processor->Rm.br.IXl=Z80free_doIncDec(processor,processor->Rm.br.IXl,1); + return (4); + break; + case 46: // LD IXL,n + processor->Rm.br.IXl=Z80free_read_param_8(processor); + return (7); + break; + case 47: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 48: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 49: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 50: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 51: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 52: // INC b(IX+d) + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IX),Z80free_doIncDec(processor,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX)),0)); + return (19); + break; + case 53: // DEC b(IX+d) + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IX),Z80free_doIncDec(processor,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX)),1)); + return (19); + break; + case 54: // LD2 IX+d,n + tmp2=Z80free_addr_relative(processor,processor->Rm.wr.IX); + Z80free_Wr(tmp2,Z80free_read_param_8(processor)); + return (15); + break; + case 55: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 56: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 57: // ADD IX,SP + processor->Rm.wr.IX=Z80free_doArithmetic16(processor,processor->Rm.wr.IX,processor->Rm.wr.SP,0,0); + return (11); + break; + case 58: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 59: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 60: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 61: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 62: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 63: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 64: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 65: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 66: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 67: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 68: // LD B,IXH + processor->Rm.br.B=processor->Rm.br.IXh; + return (4); + break; + case 69: // LD B,IXL + processor->Rm.br.B=processor->Rm.br.IXl; + return (4); + break; + case 70: // LD B,(IX+d) + processor->Rm.br.B=Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX)); + return (15); + break; + case 71: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 72: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 73: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 74: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 75: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 76: // LD C,IXH + processor->Rm.br.C=processor->Rm.br.IXh; + return (4); + break; + case 77: // LD C,IXL + processor->Rm.br.C=processor->Rm.br.IXl; + return (4); + break; + case 78: // LD C,(IX+d) + processor->Rm.br.C=Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX)); + return (15); + break; + case 79: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 80: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 81: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 82: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 83: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 84: // LD D,IXH + processor->Rm.br.D=processor->Rm.br.IXh; + return (4); + break; + case 85: // LD D,IXL + processor->Rm.br.D=processor->Rm.br.IXl; + return (4); + break; + case 86: // LD D,(IX+d) + processor->Rm.br.D=Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX)); + return (15); + break; + case 87: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 88: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 89: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 90: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 91: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 92: // LD E,IXH + processor->Rm.br.E=processor->Rm.br.IXh; + return (4); + break; + case 93: // LD E,IXL + processor->Rm.br.E=processor->Rm.br.IXl; + return (4); + break; + case 94: // LD E,(IX+d) + processor->Rm.br.E=Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX)); + return (15); + break; + case 95: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 96: // LD IXH,B + processor->Rm.br.IXh=processor->Rm.br.B; + return (4); + break; + case 97: // LD IXH,C + processor->Rm.br.IXh=processor->Rm.br.C; + return (4); + break; + case 98: // LD IXH,D + processor->Rm.br.IXh=processor->Rm.br.D; + return (4); + break; + case 99: // LD IXH,E + processor->Rm.br.IXh=processor->Rm.br.E; + return (4); + break; + case 100: // LD IXH,IXH + processor->Rm.br.IXh=processor->Rm.br.IXh; + return (4); + break; + case 101: // LD IXH,IXL + processor->Rm.br.IXh=processor->Rm.br.IXl; + return (4); + break; + case 102: // LD H,(IX+d) + processor->Rm.br.H=Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX)); + return (15); + break; + case 103: // LD IXH,A + processor->Rm.br.IXh=processor->Rm.br.A; + return (4); + break; + case 104: // LD IXL,B + processor->Rm.br.IXl=processor->Rm.br.B; + return (4); + break; + case 105: // LD IXL,C + processor->Rm.br.IXl=processor->Rm.br.C; + return (4); + break; + case 106: // LD IXL,D + processor->Rm.br.IXl=processor->Rm.br.D; + return (4); + break; + case 107: // LD IXL,E + processor->Rm.br.IXl=processor->Rm.br.E; + return (4); + break; + case 108: // LD IXL,IXH + processor->Rm.br.IXl=processor->Rm.br.IXh; + return (4); + break; + case 109: // LD IXL,IXL + processor->Rm.br.IXl=processor->Rm.br.IXl; + return (4); + break; + case 110: // LD L,(IX+d) + processor->Rm.br.L=Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX)); + return (15); + break; + case 111: // LD IXL,A + processor->Rm.br.IXl=processor->Rm.br.A; + return (4); + break; + case 112: // LD (IX+d),B + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IX),processor->Rm.br.B); + return (15); + break; + case 113: // LD (IX+d),C + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IX),processor->Rm.br.C); + return (15); + break; + case 114: // LD (IX+d),D + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IX),processor->Rm.br.D); + return (15); + break; + case 115: // LD (IX+d),E + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IX),processor->Rm.br.E); + return (15); + break; + case 116: // LD (IX+d),H + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IX),processor->Rm.br.H); + return (15); + break; + case 117: // LD (IX+d),L + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IX),processor->Rm.br.L); + return (15); + break; + case 118: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 119: // LD (IX+d),A + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IX),processor->Rm.br.A); + return (15); + break; + case 120: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 121: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 122: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 123: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 124: // LD A,IXH + processor->Rm.br.A=processor->Rm.br.IXh; + return (4); + break; + case 125: // LD A,IXL + processor->Rm.br.A=processor->Rm.br.IXl; + return (4); + break; + case 126: // LD A,(IX+d) + processor->Rm.br.A=Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX)); + return (15); + break; + case 127: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 128: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 129: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 130: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 131: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 132: // ADD A,IXH + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.IXh,0,0); + return (4); + break; + case 133: // ADD A,IXL + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.IXl,0,0); + return (4); + break; + case 134: // ADD A,(IX+d) + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX)),0,0); + return (15); + break; + case 135: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 136: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 137: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 138: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 139: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 140: // ADC A,IXH + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.IXh,1,0); + return (4); + break; + case 141: // ADC A,IXL + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.IXl,1,0); + return (4); + break; + case 142: // ADC A,(IX+d) + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX)),1,0); + return (15); + break; + case 143: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 144: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 145: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 146: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 147: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 148: // SUB IXH + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.IXh,0,1); + return (4); + break; + case 149: // SUB IXL + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.IXl,0,1); + return (4); + break; + case 150: // SUB b(IX+d) + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX)),0,1); + return (15); + break; + case 151: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 152: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 153: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 154: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 155: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 156: // SBC A,IXH + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.IXh,1,1); + return (4); + break; + case 157: // SBC A,IXL + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.IXl,1,1); + return (4); + break; + case 158: // SBC A,(IX+d) + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX)),1,1); + return (15); + break; + case 159: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 160: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 161: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 162: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 163: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 164: // AND IXH + Z80free_doAND(processor,processor->Rm.br.IXh); + return (4); + break; + case 165: // AND IXL + Z80free_doAND(processor,processor->Rm.br.IXl); + return (4); + break; + case 166: // AND b(IX+d) + Z80free_doAND(processor,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX))); + return (15); + break; + case 167: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 168: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 169: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 170: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 171: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 172: // XOR IXH + Z80free_doXOR(processor,processor->Rm.br.IXh); + return (4); + break; + case 173: // XOR IXL + Z80free_doXOR(processor,processor->Rm.br.IXl); + return (4); + break; + case 174: // XOR b(IX+d) + Z80free_doXOR(processor,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX))); + return (15); + break; + case 175: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 176: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 177: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 178: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 179: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 180: // OR IXH + Z80free_doOR(processor,processor->Rm.br.IXh); + return (4); + break; + case 181: // OR IXL + Z80free_doOR(processor,processor->Rm.br.IXl); + return (4); + break; + case 182: // OR b(IX+d) + Z80free_doOR(processor,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX))); + return (15); + break; + case 183: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 184: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 185: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 186: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 187: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 188: // CP IXH + tmp1=processor->Rm.br.IXh; + Z80free_doArithmetic(processor,processor->Rm.br.A,tmp1,0,1); + Z80free_adjustFlags(processor,tmp1); + return (4); + break; + case 189: // CP IXL + tmp1=processor->Rm.br.IXl; + Z80free_doArithmetic(processor,processor->Rm.br.A,tmp1,0,1); + Z80free_adjustFlags(processor,tmp1); + return (4); + break; + case 190: // CP b(IX+d) + tmp1=Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX)); + Z80free_doArithmetic(processor,processor->Rm.br.A,tmp1,0,1); + Z80free_adjustFlags(processor,tmp1); + return (15); + break; + case 191: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 192: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 193: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 194: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 195: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 196: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 197: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 198: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 199: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 200: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 201: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 202: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 204: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 205: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 206: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 207: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 208: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 209: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 210: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 211: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 212: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 213: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 214: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 215: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 216: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 217: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 218: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 219: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 220: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 221: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 222: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 223: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 224: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 225: // POP IX + processor->Rm.wr.IX=Z80free_doPop(processor); + return (10); + break; + case 226: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 227: // EX (SP),IX + tmp2=Z80free_read16(processor->Rm.wr.SP); + Z80free_write16(processor->Rm.wr.SP,processor->Rm.wr.IX); + processor->Rm.wr.IX=tmp2; + return (19); + break; + case 228: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 229: // PUSH IX + Z80free_doPush(processor,processor->Rm.wr.IX); + return (11); + break; + case 230: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 231: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 232: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 233: // JP IX + tmp2=processor->Rm.wr.IX; + processor->PC=tmp2; + return (4); + break; + case 234: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 235: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 236: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 237: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 238: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 239: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 240: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 241: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 242: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 243: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 244: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 245: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 246: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 247: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 248: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 249: // LD SP,IX + processor->Rm.wr.SP=processor->Rm.wr.IX; + return (6); + break; + case 250: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 251: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 252: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 253: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 254: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 255: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + } + + return -1; +} diff --git a/src/z80free/Z80free_codesDD.txt b/src/z80free/Z80free_codesDD.txt new file mode 100644 index 0000000..59244a1 --- /dev/null +++ b/src/z80free/Z80free_codesDD.txt @@ -0,0 +1,262 @@ +# OPCODE, TSTATES and instruction for DD prefixed instructions +# The TSTATES are 4 less than the real ones, because we already had count +# them when exexuting the DD prefix +# DEFAULT opcode do the same than the unprefixed ones, using 4 TStates more +# Some opcodes have been modified to better adapt to the parser, like +# LD (IX+d),n, which now is LD2 IX+d,n +00 1 DEFAULT +01 1 DEFAULT +02 1 DEFAULT +03 1 DEFAULT +04 1 DEFAULT +05 1 DEFAULT +06 1 DEFAULT +07 1 DEFAULT +08 1 DEFAULT +09 11 ADD IX,BC +0A 1 DEFAULT +0B 1 DEFAULT +0C 1 DEFAULT +0D 1 DEFAULT +0E 1 DEFAULT +0F 1 DEFAULT +10 1 DEFAULT +11 1 DEFAULT +12 1 DEFAULT +13 1 DEFAULT +14 1 DEFAULT +15 1 DEFAULT +16 1 DEFAULT +17 1 DEFAULT +18 1 DEFAULT +19 11 ADD IX,DE +1A 1 DEFAULT +1B 1 DEFAULT +1C 1 DEFAULT +1D 1 DEFAULT +1E 1 DEFAULT +1F 1 DEFAULT +20 1 DEFAULT +21 10 LD IX,nn +22 16 LD (nn),IX +23 6 INC IX +24 4 INC IXH +25 4 DEC IXH +26 7 LD IXH,n +27 1 DEFAULT +28 1 DEFAULT +29 11 ADD IX,IX +2A 16 LD IX,(nn) +2B 6 DEC IX +2C 4 INC IXL +2D 4 DEC IXL +2E 7 LD IXL,n +2F 1 DEFAULT +30 1 DEFAULT +31 1 DEFAULT +32 1 DEFAULT +33 1 DEFAULT +34 19 INC b(IX+d) +35 19 DEC b(IX+d) +36 15 LD2 IX+d,n +37 1 DEFAULT +38 1 DEFAULT +39 11 ADD IX,SP +3A 1 DEFAULT +3B 1 DEFAULT +3C 1 DEFAULT +3D 1 DEFAULT +3E 1 DEFAULT +3F 1 DEFAULT +40 1 DEFAULT +41 1 DEFAULT +42 1 DEFAULT +43 1 DEFAULT +44 4 LD B,IXH +45 4 LD B,IXL +46 15 LD B,(IX+d) +47 1 DEFAULT +48 1 DEFAULT +49 1 DEFAULT +4A 1 DEFAULT +4B 1 DEFAULT +4C 4 LD C,IXH +4D 4 LD C,IXL +4E 15 LD C,(IX+d) +4F 1 DEFAULT +50 1 DEFAULT +51 1 DEFAULT +52 1 DEFAULT +53 1 DEFAULT +54 4 LD D,IXH +55 4 LD D,IXL +56 15 LD D,(IX+d) +57 1 DEFAULT +58 1 DEFAULT +59 1 DEFAULT +5A 1 DEFAULT +5B 1 DEFAULT +5C 4 LD E,IXH +5D 4 LD E,IXL +5E 15 LD E,(IX+d) +5F 1 DEFAULT +60 4 LD IXH,B +61 4 LD IXH,C +62 4 LD IXH,D +63 4 LD IXH,E +64 4 LD IXH,IXH +65 4 LD IXH,IXL +66 15 LD H,(IX+d) +67 4 LD IXH,A +68 4 LD IXL,B +69 4 LD IXL,C +6A 4 LD IXL,D +6B 4 LD IXL,E +6C 4 LD IXL,IXH +6D 4 LD IXL,IXL +6E 15 LD L,(IX+d) +6F 4 LD IXL,A +70 15 LD (IX+d),B +71 15 LD (IX+d),C +72 15 LD (IX+d),D +73 15 LD (IX+d),E +74 15 LD (IX+d),H +75 15 LD (IX+d),L +76 1 DEFAULT +77 15 LD (IX+d),A +78 1 DEFAULT +79 1 DEFAULT +7A 1 DEFAULT +7B 1 DEFAULT +7C 4 LD A,IXH +7D 4 LD A,IXL +7E 15 LD A,(IX+d) +7F 1 DEFAULT +80 1 DEFAULT +81 1 DEFAULT +82 1 DEFAULT +83 1 DEFAULT +84 4 ADD A,IXH +85 4 ADD A,IXL +86 15 ADD A,(IX+d) +87 1 DEFAULT +88 1 DEFAULT +89 1 DEFAULT +8A 1 DEFAULT +8B 1 DEFAULT +8C 4 ADC A,IXH +8D 4 ADC A,IXL +8E 15 ADC A,(IX+d) +8F 1 DEFAULT +90 1 DEFAULT +91 1 DEFAULT +92 1 DEFAULT +93 1 DEFAULT +94 4 SUB IXH +95 4 SUB IXL +96 15 SUB b(IX+d) +97 1 DEFAULT +98 1 DEFAULT +99 1 DEFAULT +9A 1 DEFAULT +9B 1 DEFAULT +9C 4 SBC A,IXH +9D 4 SBC A,IXL +9E 15 SBC A,(IX+d) +9F 1 DEFAULT +A0 1 DEFAULT +A1 1 DEFAULT +A2 1 DEFAULT +A3 1 DEFAULT +A4 4 AND IXH +A5 4 AND IXL +A6 15 AND b(IX+d) +A7 1 DEFAULT +A8 1 DEFAULT +A9 1 DEFAULT +AA 1 DEFAULT +AB 1 DEFAULT +AC 4 XOR IXH +AD 4 XOR IXL +AE 15 XOR b(IX+d) +AF 1 DEFAULT +B0 1 DEFAULT +B1 1 DEFAULT +B2 1 DEFAULT +B3 1 DEFAULT +B4 4 OR IXH +B5 4 OR IXL +B6 15 OR b(IX+d) +B7 1 DEFAULT +B8 1 DEFAULT +B9 1 DEFAULT +BA 1 DEFAULT +BB 1 DEFAULT +BC 4 CP IXH +BD 4 CP IXL +BE 15 CP b(IX+d) +BF 1 DEFAULT +C0 1 DEFAULT +C1 1 DEFAULT +C2 1 DEFAULT +C3 1 DEFAULT +C4 1 DEFAULT +C5 1 DEFAULT +C6 1 DEFAULT +C7 1 DEFAULT +C8 1 DEFAULT +C9 1 DEFAULT +CA 1 DEFAULT +CB * PREFIX +CC 1 DEFAULT +CD 1 DEFAULT +CE 1 DEFAULT +CF 1 DEFAULT +D0 1 DEFAULT +D1 1 DEFAULT +D2 1 DEFAULT +D3 1 DEFAULT +D4 1 DEFAULT +D5 1 DEFAULT +D6 1 DEFAULT +D7 1 DEFAULT +D8 1 DEFAULT +D9 1 DEFAULT +DA 1 DEFAULT +DB 1 DEFAULT +DC 1 DEFAULT +DD 1 DEFAULT +DE 1 DEFAULT +DF 1 DEFAULT +E0 1 DEFAULT +E1 10 POP IX +E2 1 DEFAULT +E3 19 EX (SP),IX +E4 1 DEFAULT +E5 11 PUSH IX +E6 1 DEFAULT +E7 1 DEFAULT +E8 1 DEFAULT +E9 4 JP IX +EA 1 DEFAULT +EB 1 DEFAULT +EC 1 DEFAULT +ED 1 DEFAULT +EE 1 DEFAULT +EF 1 DEFAULT +F0 1 DEFAULT +F1 1 DEFAULT +F2 1 DEFAULT +F3 1 DEFAULT +F4 1 DEFAULT +F5 1 DEFAULT +F6 1 DEFAULT +F7 1 DEFAULT +F8 1 DEFAULT +F9 6 LD SP,IX +FA 1 DEFAULT +FB 1 DEFAULT +FC 1 DEFAULT +FD 1 DEFAULT +FE 1 DEFAULT +FF 1 DEFAULT diff --git a/src/z80free/Z80free_codesDDCB.c b/src/z80free/Z80free_codesDDCB.c new file mode 100644 index 0000000..564699c --- /dev/null +++ b/src/z80free/Z80free_codesDDCB.c @@ -0,0 +1,1391 @@ +/* + * Copyright (C) 2008-2009 Sergio Costas (Raster Software Vigo) + * This file is part of Z80Free + * + * Z80Free is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Z80Free is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "Z80free.h" + +int Z80free_codesDDCB (Z80FREE *processor,byte d1) { + static byte tmp1; + static byte opcode; + opcode=Z80free_Rd(processor->PC++); + + switch(opcode) { + case 0: // LD_RLC B,(IX+d) + tmp1=Z80free_doRLC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.B=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 1: // LD_RLC C,(IX+d) + tmp1=Z80free_doRLC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.C=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 2: // LD_RLC D,(IX+d) + tmp1=Z80free_doRLC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.D=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 3: // LD_RLC E,(IX+d) + tmp1=Z80free_doRLC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.E=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 4: // LD_RLC H,(IX+d) + tmp1=Z80free_doRLC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.H=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 5: // LD_RLC L,(IX+d) + tmp1=Z80free_doRLC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.L=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 6: // RLC b(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doRLC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 7: // LD_RLC A,(IX+d) + tmp1=Z80free_doRLC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.A=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 8: // LD_RRC B,(IX+d) + tmp1=Z80free_doRRC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.B=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 9: // LD_RRC C,(IX+d) + tmp1=Z80free_doRRC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.C=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 10: // LD_RRC D,(IX+d) + tmp1=Z80free_doRRC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.D=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 11: // LD_RRC E,(IX+d) + tmp1=Z80free_doRRC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.E=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 12: // LD_RRC H,(IX+d) + tmp1=Z80free_doRRC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.H=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 13: // LD_RRC L,(IX+d) + tmp1=Z80free_doRRC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.L=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 14: // RRC b(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doRRC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 15: // LD_RRC A,(IX+d) + tmp1=Z80free_doRRC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.A=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 16: // LD_RL B,(IX+d) + tmp1=Z80free_doRL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.B=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 17: // LD_RL C,(IX+d) + tmp1=Z80free_doRL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.C=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 18: // LD_RL D,(IX+d) + tmp1=Z80free_doRL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.D=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 19: // LD_RL E,(IX+d) + tmp1=Z80free_doRL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.E=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 20: // LD_RL H,(IX+d) + tmp1=Z80free_doRL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.H=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 21: // LD_RL L,(IX+d) + tmp1=Z80free_doRL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.L=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 22: // RL b(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doRL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 23: // LD_RL A,(IX+d) + tmp1=Z80free_doRL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.A=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 24: // LD_RR B,(IX+d) + tmp1=Z80free_doRR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.B=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 25: // LD_RR C,(IX+d) + tmp1=Z80free_doRR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.C=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 26: // LD_RR D,(IX+d) + tmp1=Z80free_doRR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.D=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 27: // LD_RR E,(IX+d) + tmp1=Z80free_doRR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.E=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 28: // LD_RR H,(IX+d) + tmp1=Z80free_doRR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.H=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 29: // LD_RR L,(IX+d) + tmp1=Z80free_doRR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.L=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 30: // RR b(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doRR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 31: // LD_RR A,(IX+d) + tmp1=Z80free_doRR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.A=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 32: // LD_SLA B,(IX+d) + tmp1=Z80free_doSL(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.B=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 33: // LD_SLA C,(IX+d) + tmp1=Z80free_doSL(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.C=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 34: // LD_SLA D,(IX+d) + tmp1=Z80free_doSL(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.D=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 35: // LD_SLA E,(IX+d) + tmp1=Z80free_doSL(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.E=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 36: // LD_SLA H,(IX+d) + tmp1=Z80free_doSL(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.H=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 37: // LD_SLA L,(IX+d) + tmp1=Z80free_doSL(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.L=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 38: // SLA b(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSL(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 39: // LD_SLA A,(IX+d) + tmp1=Z80free_doSL(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.A=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 40: // LD_SRA B,(IX+d) + tmp1=Z80free_doSR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.B=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 41: // LD_SRA C,(IX+d) + tmp1=Z80free_doSR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.C=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 42: // LD_SRA D,(IX+d) + tmp1=Z80free_doSR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.D=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 43: // LD_SRA E,(IX+d) + tmp1=Z80free_doSR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.E=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 44: // LD_SRA H,(IX+d) + tmp1=Z80free_doSR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.H=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 45: // LD_SRA L,(IX+d) + tmp1=Z80free_doSR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.L=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 46: // SRA b(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 47: // LD_SRA A,(IX+d) + tmp1=Z80free_doSR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.A=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 48: // LD_SLL B,(IX+d) + tmp1=Z80free_doSL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.B=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 49: // LD_SLL C,(IX+d) + tmp1=Z80free_doSL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.C=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 50: // LD_SLL D,(IX+d) + tmp1=Z80free_doSL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.D=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 51: // LD_SLL E,(IX+d) + tmp1=Z80free_doSL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.E=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 52: // LD_SLL H,(IX+d) + tmp1=Z80free_doSL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.H=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 53: // LD_SLL L,(IX+d) + tmp1=Z80free_doSL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.L=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 54: // SLL b(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 55: // LD_SLL A,(IX+d) + tmp1=Z80free_doSL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.A=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 56: // LD_SRL B,(IX+d) + tmp1=Z80free_doSR(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.B=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 57: // LD_SRL C,(IX+d) + tmp1=Z80free_doSR(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.C=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 58: // LD_SRL D,(IX+d) + tmp1=Z80free_doSR(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.D=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 59: // LD_SRL E,(IX+d) + tmp1=Z80free_doSR(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.E=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 60: // LD_SRL H,(IX+d) + tmp1=Z80free_doSR(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.H=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 61: // LD_SRL L,(IX+d) + tmp1=Z80free_doSR(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.L=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 62: // SRL b(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSR(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 63: // LD_SRL A,(IX+d) + tmp1=Z80free_doSR(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + processor->Rm.br.A=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + return (19); + break; + case 64: // BIT 0,(IX+d) + Z80free_doBIT(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 65: // BIT 0,(IX+d) + Z80free_doBIT(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 66: // BIT 0,(IX+d) + Z80free_doBIT(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 67: // BIT 0,(IX+d) + Z80free_doBIT(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 68: // BIT 0,(IX+d) + Z80free_doBIT(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 69: // BIT 0,(IX+d) + Z80free_doBIT(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 70: // BIT 0,(IX+d) + Z80free_doBIT(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 71: // BIT 0,(IX+d) + Z80free_doBIT(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 72: // BIT 1,(IX+d) + Z80free_doBIT(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 73: // BIT 1,(IX+d) + Z80free_doBIT(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 74: // BIT 1,(IX+d) + Z80free_doBIT(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 75: // BIT 1,(IX+d) + Z80free_doBIT(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 76: // BIT 1,(IX+d) + Z80free_doBIT(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 77: // BIT 1,(IX+d) + Z80free_doBIT(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 78: // BIT 1,(IX+d) + Z80free_doBIT(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 79: // BIT 1,(IX+d) + Z80free_doBIT(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 80: // BIT 2,(IX+d) + Z80free_doBIT(processor,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 81: // BIT 2,(IX+d) + Z80free_doBIT(processor,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 82: // BIT 2,(IX+d) + Z80free_doBIT(processor,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 83: // BIT 2,(IX+d) + Z80free_doBIT(processor,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 84: // BIT 2,(IX+d) + Z80free_doBIT(processor,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 85: // BIT 2,(IX+d) + Z80free_doBIT(processor,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 86: // BIT 2,(IX+d) + Z80free_doBIT(processor,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 87: // BIT 2,(IX+d) + Z80free_doBIT(processor,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 88: // BIT 3,(IX+d) + Z80free_doBIT(processor,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 89: // BIT 3,(IX+d) + Z80free_doBIT(processor,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 90: // BIT 3,(IX+d) + Z80free_doBIT(processor,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 91: // BIT 3,(IX+d) + Z80free_doBIT(processor,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 92: // BIT 3,(IX+d) + Z80free_doBIT(processor,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 93: // BIT 3,(IX+d) + Z80free_doBIT(processor,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 94: // BIT 3,(IX+d) + Z80free_doBIT(processor,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 95: // BIT 3,(IX+d) + Z80free_doBIT(processor,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 96: // BIT 4,(IX+d) + Z80free_doBIT(processor,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 97: // BIT 4,(IX+d) + Z80free_doBIT(processor,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 98: // BIT 4,(IX+d) + Z80free_doBIT(processor,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 99: // BIT 4,(IX+d) + Z80free_doBIT(processor,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 100: // BIT 4,(IX+d) + Z80free_doBIT(processor,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 101: // BIT 4,(IX+d) + Z80free_doBIT(processor,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 102: // BIT 4,(IX+d) + Z80free_doBIT(processor,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 103: // BIT 4,(IX+d) + Z80free_doBIT(processor,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 104: // BIT 5,(IX+d) + Z80free_doBIT(processor,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 105: // BIT 5,(IX+d) + Z80free_doBIT(processor,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 106: // BIT 5,(IX+d) + Z80free_doBIT(processor,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 107: // BIT 5,(IX+d) + Z80free_doBIT(processor,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 108: // BIT 5,(IX+d) + Z80free_doBIT(processor,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 109: // BIT 5,(IX+d) + Z80free_doBIT(processor,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 110: // BIT 5,(IX+d) + Z80free_doBIT(processor,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 111: // BIT 5,(IX+d) + Z80free_doBIT(processor,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 112: // BIT 6,(IX+d) + Z80free_doBIT(processor,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 113: // BIT 6,(IX+d) + Z80free_doBIT(processor,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 114: // BIT 6,(IX+d) + Z80free_doBIT(processor,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 115: // BIT 6,(IX+d) + Z80free_doBIT(processor,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 116: // BIT 6,(IX+d) + Z80free_doBIT(processor,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 117: // BIT 6,(IX+d) + Z80free_doBIT(processor,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 118: // BIT 6,(IX+d) + Z80free_doBIT(processor,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 119: // BIT 6,(IX+d) + Z80free_doBIT(processor,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 120: // BIT 7,(IX+d) + Z80free_doBIT(processor,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 121: // BIT 7,(IX+d) + Z80free_doBIT(processor,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 122: // BIT 7,(IX+d) + Z80free_doBIT(processor,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 123: // BIT 7,(IX+d) + Z80free_doBIT(processor,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 124: // BIT 7,(IX+d) + Z80free_doBIT(processor,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 125: // BIT 7,(IX+d) + Z80free_doBIT(processor,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 126: // BIT 7,(IX+d) + Z80free_doBIT(processor,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 127: // BIT 7,(IX+d) + Z80free_doBIT(processor,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + return (16); + break; + case 128: // LD_RES B,0,(IX+d) + tmp1=Z80free_doSetRes(processor,0,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 129: // LD_RES C,0,(IX+d) + tmp1=Z80free_doSetRes(processor,0,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 130: // LD_RES D,0,(IX+d) + tmp1=Z80free_doSetRes(processor,0,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 131: // LD_RES E,0,(IX+d) + tmp1=Z80free_doSetRes(processor,0,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 132: // LD_RES H,0,(IX+d) + tmp1=Z80free_doSetRes(processor,0,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 133: // LD_RES L,0,(IX+d) + tmp1=Z80free_doSetRes(processor,0,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 134: // RES 0,(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSetRes(processor,0,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 135: // LD_RES A,0,(IX+d) + tmp1=Z80free_doSetRes(processor,0,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 136: // LD_RES B,1,(IX+d) + tmp1=Z80free_doSetRes(processor,0,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 137: // LD_RES C,1,(IX+d) + tmp1=Z80free_doSetRes(processor,0,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 138: // LD_RES D,1,(IX+d) + tmp1=Z80free_doSetRes(processor,0,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 139: // LD_RES E,1,(IX+d) + tmp1=Z80free_doSetRes(processor,0,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 140: // LD_RES H,1,(IX+d) + tmp1=Z80free_doSetRes(processor,0,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 141: // LD_RES L,1,(IX+d) + tmp1=Z80free_doSetRes(processor,0,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 142: // RES 1,(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSetRes(processor,0,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 143: // LD_RES A,1,(IX+d) + tmp1=Z80free_doSetRes(processor,0,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 144: // LD_RES B,2,(IX+d) + tmp1=Z80free_doSetRes(processor,0,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 145: // LD_RES C,2,(IX+d) + tmp1=Z80free_doSetRes(processor,0,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 146: // LD_RES D,2,(IX+d) + tmp1=Z80free_doSetRes(processor,0,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 147: // LD_RES E,2,(IX+d) + tmp1=Z80free_doSetRes(processor,0,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 148: // LD_RES H,2,(IX+d) + tmp1=Z80free_doSetRes(processor,0,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 149: // LD_RES L,2,(IX+d) + tmp1=Z80free_doSetRes(processor,0,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 150: // RES 2,(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSetRes(processor,0,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 151: // LD_RES A,2,(IX+d) + tmp1=Z80free_doSetRes(processor,0,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 152: // LD_RES B,3,(IX+d) + tmp1=Z80free_doSetRes(processor,0,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 153: // LD_RES C,3,(IX+d) + tmp1=Z80free_doSetRes(processor,0,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 154: // LD_RES D,3,(IX+d) + tmp1=Z80free_doSetRes(processor,0,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 155: // LD_RES E,3,(IX+d) + tmp1=Z80free_doSetRes(processor,0,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 156: // LD_RES H,3,(IX+d) + tmp1=Z80free_doSetRes(processor,0,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 157: // LD_RES L,3,(IX+d) + tmp1=Z80free_doSetRes(processor,0,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 158: // RES 3,(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSetRes(processor,0,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 159: // LD_RES A,3,(IX+d) + tmp1=Z80free_doSetRes(processor,0,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 160: // LD_RES B,4,(IX+d) + tmp1=Z80free_doSetRes(processor,0,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 161: // LD_RES C,4,(IX+d) + tmp1=Z80free_doSetRes(processor,0,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 162: // LD_RES D,4,(IX+d) + tmp1=Z80free_doSetRes(processor,0,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 163: // LD_RES E,4,(IX+d) + tmp1=Z80free_doSetRes(processor,0,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 164: // LD_RES H,4,(IX+d) + tmp1=Z80free_doSetRes(processor,0,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 165: // LD_RES L,4,(IX+d) + tmp1=Z80free_doSetRes(processor,0,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 166: // RES 4,(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSetRes(processor,0,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 167: // LD_RES A,4,(IX+d) + tmp1=Z80free_doSetRes(processor,0,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 168: // LD_RES B,5,(IX+d) + tmp1=Z80free_doSetRes(processor,0,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 169: // LD_RES C,5,(IX+d) + tmp1=Z80free_doSetRes(processor,0,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 170: // LD_RES D,5,(IX+d) + tmp1=Z80free_doSetRes(processor,0,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 171: // LD_RES E,5,(IX+d) + tmp1=Z80free_doSetRes(processor,0,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 172: // LD_RES H,5,(IX+d) + tmp1=Z80free_doSetRes(processor,0,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 173: // LD_RES L,5,(IX+d) + tmp1=Z80free_doSetRes(processor,0,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 174: // RES 5,(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSetRes(processor,0,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 175: // LD_RES A,5,(IX+d) + tmp1=Z80free_doSetRes(processor,0,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 176: // LD_RES B,6,(IX+d) + tmp1=Z80free_doSetRes(processor,0,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 177: // LD_RES C,6,(IX+d) + tmp1=Z80free_doSetRes(processor,0,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 178: // LD_RES D,6,(IX+d) + tmp1=Z80free_doSetRes(processor,0,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 179: // LD_RES E,6,(IX+d) + tmp1=Z80free_doSetRes(processor,0,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 180: // LD_RES H,6,(IX+d) + tmp1=Z80free_doSetRes(processor,0,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 181: // LD_RES L,6,(IX+d) + tmp1=Z80free_doSetRes(processor,0,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 182: // RES 6,(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSetRes(processor,0,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 183: // LD_RES A,6,(IX+d) + tmp1=Z80free_doSetRes(processor,0,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 184: // LD_RES B,7,(IX+d) + tmp1=Z80free_doSetRes(processor,0,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 185: // LD_RES C,7,(IX+d) + tmp1=Z80free_doSetRes(processor,0,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 186: // LD_RES D,7,(IX+d) + tmp1=Z80free_doSetRes(processor,0,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 187: // LD_RES E,7,(IX+d) + tmp1=Z80free_doSetRes(processor,0,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 188: // LD_RES H,7,(IX+d) + tmp1=Z80free_doSetRes(processor,0,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 189: // LD_RES L,7,(IX+d) + tmp1=Z80free_doSetRes(processor,0,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 190: // RES 7,(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSetRes(processor,0,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 191: // LD_RES A,7,(IX+d) + tmp1=Z80free_doSetRes(processor,0,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 192: // LD_SET B,0,(IX+d) + tmp1=Z80free_doSetRes(processor,1,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 193: // LD_SET C,0,(IX+d) + tmp1=Z80free_doSetRes(processor,1,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 194: // LD_SET D,0,(IX+d) + tmp1=Z80free_doSetRes(processor,1,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 195: // LD_SET E,0,(IX+d) + tmp1=Z80free_doSetRes(processor,1,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 196: // LD_SET H,0,(IX+d) + tmp1=Z80free_doSetRes(processor,1,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 197: // LD_SET L,0,(IX+d) + tmp1=Z80free_doSetRes(processor,1,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 198: // SET 0,(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSetRes(processor,1,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 199: // LD_SET A,0,(IX+d) + tmp1=Z80free_doSetRes(processor,1,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 200: // LD_SET B,1,(IX+d) + tmp1=Z80free_doSetRes(processor,1,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 201: // LD_SET C,1,(IX+d) + tmp1=Z80free_doSetRes(processor,1,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 202: // LD_SET D,1,(IX+d) + tmp1=Z80free_doSetRes(processor,1,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 203: // LD_SET E,1,(IX+d) + tmp1=Z80free_doSetRes(processor,1,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 204: // LD_SET H,1,(IX+d) + tmp1=Z80free_doSetRes(processor,1,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 205: // LD_SET L,1,(IX+d) + tmp1=Z80free_doSetRes(processor,1,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 206: // SET 1,(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSetRes(processor,1,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 207: // LD_SET A,1,(IX+d) + tmp1=Z80free_doSetRes(processor,1,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 208: // LD_SET B,2,(IX+d) + tmp1=Z80free_doSetRes(processor,1,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 209: // LD_SET C,2,(IX+d) + tmp1=Z80free_doSetRes(processor,1,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 210: // LD_SET D,2,(IX+d) + tmp1=Z80free_doSetRes(processor,1,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 211: // LD_SET E,2,(IX+d) + tmp1=Z80free_doSetRes(processor,1,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 212: // LD_SET H,2,(IX+d) + tmp1=Z80free_doSetRes(processor,1,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 213: // LD_SET L,2,(IX+d) + tmp1=Z80free_doSetRes(processor,1,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 214: // SET 2,(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSetRes(processor,1,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 215: // LD_SET A,2,(IX+d) + tmp1=Z80free_doSetRes(processor,1,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 216: // LD_SET B,3,(IX+d) + tmp1=Z80free_doSetRes(processor,1,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 217: // LD_SET C,3,(IX+d) + tmp1=Z80free_doSetRes(processor,1,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 218: // LD_SET D,3,(IX+d) + tmp1=Z80free_doSetRes(processor,1,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 219: // LD_SET E,3,(IX+d) + tmp1=Z80free_doSetRes(processor,1,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 220: // LD_SET H,3,(IX+d) + tmp1=Z80free_doSetRes(processor,1,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 221: // LD_SET L,3,(IX+d) + tmp1=Z80free_doSetRes(processor,1,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 222: // SET 3,(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSetRes(processor,1,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 223: // LD_SET A,3,(IX+d) + tmp1=Z80free_doSetRes(processor,1,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 224: // LD_SET B,4,(IX+d) + tmp1=Z80free_doSetRes(processor,1,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 225: // LD_SET C,4,(IX+d) + tmp1=Z80free_doSetRes(processor,1,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 226: // LD_SET D,4,(IX+d) + tmp1=Z80free_doSetRes(processor,1,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 227: // LD_SET E,4,(IX+d) + tmp1=Z80free_doSetRes(processor,1,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 228: // LD_SET H,4,(IX+d) + tmp1=Z80free_doSetRes(processor,1,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 229: // LD_SET L,4,(IX+d) + tmp1=Z80free_doSetRes(processor,1,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 230: // SET 4,(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSetRes(processor,1,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 231: // LD_SET A,4,(IX+d) + tmp1=Z80free_doSetRes(processor,1,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 232: // LD_SET B,5,(IX+d) + tmp1=Z80free_doSetRes(processor,1,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 233: // LD_SET C,5,(IX+d) + tmp1=Z80free_doSetRes(processor,1,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 234: // LD_SET D,5,(IX+d) + tmp1=Z80free_doSetRes(processor,1,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 235: // LD_SET E,5,(IX+d) + tmp1=Z80free_doSetRes(processor,1,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 236: // LD_SET H,5,(IX+d) + tmp1=Z80free_doSetRes(processor,1,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 237: // LD_SET L,5,(IX+d) + tmp1=Z80free_doSetRes(processor,1,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 238: // SET 5,(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSetRes(processor,1,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 239: // LD_SET A,5,(IX+d) + tmp1=Z80free_doSetRes(processor,1,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 240: // LD_SET B,6,(IX+d) + tmp1=Z80free_doSetRes(processor,1,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 241: // LD_SET C,6,(IX+d) + tmp1=Z80free_doSetRes(processor,1,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 242: // LD_SET D,6,(IX+d) + tmp1=Z80free_doSetRes(processor,1,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 243: // LD_SET E,6,(IX+d) + tmp1=Z80free_doSetRes(processor,1,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 244: // LD_SET H,6,(IX+d) + tmp1=Z80free_doSetRes(processor,1,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 245: // LD_SET L,6,(IX+d) + tmp1=Z80free_doSetRes(processor,1,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 246: // SET 6,(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSetRes(processor,1,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 247: // LD_SET A,6,(IX+d) + tmp1=Z80free_doSetRes(processor,1,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 248: // LD_SET B,7,(IX+d) + tmp1=Z80free_doSetRes(processor,1,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 249: // LD_SET C,7,(IX+d) + tmp1=Z80free_doSetRes(processor,1,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 250: // LD_SET D,7,(IX+d) + tmp1=Z80free_doSetRes(processor,1,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 251: // LD_SET E,7,(IX+d) + tmp1=Z80free_doSetRes(processor,1,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 252: // LD_SET H,7,(IX+d) + tmp1=Z80free_doSetRes(processor,1,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 253: // LD_SET L,7,(IX+d) + tmp1=Z80free_doSetRes(processor,1,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 254: // SET 7,(IX+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),Z80free_doSetRes(processor,1,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1)))); + return (19); + break; + case 255: // LD_SET A,7,(IX+d) + tmp1=Z80free_doSetRes(processor,1,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + } + + return -1; +} diff --git a/src/z80free/Z80free_codesDDCB.txt b/src/z80free/Z80free_codesDDCB.txt new file mode 100644 index 0000000..876923a --- /dev/null +++ b/src/z80free/Z80free_codesDDCB.txt @@ -0,0 +1,262 @@ +# OPCODES, TSTATES and INSTRUCTIONS for DDCB prefixed instructions +# The TSTATES are 4 less than the real ones because they are counted +# when executing the DDCB prefix +# +# Instructions of the format LD r,XXX (IX+d) (like LD B,RLC (IX+d) ) +# are modified to the format LD_XXX r,(IX+d) to simplify the parser +00 19 LD_RLC B,(IX+d) +01 19 LD_RLC C,(IX+d) +02 19 LD_RLC D,(IX+d) +03 19 LD_RLC E,(IX+d) +04 19 LD_RLC H,(IX+d) +05 19 LD_RLC L,(IX+d) +06 19 RLC b(IX+d) +07 19 LD_RLC A,(IX+d) +08 19 LD_RRC B,(IX+d) +09 19 LD_RRC C,(IX+d) +0A 19 LD_RRC D,(IX+d) +0B 19 LD_RRC E,(IX+d) +0C 19 LD_RRC H,(IX+d) +0D 19 LD_RRC L,(IX+d) +0E 19 RRC b(IX+d) +0F 19 LD_RRC A,(IX+d) +10 19 LD_RL B,(IX+d) +11 19 LD_RL C,(IX+d) +12 19 LD_RL D,(IX+d) +13 19 LD_RL E,(IX+d) +14 19 LD_RL H,(IX+d) +15 19 LD_RL L,(IX+d) +16 19 RL b(IX+d) +17 19 LD_RL A,(IX+d) +18 19 LD_RR B,(IX+d) +19 19 LD_RR C,(IX+d) +1A 19 LD_RR D,(IX+d) +1B 19 LD_RR E,(IX+d) +1C 19 LD_RR H,(IX+d) +1D 19 LD_RR L,(IX+d) +1E 19 RR b(IX+d) +1F 19 LD_RR A,(IX+d) +20 19 LD_SLA B,(IX+d) +21 19 LD_SLA C,(IX+d) +22 19 LD_SLA D,(IX+d) +23 19 LD_SLA E,(IX+d) +24 19 LD_SLA H,(IX+d) +25 19 LD_SLA L,(IX+d) +26 19 SLA b(IX+d) +27 19 LD_SLA A,(IX+d) +28 19 LD_SRA B,(IX+d) +29 19 LD_SRA C,(IX+d) +2A 19 LD_SRA D,(IX+d) +2B 19 LD_SRA E,(IX+d) +2C 19 LD_SRA H,(IX+d) +2D 19 LD_SRA L,(IX+d) +2E 19 SRA b(IX+d) +2F 19 LD_SRA A,(IX+d) +30 19 LD_SLL B,(IX+d) +31 19 LD_SLL C,(IX+d) +32 19 LD_SLL D,(IX+d) +33 19 LD_SLL E,(IX+d) +34 19 LD_SLL H,(IX+d) +35 19 LD_SLL L,(IX+d) +36 19 SLL b(IX+d) +37 19 LD_SLL A,(IX+d) +38 19 LD_SRL B,(IX+d) +39 19 LD_SRL C,(IX+d) +3A 19 LD_SRL D,(IX+d) +3B 19 LD_SRL E,(IX+d) +3C 19 LD_SRL H,(IX+d) +3D 19 LD_SRL L,(IX+d) +3E 19 SRL b(IX+d) +3F 19 LD_SRL A,(IX+d) +40 16 BIT 0,(IX+d) +41 16 BIT 0,(IX+d) +42 16 BIT 0,(IX+d) +43 16 BIT 0,(IX+d) +44 16 BIT 0,(IX+d) +45 16 BIT 0,(IX+d) +46 16 BIT 0,(IX+d) +47 16 BIT 0,(IX+d) +48 16 BIT 1,(IX+d) +49 16 BIT 1,(IX+d) +4A 16 BIT 1,(IX+d) +4B 16 BIT 1,(IX+d) +4C 16 BIT 1,(IX+d) +4D 16 BIT 1,(IX+d) +4E 16 BIT 1,(IX+d) +4F 16 BIT 1,(IX+d) +50 16 BIT 2,(IX+d) +51 16 BIT 2,(IX+d) +52 16 BIT 2,(IX+d) +53 16 BIT 2,(IX+d) +54 16 BIT 2,(IX+d) +55 16 BIT 2,(IX+d) +56 16 BIT 2,(IX+d) +57 16 BIT 2,(IX+d) +58 16 BIT 3,(IX+d) +59 16 BIT 3,(IX+d) +5A 16 BIT 3,(IX+d) +5B 16 BIT 3,(IX+d) +5C 16 BIT 3,(IX+d) +5D 16 BIT 3,(IX+d) +5E 16 BIT 3,(IX+d) +5F 16 BIT 3,(IX+d) +60 16 BIT 4,(IX+d) +61 16 BIT 4,(IX+d) +62 16 BIT 4,(IX+d) +63 16 BIT 4,(IX+d) +64 16 BIT 4,(IX+d) +65 16 BIT 4,(IX+d) +66 16 BIT 4,(IX+d) +67 16 BIT 4,(IX+d) +68 16 BIT 5,(IX+d) +69 16 BIT 5,(IX+d) +6A 16 BIT 5,(IX+d) +6B 16 BIT 5,(IX+d) +6C 16 BIT 5,(IX+d) +6D 16 BIT 5,(IX+d) +6E 16 BIT 5,(IX+d) +6F 16 BIT 5,(IX+d) +70 16 BIT 6,(IX+d) +71 16 BIT 6,(IX+d) +72 16 BIT 6,(IX+d) +73 16 BIT 6,(IX+d) +74 16 BIT 6,(IX+d) +75 16 BIT 6,(IX+d) +76 16 BIT 6,(IX+d) +77 16 BIT 6,(IX+d) +78 16 BIT 7,(IX+d) +79 16 BIT 7,(IX+d) +7A 16 BIT 7,(IX+d) +7B 16 BIT 7,(IX+d) +7C 16 BIT 7,(IX+d) +7D 16 BIT 7,(IX+d) +7E 16 BIT 7,(IX+d) +7F 16 BIT 7,(IX+d) +80 19 LD_RES B,0,(IX+d) +81 19 LD_RES C,0,(IX+d) +82 19 LD_RES D,0,(IX+d) +83 19 LD_RES E,0,(IX+d) +84 19 LD_RES H,0,(IX+d) +85 19 LD_RES L,0,(IX+d) +86 19 RES 0,(IX+d) +87 19 LD_RES A,0,(IX+d) +88 19 LD_RES B,1,(IX+d) +89 19 LD_RES C,1,(IX+d) +8A 19 LD_RES D,1,(IX+d) +8B 19 LD_RES E,1,(IX+d) +8C 19 LD_RES H,1,(IX+d) +8D 19 LD_RES L,1,(IX+d) +8E 19 RES 1,(IX+d) +8F 19 LD_RES A,1,(IX+d) +90 19 LD_RES B,2,(IX+d) +91 19 LD_RES C,2,(IX+d) +92 19 LD_RES D,2,(IX+d) +93 19 LD_RES E,2,(IX+d) +94 19 LD_RES H,2,(IX+d) +95 19 LD_RES L,2,(IX+d) +96 19 RES 2,(IX+d) +97 19 LD_RES A,2,(IX+d) +98 19 LD_RES B,3,(IX+d) +99 19 LD_RES C,3,(IX+d) +9A 19 LD_RES D,3,(IX+d) +9B 19 LD_RES E,3,(IX+d) +9C 19 LD_RES H,3,(IX+d) +9D 19 LD_RES L,3,(IX+d) +9E 19 RES 3,(IX+d) +9F 19 LD_RES A,3,(IX+d) +A0 19 LD_RES B,4,(IX+d) +A1 19 LD_RES C,4,(IX+d) +A2 19 LD_RES D,4,(IX+d) +A3 19 LD_RES E,4,(IX+d) +A4 19 LD_RES H,4,(IX+d) +A5 19 LD_RES L,4,(IX+d) +A6 19 RES 4,(IX+d) +A7 19 LD_RES A,4,(IX+d) +A8 19 LD_RES B,5,(IX+d) +A9 19 LD_RES C,5,(IX+d) +AA 19 LD_RES D,5,(IX+d) +AB 19 LD_RES E,5,(IX+d) +AC 19 LD_RES H,5,(IX+d) +AD 19 LD_RES L,5,(IX+d) +AE 19 RES 5,(IX+d) +AF 19 LD_RES A,5,(IX+d) +B0 19 LD_RES B,6,(IX+d) +B1 19 LD_RES C,6,(IX+d) +B2 19 LD_RES D,6,(IX+d) +B3 19 LD_RES E,6,(IX+d) +B4 19 LD_RES H,6,(IX+d) +B5 19 LD_RES L,6,(IX+d) +B6 19 RES 6,(IX+d) +B7 19 LD_RES A,6,(IX+d) +B8 19 LD_RES B,7,(IX+d) +B9 19 LD_RES C,7,(IX+d) +BA 19 LD_RES D,7,(IX+d) +BB 19 LD_RES E,7,(IX+d) +BC 19 LD_RES H,7,(IX+d) +BD 19 LD_RES L,7,(IX+d) +BE 19 RES 7,(IX+d) +BF 19 LD_RES A,7,(IX+d) +C0 19 LD_SET B,0,(IX+d) +C1 19 LD_SET C,0,(IX+d) +C2 19 LD_SET D,0,(IX+d) +C3 19 LD_SET E,0,(IX+d) +C4 19 LD_SET H,0,(IX+d) +C5 19 LD_SET L,0,(IX+d) +C6 19 SET 0,(IX+d) +C7 19 LD_SET A,0,(IX+d) +C8 19 LD_SET B,1,(IX+d) +C9 19 LD_SET C,1,(IX+d) +CA 19 LD_SET D,1,(IX+d) +CB 19 LD_SET E,1,(IX+d) +CC 19 LD_SET H,1,(IX+d) +CD 19 LD_SET L,1,(IX+d) +CE 19 SET 1,(IX+d) +CF 19 LD_SET A,1,(IX+d) +D0 19 LD_SET B,2,(IX+d) +D1 19 LD_SET C,2,(IX+d) +D2 19 LD_SET D,2,(IX+d) +D3 19 LD_SET E,2,(IX+d) +D4 19 LD_SET H,2,(IX+d) +D5 19 LD_SET L,2,(IX+d) +D6 19 SET 2,(IX+d) +D7 19 LD_SET A,2,(IX+d) +D8 19 LD_SET B,3,(IX+d) +D9 19 LD_SET C,3,(IX+d) +DA 19 LD_SET D,3,(IX+d) +DB 19 LD_SET E,3,(IX+d) +DC 19 LD_SET H,3,(IX+d) +DD 19 LD_SET L,3,(IX+d) +DE 19 SET 3,(IX+d) +DF 19 LD_SET A,3,(IX+d) +E0 19 LD_SET B,4,(IX+d) +E1 19 LD_SET C,4,(IX+d) +E2 19 LD_SET D,4,(IX+d) +E3 19 LD_SET E,4,(IX+d) +E4 19 LD_SET H,4,(IX+d) +E5 19 LD_SET L,4,(IX+d) +E6 19 SET 4,(IX+d) +E7 19 LD_SET A,4,(IX+d) +E8 19 LD_SET B,5,(IX+d) +E9 19 LD_SET C,5,(IX+d) +EA 19 LD_SET D,5,(IX+d) +EB 19 LD_SET E,5,(IX+d) +EC 19 LD_SET H,5,(IX+d) +ED 19 LD_SET L,5,(IX+d) +EE 19 SET 5,(IX+d) +EF 19 LD_SET A,5,(IX+d) +F0 19 LD_SET B,6,(IX+d) +F1 19 LD_SET C,6,(IX+d) +F2 19 LD_SET D,6,(IX+d) +F3 19 LD_SET E,6,(IX+d) +F4 19 LD_SET H,6,(IX+d) +F5 19 LD_SET L,6,(IX+d) +F6 19 SET 6,(IX+d) +F7 19 LD_SET A,6,(IX+d) +F8 19 LD_SET B,7,(IX+d) +F9 19 LD_SET C,7,(IX+d) +FA 19 LD_SET D,7,(IX+d) +FB 19 LD_SET E,7,(IX+d) +FC 19 LD_SET H,7,(IX+d) +FD 19 LD_SET L,7,(IX+d) +FE 19 SET 7,(IX+d) +FF 19 LD_SET A,7,(IX+d) diff --git a/src/z80free/Z80free_codesED.c b/src/z80free/Z80free_codesED.c new file mode 100644 index 0000000..6494922 --- /dev/null +++ b/src/z80free/Z80free_codesED.c @@ -0,0 +1,1025 @@ +/* + * Copyright (C) 2008-2009 Sergio Costas (Raster Software Vigo) + * This file is part of Z80Free + * + * Z80Free is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Z80Free is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "Z80free.h" + +int Z80free_codesED (Z80FREE *processor,byte opcode) { + static byte tmp1; + static byte tmp2; + + switch(opcode) { + case 0: // NOP + return (4); + break; + case 1: // NOP + return (4); + break; + case 2: // NOP + return (4); + break; + case 3: // NOP + return (4); + break; + case 4: // NOP + return (4); + break; + case 5: // NOP + return (4); + break; + case 6: // NOP + return (4); + break; + case 7: // NOP + return (4); + break; + case 8: // NOP + return (4); + break; + case 9: // NOP + return (4); + break; + case 10: // NOP + return (4); + break; + case 11: // NOP + return (4); + break; + case 12: // NOP + return (4); + break; + case 13: // NOP + return (4); + break; + case 14: // NOP + return (4); + break; + case 15: // NOP + return (4); + break; + case 16: // NOP + return (4); + break; + case 17: // NOP + return (4); + break; + case 18: // NOP + return (4); + break; + case 19: // NOP + return (4); + break; + case 20: // NOP + return (4); + break; + case 21: // NOP + return (4); + break; + case 22: // NOP + return (4); + break; + case 23: // NOP + return (4); + break; + case 24: // NOP + return (4); + break; + case 25: // NOP + return (4); + break; + case 26: // NOP + return (4); + break; + case 27: // NOP + return (4); + break; + case 28: // NOP + return (4); + break; + case 29: // NOP + return (4); + break; + case 30: // NOP + return (4); + break; + case 31: // NOP + return (4); + break; + case 32: // NOP + return (4); + break; + case 33: // NOP + return (4); + break; + case 34: // NOP + return (4); + break; + case 35: // NOP + return (4); + break; + case 36: // NOP + return (4); + break; + case 37: // NOP + return (4); + break; + case 38: // NOP + return (4); + break; + case 39: // NOP + return (4); + break; + case 40: // NOP + return (4); + break; + case 41: // NOP + return (4); + break; + case 42: // NOP + return (4); + break; + case 43: // NOP + return (4); + break; + case 44: // NOP + return (4); + break; + case 45: // NOP + return (4); + break; + case 46: // NOP + return (4); + break; + case 47: // NOP + return (4); + break; + case 48: // NOP + return (4); + break; + case 49: // NOP + return (4); + break; + case 50: // NOP + return (4); + break; + case 51: // NOP + return (4); + break; + case 52: // NOP + return (4); + break; + case 53: // NOP + return (4); + break; + case 54: // NOP + return (4); + break; + case 55: // NOP + return (4); + break; + case 56: // NOP + return (4); + break; + case 57: // NOP + return (4); + break; + case 58: // NOP + return (4); + break; + case 59: // NOP + return (4); + break; + case 60: // NOP + return (4); + break; + case 61: // NOP + return (4); + break; + case 62: // NOP + return (4); + break; + case 63: // NOP + return (4); + break; + case 64: // IN_BC B + processor->Rm.br.B=Z80free_In(processor->Rm.wr.BC); + Z80free_adjustFlagSZP (processor,processor->Rm.br.B); + Z80free_resFlag(processor,F_H|F_N); + return (8); + break; + case 65: // OUT_BC B + Z80free_Out(processor->Rm.wr.BC,processor->Rm.br.B); + return (8); + break; + case 66: // SBC HL,BC + processor->Rm.wr.HL=Z80free_doArithmetic16(processor,processor->Rm.wr.HL,processor->Rm.wr.BC,1,1); + return (11); + break; + case 67: // LD (nn),BC + Z80free_write16(Z80free_read_param_16(processor),processor->Rm.wr.BC); + return (16); + break; + case 68: // NEG + processor->Rm.br.A=Z80free_doArithmetic(processor,0,processor->Rm.br.A,0,1); + return (4); + break; + case 69: // RETN + processor->IFF1=(processor->IFF2 ? 2 : 0); + processor->PC=Z80free_doPop(processor); + return (10); + break; + case 70: // IM 0 + processor->IM=0; + return (4); + break; + case 71: // LD I,A + processor->I=processor->Rm.br.A; + return (5); + break; + case 72: // IN_BC C + processor->Rm.br.C=Z80free_In(processor->Rm.wr.BC); + Z80free_adjustFlagSZP (processor,processor->Rm.br.C); + Z80free_resFlag(processor,F_H|F_N); + return (8); + break; + case 73: // OUT_BC C + Z80free_Out(processor->Rm.wr.BC,processor->Rm.br.C); + return (8); + break; + case 74: // ADC HL,BC + processor->Rm.wr.HL=Z80free_doArithmetic16(processor,processor->Rm.wr.HL,processor->Rm.wr.BC,1,0); + return (11); + break; + case 75: // LD BC,(nn) + processor->Rm.wr.BC=Z80free_read16(Z80free_read_param_16(processor)); + return (16); + break; + case 76: // NEG + processor->Rm.br.A=Z80free_doArithmetic(processor,0,processor->Rm.br.A,0,1); + return (4); + break; + case 77: // RETI + processor->IFF1=2; + processor->IFF2=1; + processor->PC=Z80free_doPop(processor); + return (10); + break; + case 78: // IM 1 + processor->IM=1; + return (4); + break; + case 79: // LD R,A + Z80free_setR(processor,processor->Rm.br.A); + return (5); + break; + case 80: // IN_BC D + processor->Rm.br.D=Z80free_In(processor->Rm.wr.BC); + Z80free_adjustFlagSZP (processor,processor->Rm.br.D); + Z80free_resFlag(processor,F_H|F_N); + return (8); + break; + case 81: // OUT_BC D + Z80free_Out(processor->Rm.wr.BC,processor->Rm.br.D); + return (8); + break; + case 82: // SBC HL,DE + processor->Rm.wr.HL=Z80free_doArithmetic16(processor,processor->Rm.wr.HL,processor->Rm.wr.DE,1,1); + return (11); + break; + case 83: // LD (nn),DE + Z80free_write16(Z80free_read_param_16(processor),processor->Rm.wr.DE); + return (16); + break; + case 84: // NEG + processor->Rm.br.A=Z80free_doArithmetic(processor,0,processor->Rm.br.A,0,1); + return (4); + break; + case 85: // RETN + processor->IFF1=(processor->IFF2 ? 2 : 0); + processor->PC=Z80free_doPop(processor); + return (10); + break; + case 86: // IM 1 + processor->IM=1; + return (4); + break; + case 87: // LD A,I + processor->Rm.br.A=Z80free_readI(processor); + return (5); + break; + case 88: // IN_BC E + processor->Rm.br.E=Z80free_In(processor->Rm.wr.BC); + Z80free_adjustFlagSZP (processor,processor->Rm.br.E); + Z80free_resFlag(processor,F_H|F_N); + return (8); + break; + case 89: // OUT_BC E + Z80free_Out(processor->Rm.wr.BC,processor->Rm.br.E); + return (8); + break; + case 90: // ADC HL,DE + processor->Rm.wr.HL=Z80free_doArithmetic16(processor,processor->Rm.wr.HL,processor->Rm.wr.DE,1,0); + return (11); + break; + case 91: // LD DE,(nn) + processor->Rm.wr.DE=Z80free_read16(Z80free_read_param_16(processor)); + return (16); + break; + case 92: // NEG + processor->Rm.br.A=Z80free_doArithmetic(processor,0,processor->Rm.br.A,0,1); + return (4); + break; + case 93: // RETN + processor->IFF1=(processor->IFF2 ? 2 : 0); + processor->PC=Z80free_doPop(processor); + return (10); + break; + case 94: // IM 2 + processor->IM=2; + return (4); + break; + case 95: // LD A,R + processor->Rm.br.A=Z80free_readR(processor); + return (5); + break; + case 96: // IN_BC H + processor->Rm.br.H=Z80free_In(processor->Rm.wr.BC); + Z80free_adjustFlagSZP (processor,processor->Rm.br.H); + Z80free_resFlag(processor,F_H|F_N); + return (8); + break; + case 97: // OUT_BC H + Z80free_Out(processor->Rm.wr.BC,processor->Rm.br.H); + return (8); + break; + case 98: // SBC HL,HL + processor->Rm.wr.HL=Z80free_doArithmetic16(processor,processor->Rm.wr.HL,processor->Rm.wr.HL,1,1); + return (11); + break; + case 99: // LD (nn),HL + Z80free_write16(Z80free_read_param_16(processor),processor->Rm.wr.HL); + return (16); + break; + case 100: // NEG + processor->Rm.br.A=Z80free_doArithmetic(processor,0,processor->Rm.br.A,0,1); + return (4); + break; + case 101: // RETN + processor->IFF1=(processor->IFF2 ? 2 : 0); + processor->PC=Z80free_doPop(processor); + return (10); + break; + case 102: // IM 0 + processor->IM=0; + return (4); + break; + case 103: // RRD + Z80free_doRRD(processor); + return (14); + break; + case 104: // IN_BC L + processor->Rm.br.L=Z80free_In(processor->Rm.wr.BC); + Z80free_adjustFlagSZP (processor,processor->Rm.br.L); + Z80free_resFlag(processor,F_H|F_N); + return (8); + break; + case 105: // OUT_BC L + Z80free_Out(processor->Rm.wr.BC,processor->Rm.br.L); + return (8); + break; + case 106: // ADC HL,HL + processor->Rm.wr.HL=Z80free_doArithmetic16(processor,processor->Rm.wr.HL,processor->Rm.wr.HL,1,0); + return (11); + break; + case 107: // LD HL,(nn) + processor->Rm.wr.HL=Z80free_read16(Z80free_read_param_16(processor)); + return (16); + break; + case 108: // NEG + processor->Rm.br.A=Z80free_doArithmetic(processor,0,processor->Rm.br.A,0,1); + return (4); + break; + case 109: // RETN + processor->IFF1=(processor->IFF2 ? 2 : 0); + processor->PC=Z80free_doPop(processor); + return (10); + break; + case 110: // IM 0 + processor->IM=0; + return (4); + break; + case 111: // RLD + Z80free_doRLD(processor); + return (14); + break; + case 112: // IN_BC + tmp1=Z80free_In(processor->Rm.wr.BC); + Z80free_adjustFlagSZP (processor,tmp1); + Z80free_resFlag(processor,F_H|F_N); + return (8); + break; + case 113: // OUT_BC 0 + Z80free_Out(processor->Rm.wr.BC,0); + return (8); + break; + case 114: // SBC HL,SP + processor->Rm.wr.HL=Z80free_doArithmetic16(processor,processor->Rm.wr.HL,processor->Rm.wr.SP,1,1); + return (11); + break; + case 115: // LD (nn),SP + Z80free_write16(Z80free_read_param_16(processor),processor->Rm.wr.SP); + return (16); + break; + case 116: // NEG + processor->Rm.br.A=Z80free_doArithmetic(processor,0,processor->Rm.br.A,0,1); + return (4); + break; + case 117: // RETN + processor->IFF1=(processor->IFF2 ? 2 : 0); + processor->PC=Z80free_doPop(processor); + return (10); + break; + case 118: // IM 1 + processor->IM=1; + return (4); + break; + case 119: // NOP + return (4); + break; + case 120: // IN_BC A + processor->Rm.br.A=Z80free_In(processor->Rm.wr.BC); + Z80free_adjustFlagSZP (processor,processor->Rm.br.A); + Z80free_resFlag(processor,F_H|F_N); + return (8); + break; + case 121: // OUT_BC A + Z80free_Out(processor->Rm.wr.BC,processor->Rm.br.A); + return (8); + break; + case 122: // ADC HL,SP + processor->Rm.wr.HL=Z80free_doArithmetic16(processor,processor->Rm.wr.HL,processor->Rm.wr.SP,1,0); + return (11); + break; + case 123: // LD SP,(nn) + processor->Rm.wr.SP=Z80free_read16(Z80free_read_param_16(processor)); + return (16); + break; + case 124: // NEG + processor->Rm.br.A=Z80free_doArithmetic(processor,0,processor->Rm.br.A,0,1); + return (4); + break; + case 125: // RETN + processor->IFF1=(processor->IFF2 ? 2 : 0); + processor->PC=Z80free_doPop(processor); + return (10); + break; + case 126: // IM 2 + processor->IM=2; + return (4); + break; + case 127: // NOP + return (4); + break; + case 128: // NOP + return (4); + break; + case 129: // NOP + return (4); + break; + case 130: // NOP + return (4); + break; + case 131: // NOP + return (4); + break; + case 132: // NOP + return (4); + break; + case 133: // NOP + return (4); + break; + case 134: // NOP + return (4); + break; + case 135: // NOP + return (4); + break; + case 136: // NOP + return (4); + break; + case 137: // NOP + return (4); + break; + case 138: // NOP + return (4); + break; + case 139: // NOP + return (4); + break; + case 140: // NOP + return (4); + break; + case 141: // NOP + return (4); + break; + case 142: // NOP + return (4); + break; + case 143: // NOP + return (4); + break; + case 144: // NOP + return (4); + break; + case 145: // NOP + return (4); + break; + case 146: // NOP + return (4); + break; + case 147: // NOP + return (4); + break; + case 148: // NOP + return (4); + break; + case 149: // NOP + return (4); + break; + case 150: // NOP + return (4); + break; + case 151: // NOP + return (4); + break; + case 152: // NOP + return (4); + break; + case 153: // NOP + return (4); + break; + case 154: // NOP + return (4); + break; + case 155: // NOP + return (4); + break; + case 156: // NOP + return (4); + break; + case 157: // NOP + return (4); + break; + case 158: // NOP + return (4); + break; + case 159: // NOP + return (4); + break; + case 160: // LDI + tmp1=Z80free_Rd(processor->Rm.wr.HL++); + Z80free_Wr(processor->Rm.wr.DE++,tmp1); + tmp1+=processor->Rm.br.A; + Z80free_valFlag(processor,F_3,tmp1&0x08); + Z80free_valFlag(processor,F_5,tmp1&0x02); + processor->Rm.wr.BC--; + Z80free_resFlag(processor,F_H|F_N); + if (processor->Rm.wr.BC) + Z80free_setFlag(processor,F_PV); + else + Z80free_resFlag(processor,F_PV); + return (12); + break; + case 161: // CPI + tmp2=F_C&processor->Rm.br.F; + tmp1=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(processor->Rm.wr.HL++),0,1); + if (processor->Rm.br.F&F_H) + tmp1--; + Z80free_valFlag(processor,F_3,tmp1&0x08); + Z80free_valFlag(processor,F_5,tmp1&0x02); + Z80free_setFlag(processor,F_N); + Z80free_valFlag(processor,F_C,tmp2); + processor->Rm.wr.BC--; + if (processor->Rm.wr.BC) + Z80free_setFlag(processor,F_PV); + else + Z80free_resFlag(processor,F_PV); + return (12); + break; + case 162: // INI + /*INI, IND, INIR and INDR first decrement B and then uses it*/ + Z80free_Wr(processor->Rm.wr.HL,Z80free_In(processor->Rm.wr.BC)); + processor->Rm.wr.HL++; + processor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1); + Z80free_valFlag(processor,F_N, 1); + Z80free_valFlag(processor,F_Z, (processor->Rm.br.B == 0)); + return (12); + break; + case 163: // OUTI + /*OUTI, OUTD, OTIR and OTDR first uses B and then decrement it*/ + Z80free_Out(processor->Rm.wr.BC,Z80free_Rd(processor->Rm.wr.HL)); + processor->Rm.wr.HL++; + processor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1); + return (12); + break; + case 164: // NOP + return (4); + break; + case 165: // NOP + return (4); + break; + case 166: // NOP + return (4); + break; + case 167: // NOP + return (4); + break; + case 168: // LDD + tmp1=Z80free_Rd(processor->Rm.wr.HL--); + Z80free_Wr(processor->Rm.wr.DE--,tmp1); + tmp1+=processor->Rm.br.A; + Z80free_valFlag(processor,F_3,tmp1&0x08); + Z80free_valFlag(processor,F_5,tmp1&0x02); + processor->Rm.wr.BC--; + Z80free_resFlag(processor,F_H|F_N); + if (processor->Rm.wr.BC) + Z80free_setFlag(processor,F_PV); + else + Z80free_resFlag(processor,F_PV); + return (12); + break; + case 169: // CPD + tmp2=F_C&processor->Rm.br.F; + tmp1=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(processor->Rm.wr.HL--),0,1); + if (processor->Rm.br.F&F_H) + tmp1--; + Z80free_valFlag(processor,F_3,tmp1&0x08); + Z80free_valFlag(processor,F_5,tmp1&0x02); + Z80free_setFlag(processor,F_N); + Z80free_valFlag(processor,F_C,tmp2); + processor->Rm.wr.BC--; + if (processor->Rm.wr.BC) + Z80free_setFlag(processor,F_PV); + else + Z80free_resFlag(processor,F_PV); + return (12); + break; + case 170: // IND + Z80free_Wr(processor->Rm.wr.HL,Z80free_In(processor->Rm.wr.BC)); + processor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1); + processor->Rm.wr.HL--; + return (12); + break; + case 171: // OUTD + Z80free_Out(processor->Rm.wr.BC,Z80free_Rd(processor->Rm.wr.HL)); + processor->Rm.wr.HL--; + processor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1); + return (12); + break; + case 172: // NOP + return (4); + break; + case 173: // NOP + return (4); + break; + case 174: // NOP + return (4); + break; + case 175: // NOP + return (4); + break; + case 176: // LDIR + tmp1=Z80free_Rd(processor->Rm.wr.HL++); + Z80free_Wr(processor->Rm.wr.DE++,tmp1); + processor->Rm.wr.BC--; + if (processor->Rm.wr.BC) { + processor->PC-=2; + return (17); + } else { + Z80free_resFlag(processor,F_H|F_N|F_PV); + tmp1+=processor->Rm.br.A; + Z80free_valFlag(processor,F_3,tmp1&0x08); + Z80free_valFlag(processor,F_5,tmp1&0x02); + return (12); + } + break; + case 177: // CPIR + tmp2=F_C&processor->Rm.br.F; + Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(processor->Rm.wr.HL++),0,1); + processor->Rm.wr.BC--; + if ((processor->Rm.wr.BC)&&(!(processor->Rm.br.F&F_Z))) { + processor->PC-=2; + return (17); + } else { + Z80free_resFlag(processor,F_H|F_N|F_PV|F_3|F_5); + Z80free_valFlag(processor,F_C,tmp2); + return (12); + } + break; + case 178: // INIR + Z80free_Wr(processor->Rm.wr.HL,Z80free_In(processor->Rm.wr.BC)); + processor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1); + processor->Rm.wr.HL++; + if (processor->Rm.br.B) { + processor->PC-=2; + return (17); + } else { + return (12); + } + break; + case 179: // OTIR + Z80free_Out(processor->Rm.wr.BC,Z80free_Rd(processor->Rm.wr.HL)); + processor->Rm.wr.HL++; + processor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1); + if (processor->Rm.br.B) { + processor->PC-=2; + return (17); + } else { + return (12); + } + break; + case 180: // NOP + return (4); + break; + case 181: // NOP + return (4); + break; + case 182: // NOP + return (4); + break; + case 183: // NOP + return (4); + break; + case 184: // LDDR + tmp1=Z80free_Rd(processor->Rm.wr.HL--); + Z80free_Wr(processor->Rm.wr.DE--,tmp1); + processor->Rm.wr.BC--; + if (processor->Rm.wr.BC) { + processor->PC-=2; + return (17); + } else { + Z80free_resFlag(processor,F_H|F_N|F_PV); + tmp1+=processor->Rm.br.A; + Z80free_valFlag(processor,F_3,tmp1&0x08); + Z80free_valFlag(processor,F_5,tmp1&0x02); + return (12); + } + break; + case 185: // CPDR + tmp2=F_C&processor->Rm.br.F; + Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(processor->Rm.wr.HL--),0,1); + processor->Rm.wr.BC--; + if ((processor->Rm.wr.BC)&&(!(processor->Rm.br.F&F_Z))) { + processor->PC-=2; + return (17); + } else { + Z80free_resFlag(processor,F_H|F_N|F_PV|F_3|F_5); + Z80free_valFlag(processor,F_C,tmp2); + return (12); + } + break; + case 186: // INDR + Z80free_Wr(processor->Rm.wr.HL,Z80free_In(processor->Rm.wr.BC)); + processor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1); + processor->Rm.wr.HL--; + if (processor->Rm.br.B) { + processor->PC-=2; + return (17); + } else { + return (12); + } + break; + case 187: // OTDR + Z80free_Out(processor->Rm.wr.BC,Z80free_Rd(processor->Rm.wr.HL)); + processor->Rm.wr.HL--; + processor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1); + if (processor->Rm.br.B) { + processor->PC-=2; + return (17); + } else { + return (12); + } + break; + case 188: // NOP + return (4); + break; + case 189: // NOP + return (4); + break; + case 190: // NOP + return (4); + break; + case 191: // NOP + return (4); + break; + case 192: // NOP + return (4); + break; + case 193: // NOP + return (4); + break; + case 194: // NOP + return (4); + break; + case 195: // NOP + return (4); + break; + case 196: // NOP + return (4); + break; + case 197: // NOP + return (4); + break; + case 198: // NOP + return (4); + break; + case 199: // NOP + return (4); + break; + case 200: // NOP + return (4); + break; + case 201: // NOP + return (4); + break; + case 202: // NOP + return (4); + break; + case 203: // NOP + return (4); + break; + case 204: // NOP + return (4); + break; + case 205: // NOP + return (4); + break; + case 206: // NOP + return (4); + break; + case 207: // NOP + return (4); + break; + case 208: // NOP + return (4); + break; + case 209: // NOP + return (4); + break; + case 210: // NOP + return (4); + break; + case 211: // NOP + return (4); + break; + case 212: // NOP + return (4); + break; + case 213: // NOP + return (4); + break; + case 214: // NOP + return (4); + break; + case 215: // NOP + return (4); + break; + case 216: // NOP + return (4); + break; + case 217: // NOP + return (4); + break; + case 218: // NOP + return (4); + break; + case 219: // NOP + return (4); + break; + case 220: // NOP + return (4); + break; + case 221: // NOP + return (4); + break; + case 222: // NOP + return (4); + break; + case 223: // NOP + return (4); + break; + case 224: // NOP + return (4); + break; + case 225: // NOP + return (4); + break; + case 226: // NOP + return (4); + break; + case 227: // NOP + return (4); + break; + case 228: // NOP + return (4); + break; + case 229: // NOP + return (4); + break; + case 230: // NOP + return (4); + break; + case 231: // NOP + return (4); + break; + case 232: // NOP + return (4); + break; + case 233: // NOP + return (4); + break; + case 234: // NOP + return (4); + break; + case 235: // NOP + return (4); + break; + case 236: // NOP + return (4); + break; + case 237: // NOP + return (4); + break; + case 238: // NOP + return (4); + break; + case 239: // NOP + return (4); + break; + case 240: // NOP + return (4); + break; + case 241: // NOP + return (4); + break; + case 242: // NOP + return (4); + break; + case 243: // NOP + return (4); + break; + case 244: // NOP + return (4); + break; + case 245: // NOP + return (4); + break; + case 246: // NOP + return (4); + break; + case 247: // NOP + return (4); + break; + case 248: // NOP + return (4); + break; + case 249: // NOP + return (4); + break; + case 250: // NOP + return (4); + break; + case 251: // NOP + return (4); + break; + case 252: // NOP + return (4); + break; + case 253: // NOP + return (4); + break; + case 254: // NOP + return (4); + break; + case 255: // NOP + return (4); + break; + } + + return -1; +} diff --git a/src/z80free/Z80free_codesED.txt b/src/z80free/Z80free_codesED.txt new file mode 100644 index 0000000..f2aa734 --- /dev/null +++ b/src/z80free/Z80free_codesED.txt @@ -0,0 +1,260 @@ +# OPCODES, TSTATES and INSTRUCTIONS for ED prefixed instructions +# The TSTATES are 4 less than the real ones because they are counted +# when executing the ED prefix +# IN and OUT syntax has been modified to simplify the parser +00 4 NOP +01 4 NOP +02 4 NOP +03 4 NOP +04 4 NOP +05 4 NOP +06 4 NOP +07 4 NOP +08 4 NOP +09 4 NOP +0A 4 NOP +0B 4 NOP +0C 4 NOP +0D 4 NOP +0E 4 NOP +0F 4 NOP +10 4 NOP +11 4 NOP +12 4 NOP +13 4 NOP +14 4 NOP +15 4 NOP +16 4 NOP +17 4 NOP +18 4 NOP +19 4 NOP +1A 4 NOP +1B 4 NOP +1C 4 NOP +1D 4 NOP +1E 4 NOP +1F 4 NOP +20 4 NOP +21 4 NOP +22 4 NOP +23 4 NOP +24 4 NOP +25 4 NOP +26 4 NOP +27 4 NOP +28 4 NOP +29 4 NOP +2A 4 NOP +2B 4 NOP +2C 4 NOP +2D 4 NOP +2E 4 NOP +2F 4 NOP +30 4 NOP +31 4 NOP +32 4 NOP +33 4 NOP +34 4 NOP +35 4 NOP +36 4 NOP +37 4 NOP +38 4 NOP +39 4 NOP +3A 4 NOP +3B 4 NOP +3C 4 NOP +3D 4 NOP +3E 4 NOP +3F 4 NOP +40 8 IN_BC B +41 8 OUT_BC B +42 11 SBC HL,BC +43 16 LD (nn),BC +44 4 NEG +45 10 RETN +46 4 IM 0 +47 5 LD I,A +48 8 IN_BC C +49 8 OUT_BC C +4A 11 ADC HL,BC +4B 16 LD BC,(nn) +4C 4 NEG +4D 10 RETI +4E 4 IM 1 +4F 5 LD R,A +50 8 IN_BC D +51 8 OUT_BC D +52 11 SBC HL,DE +53 16 LD (nn),DE +54 4 NEG +55 10 RETN +56 4 IM 1 +57 5 LD A,I +58 8 IN_BC E +59 8 OUT_BC E +5A 11 ADC HL,DE +5B 16 LD DE,(nn) +5C 4 NEG +5D 10 RETN +5E 4 IM 2 +5F 5 LD A,R +60 8 IN_BC H +61 8 OUT_BC H +62 11 SBC HL,HL +63 16 LD (nn),HL +64 4 NEG +65 10 RETN +66 4 IM 0 +67 14 RRD +68 8 IN_BC L +69 8 OUT_BC L +6A 11 ADC HL,HL +6B 16 LD HL,(nn) +6C 4 NEG +6D 10 RETN +6E 4 IM 0 +6F 14 RLD +70 8 IN_BC +71 8 OUT_BC 0 +72 11 SBC HL,SP +73 16 LD (nn),SP +74 4 NEG +75 10 RETN +76 4 IM 1 +77 4 NOP +78 8 IN_BC A +79 8 OUT_BC A +7A 11 ADC HL,SP +7B 16 LD SP,(nn) +7C 4 NEG +7D 10 RETN +7E 4 IM 2 +7F 4 NOP +80 4 NOP +81 4 NOP +82 4 NOP +83 4 NOP +84 4 NOP +85 4 NOP +86 4 NOP +87 4 NOP +88 4 NOP +89 4 NOP +8A 4 NOP +8B 4 NOP +8C 4 NOP +8D 4 NOP +8E 4 NOP +8F 4 NOP +90 4 NOP +91 4 NOP +92 4 NOP +93 4 NOP +94 4 NOP +95 4 NOP +96 4 NOP +97 4 NOP +98 4 NOP +99 4 NOP +9A 4 NOP +9B 4 NOP +9C 4 NOP +9D 4 NOP +9E 4 NOP +9F 4 NOP +A0 12 LDI +A1 12 CPI +A2 12 INI +A3 12 OUTI +A4 4 NOP +A5 4 NOP +A6 4 NOP +A7 4 NOP +A8 12 LDD +A9 12 CPD +AA 12 IND +AB 12 OUTD +AC 4 NOP +AD 4 NOP +AE 4 NOP +AF 4 NOP +B0 17/12 LDIR +B1 17/12 CPIR +B2 17/12 INIR +B3 17/12 OTIR +B4 4 NOP +B5 4 NOP +B6 4 NOP +B7 4 NOP +B8 17/12 LDDR +B9 17/12 CPDR +BA 17/12 INDR +BB 17/12 OTDR +BC 4 NOP +BD 4 NOP +BE 4 NOP +BF 4 NOP +C0 4 NOP +C1 4 NOP +C2 4 NOP +C3 4 NOP +C4 4 NOP +C5 4 NOP +C6 4 NOP +C7 4 NOP +C8 4 NOP +C9 4 NOP +CA 4 NOP +CB 4 NOP +CC 4 NOP +CD 4 NOP +CE 4 NOP +CF 4 NOP +D0 4 NOP +D1 4 NOP +D2 4 NOP +D3 4 NOP +D4 4 NOP +D5 4 NOP +D6 4 NOP +D7 4 NOP +D8 4 NOP +D9 4 NOP +DA 4 NOP +DB 4 NOP +DC 4 NOP +DD 4 NOP +DE 4 NOP +DF 4 NOP +E0 4 NOP +E1 4 NOP +E2 4 NOP +E3 4 NOP +E4 4 NOP +E5 4 NOP +E6 4 NOP +E7 4 NOP +E8 4 NOP +E9 4 NOP +EA 4 NOP +EB 4 NOP +EC 4 NOP +ED 4 NOP +EE 4 NOP +EF 4 NOP +F0 4 NOP +F1 4 NOP +F2 4 NOP +F3 4 NOP +F4 4 NOP +F5 4 NOP +F6 4 NOP +F7 4 NOP +F8 4 NOP +F9 4 NOP +FA 4 NOP +FB 4 NOP +FC 4 NOP +FD 4 NOP +FE 4 NOP +FF 4 NOP diff --git a/src/z80free/Z80free_codesFD.c b/src/z80free/Z80free_codesFD.c new file mode 100644 index 0000000..e919a21 --- /dev/null +++ b/src/z80free/Z80free_codesFD.c @@ -0,0 +1,890 @@ +/* + * Copyright (C) 2008-2009 Sergio Costas (Raster Software Vigo) + * This file is part of Z80Free + * + * Z80Free is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Z80Free is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "Z80free.h" + +int Z80free_codesFD (Z80FREE *processor,byte opcode) { + static byte tmp1; + static word tmp2; + + switch(opcode) { + case 0: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 1: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 2: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 3: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 4: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 5: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 6: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 7: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 8: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 9: // ADD IY,BC + processor->Rm.wr.IY=Z80free_doArithmetic16(processor,processor->Rm.wr.IY,processor->Rm.wr.BC,0,0); + return (11); + break; + case 10: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 11: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 12: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 13: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 14: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 15: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 16: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 17: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 18: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 19: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 20: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 21: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 22: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 23: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 24: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 25: // ADD IY,DE + processor->Rm.wr.IY=Z80free_doArithmetic16(processor,processor->Rm.wr.IY,processor->Rm.wr.DE,0,0); + return (11); + break; + case 26: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 27: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 28: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 29: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 30: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 31: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 32: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 33: // LD IY,nn + processor->Rm.wr.IY=Z80free_read_param_16(processor); + return (10); + break; + case 34: // LD (nn),IY + Z80free_write16(Z80free_read_param_16(processor),processor->Rm.wr.IY); + return (16); + break; + case 35: // INC IY + processor->Rm.wr.IY=Z80free_doIncDec16(processor,processor->Rm.wr.IY,0); + return (6); + break; + case 36: // INC IYH + processor->Rm.br.IYh=Z80free_doIncDec(processor,processor->Rm.br.IYh,0); + return (4); + break; + case 37: // DEC IYH + processor->Rm.br.IYh=Z80free_doIncDec(processor,processor->Rm.br.IYh,1); + return (4); + break; + case 38: // LD IYH,n + processor->Rm.br.IYh=Z80free_read_param_8(processor); + return (7); + break; + case 39: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 40: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 41: // ADD IY,IY + processor->Rm.wr.IY=Z80free_doArithmetic16(processor,processor->Rm.wr.IY,processor->Rm.wr.IY,0,0); + return (11); + break; + case 42: // LD IY,(nn) + processor->Rm.wr.IY=Z80free_read16(Z80free_read_param_16(processor)); + return (16); + break; + case 43: // DEC IY + processor->Rm.wr.IY=Z80free_doIncDec16(processor,processor->Rm.wr.IY,1); + return (6); + break; + case 44: // INC IYL + processor->Rm.br.IYl=Z80free_doIncDec(processor,processor->Rm.br.IYl,0); + return (4); + break; + case 45: // DEC IYL + processor->Rm.br.IYl=Z80free_doIncDec(processor,processor->Rm.br.IYl,1); + return (4); + break; + case 46: // LD IYL,n + processor->Rm.br.IYl=Z80free_read_param_8(processor); + return (7); + break; + case 47: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 48: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 49: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 50: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 51: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 52: // INC b(IY+d) + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IY),Z80free_doIncDec(processor,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY)),0)); + return (19); + break; + case 53: // DEC b(IY+d) + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IY),Z80free_doIncDec(processor,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY)),1)); + return (19); + break; + case 54: // LD2 IY+d,n + tmp2=Z80free_addr_relative(processor,processor->Rm.wr.IY); + Z80free_Wr(tmp2,Z80free_read_param_8(processor)); + return (15); + break; + case 55: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 56: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 57: // ADD IY,SP + processor->Rm.wr.IY=Z80free_doArithmetic16(processor,processor->Rm.wr.IY,processor->Rm.wr.SP,0,0); + return (11); + break; + case 58: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 59: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 60: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 61: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 62: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 63: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 64: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 65: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 66: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 67: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 68: // LD B,IYH + processor->Rm.br.B=processor->Rm.br.IYh; + return (4); + break; + case 69: // LD B,IYL + processor->Rm.br.B=processor->Rm.br.IYl; + return (4); + break; + case 70: // LD B,(IY+d) + processor->Rm.br.B=Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY)); + return (15); + break; + case 71: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 72: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 73: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 74: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 75: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 76: // LD C,IYH + processor->Rm.br.C=processor->Rm.br.IYh; + return (4); + break; + case 77: // LD C,IYL + processor->Rm.br.C=processor->Rm.br.IYl; + return (4); + break; + case 78: // LD C,(IY+d) + processor->Rm.br.C=Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY)); + return (15); + break; + case 79: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 80: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 81: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 82: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 83: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 84: // LD D,IYH + processor->Rm.br.D=processor->Rm.br.IYh; + return (4); + break; + case 85: // LD D,IYL + processor->Rm.br.D=processor->Rm.br.IYl; + return (4); + break; + case 86: // LD D,(IY+d) + processor->Rm.br.D=Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY)); + return (15); + break; + case 87: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 88: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 89: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 90: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 91: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 92: // LD E,IYH + processor->Rm.br.E=processor->Rm.br.IYh; + return (4); + break; + case 93: // LD E,IYL + processor->Rm.br.E=processor->Rm.br.IYl; + return (4); + break; + case 94: // LD E,(IY+d) + processor->Rm.br.E=Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY)); + return (15); + break; + case 95: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 96: // LD IYH,B + processor->Rm.br.IYh=processor->Rm.br.B; + return (4); + break; + case 97: // LD IYH,C + processor->Rm.br.IYh=processor->Rm.br.C; + return (4); + break; + case 98: // LD IYH,D + processor->Rm.br.IYh=processor->Rm.br.D; + return (4); + break; + case 99: // LD IYH,E + processor->Rm.br.IYh=processor->Rm.br.E; + return (4); + break; + case 100: // LD IYH,IYH + processor->Rm.br.IYh=processor->Rm.br.IYh; + return (4); + break; + case 101: // LD IYH,IYL + processor->Rm.br.IYh=processor->Rm.br.IYl; + return (4); + break; + case 102: // LD H,(IY+d) + processor->Rm.br.H=Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY)); + return (15); + break; + case 103: // LD IYH,A + processor->Rm.br.IYh=processor->Rm.br.A; + return (4); + break; + case 104: // LD IYL,B + processor->Rm.br.IYl=processor->Rm.br.B; + return (4); + break; + case 105: // LD IYL,C + processor->Rm.br.IYl=processor->Rm.br.C; + return (4); + break; + case 106: // LD IYL,D + processor->Rm.br.IYl=processor->Rm.br.D; + return (4); + break; + case 107: // LD IYL,E + processor->Rm.br.IYl=processor->Rm.br.E; + return (4); + break; + case 108: // LD IYL,IYH + processor->Rm.br.IYl=processor->Rm.br.IYh; + return (4); + break; + case 109: // LD IYL,IYL + processor->Rm.br.IYl=processor->Rm.br.IYl; + return (4); + break; + case 110: // LD L,(IY+d) + processor->Rm.br.L=Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY)); + return (15); + break; + case 111: // LD IYL,A + processor->Rm.br.IYl=processor->Rm.br.A; + return (4); + break; + case 112: // LD (IY+d),B + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IY),processor->Rm.br.B); + return (15); + break; + case 113: // LD (IY+d),C + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IY),processor->Rm.br.C); + return (15); + break; + case 114: // LD (IY+d),D + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IY),processor->Rm.br.D); + return (15); + break; + case 115: // LD (IY+d),E + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IY),processor->Rm.br.E); + return (15); + break; + case 116: // LD (IY+d),H + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IY),processor->Rm.br.H); + return (15); + break; + case 117: // LD (IY+d),L + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IY),processor->Rm.br.L); + return (15); + break; + case 118: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 119: // LD (IY+d),A + Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IY),processor->Rm.br.A); + return (15); + break; + case 120: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 121: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 122: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 123: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 124: // LD A,IYH + processor->Rm.br.A=processor->Rm.br.IYh; + return (4); + break; + case 125: // LD A,IYL + processor->Rm.br.A=processor->Rm.br.IYl; + return (4); + break; + case 126: // LD A,(IY+d) + processor->Rm.br.A=Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY)); + return (15); + break; + case 127: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 128: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 129: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 130: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 131: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 132: // ADD A,IYH + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.IYh,0,0); + return (4); + break; + case 133: // ADD A,IYL + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.IYl,0,0); + return (4); + break; + case 134: // ADD A,(IY+d) + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY)),0,0); + return (15); + break; + case 135: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 136: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 137: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 138: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 139: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 140: // ADC A,IYH + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.IYh,1,0); + return (4); + break; + case 141: // ADC A,IYL + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.IYl,1,0); + return (4); + break; + case 142: // ADC A,(IY+d) + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY)),1,0); + return (15); + break; + case 143: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 144: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 145: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 146: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 147: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 148: // SUB IYH + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.IYh,0,1); + return (4); + break; + case 149: // SUB IYL + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.IYl,0,1); + return (4); + break; + case 150: // SUB b(IY+d) + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY)),0,1); + return (15); + break; + case 151: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 152: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 153: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 154: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 155: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 156: // SBC A,IYH + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.IYh,1,1); + return (4); + break; + case 157: // SBC A,IYL + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,processor->Rm.br.IYl,1,1); + return (4); + break; + case 158: // SBC A,(IY+d) + processor->Rm.br.A=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY)),1,1); + return (15); + break; + case 159: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 160: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 161: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 162: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 163: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 164: // AND IYH + Z80free_doAND(processor,processor->Rm.br.IYh); + return (4); + break; + case 165: // AND IYL + Z80free_doAND(processor,processor->Rm.br.IYl); + return (4); + break; + case 166: // AND b(IY+d) + Z80free_doAND(processor,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY))); + return (15); + break; + case 167: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 168: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 169: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 170: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 171: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 172: // XOR IYH + Z80free_doXOR(processor,processor->Rm.br.IYh); + return (4); + break; + case 173: // XOR IYL + Z80free_doXOR(processor,processor->Rm.br.IYl); + return (4); + break; + case 174: // XOR b(IY+d) + Z80free_doXOR(processor,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY))); + return (15); + break; + case 175: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 176: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 177: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 178: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 179: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 180: // OR IYH + Z80free_doOR(processor,processor->Rm.br.IYh); + return (4); + break; + case 181: // OR IYL + Z80free_doOR(processor,processor->Rm.br.IYl); + return (4); + break; + case 182: // OR b(IY+d) + Z80free_doOR(processor,Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY))); + return (15); + break; + case 183: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 184: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 185: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 186: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 187: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 188: // CP IYH + tmp1=processor->Rm.br.IYh; + Z80free_doArithmetic(processor,processor->Rm.br.A,tmp1,0,1); + Z80free_adjustFlags(processor,tmp1); + return (4); + break; + case 189: // CP IYL + tmp1=processor->Rm.br.IYl; + Z80free_doArithmetic(processor,processor->Rm.br.A,tmp1,0,1); + Z80free_adjustFlags(processor,tmp1); + return (4); + break; + case 190: // CP b(IY+d) + tmp1=Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY)); + Z80free_doArithmetic(processor,processor->Rm.br.A,tmp1,0,1); + Z80free_adjustFlags(processor,tmp1); + return (15); + break; + case 191: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 192: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 193: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 194: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 195: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 196: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 197: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 198: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 199: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 200: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 201: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 202: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 204: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 205: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 206: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 207: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 208: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 209: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 210: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 211: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 212: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 213: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 214: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 215: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 216: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 217: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 218: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 219: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 220: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 221: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 222: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 223: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 224: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 225: // POP IY + processor->Rm.wr.IY=Z80free_doPop(processor); + return (10); + break; + case 226: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 227: // EX (SP),IY + tmp2=Z80free_read16(processor->Rm.wr.SP); + Z80free_write16(processor->Rm.wr.SP,processor->Rm.wr.IY); + processor->Rm.wr.IY=tmp2; + return (19); + break; + case 228: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 229: // PUSH IY + Z80free_doPush(processor,processor->Rm.wr.IY); + return (11); + break; + case 230: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 231: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 232: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 233: // JP IY + tmp2=processor->Rm.wr.IY; + processor->PC=tmp2; + return (4); + break; + case 234: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 235: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 236: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 237: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 238: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 239: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 240: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 241: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 242: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 243: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 244: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 245: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 246: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 247: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 248: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 249: // LD SP,IY + processor->Rm.wr.SP=processor->Rm.wr.IY; + return (6); + break; + case 250: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 251: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 252: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 253: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 254: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + case 255: // DEFAULT + return (Z80free_codes(processor,opcode)); + break; + } + + return -1; +} diff --git a/src/z80free/Z80free_codesFD.txt b/src/z80free/Z80free_codesFD.txt new file mode 100644 index 0000000..4d9276d --- /dev/null +++ b/src/z80free/Z80free_codesFD.txt @@ -0,0 +1,262 @@ +# OPCODE, TSTATES and instruction for FD prefixed instructions +# The TSTATES are 4 less than the real ones, because we already had count +# them when exexuting the FD prefix +# DEFAULT opcode do the same than the unprefixed ones, using 4 TStates more +# Some opcodes have been modified to better adapt to the parser, like +# LD (IY+d),n, which now is LD2 IY+d,n +00 1 DEFAULT +01 1 DEFAULT +02 1 DEFAULT +03 1 DEFAULT +04 1 DEFAULT +05 1 DEFAULT +06 1 DEFAULT +07 1 DEFAULT +08 1 DEFAULT +09 11 ADD IY,BC +0A 1 DEFAULT +0B 1 DEFAULT +0C 1 DEFAULT +0D 1 DEFAULT +0E 1 DEFAULT +0F 1 DEFAULT +10 1 DEFAULT +11 1 DEFAULT +12 1 DEFAULT +13 1 DEFAULT +14 1 DEFAULT +15 1 DEFAULT +16 1 DEFAULT +17 1 DEFAULT +18 1 DEFAULT +19 11 ADD IY,DE +1A 1 DEFAULT +1B 1 DEFAULT +1C 1 DEFAULT +1D 1 DEFAULT +1E 1 DEFAULT +1F 1 DEFAULT +20 1 DEFAULT +21 10 LD IY,nn +22 16 LD (nn),IY +23 6 INC IY +24 4 INC IYH +25 4 DEC IYH +26 7 LD IYH,n +27 1 DEFAULT +28 1 DEFAULT +29 11 ADD IY,IY +2A 16 LD IY,(nn) +2B 6 DEC IY +2C 4 INC IYL +2D 4 DEC IYL +2E 7 LD IYL,n +2F 1 DEFAULT +30 1 DEFAULT +31 1 DEFAULT +32 1 DEFAULT +33 1 DEFAULT +34 19 INC b(IY+d) +35 19 DEC b(IY+d) +36 15 LD2 IY+d,n +37 1 DEFAULT +38 1 DEFAULT +39 11 ADD IY,SP +3A 1 DEFAULT +3B 1 DEFAULT +3C 1 DEFAULT +3D 1 DEFAULT +3E 1 DEFAULT +3F 1 DEFAULT +40 1 DEFAULT +41 1 DEFAULT +42 1 DEFAULT +43 1 DEFAULT +44 4 LD B,IYH +45 4 LD B,IYL +46 15 LD B,(IY+d) +47 1 DEFAULT +48 1 DEFAULT +49 1 DEFAULT +4A 1 DEFAULT +4B 1 DEFAULT +4C 4 LD C,IYH +4D 4 LD C,IYL +4E 15 LD C,(IY+d) +4F 1 DEFAULT +50 1 DEFAULT +51 1 DEFAULT +52 1 DEFAULT +53 1 DEFAULT +54 4 LD D,IYH +55 4 LD D,IYL +56 15 LD D,(IY+d) +57 1 DEFAULT +58 1 DEFAULT +59 1 DEFAULT +5A 1 DEFAULT +5B 1 DEFAULT +5C 4 LD E,IYH +5D 4 LD E,IYL +5E 15 LD E,(IY+d) +5F 1 DEFAULT +60 4 LD IYH,B +61 4 LD IYH,C +62 4 LD IYH,D +63 4 LD IYH,E +64 4 LD IYH,IYH +65 4 LD IYH,IYL +66 15 LD H,(IY+d) +67 4 LD IYH,A +68 4 LD IYL,B +69 4 LD IYL,C +6A 4 LD IYL,D +6B 4 LD IYL,E +6C 4 LD IYL,IYH +6D 4 LD IYL,IYL +6E 15 LD L,(IY+d) +6F 4 LD IYL,A +70 15 LD (IY+d),B +71 15 LD (IY+d),C +72 15 LD (IY+d),D +73 15 LD (IY+d),E +74 15 LD (IY+d),H +75 15 LD (IY+d),L +76 1 DEFAULT +77 15 LD (IY+d),A +78 1 DEFAULT +79 1 DEFAULT +7A 1 DEFAULT +7B 1 DEFAULT +7C 4 LD A,IYH +7D 4 LD A,IYL +7E 15 LD A,(IY+d) +7F 1 DEFAULT +80 1 DEFAULT +81 1 DEFAULT +82 1 DEFAULT +83 1 DEFAULT +84 4 ADD A,IYH +85 4 ADD A,IYL +86 15 ADD A,(IY+d) +87 1 DEFAULT +88 1 DEFAULT +89 1 DEFAULT +8A 1 DEFAULT +8B 1 DEFAULT +8C 4 ADC A,IYH +8D 4 ADC A,IYL +8E 15 ADC A,(IY+d) +8F 1 DEFAULT +90 1 DEFAULT +91 1 DEFAULT +92 1 DEFAULT +93 1 DEFAULT +94 4 SUB IYH +95 4 SUB IYL +96 15 SUB b(IY+d) +97 1 DEFAULT +98 1 DEFAULT +99 1 DEFAULT +9A 1 DEFAULT +9B 1 DEFAULT +9C 4 SBC A,IYH +9D 4 SBC A,IYL +9E 15 SBC A,(IY+d) +9F 1 DEFAULT +A0 1 DEFAULT +A1 1 DEFAULT +A2 1 DEFAULT +A3 1 DEFAULT +A4 4 AND IYH +A5 4 AND IYL +A6 15 AND b(IY+d) +A7 1 DEFAULT +A8 1 DEFAULT +A9 1 DEFAULT +AA 1 DEFAULT +AB 1 DEFAULT +AC 4 XOR IYH +AD 4 XOR IYL +AE 15 XOR b(IY+d) +AF 1 DEFAULT +B0 1 DEFAULT +B1 1 DEFAULT +B2 1 DEFAULT +B3 1 DEFAULT +B4 4 OR IYH +B5 4 OR IYL +B6 15 OR b(IY+d) +B7 1 DEFAULT +B8 1 DEFAULT +B9 1 DEFAULT +BA 1 DEFAULT +BB 1 DEFAULT +BC 4 CP IYH +BD 4 CP IYL +BE 15 CP b(IY+d) +BF 1 DEFAULT +C0 1 DEFAULT +C1 1 DEFAULT +C2 1 DEFAULT +C3 1 DEFAULT +C4 1 DEFAULT +C5 1 DEFAULT +C6 1 DEFAULT +C7 1 DEFAULT +C8 1 DEFAULT +C9 1 DEFAULT +CA 1 DEFAULT +CB * PREFIX +CC 1 DEFAULT +CD 1 DEFAULT +CE 1 DEFAULT +CF 1 DEFAULT +D0 1 DEFAULT +D1 1 DEFAULT +D2 1 DEFAULT +D3 1 DEFAULT +D4 1 DEFAULT +D5 1 DEFAULT +D6 1 DEFAULT +D7 1 DEFAULT +D8 1 DEFAULT +D9 1 DEFAULT +DA 1 DEFAULT +DB 1 DEFAULT +DC 1 DEFAULT +DD 1 DEFAULT +DE 1 DEFAULT +DF 1 DEFAULT +E0 1 DEFAULT +E1 10 POP IY +E2 1 DEFAULT +E3 19 EX (SP),IY +E4 1 DEFAULT +E5 11 PUSH IY +E6 1 DEFAULT +E7 1 DEFAULT +E8 1 DEFAULT +E9 4 JP IY +EA 1 DEFAULT +EB 1 DEFAULT +EC 1 DEFAULT +ED 1 DEFAULT +EE 1 DEFAULT +EF 1 DEFAULT +F0 1 DEFAULT +F1 1 DEFAULT +F2 1 DEFAULT +F3 1 DEFAULT +F4 1 DEFAULT +F5 1 DEFAULT +F6 1 DEFAULT +F7 1 DEFAULT +F8 1 DEFAULT +F9 6 LD SP,IY +FA 1 DEFAULT +FB 1 DEFAULT +FC 1 DEFAULT +FD 1 DEFAULT +FE 1 DEFAULT +FF 1 DEFAULT diff --git a/src/z80free/Z80free_codesFDCB.c b/src/z80free/Z80free_codesFDCB.c new file mode 100644 index 0000000..0891a84 --- /dev/null +++ b/src/z80free/Z80free_codesFDCB.c @@ -0,0 +1,1391 @@ +/* + * Copyright (C) 2008-2009 Sergio Costas (Raster Software Vigo) + * This file is part of Z80Free + * + * Z80Free is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Z80Free is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "Z80free.h" + +int Z80free_codesFDCB (Z80FREE *processor,byte d1) { + static byte tmp1; + static byte opcode; + opcode=Z80free_Rd(processor->PC++); + + switch(opcode) { + case 0: // LD_RLC B,(IY+d) + tmp1=Z80free_doRLC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.B=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 1: // LD_RLC C,(IY+d) + tmp1=Z80free_doRLC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.C=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 2: // LD_RLC D,(IY+d) + tmp1=Z80free_doRLC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.D=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 3: // LD_RLC E,(IY+d) + tmp1=Z80free_doRLC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.E=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 4: // LD_RLC H,(IY+d) + tmp1=Z80free_doRLC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.H=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 5: // LD_RLC L,(IY+d) + tmp1=Z80free_doRLC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.L=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 6: // RLC b(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doRLC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 7: // LD_RLC A,(IY+d) + tmp1=Z80free_doRLC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.A=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 8: // LD_RRC B,(IY+d) + tmp1=Z80free_doRRC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.B=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 9: // LD_RRC C,(IY+d) + tmp1=Z80free_doRRC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.C=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 10: // LD_RRC D,(IY+d) + tmp1=Z80free_doRRC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.D=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 11: // LD_RRC E,(IY+d) + tmp1=Z80free_doRRC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.E=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 12: // LD_RRC H,(IY+d) + tmp1=Z80free_doRRC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.H=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 13: // LD_RRC L,(IY+d) + tmp1=Z80free_doRRC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.L=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 14: // RRC b(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doRRC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 15: // LD_RRC A,(IY+d) + tmp1=Z80free_doRRC(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.A=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 16: // LD_RL B,(IY+d) + tmp1=Z80free_doRL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.B=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 17: // LD_RL C,(IY+d) + tmp1=Z80free_doRL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.C=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 18: // LD_RL D,(IY+d) + tmp1=Z80free_doRL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.D=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 19: // LD_RL E,(IY+d) + tmp1=Z80free_doRL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.E=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 20: // LD_RL H,(IY+d) + tmp1=Z80free_doRL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.H=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 21: // LD_RL L,(IY+d) + tmp1=Z80free_doRL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.L=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 22: // RL b(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doRL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 23: // LD_RL A,(IY+d) + tmp1=Z80free_doRL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.A=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 24: // LD_RR B,(IY+d) + tmp1=Z80free_doRR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.B=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 25: // LD_RR C,(IY+d) + tmp1=Z80free_doRR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.C=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 26: // LD_RR D,(IY+d) + tmp1=Z80free_doRR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.D=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 27: // LD_RR E,(IY+d) + tmp1=Z80free_doRR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.E=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 28: // LD_RR H,(IY+d) + tmp1=Z80free_doRR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.H=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 29: // LD_RR L,(IY+d) + tmp1=Z80free_doRR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.L=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 30: // RR b(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doRR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 31: // LD_RR A,(IY+d) + tmp1=Z80free_doRR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.A=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 32: // LD_SLA B,(IY+d) + tmp1=Z80free_doSL(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.B=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 33: // LD_SLA C,(IY+d) + tmp1=Z80free_doSL(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.C=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 34: // LD_SLA D,(IY+d) + tmp1=Z80free_doSL(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.D=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 35: // LD_SLA E,(IY+d) + tmp1=Z80free_doSL(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.E=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 36: // LD_SLA H,(IY+d) + tmp1=Z80free_doSL(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.H=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 37: // LD_SLA L,(IY+d) + tmp1=Z80free_doSL(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.L=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 38: // SLA b(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSL(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 39: // LD_SLA A,(IY+d) + tmp1=Z80free_doSL(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.A=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 40: // LD_SRA B,(IY+d) + tmp1=Z80free_doSR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.B=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 41: // LD_SRA C,(IY+d) + tmp1=Z80free_doSR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.C=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 42: // LD_SRA D,(IY+d) + tmp1=Z80free_doSR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.D=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 43: // LD_SRA E,(IY+d) + tmp1=Z80free_doSR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.E=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 44: // LD_SRA H,(IY+d) + tmp1=Z80free_doSR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.H=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 45: // LD_SRA L,(IY+d) + tmp1=Z80free_doSR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.L=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 46: // SRA b(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 47: // LD_SRA A,(IY+d) + tmp1=Z80free_doSR(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.A=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 48: // LD_SLL B,(IY+d) + tmp1=Z80free_doSL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.B=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 49: // LD_SLL C,(IY+d) + tmp1=Z80free_doSL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.C=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 50: // LD_SLL D,(IY+d) + tmp1=Z80free_doSL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.D=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 51: // LD_SLL E,(IY+d) + tmp1=Z80free_doSL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.E=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 52: // LD_SLL H,(IY+d) + tmp1=Z80free_doSL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.H=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 53: // LD_SLL L,(IY+d) + tmp1=Z80free_doSL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.L=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 54: // SLL b(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 55: // LD_SLL A,(IY+d) + tmp1=Z80free_doSL(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.A=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 56: // LD_SRL B,(IY+d) + tmp1=Z80free_doSR(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.B=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 57: // LD_SRL C,(IY+d) + tmp1=Z80free_doSR(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.C=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 58: // LD_SRL D,(IY+d) + tmp1=Z80free_doSR(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.D=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 59: // LD_SRL E,(IY+d) + tmp1=Z80free_doSR(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.E=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 60: // LD_SRL H,(IY+d) + tmp1=Z80free_doSR(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.H=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 61: // LD_SRL L,(IY+d) + tmp1=Z80free_doSR(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.L=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 62: // SRL b(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSR(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 63: // LD_SRL A,(IY+d) + tmp1=Z80free_doSR(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + processor->Rm.br.A=tmp1; + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + return (19); + break; + case 64: // BIT 0,(IY+d) + Z80free_doBIT(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 65: // BIT 0,(IY+d) + Z80free_doBIT(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 66: // BIT 0,(IY+d) + Z80free_doBIT(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 67: // BIT 0,(IY+d) + Z80free_doBIT(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 68: // BIT 0,(IY+d) + Z80free_doBIT(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 69: // BIT 0,(IY+d) + Z80free_doBIT(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 70: // BIT 0,(IY+d) + Z80free_doBIT(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 71: // BIT 0,(IY+d) + Z80free_doBIT(processor,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 72: // BIT 1,(IY+d) + Z80free_doBIT(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 73: // BIT 1,(IY+d) + Z80free_doBIT(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 74: // BIT 1,(IY+d) + Z80free_doBIT(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 75: // BIT 1,(IY+d) + Z80free_doBIT(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 76: // BIT 1,(IY+d) + Z80free_doBIT(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 77: // BIT 1,(IY+d) + Z80free_doBIT(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 78: // BIT 1,(IY+d) + Z80free_doBIT(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 79: // BIT 1,(IY+d) + Z80free_doBIT(processor,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 80: // BIT 2,(IY+d) + Z80free_doBIT(processor,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 81: // BIT 2,(IY+d) + Z80free_doBIT(processor,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 82: // BIT 2,(IY+d) + Z80free_doBIT(processor,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 83: // BIT 2,(IY+d) + Z80free_doBIT(processor,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 84: // BIT 2,(IY+d) + Z80free_doBIT(processor,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 85: // BIT 2,(IY+d) + Z80free_doBIT(processor,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 86: // BIT 2,(IY+d) + Z80free_doBIT(processor,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 87: // BIT 2,(IY+d) + Z80free_doBIT(processor,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 88: // BIT 3,(IY+d) + Z80free_doBIT(processor,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 89: // BIT 3,(IY+d) + Z80free_doBIT(processor,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 90: // BIT 3,(IY+d) + Z80free_doBIT(processor,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 91: // BIT 3,(IY+d) + Z80free_doBIT(processor,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 92: // BIT 3,(IY+d) + Z80free_doBIT(processor,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 93: // BIT 3,(IY+d) + Z80free_doBIT(processor,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 94: // BIT 3,(IY+d) + Z80free_doBIT(processor,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 95: // BIT 3,(IY+d) + Z80free_doBIT(processor,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 96: // BIT 4,(IY+d) + Z80free_doBIT(processor,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 97: // BIT 4,(IY+d) + Z80free_doBIT(processor,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 98: // BIT 4,(IY+d) + Z80free_doBIT(processor,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 99: // BIT 4,(IY+d) + Z80free_doBIT(processor,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 100: // BIT 4,(IY+d) + Z80free_doBIT(processor,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 101: // BIT 4,(IY+d) + Z80free_doBIT(processor,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 102: // BIT 4,(IY+d) + Z80free_doBIT(processor,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 103: // BIT 4,(IY+d) + Z80free_doBIT(processor,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 104: // BIT 5,(IY+d) + Z80free_doBIT(processor,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 105: // BIT 5,(IY+d) + Z80free_doBIT(processor,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 106: // BIT 5,(IY+d) + Z80free_doBIT(processor,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 107: // BIT 5,(IY+d) + Z80free_doBIT(processor,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 108: // BIT 5,(IY+d) + Z80free_doBIT(processor,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 109: // BIT 5,(IY+d) + Z80free_doBIT(processor,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 110: // BIT 5,(IY+d) + Z80free_doBIT(processor,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 111: // BIT 5,(IY+d) + Z80free_doBIT(processor,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 112: // BIT 6,(IY+d) + Z80free_doBIT(processor,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 113: // BIT 6,(IY+d) + Z80free_doBIT(processor,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 114: // BIT 6,(IY+d) + Z80free_doBIT(processor,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 115: // BIT 6,(IY+d) + Z80free_doBIT(processor,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 116: // BIT 6,(IY+d) + Z80free_doBIT(processor,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 117: // BIT 6,(IY+d) + Z80free_doBIT(processor,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 118: // BIT 6,(IY+d) + Z80free_doBIT(processor,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 119: // BIT 6,(IY+d) + Z80free_doBIT(processor,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 120: // BIT 7,(IY+d) + Z80free_doBIT(processor,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 121: // BIT 7,(IY+d) + Z80free_doBIT(processor,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 122: // BIT 7,(IY+d) + Z80free_doBIT(processor,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 123: // BIT 7,(IY+d) + Z80free_doBIT(processor,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 124: // BIT 7,(IY+d) + Z80free_doBIT(processor,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 125: // BIT 7,(IY+d) + Z80free_doBIT(processor,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 126: // BIT 7,(IY+d) + Z80free_doBIT(processor,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 127: // BIT 7,(IY+d) + Z80free_doBIT(processor,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + return (16); + break; + case 128: // LD_RES B,0,(IY+d) + tmp1=Z80free_doSetRes(processor,0,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 129: // LD_RES C,0,(IY+d) + tmp1=Z80free_doSetRes(processor,0,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 130: // LD_RES D,0,(IY+d) + tmp1=Z80free_doSetRes(processor,0,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 131: // LD_RES E,0,(IY+d) + tmp1=Z80free_doSetRes(processor,0,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 132: // LD_RES H,0,(IY+d) + tmp1=Z80free_doSetRes(processor,0,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 133: // LD_RES L,0,(IY+d) + tmp1=Z80free_doSetRes(processor,0,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 134: // RES 0,(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSetRes(processor,0,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 135: // LD_RES A,0,(IY+d) + tmp1=Z80free_doSetRes(processor,0,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 136: // LD_RES B,1,(IY+d) + tmp1=Z80free_doSetRes(processor,0,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 137: // LD_RES C,1,(IY+d) + tmp1=Z80free_doSetRes(processor,0,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 138: // LD_RES D,1,(IY+d) + tmp1=Z80free_doSetRes(processor,0,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 139: // LD_RES E,1,(IY+d) + tmp1=Z80free_doSetRes(processor,0,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 140: // LD_RES H,1,(IY+d) + tmp1=Z80free_doSetRes(processor,0,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 141: // LD_RES L,1,(IY+d) + tmp1=Z80free_doSetRes(processor,0,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 142: // RES 1,(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSetRes(processor,0,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 143: // LD_RES A,1,(IY+d) + tmp1=Z80free_doSetRes(processor,0,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 144: // LD_RES B,2,(IY+d) + tmp1=Z80free_doSetRes(processor,0,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 145: // LD_RES C,2,(IY+d) + tmp1=Z80free_doSetRes(processor,0,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 146: // LD_RES D,2,(IY+d) + tmp1=Z80free_doSetRes(processor,0,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 147: // LD_RES E,2,(IY+d) + tmp1=Z80free_doSetRes(processor,0,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 148: // LD_RES H,2,(IY+d) + tmp1=Z80free_doSetRes(processor,0,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 149: // LD_RES L,2,(IY+d) + tmp1=Z80free_doSetRes(processor,0,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 150: // RES 2,(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSetRes(processor,0,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 151: // LD_RES A,2,(IY+d) + tmp1=Z80free_doSetRes(processor,0,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 152: // LD_RES B,3,(IY+d) + tmp1=Z80free_doSetRes(processor,0,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 153: // LD_RES C,3,(IY+d) + tmp1=Z80free_doSetRes(processor,0,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 154: // LD_RES D,3,(IY+d) + tmp1=Z80free_doSetRes(processor,0,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 155: // LD_RES E,3,(IY+d) + tmp1=Z80free_doSetRes(processor,0,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 156: // LD_RES H,3,(IY+d) + tmp1=Z80free_doSetRes(processor,0,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 157: // LD_RES L,3,(IY+d) + tmp1=Z80free_doSetRes(processor,0,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 158: // RES 3,(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSetRes(processor,0,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 159: // LD_RES A,3,(IY+d) + tmp1=Z80free_doSetRes(processor,0,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 160: // LD_RES B,4,(IY+d) + tmp1=Z80free_doSetRes(processor,0,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 161: // LD_RES C,4,(IY+d) + tmp1=Z80free_doSetRes(processor,0,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 162: // LD_RES D,4,(IY+d) + tmp1=Z80free_doSetRes(processor,0,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 163: // LD_RES E,4,(IY+d) + tmp1=Z80free_doSetRes(processor,0,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 164: // LD_RES H,4,(IY+d) + tmp1=Z80free_doSetRes(processor,0,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 165: // LD_RES L,4,(IY+d) + tmp1=Z80free_doSetRes(processor,0,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 166: // RES 4,(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSetRes(processor,0,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 167: // LD_RES A,4,(IY+d) + tmp1=Z80free_doSetRes(processor,0,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 168: // LD_RES B,5,(IY+d) + tmp1=Z80free_doSetRes(processor,0,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 169: // LD_RES C,5,(IY+d) + tmp1=Z80free_doSetRes(processor,0,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 170: // LD_RES D,5,(IY+d) + tmp1=Z80free_doSetRes(processor,0,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 171: // LD_RES E,5,(IY+d) + tmp1=Z80free_doSetRes(processor,0,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 172: // LD_RES H,5,(IY+d) + tmp1=Z80free_doSetRes(processor,0,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 173: // LD_RES L,5,(IY+d) + tmp1=Z80free_doSetRes(processor,0,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 174: // RES 5,(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSetRes(processor,0,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 175: // LD_RES A,5,(IY+d) + tmp1=Z80free_doSetRes(processor,0,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 176: // LD_RES B,6,(IY+d) + tmp1=Z80free_doSetRes(processor,0,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 177: // LD_RES C,6,(IY+d) + tmp1=Z80free_doSetRes(processor,0,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 178: // LD_RES D,6,(IY+d) + tmp1=Z80free_doSetRes(processor,0,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 179: // LD_RES E,6,(IY+d) + tmp1=Z80free_doSetRes(processor,0,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 180: // LD_RES H,6,(IY+d) + tmp1=Z80free_doSetRes(processor,0,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 181: // LD_RES L,6,(IY+d) + tmp1=Z80free_doSetRes(processor,0,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 182: // RES 6,(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSetRes(processor,0,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 183: // LD_RES A,6,(IY+d) + tmp1=Z80free_doSetRes(processor,0,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 184: // LD_RES B,7,(IY+d) + tmp1=Z80free_doSetRes(processor,0,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 185: // LD_RES C,7,(IY+d) + tmp1=Z80free_doSetRes(processor,0,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 186: // LD_RES D,7,(IY+d) + tmp1=Z80free_doSetRes(processor,0,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 187: // LD_RES E,7,(IY+d) + tmp1=Z80free_doSetRes(processor,0,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 188: // LD_RES H,7,(IY+d) + tmp1=Z80free_doSetRes(processor,0,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 189: // LD_RES L,7,(IY+d) + tmp1=Z80free_doSetRes(processor,0,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 190: // RES 7,(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSetRes(processor,0,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 191: // LD_RES A,7,(IY+d) + tmp1=Z80free_doSetRes(processor,0,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 192: // LD_SET B,0,(IY+d) + tmp1=Z80free_doSetRes(processor,1,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 193: // LD_SET C,0,(IY+d) + tmp1=Z80free_doSetRes(processor,1,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 194: // LD_SET D,0,(IY+d) + tmp1=Z80free_doSetRes(processor,1,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 195: // LD_SET E,0,(IY+d) + tmp1=Z80free_doSetRes(processor,1,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 196: // LD_SET H,0,(IY+d) + tmp1=Z80free_doSetRes(processor,1,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 197: // LD_SET L,0,(IY+d) + tmp1=Z80free_doSetRes(processor,1,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 198: // SET 0,(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSetRes(processor,1,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 199: // LD_SET A,0,(IY+d) + tmp1=Z80free_doSetRes(processor,1,0,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 200: // LD_SET B,1,(IY+d) + tmp1=Z80free_doSetRes(processor,1,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 201: // LD_SET C,1,(IY+d) + tmp1=Z80free_doSetRes(processor,1,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 202: // LD_SET D,1,(IY+d) + tmp1=Z80free_doSetRes(processor,1,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 203: // LD_SET E,1,(IY+d) + tmp1=Z80free_doSetRes(processor,1,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 204: // LD_SET H,1,(IY+d) + tmp1=Z80free_doSetRes(processor,1,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 205: // LD_SET L,1,(IY+d) + tmp1=Z80free_doSetRes(processor,1,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 206: // SET 1,(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSetRes(processor,1,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 207: // LD_SET A,1,(IY+d) + tmp1=Z80free_doSetRes(processor,1,1,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 208: // LD_SET B,2,(IY+d) + tmp1=Z80free_doSetRes(processor,1,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 209: // LD_SET C,2,(IY+d) + tmp1=Z80free_doSetRes(processor,1,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 210: // LD_SET D,2,(IY+d) + tmp1=Z80free_doSetRes(processor,1,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 211: // LD_SET E,2,(IY+d) + tmp1=Z80free_doSetRes(processor,1,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 212: // LD_SET H,2,(IY+d) + tmp1=Z80free_doSetRes(processor,1,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 213: // LD_SET L,2,(IY+d) + tmp1=Z80free_doSetRes(processor,1,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 214: // SET 2,(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSetRes(processor,1,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 215: // LD_SET A,2,(IY+d) + tmp1=Z80free_doSetRes(processor,1,2,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 216: // LD_SET B,3,(IY+d) + tmp1=Z80free_doSetRes(processor,1,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 217: // LD_SET C,3,(IY+d) + tmp1=Z80free_doSetRes(processor,1,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 218: // LD_SET D,3,(IY+d) + tmp1=Z80free_doSetRes(processor,1,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 219: // LD_SET E,3,(IY+d) + tmp1=Z80free_doSetRes(processor,1,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 220: // LD_SET H,3,(IY+d) + tmp1=Z80free_doSetRes(processor,1,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 221: // LD_SET L,3,(IY+d) + tmp1=Z80free_doSetRes(processor,1,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 222: // SET 3,(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSetRes(processor,1,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 223: // LD_SET A,3,(IY+d) + tmp1=Z80free_doSetRes(processor,1,3,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 224: // LD_SET B,4,(IY+d) + tmp1=Z80free_doSetRes(processor,1,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 225: // LD_SET C,4,(IY+d) + tmp1=Z80free_doSetRes(processor,1,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 226: // LD_SET D,4,(IY+d) + tmp1=Z80free_doSetRes(processor,1,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 227: // LD_SET E,4,(IY+d) + tmp1=Z80free_doSetRes(processor,1,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 228: // LD_SET H,4,(IY+d) + tmp1=Z80free_doSetRes(processor,1,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 229: // LD_SET L,4,(IY+d) + tmp1=Z80free_doSetRes(processor,1,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 230: // SET 4,(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSetRes(processor,1,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 231: // LD_SET A,4,(IY+d) + tmp1=Z80free_doSetRes(processor,1,4,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 232: // LD_SET B,5,(IY+d) + tmp1=Z80free_doSetRes(processor,1,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 233: // LD_SET C,5,(IY+d) + tmp1=Z80free_doSetRes(processor,1,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 234: // LD_SET D,5,(IY+d) + tmp1=Z80free_doSetRes(processor,1,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 235: // LD_SET E,5,(IY+d) + tmp1=Z80free_doSetRes(processor,1,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 236: // LD_SET H,5,(IY+d) + tmp1=Z80free_doSetRes(processor,1,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 237: // LD_SET L,5,(IY+d) + tmp1=Z80free_doSetRes(processor,1,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 238: // SET 5,(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSetRes(processor,1,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 239: // LD_SET A,5,(IY+d) + tmp1=Z80free_doSetRes(processor,1,5,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 240: // LD_SET B,6,(IY+d) + tmp1=Z80free_doSetRes(processor,1,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 241: // LD_SET C,6,(IY+d) + tmp1=Z80free_doSetRes(processor,1,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 242: // LD_SET D,6,(IY+d) + tmp1=Z80free_doSetRes(processor,1,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 243: // LD_SET E,6,(IY+d) + tmp1=Z80free_doSetRes(processor,1,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 244: // LD_SET H,6,(IY+d) + tmp1=Z80free_doSetRes(processor,1,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 245: // LD_SET L,6,(IY+d) + tmp1=Z80free_doSetRes(processor,1,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 246: // SET 6,(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSetRes(processor,1,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 247: // LD_SET A,6,(IY+d) + tmp1=Z80free_doSetRes(processor,1,6,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + case 248: // LD_SET B,7,(IY+d) + tmp1=Z80free_doSetRes(processor,1,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.B=tmp1; + return (19); + break; + case 249: // LD_SET C,7,(IY+d) + tmp1=Z80free_doSetRes(processor,1,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.C=tmp1; + return (19); + break; + case 250: // LD_SET D,7,(IY+d) + tmp1=Z80free_doSetRes(processor,1,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.D=tmp1; + return (19); + break; + case 251: // LD_SET E,7,(IY+d) + tmp1=Z80free_doSetRes(processor,1,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.E=tmp1; + return (19); + break; + case 252: // LD_SET H,7,(IY+d) + tmp1=Z80free_doSetRes(processor,1,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.H=tmp1; + return (19); + break; + case 253: // LD_SET L,7,(IY+d) + tmp1=Z80free_doSetRes(processor,1,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.L=tmp1; + return (19); + break; + case 254: // SET 7,(IY+d) + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),Z80free_doSetRes(processor,1,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1)))); + return (19); + break; + case 255: // LD_SET A,7,(IY+d) + tmp1=Z80free_doSetRes(processor,1,7,Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))); + Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),tmp1); + processor->Rm.br.A=tmp1; + return (19); + break; + } + + return -1; +} diff --git a/src/z80free/Z80free_codesFDCB.txt b/src/z80free/Z80free_codesFDCB.txt new file mode 100644 index 0000000..4a46839 --- /dev/null +++ b/src/z80free/Z80free_codesFDCB.txt @@ -0,0 +1,262 @@ +# OPCODES, TSTATES and INSTRUCTIONS for FDCB prefixed instructions +# The TSTATES are 4 less than the real ones because they are counted +# when executing the FDCB prefix +# +# Instructions of the format LD r,XXX (IY+d) (like LD B,RLC (IY+d) ) +# are modified to the format LD_XXX r,(IY+d) to simplify the parser +00 19 LD_RLC B,(IY+d) +01 19 LD_RLC C,(IY+d) +02 19 LD_RLC D,(IY+d) +03 19 LD_RLC E,(IY+d) +04 19 LD_RLC H,(IY+d) +05 19 LD_RLC L,(IY+d) +06 19 RLC b(IY+d) +07 19 LD_RLC A,(IY+d) +08 19 LD_RRC B,(IY+d) +09 19 LD_RRC C,(IY+d) +0A 19 LD_RRC D,(IY+d) +0B 19 LD_RRC E,(IY+d) +0C 19 LD_RRC H,(IY+d) +0D 19 LD_RRC L,(IY+d) +0E 19 RRC b(IY+d) +0F 19 LD_RRC A,(IY+d) +10 19 LD_RL B,(IY+d) +11 19 LD_RL C,(IY+d) +12 19 LD_RL D,(IY+d) +13 19 LD_RL E,(IY+d) +14 19 LD_RL H,(IY+d) +15 19 LD_RL L,(IY+d) +16 19 RL b(IY+d) +17 19 LD_RL A,(IY+d) +18 19 LD_RR B,(IY+d) +19 19 LD_RR C,(IY+d) +1A 19 LD_RR D,(IY+d) +1B 19 LD_RR E,(IY+d) +1C 19 LD_RR H,(IY+d) +1D 19 LD_RR L,(IY+d) +1E 19 RR b(IY+d) +1F 19 LD_RR A,(IY+d) +20 19 LD_SLA B,(IY+d) +21 19 LD_SLA C,(IY+d) +22 19 LD_SLA D,(IY+d) +23 19 LD_SLA E,(IY+d) +24 19 LD_SLA H,(IY+d) +25 19 LD_SLA L,(IY+d) +26 19 SLA b(IY+d) +27 19 LD_SLA A,(IY+d) +28 19 LD_SRA B,(IY+d) +29 19 LD_SRA C,(IY+d) +2A 19 LD_SRA D,(IY+d) +2B 19 LD_SRA E,(IY+d) +2C 19 LD_SRA H,(IY+d) +2D 19 LD_SRA L,(IY+d) +2E 19 SRA b(IY+d) +2F 19 LD_SRA A,(IY+d) +30 19 LD_SLL B,(IY+d) +31 19 LD_SLL C,(IY+d) +32 19 LD_SLL D,(IY+d) +33 19 LD_SLL E,(IY+d) +34 19 LD_SLL H,(IY+d) +35 19 LD_SLL L,(IY+d) +36 19 SLL b(IY+d) +37 19 LD_SLL A,(IY+d) +38 19 LD_SRL B,(IY+d) +39 19 LD_SRL C,(IY+d) +3A 19 LD_SRL D,(IY+d) +3B 19 LD_SRL E,(IY+d) +3C 19 LD_SRL H,(IY+d) +3D 19 LD_SRL L,(IY+d) +3E 19 SRL b(IY+d) +3F 19 LD_SRL A,(IY+d) +40 16 BIT 0,(IY+d) +41 16 BIT 0,(IY+d) +42 16 BIT 0,(IY+d) +43 16 BIT 0,(IY+d) +44 16 BIT 0,(IY+d) +45 16 BIT 0,(IY+d) +46 16 BIT 0,(IY+d) +47 16 BIT 0,(IY+d) +48 16 BIT 1,(IY+d) +49 16 BIT 1,(IY+d) +4A 16 BIT 1,(IY+d) +4B 16 BIT 1,(IY+d) +4C 16 BIT 1,(IY+d) +4D 16 BIT 1,(IY+d) +4E 16 BIT 1,(IY+d) +4F 16 BIT 1,(IY+d) +50 16 BIT 2,(IY+d) +51 16 BIT 2,(IY+d) +52 16 BIT 2,(IY+d) +53 16 BIT 2,(IY+d) +54 16 BIT 2,(IY+d) +55 16 BIT 2,(IY+d) +56 16 BIT 2,(IY+d) +57 16 BIT 2,(IY+d) +58 16 BIT 3,(IY+d) +59 16 BIT 3,(IY+d) +5A 16 BIT 3,(IY+d) +5B 16 BIT 3,(IY+d) +5C 16 BIT 3,(IY+d) +5D 16 BIT 3,(IY+d) +5E 16 BIT 3,(IY+d) +5F 16 BIT 3,(IY+d) +60 16 BIT 4,(IY+d) +61 16 BIT 4,(IY+d) +62 16 BIT 4,(IY+d) +63 16 BIT 4,(IY+d) +64 16 BIT 4,(IY+d) +65 16 BIT 4,(IY+d) +66 16 BIT 4,(IY+d) +67 16 BIT 4,(IY+d) +68 16 BIT 5,(IY+d) +69 16 BIT 5,(IY+d) +6A 16 BIT 5,(IY+d) +6B 16 BIT 5,(IY+d) +6C 16 BIT 5,(IY+d) +6D 16 BIT 5,(IY+d) +6E 16 BIT 5,(IY+d) +6F 16 BIT 5,(IY+d) +70 16 BIT 6,(IY+d) +71 16 BIT 6,(IY+d) +72 16 BIT 6,(IY+d) +73 16 BIT 6,(IY+d) +74 16 BIT 6,(IY+d) +75 16 BIT 6,(IY+d) +76 16 BIT 6,(IY+d) +77 16 BIT 6,(IY+d) +78 16 BIT 7,(IY+d) +79 16 BIT 7,(IY+d) +7A 16 BIT 7,(IY+d) +7B 16 BIT 7,(IY+d) +7C 16 BIT 7,(IY+d) +7D 16 BIT 7,(IY+d) +7E 16 BIT 7,(IY+d) +7F 16 BIT 7,(IY+d) +80 19 LD_RES B,0,(IY+d) +81 19 LD_RES C,0,(IY+d) +82 19 LD_RES D,0,(IY+d) +83 19 LD_RES E,0,(IY+d) +84 19 LD_RES H,0,(IY+d) +85 19 LD_RES L,0,(IY+d) +86 19 RES 0,(IY+d) +87 19 LD_RES A,0,(IY+d) +88 19 LD_RES B,1,(IY+d) +89 19 LD_RES C,1,(IY+d) +8A 19 LD_RES D,1,(IY+d) +8B 19 LD_RES E,1,(IY+d) +8C 19 LD_RES H,1,(IY+d) +8D 19 LD_RES L,1,(IY+d) +8E 19 RES 1,(IY+d) +8F 19 LD_RES A,1,(IY+d) +90 19 LD_RES B,2,(IY+d) +91 19 LD_RES C,2,(IY+d) +92 19 LD_RES D,2,(IY+d) +93 19 LD_RES E,2,(IY+d) +94 19 LD_RES H,2,(IY+d) +95 19 LD_RES L,2,(IY+d) +96 19 RES 2,(IY+d) +97 19 LD_RES A,2,(IY+d) +98 19 LD_RES B,3,(IY+d) +99 19 LD_RES C,3,(IY+d) +9A 19 LD_RES D,3,(IY+d) +9B 19 LD_RES E,3,(IY+d) +9C 19 LD_RES H,3,(IY+d) +9D 19 LD_RES L,3,(IY+d) +9E 19 RES 3,(IY+d) +9F 19 LD_RES A,3,(IY+d) +A0 19 LD_RES B,4,(IY+d) +A1 19 LD_RES C,4,(IY+d) +A2 19 LD_RES D,4,(IY+d) +A3 19 LD_RES E,4,(IY+d) +A4 19 LD_RES H,4,(IY+d) +A5 19 LD_RES L,4,(IY+d) +A6 19 RES 4,(IY+d) +A7 19 LD_RES A,4,(IY+d) +A8 19 LD_RES B,5,(IY+d) +A9 19 LD_RES C,5,(IY+d) +AA 19 LD_RES D,5,(IY+d) +AB 19 LD_RES E,5,(IY+d) +AC 19 LD_RES H,5,(IY+d) +AD 19 LD_RES L,5,(IY+d) +AE 19 RES 5,(IY+d) +AF 19 LD_RES A,5,(IY+d) +B0 19 LD_RES B,6,(IY+d) +B1 19 LD_RES C,6,(IY+d) +B2 19 LD_RES D,6,(IY+d) +B3 19 LD_RES E,6,(IY+d) +B4 19 LD_RES H,6,(IY+d) +B5 19 LD_RES L,6,(IY+d) +B6 19 RES 6,(IY+d) +B7 19 LD_RES A,6,(IY+d) +B8 19 LD_RES B,7,(IY+d) +B9 19 LD_RES C,7,(IY+d) +BA 19 LD_RES D,7,(IY+d) +BB 19 LD_RES E,7,(IY+d) +BC 19 LD_RES H,7,(IY+d) +BD 19 LD_RES L,7,(IY+d) +BE 19 RES 7,(IY+d) +BF 19 LD_RES A,7,(IY+d) +C0 19 LD_SET B,0,(IY+d) +C1 19 LD_SET C,0,(IY+d) +C2 19 LD_SET D,0,(IY+d) +C3 19 LD_SET E,0,(IY+d) +C4 19 LD_SET H,0,(IY+d) +C5 19 LD_SET L,0,(IY+d) +C6 19 SET 0,(IY+d) +C7 19 LD_SET A,0,(IY+d) +C8 19 LD_SET B,1,(IY+d) +C9 19 LD_SET C,1,(IY+d) +CA 19 LD_SET D,1,(IY+d) +CB 19 LD_SET E,1,(IY+d) +CC 19 LD_SET H,1,(IY+d) +CD 19 LD_SET L,1,(IY+d) +CE 19 SET 1,(IY+d) +CF 19 LD_SET A,1,(IY+d) +D0 19 LD_SET B,2,(IY+d) +D1 19 LD_SET C,2,(IY+d) +D2 19 LD_SET D,2,(IY+d) +D3 19 LD_SET E,2,(IY+d) +D4 19 LD_SET H,2,(IY+d) +D5 19 LD_SET L,2,(IY+d) +D6 19 SET 2,(IY+d) +D7 19 LD_SET A,2,(IY+d) +D8 19 LD_SET B,3,(IY+d) +D9 19 LD_SET C,3,(IY+d) +DA 19 LD_SET D,3,(IY+d) +DB 19 LD_SET E,3,(IY+d) +DC 19 LD_SET H,3,(IY+d) +DD 19 LD_SET L,3,(IY+d) +DE 19 SET 3,(IY+d) +DF 19 LD_SET A,3,(IY+d) +E0 19 LD_SET B,4,(IY+d) +E1 19 LD_SET C,4,(IY+d) +E2 19 LD_SET D,4,(IY+d) +E3 19 LD_SET E,4,(IY+d) +E4 19 LD_SET H,4,(IY+d) +E5 19 LD_SET L,4,(IY+d) +E6 19 SET 4,(IY+d) +E7 19 LD_SET A,4,(IY+d) +E8 19 LD_SET B,5,(IY+d) +E9 19 LD_SET C,5,(IY+d) +EA 19 LD_SET D,5,(IY+d) +EB 19 LD_SET E,5,(IY+d) +EC 19 LD_SET H,5,(IY+d) +ED 19 LD_SET L,5,(IY+d) +EE 19 SET 5,(IY+d) +EF 19 LD_SET A,5,(IY+d) +F0 19 LD_SET B,6,(IY+d) +F1 19 LD_SET C,6,(IY+d) +F2 19 LD_SET D,6,(IY+d) +F3 19 LD_SET E,6,(IY+d) +F4 19 LD_SET H,6,(IY+d) +F5 19 LD_SET L,6,(IY+d) +F6 19 SET 6,(IY+d) +F7 19 LD_SET A,6,(IY+d) +F8 19 LD_SET B,7,(IY+d) +F9 19 LD_SET C,7,(IY+d) +FA 19 LD_SET D,7,(IY+d) +FB 19 LD_SET E,7,(IY+d) +FC 19 LD_SET H,7,(IY+d) +FD 19 LD_SET L,7,(IY+d) +FE 19 SET 7,(IY+d) +FF 19 LD_SET A,7,(IY+d) diff --git a/src/z80free/tests.expected b/src/z80free/tests.expected new file mode 100644 index 0000000..19252f1 --- /dev/null +++ b/src/z80free/tests.expected @@ -0,0 +1,18395 @@ +00 + 0 MC 0000 + 4 MR 0000 00 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +01 + 0 MC 0000 + 4 MR 0000 01 + 4 MC 0001 + 7 MR 0001 12 + 7 MC 0002 + 10 MR 0002 34 +0000 3412 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 + +02 + 0 MC 0000 + 4 MR 0000 02 + 4 MC 0001 + 7 MW 0001 56 +5600 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +0001 56 -1 + +03 + 0 MC 0000 + 4 MR 0000 03 + 4 MC 0001 + 5 MC 0001 +0000 789b 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 6 + +04 + 0 MC 0000 + 4 MR 0000 04 +0050 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +05 + 0 MC 0000 + 4 MR 0000 05 +00ba ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +06 + 0 MC 0000 + 4 MR 0000 06 + 4 MC 0001 + 7 MR 0001 bc +0000 bc00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +07 + 0 MC 0000 + 4 MR 0000 07 +1101 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +08 + 0 MC 0000 + 4 MR 0000 08 +1234 0000 0000 0000 def0 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +09 + 0 MC 0000 + 4 MR 0000 09 + 4 MC 0001 + 5 MC 0001 + 6 MC 0001 + 7 MC 0001 + 8 MC 0001 + 9 MC 0001 + 10 MC 0001 +0030 5678 0000 f134 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 11 + +0a + 0 MC 0000 + 4 MR 0000 0a + 4 MC 0001 + 7 MR 0001 de +de00 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +0b + 0 MC 0000 + 4 MR 0000 0b + 4 MC 0001 + 5 MC 0001 +0000 ffff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 6 + +0c + 0 MC 0000 + 4 MR 0000 0c +0094 0080 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +0d + 0 MC 0000 + 4 MR 0000 0d +003e 007f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +0e + 0 MC 0000 + 4 MR 0000 0e + 4 MC 0001 + 7 MR 0001 f0 +0000 00f0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +0f + 0 MC 0000 + 4 MR 0000 0f +a021 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +10 + 0 MC 0000 + 4 MR 0000 00 + 4 MC 0001 + 8 MR 0001 10 + 8 MC 0002 + 9 MC 0002 + 12 MR 0002 fd + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 0002 + 17 MC 0000 + 21 MR 0000 00 + 21 MC 0001 + 25 MR 0001 10 + 25 MC 0004 + 26 MC 0002 + 29 MR 0002 fd + 29 MC 0002 + 30 MC 0002 + 31 MC 0002 + 32 MC 0002 + 33 MC 0002 + 34 MC 0000 + 38 MR 0000 00 + 38 MC 0001 + 42 MR 0001 10 + 42 MC 0006 + 43 MC 0002 + 46 MR 0002 fd + 46 MC 0002 + 47 MC 0002 + 48 MC 0002 + 49 MC 0002 + 50 MC 0002 + 51 MC 0000 + 55 MR 0000 00 + 55 MC 0001 + 59 MR 0001 10 + 59 MC 0008 + 60 MC 0002 + 63 MR 0002 fd + 63 MC 0002 + 64 MC 0002 + 65 MC 0002 + 66 MC 0002 + 67 MC 0002 + 68 MC 0000 + 72 MR 0000 00 + 72 MC 0001 + 76 MR 0001 10 + 76 MC 000a + 77 MC 0002 + 80 MR 0002 fd + 80 MC 0002 + 81 MC 0002 + 82 MC 0002 + 83 MC 0002 + 84 MC 0002 + 85 MC 0000 + 89 MR 0000 00 + 89 MC 0001 + 93 MR 0001 10 + 93 MC 000c + 94 MC 0002 + 97 MR 0002 fd + 97 MC 0002 + 98 MC 0002 + 99 MC 0002 + 100 MC 0002 + 101 MC 0002 + 102 MC 0000 + 106 MR 0000 00 + 106 MC 0001 + 110 MR 0001 10 + 110 MC 000e + 111 MC 0002 + 114 MR 0002 fd + 114 MC 0002 + 115 MC 0002 + 116 MC 0002 + 117 MC 0002 + 118 MC 0002 + 119 MC 0000 + 123 MR 0000 00 + 123 MC 0001 + 127 MR 0001 10 + 127 MC 0010 + 128 MC 0002 + 131 MC 0003 + 135 MR 0003 0c +0000 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0004 +00 11 0 0 0 0 135 + +11 + 0 MC 0000 + 4 MR 0000 11 + 4 MC 0001 + 7 MR 0001 9a + 7 MC 0002 + 10 MR 0002 bc +0000 0000 bc9a 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 + +12 + 0 MC 0000 + 4 MR 0000 12 + 4 MC 8000 + 7 MW 8000 56 +5600 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +8000 56 -1 + +13 + 0 MC 0000 + 4 MR 0000 13 + 4 MC 0001 + 5 MC 0001 +0000 0000 def1 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 6 + +14 + 0 MC 0000 + 4 MR 0000 14 +0028 0000 2800 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +15 + 0 MC 0000 + 4 MR 0000 15 +001a 0000 0f00 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +16 + 0 MC 0000 + 4 MR 0000 16 + 4 MC 0001 + 7 MR 0001 12 +0000 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +17 + 0 MC 0000 + 4 MR 0000 17 +1100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +18 + 0 MC 0000 + 4 MR 0000 18 + 4 MC 0001 + 7 MR 0001 40 + 7 MC 0001 + 8 MC 0001 + 9 MC 0001 + 10 MC 0001 + 11 MC 0001 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0042 +00 01 0 0 0 0 12 + +19 + 0 MC 0000 + 4 MR 0000 19 + 4 MC 0001 + 5 MC 0001 + 6 MC 0001 + 7 MC 0001 + 8 MC 0001 + 9 MC 0001 + 10 MC 0001 +0028 0000 3456 acf0 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 11 + +1a + 0 MC 0000 + 4 MR 0000 1a + 4 MC 8000 + 7 MR 8000 13 +1300 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +1b + 0 MC 0000 + 4 MR 0000 1b + 4 MC 0001 + 5 MC 0001 +0000 0000 e5d3 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 6 + +1c + 0 MC 0000 + 4 MR 0000 1c +00a8 0000 00ab 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +1d + 0 MC 0000 + 4 MR 0000 1d +00aa 0000 00a9 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +1e + 0 MC 0000 + 4 MR 0000 1e + 4 MC 0001 + 7 MR 0001 ef +0000 0000 00ef 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +1f + 0 MC 0000 + 4 MR 0000 1f +00c5 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +20_1 + 0 MC 0000 + 4 MR 0000 20 + 4 MC 0001 + 7 MR 0001 40 + 7 MC 0001 + 8 MC 0001 + 9 MC 0001 + 10 MC 0001 + 11 MC 0001 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0042 +00 01 0 0 0 0 12 + +20_2 + 0 MC 0000 + 4 MR 0000 20 + 4 MC 0001 +0040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +21 + 0 MC 0000 + 4 MR 0000 21 + 4 MC 0001 + 7 MR 0001 28 + 7 MC 0002 + 10 MR 0002 ed +0000 0000 0000 ed28 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 + +22 + 0 MC 0000 + 4 MR 0000 22 + 4 MC 0001 + 7 MR 0001 b0 + 7 MC 0002 + 10 MR 0002 c3 + 10 MC c3b0 + 13 MW c3b0 4c + 13 MC c3b1 + 16 MW c3b1 c6 +0000 0000 0000 c64c 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 16 +c3b0 4c c6 -1 + +23 + 0 MC 0000 + 4 MR 0000 23 + 4 MC 0001 + 5 MC 0001 +0000 0000 0000 9c4f 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 6 + +24 + 0 MC 0000 + 4 MR 0000 24 +0020 0000 0000 7300 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +25 + 0 MC 0000 + 4 MR 0000 25 +00a2 0000 0000 a400 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +26 + 0 MC 0000 + 4 MR 0000 26 + 4 MC 0001 + 7 MR 0001 3a +0000 0000 0000 3a00 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +27_1 + 0 MC 0000 + 4 MR 0000 27 +3423 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +27 + 0 MC 0000 + 4 MR 0000 27 +2530 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +28_1 + 0 MC 0000 + 4 MR 0000 28 + 4 MC 0001 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +28_2 + 0 MC 0000 + 4 MR 0000 28 + 4 MC 0001 + 7 MR 0001 8e + 7 MC 0001 + 8 MC 0001 + 9 MC 0001 + 10 MC 0001 + 11 MC 0001 +0040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ff90 +00 01 0 0 0 0 12 + +29 + 0 MC 0000 + 4 MR 0000 29 + 4 MC 0001 + 5 MC 0001 + 6 MC 0001 + 7 MC 0001 + 8 MC 0001 + 9 MC 0001 + 10 MC 0001 +0019 0000 0000 9bf4 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 11 + +2a + 0 MC 0000 + 4 MR 0000 2a + 4 MC 0001 + 7 MR 0001 45 + 7 MC 0002 + 10 MR 0002 ac + 10 MC ac45 + 13 MR ac45 c4 + 13 MC ac46 + 16 MR ac46 de +0000 0000 0000 dec4 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 16 + +2b + 0 MC 0000 + 4 MR 0000 2b + 4 MC 0001 + 5 MC 0001 +0000 0000 0000 9e65 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 6 + +2c + 0 MC 0000 + 4 MR 0000 2c +0020 0000 0000 0027 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +2d + 0 MC 0000 + 4 MR 0000 2d +0022 0000 0000 0031 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +2e + 0 MC 0000 + 4 MR 0000 2e + 4 MC 0001 + 7 MR 0001 18 +0000 0000 0000 0018 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +2f + 0 MC 0000 + 4 MR 0000 2f +7632 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +30_1 + 0 MC 0000 + 4 MR 0000 30 + 4 MC 0001 + 7 MR 0001 50 + 7 MC 0001 + 8 MC 0001 + 9 MC 0001 + 10 MC 0001 + 11 MC 0001 +0036 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0052 +00 01 0 0 0 0 12 + +30_2 + 0 MC 0000 + 4 MR 0000 30 + 4 MC 0001 +0037 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +31 + 0 MC 0000 + 4 MR 0000 31 + 4 MC 0001 + 7 MR 0001 d4 + 7 MC 0002 + 10 MR 0002 61 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 61d4 0003 +00 01 0 0 0 0 10 + +32 + 0 MC 0000 + 4 MR 0000 32 + 4 MC 0001 + 7 MR 0001 ac + 7 MC 0002 + 10 MR 0002 ad + 10 MC adac + 13 MW adac 0e +0e00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 13 +adac 0e -1 + +33 + 0 MC 0000 + 4 MR 0000 33 + 4 MC 0001 + 5 MC 0001 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 a55b 0001 +00 01 0 0 0 0 6 + +34 + 0 MC 0000 + 4 MR 0000 34 + 4 MC fe1d + 7 MR fe1d fd + 7 MC fe1d + 8 MC fe1d + 11 MW fe1d fe +00a8 0000 0000 fe1d 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 11 +fe1d fe -1 + +35 + 0 MC 0000 + 4 MR 0000 35 + 4 MC 470c + 7 MR 470c 82 + 7 MC 470c + 8 MC 470c + 11 MW 470c 81 +0082 0000 0000 470c 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 11 +470c 81 -1 + +36 + 0 MC 0000 + 4 MR 0000 36 + 4 MC 0001 + 7 MR 0001 7c + 7 MC 7d29 + 10 MW 7d29 7c +0000 0000 0000 7d29 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 10 +7d29 7c -1 + +37_1 + 0 MC 0000 + 4 MR 0000 37 +00c5 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +37_2 + 0 MC 0000 + 4 MR 0000 37 +ff29 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +37_3 + 0 MC 0000 + 4 MR 0000 37 +ffed 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +37 + 0 MC 0000 + 4 MR 0000 37 +0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +38_1 + 0 MC 0000 + 4 MR 0000 38 + 4 MC 0001 +00b2 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +38_2 + 0 MC 0000 + 4 MR 0000 38 + 4 MC 0001 + 7 MR 0001 66 + 7 MC 0001 + 8 MC 0001 + 9 MC 0001 + 10 MC 0001 + 11 MC 0001 +00b3 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0068 +00 01 0 0 0 0 12 + +39 + 0 MC 0000 + 4 MR 0000 29 + 4 MC 0001 + 5 MC 0001 + 6 MC 0001 + 7 MC 0001 + 8 MC 0001 + 9 MC 0001 + 10 MC 0001 +0030 0000 0000 35de 0000 0000 0000 0000 0000 0000 c534 0001 +00 01 0 0 0 0 11 + +3a + 0 MC 0000 + 4 MR 0000 3a + 4 MC 0001 + 7 MR 0001 52 + 7 MC 0002 + 10 MR 0002 99 + 10 MC 9952 + 13 MR 9952 28 +2800 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 13 + +3b + 0 MC 0000 + 4 MR 0000 3b + 4 MC 0001 + 5 MC 0001 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 9d35 0001 +00 01 0 0 0 0 6 + +3c + 0 MC 0000 + 4 MR 0000 3c +d090 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +3d + 0 MC 0000 + 4 MR 0000 3d +e9aa 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +3e + 0 MC 0000 + 4 MR 0000 3e + 4 MC 0001 + 7 MR 0001 d6 +d600 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +3f + 0 MC 0000 + 4 MR 0000 3f +0050 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +40 + 0 MC 0000 + 4 MR 0000 40 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +41 + 0 MC 0000 + 4 MR 0000 41 +0200 9898 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +42 + 0 MC 0000 + 4 MR 0000 42 +0200 9098 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +43 + 0 MC 0000 + 4 MR 0000 43 +0200 d898 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +44 + 0 MC 0000 + 4 MR 0000 44 +0200 a198 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +45 + 0 MC 0000 + 4 MR 0000 45 +0200 6998 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +46 + 0 MC 0000 + 4 MR 0000 46 + 4 MC a169 + 7 MR a169 50 +0200 5098 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +47 + 0 MC 0000 + 4 MR 0000 47 +0200 0298 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +48 + 0 MC 0000 + 4 MR 0000 48 +0200 cfcf 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +49 + 0 MC 0000 + 4 MR 0000 49 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +4a + 0 MC 0000 + 4 MR 0000 4a +0200 cf90 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +4b + 0 MC 0000 + 4 MR 0000 4b +0200 cfd8 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +4c + 0 MC 0000 + 4 MR 0000 4c +0200 cfa1 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +4d + 0 MC 0000 + 4 MR 0000 4d +0200 cf69 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +4e + 0 MC 0000 + 4 MR 0000 4e + 4 MC a169 + 7 MR a169 50 +0200 cf50 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +4f + 0 MC 0000 + 4 MR 0000 4f +0200 cf02 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +50 + 0 MC 0000 + 4 MR 0000 50 +0200 cf98 cfd8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +51 + 0 MC 0000 + 4 MR 0000 51 +0200 cf98 98d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +52 + 0 MC 0000 + 4 MR 0000 52 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +53 + 0 MC 0000 + 4 MR 0000 53 +0200 cf98 d8d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +54 + 0 MC 0000 + 4 MR 0000 54 +0200 cf98 a1d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +55 + 0 MC 0000 + 4 MR 0000 55 +0200 cf98 69d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +56 + 0 MC 0000 + 4 MR 0000 56 + 4 MC a169 + 7 MR a169 50 +0200 cf98 50d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +57 + 0 MC 0000 + 4 MR 0000 57 +0200 cf98 02d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +58 + 0 MC 0000 + 4 MR 0000 58 +0200 cf98 90cf a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +59 + 0 MC 0000 + 4 MR 0000 59 +0200 cf98 9098 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +5a + 0 MC 0000 + 4 MR 0000 5a +0200 cf98 9090 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +5b + 0 MC 0000 + 4 MR 0000 5b +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +5c + 0 MC 0000 + 4 MR 0000 5c +0200 cf98 90a1 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +5d + 0 MC 0000 + 4 MR 0000 5d +0200 cf98 9069 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +5e + 0 MC 0000 + 4 MR 0000 5e + 4 MC a169 + 7 MR a169 50 +0200 cf98 9050 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +5f + 0 MC 0000 + 4 MR 0000 5f +0200 cf98 9002 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +60 + 0 MC 0000 + 4 MR 0000 60 +0200 cf98 90d8 cf69 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +61 + 0 MC 0000 + 4 MR 0000 61 +0200 cf98 90d8 9869 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +62 + 0 MC 0000 + 4 MR 0000 62 +0200 cf98 90d8 9069 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +63 + 0 MC 0000 + 4 MR 0000 63 +0200 cf98 90d8 d869 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +64 + 0 MC 0000 + 4 MR 0000 64 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +65 + 0 MC 0000 + 4 MR 0000 65 +0200 cf98 90d8 6969 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +66 + 0 MC 0000 + 4 MR 0000 66 + 4 MC a169 + 7 MR a169 50 +0200 cf98 90d8 5069 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +67 + 0 MC 0000 + 4 MR 0000 67 +0200 cf98 90d8 0269 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +68 + 0 MC 0000 + 4 MR 0000 68 +0200 cf98 90d8 a1cf 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +69 + 0 MC 0000 + 4 MR 0000 69 +0200 cf98 90d8 a198 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +6a + 0 MC 0000 + 4 MR 0000 6a +0200 cf98 90d8 a190 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +6b + 0 MC 0000 + 4 MR 0000 6b +0200 cf98 90d8 a1d8 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +6c + 0 MC 0000 + 4 MR 0000 6c +0200 cf98 90d8 a1a1 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +6d + 0 MC 0000 + 4 MR 0000 6d +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +6e + 0 MC 0000 + 4 MR 0000 6e + 4 MC a169 + 7 MR a169 50 +0200 cf98 90d8 a150 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +6f + 0 MC 0000 + 4 MR 0000 6f +0200 cf98 90d8 a102 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +70 + 0 MC 0000 + 4 MR 0000 70 + 4 MC a169 + 7 MW a169 cf +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +a169 cf -1 + +71 + 0 MC 0000 + 4 MR 0000 71 + 4 MC a169 + 7 MW a169 98 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +a169 98 -1 + +72 + 0 MC 0000 + 4 MR 0000 72 + 4 MC a169 + 7 MW a169 90 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +a169 90 -1 + +73 + 0 MC 0000 + 4 MR 0000 73 + 4 MC a169 + 7 MW a169 d8 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +a169 d8 -1 + +74 + 0 MC 0000 + 4 MR 0000 74 + 4 MC a169 + 7 MW a169 a1 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +a169 a1 -1 + +75 + 0 MC 0000 + 4 MR 0000 75 + 4 MC a169 + 7 MW a169 69 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +a169 69 -1 + +76 + 0 MC 0000 + 4 MR 0000 76 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 01 0 0 0 1 4 + +77 + 0 MC 0000 + 4 MR 0000 77 + 4 MC a169 + 7 MW a169 02 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +a169 02 -1 + +78 + 0 MC 0000 + 4 MR 0000 78 +cf00 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +79 + 0 MC 0000 + 4 MR 0000 79 +9800 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +7a + 0 MC 0000 + 4 MR 0000 7a +9000 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +7b + 0 MC 0000 + 4 MR 0000 7b +d800 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +7c + 0 MC 0000 + 4 MR 0000 7c +a100 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +7d + 0 MC 0000 + 4 MR 0000 7d +6900 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +7e + 0 MC 0000 + 4 MR 0000 7e + 4 MC a169 + 7 MR a169 50 +5000 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +7f + 0 MC 0000 + 4 MR 0000 7f +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +80 + 0 MC 0000 + 4 MR 0000 80 +0411 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +81 + 0 MC 0000 + 4 MR 0000 81 +3031 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +82 + 0 MC 0000 + 4 MR 0000 82 +1501 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +83 + 0 MC 0000 + 4 MR 0000 83 +0211 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +84 + 0 MC 0000 + 4 MR 0000 84 +d191 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +85 + 0 MC 0000 + 4 MR 0000 85 +9b89 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +86 + 0 MC 0000 + 4 MR 0000 86 + 4 MC dca6 + 7 MR dca6 49 +3e29 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +87 + 0 MC 0000 + 4 MR 0000 87 +eaa9 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +88 + 0 MC 0000 + 4 MR 0000 88 +0411 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +89 + 0 MC 0000 + 4 MR 0000 89 +3031 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +8a + 0 MC 0000 + 4 MR 0000 8a +1501 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +8b + 0 MC 0000 + 4 MR 0000 8b +0211 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +8c + 0 MC 0000 + 4 MR 0000 8c +d191 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +8d + 0 MC 0000 + 4 MR 0000 8d +9b89 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +8e + 0 MC 0000 + 4 MR 0000 8e + 4 MC dca6 + 7 MR dca6 49 +3e29 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +8f + 0 MC 0000 + 4 MR 0000 8f +eaa9 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +90 + 0 MC 0000 + 4 MR 0000 90 +e6b2 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +91 + 0 MC 0000 + 4 MR 0000 91 +baba 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +92 + 0 MC 0000 + 4 MR 0000 92 +d582 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +93 + 0 MC 0000 + 4 MR 0000 93 +e8ba 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +94 + 0 MC 0000 + 4 MR 0000 94 +191a 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +95 + 0 MC 0000 + 4 MR 0000 95 +4f1a 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +96 + 0 MC 0000 + 4 MR 0000 96 + 4 MC dca6 + 7 MR dca6 49 +acba 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +97 + 0 MC 0000 + 4 MR 0000 97 +0042 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +98 + 0 MC 0000 + 4 MR 0000 98 +e6b2 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +99 + 0 MC 0000 + 4 MR 0000 99 +baba 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +9a + 0 MC 0000 + 4 MR 0000 9a +d582 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +9b + 0 MC 0000 + 4 MR 0000 9b +e8ba 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +9c + 0 MC 0000 + 4 MR 0000 9c +191a 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +9d + 0 MC 0000 + 4 MR 0000 9d +4f1a 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +9e + 0 MC 0000 + 4 MR 0000 9e + 4 MC dca6 + 7 MR dca6 49 +acba 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +9f + 0 MC 0000 + 4 MR 0000 9f +0042 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +a0 + 0 MC 0000 + 4 MR 0000 a0 +0514 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +a1 + 0 MC 0000 + 4 MR 0000 a1 +3130 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +a2 + 0 MC 0000 + 4 MR 0000 a2 +2030 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +a3 + 0 MC 0000 + 4 MR 0000 a3 +0514 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +a4 + 0 MC 0000 + 4 MR 0000 a4 +d494 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +a5 + 0 MC 0000 + 4 MR 0000 a5 +a4b0 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +a6 + 0 MC 0000 + 4 MR 0000 a6 + 4 MC dca6 + 7 MR dca6 49 +4114 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +a7 + 0 MC 0000 + 4 MR 0000 a7 +f5b4 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +a8 + 0 MC 0000 + 4 MR 0000 a8 +faac 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +a9 + 0 MC 0000 + 4 MR 0000 a9 +ce88 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +aa + 0 MC 0000 + 4 MR 0000 aa +d580 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +ab + 0 MC 0000 + 4 MR 0000 ab +f8a8 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +ac + 0 MC 0000 + 4 MR 0000 ac +2928 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +ad + 0 MC 0000 + 4 MR 0000 ad +5304 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +ae + 0 MC 0000 + 4 MR 0000 ae + 4 MC dca6 + 7 MR dca6 49 +bca8 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +af + 0 MC 0000 + 4 MR 0000 af +0044 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +b0 + 0 MC 0000 + 4 MR 0000 b0 +ffac 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +b1 + 0 MC 0000 + 4 MR 0000 b1 +ffac 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +b2 + 0 MC 0000 + 4 MR 0000 b2 +f5a4 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +b3 + 0 MC 0000 + 4 MR 0000 b3 +fda8 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +b4 + 0 MC 0000 + 4 MR 0000 b4 +fda8 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +b5 + 0 MC 0000 + 4 MR 0000 b5 +f7a0 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +b6 + 0 MC 0000 + 4 MR 0000 b6 + 4 MC dca6 + 7 MR dca6 49 +fda8 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +b7 + 0 MC 0000 + 4 MR 0000 b7 +f5a4 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +b8 + 0 MC 0000 + 4 MR 0000 b8 +f59a 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +b9 + 0 MC 0000 + 4 MR 0000 b9 +f5ba 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +ba + 0 MC 0000 + 4 MR 0000 ba +f5a2 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +bb + 0 MC 0000 + 4 MR 0000 bb +f59a 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +bc + 0 MC 0000 + 4 MR 0000 bc +f51a 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +bd + 0 MC 0000 + 4 MR 0000 bd +f532 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +be + 0 MC 0000 + 4 MR 0000 be + 4 MC dca6 + 7 MR dca6 49 +f59a 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 + +bf + 0 MC 0000 + 4 MR 0000 bf +f562 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +c0_1 + 0 MC 0000 + 4 MR 0000 c0 + 4 MC 0001 + 5 MC 43f7 + 8 MR 43f7 e9 + 8 MC 43f8 + 11 MR 43f8 af +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f9 afe9 +00 01 0 0 0 0 11 + +c0_2 + 0 MC 0000 + 4 MR 0000 c0 + 4 MC 0001 +00d8 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0001 +00 01 0 0 0 0 5 + +c1 + 0 MC 0000 + 4 MR 0000 c1 + 4 MC 4143 + 7 MR 4143 ce + 7 MC 4144 + 10 MR 4144 e8 +0000 e8ce 0000 0000 0000 0000 0000 0000 0000 0000 4145 0001 +00 01 0 0 0 0 10 + +c2_1 + 0 MC 0000 + 4 MR 0000 c2 + 4 MC 0001 + 7 MR 0001 1b + 7 MC 0002 + 10 MR 0002 e1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e11b +00 01 0 0 0 0 10 + +c2_2 + 0 MC 0000 + 4 MR 0000 c2 + 4 MC 0001 + 7 MC 0002 +00c7 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 + +c3 + 0 MC 0000 + 4 MR 0000 c3 + 4 MC 0001 + 7 MR 0001 ed + 7 MC 0002 + 10 MR 0002 7c +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 7ced +00 01 0 0 0 0 10 + +c4_1 + 0 MC 0000 + 4 MR 0000 c4 + 4 MC 0001 + 7 MR 0001 61 + 7 MC 0002 + 10 MR 0002 9c + 10 MC 0002 + 11 MC 5697 + 14 MW 5697 00 + 14 MC 5696 + 17 MW 5696 03 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5696 9c61 +00 01 0 0 0 0 17 +5696 03 00 -1 + +c4_2 + 0 MC 0000 + 4 MR 0000 c4 + 4 MC 0001 + 7 MC 0002 +004e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0003 +00 01 0 0 0 0 10 + +c5 + 0 MC 0000 + 4 MR 0000 c5 + 4 MC 0001 + 5 MC ec11 + 8 MW ec11 14 + 8 MC ec10 + 11 MW ec10 59 +53e3 1459 775f 1a2f 0000 0000 0000 0000 0000 0000 ec10 0001 +00 01 0 0 0 0 11 +ec10 59 14 -1 + +c6 + 0 MC 0000 + 4 MR 0000 c6 + 4 MC 0001 + 7 MR 0001 6f +3939 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +c7 + 0 MC 6d33 + 4 MR 6d33 c7 + 4 MC 0001 + 5 MC 5506 + 8 MW 5506 6d + 8 MC 5505 + 11 MW 5505 34 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5505 0000 +00 01 0 0 0 0 11 +5505 34 6d -1 + +c8_1 + 0 MC 0000 + 4 MR 0000 c8 + 4 MC 0001 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0001 +00 01 0 0 0 0 5 + +c8_2 + 0 MC 0000 + 4 MR 0000 c8 + 4 MC 0001 + 5 MC 43f7 + 8 MR 43f7 e9 + 8 MC 43f8 + 11 MR 43f8 af +00d8 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f9 afe9 +00 01 0 0 0 0 11 + +c9 + 0 MC 0000 + 4 MR 0000 c9 + 4 MC 887e + 7 MR 887e 36 + 7 MC 887f + 10 MR 887f 11 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 8880 1136 +00 01 0 0 0 0 10 + +ca_1 + 0 MC 0000 + 4 MR 0000 ca + 4 MC 0001 + 7 MC 0002 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 + +ca_2 + 0 MC 0000 + 4 MR 0000 ca + 4 MC 0001 + 7 MR 0001 1b + 7 MC 0002 + 10 MR 0002 e1 +00c7 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e11b +00 01 0 0 0 0 10 + +cb00 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 00 +da8d c979 552e a806 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb01 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 01 +10a0 b3f2 b480 ef65 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb02 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 02 +2e09 9adf 5d6e a7f2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb03 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 03 +682c 9995 de7e ca71 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb04 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 04 +8c88 beea 0ce4 ceb0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb05 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 05 +3620 e19f 78c9 cb64 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb06 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 06 + 8 MC 5b04 + 11 MR 5b04 d4 + 11 MC 5b04 + 12 MC 5b04 + 15 MW 5b04 a9 +8aad db02 8fb1 5b04 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +5b04 a9 -1 + +cb07 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 07 +da88 19cf 7259 dcaa 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb08 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 08 +80a1 e6b5 818e 2ee2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb09 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 09 +182c 122e dd97 59c6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb0a + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 0a +12ad 3ba1 bb24 63ad 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb0b + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 0b +7600 2abf b613 0289 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb0c + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 0c +0e08 6fc5 2f12 1ad9 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb0d + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 0d +630c 95a3 fcd2 514d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb0e + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 0e + 8 MC 543e + 11 MR 543e d2 + 11 MC 543e + 12 MC 543e + 15 MW 543e 69 +fc2c adf9 4925 543e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +543e 69 -1 + +cb0f + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 0f +e1a5 18f3 41b8 070b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb10 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 10 +f8ad b825 33b3 0d74 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb11 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 11 +65ac e2b8 4b8a ed42 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb12 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 12 +770c 1384 1e50 29c6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb13 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 13 +ce04 9f17 e150 3ed7 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb14 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 14 +b2a8 541a 60c7 f89a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb15 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 15 +2d81 c1df 6eab 03c4 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb16 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 16 + 8 MC 684e + 11 MR 684e c3 + 11 MC 684e + 12 MC 684e + 15 MW 684e 86 +3681 3b53 1a4a 684e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +684e 86 -1 + +cb17 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 17 +a8a8 d090 f60d 0fa2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb18 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 18 +8624 6358 755f 9596 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb19 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 19 +960d be59 7c22 71c8 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb1a + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 1a +3928 882f 2a3b 5279 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb1b + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 1b +9e24 b338 8736 e8b4 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb1c + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 1c +4b0d b555 238f 181d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb1d + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 1d +212d 3d7e 5e39 e428 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb1e + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 1e + 8 MC 00ef + 11 MR 00ef 91 + 11 MC 00ef + 12 MC 00ef + 15 MW 00ef 48 +5e0d 66b9 80dc 00ef 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +00ef 48 -1 + +cb1f + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 1f +7621 b838 8e18 ace7 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb20 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 20 +c708 0897 d72b ccb6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb21 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 21 +22ad 5ce8 938e 37a8 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb22 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 22 +8589 0950 cee8 0641 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb23 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 23 +21a5 2a7c 37a0 aa59 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb24 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 24 +fb09 b9de 7014 08b6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb25 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 25 +152d 6bbc 894e 8578 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb26 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 26 + 8 MC 283a + 11 MR 283a ee + 11 MC 283a + 12 MC 283a + 15 MW 283a dc +0a89 372e e315 283a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +283a dc -1 + +cb27 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 27 +7e2d bdba 67ab 5ea2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb28 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 28 +c000 0235 3e0f 021b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb29 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 29 +0624 f121 6ada c306 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb2a + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 2a +302d ec3a 3f7d 3473 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb2b + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 2b +e0ac ccf0 bbed b78a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb2c + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 2c +5b0c 25c0 996d 0f7b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb2d + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 2d +5ea4 c51b 58e3 78f5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb2e + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 2e + 8 MC 24bf + 11 MR 24bf b5 + 11 MC 24bf + 12 MC 24bf + 15 MW 24bf da +3989 a2cd 0629 24bf 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +24bf da -1 + +cb2f + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 2f +d580 a194 d0e3 5c65 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb30 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 30 +cda4 f581 d67b 656b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb31 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 31 +28a5 e7f5 6d8c 75a4 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb32 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 32 +13ad 3f36 ed08 5e56 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb33 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 33 +d588 9720 7689 038f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb34 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 34 +12a1 77f6 0206 f738 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb35 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 35 +3c84 fd68 ea91 78c3 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb36 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 36 + 8 MC 6d38 + 11 MR 6d38 f1 + 11 MC 6d38 + 12 MC 6d38 + 15 MW 6d38 e3 +8aa1 1185 1dde 6d38 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +6d38 e3 -1 + +cb37 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 37 +8784 d7bc 9133 6e56 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb38 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 38 +df28 3e1b 9f9f 4ff2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb39 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 39 +6600 b701 14f5 3c17 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb3a + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 3a +d124 5c5f 722e f1b1 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb3b + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 3b +b224 38c8 a530 7419 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb3c + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 3c +7800 cfae 66d8 15d8 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb3d + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 3d +e625 dcda 06aa 4666 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb3e + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 3e + 8 MC a96c + 11 MR a96c a0 + 11 MC a96c + 12 MC a96c + 15 MW a96c 50 +a904 6a34 e8d0 a96c 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +a96c 50 -1 + +cb3f + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 3f +782d ceea 721e 77f0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb40 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 40 +9e7c bcb2 efaa 505f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb41 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 41 +9e10 1b43 954e 7be9 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb42 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 42 +f238 dd12 7d4f 551f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb43 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 43 +ad54 c3b3 f1d0 bab4 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb44 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 44 +b718 c829 27e3 5b92 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb45 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 45 +7718 68ee 0c77 409b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb46 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 46 + 8 MC 6131 + 11 MR 6131 d5 + 11 MC 6131 +7210 7ae3 a11e 6131 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +cb47_1 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 47 +ff38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb47 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 47 +1054 d8ca e2c4 8a8c 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb48 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 48 +a930 6264 e833 6de0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb49 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 49 +6c30 d0f7 1db7 a040 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb4a + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 4a +4f18 f04c 5b29 77a4 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb4b + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 4b +5518 9848 095f 40ca 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb4c + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 4c +887c 0521 bf31 6d5d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb4d + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 4d +f95c 27d0 0f7e 158d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb4e + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 4e + 8 MC ada3 + 11 MR ada3 5b + 11 MC ada3 +2618 9207 459a ada3 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +cb4f_1 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 4f +ff38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb4f + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 4f +1710 2dc1 aca2 0bcc 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb50 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 50 +2330 2749 1012 84d2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb51 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 51 +225c b7db e19d aafc 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb52 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 52 +8b74 ff7a b0ff ac44 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb53 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 53 +6030 31a1 a4f4 7c75 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb54 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 54 +385c 7ccc 89cc 1999 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb55 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 55 +f95c 1f79 19cd fb4b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb56 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 56 + 8 MC bbf9 + 11 MR bbf9 10 + 11 MC bbf9 +1554 2bfe e3b5 bbf9 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +cb57_1 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 57 +ff38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb57 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 57 +6630 af32 532a da50 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb58 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 58 +5018 1aee 2e47 1479 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb59 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 59 +7238 5e68 ff28 2075 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb5a + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 5a +eb54 fea7 17d1 d99b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb5b + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 5b +6b74 6f2c 3fe3 1691 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb5c + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 5c +3354 a7e7 2077 13e9 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb5d + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 5d +c118 afcc c8b1 ee49 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb5e + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 5e + 8 MC 349a + 11 MR 349a 3c + 11 MC 349a +3038 ad43 16c1 349a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +cb5f_1 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 5f +ff38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb5f + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 5f +8c18 1b67 2314 6133 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb60 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 60 +9930 34b5 0fd8 5273 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb61 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 61 +d118 219f 3bb4 7c44 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb62 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 62 +af54 bdf8 c536 8cc5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb63 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 63 +2a74 5e16 f627 84ca 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb64 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 64 +a97c a365 c00b ea94 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb65 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 65 +1838 8d58 4256 427a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb66 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 66 + 8 MC a44f + 11 MR a44f d2 + 11 MC a44f +4c10 3ef7 e544 a44f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +cb67_1 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 67 +ff38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb67 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 67 +8654 5e92 2986 394d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb68 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 68 +d75c 0f6a 18a6 ddd2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb69 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 69 +da5c 691b 7c79 1dba 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb6a + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 6a +2254 13e8 86d4 4e09 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb6b + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 6b +af30 5123 7635 1ca9 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb6c + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 6c +4354 faa6 abc2 5605 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb6d + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 6d +7f38 f099 d435 d9ad 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb6e + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 6e + 8 MC d8ba + 11 MR d8ba 31 + 11 MC d8ba +4a30 08c9 8177 d8ba 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +cb6f_1 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 6f +ff38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb6f + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 6f +a130 8c80 4678 4d34 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb70 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 70 +1954 958a 5dab f913 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb71 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 71 +3d18 095e d6df 42fe 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb72 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 72 +a518 c0bf 4c8d ad11 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb73 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 73 +f238 49a6 b279 2ecc 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb74 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 74 +055c 445e 05e9 983d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb75 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 75 +6b5c 83c6 635a d18d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb76 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 76 + 8 MC bc71 + 11 MR bc71 18 + 11 MC bc71 +f85c 3057 3629 bc71 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +cb77_1 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 77 +ff38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb77 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 77 +9254 d6f8 5100 736d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb78 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 78 +725c 1cf8 8d2b c76a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb79 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 79 +a898 809e 1124 39e8 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb7a + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 7a +5874 7d24 63e1 d9af 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb7b + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 7b +03b8 50ab 05bd 6bd0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb7c + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 7c +ad54 f77b 55ae 063b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb7d + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 7d +8298 b792 38cb 5f9b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb7e + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 7e + 8 MC a25e + 11 MR a25e d7 + 11 MC a25e +4290 3b91 f59c a25e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +cb7f_1 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 7f +ffb8 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb7f + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 7f +6a7c 84ec cf4e 185b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb80 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 80 +8f00 702f 17bd a706 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb81 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 81 +ae00 947e 7153 6616 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb82 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 82 +8100 bed2 c619 4572 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb83 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 83 +e600 63a2 ccf6 ae9a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb84 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 84 +ce00 e0cc d305 d6c0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb85 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 85 +f300 ed79 9db7 dda0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb86 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 86 + 8 MC 1b48 + 11 MR 1b48 62 + 11 MC 1b48 + 12 MC 1b48 + 15 MW 1b48 62 +2a00 b0b9 9426 1b48 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 + +cb87 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 87 +1000 86dc 1798 dfc5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb88 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 88 +e300 8821 e33e 674d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb89 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 89 +6000 d184 c5b6 1bd7 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb8a + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 8a +3e00 5fcd 0938 b98e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb8b + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 8b +6500 040e 103d 4a07 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb8c + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 8c +f800 6d27 9bdf d8ef 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb8d + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 8d +3e00 5469 2c28 bd70 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb8e + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 8e + 8 MC 63a7 + 11 MR 63a7 d4 + 11 MC 63a7 + 12 MC 63a7 + 15 MW 63a7 d4 +1f00 140b b492 63a7 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 + +cb8f + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 8f +2500 c522 ca46 1c1a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb90 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 90 +5700 595c 4f0a c73c 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb91 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 91 +5e00 8f22 a735 97e0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb92 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 92 +3300 7d9f 83d0 83d0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb93 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 93 +c200 4e05 b3f8 2234 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb94 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 94 +ee00 8f4b 2831 d2a6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb95 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 95 +3c00 6af2 b25d 36fb 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb96 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 96 + 8 MC 3324 + 11 MR 3324 21 + 11 MC 3324 + 12 MC 3324 + 15 MW 3324 21 +7600 b027 d0a5 3324 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 + +cb97 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 97 +1200 ad09 7902 97bc 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb98 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 98 +3400 b61c 771d 5d5e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb99 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 99 +5100 65b6 1359 8bec 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb9a + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 9a +6400 976d 4425 dcb2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb9b + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 9b +a100 b58a d264 2bd6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb9c + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 9c +d800 63d6 ac7b c7a0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb9d + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 9d +0d00 d840 0810 0800 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cb9e + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 9e + 8 MC 3a65 + 11 MR 3a65 2a + 11 MC 3a65 + 12 MC 3a65 + 15 MW 3a65 22 +3b00 ebbf 9434 3a65 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +3a65 22 -1 + +cb9f + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 9f +b200 d1de f991 72f6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cba0 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 a0 +fa00 c669 71e1 c80d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cba1 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 a1 +8200 75e4 a0de d0ba 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cba2 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 a2 +dd00 2b0d 4554 6fc0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cba3 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 a3 +2200 2f0d 4d2c 6666 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cba4 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 a4 +d600 d8ed 9cd4 8bb1 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cba5 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 a5 +b400 b393 3e42 88ca 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cba6 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 a6 + 8 MC e70d + 11 MR e70d 27 + 11 MC e70d + 12 MC e70d + 15 MW e70d 27 +0a00 4c34 f5a7 e70d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 + +cba7 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 a7 +4500 af61 569a c77b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cba8 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 a8 +6400 d269 bae4 c9e7 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cba9 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 a9 +e400 7ad4 bf0a ce0b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbaa + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 aa +cd00 d249 4159 fed5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbab + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 ab +ac00 939a 5d9b 0812 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbac + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 ac +2400 8a7d 2cac dfaa 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbad + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 ad +6f00 5ffb 2360 ae15 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbae + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 ae + 8 MC 190e + 11 MR 190e 66 + 11 MC 190e + 12 MC 190e + 15 MW 190e 46 +5a00 aa17 12f3 190e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +190e 46 -1 + +cbaf + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 af +dc00 bb3f 8bb6 5877 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbb0 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 b0 +b900 3a79 1aaa c3ba 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbb1 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 b1 +4900 63a4 a544 1190 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbb2 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 b2 +4d00 2b03 2b23 6ff5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbb3 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 b3 +8700 857a e98b 5cb1 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbb4 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 b4 +2b00 b73e 79c9 a1bb 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbb5 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 b5 +9b00 d879 2ec9 4bba 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbb6 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 b6 + 8 MC 4fab + 11 MR 4fab a5 + 11 MC 4fab + 12 MC 4fab + 15 MW 4fab a5 +8600 89bf de4a 4fab 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 + +cbb7 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 b7 +2200 fb8a 3d6e d4a2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbb8 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 b8 +d000 37c6 225a d249 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbb9 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 b9 +a500 1b4a d584 5dee 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbba + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 ba +6300 a5fe 742b 34c9 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbbb + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 bb +1200 f661 aa4f cb30 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbbc + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 bc +9800 adc3 0b29 7b6e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbbd + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 bd +d600 a6e1 8813 1038 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbbe + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 be + 8 MC 77d5 + 11 MR 77d5 ea + 11 MC 77d5 + 12 MC 77d5 + 15 MW 77d5 6a +ca00 ff64 1218 77d5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +77d5 6a -1 + +cbbf + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 bf +6800 4845 690a 15de 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbc0 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 c0 +e300 ef71 bffb b3a1 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbc1 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 c1 +3200 32a1 59ab 3343 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbc2 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 c2 +c700 b159 c123 e1f3 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbc3 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 c3 +0400 b463 c211 8f3a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbc4 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 c4 +7e00 545a 6ecf 5976 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbc5 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 c5 +4000 c617 079c 4107 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbc6 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 c6 + 8 MC f0be + 11 MR f0be 9c + 11 MC f0be + 12 MC f0be + 15 MW f0be 9d +b800 0373 b807 f0be 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +f0be 9d -1 + +cbc7 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 c7 +7700 3681 9b55 583f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbc8 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 c8 +7d00 a772 8682 7cf3 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbc9 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 c9 +0b00 67ee 30e0 72db 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbca + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 ca +9c00 9517 cfbb fbc7 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbcb + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 cb +e800 0f3d 336f f70d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbcc + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 cc +fb00 7981 0bbb 1afd 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbcd + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 cd +5500 5e78 bf34 2602 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbce + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 ce + 8 MC 8ec6 + 11 MR 8ec6 bf + 11 MC 8ec6 + 12 MC 8ec6 + 15 MW 8ec6 bf +d500 a111 cb2a 8ec6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 + +cbcf + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 cf +a200 6baf 98b2 98a0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbd0 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 d0 +2300 7fcb 02e7 1724 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbd1 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 d1 +5300 581f b775 47f4 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbd2 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 d2 +6900 c147 b79c 7528 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbd3 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 d3 +ae00 bbc4 ce56 5fba 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbd4 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 d4 +d800 6e1e af6f bf2e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbd5 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 d5 +8400 a19a d2fd 8a77 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbd6 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 d6 + 8 MC 6029 + 11 MR 6029 b7 + 11 MC 6029 + 12 MC 6029 + 15 MW 6029 b7 +a900 f5f3 2180 6029 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 + +cbd7 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 d7 +b500 c008 8425 290a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbd8 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 d8 +8b00 09c4 ddf3 6d7e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbd9 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 d9 +3e00 3e3e 30ec efc6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbda + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 da +d000 3e8f 28fe 1c87 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbdb + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 db +1200 977a 8c49 bc48 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbdc + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 dc +8d00 05de f8d3 b925 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbdd + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 dd +c300 08a9 2bc8 5b9f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbde + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 de + 8 MC ba03 + 11 MR ba03 93 + 11 MC ba03 + 12 MC ba03 + 15 MW ba03 9b +1900 900f d572 ba03 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +ba03 9b -1 + +cbdf + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 df +6f00 2745 7e3d 0fa1 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbe0 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 e0 +3e00 d633 9897 3744 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbe1 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 e1 +7d00 50b6 0136 5334 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbe2 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 e2 +d400 6b45 b192 3a4c 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbe3 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 e3 +3b00 d29c 05f0 2e78 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbe4 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 e4 +1e00 7d5e 846d 1978 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbe5 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 e5 +ca00 df0d d588 b49f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbe6 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 e6 + 8 MC 9f9b + 11 MR 9f9b f6 + 11 MC 9f9b + 12 MC 9f9b + 15 MW 9f9b f6 +b300 52c2 dbfe 9f9b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 + +cbe7 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 e7 +9e00 cf02 67ef f2e0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbe8 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 e8 +7100 bb18 66ec 4a05 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbe9 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 e9 +5700 28b7 8f2f a4d0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbea + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 ea +ec00 304a 60a1 f32a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbeb + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 eb +f000 532b a1be 1a1a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbec + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 ec +f200 f0f3 a816 ba08 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbed + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 ed +1300 5127 adab 2dec 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbee + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 ee + 8 MC e90d + 11 MR e90d f1 + 11 MC e90d + 12 MC e90d + 15 MW e90d f1 +9000 b273 50ae e90d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 + +cbef + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 ef +2500 4281 f0d4 2c39 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbf0 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 f0 +fb00 5802 0c27 6ff5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbf1 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 f1 +5500 a143 3ff5 5e1c 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbf2 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 f2 +f000 625a ef82 9819 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbf3 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 f3 +8600 d7bd 5dc6 263f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbf4 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 f4 +9400 0243 9ec1 75d9 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbf5 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 f5 +ce00 2d42 5e6a 47e6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbf6 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 f6 + 8 MC a9bc + 11 MR a9bc b1 + 11 MC a9bc + 12 MC a9bc + 15 MW a9bc f1 +7b00 c2d7 4492 a9bc 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +a9bc f1 -1 + +cbf7 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 f7 +6d00 abaf 5b5d 188c 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbf8 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 f8 +c600 b812 a037 d2b0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbf9 + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 f9 +ef00 c5f2 77a8 0730 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbfa + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 fa +8700 1581 e3e3 ed03 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbfb + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 fb +a300 7d27 97c3 d1ae 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbfc + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 fc +ec00 060a 3ef6 d00f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbfd + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 fd +1100 231a 8563 28c5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cbfe + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 fe + 8 MC 3a24 + 11 MR 3a24 c3 + 11 MC 3a24 + 12 MC 3a24 + 15 MW 3a24 c3 +5300 4948 89dd 3a24 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 + +cbff + 0 MC 0000 + 4 MR 0000 cb + 4 MC 0001 + 8 MR 0001 ff +f900 799b 6cf7 e3f2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 + +cc_1 + 0 MC 0000 + 4 MR 0000 cc + 4 MC 0001 + 7 MR 0001 61 + 7 MC 0002 + 10 MR 0002 9c + 10 MC 0002 + 11 MC 5697 + 14 MW 5697 00 + 14 MC 5696 + 17 MW 5696 03 +004e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5696 9c61 +00 01 0 0 0 0 17 +5696 03 00 -1 + +cc_2 + 0 MC 0000 + 4 MR 0000 cc + 4 MC 0001 + 7 MC 0002 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0003 +00 01 0 0 0 0 10 + +cd + 0 MC 0000 + 4 MR 0000 cd + 4 MC 0001 + 7 MR 0001 5d + 7 MC 0002 + 10 MR 0002 3a + 10 MC 0002 + 11 MC b07c + 14 MW b07c 00 + 14 MC b07b + 17 MW b07b 03 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 b07b 3a5d +00 01 0 0 0 0 17 +b07b 03 00 -1 + +ce + 0 MC 0000 + 4 MR 0000 ce + 4 MC 0001 + 7 MR 0001 b2 +1301 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +cf + 0 MC 6d33 + 4 MR 6d33 cf + 4 MC 0001 + 5 MC 5506 + 8 MW 5506 6d + 8 MC 5505 + 11 MW 5505 34 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5505 0008 +00 01 0 0 0 0 11 +5505 34 6d -1 + +d0_1 + 0 MC 0000 + 4 MR 0000 d0 + 4 MC 0001 + 5 MC 43f7 + 8 MR 43f7 e9 + 8 MC 43f8 + 11 MR 43f8 af +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f9 afe9 +00 01 0 0 0 0 11 + +d0_2 + 0 MC 0000 + 4 MR 0000 d0 + 4 MC 0001 +0099 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0001 +00 01 0 0 0 0 5 + +d1 + 0 MC 0000 + 4 MR 0000 d1 + 4 MC 4143 + 7 MR 4143 ce + 7 MC 4144 + 10 MR 4144 e8 +0000 0000 e8ce 0000 0000 0000 0000 0000 0000 0000 4145 0001 +00 01 0 0 0 0 10 + +d2_1 + 0 MC 0000 + 4 MR 0000 d2 + 4 MC 0001 + 7 MR 0001 1b + 7 MC 0002 + 10 MR 0002 e1 +0086 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e11b +00 01 0 0 0 0 10 + +d2_2 + 0 MC 0000 + 4 MR 0000 d2 + 4 MC 0001 + 7 MC 0002 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 + +d3_1 + 0 MC 0000 + 4 MR 0000 d3 + 4 MC 0001 + 7 MR 0001 ed + 8 PW a2ed a2 +a200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 11 + +d3_2 + 0 MC 0000 + 4 MR 0000 d3 + 4 MC 0001 + 7 MR 0001 ec + 7 PC 42ec + 8 PW 42ec 42 + 8 PC 42ec +4200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 11 + +d3_3 + 0 MC 0000 + 4 MR 0000 d3 + 4 MC 0001 + 7 MR 0001 ed + 7 PC 42ed + 8 PW 42ed 42 + 8 PC 42ed + 9 PC 42ed + 10 PC 42ed +4200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 11 + +d3 + 0 MC 0000 + 4 MR 0000 d3 + 4 MC 0001 + 7 MR 0001 ec + 8 PW a2ec a2 + 8 PC a2ec +a200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 11 + +d4_1 + 0 MC 0000 + 4 MR 0000 d4 + 4 MC 0001 + 7 MR 0001 61 + 7 MC 0002 + 10 MR 0002 9c + 10 MC 0002 + 11 MC 5697 + 14 MW 5697 00 + 14 MC 5696 + 17 MW 5696 03 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5696 9c61 +00 01 0 0 0 0 17 +5696 03 00 -1 + +d4_2 + 0 MC 0000 + 4 MR 0000 d4 + 4 MC 0001 + 7 MC 0002 +000f 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0003 +00 01 0 0 0 0 10 + +d5 + 0 MC 0000 + 4 MR 0000 d5 + 4 MC 0001 + 5 MC ec11 + 8 MW ec11 77 + 8 MC ec10 + 11 MW ec10 5f +53e3 1459 775f 1a2f 0000 0000 0000 0000 0000 0000 ec10 0001 +00 01 0 0 0 0 11 +ec10 5f 77 -1 + +d6 + 0 MC 0000 + 4 MR 0000 d6 + 4 MC 0001 + 7 MR 0001 df +5a1b 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +d7 + 0 MC 6d33 + 4 MR 6d33 d7 + 4 MC 0001 + 5 MC 5506 + 8 MW 5506 6d + 8 MC 5505 + 11 MW 5505 34 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5505 0010 +00 01 0 0 0 0 11 +5505 34 6d -1 + +d8_1 + 0 MC 0000 + 4 MR 0000 d8 + 4 MC 0001 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0001 +00 01 0 0 0 0 5 + +d8_2 + 0 MC 0000 + 4 MR 0000 d8 + 4 MC 0001 + 5 MC 43f7 + 8 MR 43f7 e9 + 8 MC 43f8 + 11 MR 43f8 af +0099 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f9 afe9 +00 01 0 0 0 0 11 + +d9 + 0 MC 0000 + 4 MR 0000 d9 +4d94 c930 3d01 7d02 1a64 e07a e35b 9d64 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +da_1 + 0 MC 0000 + 4 MR 0000 da + 4 MC 0001 + 7 MR 0001 1b + 7 MC 0002 + 10 MR 0002 e1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e11b +00 01 0 0 0 0 10 + +da_2 + 0 MC 0000 + 4 MR 0000 da + 4 MC 0001 + 7 MC 0002 +0086 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 + +db_1 + 0 MC 0000 + 4 MR 0000 db + 4 MC 0001 + 7 MR 0001 e3 + 8 PR c1e3 c1 +c100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 11 + +db_2 + 0 MC 0000 + 4 MR 0000 db + 4 MC 0001 + 7 MR 0001 e2 + 7 PC 71e2 + 8 PR 71e2 71 + 8 PC 71e2 +7100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 11 + +db_3 + 0 MC 0000 + 4 MR 0000 db + 4 MC 0001 + 7 MR 0001 e3 + 7 PC 71e3 + 8 PR 71e3 71 + 8 PC 71e3 + 9 PC 71e3 + 10 PC 71e3 +7100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 11 + +db + 0 MC 0000 + 4 MR 0000 db + 4 MC 0001 + 7 MR 0001 e2 + 8 PR c1e2 c1 + 8 PC c1e2 +c100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 11 + +dc_1 + 0 MC 0000 + 4 MR 0000 dc + 4 MC 0001 + 7 MR 0001 61 + 7 MC 0002 + 10 MR 0002 9c + 10 MC 0002 + 11 MC 5697 + 14 MW 5697 00 + 14 MC 5696 + 17 MW 5696 03 +000f 0000 0000 0000 0000 0000 0000 0000 0000 0000 5696 9c61 +00 01 0 0 0 0 17 +5696 03 00 -1 + +dc_2 + 0 MC 0000 + 4 MR 0000 dc + 4 MC 0001 + 7 MC 0002 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0003 +00 01 0 0 0 0 10 + +dd00 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 00 + 8 MC 0002 + 12 MR 0002 00 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 03 0 0 0 0 12 + +dd09 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 09 + 8 MC 0002 + 9 MC 0002 + 10 MC 0002 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 +0d34 1426 53ce 41e3 0000 0000 0000 0000 b2e6 5c89 0000 0002 +00 02 0 0 0 0 15 + +dd19 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 19 + 8 MC 0002 + 9 MC 0002 + 10 MC 0002 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 +1928 0e0b 2724 be62 0000 0000 0000 0000 a973 760b 0000 0002 +00 02 0 0 0 0 15 + +dd21 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 21 + 8 MC 0002 + 11 MR 0002 f2 + 11 MC 0003 + 14 MR 0003 7c +c935 4353 bd22 94d5 0000 0000 0000 0000 7cf2 aad6 0000 0004 +00 02 0 0 0 0 14 + +dd22 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 22 + 8 MC 0002 + 11 MR 0002 4f + 11 MC 0003 + 14 MR 0003 ad + 14 MC ad4f + 17 MW ad4f e7 + 17 MC ad50 + 20 MW ad50 eb +5b1d 45a1 6de8 39d3 0000 0000 0000 0000 ebe7 05b0 0000 0004 +00 02 0 0 0 0 20 +ad4f e7 eb -1 + +dd23 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 23 + 8 MC 0002 + 9 MC 0002 +9095 ac3c 4d90 379b 0000 0000 0000 0000 d50c a157 0000 0002 +00 02 0 0 0 0 10 + +dd24 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 24 +0688 dcd0 a31b d527 0000 0000 0000 0000 8dda b096 0000 0002 +00 02 0 0 0 0 8 + +dd25 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 25 +5aaa 206b ed10 6eab 0000 0000 0000 0000 ba3c 5ebd 0000 0002 +00 02 0 0 0 0 8 + +dd26 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 26 + 8 MC 0002 + 11 MR 0002 ad +9522 ede0 a352 adea 0000 0000 0000 0000 ad40 82e1 0000 0003 +00 02 0 0 0 0 11 + +dd29 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 29 + 8 MC 0002 + 9 MC 0002 + 10 MC 0002 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 +aca0 0f0e 72c8 1f2a 0000 0000 0000 0000 a32a 7d8a 0000 0002 +00 02 0 0 0 0 15 + +dd2a + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 2a + 8 MC 0002 + 11 MR 0002 bc + 11 MC 0003 + 14 MR 0003 40 + 14 MC 40bc + 17 MR 40bc b5 + 17 MC 40bd + 20 MR 40bd 30 +3d36 b24e bdbc ca4e 0000 0000 0000 0000 30b5 e7ce 0000 0004 +00 02 0 0 0 0 20 + +dd2b + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 2b + 8 MC 0002 + 9 MC 0002 +ad4b d5e6 9377 f132 0000 0000 0000 0000 7a16 2188 0000 0002 +00 02 0 0 0 0 10 + +dd2c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 2c +8830 f2f3 d277 9153 0000 0000 0000 0000 c630 b002 0000 0002 +00 02 0 0 0 0 8 + +dd2d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 2d +3922 b23c 6e11 5a49 0000 0000 0000 0000 0266 ab03 0000 0002 +00 02 0 0 0 0 8 + +dd2e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 2e + 8 MC 0002 + 11 MR 0002 1c +9aca a04a b49f a4a6 0000 0000 0000 0000 bd1c 38a1 0000 0003 +00 02 0 0 0 0 11 + +dd34 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 34 + 8 MC 0002 + 11 MR 0002 e6 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC de8f + 19 MR de8f 57 + 19 MC de8f + 20 MC de8f + 23 MW de8f 58 +8308 d1fc b80b 8082 0000 0000 0000 0000 dea9 6fd8 0000 0003 +00 02 0 0 0 0 23 +de8f 58 -1 + +dd35 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 35 + 8 MC 0002 + 11 MR 0002 60 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC c793 + 19 MR c793 f7 + 19 MC c793 + 20 MC c793 + 23 MW c793 f6 +86a3 4641 1ef6 10ab 0000 0000 0000 0000 c733 8ec4 0000 0003 +00 02 0 0 0 0 23 +c793 f6 -1 + +dd36 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 36 + 8 MC 0002 + 11 MR 0002 35 + 11 MC 0003 + 14 MR 0003 b5 + 14 MC 0003 + 15 MC 0003 + 16 MC b5fb + 19 MW b5fb b5 +76dc 2530 5158 877d 0000 0000 0000 0000 b5c6 8d3c 0000 0004 +00 02 0 0 0 0 19 +b5fb b5 -1 + +dd39 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 39 + 8 MC 0002 + 9 MC 0002 + 10 MC 0002 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 +8769 a334 d79d 59e4 0000 0000 0000 0000 ab64 4c88 fa4a 0002 +00 02 0 0 0 0 15 + +dd44 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 44 +b37e 27b0 36e8 3f45 0000 0000 0000 0000 2702 b3b9 0000 0002 +00 02 0 0 0 0 8 + +dd45 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 45 +4e10 986d d11d 1736 0000 0000 0000 0000 7298 2d10 0000 0002 +00 02 0 0 0 0 8 + +dd46 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 46 + 8 MC 0002 + 11 MR 0002 68 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 5d2f + 19 MR 5d2f 8d +c758 8d29 66f2 29ef 0000 0000 0000 0000 5cc7 407d 0000 0003 +00 02 0 0 0 0 19 + +dd4c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 4c +e15c 753e 7531 ae9e 0000 0000 0000 0000 3ed8 03b7 0000 0002 +00 02 0 0 0 0 8 + +dd4d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 4d +469e 78aa 6a5a 00e2 0000 0000 0000 0000 a1aa 0d6f 0000 0002 +00 02 0 0 0 0 8 + +dd4e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 4e + 8 MC 0002 + 11 MR 0002 2e + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC d979 + 19 MR d979 76 +7bf7 6676 8d55 def2 0000 0000 0000 0000 d94b 17fb 0000 0003 +00 02 0 0 0 0 19 + +dd54 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 54 +8376 0d13 4b67 3119 0000 0000 0000 0000 4b6d 030b 0000 0002 +00 02 0 0 0 0 8 + +dd55 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 55 +ff78 85e3 d76b 8f3a 0000 0000 0000 0000 d7d7 4e0b 0000 0002 +00 02 0 0 0 0 8 + +dd56 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 56 + 8 MC 0002 + 11 MR 0002 f4 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC a2fa + 19 MR a2fa de +97b3 b617 de50 81d1 0000 0000 0000 0000 a306 7a49 0000 0003 +00 02 0 0 0 0 19 + +dd5c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 5c +af82 24bf 27f9 f925 0000 0000 0000 0000 f9a3 0b82 0000 0002 +00 02 0 0 0 0 8 + +dd5d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 5d +36cb 97a9 4040 30fe 0000 0000 0000 0000 3340 b3ed 0000 0002 +00 02 0 0 0 0 8 + +dd5e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 5e + 8 MC 0002 + 11 MR 0002 8f + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 8cc1 + 19 MR 8cc1 ce +a220 389d 2fce 368c 0000 0000 0000 0000 8d32 3512 0000 0003 +00 02 0 0 0 0 19 + +dd60 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 60 +2392 7f6a 3dc0 cefb 0000 0000 0000 0000 7fa0 c424 0000 0002 +00 02 0 0 0 0 8 + +dd61 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 61 +76ed 268c d5c8 bab0 0000 0000 0000 0000 8c50 0a93 0000 0002 +00 02 0 0 0 0 8 + +dd62 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 62 +4c6f b482 fef4 62e7 0000 0000 0000 0000 fe25 9655 0000 0002 +00 02 0 0 0 0 8 + +dd63 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 63 +6e9a 5499 3c8f 1f64 0000 0000 0000 0000 8f35 0df7 0000 0002 +00 02 0 0 0 0 8 + +dd64 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 64 +47f6 1b7a a55e 2fc2 0000 0000 0000 0000 efc7 aca0 0000 0002 +00 02 0 0 0 0 8 + +dd65 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 65 +d786 7d1d b659 77e8 0000 0000 0000 0000 fafa 006d 0000 0002 +00 02 0 0 0 0 8 + +dd66 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 66 + 8 MC 0002 + 11 MR 0002 b5 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC ce12 + 19 MR ce12 03 +84c2 79b1 ca4a 03a0 0000 0000 0000 0000 ce5d dd2d 0000 0003 +00 02 0 0 0 0 19 + +dd67 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 67 +967c 511e 336d 40f6 0000 0000 0000 0000 96e7 5be2 0000 0002 +00 02 0 0 0 0 8 + +dd68 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 68 +4a9d efa8 febd 07e4 0000 0000 0000 0000 5fef b23f 0000 0002 +00 02 0 0 0 0 8 + +dd69 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 69 +6466 2142 2523 82b3 0000 0000 0000 0000 6442 04a7 0000 0002 +00 02 0 0 0 0 8 + +dd6a + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 6a +401f 61f1 4b08 fa88 0000 0000 0000 0000 c34b d8f6 0000 0002 +00 02 0 0 0 0 8 + +dd6b + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 6b +6dc7 e2ae 40bd f3c0 0000 0000 0000 0000 22bd 2749 0000 0002 +00 02 0 0 0 0 8 + +dd6c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 6c +3939 90da 62dc 7c31 0000 0000 0000 0000 4141 7211 0000 0002 +00 02 0 0 0 0 8 + +dd6d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 6d +3964 ff3f 23d4 c7c7 0000 0000 0000 0000 9b70 20c6 0000 0002 +00 02 0 0 0 0 8 + +dd6e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 6e + 8 MC 0002 + 11 MR 0002 2c + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC c674 + 19 MR c674 6b +223f f661 b61c 0f6b 0000 0000 0000 0000 c648 fae8 0000 0003 +00 02 0 0 0 0 19 + +dd6f + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 6f +6e84 9cd4 a293 647d 0000 0000 0000 0000 0d6e 4a56 0000 0002 +00 02 0 0 0 0 8 + +dd70 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 70 + 8 MC 0002 + 11 MR 0002 f6 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 05f0 + 19 MW 05f0 fe +d09f fe00 231e 31ec 0000 0000 0000 0000 05fa ea92 0000 0003 +00 02 0 0 0 0 19 +05f0 fe -1 + +dd71 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 71 + 8 MC 0002 + 11 MR 0002 23 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 3745 + 19 MW 3745 1c +ebee 151c 05c7 ee08 0000 0000 0000 0000 3722 2ec6 0000 0003 +00 02 0 0 0 0 19 +3745 1c -1 + +dd72 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 72 + 8 MC 0002 + 11 MR 0002 93 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 8d92 + 19 MW 8d92 63 +80c9 ac1e 63bd 828b 0000 0000 0000 0000 8dff 94ef 0000 0003 +00 02 0 0 0 0 19 +8d92 63 -1 + +dd73 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 73 + 8 MC 0002 + 11 MR 0002 57 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 7a1d + 19 MW 7a1d de +8f3e b5a3 07de 0b0c 0000 0000 0000 0000 79c6 ae79 0000 0003 +00 02 0 0 0 0 19 +7a1d de -1 + +dd74 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 74 + 8 MC 0002 + 11 MR 0002 b9 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 58c9 + 19 MW 58c9 01 +4ae0 49c5 3deb 0125 0000 0000 0000 0000 5910 429a 0000 0003 +00 02 0 0 0 0 19 +58c9 01 -1 + +dd75 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 75 + 8 MC 0002 + 11 MR 0002 30 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC ae7c + 19 MW ae7c 4f +5772 e833 b63e 734f 0000 0000 0000 0000 ae4c e8c2 0000 0003 +00 02 0 0 0 0 19 +ae7c 4f -1 + +dd77 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 77 + 8 MC 0002 + 11 MR 0002 8c + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC a10d + 19 MW a10d dc +dc56 d893 4116 f2d2 0000 0000 0000 0000 a181 3157 0000 0003 +00 02 0 0 0 0 19 +a10d dc -1 + +dd7c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 7c +8c58 7705 ac92 a6a1 0000 0000 0000 0000 8cde 7507 0000 0002 +00 02 0 0 0 0 8 + +dd7d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 7d +cb18 93fb 6bdd 3a10 0000 0000 0000 0000 d7cb c0f6 0000 0002 +00 02 0 0 0 0 8 + +dd7e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 7e + 8 MC 0002 + 11 MR 0002 bc + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 1cb0 + 19 MR 1cb0 57 +5766 1f77 6220 0c40 0000 0000 0000 0000 1cf4 1a1f 0000 0003 +00 02 0 0 0 0 19 + +dd84 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 84 +cd98 1de8 b8b9 78a6 0000 0000 0000 0000 9f1d b11f 0000 0002 +00 02 0 0 0 0 8 + +dd85 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 85 +c580 b1ff 8d7b 40c0 0000 0000 0000 0000 b513 0688 0000 0002 +00 02 0 0 0 0 8 + +dd86 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 86 + 8 MC 0002 + 11 MR 0002 c1 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC b576 + 19 MR b576 5b +a9bc d085 5bac e364 0000 0000 0000 0000 b5b5 fe3a 0000 0003 +00 02 0 0 0 0 19 + +dd8c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 8c +cb98 8fdc ea8f 9734 0000 0000 0000 0000 0eb3 1b54 0000 0002 +00 02 0 0 0 0 8 + +dd8d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 8d +7535 1c81 b6fb d6e5 0000 0000 0000 0000 09be a736 0000 0002 +00 02 0 0 0 0 8 + +dd8e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 8e + 8 MC 0002 + 11 MR 0002 25 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC bbbc + 19 MR bbbc 32 +8094 182d ab17 94ae 0000 0000 0000 0000 bb97 87da 0000 0003 +00 02 0 0 0 0 19 + +dd94 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 94 +7422 9efe 6ea1 fc55 0000 0000 0000 0000 0a09 89c5 0000 0002 +00 02 0 0 0 0 8 + +dd95 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 95 +2c3b 59ab 428c 3a94 0000 0000 0000 0000 44fd f243 0000 0002 +00 02 0 0 0 0 8 + +dd96 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 96 + 8 MC 0002 + 11 MR 0002 5f + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 2cc5 + 19 MR 2cc5 49 +5206 461f ced7 db3f 0000 0000 0000 0000 2c66 9dbf 0000 0003 +00 02 0 0 0 0 19 + +dd9c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 9c +d282 670e afcc 8b34 0000 0000 0000 0000 285f 1caa 0000 0002 +00 02 0 0 0 0 8 + +dd9d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 9d +e5a2 0cdb df32 d0e4 0000 0000 0000 0000 9b12 7d07 0000 0002 +00 02 0 0 0 0 8 + +dd9e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 9e + 8 MC 0002 + 11 MR 0002 14 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC b4e0 + 19 MR b4e0 b5 +de9b f9c5 cbc4 ca21 0000 0000 0000 0000 b4cc 46fa 0000 0003 +00 02 0 0 0 0 19 + +dda4 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 a4 +0210 ba53 acfc 9481 0000 0000 0000 0000 2f8b edf6 0000 0002 +00 02 0 0 0 0 8 + +dda5 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 a5 +aabc a675 d757 f1db 0000 0000 0000 0000 fdef d8ce 0000 0002 +00 02 0 0 0 0 8 + +dda6 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 a6 + 8 MC 0002 + 11 MR 0002 41 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 7ed6 + 19 MR 7ed6 c7 +0514 20c4 ebc3 da8d 0000 0000 0000 0000 7e95 5e8a 0000 0003 +00 02 0 0 0 0 19 + +ddac + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 ac +4000 2a7c 17e5 3f6e 0000 0000 0000 0000 affa a0b5 0000 0002 +00 02 0 0 0 0 8 + +ddad + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 ad +8284 6ba1 ef1b 5713 0000 0000 0000 0000 ba38 a708 0000 0002 +00 02 0 0 0 0 8 + +ddae + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 ae + 8 MC 0002 + 11 MR 0002 72 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC e97b + 19 MR e97b c3 +4300 3ad6 a721 2100 0000 0000 0000 0000 e909 87b4 0000 0003 +00 02 0 0 0 0 19 + +ddb4 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 b4 +9c8c 29aa 2e82 4dc8 0000 0000 0000 0000 9c04 8be3 0000 0002 +00 02 0 0 0 0 8 + +ddb5 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 b5 +c780 fc93 7a06 0518 0000 0000 0000 0000 0ac5 4150 0000 0002 +00 02 0 0 0 0 8 + +ddb6 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 b6 + 8 MC 0002 + 11 MR 0002 31 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC c6a0 + 19 MR c6a0 1c +5c0c ab81 4287 5ee1 0000 0000 0000 0000 c66f d6cc 0000 0003 +00 02 0 0 0 0 19 + +ddbc + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 bc +53bf aa98 f7d7 fa0c 0000 0000 0000 0000 be7a a41f 0000 0002 +00 02 0 0 0 0 8 + +ddbd + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 bd +dc82 80ce 5d2f e999 0000 0000 0000 0000 bb41 a24f 0000 0002 +00 02 0 0 0 0 8 + +ddbe + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 be + 8 MC 0002 + 11 MR 0002 48 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 937a + 19 MR 937a 5b +981e bfd5 a299 d34b 0000 0000 0000 0000 9332 b1d5 0000 0003 +00 02 0 0 0 0 19 + +ddcb00 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0d + 11 MC 0003 + 14 MR 0003 00 + 14 MC 0003 + 15 MC 0003 + 16 MC 1dae + 19 MR 1dae a1 + 19 MC 1dae + 20 MC 1dae + 23 MW 1dae 43 +3c01 43e4 09d1 646b 0000 0000 0000 0000 1da1 f08f 0000 0004 +00 02 0 0 0 0 23 +1dae 43 -1 + +ddcb01 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 b7 + 11 MC 0003 + 14 MR 0003 01 + 14 MC 0003 + 15 MC 0003 + 16 MC 28b4 + 19 MR 28b4 e3 + 19 MC 28b4 + 20 MC 28b4 + 23 MW 28b4 c7 +f681 e3c7 2d4a 7725 0000 0000 0000 0000 28fd f31b 0000 0004 +00 02 0 0 0 0 23 +28b4 c7 -1 + +ddcb02 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 91 + 11 MC 0003 + 14 MR 0003 02 + 14 MC 0003 + 15 MC 0003 + 16 MC c727 + 19 MR c727 8d + 19 MC c727 + 20 MC c727 + 23 MW c727 1b +e20d 836e 1b3a f840 0000 0000 0000 0000 c796 ae9b 0000 0004 +00 02 0 0 0 0 23 +c727 1b -1 + +ddcb03 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 48 + 11 MC 0003 + 14 MR 0003 03 + 14 MC 0003 + 15 MC 0003 + 16 MC 0466 + 19 MR 0466 78 + 19 MC 0466 + 20 MC 0466 + 23 MW 0466 f0 +62a4 3571 c5f0 48dc 0000 0000 0000 0000 041e c07b 0000 0004 +00 02 0 0 0 0 23 +0466 f0 -1 + +ddcb04 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 48 + 11 MC 0003 + 14 MR 0003 04 + 14 MC 0003 + 15 MC 0003 + 16 MC 5991 + 19 MR 5991 68 + 19 MC 5991 + 20 MC 5991 + 23 MW 5991 d0 +b380 bfc4 64af d022 0000 0000 0000 0000 5949 a989 0000 0004 +00 02 0 0 0 0 23 +5991 d0 -1 + +ddcb05 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ff + 11 MC 0003 + 14 MR 0003 05 + 14 MC 0003 + 15 MC 0003 + 16 MC 0076 + 19 MR 0076 95 + 19 MC 0076 + 20 MC 0076 + 23 MW 0076 2b +492d bb04 56ec 9d2b 0000 0000 0000 0000 0077 1349 0000 0004 +00 02 0 0 0 0 23 +0076 2b -1 + +ddcb06 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 07 + 11 MC 0003 + 14 MR 0003 06 + 14 MC 0003 + 15 MC 0003 + 16 MC 5428 + 19 MR 5428 97 + 19 MC 5428 + 20 MC 5428 + 23 MW 5428 2f +0c29 f636 90a6 6117 0000 0000 0000 0000 5421 90ee 0000 0004 +00 02 0 0 0 0 23 +5428 2f -1 + +ddcb07 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 42 + 11 MC 0003 + 14 MR 0003 07 + 14 MC 0003 + 15 MC 0003 + 16 MC 9845 + 19 MR 9845 ae + 19 MC 9845 + 20 MC 9845 + 23 MW 9845 5d +5d09 9ca3 bdf6 ed50 0000 0000 0000 0000 9803 55f9 0000 0004 +00 02 0 0 0 0 23 +9845 5d -1 + +ddcb08 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0a + 11 MC 0003 + 14 MR 0003 08 + 14 MC 0003 + 15 MC 0003 + 16 MC ef4a + 19 MR ef4a da + 19 MC ef4a + 20 MC ef4a + 23 MW ef4a 6d +0228 6d66 6023 ae06 0000 0000 0000 0000 ef40 b006 0000 0004 +00 02 0 0 0 0 23 +ef4a 6d -1 + +ddcb09 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 3b + 11 MC 0003 + 14 MR 0003 09 + 14 MC 0003 + 15 MC 0003 + 16 MC 9d46 + 19 MR 9d46 6f + 19 MC 9d46 + 20 MC 9d46 + 23 MW 9d46 b7 +98a5 92b7 54d5 5e1e 0000 0000 0000 0000 9d0b 6e58 0000 0004 +00 02 0 0 0 0 23 +9d46 b7 -1 + +ddcb0a + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 83 + 11 MC 0003 + 14 MR 0003 0a + 14 MC 0003 + 15 MC 0003 + 16 MC 1f37 + 19 MR 1f37 78 + 19 MC 1f37 + 20 MC 1f37 + 23 MW 1f37 3c +d22c 6aac 3c89 9293 0000 0000 0000 0000 1fb4 2498 0000 0004 +00 02 0 0 0 0 23 +1f37 3c -1 + +ddcb0b + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 fa + 11 MC 0003 + 14 MR 0003 0b + 14 MC 0003 + 15 MC 0003 + 16 MC cd03 + 19 MR cd03 92 + 19 MC cd03 + 20 MC cd03 + 23 MW cd03 49 +b808 b284 2349 7e7d 0000 0000 0000 0000 cd09 6a03 0000 0004 +00 02 0 0 0 0 23 +cd03 49 -1 + +ddcb0c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 79 + 11 MC 0003 + 14 MR 0003 0c + 14 MC 0003 + 15 MC 0003 + 16 MC bfe4 + 19 MR bfe4 0d + 19 MC bfe4 + 20 MC bfe4 + 23 MW bfe4 86 +df81 b6cc ee8d 865a 0000 0000 0000 0000 bf6b 9b7d 0000 0004 +00 02 0 0 0 0 23 +bfe4 86 -1 + +ddcb0d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e4 + 11 MC 0003 + 14 MR 0003 0d + 14 MC 0003 + 15 MC 0003 + 16 MC 88a1 + 19 MR 88a1 1f + 19 MC 88a1 + 20 MC 88a1 + 23 MW 88a1 8f +ba89 ceec bbaa b68f 0000 0000 0000 0000 88bd 503e 0000 0004 +00 02 0 0 0 0 23 +88a1 8f -1 + +ddcb0e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c6 + 11 MC 0003 + 14 MR 0003 0e + 14 MC 0003 + 15 MC 0003 + 16 MC fd0f + 19 MR fd0f ad + 19 MC fd0f + 20 MC fd0f + 23 MW fd0f d6 +1c81 890b 7830 060c 0000 0000 0000 0000 fd49 5d07 0000 0004 +00 02 0 0 0 0 23 +fd0f d6 -1 + +ddcb0f + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 57 + 11 MC 0003 + 14 MR 0003 0f + 14 MC 0003 + 15 MC 0003 + 16 MC 749e + 19 MR 749e f8 + 19 MC 749e + 20 MC 749e + 23 MW 749e 7c +7c28 fad4 fa4b 9c53 0000 0000 0000 0000 7447 2267 0000 0004 +00 02 0 0 0 0 23 +749e 7c -1 + +ddcb10 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 4f + 11 MC 0003 + 14 MR 0003 10 + 14 MC 0003 + 15 MC 0003 + 16 MC bbf1 + 19 MR bbf1 45 + 19 MC bbf1 + 20 MC bbf1 + 23 MW bbf1 8b +f38c 8b1f 5387 926e 0000 0000 0000 0000 bba2 ca47 0000 0004 +00 02 0 0 0 0 23 +bbf1 8b -1 + +ddcb11 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 eb + 11 MC 0003 + 14 MR 0003 11 + 14 MC 0003 + 15 MC 0003 + 16 MC 17f4 + 19 MR 17f4 d9 + 19 MC 17f4 + 20 MC 17f4 + 23 MW 17f4 b3 +2aa1 d6b3 a9aa 5b52 0000 0000 0000 0000 1809 d275 0000 0004 +00 02 0 0 0 0 23 +17f4 b3 -1 + +ddcb12 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 a6 + 11 MC 0003 + 14 MR 0003 12 + 14 MC 0003 + 15 MC 0003 + 16 MC c0a1 + 19 MR c0a1 e2 + 19 MC c0a1 + 20 MC c0a1 + 23 MW c0a1 c5 +9285 c479 c5d1 10ce 0000 0000 0000 0000 c0fb 2777 0000 0004 +00 02 0 0 0 0 23 +c0a1 c5 -1 + +ddcb13 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ff + 11 MC 0003 + 14 MR 0003 13 + 14 MC 0003 + 15 MC 0003 + 16 MC 5ac3 + 19 MR 5ac3 a7 + 19 MC 5ac3 + 20 MC 5ac3 + 23 MW 5ac3 4f +a509 580a a44f 11cd 0000 0000 0000 0000 5ac4 ccc7 0000 0004 +00 02 0 0 0 0 23 +5ac3 4f -1 + +ddcb14 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 dd + 11 MC 0003 + 14 MR 0003 14 + 14 MC 0003 + 15 MC 0003 + 16 MC 0954 + 19 MR 0954 85 + 19 MC 0954 + 20 MC 0954 + 23 MW 0954 0b +2909 5b89 8467 0b30 0000 0000 0000 0000 0977 c4e8 0000 0004 +00 02 0 0 0 0 23 +0954 0b -1 + +ddcb15 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 07 + 11 MC 0003 + 14 MR 0003 15 + 14 MC 0003 + 15 MC 0003 + 16 MC edf0 + 19 MR edf0 0e + 19 MC edf0 + 20 MC edf0 + 23 MW edf0 1d +1f0c 6d53 5b7c a11d 0000 0000 0000 0000 ede9 a85c 0000 0004 +00 02 0 0 0 0 23 +edf0 1d -1 + +ddcb16 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 45 + 11 MC 0003 + 14 MR 0003 16 + 14 MC 0003 + 15 MC 0003 + 16 MC 1703 + 19 MR 1703 5b + 19 MC 1703 + 20 MC 1703 + 23 MW 1703 b6 +daa0 a1e4 00b0 92c8 0000 0000 0000 0000 16be 2c95 0000 0004 +00 02 0 0 0 0 23 +1703 b6 -1 + +ddcb17 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 1c + 11 MC 0003 + 14 MR 0003 17 + 14 MC 0003 + 15 MC 0003 + 16 MC b8e5 + 19 MR b8e5 7e + 19 MC b8e5 + 20 MC b8e5 + 23 MW b8e5 fc +fcac cbd1 4e1a cd27 0000 0000 0000 0000 b8c9 e6d4 0000 0004 +00 02 0 0 0 0 23 +b8e5 fc -1 + +ddcb18 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0e + 11 MC 0003 + 14 MR 0003 18 + 14 MC 0003 + 15 MC 0003 + 16 MC a197 + 19 MR a197 90 + 19 MC a197 + 20 MC a197 + 23 MW a197 48 +d90c 48b5 9cf9 b9f1 0000 0000 0000 0000 a189 bd7c 0000 0004 +00 02 0 0 0 0 23 +a197 48 -1 + +ddcb19 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 a3 + 11 MC 0003 + 14 MR 0003 19 + 14 MC 0003 + 15 MC 0003 + 16 MC f08a + 19 MR f08a 37 + 19 MC f08a + 20 MC f08a + 23 MW f08a 9b +2389 599b a756 cf2e 0000 0000 0000 0000 f0e7 26e4 0000 0004 +00 02 0 0 0 0 23 +f08a 9b -1 + +ddcb1a + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ac + 11 MC 0003 + 14 MR 0003 1a + 14 MC 0003 + 15 MC 0003 + 16 MC de0d + 19 MR de0d cc + 19 MC de0d + 20 MC de0d + 23 MW de0d 66 +8b24 7e45 660f 37a6 0000 0000 0000 0000 de61 9cd9 0000 0004 +00 02 0 0 0 0 23 +de0d 66 -1 + +ddcb1b + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 05 + 11 MC 0003 + 14 MR 0003 1b + 14 MC 0003 + 15 MC 0003 + 16 MC b7c8 + 19 MR b7c8 91 + 19 MC b7c8 + 20 MC b7c8 + 23 MW b7c8 c8 +5c89 1414 81c8 5881 0000 0000 0000 0000 b7c3 d14f 0000 0004 +00 02 0 0 0 0 23 +b7c8 c8 -1 + +ddcb1c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ff + 11 MC 0003 + 14 MR 0003 1c + 14 MC 0003 + 15 MC 0003 + 16 MC fef8 + 19 MR fef8 61 + 19 MC fef8 + 20 MC fef8 + 23 MW fef8 30 +fa25 6277 8b67 3023 0000 0000 0000 0000 fef9 4a66 0000 0004 +00 02 0 0 0 0 23 +fef8 30 -1 + +ddcb1d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 3a + 11 MC 0003 + 14 MR 0003 1d + 14 MC 0003 + 15 MC 0003 + 16 MC 5b9d + 19 MR 5b9d f3 + 19 MC 5b9d + 20 MC 5b9d + 23 MW 5b9d f9 +76ad 324e e641 58f9 0000 0000 0000 0000 5b63 e18b 0000 0004 +00 02 0 0 0 0 23 +5b9d f9 -1 + +ddcb1e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ce + 11 MC 0003 + 14 MR 0003 1e + 14 MC 0003 + 15 MC 0003 + 16 MC 7582 + 19 MR 7582 91 + 19 MC 7582 + 20 MC 7582 + 23 MW 7582 c8 +c589 cd58 8967 f074 0000 0000 0000 0000 75b4 693a 0000 0004 +00 02 0 0 0 0 23 +7582 c8 -1 + +ddcb1f + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 a8 + 11 MC 0003 + 14 MR 0003 1f + 14 MC 0003 + 15 MC 0003 + 16 MC 1d43 + 19 MR 1d43 b4 + 19 MC 1d43 + 20 MC 1d43 + 23 MW 1d43 da +da88 7f6d 2058 63e3 0000 0000 0000 0000 1d9b baba 0000 0004 +00 02 0 0 0 0 23 +1d43 da -1 + +ddcb20 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e8 + 11 MC 0003 + 14 MR 0003 20 + 14 MC 0003 + 15 MC 0003 + 16 MC dc21 + 19 MR dc21 0e + 19 MC dc21 + 20 MC dc21 + 23 MW dc21 1c +4c08 1c9e dc6c 18f4 0000 0000 0000 0000 dc39 8b0c 0000 0004 +00 02 0 0 0 0 23 +dc21 1c -1 + +ddcb21 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9e + 11 MC 0003 + 14 MR 0003 21 + 14 MC 0003 + 15 MC 0003 + 16 MC 3432 + 19 MR 3432 f7 + 19 MC 3432 + 20 MC 3432 + 23 MW 3432 ee +d2ad 66ee 23ef 9096 0000 0000 0000 0000 3494 b6c3 0000 0004 +00 02 0 0 0 0 23 +3432 ee -1 + +ddcb22 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 43 + 11 MC 0003 + 14 MR 0003 22 + 14 MC 0003 + 15 MC 0003 + 16 MC bd82 + 19 MR bd82 9f + 19 MC bd82 + 20 MC bd82 + 23 MW bd82 3e +fb29 e0d0 3e02 b4b7 0000 0000 0000 0000 bd3f 385b 0000 0004 +00 02 0 0 0 0 23 +bd82 3e -1 + +ddcb23 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c1 + 11 MC 0003 + 14 MR 0003 23 + 14 MC 0003 + 15 MC 0003 + 16 MC 229e + 19 MR 229e e0 + 19 MC 229e + 20 MC 229e + 23 MW 229e c0 +c385 68b6 dac0 b990 0000 0000 0000 0000 22dd bd27 0000 0004 +00 02 0 0 0 0 23 +229e c0 -1 + +ddcb24 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e8 + 11 MC 0003 + 14 MR 0003 24 + 14 MC 0003 + 15 MC 0003 + 16 MC 31d9 + 19 MR 31d9 c3 + 19 MC 31d9 + 20 MC 31d9 + 23 MW 31d9 86 +ba81 7b0b 560b 8633 0000 0000 0000 0000 31f1 ddbd 0000 0004 +00 02 0 0 0 0 23 +31d9 86 -1 + +ddcb25 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c1 + 11 MC 0003 + 14 MR 0003 25 + 14 MC 0003 + 15 MC 0003 + 16 MC cc24 + 19 MR cc24 eb + 19 MC cc24 + 20 MC cc24 + 23 MW cc24 d6 +4381 a21b 2347 aed6 0000 0000 0000 0000 cc63 fc94 0000 0004 +00 02 0 0 0 0 23 +cc24 d6 -1 + +ddcb26 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f7 + 11 MC 0003 + 14 MR 0003 26 + 14 MC 0003 + 15 MC 0003 + 16 MC 651f + 19 MR 651f 89 + 19 MC 651f + 20 MC 651f + 23 MW 651f 12 +2005 ff37 e41f 70e7 0000 0000 0000 0000 6528 a0d5 0000 0004 +00 02 0 0 0 0 23 +651f 12 -1 + +ddcb27 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c3 + 11 MC 0003 + 14 MR 0003 27 + 14 MC 0003 + 15 MC 0003 + 16 MC 1f2c + 19 MR 1f2c ac + 19 MC 1f2c + 20 MC 1f2c + 23 MW 1f2c 58 +5809 5669 1bee f62c 0000 0000 0000 0000 1f69 3418 0000 0004 +00 02 0 0 0 0 23 +1f2c 58 -1 + +ddcb28 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 b6 + 11 MC 0003 + 14 MR 0003 28 + 14 MC 0003 + 15 MC 0003 + 16 MC 9951 + 19 MR 9951 24 + 19 MC 9951 + 20 MC 9951 + 23 MW 9951 12 +7a04 12b8 51f7 7164 0000 0000 0000 0000 999b 8857 0000 0004 +00 02 0 0 0 0 23 +9951 12 -1 + +ddcb29 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9c + 11 MC 0003 + 14 MR 0003 29 + 14 MC 0003 + 15 MC 0003 + 16 MC 2083 + 19 MR 2083 82 + 19 MC 2083 + 20 MC 2083 + 23 MW 2083 c1 +0480 b7c1 323f fd34 0000 0000 0000 0000 20e7 c753 0000 0004 +00 02 0 0 0 0 23 +2083 c1 -1 + +ddcb2a + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d8 + 11 MC 0003 + 14 MR 0003 2a + 14 MC 0003 + 15 MC 0003 + 16 MC 94dd + 19 MR 94dd 7c + 19 MC 94dd + 20 MC 94dd + 23 MW 94dd 3e +4528 afde 3e08 75d7 0000 0000 0000 0000 9505 b624 0000 0004 +00 02 0 0 0 0 23 +94dd 3e -1 + +ddcb2b + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 bd + 11 MC 0003 + 14 MR 0003 2b + 14 MC 0003 + 15 MC 0003 + 16 MC b441 + 19 MR b441 44 + 19 MC b441 + 20 MC b441 + 23 MW b441 22 +8324 e290 2622 7ddd 0000 0000 0000 0000 b484 571c 0000 0004 +00 02 0 0 0 0 23 +b441 22 -1 + +ddcb2c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 2c + 11 MC 0003 + 14 MR 0003 2c + 14 MC 0003 + 15 MC 0003 + 16 MC fe54 + 19 MR fe54 81 + 19 MC fe54 + 20 MC fe54 + 23 MW fe54 c0 +c685 0c94 6e4b c0c7 0000 0000 0000 0000 fe28 dc80 0000 0004 +00 02 0 0 0 0 23 +fe54 c0 -1 + +ddcb2d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9b + 11 MC 0003 + 14 MR 0003 2d + 14 MC 0003 + 15 MC 0003 + 16 MC b488 + 19 MR b488 44 + 19 MC b488 + 20 MC b488 + 23 MW b488 22 +ce24 d2ae c9be 4222 0000 0000 0000 0000 b4ed 6de3 0000 0004 +00 02 0 0 0 0 23 +b488 22 -1 + +ddcb2e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 3d + 11 MC 0003 + 14 MR 0003 2e + 14 MC 0003 + 15 MC 0003 + 16 MC 6a15 + 19 MR 6a15 05 + 19 MC 6a15 + 20 MC 6a15 + 23 MW 6a15 02 +5001 de74 eca8 83ff 0000 0000 0000 0000 69d8 75c7 0000 0004 +00 02 0 0 0 0 23 +6a15 02 -1 + +ddcb2f + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d3 + 11 MC 0003 + 14 MR 0003 2f + 14 MC 0003 + 15 MC 0003 + 16 MC 7a03 + 19 MR 7a03 f2 + 19 MC 7a03 + 20 MC 7a03 + 23 MW 7a03 f9 +f9ac 759b 3059 01b9 0000 0000 0000 0000 7a30 dd56 0000 0004 +00 02 0 0 0 0 23 +7a03 f9 -1 + +ddcb30 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 df + 11 MC 0003 + 14 MR 0003 30 + 14 MC 0003 + 15 MC 0003 + 16 MC eec7 + 19 MR eec7 32 + 19 MC eec7 + 20 MC eec7 + 23 MW eec7 65 +3c24 65ad 9cc7 a68c 0000 0000 0000 0000 eee8 5a80 0000 0004 +00 02 0 0 0 0 23 +eec7 65 -1 + +ddcb31 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 49 + 11 MC 0003 + 14 MR 0003 31 + 14 MC 0003 + 15 MC 0003 + 16 MC f276 + 19 MR f276 cd + 19 MC f276 + 20 MC f276 + 23 MW f276 9b +eb89 419b 929b 7d47 0000 0000 0000 0000 f22d 8943 0000 0004 +00 02 0 0 0 0 23 +f276 9b -1 + +ddcb32 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e0 + 11 MC 0003 + 14 MR 0003 32 + 14 MC 0003 + 15 MC 0003 + 16 MC 577f + 19 MR 577f e2 + 19 MC 577f + 20 MC 577f + 23 MW 577f c5 +9a85 aa64 c509 01ad 0000 0000 0000 0000 579f ec4c 0000 0004 +00 02 0 0 0 0 23 +577f c5 -1 + +ddcb33 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c9 + 11 MC 0003 + 14 MR 0003 33 + 14 MC 0003 + 15 MC 0003 + 16 MC ef75 + 19 MR ef75 0b + 19 MC ef75 + 20 MC ef75 + 23 MW ef75 17 +b804 b854 5217 9599 0000 0000 0000 0000 efac d9ec 0000 0004 +00 02 0 0 0 0 23 +ef75 17 -1 + +ddcb34 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 49 + 11 MC 0003 + 14 MR 0003 34 + 14 MC 0003 + 15 MC 0003 + 16 MC ab91 + 19 MR ab91 ef + 19 MC ab91 + 20 MC ab91 + 23 MW ab91 df +cd89 4432 20d4 df3e 0000 0000 0000 0000 ab48 c95f 0000 0004 +00 02 0 0 0 0 23 +ab91 df -1 + +ddcb35 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 b9 + 11 MC 0003 + 14 MR 0003 35 + 14 MC 0003 + 15 MC 0003 + 16 MC ead3 + 19 MR ead3 8f + 19 MC ead3 + 20 MC ead3 + 23 MW ead3 1f +de09 c6fc 696d 151f 0000 0000 0000 0000 eb1a 4a12 0000 0004 +00 02 0 0 0 0 23 +ead3 1f -1 + +ddcb36 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 b4 + 11 MC 0003 + 14 MR 0003 36 + 14 MC 0003 + 15 MC 0003 + 16 MC 12e2 + 19 MR 12e2 02 + 19 MC 12e2 + 20 MC 12e2 + 23 MW 12e2 05 +3d04 443b ff21 63e3 0000 0000 0000 0000 132e fb39 0000 0004 +00 02 0 0 0 0 23 +12e2 05 -1 + +ddcb37 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c6 + 11 MC 0003 + 14 MR 0003 37 + 14 MC 0003 + 15 MC 0003 + 16 MC 503d + 19 MR 503d 3d + 19 MC 503d + 20 MC 503d + 23 MW 503d 7b +7b2c bfc9 a69a ec0b 0000 0000 0000 0000 5077 4e3e 0000 0004 +00 02 0 0 0 0 23 +503d 7b -1 + +ddcb38 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 8e + 11 MC 0003 + 14 MR 0003 38 + 14 MC 0003 + 15 MC 0003 + 16 MC f623 + 19 MR f623 5e + 19 MC f623 + 20 MC f623 + 23 MW f623 2f +3c28 2fee 38e1 ae9f 0000 0000 0000 0000 f695 44b3 0000 0004 +00 02 0 0 0 0 23 +f623 2f -1 + +ddcb39 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 dc + 11 MC 0003 + 14 MR 0003 39 + 14 MC 0003 + 15 MC 0003 + 16 MC a871 + 19 MR a871 83 + 19 MC a871 + 20 MC a871 + 23 MW a871 41 +0505 9a41 a2db df75 0000 0000 0000 0000 a895 e243 0000 0004 +00 02 0 0 0 0 23 +a871 41 -1 + +ddcb3a + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0d + 11 MC 0003 + 14 MR 0003 3a + 14 MC 0003 + 15 MC 0003 + 16 MC 259e + 19 MR 259e 89 + 19 MC 259e + 20 MC 259e + 23 MW 259e 44 +0e05 0b9f 443b c01d 0000 0000 0000 0000 2591 49c3 0000 0004 +00 02 0 0 0 0 23 +259e 44 -1 + +ddcb3b + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 20 + 11 MC 0003 + 14 MR 0003 3b + 14 MC 0003 + 15 MC 0003 + 16 MC 700d + 19 MR 700d a9 + 19 MC 700d + 20 MC 700d + 23 MW 700d 54 +1b01 c795 d854 7ccf 0000 0000 0000 0000 6fed 09dc 0000 0004 +00 02 0 0 0 0 23 +700d 54 -1 + +ddcb3c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e1 + 11 MC 0003 + 14 MR 0003 3c + 14 MC 0003 + 15 MC 0003 + 16 MC f51c + 19 MR f51c d0 + 19 MC f51c + 20 MC f51c + 23 MW f51c 68 +b628 bdf7 fca3 6829 0000 0000 0000 0000 f53b 018b 0000 0004 +00 02 0 0 0 0 23 +f51c 68 -1 + +ddcb3d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 be + 11 MC 0003 + 14 MR 0003 3d + 14 MC 0003 + 15 MC 0003 + 16 MC 02de + 19 MR 02de 58 + 19 MC 02de + 20 MC 02de + 23 MW 02de 2c +2a28 6e6e cfbd 1d2c 0000 0000 0000 0000 0320 6ab0 0000 0004 +00 02 0 0 0 0 23 +02de 2c -1 + +ddcb3e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0a + 11 MC 0003 + 14 MR 0003 3e + 14 MC 0003 + 15 MC 0003 + 16 MC 7854 + 19 MR 7854 5d + 19 MC 7854 + 20 MC 7854 + 23 MW 7854 2e +392d b26e b670 b8a2 0000 0000 0000 0000 784a 7840 0000 0004 +00 02 0 0 0 0 23 +7854 2e -1 + +ddcb3f + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 31 + 11 MC 0003 + 14 MR 0003 3f + 14 MC 0003 + 15 MC 0003 + 16 MC 34b9 + 19 MR 34b9 04 + 19 MC 34b9 + 20 MC 34b9 + 23 MW 34b9 02 +0200 429d d8c0 e069 0000 0000 0000 0000 3488 7150 0000 0004 +00 02 0 0 0 0 23 +34b9 02 -1 + +ddcb40 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 bd + 11 MC 0003 + 14 MR 0003 40 + 14 MC 0003 + 15 MC 0003 + 16 MC 8bbe + 19 MR 8bbe e7 + 19 MC 8bbe +1119 f6ba 079e 0e41 0000 0000 0000 0000 8c01 cd21 0000 0004 +00 02 0 0 0 0 20 + +ddcb41 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 52 + 11 MC 0003 + 14 MR 0003 41 + 14 MC 0003 + 15 MC 0003 + 16 MC ce21 + 19 MR ce21 75 + 19 MC ce21 +2219 c4b0 575b 66b4 0000 0000 0000 0000 cdcf a25c 0000 0004 +00 02 0 0 0 0 20 + +ddcb42 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 1e + 11 MC 0003 + 14 MR 0003 42 + 14 MC 0003 + 15 MC 0003 + 16 MC f058 + 19 MR f058 90 + 19 MC f058 +af74 7720 aa95 3b0a 0000 0000 0000 0000 f03a 856a 0000 0004 +00 02 0 0 0 0 20 + +ddcb43 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 bc + 11 MC 0003 + 14 MR 0003 43 + 14 MC 0003 + 15 MC 0003 + 16 MC e872 + 19 MR e872 6b + 19 MC e872 +7f38 b699 5e71 1827 0000 0000 0000 0000 e8b6 96a8 0000 0004 +00 02 0 0 0 0 20 + +ddcb44 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e8 + 11 MC 0003 + 14 MR 0003 44 + 14 MC 0003 + 15 MC 0003 + 16 MC edf2 + 19 MR edf2 62 + 19 MC edf2 +5f7c de05 12fd f73b 0000 0000 0000 0000 ee0a 6634 0000 0004 +00 02 0 0 0 0 20 + +ddcb45 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 02 + 11 MC 0003 + 14 MR 0003 45 + 14 MC 0003 + 15 MC 0003 + 16 MC a2c0 + 19 MR a2c0 55 + 19 MC a2c0 +ea31 699c 47d3 89c3 0000 0000 0000 0000 a2be d81e 0000 0004 +00 02 0 0 0 0 20 + +ddcb46 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e2 + 11 MC 0003 + 14 MR 0003 46 + 14 MC 0003 + 15 MC 0003 + 16 MC a381 + 19 MR a381 d5 + 19 MC a381 +6030 ac1d 4173 f92a 0000 0000 0000 0000 a39f 12e5 0000 0004 +00 02 0 0 0 0 20 + +ddcb47 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7a + 11 MC 0003 + 14 MR 0003 47 + 14 MC 0003 + 15 MC 0003 + 16 MC 52a1 + 19 MR 52a1 6a + 19 MC 52a1 +1b54 f7c0 22f6 5253 0000 0000 0000 0000 5227 919d 0000 0004 +00 02 0 0 0 0 20 + +ddcb48 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 13 + 11 MC 0003 + 14 MR 0003 48 + 14 MC 0003 + 15 MC 0003 + 16 MC 2759 + 19 MR 2759 a8 + 19 MC 2759 +7274 4509 d68f 3b3d 0000 0000 0000 0000 2746 7f97 0000 0004 +00 02 0 0 0 0 20 + +ddcb49 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 94 + 11 MC 0003 + 14 MR 0003 49 + 14 MC 0003 + 15 MC 0003 + 16 MC 415a + 19 MR 415a 26 + 19 MC 415a +7f11 da22 ea9c f480 0000 0000 0000 0000 41c6 75a9 0000 0004 +00 02 0 0 0 0 20 + +ddcb4a + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 3b + 11 MC 0003 + 14 MR 0003 4a + 14 MC 0003 + 15 MC 0003 + 16 MC c026 + 19 MR c026 b5 + 19 MC c026 +f155 e6c3 5a42 8b21 0000 0000 0000 0000 bfeb e383 0000 0004 +00 02 0 0 0 0 20 + +ddcb4b + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 b0 + 11 MC 0003 + 14 MR 0003 4b + 14 MC 0003 + 15 MC 0003 + 16 MC c1e9 + 19 MR c1e9 18 + 19 MC c1e9 +1054 880a 52b2 fb1b 0000 0000 0000 0000 c239 6b40 0000 0004 +00 02 0 0 0 0 20 + +ddcb4c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 97 + 11 MC 0003 + 14 MR 0003 4c + 14 MC 0003 + 15 MC 0003 + 16 MC 86e3 + 19 MR 86e3 63 + 19 MC 86e3 +0510 bc63 f081 0a55 0000 0000 0000 0000 874c 80a3 0000 0004 +00 02 0 0 0 0 20 + +ddcb4d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 15 + 11 MC 0003 + 14 MR 0003 4d + 14 MC 0003 + 15 MC 0003 + 16 MC 7d3f + 19 MR 7d3f 60 + 19 MC 7d3f +7f7c 32b4 03d5 ef66 0000 0000 0000 0000 7d2a 03bc 0000 0004 +00 02 0 0 0 0 20 + +ddcb4e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 b0 + 11 MC 0003 + 14 MR 0003 4e + 14 MC 0003 + 15 MC 0003 + 16 MC ea8e + 19 MR ea8e 3b + 19 MC ea8e +7c39 fa92 b4d0 9f23 0000 0000 0000 0000 eade 1785 0000 0004 +00 02 0 0 0 0 20 + +ddcb4f + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 8b + 11 MC 0003 + 14 MR 0003 4f + 14 MC 0003 + 15 MC 0003 + 16 MC 884b + 19 MR 884b 4c + 19 MC 884b +725c 257b db73 2478 0000 0000 0000 0000 88c0 f151 0000 0004 +00 02 0 0 0 0 20 + +ddcb50 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 12 + 11 MC 0003 + 14 MR 0003 50 + 14 MC 0003 + 15 MC 0003 + 16 MC db04 + 19 MR db04 00 + 19 MC db04 +355c 8e51 406c 2e3c 0000 0000 0000 0000 daf2 413c 0000 0004 +00 02 0 0 0 0 20 + +ddcb51 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 18 + 11 MC 0003 + 14 MR 0003 51 + 14 MC 0003 + 15 MC 0003 + 16 MC 84ca + 19 MR 84ca 1c + 19 MC 84ca +a610 ba85 c88c e86c 0000 0000 0000 0000 84b2 cd8e 0000 0004 +00 02 0 0 0 0 20 + +ddcb52 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 42 + 11 MC 0003 + 14 MR 0003 52 + 14 MC 0003 + 15 MC 0003 + 16 MC 6198 + 19 MR 6198 53 + 19 MC 6198 +cb74 1220 1103 a868 0000 0000 0000 0000 6156 cfac 0000 0004 +00 02 0 0 0 0 20 + +ddcb53 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e3 + 11 MC 0003 + 14 MR 0003 53 + 14 MC 0003 + 15 MC 0003 + 16 MC ae28 + 19 MR ae28 d6 + 19 MC ae28 +5e39 569e f76d 88c6 0000 0000 0000 0000 ae45 623e 0000 0004 +00 02 0 0 0 0 20 + +ddcb54 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7d + 11 MC 0003 + 14 MR 0003 54 + 14 MC 0003 + 15 MC 0003 + 16 MC f052 + 19 MR f052 5d + 19 MC f052 +c331 76fe f1ff 416e 0000 0000 0000 0000 efd5 7576 0000 0004 +00 02 0 0 0 0 20 + +ddcb55 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 88 + 11 MC 0003 + 14 MR 0003 55 + 14 MC 0003 + 15 MC 0003 + 16 MC f2da + 19 MR f2da 03 + 19 MC f2da +7074 dcd0 8345 d498 0000 0000 0000 0000 f352 a88b 0000 0004 +00 02 0 0 0 0 20 + +ddcb56 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 57 + 11 MC 0003 + 14 MR 0003 56 + 14 MC 0003 + 15 MC 0003 + 16 MC 6d87 + 19 MR 6d87 61 + 19 MC 6d87 +917c 2cb8 571c f4fd 0000 0000 0000 0000 6d30 aec2 0000 0004 +00 02 0 0 0 0 20 + +ddcb57 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 06 + 11 MC 0003 + 14 MR 0003 57 + 14 MC 0003 + 15 MC 0003 + 16 MC 5839 + 19 MR 5839 1d + 19 MC 5839 +3c19 541a 027c c0b4 0000 0000 0000 0000 5833 160a 0000 0004 +00 02 0 0 0 0 20 + +ddcb58 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 83 + 11 MC 0003 + 14 MR 0003 58 + 14 MC 0003 + 15 MC 0003 + 16 MC 69c9 + 19 MR 69c9 0f + 19 MC 69c9 +c638 e1a8 9d6c bec3 0000 0000 0000 0000 6a46 b66c 0000 0004 +00 02 0 0 0 0 20 + +ddcb59 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 db + 11 MC 0003 + 14 MR 0003 59 + 14 MC 0003 + 15 MC 0003 + 16 MC 9170 + 19 MR 9170 10 + 19 MC 9170 +ad55 9bda b7ee 63c4 0000 0000 0000 0000 9195 9703 0000 0004 +00 02 0 0 0 0 20 + +ddcb5a + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d1 + 11 MC 0003 + 14 MR 0003 5a + 14 MC 0003 + 15 MC 0003 + 16 MC 0db1 + 19 MR 0db1 be + 19 MC 0db1 +8018 5105 36b0 a37c 0000 0000 0000 0000 0de0 ce7f 0000 0004 +00 02 0 0 0 0 20 + +ddcb5b + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d5 + 11 MC 0003 + 14 MR 0003 5b + 14 MC 0003 + 15 MC 0003 + 16 MC 6282 + 19 MR 6282 67 + 19 MC 6282 +2a75 083d 1409 06ba 0000 0000 0000 0000 62ad baff 0000 0004 +00 02 0 0 0 0 20 + +ddcb5c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 5c + 11 MC 0003 + 14 MR 0003 5c + 14 MC 0003 + 15 MC 0003 + 16 MC 9e22 + 19 MR 9e22 c9 + 19 MC 9e22 +4c18 e502 d23c 6da8 0000 0000 0000 0000 9dc6 6f04 0000 0004 +00 02 0 0 0 0 20 + +ddcb5d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ff + 11 MC 0003 + 14 MR 0003 5d + 14 MC 0003 + 15 MC 0003 + 16 MC d192 + 19 MR d192 0d + 19 MC d192 +7e11 511b 3cfa 60d3 0000 0000 0000 0000 d193 3fe9 0000 0004 +00 02 0 0 0 0 20 + +ddcb5e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 62 + 11 MC 0003 + 14 MR 0003 5e + 14 MC 0003 + 15 MC 0003 + 16 MC ed76 + 19 MR ed76 a7 + 19 MC ed76 +ce7d 0235 e2b1 7a4c 0000 0000 0000 0000 ed14 d0d6 0000 0004 +00 02 0 0 0 0 20 + +ddcb5f + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 3f + 11 MC 0003 + 14 MR 0003 5f + 14 MC 0003 + 15 MC 0003 + 16 MC df85 + 19 MR df85 9e + 19 MC df85 +0919 20a8 52e1 d783 0000 0000 0000 0000 df46 da41 0000 0004 +00 02 0 0 0 0 20 + +ddcb60 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 65 + 11 MC 0003 + 14 MR 0003 60 + 14 MC 0003 + 15 MC 0003 + 16 MC 3307 + 19 MR 3307 2e + 19 MC 3307 +4274 0713 dc90 2c89 0000 0000 0000 0000 32a2 c4d4 0000 0004 +00 02 0 0 0 0 20 + +ddcb61 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 a8 + 11 MC 0003 + 14 MR 0003 61 + 14 MC 0003 + 15 MC 0003 + 16 MC 3673 + 19 MR 3673 bc + 19 MC 3673 +1b30 1403 8b9b c221 0000 0000 0000 0000 36cb 93d4 0000 0004 +00 02 0 0 0 0 20 + +ddcb62 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d9 + 11 MC 0003 + 14 MR 0003 62 + 14 MC 0003 + 15 MC 0003 + 16 MC 0aa5 + 19 MR 0aa5 ea + 19 MC 0aa5 +365d 4055 650a 3f98 0000 0000 0000 0000 0acc a102 0000 0004 +00 02 0 0 0 0 20 + +ddcb63 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 79 + 11 MC 0003 + 14 MR 0003 63 + 14 MC 0003 + 15 MC 0003 + 16 MC e6f2 + 19 MR e6f2 83 + 19 MC e6f2 +6574 08df 3ceb 6d24 0000 0000 0000 0000 e679 f98e 0000 0004 +00 02 0 0 0 0 20 + +ddcb64 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 71 + 11 MC 0003 + 14 MR 0003 64 + 14 MC 0003 + 15 MC 0003 + 16 MC ed6c + 19 MR ed6c 52 + 19 MC ed6c +3c38 e2a7 6da9 c346 0000 0000 0000 0000 ecfb 85b6 0000 0004 +00 02 0 0 0 0 20 + +ddcb65 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 67 + 11 MC 0003 + 14 MR 0003 65 + 14 MC 0003 + 15 MC 0003 + 16 MC 77e0 + 19 MR 77e0 f5 + 19 MC 77e0 +0931 0abb 3afa 91f5 0000 0000 0000 0000 7779 aef5 0000 0004 +00 02 0 0 0 0 20 + +ddcb66 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 63 + 11 MC 0003 + 14 MR 0003 66 + 14 MC 0003 + 15 MC 0003 + 16 MC ee78 + 19 MR ee78 70 + 19 MC ee78 +cc38 d301 9b66 40fb 0000 0000 0000 0000 ee15 0d23 0000 0004 +00 02 0 0 0 0 20 + +ddcb67 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d7 + 11 MC 0003 + 14 MR 0003 67 + 14 MC 0003 + 15 MC 0003 + 16 MC ee78 + 19 MR ee78 06 + 19 MC ee78 +ec7d 342f be3e a79b 0000 0000 0000 0000 eea1 dfae 0000 0004 +00 02 0 0 0 0 20 + +ddcb68 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 b1 + 11 MC 0003 + 14 MR 0003 68 + 14 MC 0003 + 15 MC 0003 + 16 MC e919 + 19 MR e919 20 + 19 MC e919 +8e39 0063 49ad b7d4 0000 0000 0000 0000 e968 864e 0000 0004 +00 02 0 0 0 0 20 + +ddcb69 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e8 + 11 MC 0003 + 14 MR 0003 69 + 14 MC 0003 + 15 MC 0003 + 16 MC 33dc + 19 MR 33dc 4f + 19 MC 33dc +9f75 42b5 74fe 1116 0000 0000 0000 0000 33f4 46c2 0000 0004 +00 02 0 0 0 0 20 + +ddcb6a + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 33 + 11 MC 0003 + 14 MR 0003 6a + 14 MC 0003 + 15 MC 0003 + 16 MC 86e9 + 19 MR 86e9 1c + 19 MC 86e9 +4654 0bd8 0018 1ac3 0000 0000 0000 0000 86b6 1dd2 0000 0004 +00 02 0 0 0 0 20 + +ddcb6b + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 11 + 11 MC 0003 + 14 MR 0003 6b + 14 MC 0003 + 15 MC 0003 + 16 MC 188c + 19 MR 188c bc + 19 MC 188c +7a18 f79f a78e f867 0000 0000 0000 0000 187b 0023 0000 0004 +00 02 0 0 0 0 20 + +ddcb6c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 5e + 11 MC 0003 + 14 MR 0003 6c + 14 MC 0003 + 15 MC 0003 + 16 MC 3e7f + 19 MR 3e7f 2a + 19 MC 3e7f +dd39 1f1e c1e1 0ea7 0000 0000 0000 0000 3e21 f544 0000 0004 +00 02 0 0 0 0 20 + +ddcb6d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 dd + 11 MC 0003 + 14 MR 0003 6d + 14 MC 0003 + 15 MC 0003 + 16 MC e2f1 + 19 MR e2f1 41 + 19 MC e2f1 +de75 9ae4 fd24 b3c2 0000 0000 0000 0000 e314 ad84 0000 0004 +00 02 0 0 0 0 20 + +ddcb6e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 b2 + 11 MC 0003 + 14 MR 0003 6e + 14 MC 0003 + 15 MC 0003 + 16 MC 3038 + 19 MR 3038 3f + 19 MC 3038 +ca31 9f16 c700 1dce 0000 0000 0000 0000 3086 d68e 0000 0004 +00 02 0 0 0 0 20 + +ddcb6f + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 be + 11 MC 0003 + 14 MR 0003 6f + 14 MC 0003 + 15 MC 0003 + 16 MC fbd9 + 19 MR fbd9 56 + 19 MC fbd9 +d47d 0b39 3e2e c06e 0000 0000 0000 0000 fc1b d592 0000 0004 +00 02 0 0 0 0 20 + +ddcb70 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 b5 + 11 MC 0003 + 14 MR 0003 70 + 14 MC 0003 + 15 MC 0003 + 16 MC 03e1 + 19 MR 03e1 74 + 19 MC 03e1 +f911 09b8 43f8 2a76 0000 0000 0000 0000 042c 7f2d 0000 0004 +00 02 0 0 0 0 20 + +ddcb71 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f7 + 11 MC 0003 + 14 MR 0003 71 + 14 MC 0003 + 15 MC 0003 + 16 MC 1b2a + 19 MR 1b2a 08 + 19 MC 1b2a +ac5c 36ad 34cb f950 0000 0000 0000 0000 1b33 aa23 0000 0004 +00 02 0 0 0 0 20 + +ddcb72 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 22 + 11 MC 0003 + 14 MR 0003 72 + 14 MC 0003 + 15 MC 0003 + 16 MC ce47 + 19 MR ce47 08 + 19 MC ce47 +b15d f1e4 9984 c7fb 0000 0000 0000 0000 ce25 c5b6 0000 0004 +00 02 0 0 0 0 20 + +ddcb73 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 12 + 11 MC 0003 + 14 MR 0003 73 + 14 MC 0003 + 15 MC 0003 + 16 MC 6454 + 19 MR 6454 3c + 19 MC 6454 +2174 592d f406 e21f 0000 0000 0000 0000 6442 cf58 0000 0004 +00 02 0 0 0 0 20 + +ddcb74 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 08 + 11 MC 0003 + 14 MR 0003 74 + 14 MC 0003 + 15 MC 0003 + 16 MC 7dc9 + 19 MR 7dc9 be + 19 MC 7dc9 +667c 64c1 dbe5 eb48 0000 0000 0000 0000 7dc1 c1fb 0000 0004 +00 02 0 0 0 0 20 + +ddcb75 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 5b + 11 MC 0003 + 14 MR 0003 75 + 14 MC 0003 + 15 MC 0003 + 16 MC 6108 + 19 MR 6108 cf + 19 MC 6108 +8730 580e 00dd f4c6 0000 0000 0000 0000 60ad 9b60 0000 0004 +00 02 0 0 0 0 20 + +ddcb76 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 73 + 11 MC 0003 + 14 MR 0003 76 + 14 MC 0003 + 15 MC 0003 + 16 MC 7efd + 19 MR 7efd 1e + 19 MC 7efd +657c 5cc2 3058 e258 0000 0000 0000 0000 7e8a b296 0000 0004 +00 02 0 0 0 0 20 + +ddcb77 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7f + 11 MC 0003 + 14 MR 0003 77 + 14 MC 0003 + 15 MC 0003 + 16 MC 05b6 + 19 MR 05b6 97 + 19 MC 05b6 +e354 47a0 c510 cf0a 0000 0000 0000 0000 0537 b242 0000 0004 +00 02 0 0 0 0 20 + +ddcb78 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 70 + 11 MC 0003 + 14 MR 0003 78 + 14 MC 0003 + 15 MC 0003 + 16 MC 9407 + 19 MR 9407 76 + 19 MC 9407 +4255 24f6 1632 8a4f 0000 0000 0000 0000 9397 846c 0000 0004 +00 02 0 0 0 0 20 + +ddcb79 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c3 + 11 MC 0003 + 14 MR 0003 79 + 14 MC 0003 + 15 MC 0003 + 16 MC 41a1 + 19 MR 41a1 b8 + 19 MC 41a1 +e690 eeaa 41f7 5da2 0000 0000 0000 0000 41de 4189 0000 0004 +00 02 0 0 0 0 20 + +ddcb7a + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 3f + 11 MC 0003 + 14 MR 0003 7a + 14 MC 0003 + 15 MC 0003 + 16 MC 0ae8 + 19 MR 0ae8 eb + 19 MC 0ae8 +ca99 56aa 6a06 6cd7 0000 0000 0000 0000 0aa9 9812 0000 0004 +00 02 0 0 0 0 20 + +ddcb7b + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 88 + 11 MC 0003 + 14 MR 0003 7b + 14 MC 0003 + 15 MC 0003 + 16 MC 4fc8 + 19 MR 4fc8 22 + 19 MC 4fc8 +ae5d 0227 721f 52a1 0000 0000 0000 0000 5040 b98a 0000 0004 +00 02 0 0 0 0 20 + +ddcb7c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9e + 11 MC 0003 + 14 MR 0003 7c + 14 MC 0003 + 15 MC 0003 + 16 MC 6821 + 19 MR 6821 3a + 19 MC 6821 +8a7c a2f1 239a d5cc 0000 0000 0000 0000 6883 b050 0000 0004 +00 02 0 0 0 0 20 + +ddcb7d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 29 + 11 MC 0003 + 14 MR 0003 7d + 14 MC 0003 + 15 MC 0003 + 16 MC b04a + 19 MR b04a 2c + 19 MC b04a +c375 cf33 1010 98e6 0000 0000 0000 0000 b021 0356 0000 0004 +00 02 0 0 0 0 20 + +ddcb7e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 4f + 11 MC 0003 + 14 MR 0003 7e + 14 MC 0003 + 15 MC 0003 + 16 MC cf3f + 19 MR cf3f f2 + 19 MC cf3f +9a99 2f6e 0d0d a83f 0000 0000 0000 0000 cef0 8c15 0000 0004 +00 02 0 0 0 0 20 + +ddcb7f + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 75 + 11 MC 0003 + 14 MR 0003 7f + 14 MC 0003 + 15 MC 0003 + 16 MC 5f37 + 19 MR 5f37 a2 + 19 MC 5f37 +5399 1f4e 4837 21b6 0000 0000 0000 0000 5ec2 80c3 0000 0004 +00 02 0 0 0 0 20 + +ddcb80 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 70 + 11 MC 0003 + 14 MR 0003 80 + 14 MC 0003 + 15 MC 0003 + 16 MC ad35 + 19 MR ad35 30 + 19 MC ad35 + 20 MC ad35 + 23 MW ad35 30 +6319 30f9 c84b bcf2 0000 0000 0000 0000 acc5 a4ed 0000 0004 +00 02 0 0 0 0 23 + +ddcb81 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 2a + 11 MC 0003 + 14 MR 0003 81 + 14 MC 0003 + 15 MC 0003 + 16 MC bdfd + 19 MR bdfd 24 + 19 MC bdfd + 20 MC bdfd + 23 MW bdfd 24 +fae1 5a24 9502 dc9b 0000 0000 0000 0000 bdd3 1a52 0000 0004 +00 02 0 0 0 0 23 + +ddcb82 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9a + 11 MC 0003 + 14 MR 0003 82 + 14 MC 0003 + 15 MC 0003 + 16 MC 5e0e + 19 MR 5e0e 51 + 19 MC 5e0e + 20 MC 5e0e + 23 MW 5e0e 50 +daf6 3260 50ac 1d47 0000 0000 0000 0000 5e74 35e2 0000 0004 +00 02 0 0 0 0 23 +5e0e 50 -1 + +ddcb83 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0e + 11 MC 0003 + 14 MR 0003 83 + 14 MC 0003 + 15 MC 0003 + 16 MC 344f + 19 MR 344f 01 + 19 MC 344f + 20 MC 344f + 23 MW 344f 00 +8e7c 5586 8c00 fb00 0000 0000 0000 0000 3441 d365 0000 0004 +00 02 0 0 0 0 23 +344f 00 -1 + +ddcb84 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 47 + 11 MC 0003 + 14 MR 0003 84 + 14 MC 0003 + 15 MC 0003 + 16 MC 016a + 19 MR 016a b0 + 19 MC 016a + 20 MC 016a + 23 MW 016a b0 +c1b3 4874 c535 b01c 0000 0000 0000 0000 0123 dd28 0000 0004 +00 02 0 0 0 0 23 + +ddcb85 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 6c + 11 MC 0003 + 14 MR 0003 85 + 14 MC 0003 + 15 MC 0003 + 16 MC 0c0f + 19 MR 0c0f de + 19 MC 0c0f + 20 MC 0c0f + 23 MW 0c0f de +0928 b0db 4e07 a7de 0000 0000 0000 0000 0ba3 c61c 0000 0004 +00 02 0 0 0 0 23 + +ddcb86 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 5c + 11 MC 0003 + 14 MR 0003 86 + 14 MC 0003 + 15 MC 0003 + 16 MC 1121 + 19 MR 1121 7c + 19 MC 1121 + 20 MC 1121 + 23 MW 1121 7c +4515 de09 3ce7 1fde 0000 0000 0000 0000 10c5 33ed 0000 0004 +00 02 0 0 0 0 23 + +ddcb87 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 02 + 11 MC 0003 + 14 MR 0003 87 + 14 MC 0003 + 15 MC 0003 + 16 MC ede8 + 19 MR ede8 c4 + 19 MC ede8 + 20 MC ede8 + 23 MW ede8 c4 +c45e a733 d1dd 1603 0000 0000 0000 0000 ede6 e5fb 0000 0004 +00 02 0 0 0 0 23 + +ddcb88 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9b + 11 MC 0003 + 14 MR 0003 88 + 14 MC 0003 + 15 MC 0003 + 16 MC 8729 + 19 MR 8729 7c + 19 MC 8729 + 20 MC 8729 + 23 MW 8729 7c +e4fa 7c25 c266 1b13 0000 0000 0000 0000 878e e695 0000 0004 +00 02 0 0 0 0 23 + +ddcb89 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 2b + 11 MC 0003 + 14 MR 0003 89 + 14 MC 0003 + 15 MC 0003 + 16 MC 8f69 + 19 MR 8f69 cf + 19 MC 8f69 + 20 MC 8f69 + 23 MW 8f69 cd +933b 6fcd a3a8 2634 0000 0000 0000 0000 8f3e 7727 0000 0004 +00 02 0 0 0 0 23 +8f69 cd -1 + +ddcb8a + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0a + 11 MC 0003 + 14 MR 0003 8a + 14 MC 0003 + 15 MC 0003 + 16 MC 39b3 + 19 MR 39b3 ea + 19 MC 39b3 + 20 MC 39b3 + 23 MW 39b3 e8 +6759 ad1e e871 ce52 0000 0000 0000 0000 39a9 38a0 0000 0004 +00 02 0 0 0 0 23 +39b3 e8 -1 + +ddcb8b + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 62 + 11 MC 0003 + 14 MR 0003 8b + 14 MC 0003 + 15 MC 0003 + 16 MC 16e7 + 19 MR 16e7 8a + 19 MC 16e7 + 20 MC 16e7 + 23 MW 16e7 88 +3da2 1833 0388 07e9 0000 0000 0000 0000 1685 d790 0000 0004 +00 02 0 0 0 0 23 +16e7 88 -1 + +ddcb8c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e8 + 11 MC 0003 + 14 MR 0003 8c + 14 MC 0003 + 15 MC 0003 + 16 MC c68a + 19 MR c68a 3e + 19 MC c68a + 20 MC c68a + 23 MW c68a 3c +a625 ed31 3946 3cdc 0000 0000 0000 0000 c6a2 7ad6 0000 0004 +00 02 0 0 0 0 23 +c68a 3c -1 + +ddcb8d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 cc + 11 MC 0003 + 14 MR 0003 8d + 14 MC 0003 + 15 MC 0003 + 16 MC 22b2 + 19 MR 22b2 9e + 19 MC 22b2 + 20 MC 22b2 + 23 MW 22b2 9c +016b 5802 a683 259c 0000 0000 0000 0000 22e6 33bb 0000 0004 +00 02 0 0 0 0 23 +22b2 9c -1 + +ddcb8e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0a + 11 MC 0003 + 14 MR 0003 8e + 14 MC 0003 + 15 MC 0003 + 16 MC d2f2 + 19 MR d2f2 03 + 19 MC d2f2 + 20 MC d2f2 + 23 MW d2f2 01 +f4f4 f3a8 2843 82cb 0000 0000 0000 0000 d2e8 d367 0000 0004 +00 02 0 0 0 0 23 +d2f2 01 -1 + +ddcb8f + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7b + 11 MC 0003 + 14 MR 0003 8f + 14 MC 0003 + 15 MC 0003 + 16 MC 4079 + 19 MR 4079 96 + 19 MC 4079 + 20 MC 4079 + 23 MW 4079 94 +941a 8ae2 269b cb2f 0000 0000 0000 0000 3ffe 75dd 0000 0004 +00 02 0 0 0 0 23 +4079 94 -1 + +ddcb90 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 04 + 11 MC 0003 + 14 MR 0003 90 + 14 MC 0003 + 15 MC 0003 + 16 MC b505 + 19 MR b505 46 + 19 MC b505 + 20 MC b505 + 23 MW b505 42 +c167 42fc 42e7 9e14 0000 0000 0000 0000 b501 84fe 0000 0004 +00 02 0 0 0 0 23 +b505 42 -1 + +ddcb91 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 11 + 11 MC 0003 + 14 MR 0003 91 + 14 MC 0003 + 15 MC 0003 + 16 MC c998 + 19 MR c998 83 + 19 MC c998 + 20 MC c998 + 23 MW c998 83 +e85e cc83 d249 ea3b 0000 0000 0000 0000 c987 c4d1 0000 0004 +00 02 0 0 0 0 23 + +ddcb92 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 4b + 11 MC 0003 + 14 MR 0003 92 + 14 MC 0003 + 15 MC 0003 + 16 MC 91b1 + 19 MR 91b1 aa + 19 MC 91b1 + 20 MC 91b1 + 23 MW 91b1 aa +28a3 85ff aa28 47a5 0000 0000 0000 0000 9166 e755 0000 0004 +00 02 0 0 0 0 23 + +ddcb93 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 03 + 11 MC 0003 + 14 MR 0003 93 + 14 MC 0003 + 15 MC 0003 + 16 MC ac31 + 19 MR ac31 93 + 19 MC ac31 + 20 MC ac31 + 23 MW ac31 93 +58ac c88b 6d93 dbdd 0000 0000 0000 0000 ac2e 5199 0000 0004 +00 02 0 0 0 0 23 + +ddcb94 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 11 + 11 MC 0003 + 14 MR 0003 94 + 14 MC 0003 + 15 MC 0003 + 16 MC 5e95 + 19 MR 5e95 b7 + 19 MC 5e95 + 20 MC 5e95 + 23 MW 5e95 b3 +e38d 35a5 8d07 b3b8 0000 0000 0000 0000 5e84 5f24 0000 0004 +00 02 0 0 0 0 23 +5e95 b3 -1 + +ddcb95 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e6 + 11 MC 0003 + 14 MR 0003 95 + 14 MC 0003 + 15 MC 0003 + 16 MC fb5a + 19 MR fb5a c6 + 19 MC fb5a + 20 MC fb5a + 23 MW fb5a c2 +41f4 9536 dd7d 49c2 0000 0000 0000 0000 fb74 f17d 0000 0004 +00 02 0 0 0 0 23 +fb5a c2 -1 + +ddcb96 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d5 + 11 MC 0003 + 14 MR 0003 96 + 14 MC 0003 + 15 MC 0003 + 16 MC 7a56 + 19 MR 7a56 ae + 19 MC 7a56 + 20 MC 7a56 + 23 MW 7a56 aa +4a9e 42ef 32d7 18cf 0000 0000 0000 0000 7a81 bb1d 0000 0004 +00 02 0 0 0 0 23 +7a56 aa -1 + +ddcb97 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 92 + 11 MC 0003 + 14 MR 0003 97 + 14 MC 0003 + 15 MC 0003 + 16 MC 840e + 19 MR 840e 23 + 19 MC 840e + 20 MC 840e + 23 MW 840e 23 +23d3 89f0 73c7 0b1a 0000 0000 0000 0000 847c 4b86 0000 0004 +00 02 0 0 0 0 23 + +ddcb98 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 dc + 11 MC 0003 + 14 MR 0003 98 + 14 MC 0003 + 15 MC 0003 + 16 MC 03fa + 19 MR 03fa 58 + 19 MC 03fa + 20 MC 03fa + 23 MW 03fa 50 +6e22 50fd 9fdc 3aed 0000 0000 0000 0000 041e fd79 0000 0004 +00 02 0 0 0 0 23 +03fa 50 -1 + +ddcb99 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 6d + 11 MC 0003 + 14 MR 0003 99 + 14 MC 0003 + 15 MC 0003 + 16 MC 0a6a + 19 MR 0a6a ce + 19 MC 0a6a + 20 MC 0a6a + 23 MW 0a6a c6 +a132 38c6 1515 2830 0000 0000 0000 0000 09fd 0473 0000 0004 +00 02 0 0 0 0 23 +0a6a c6 -1 + +ddcb9a + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 8a + 11 MC 0003 + 14 MR 0003 9a + 14 MC 0003 + 15 MC 0003 + 16 MC 6832 + 19 MR 6832 a8 + 19 MC 6832 + 20 MC 6832 + 23 MW 6832 a0 +783d 8f69 a0c4 e38f 0000 0000 0000 0000 68a8 391d 0000 0004 +00 02 0 0 0 0 23 +6832 a0 -1 + +ddcb9b + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 97 + 11 MC 0003 + 14 MR 0003 9b + 14 MC 0003 + 15 MC 0003 + 16 MC 0686 + 19 MR 0686 62 + 19 MC 0686 + 20 MC 0686 + 23 MW 0686 62 +955a c7b0 5362 aec6 0000 0000 0000 0000 06ef e991 0000 0004 +00 02 0 0 0 0 23 + +ddcb9c + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 54 + 11 MC 0003 + 14 MR 0003 9c + 14 MC 0003 + 15 MC 0003 + 16 MC 84cf + 19 MR 84cf 1b + 19 MC 84cf + 20 MC 84cf + 23 MW 84cf 13 +af69 f896 e791 13ee 0000 0000 0000 0000 847b 59ed 0000 0004 +00 02 0 0 0 0 23 +84cf 13 -1 + +ddcb9d + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0f + 11 MC 0003 + 14 MR 0003 9d + 14 MC 0003 + 15 MC 0003 + 16 MC e92f + 19 MR e92f e8 + 19 MC e92f + 20 MC e92f + 23 MW e92f e0 +7d1e 5009 1248 38e0 0000 0000 0000 0000 e920 4fe6 0000 0004 +00 02 0 0 0 0 23 +e92f e0 -1 + +ddcb9e + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 b5 + 11 MC 0003 + 14 MR 0003 9e + 14 MC 0003 + 15 MC 0003 + 16 MC d870 + 19 MR d870 ee + 19 MC d870 + 20 MC d870 + 23 MW d870 e6 +c207 b47c 0e16 e17f 0000 0000 0000 0000 d8bb bb99 0000 0004 +00 02 0 0 0 0 23 +d870 e6 -1 + +ddcb9f + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 b8 + 11 MC 0003 + 14 MR 0003 9f + 14 MC 0003 + 15 MC 0003 + 16 MC e5f4 + 19 MR e5f4 a6 + 19 MC e5f4 + 20 MC e5f4 + 23 MW e5f4 a6 +a66b 7537 46bb 13c0 0000 0000 0000 0000 e63c 1d98 0000 0004 +00 02 0 0 0 0 23 + +ddcba0 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 02 + 11 MC 0003 + 14 MR 0003 a0 + 14 MC 0003 + 15 MC 0003 + 16 MC a2f2 + 19 MR a2f2 39 + 19 MC a2f2 + 20 MC a2f2 + 23 MW a2f2 29 +0bbe 2900 8609 5352 0000 0000 0000 0000 a2f0 da02 0000 0004 +00 02 0 0 0 0 23 +a2f2 29 -1 + +ddcba1 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f5 + 11 MC 0003 + 14 MR 0003 a1 + 14 MC 0003 + 15 MC 0003 + 16 MC 45b0 + 19 MR 45b0 d2 + 19 MC 45b0 + 20 MC 45b0 + 23 MW 45b0 c2 +ad0a aac2 0f2d 832c 0000 0000 0000 0000 45bb a22d 0000 0004 +00 02 0 0 0 0 23 +45b0 c2 -1 + +ddcba2 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0e + 11 MC 0003 + 14 MR 0003 a2 + 14 MC 0003 + 15 MC 0003 + 16 MC 6299 + 19 MR 6299 a1 + 19 MC 6299 + 20 MC 6299 + 23 MW 6299 a1 +f586 4a7d a1ab 26fc 0000 0000 0000 0000 628b 6c4d 0000 0004 +00 02 0 0 0 0 23 + +ddcba3 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 2e + 11 MC 0003 + 14 MR 0003 a3 + 14 MC 0003 + 15 MC 0003 + 16 MC 043b + 19 MR 043b 04 + 19 MC 043b + 20 MC 043b + 23 MW 043b 04 +de5b a284 d404 c92d 0000 0000 0000 0000 040d 12c0 0000 0004 +00 02 0 0 0 0 23 + +ddcba4 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 03 + 11 MC 0003 + 14 MR 0003 a4 + 14 MC 0003 + 15 MC 0003 + 16 MC fe50 + 19 MR fe50 27 + 19 MC fe50 + 20 MC fe50 + 23 MW fe50 27 +dfaa ae40 02c3 27b5 0000 0000 0000 0000 fe4d faa3 0000 0004 +00 02 0 0 0 0 23 + +ddcba5 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f6 + 11 MC 0003 + 14 MR 0003 a5 + 14 MC 0003 + 15 MC 0003 + 16 MC 7b1d + 19 MR 7b1d 6b + 19 MC 7b1d + 20 MC 7b1d + 23 MW 7b1d 6b +1a15 04cb 4352 ee6b 0000 0000 0000 0000 7b27 38a0 0000 0004 +00 02 0 0 0 0 23 + +ddcba6 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 27 + 11 MC 0003 + 14 MR 0003 a6 + 14 MC 0003 + 15 MC 0003 + 16 MC ae42 + 19 MR ae42 8f + 19 MC ae42 + 20 MC ae42 + 23 MW ae42 8f +5e46 b98a b822 04ca 0000 0000 0000 0000 ae1b 8730 0000 0004 +00 02 0 0 0 0 23 + +ddcba7 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f2 + 11 MC 0003 + 14 MR 0003 a7 + 14 MC 0003 + 15 MC 0003 + 16 MC 5eba + 19 MR 5eba 87 + 19 MC 5eba + 20 MC 5eba + 23 MW 5eba 87 +87ed 7b11 8cb0 eb3d 0000 0000 0000 0000 5ec8 97cf 0000 0004 +00 02 0 0 0 0 23 + +ddcba8 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d0 + 11 MC 0003 + 14 MR 0003 a8 + 14 MC 0003 + 15 MC 0003 + 16 MC e81f + 19 MR e81f 7e + 19 MC e81f + 20 MC e81f + 23 MW e81f 5e +5173 5e89 070d e8f9 0000 0000 0000 0000 e84f 55f0 0000 0004 +00 02 0 0 0 0 23 +e81f 5e -1 + +ddcba9 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9d + 11 MC 0003 + 14 MR 0003 a9 + 14 MC 0003 + 15 MC 0003 + 16 MC 0f7a + 19 MR 0f7a 1f + 19 MC 0f7a + 20 MC 0f7a + 23 MW 0f7a 1f +4fb8 cc1f 3e9a 2673 0000 0000 0000 0000 0fdd aef2 0000 0004 +00 02 0 0 0 0 23 + +ddcbaa + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9f + 11 MC 0003 + 14 MR 0003 aa + 14 MC 0003 + 15 MC 0003 + 16 MC 66e6 + 19 MR 66e6 50 + 19 MC 66e6 + 20 MC 66e6 + 23 MW 66e6 50 +fe76 6f96 50eb 0b21 0000 0000 0000 0000 6747 07ba 0000 0004 +00 02 0 0 0 0 23 + +ddcbab + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 16 + 11 MC 0003 + 14 MR 0003 ab + 14 MC 0003 + 15 MC 0003 + 16 MC 6698 + 19 MR 6698 eb + 19 MC 6698 + 20 MC 6698 + 23 MW 6698 cb +2eb4 36f1 8fcb 36af 0000 0000 0000 0000 6682 9d60 0000 0004 +00 02 0 0 0 0 23 +6698 cb -1 + +ddcbac + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c4 + 11 MC 0003 + 14 MR 0003 ac + 14 MC 0003 + 15 MC 0003 + 16 MC a4a1 + 19 MR a4a1 44 + 19 MC a4a1 + 20 MC a4a1 + 23 MW a4a1 44 +af32 8ca8 6558 44d9 0000 0000 0000 0000 a4dd cd1f 0000 0004 +00 02 0 0 0 0 23 + +ddcbad + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 49 + 11 MC 0003 + 14 MR 0003 ad + 14 MC 0003 + 15 MC 0003 + 16 MC ef3e + 19 MR ef3e 76 + 19 MC ef3e + 20 MC ef3e + 23 MW ef3e 56 +fcc9 69a7 0eed ea56 0000 0000 0000 0000 eef5 3ed2 0000 0004 +00 02 0 0 0 0 23 +ef3e 56 -1 + +ddcbae + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 6e + 11 MC 0003 + 14 MR 0003 ae + 14 MC 0003 + 15 MC 0003 + 16 MC b374 + 19 MR b374 5a + 19 MC b374 + 20 MC b374 + 23 MW b374 5a +5f7a 9c20 f013 c4b7 0000 0000 0000 0000 b306 15dd 0000 0004 +00 02 0 0 0 0 23 + +ddcbaf + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c2 + 11 MC 0003 + 14 MR 0003 af + 14 MC 0003 + 15 MC 0003 + 16 MC 35db + 19 MR 35db 15 + 19 MC 35db + 20 MC 35db + 23 MW 35db 15 +151e 2583 51fa d427 0000 0000 0000 0000 3619 9cef 0000 0004 +00 02 0 0 0 0 23 + +ddcbb0 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 47 + 11 MC 0003 + 14 MR 0003 b0 + 14 MC 0003 + 15 MC 0003 + 16 MC 591e + 19 MR 591e 1e + 19 MC 591e + 20 MC 591e + 23 MW 591e 1e +f43e 1e57 3bf3 0933 0000 0000 0000 0000 58d7 d89f 0000 0004 +00 02 0 0 0 0 23 + +ddcbb1 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 86 + 11 MC 0003 + 14 MR 0003 b1 + 14 MC 0003 + 15 MC 0003 + 16 MC ad58 + 19 MR ad58 46 + 19 MC ad58 + 20 MC ad58 + 23 MW ad58 06 +35ef bb06 db46 046c 0000 0000 0000 0000 add2 2b6e 0000 0004 +00 02 0 0 0 0 23 +ad58 06 -1 + +ddcbb2 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 70 + 11 MC 0003 + 14 MR 0003 b2 + 14 MC 0003 + 15 MC 0003 + 16 MC e840 + 19 MR e840 48 + 19 MC e840 + 20 MC e840 + 23 MW e840 08 +c26c fd32 087f ab6c 0000 0000 0000 0000 e7d0 501f 0000 0004 +00 02 0 0 0 0 23 +e840 08 -1 + +ddcbb3 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 de + 11 MC 0003 + 14 MR 0003 b3 + 14 MC 0003 + 15 MC 0003 + 16 MC 53d9 + 19 MR 53d9 06 + 19 MC 53d9 + 20 MC 53d9 + 23 MW 53d9 06 +36ca b434 e206 f805 0000 0000 0000 0000 53fb b191 0000 0004 +00 02 0 0 0 0 23 + +ddcbb4 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 6b + 11 MC 0003 + 14 MR 0003 b4 + 14 MC 0003 + 15 MC 0003 + 16 MC 50d1 + 19 MR 50d1 dd + 19 MC 50d1 + 20 MC 50d1 + 23 MW 50d1 9d +0a1c ab67 9ca1 9d98 0000 0000 0000 0000 5066 320c 0000 0004 +00 02 0 0 0 0 23 +50d1 9d -1 + +ddcbb5 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ec + 11 MC 0003 + 14 MR 0003 b5 + 14 MC 0003 + 15 MC 0003 + 16 MC 145a + 19 MR 145a d6 + 19 MC 145a + 20 MC 145a + 23 MW 145a 96 +fd6d 51c9 16d6 1396 0000 0000 0000 0000 146e 2148 0000 0004 +00 02 0 0 0 0 23 +145a 96 -1 + +ddcbb6 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 15 + 11 MC 0003 + 14 MR 0003 b6 + 14 MC 0003 + 15 MC 0003 + 16 MC 8787 + 19 MR 8787 8c + 19 MC 8787 + 20 MC 8787 + 23 MW 8787 8c +1d0b 04e8 109e 1dde 0000 0000 0000 0000 8772 8661 0000 0004 +00 02 0 0 0 0 23 + +ddcbb7 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d3 + 11 MC 0003 + 14 MR 0003 b7 + 14 MC 0003 + 15 MC 0003 + 16 MC 60f3 + 19 MR 60f3 54 + 19 MC 60f3 + 20 MC 60f3 + 23 MW 60f3 14 +1412 b87e 65ba a5c8 0000 0000 0000 0000 6120 789d 0000 0004 +00 02 0 0 0 0 23 +60f3 14 -1 + +ddcbb8 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 13 + 11 MC 0003 + 14 MR 0003 b8 + 14 MC 0003 + 15 MC 0003 + 16 MC 0c09 + 19 MR 0c09 87 + 19 MC 0c09 + 20 MC 0c09 + 23 MW 0c09 07 +8eae 0753 bfa1 5e7e 0000 0000 0000 0000 0bf6 1e35 0000 0004 +00 02 0 0 0 0 23 +0c09 07 -1 + +ddcbb9 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 56 + 11 MC 0003 + 14 MR 0003 b9 + 14 MC 0003 + 15 MC 0003 + 16 MC 05ba + 19 MR 05ba c8 + 19 MC 05ba + 20 MC 05ba + 23 MW 05ba 48 +5fb7 a848 e2d2 4117 0000 0000 0000 0000 0564 48a1 0000 0004 +00 02 0 0 0 0 23 +05ba 48 -1 + +ddcbba + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 86 + 11 MC 0003 + 14 MR 0003 ba + 14 MC 0003 + 15 MC 0003 + 16 MC f566 + 19 MR f566 30 + 19 MC f566 + 20 MC f566 + 23 MW f566 30 +7f6a 47fe 3045 75de 0000 0000 0000 0000 f5e0 032c 0000 0004 +00 02 0 0 0 0 23 + +ddcbbb + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ef + 11 MC 0003 + 14 MR 0003 bb + 14 MC 0003 + 15 MC 0003 + 16 MC bd20 + 19 MR bd20 c9 + 19 MC bd20 + 20 MC bd20 + 23 MW bd20 49 +c7e3 e49e 9e49 07e7 0000 0000 0000 0000 bd31 9d5f 0000 0004 +00 02 0 0 0 0 23 +bd20 49 -1 + +ddcbbc + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c0 + 11 MC 0003 + 14 MR 0003 bc + 14 MC 0003 + 15 MC 0003 + 16 MC 634e + 19 MR 634e 28 + 19 MC 634e + 20 MC 634e + 23 MW 634e 28 +b430 7ac7 b45f 28f7 0000 0000 0000 0000 638e 3173 0000 0004 +00 02 0 0 0 0 23 + +ddcbbd + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 b9 + 11 MC 0003 + 14 MR 0003 bd + 14 MC 0003 + 15 MC 0003 + 16 MC e37d + 19 MR e37d dd + 19 MC e37d + 20 MC e37d + 23 MW e37d 5d +4e71 6ffa a3f9 a25d 0000 0000 0000 0000 e3c4 02d4 0000 0004 +00 02 0 0 0 0 23 +e37d 5d -1 + +ddcbbe + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 4d + 11 MC 0003 + 14 MR 0003 be + 14 MC 0003 + 15 MC 0003 + 16 MC 5920 + 19 MR 5920 e8 + 19 MC 5920 + 20 MC 5920 + 23 MW 5920 68 +4af8 99a5 d6fd 7a16 0000 0000 0000 0000 58d3 ce54 0000 0004 +00 02 0 0 0 0 23 +5920 68 -1 + +ddcbbf + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 26 + 11 MC 0003 + 14 MR 0003 bf + 14 MC 0003 + 15 MC 0003 + 16 MC 175a + 19 MR 175a e2 + 19 MC 175a + 20 MC 175a + 23 MW 175a 62 +6231 0320 134b 77c3 0000 0000 0000 0000 1734 bc2d 0000 0004 +00 02 0 0 0 0 23 +175a 62 -1 + +ddcbc0 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 00 + 11 MC 0003 + 14 MR 0003 c0 + 14 MC 0003 + 15 MC 0003 + 16 MC 792e + 19 MR 792e 92 + 19 MC 792e + 20 MC 792e + 23 MW 792e 93 +75be 9393 093d 1128 0000 0000 0000 0000 792e 31f7 0000 0004 +00 02 0 0 0 0 23 +792e 93 -1 + +ddcbc1 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f7 + 11 MC 0003 + 14 MR 0003 c1 + 14 MC 0003 + 15 MC 0003 + 16 MC dcc3 + 19 MR dcc3 1c + 19 MC dcc3 + 20 MC dcc3 + 23 MW dcc3 1d +313f 821d 5fcc 42c8 0000 0000 0000 0000 dccc d87b 0000 0004 +00 02 0 0 0 0 23 +dcc3 1d -1 + +ddcbc2 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 85 + 11 MC 0003 + 14 MR 0003 c2 + 14 MC 0003 + 15 MC 0003 + 16 MC 0c7f + 19 MR 0c7f 30 + 19 MC 0c7f + 20 MC 0c7f + 23 MW 0c7f 31 +a7e3 bf55 317b 0a9d 0000 0000 0000 0000 0cfa ea4e 0000 0004 +00 02 0 0 0 0 23 +0c7f 31 -1 + +ddcbc3 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 32 + 11 MC 0003 + 14 MR 0003 c3 + 14 MC 0003 + 15 MC 0003 + 16 MC 5458 + 19 MR 5458 dd + 19 MC 5458 + 20 MC 5458 + 23 MW 5458 dd +e076 2760 1edd 9968 0000 0000 0000 0000 5426 a1a0 0000 0004 +00 02 0 0 0 0 23 + +ddcbc4 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ae + 11 MC 0003 + 14 MR 0003 c4 + 14 MC 0003 + 15 MC 0003 + 16 MC 7a7b + 19 MR 7a7b 27 + 19 MC 7a7b + 20 MC 7a7b + 23 MW 7a7b 27 +a679 cc05 3f4d 2799 0000 0000 0000 0000 7acd 48d7 0000 0004 +00 02 0 0 0 0 23 + +ddcbc5 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9c + 11 MC 0003 + 14 MR 0003 c5 + 14 MC 0003 + 15 MC 0003 + 16 MC ba35 + 19 MR ba35 20 + 19 MC ba35 + 20 MC ba35 + 23 MW ba35 21 +ddfd 64d4 2671 3521 0000 0000 0000 0000 ba99 bd98 0000 0004 +00 02 0 0 0 0 23 +ba35 21 -1 + +ddcbc6 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c4 + 11 MC 0003 + 14 MR 0003 c6 + 14 MC 0003 + 15 MC 0003 + 16 MC aaf0 + 19 MR aaf0 b8 + 19 MC aaf0 + 20 MC aaf0 + 23 MW aaf0 b9 +b324 dc0c 1e35 8cd5 0000 0000 0000 0000 ab2c b6f3 0000 0004 +00 02 0 0 0 0 23 +aaf0 b9 -1 + +ddcbc7 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f8 + 11 MC 0003 + 14 MR 0003 c7 + 14 MC 0003 + 15 MC 0003 + 16 MC 64c3 + 19 MR 64c3 94 + 19 MC 64c3 + 20 MC 64c3 + 23 MW 64c3 95 +9554 9e56 6828 3189 0000 0000 0000 0000 64cb dfad 0000 0004 +00 02 0 0 0 0 23 +64c3 95 -1 + +ddcbc8 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 65 + 11 MC 0003 + 14 MR 0003 c8 + 14 MC 0003 + 15 MC 0003 + 16 MC 6edf + 19 MR 6edf 8f + 19 MC 6edf + 20 MC 6edf + 23 MW 6edf 8f +8aca 8f9e e652 248b 0000 0000 0000 0000 6e7a 189a 0000 0004 +00 02 0 0 0 0 23 + +ddcbc9 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 fb + 11 MC 0003 + 14 MR 0003 c9 + 14 MC 0003 + 15 MC 0003 + 16 MC b66b + 19 MR b66b b9 + 19 MC b66b + 20 MC b66b + 23 MW b66b bb +f15f 85bb a21f 8a59 0000 0000 0000 0000 b670 4f79 0000 0004 +00 02 0 0 0 0 23 +b66b bb -1 + +ddcbca + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 8a + 11 MC 0003 + 14 MR 0003 ca + 14 MC 0003 + 15 MC 0003 + 16 MC a811 + 19 MR a811 7e + 19 MC a811 + 20 MC a811 + 23 MW a811 7e +dfab a031 7e78 ad3a 0000 0000 0000 0000 a887 7334 0000 0004 +00 02 0 0 0 0 23 + +ddcbcb + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 a4 + 11 MC 0003 + 14 MR 0003 cb + 14 MC 0003 + 15 MC 0003 + 16 MC a3eb + 19 MR a3eb 73 + 19 MC a3eb + 20 MC a3eb + 23 MW a3eb 73 +ebd6 376e c373 b10c 0000 0000 0000 0000 a447 31d6 0000 0004 +00 02 0 0 0 0 23 + +ddcbcc + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 65 + 11 MC 0003 + 14 MR 0003 cc + 14 MC 0003 + 15 MC 0003 + 16 MC 1fbf + 19 MR 1fbf 72 + 19 MC 1fbf + 20 MC 1fbf + 23 MW 1fbf 72 +0212 dc46 8f41 724e 0000 0000 0000 0000 1f5a 07ca 0000 0004 +00 02 0 0 0 0 23 + +ddcbcd + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e9 + 11 MC 0003 + 14 MR 0003 cd + 14 MC 0003 + 15 MC 0003 + 16 MC 535f + 19 MR 535f 1c + 19 MC 535f + 20 MC 535f + 23 MW 535f 1e +3344 d73c d6b8 921e 0000 0000 0000 0000 5376 6d3a 0000 0004 +00 02 0 0 0 0 23 +535f 1e -1 + +ddcbce + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 85 + 11 MC 0003 + 14 MR 0003 ce + 14 MC 0003 + 15 MC 0003 + 16 MC 0298 + 19 MR 0298 10 + 19 MC 0298 + 20 MC 0298 + 23 MW 0298 12 +9e47 fc93 9ffc aace 0000 0000 0000 0000 0313 7f66 0000 0004 +00 02 0 0 0 0 23 +0298 12 -1 + +ddcbcf + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e2 + 11 MC 0003 + 14 MR 0003 cf + 14 MC 0003 + 15 MC 0003 + 16 MC c5b2 + 19 MR c5b2 b5 + 19 MC c5b2 + 20 MC c5b2 + 23 MW c5b2 b7 +b7e8 d379 87d5 10b0 0000 0000 0000 0000 c5d0 4f7f 0000 0004 +00 02 0 0 0 0 23 +c5b2 b7 -1 + +ddcbd0 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7f + 11 MC 0003 + 14 MR 0003 d0 + 14 MC 0003 + 15 MC 0003 + 16 MC adc2 + 19 MR adc2 51 + 19 MC adc2 + 20 MC adc2 + 23 MW adc2 55 +3278 5514 d25d 1cf8 0000 0000 0000 0000 ad43 99fc 0000 0004 +00 02 0 0 0 0 23 +adc2 55 -1 + +ddcbd1 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 a6 + 11 MC 0003 + 14 MR 0003 d1 + 14 MC 0003 + 15 MC 0003 + 16 MC 1058 + 19 MR 1058 2c + 19 MC 1058 + 20 MC 1058 + 23 MW 1058 2c +c0b8 372c 6472 d92d 0000 0000 0000 0000 10b2 3074 0000 0004 +00 02 0 0 0 0 23 + +ddcbd2 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9c + 11 MC 0003 + 14 MR 0003 d2 + 14 MC 0003 + 15 MC 0003 + 16 MC b93d + 19 MR b93d 9c + 19 MC b93d + 20 MC b93d + 23 MW b93d 9c +5bb6 caa8 9cdb af84 0000 0000 0000 0000 b9a1 7b5f 0000 0004 +00 02 0 0 0 0 23 + +ddcbd3 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 bd + 11 MC 0003 + 14 MR 0003 d3 + 14 MC 0003 + 15 MC 0003 + 16 MC d9f3 + 19 MR d9f3 60 + 19 MC d9f3 + 20 MC d9f3 + 23 MW d9f3 64 +db6a 4fe2 9e64 a034 0000 0000 0000 0000 da36 88a0 0000 0004 +00 02 0 0 0 0 23 +d9f3 64 -1 + +ddcbd4 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 58 + 11 MC 0003 + 14 MR 0003 d4 + 14 MC 0003 + 15 MC 0003 + 16 MC ef7e + 19 MR ef7e 5e + 19 MC ef7e + 20 MC ef7e + 23 MW ef7e 5e +cc1c b884 6ad2 5e21 0000 0000 0000 0000 ef26 41de 0000 0004 +00 02 0 0 0 0 23 + +ddcbd5 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 41 + 11 MC 0003 + 14 MR 0003 d5 + 14 MC 0003 + 15 MC 0003 + 16 MC 8dfd + 19 MR 8dfd 71 + 19 MC 8dfd + 20 MC 8dfd + 23 MW 8dfd 75 +c41d c8b0 cacb 7675 0000 0000 0000 0000 8dbc cc25 0000 0004 +00 02 0 0 0 0 23 +8dfd 75 -1 + +ddcbd6 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ea + 11 MC 0003 + 14 MR 0003 d6 + 14 MC 0003 + 15 MC 0003 + 16 MC 5eed + 19 MR 5eed 73 + 19 MC 5eed + 20 MC 5eed + 23 MW 5eed 77 +09eb 769d 7e07 51f9 0000 0000 0000 0000 5f03 6280 0000 0004 +00 02 0 0 0 0 23 +5eed 77 -1 + +ddcbd7 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 80 + 11 MC 0003 + 14 MR 0003 d7 + 14 MC 0003 + 15 MC 0003 + 16 MC e6a5 + 19 MR e6a5 60 + 19 MC e6a5 + 20 MC e6a5 + 23 MW e6a5 64 +641b ee10 c152 2f6d 0000 0000 0000 0000 e725 c0d7 0000 0004 +00 02 0 0 0 0 23 +e6a5 64 -1 + +ddcbd8 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 4c + 11 MC 0003 + 14 MR 0003 d8 + 14 MC 0003 + 15 MC 0003 + 16 MC b35b + 19 MR b35b 96 + 19 MC b35b + 20 MC b35b + 23 MW b35b 9e +e3dc 9e81 c97b cb42 0000 0000 0000 0000 b30f b32a 0000 0004 +00 02 0 0 0 0 23 +b35b 9e -1 + +ddcbd9 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 52 + 11 MC 0003 + 14 MR 0003 d9 + 14 MC 0003 + 15 MC 0003 + 16 MC 2694 + 19 MR 2694 ef + 19 MC 2694 + 20 MC 2694 + 23 MW 2694 ef +e9a0 a7ef a476 6057 0000 0000 0000 0000 2642 58a0 0000 0004 +00 02 0 0 0 0 23 + +ddcbda + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ea + 11 MC 0003 + 14 MR 0003 da + 14 MC 0003 + 15 MC 0003 + 16 MC 2d60 + 19 MR 2d60 82 + 19 MC 2d60 + 20 MC 2d60 + 23 MW 2d60 8a +6787 26a7 8a94 11d3 0000 0000 0000 0000 2d76 7f80 0000 0004 +00 02 0 0 0 0 23 +2d60 8a -1 + +ddcbdb + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 4d + 11 MC 0003 + 14 MR 0003 db + 14 MC 0003 + 15 MC 0003 + 16 MC 2bca + 19 MR 2bca 10 + 19 MC 2bca + 20 MC 2bca + 23 MW 2bca 18 +f986 6a4b 6518 d2c8 0000 0000 0000 0000 2b7d 5847 0000 0004 +00 02 0 0 0 0 23 +2bca 18 -1 + +ddcbdc + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d3 + 11 MC 0003 + 14 MR 0003 dc + 14 MC 0003 + 15 MC 0003 + 16 MC 7ea7 + 19 MR 7ea7 45 + 19 MC 7ea7 + 20 MC 7ea7 + 23 MW 7ea7 4d +4c9e d94d 9760 4d07 0000 0000 0000 0000 7ed4 5cc5 0000 0004 +00 02 0 0 0 0 23 +7ea7 4d -1 + +ddcbdd + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 6f + 11 MC 0003 + 14 MR 0003 dd + 14 MC 0003 + 15 MC 0003 + 16 MC 5930 + 19 MR 5930 20 + 19 MC 5930 + 20 MC 5930 + 23 MW 5930 28 +4b3b d351 9be9 2328 0000 0000 0000 0000 58c1 e430 0000 0004 +00 02 0 0 0 0 23 +5930 28 -1 + +ddcbde + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 14 + 11 MC 0003 + 14 MR 0003 de + 14 MC 0003 + 15 MC 0003 + 16 MC 89e6 + 19 MR 89e6 5e + 19 MC 89e6 + 20 MC 89e6 + 23 MW 89e6 5e +3b62 ca1e a41a 227a 0000 0000 0000 0000 89d2 7011 0000 0004 +00 02 0 0 0 0 23 + +ddcbdf + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ef + 11 MC 0003 + 14 MR 0003 df + 14 MC 0003 + 15 MC 0003 + 16 MC d216 + 19 MR d216 72 + 19 MC d216 + 20 MC d216 + 23 MW d216 7a +7a8a 5b42 50dd 4be0 0000 0000 0000 0000 d227 4913 0000 0004 +00 02 0 0 0 0 23 +d216 7a -1 + +ddcbe0 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 62 + 11 MC 0003 + 14 MR 0003 e0 + 14 MC 0003 + 15 MC 0003 + 16 MC 1cad + 19 MR 1cad 46 + 19 MC 1cad + 20 MC 1cad + 23 MW 1cad 56 +440a 563d acfc f762 0000 0000 0000 0000 1c4b b6ba 0000 0004 +00 02 0 0 0 0 23 +1cad 56 -1 + +ddcbe1 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 2e + 11 MC 0003 + 14 MR 0003 e1 + 14 MC 0003 + 15 MC 0003 + 16 MC b95f + 19 MR b95f 75 + 19 MC b95f + 20 MC b95f + 23 MW b95f 75 +c219 aa75 dfbf 6f10 0000 0000 0000 0000 b931 d3d6 0000 0004 +00 02 0 0 0 0 23 + +ddcbe2 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 85 + 11 MC 0003 + 14 MR 0003 e2 + 14 MC 0003 + 15 MC 0003 + 16 MC eed5 + 19 MR eed5 72 + 19 MC eed5 + 20 MC eed5 + 23 MW eed5 72 +66d7 abd0 7248 8054 0000 0000 0000 0000 ef50 9997 0000 0004 +00 02 0 0 0 0 23 + +ddcbe3 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f4 + 11 MC 0003 + 14 MR 0003 e3 + 14 MC 0003 + 15 MC 0003 + 16 MC 7eba + 19 MR 7eba 34 + 19 MC 7eba + 20 MC 7eba + 23 MW 7eba 34 +7013 e7ed 7e34 57fb 0000 0000 0000 0000 7ec6 75eb 0000 0004 +00 02 0 0 0 0 23 + +ddcbe4 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 bf + 11 MC 0003 + 14 MR 0003 e4 + 14 MC 0003 + 15 MC 0003 + 16 MC 9586 + 19 MR 9586 34 + 19 MC 9586 + 20 MC 9586 + 23 MW 9586 34 +1108 6e70 f0af 340c 0000 0000 0000 0000 95c7 6501 0000 0004 +00 02 0 0 0 0 23 + +ddcbe5 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f2 + 11 MC 0003 + 14 MR 0003 e5 + 14 MC 0003 + 15 MC 0003 + 16 MC 6aa2 + 19 MR 6aa2 2e + 19 MC 6aa2 + 20 MC 6aa2 + 23 MW 6aa2 3e +57cc 5511 2696 b83e 0000 0000 0000 0000 6ab0 0e90 0000 0004 +00 02 0 0 0 0 23 +6aa2 3e -1 + +ddcbe6 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 25 + 11 MC 0003 + 14 MR 0003 e6 + 14 MC 0003 + 15 MC 0003 + 16 MC d88b + 19 MR d88b 4c + 19 MC d88b + 20 MC d88b + 23 MW d88b 5c +207a a441 1e03 ac60 0000 0000 0000 0000 d866 5fdc 0000 0004 +00 02 0 0 0 0 23 +d88b 5c -1 + +ddcbe7 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f3 + 11 MC 0003 + 14 MR 0003 e7 + 14 MC 0003 + 15 MC 0003 + 16 MC 2a0e + 19 MR 2a0e eb + 19 MC 2a0e + 20 MC 2a0e + 23 MW 2a0e fb +fbc5 7fa9 4e07 e02d 0000 0000 0000 0000 2a1b 55b7 0000 0004 +00 02 0 0 0 0 23 +2a0e fb -1 + +ddcbe8 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f2 + 11 MC 0003 + 14 MR 0003 e8 + 14 MC 0003 + 15 MC 0003 + 16 MC 4bcc + 19 MR 4bcc ba + 19 MC 4bcc + 20 MC 4bcc + 23 MW 4bcc ba +6d1c bac4 93f0 a0b4 0000 0000 0000 0000 4bda 7761 0000 0004 +00 02 0 0 0 0 23 + +ddcbe9 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 8a + 11 MC 0003 + 14 MR 0003 e9 + 14 MC 0003 + 15 MC 0003 + 16 MC 7267 + 19 MR 7267 0a + 19 MC 7267 + 20 MC 7267 + 23 MW 7267 2a +ebe5 0c2a 1a2a 2720 0000 0000 0000 0000 72dd a354 0000 0004 +00 02 0 0 0 0 23 +7267 2a -1 + +ddcbea + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 04 + 11 MC 0003 + 14 MR 0003 ea + 14 MC 0003 + 15 MC 0003 + 16 MC a7ed + 19 MR a7ed 5f + 19 MC a7ed + 20 MC a7ed + 23 MW a7ed 7f +42d2 da7a 7f7f 6da6 0000 0000 0000 0000 a7e9 b933 0000 0004 +00 02 0 0 0 0 23 +a7ed 7f -1 + +ddcbeb + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 24 + 11 MC 0003 + 14 MR 0003 eb + 14 MC 0003 + 15 MC 0003 + 16 MC 1703 + 19 MR 1703 f3 + 19 MC 1703 + 20 MC 1703 + 23 MW 1703 f3 +e945 10aa f5f3 7647 0000 0000 0000 0000 16df 93fb 0000 0004 +00 02 0 0 0 0 23 + +ddcbec + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 60 + 11 MC 0003 + 14 MR 0003 ec + 14 MC 0003 + 15 MC 0003 + 16 MC dde8 + 19 MR dde8 00 + 19 MC dde8 + 20 MC dde8 + 23 MW dde8 20 +7180 bc85 7dd3 2067 0000 0000 0000 0000 dd88 6a41 0000 0004 +00 02 0 0 0 0 23 +dde8 20 -1 + +ddcbed + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 be + 11 MC 0003 + 14 MR 0003 ed + 14 MC 0003 + 15 MC 0003 + 16 MC f730 + 19 MR f730 6b + 19 MC f730 + 20 MC f730 + 23 MW f730 6b +6b2f 9762 1f0a db6b 0000 0000 0000 0000 f772 33e3 0000 0004 +00 02 0 0 0 0 23 + +ddcbee + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 de + 11 MC 0003 + 14 MR 0003 ee + 14 MC 0003 + 15 MC 0003 + 16 MC 6c06 + 19 MR 6c06 bd + 19 MC 6c06 + 20 MC 6c06 + 23 MW 6c06 bd +79ea dc8a 7887 3baa 0000 0000 0000 0000 6c28 abbc 0000 0004 +00 02 0 0 0 0 23 + +ddcbef + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 30 + 11 MC 0003 + 14 MR 0003 ef + 14 MC 0003 + 15 MC 0003 + 16 MC cc98 + 19 MR cc98 11 + 19 MC cc98 + 20 MC cc98 + 23 MW cc98 31 +31c3 2fc2 8690 a836 0000 0000 0000 0000 cc68 a8ce 0000 0004 +00 02 0 0 0 0 23 +cc98 31 -1 + +ddcbf0 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 2f + 11 MC 0003 + 14 MR 0003 f0 + 14 MC 0003 + 15 MC 0003 + 16 MC 13ef + 19 MR 13ef ad + 19 MC 13ef + 20 MC 13ef + 23 MW 13ef ed +b330 ed69 362b b515 0000 0000 0000 0000 13c0 6479 0000 0004 +00 02 0 0 0 0 23 +13ef ed -1 + +ddcbf1 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 40 + 11 MC 0003 + 14 MR 0003 f1 + 14 MC 0003 + 15 MC 0003 + 16 MC 47fa + 19 MR 47fa 78 + 19 MC 47fa + 20 MC 47fa + 23 MW 47fa 78 +94c0 9a78 a0fd 7c1d 0000 0000 0000 0000 47ba 8c81 0000 0004 +00 02 0 0 0 0 23 + +ddcbf2 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0f + 11 MC 0003 + 14 MR 0003 f2 + 14 MC 0003 + 15 MC 0003 + 16 MC c956 + 19 MR c956 21 + 19 MC c956 + 20 MC c956 + 23 MW c956 61 +5302 9204 61ec d640 0000 0000 0000 0000 c947 4ef1 0000 0004 +00 02 0 0 0 0 23 +c956 61 -1 + +ddcbf3 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 06 + 11 MC 0003 + 14 MR 0003 f3 + 14 MC 0003 + 15 MC 0003 + 16 MC 1d9c + 19 MR 1d9c e4 + 19 MC 1d9c + 20 MC 1d9c + 23 MW 1d9c e4 +9950 a3d2 50e4 5ccc 0000 0000 0000 0000 1d96 7c75 0000 0004 +00 02 0 0 0 0 23 + +ddcbf4 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 3b + 11 MC 0003 + 14 MR 0003 f4 + 14 MC 0003 + 15 MC 0003 + 16 MC 173d + 19 MR 173d e1 + 19 MC 173d + 20 MC 173d + 23 MW 173d e1 +3712 1f99 4863 e1de 0000 0000 0000 0000 1702 c042 0000 0004 +00 02 0 0 0 0 23 + +ddcbf5 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 64 + 11 MC 0003 + 14 MR 0003 f5 + 14 MC 0003 + 15 MC 0003 + 16 MC eba3 + 19 MR eba3 c5 + 19 MC eba3 + 20 MC eba3 + 23 MW eba3 c5 +d83f 1ec9 d0da 41c5 0000 0000 0000 0000 eb3f 1ead 0000 0004 +00 02 0 0 0 0 23 + +ddcbf6 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7b + 11 MC 0003 + 14 MR 0003 f6 + 14 MC 0003 + 15 MC 0003 + 16 MC dcd5 + 19 MR dcd5 a2 + 19 MC dcd5 + 20 MC dcd5 + 23 MW dcd5 e2 +4d6c 93ac 810d cfe1 0000 0000 0000 0000 dc5a c33c 0000 0004 +00 02 0 0 0 0 23 +dcd5 e2 -1 + +ddcbf7 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c3 + 11 MC 0003 + 14 MR 0003 f7 + 14 MC 0003 + 15 MC 0003 + 16 MC 2fe1 + 19 MR 2fe1 a9 + 19 MC 2fe1 + 20 MC 2fe1 + 23 MW 2fe1 e9 +e940 7887 b9de c013 0000 0000 0000 0000 301e 9710 0000 0004 +00 02 0 0 0 0 23 +2fe1 e9 -1 + +ddcbf8 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 59 + 11 MC 0003 + 14 MR 0003 f8 + 14 MC 0003 + 15 MC 0003 + 16 MC 42d8 + 19 MR 42d8 28 + 19 MC 42d8 + 20 MC 42d8 + 23 MW 42d8 a8 +8278 a8a4 1e5c 4952 0000 0000 0000 0000 427f 41e1 0000 0004 +00 02 0 0 0 0 23 +42d8 a8 -1 + +ddcbf9 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 55 + 11 MC 0003 + 14 MR 0003 f9 + 14 MC 0003 + 15 MC 0003 + 16 MC d8e4 + 19 MR d8e4 14 + 19 MC d8e4 + 20 MC d8e4 + 23 MW d8e4 94 +b2df e994 56c3 16ff 0000 0000 0000 0000 d88f 0bab 0000 0004 +00 02 0 0 0 0 23 +d8e4 94 -1 + +ddcbfa + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 74 + 11 MC 0003 + 14 MR 0003 fa + 14 MC 0003 + 15 MC 0003 + 16 MC 9494 + 19 MR 9494 fe + 19 MC 9494 + 20 MC 9494 + 23 MW 9494 fe +01f1 bc0d fe76 1510 0000 0000 0000 0000 9420 93a3 0000 0004 +00 02 0 0 0 0 23 + +ddcbfb + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 af + 11 MC 0003 + 14 MR 0003 fb + 14 MC 0003 + 15 MC 0003 + 16 MC 3402 + 19 MR 3402 02 + 19 MC 3402 + 20 MC 3402 + 23 MW 3402 82 +709b 14eb ec82 b844 0000 0000 0000 0000 3453 f2b0 0000 0004 +00 02 0 0 0 0 23 +3402 82 -1 + +ddcbfc + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 a1 + 11 MC 0003 + 14 MR 0003 fc + 14 MC 0003 + 15 MC 0003 + 16 MC 60da + 19 MR 60da 10 + 19 MC 60da + 20 MC 60da + 23 MW 60da 90 +6c89 a96e d27b 90a7 0000 0000 0000 0000 6139 b4c1 0000 0004 +00 02 0 0 0 0 23 +60da 90 -1 + +ddcbfd + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 28 + 11 MC 0003 + 14 MR 0003 fd + 14 MC 0003 + 15 MC 0003 + 16 MC 3ef8 + 19 MR 3ef8 c2 + 19 MC 3ef8 + 20 MC 3ef8 + 23 MW 3ef8 c2 +fb3f 83f6 2094 33c2 0000 0000 0000 0000 3ed0 6f0e 0000 0004 +00 02 0 0 0 0 23 + +ddcbfe + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ec + 11 MC 0003 + 14 MR 0003 fe + 14 MC 0003 + 15 MC 0003 + 16 MC 41a1 + 19 MR 41a1 a1 + 19 MC 41a1 + 20 MC 41a1 + 23 MW 41a1 a1 +fc42 50b7 e98d 3e45 0000 0000 0000 0000 41b5 3410 0000 0004 +00 02 0 0 0 0 23 + +ddcbff + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d3 + 11 MC 0003 + 14 MR 0003 ff + 14 MC 0003 + 15 MC 0003 + 16 MC 0628 + 19 MR 0628 2b + 19 MC 0628 + 20 MC 0628 + 23 MW 0628 ab +ab66 94d2 ac90 8f45 0000 0000 0000 0000 0655 ba29 0000 0004 +00 02 0 0 0 0 23 +0628 ab -1 + +dde1 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 e1 + 8 MC 595f + 11 MR 595f 9a + 11 MC 5960 + 14 MR 5960 09 +8a15 6bf0 0106 3dd0 0000 0000 0000 0000 099a 8716 5961 0002 +00 02 0 0 0 0 14 + +dde3 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 e3 + 8 MC 57bd + 11 MR 57bd 15 + 11 MC 57be + 14 MR 57be 3f + 14 MC 57be + 15 MC 57be + 18 MW 57be be + 18 MC 57bd + 21 MW 57bd 05 + 21 MC 57bd + 22 MC 57bd +068e 58e6 2713 500f 0000 0000 0000 0000 3f15 4308 57bd 0002 +00 02 0 0 0 0 23 +57bd 05 be -1 + +dde5 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 e5 + 8 MC 0002 + 9 MC 0760 + 12 MW 0760 b2 + 12 MC 075f + 15 MW 075f 82 +7462 9b6c bfe5 0330 0000 0000 0000 0000 b282 e272 075f 0002 +00 02 0 0 0 0 15 +075f 82 b2 -1 + +dde9 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 e9 +75a7 139b f9a3 94bb 0000 0000 0000 0000 64f0 3433 0000 64f0 +00 02 0 0 0 0 8 + +ddf9 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 f9 + 8 MC 0002 + 9 MC 0002 +8709 15dd 7fa6 3c5c 0000 0000 0000 0000 d3a7 1d7b d3a7 0002 +00 02 0 0 0 0 10 + +ddfd00 + 0 MC 0000 + 4 MR 0000 dd + 4 MC 0001 + 8 MR 0001 fd + 8 MC 0002 + 12 MR 0002 00 + 12 MC 0003 + 16 MR 0003 00 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0004 +00 04 0 0 0 0 16 + +de + 0 MC 0000 + 4 MR 0000 de + 4 MC 0001 + 7 MR 0001 a1 +4502 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +df + 0 MC 6d33 + 4 MR 6d33 df + 4 MC 0001 + 5 MC 5506 + 8 MW 5506 6d + 8 MC 5505 + 11 MW 5505 34 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5505 0018 +00 01 0 0 0 0 11 +5505 34 6d -1 + +e0_1 + 0 MC 0000 + 4 MR 0000 e0 + 4 MC 0001 + 5 MC 43f7 + 8 MR 43f7 e9 + 8 MC 43f8 + 11 MR 43f8 af +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f9 afe9 +00 01 0 0 0 0 11 + +e0_2 + 0 MC 0000 + 4 MR 0000 e0 + 4 MC 0001 +009c 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0001 +00 01 0 0 0 0 5 + +e1 + 0 MC 0000 + 4 MR 0000 e1 + 4 MC 4143 + 7 MR 4143 ce + 7 MC 4144 + 10 MR 4144 e8 +0000 0000 0000 e8ce 0000 0000 0000 0000 0000 0000 4145 0001 +00 01 0 0 0 0 10 + +e2_1 + 0 MC 0000 + 4 MR 0000 e2 + 4 MC 0001 + 7 MR 0001 1b + 7 MC 0002 + 10 MR 0002 e1 +0083 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e11b +00 01 0 0 0 0 10 + +e2_2 + 0 MC 0000 + 4 MR 0000 e2 + 4 MC 0001 + 7 MC 0002 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 + +e3 + 0 MC 0000 + 4 MR 0000 e3 + 4 MC 0373 + 7 MR 0373 8e + 7 MC 0374 + 10 MR 0374 e1 + 10 MC 0374 + 11 MC 0374 + 14 MW 0374 4d + 14 MC 0373 + 17 MW 0373 22 + 17 MC 0373 + 18 MC 0373 +0000 0000 0000 e18e 0000 0000 0000 0000 0000 0000 0373 0001 +00 01 0 0 0 0 19 +0373 22 4d -1 + +e4_1 + 0 MC 0000 + 4 MR 0000 e4 + 4 MC 0001 + 7 MR 0001 61 + 7 MC 0002 + 10 MR 0002 9c + 10 MC 0002 + 11 MC 5697 + 14 MW 5697 00 + 14 MC 5696 + 17 MW 5696 03 +000a 0000 0000 0000 0000 0000 0000 0000 0000 0000 5696 9c61 +00 01 0 0 0 0 17 +5696 03 00 -1 + +e4_2 + 0 MC 0000 + 4 MR 0000 e4 + 4 MC 0001 + 7 MC 0002 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0003 +00 01 0 0 0 0 10 + +e5 + 0 MC 0000 + 4 MR 0000 e5 + 4 MC 0001 + 5 MC ec11 + 8 MW ec11 1a + 8 MC ec10 + 11 MW ec10 2f +53e3 1459 775f 1a2f 0000 0000 0000 0000 0000 0000 ec10 0001 +00 01 0 0 0 0 11 +ec10 2f 1a -1 + +e6 + 0 MC 0000 + 4 MR 0000 e6 + 4 MC 0001 + 7 MR 0001 49 +4114 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +e7 + 0 MC 6d33 + 4 MR 6d33 e7 + 4 MC 0001 + 5 MC 5506 + 8 MW 5506 6d + 8 MC 5505 + 11 MW 5505 34 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5505 0020 +00 01 0 0 0 0 11 +5505 34 6d -1 + +e8_1 + 0 MC 0000 + 4 MR 0000 e8 + 4 MC 0001 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0001 +00 01 0 0 0 0 5 + +e8_2 + 0 MC 0000 + 4 MR 0000 e8 + 4 MC 0001 + 5 MC 43f7 + 8 MR 43f7 e9 + 8 MC 43f8 + 11 MR 43f8 af +009c 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f9 afe9 +00 01 0 0 0 0 11 + +e9 + 0 MC 0000 + 4 MR 0000 e9 +0000 0000 0000 caba 0000 0000 0000 0000 0000 0000 0000 caba +00 01 0 0 0 0 4 + +ea_1 + 0 MC 0000 + 4 MR 0000 ea + 4 MC 0001 + 7 MR 0001 1b + 7 MC 0002 + 10 MR 0002 e1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e11b +00 01 0 0 0 0 10 + +ea_2 + 0 MC 0000 + 4 MR 0000 ea + 4 MC 0001 + 7 MC 0002 +0083 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 + +eb + 0 MC 0000 + 4 MR 0000 eb +0000 0000 942e b879 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +ec_1 + 0 MC 0000 + 4 MR 0000 ec + 4 MC 0001 + 7 MR 0001 61 + 7 MC 0002 + 10 MR 0002 9c + 10 MC 0002 + 11 MC 5697 + 14 MW 5697 00 + 14 MC 5696 + 17 MW 5696 03 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5696 9c61 +00 01 0 0 0 0 17 +5696 03 00 -1 + +ec_2 + 0 MC 0000 + 4 MR 0000 ec + 4 MC 0001 + 7 MC 0002 +000a 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0003 +00 01 0 0 0 0 10 + +ed40 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 40 + 9 PR 296b 29 +8329 296b 7034 1f2f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +ed41 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 41 + 9 PW 0881 08 +29a2 0881 d7dd ff4e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +ed42 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 42 + 8 MC 0002 + 9 MC 0002 + 10 MC 0002 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 +cb12 1c8f d456 14ce 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 + +ed43 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 43 + 8 MC 0002 + 11 MR 0002 c6 + 11 MC 0003 + 14 MR 0003 54 + 14 MC 54c6 + 17 MW 54c6 32 + 17 MC 54c7 + 20 MW 54c7 27 +da36 2732 91cc 9798 0000 0000 0000 0000 0000 0000 5f73 0004 +00 02 0 0 0 0 20 +54c6 32 27 -1 + +ed44 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 44 +0213 040f deb6 afc3 0000 0000 0000 0000 0000 0000 5ca8 0002 +00 02 0 0 0 0 8 + +ed45 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 45 + 8 MC 3100 + 11 MR 3100 1f + 11 MC 3101 + 14 MR 3101 22 +001d 5b63 a586 1451 0000 0000 0000 0000 0000 0000 3102 221f +00 02 1 1 0 0 14 + +ed46 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 46 +b6ec 8afb ce09 70a1 0000 0000 0000 0000 0000 0000 8dea 0002 +00 02 0 0 0 0 8 + +ed47 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 47 + 8 MC 0002 +9a99 9e5a 9913 cacc 0000 0000 0000 0000 0000 0000 0000 0002 +9a 02 0 0 0 0 9 + +ed48 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 48 + 8 PC 7d1b + 9 PR 7d1b 7d + 9 PC 7d1b + 10 PC 7d1b + 11 PC 7d1b +db2d 7d7d 141d 5fb4 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +ed49 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 49 + 8 PC 59ec + 9 PW 59ec ec + 9 PC 59ec +07a5 59ec f459 4316 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +ed4a + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 4a + 8 MC 0002 + 9 MC 0002 + 10 MC 0002 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 +57a8 24b5 83d2 bf7e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 + +ed4b + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 4b + 8 MC 0002 + 11 MR 0002 1a + 11 MC 0003 + 14 MR 0003 a4 + 14 MC a41a + 17 MR a41a f3 + 17 MC a41b + 20 MR a41b d4 +650c d4f3 0448 a3b9 0000 0000 0000 0000 0000 0000 b554 0004 +00 02 0 0 0 0 20 + +ed4c + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 4c +aabb 7dde b049 939d 0000 0000 0000 0000 0000 0000 c7bb 0002 +00 02 0 0 0 0 8 + +ed4d + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 4d + 8 MC 680e + 11 MR 680e 03 + 11 MC 680f + 14 MR 680f 7c +1bed c358 5fd5 6093 0000 0000 0000 0000 0000 0000 6810 7c03 +00 02 0 0 0 0 14 + +ed4e + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 4e +8e01 e7c6 880f d2a2 0000 0000 0000 0000 0000 0000 85da 0002 +00 02 0 0 0 0 8 + +ed4f + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 4f + 8 MC 0002 +2ae3 c115 eff8 9f6d 0000 0000 0000 0000 0000 0000 0000 0002 +00 2a 0 0 0 0 9 + +ed50 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 50 + 9 PR bbcc bb + 9 PC bbcc +85ac bbcc bba8 f219 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +ed51 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 51 + 9 PW c0a4 53 + 9 PC c0a4 +2c4c c0a4 5303 bc25 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +ed52 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 52 + 8 MC 0002 + 9 MC 0002 + 10 MC 0002 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 +fc82 1fc8 47b6 92c5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 + +ed53 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 53 + 8 MC 0002 + 11 MR 0002 ff + 11 MC 0003 + 14 MR 0003 21 + 14 MC 21ff + 17 MW 21ff b2 + 17 MC 2200 + 20 MW 2200 5c +1f88 4692 5cb2 4915 0000 0000 0000 0000 0000 0000 7d8c 0004 +00 02 0 0 0 0 20 +21ff b2 5c -1 + +ed54 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 54 +5313 5661 547c c322 0000 0000 0000 0000 0000 0000 d9eb 0002 +00 02 0 0 0 0 8 + +ed55 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 55 + 8 MC d4b4 + 11 MR d4b4 ea + 11 MC d4b5 + 14 MR d4b5 c9 +b05b 5e84 d6e9 cb3e 0000 0000 0000 0000 0000 0000 d4b6 c9ea +00 02 0 0 0 0 14 + +ed56 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 56 +5cc0 9100 356b 4bfd 0000 0000 0000 0000 0000 0000 2c93 0002 +00 02 0 0 1 0 8 + +ed57 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 57 + 8 MC 1e19 +1e08 dfc7 a621 1022 0000 0000 0000 0000 0000 0000 0000 0002 +1e 19 0 0 0 0 9 + +ed58 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 58 + 8 PC 4091 + 9 PR 4091 40 + 9 PC 4091 + 10 PC 4091 + 11 PC 4091 +c900 4091 9e40 873a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +ed59 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 59 + 9 PW d512 c5 + 9 PC d512 +388a d512 ecc5 93af 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +ed5a + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 5a + 8 MC 0002 + 9 MC 0002 + 10 MC 0002 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 +a408 751c 19ce 1e62 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 + +ed5b + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 5b + 8 MC 0002 + 11 MR 0002 04 + 11 MC 0003 + 14 MR 0003 9f + 14 MC 9f04 + 17 MR 9f04 84 + 17 MC 9f05 + 20 MR 9f05 4d +5df1 982e 4d84 adb9 0000 0000 0000 0000 0000 0000 f398 0004 +00 02 0 0 0 0 20 + +ed5c + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 5c +efbb b86c 2042 c958 0000 0000 0000 0000 0000 0000 93dc 0002 +00 02 0 0 0 0 8 + +ed5d + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 5d + 8 MC 5308 + 11 MR 5308 26 + 11 MC 5309 + 14 MR 5309 e0 +1152 1d20 3f86 64fc 0000 0000 0000 0000 0000 0000 530a e026 +00 02 0 0 0 0 14 + +ed5e + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 5e +611a c8cf f215 d92b 0000 0000 0000 0000 0000 0000 4d86 0002 +00 02 0 0 2 0 8 + +ed5f + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 5f + 8 MC d7f5 +f5a1 fc09 2dfa bab9 0000 0000 0000 0000 0000 0000 0000 0002 +d7 f5 0 0 0 0 9 + +ed60 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 60 + 9 PR 0dae 0d + 9 PC 0dae +2c08 0dae 621e 0d66 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +ed61 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 61 + 9 PW 90ca d8 + 9 PC 90ca +ffa8 90ca 0340 d847 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +ed62 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 62 + 8 MC 0002 + 9 MC 0002 + 10 MC 0002 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 +a6bb d9aa 6623 ffff 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 + +ed63 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 63 + 8 MC 0002 + 11 MR 0002 67 + 11 MC 0003 + 14 MR 0003 65 + 14 MC 6567 + 17 MW 6567 d3 + 17 MC 6568 + 20 MW 6568 e4 +5222 88f9 9d9a e4d3 0000 0000 0000 0000 0000 0000 a2f0 0004 +00 02 0 0 0 0 20 +6567 d3 e4 -1 + +ed64 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 64 +df9b e425 66ac b2a3 0000 0000 0000 0000 0000 0000 43f2 0002 +00 02 0 0 0 0 8 + +ed65 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 65 + 8 MC f207 + 11 MR f207 eb + 11 MC f208 + 14 MR f208 0e +63d2 1fa1 0788 881c 0000 0000 0000 0000 0000 0000 f209 0eeb +00 02 1 1 0 0 14 + +ed66 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 66 +4088 a7e1 3ffd 919b 0000 0000 0000 0000 0000 0000 d193 0002 +00 02 0 0 0 0 8 + +ed67 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 67 + 8 MC b9de + 11 MR b9de 93 + 11 MC b9de + 12 MC b9de + 13 MC b9de + 14 MC b9de + 15 MC b9de + 18 MW b9de 69 +3324 b16a a4db b9de 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 18 +b9de 69 -1 + +ed68 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 68 + 8 PC 624b + 9 PR 624b 62 + 9 PC 624b + 10 PC 624b + 11 PC 624b +5320 624b 7311 3162 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +ed69 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 69 + 9 PW 8d2f d6 +abd8 8d2f 89c7 c3d6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +ed6a + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 6a + 8 MC 0002 + 9 MC 0002 + 10 MC 0002 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 +bb9c 6fed 59bb 9c80 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 + +ed6b + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 6b + 8 MC 0002 + 11 MR 0002 98 + 11 MC 0003 + 14 MR 0003 61 + 14 MC 6198 + 17 MR 6198 3f + 17 MC 6199 + 20 MR 6199 be +9e35 d240 1998 be3f 0000 0000 0000 0000 0000 0000 9275 0004 +00 02 0 0 0 0 20 + +ed6c + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 6c +f1b3 7d5b cadb 0893 0000 0000 0000 0000 0000 0000 d983 0002 +00 02 0 0 0 0 8 + +ed6d + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 6d + 8 MC 5cd3 + 11 MR 5cd3 a9 + 11 MC 5cd4 + 14 MR 5cd4 73 +3860 42da 5935 dc10 0000 0000 0000 0000 0000 0000 5cd5 73a9 +00 02 0 0 0 0 14 + +ed6e + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 6e +7752 bec3 0457 8c95 0000 0000 0000 0000 0000 0000 a787 0002 +00 02 0 0 0 0 8 + +ed6f + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 6f + 8 MC 403c + 11 MR 403c c4 + 11 MC 403c + 12 MC 403c + 13 MC 403c + 14 MC 403c + 15 MC 403c + 18 MW 403c 45 +6c2d 7a7a ecf0 403c 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 18 +403c 45 -1 + +ed70 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 70 + 9 PR f7d6 f7 + 9 PC f7d6 +c6a1 f7d6 a3cb 288d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +ed71 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 71 + 9 PW 20b3 00 +afa0 20b3 7b33 4ac1 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +ed72 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 72 + 8 MC 0002 + 9 MC 0002 + 10 MC 0002 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 +5f3e 05cb 0c6c 7daf 0000 0000 0000 0000 0000 0000 53db 0002 +00 02 0 0 0 0 15 + +ed73 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 73 + 8 MC 0002 + 11 MR 0002 2a + 11 MC 0003 + 14 MR 0003 79 + 14 MC 792a + 17 MW 792a d5 + 17 MC 792b + 20 MW 792b ae +41c4 763a ecb0 ee62 0000 0000 0000 0000 0000 0000 aed5 0004 +00 02 0 0 0 0 20 +792a d5 ae -1 + +ed74 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 74 +bcbb f2d2 8340 7e76 0000 0000 0000 0000 0000 0000 0323 0002 +00 02 0 0 0 0 8 + +ed75 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 75 + 8 MC 7d00 + 11 MR 7d00 fd + 11 MC 7d01 + 14 MR 7d01 4f +7ca4 1615 5d2a a95b 0000 0000 0000 0000 0000 0000 7d02 4ffd +00 02 1 1 0 0 14 + +ed76 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 76 +cabf ff9a b98c a8e6 0000 0000 0000 0000 0000 0000 fe8e 0002 +00 02 0 0 1 0 8 + +ed78 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 78 + 9 PR f206 f2 + 9 PC f206 +f2a1 f206 2d6a af16 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +ed79 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 79 + 8 PC 4243 + 9 PW 4243 e0 + 9 PC 4243 + 10 PC 4243 + 11 PC 4243 +e000 4243 8f7f ed90 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 + +ed7a + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 7a + 8 MC 0002 + 9 MC 0002 + 10 MC 0002 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 +32b8 d819 d873 eaf2 0000 0000 0000 0000 0000 0000 5d22 0002 +00 02 0 0 0 0 15 + +ed7b + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 7b + 8 MC 0002 + 11 MR 0002 50 + 11 MC 0003 + 14 MR 0003 8c + 14 MC 8c50 + 17 MR 8c50 d8 + 17 MC 8c51 + 20 MR 8c51 48 +4f97 24b7 e105 1bf2 0000 0000 0000 0000 0000 0000 48d8 0004 +00 02 0 0 0 0 20 + +ed7c + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 7c +2d3b 29ca 9622 b452 0000 0000 0000 0000 0000 0000 0be6 0002 +00 02 0 0 0 0 8 + +ed7d + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 7d + 8 MC 66f0 + 11 MR 66f0 4f + 11 MC 66f1 + 14 MR 66f1 fb +ecb6 073e dc1e 38d9 0000 0000 0000 0000 0000 0000 66f2 fb4f +00 02 1 1 0 0 14 + +ed7e + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 7e +b246 1a1a 933a 4b8b 0000 0000 0000 0000 0000 0000 2242 0002 +00 02 0 0 2 0 8 + +eda0 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a0 + 8 MC d097 + 11 MR d097 b7 + 11 MC 95c1 + 14 MW 95c1 b7 + 14 MC 95c1 + 15 MC 95c1 +1be5 3d10 95c2 d098 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +95c1 b7 -1 + +eda1 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a1 + 8 MC 3bc3 + 11 MR 3bc3 b4 + 11 MC 3bc3 + 12 MC 3bc3 + 13 MC 3bc3 + 14 MC 3bc3 + 15 MC 3bc3 +ec0f 7665 537f 3bc4 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +eda2 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a2 + 8 MC 0002 + 10 PR 9a82 9a + 10 PC 9a82 + 13 MC 2666 + 16 MW 2666 9a +019f 9982 5bbd 2667 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +2666 9a -1 + +eda2_01 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a2 + 8 MC 0002 + 10 PR 0200 02 + 10 PC 0200 + 13 MC 8000 + 16 MW 8000 02 +0000 0100 0000 8001 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +8000 02 -1 + +eda2_02 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a2 + 8 MC 0002 + 9 PC 569a + 10 PR 569a 56 + 10 PC 569a + 13 MC 8000 + 16 MW 8000 56 +0000 559a 0000 8001 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +8000 56 -1 + +eda2_03 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a2 + 8 MC 0002 + 10 PR abcc ab + 10 PC abcc + 13 MC 8000 + 16 MW 8000 ab +00bf aacc 0000 8001 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +8000 ab -1 + +eda3 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a3 + 8 MC 0002 + 9 MC 32fa + 12 MR 32fa b3 + 12 PC 6234 + 13 PW 6234 b3 + 13 PC 6234 +4233 6234 1e28 32fb 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +eda3_01 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a3 + 8 MC 0002 + 9 MC 01ff + 12 MR 01ff 00 + 13 PW 0000 00 + 13 PC 0000 +0044 0000 0000 0200 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +eda3_02 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a3 + 8 MC 0002 + 9 MC 0100 + 12 MR 0100 00 + 13 PW 0000 00 + 13 PC 0000 +0040 0000 0000 0101 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +eda3_03 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a3 + 8 MC 0002 + 9 MC 0107 + 12 MR 0107 00 + 13 PW 0000 00 + 13 PC 0000 +0044 0000 0000 0108 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +eda3_04 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a3 + 8 MC 0002 + 9 MC 01ff + 12 MR 01ff 80 + 13 PW 0000 80 + 13 PC 0000 +0046 0000 0000 0200 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +eda3_05 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a3 + 8 MC 0002 + 9 MC 01fd + 12 MR 01fd 12 + 13 PW 0000 12 + 13 PC 0000 +0055 0000 0000 01fe 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +eda3_06 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a3 + 8 MC 0002 + 9 MC 01fe + 12 MR 01fe 12 + 13 PW 0000 12 + 13 PC 0000 +0051 0000 0000 01ff 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +eda3_07 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a3 + 8 MC 0002 + 9 MC 01ff + 12 MR 01ff 00 + 13 PW 0100 00 + 13 PC 0100 +0000 0100 0000 0200 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +eda3_08 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a3 + 8 MC 0002 + 9 MC 01fe + 12 MR 01fe 00 + 13 PW 0700 00 + 13 PC 0700 +0004 0700 0000 01ff 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +eda3_09 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a3 + 8 MC 0002 + 9 MC 01ff + 12 MR 01ff 00 + 13 PW 8000 00 + 13 PC 8000 +0080 8000 0000 0200 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +eda3_10 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a3 + 8 MC 0002 + 9 MC 01ff + 12 MR 01ff 00 + 13 PW 8100 00 + 13 PC 8100 +0084 8100 0000 0200 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +eda3_11 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a3 + 8 MC 0002 + 9 MC 01ff + 12 MR 01ff 00 + 13 PW a800 00 + 13 PC a800 +00a8 a800 0000 0200 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +eda8 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a8 + 8 MC 12e8 + 11 MR 12e8 d8 + 11 MC 5938 + 14 MW 5938 d8 + 14 MC 5938 + 15 MC 5938 +2aa4 1606 5937 12e7 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +5938 d8 -1 + +eda9 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 a9 + 8 MC 0dbe + 11 MR 0dbe 89 + 11 MC 0dbe + 12 MC 0dbe + 13 MC 0dbe + 14 MC 0dbe + 15 MC 0dbe +14bf fb41 0466 0dbd 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +edaa + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 aa + 8 MC 0002 + 10 PR d791 d7 + 13 MC a533 + 16 MW a533 d7 +2097 d691 a912 a532 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +a533 d7 -1 + +edaa_01 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 aa + 8 MC 0002 + 10 PR 0101 01 + 13 MC 8000 + 16 MW 8000 01 +0040 0001 0000 7fff 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +8000 01 -1 + +edaa_02 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 aa + 8 MC 0002 + 9 PC 56aa + 10 PR 56aa 56 + 10 PC 56aa + 13 MC 8000 + 16 MW 8000 56 +0000 55aa 0000 7fff 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +8000 56 -1 + +edaa_03 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 aa + 8 MC 0002 + 10 PR abcc ab + 10 PC abcc + 13 MC 8000 + 16 MW 8000 ab +00bf aacc 0000 7fff 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +8000 ab -1 + +edab + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 ab + 8 MC 0002 + 9 MC 199f + 12 MR 199f 49 + 13 PW f234 49 + 13 PC f234 +00a4 f234 d3e1 199e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +edab_01 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 ab + 8 MC 0002 + 9 MC 007a + 12 MR 007a 7f + 12 PC 5700 + 13 PW 5700 7f + 13 PC 5700 +0000 5700 0000 0079 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +edab_02 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 ab + 8 MC 0002 + 9 MC 00f1 + 12 MR 00f1 cd + 13 PW aa00 cd + 13 PC aa00 +00bf aa00 0000 00f0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 + +edb0 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 b0 + 8 MC 558e + 11 MR 558e 53 + 11 MC aad8 + 14 MW aad8 53 + 14 MC aad8 + 15 MC aad8 + 16 MC aad8 + 17 MC aad8 + 18 MC aad8 + 19 MC aad8 + 20 MC aad8 + 21 MC 0000 + 25 MR 0000 ed + 25 MC 0001 + 29 MR 0001 b0 + 29 MC 558f + 32 MR 558f 94 + 32 MC aad9 + 35 MW aad9 94 + 35 MC aad9 + 36 MC aad9 + 37 MC aad9 + 38 MC aad9 + 39 MC aad9 + 40 MC aad9 + 41 MC aad9 + 42 MC 0000 + 46 MR 0000 ed + 46 MC 0001 + 50 MR 0001 b0 + 50 MC 5590 + 53 MR 5590 30 + 53 MC aada + 56 MW aada 30 + 56 MC aada + 57 MC aada + 58 MC aada + 59 MC aada + 60 MC aada + 61 MC aada + 62 MC aada + 63 MC 0000 + 67 MR 0000 ed + 67 MC 0001 + 71 MR 0001 b0 + 71 MC 5591 + 74 MR 5591 05 + 74 MC aadb + 77 MW aadb 05 + 77 MC aadb + 78 MC aadb + 79 MC aadb + 80 MC aadb + 81 MC aadb + 82 MC aadb + 83 MC aadb + 84 MC 0000 + 88 MR 0000 ed + 88 MC 0001 + 92 MR 0001 b0 + 92 MC 5592 + 95 MR 5592 44 + 95 MC aadc + 98 MW aadc 44 + 98 MC aadc + 99 MC aadc + 100 MC aadc + 101 MC aadc + 102 MC aadc + 103 MC aadc + 104 MC aadc + 105 MC 0000 + 109 MR 0000 ed + 109 MC 0001 + 113 MR 0001 b0 + 113 MC 5593 + 116 MR 5593 24 + 116 MC aadd + 119 MW aadd 24 + 119 MC aadd + 120 MC aadd + 121 MC aadd + 122 MC aadd + 123 MC aadd + 124 MC aadd + 125 MC aadd + 126 MC 0000 + 130 MR 0000 ed + 130 MC 0001 + 134 MR 0001 b0 + 134 MC 5594 + 137 MR 5594 22 + 137 MC aade + 140 MW aade 22 + 140 MC aade + 141 MC aade + 142 MC aade + 143 MC aade + 144 MC aade + 145 MC aade + 146 MC aade + 147 MC 0000 + 151 MR 0000 ed + 151 MC 0001 + 155 MR 0001 b0 + 155 MC 5595 + 158 MR 5595 b9 + 158 MC aadf + 161 MW aadf b9 + 161 MC aadf + 162 MC aadf + 163 MC aadf + 164 MC aadf + 165 MC aadf + 166 MC aadf + 167 MC aadf + 168 MC 0000 + 172 MR 0000 ed + 172 MC 0001 + 176 MR 0001 b0 + 176 MC 5596 + 179 MR 5596 e9 + 179 MC aae0 + 182 MW aae0 e9 + 182 MC aae0 + 183 MC aae0 + 184 MC aae0 + 185 MC aae0 + 186 MC aae0 + 187 MC aae0 + 188 MC aae0 + 189 MC 0000 + 193 MR 0000 ed + 193 MC 0001 + 197 MR 0001 b0 + 197 MC 5597 + 200 MR 5597 77 + 200 MC aae1 + 203 MW aae1 77 + 203 MC aae1 + 204 MC aae1 + 205 MC aae1 + 206 MC aae1 + 207 MC aae1 + 208 MC aae1 + 209 MC aae1 + 210 MC 0000 + 214 MR 0000 ed + 214 MC 0001 + 218 MR 0001 b0 + 218 MC 5598 + 221 MR 5598 23 + 221 MC aae2 + 224 MW aae2 23 + 224 MC aae2 + 225 MC aae2 + 226 MC aae2 + 227 MC aae2 + 228 MC aae2 + 229 MC aae2 + 230 MC aae2 + 231 MC 0000 + 235 MR 0000 ed + 235 MC 0001 + 239 MR 0001 b0 + 239 MC 5599 + 242 MR 5599 71 + 242 MC aae3 + 245 MW aae3 71 + 245 MC aae3 + 246 MC aae3 + 247 MC aae3 + 248 MC aae3 + 249 MC aae3 + 250 MC aae3 + 251 MC aae3 + 252 MC 0000 + 256 MR 0000 ed + 256 MC 0001 + 260 MR 0001 b0 + 260 MC 559a + 263 MR 559a e2 + 263 MC aae4 + 266 MW aae4 e2 + 266 MC aae4 + 267 MC aae4 + 268 MC aae4 + 269 MC aae4 + 270 MC aae4 + 271 MC aae4 + 272 MC aae4 + 273 MC 0000 + 277 MR 0000 ed + 277 MC 0001 + 281 MR 0001 b0 + 281 MC 559b + 284 MR 559b 5c + 284 MC aae5 + 287 MW aae5 5c + 287 MC aae5 + 288 MC aae5 + 289 MC aae5 + 290 MC aae5 + 291 MC aae5 + 292 MC aae5 + 293 MC aae5 + 294 MC 0000 + 298 MR 0000 ed + 298 MC 0001 + 302 MR 0001 b0 + 302 MC 559c + 305 MR 559c fb + 305 MC aae6 + 308 MW aae6 fb + 308 MC aae6 + 309 MC aae6 + 310 MC aae6 + 311 MC aae6 + 312 MC aae6 + 313 MC aae6 + 314 MC aae6 + 315 MC 0000 + 319 MR 0000 ed + 319 MC 0001 + 323 MR 0001 b0 + 323 MC 559d + 326 MR 559d 49 + 326 MC aae7 + 329 MW aae7 49 + 329 MC aae7 + 330 MC aae7 +1049 0000 aae8 559e 0000 0000 0000 0000 0000 0000 0000 0002 +00 20 0 0 0 0 331 +aad8 53 94 30 05 44 24 22 b9 e9 77 23 71 e2 5c fb 49 -1 + +edb1 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 b1 + 8 MC 9825 + 11 MR 9825 50 + 11 MC 9825 + 12 MC 9825 + 13 MC 9825 + 14 MC 9825 + 15 MC 9825 + 16 MC 9825 + 17 MC 9825 + 18 MC 9825 + 19 MC 9825 + 20 MC 9825 + 21 MC 0000 + 25 MR 0000 ed + 25 MC 0001 + 29 MR 0001 b1 + 29 MC 9826 + 32 MR 9826 e5 + 32 MC 9826 + 33 MC 9826 + 34 MC 9826 + 35 MC 9826 + 36 MC 9826 + 37 MC 9826 + 38 MC 9826 + 39 MC 9826 + 40 MC 9826 + 41 MC 9826 + 42 MC 0000 + 46 MR 0000 ed + 46 MC 0001 + 50 MR 0001 b1 + 50 MC 9827 + 53 MR 9827 41 + 53 MC 9827 + 54 MC 9827 + 55 MC 9827 + 56 MC 9827 + 57 MC 9827 + 58 MC 9827 + 59 MC 9827 + 60 MC 9827 + 61 MC 9827 + 62 MC 9827 + 63 MC 0000 + 67 MR 0000 ed + 67 MC 0001 + 71 MR 0001 b1 + 71 MC 9828 + 74 MR 9828 f4 + 74 MC 9828 + 75 MC 9828 + 76 MC 9828 + 77 MC 9828 + 78 MC 9828 +f447 0004 e4e0 9829 0000 0000 0000 0000 0000 0000 0000 0002 +00 08 0 0 0 0 79 + +edb2 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 b2 + 8 MC 0002 + 10 PR 0a40 0a + 10 PC 0a40 + 13 MC 37ce + 16 MW 37ce 0a + 16 MC 37ce + 17 MC 37ce + 18 MC 37ce + 19 MC 37ce + 20 MC 37ce + 21 MC 0000 + 25 MR 0000 ed + 25 MC 0001 + 29 MR 0001 b2 + 29 MC 0004 + 31 PR 0940 09 + 31 PC 0940 + 34 MC 37cf + 37 MW 37cf 09 + 37 MC 37cf + 38 MC 37cf + 39 MC 37cf + 40 MC 37cf + 41 MC 37cf + 42 MC 0000 + 46 MR 0000 ed + 46 MC 0001 + 50 MR 0001 b2 + 50 MC 0006 + 52 PR 0840 08 + 52 PC 0840 + 55 MC 37d0 + 58 MW 37d0 08 + 58 MC 37d0 + 59 MC 37d0 + 60 MC 37d0 + 61 MC 37d0 + 62 MC 37d0 + 63 MC 0000 + 67 MR 0000 ed + 67 MC 0001 + 71 MR 0001 b2 + 71 MC 0008 + 73 PR 0740 07 + 73 PC 0740 + 76 MC 37d1 + 79 MW 37d1 07 + 79 MC 37d1 + 80 MC 37d1 + 81 MC 37d1 + 82 MC 37d1 + 83 MC 37d1 + 84 MC 0000 + 88 MR 0000 ed + 88 MC 0001 + 92 MR 0001 b2 + 92 MC 000a + 94 PR 0640 06 + 94 PC 0640 + 97 MC 37d2 + 100 MW 37d2 06 + 100 MC 37d2 + 101 MC 37d2 + 102 MC 37d2 + 103 MC 37d2 + 104 MC 37d2 + 105 MC 0000 + 109 MR 0000 ed + 109 MC 0001 + 113 MR 0001 b2 + 113 MC 000c + 115 PR 0540 05 + 115 PC 0540 + 118 MC 37d3 + 121 MW 37d3 05 + 121 MC 37d3 + 122 MC 37d3 + 123 MC 37d3 + 124 MC 37d3 + 125 MC 37d3 + 126 MC 0000 + 130 MR 0000 ed + 130 MC 0001 + 134 MR 0001 b2 + 134 MC 000e + 136 PR 0440 04 + 136 PC 0440 + 139 MC 37d4 + 142 MW 37d4 04 + 142 MC 37d4 + 143 MC 37d4 + 144 MC 37d4 + 145 MC 37d4 + 146 MC 37d4 + 147 MC 0000 + 151 MR 0000 ed + 151 MC 0001 + 155 MR 0001 b2 + 155 MC 0010 + 157 PR 0340 03 + 157 PC 0340 + 160 MC 37d5 + 163 MW 37d5 03 + 163 MC 37d5 + 164 MC 37d5 + 165 MC 37d5 + 166 MC 37d5 + 167 MC 37d5 + 168 MC 0000 + 172 MR 0000 ed + 172 MC 0001 + 176 MR 0001 b2 + 176 MC 0012 + 178 PR 0240 02 + 178 PC 0240 + 181 MC 37d6 + 184 MW 37d6 02 + 184 MC 37d6 + 185 MC 37d6 + 186 MC 37d6 + 187 MC 37d6 + 188 MC 37d6 + 189 MC 0000 + 193 MR 0000 ed + 193 MC 0001 + 197 MR 0001 b2 + 197 MC 0014 + 199 PR 0140 01 + 199 PC 0140 + 202 MC 37d7 + 205 MW 37d7 01 +8a40 0040 d98c 37d8 0000 0000 0000 0000 0000 0000 0000 0002 +00 14 0 0 0 0 205 +37ce 0a 09 08 07 06 05 04 03 02 01 -1 + +edb3 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 b3 + 8 MC 0002 + 9 MC 1d7c + 12 MR 1d7c 9d + 13 PW 02e0 9d + 13 PC 02e0 + 16 MC 02e0 + 17 MC 02e0 + 18 MC 02e0 + 19 MC 02e0 + 20 MC 02e0 + 21 MC 0000 + 25 MR 0000 ed + 25 MC 0001 + 29 MR 0001 b3 + 29 MC 0004 + 30 MC 1d7d + 33 MR 1d7d 24 + 34 PW 01e0 24 + 34 PC 01e0 + 37 MC 01e0 + 38 MC 01e0 + 39 MC 01e0 + 40 MC 01e0 + 41 MC 01e0 + 42 MC 0000 + 46 MR 0000 ed + 46 MC 0001 + 50 MR 0001 b3 + 50 MC 0006 + 51 MC 1d7e + 54 MR 1d7e aa + 55 PW 00e0 aa + 55 PC 00e0 +3453 00e0 41b9 1d7f 0000 0000 0000 0000 0000 0000 0000 0002 +00 06 0 0 0 0 58 + +edb8 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 b8 + 8 MC 4dcf + 11 MR 4dcf 0a + 11 MC 68e8 + 14 MW 68e8 0a + 14 MC 68e8 + 15 MC 68e8 + 16 MC 68e8 + 17 MC 68e8 + 18 MC 68e8 + 19 MC 68e8 + 20 MC 68e8 + 21 MC 0000 + 25 MR 0000 ed + 25 MC 0001 + 29 MR 0001 b8 + 29 MC 4dce + 32 MR 4dce 23 + 32 MC 68e7 + 35 MW 68e7 23 + 35 MC 68e7 + 36 MC 68e7 + 37 MC 68e7 + 38 MC 68e7 + 39 MC 68e7 + 40 MC 68e7 + 41 MC 68e7 + 42 MC 0000 + 46 MR 0000 ed + 46 MC 0001 + 50 MR 0001 b8 + 50 MC 4dcd + 53 MR 4dcd 74 + 53 MC 68e6 + 56 MW 68e6 74 + 56 MC 68e6 + 57 MC 68e6 + 58 MC 68e6 + 59 MC 68e6 + 60 MC 68e6 + 61 MC 68e6 + 62 MC 68e6 + 63 MC 0000 + 67 MR 0000 ed + 67 MC 0001 + 71 MR 0001 b8 + 71 MC 4dcc + 74 MR 4dcc 55 + 74 MC 68e5 + 77 MW 68e5 55 + 77 MC 68e5 + 78 MC 68e5 + 79 MC 68e5 + 80 MC 68e5 + 81 MC 68e5 + 82 MC 68e5 + 83 MC 68e5 + 84 MC 0000 + 88 MR 0000 ed + 88 MC 0001 + 92 MR 0001 b8 + 92 MC 4dcb + 95 MR 4dcb c3 + 95 MC 68e4 + 98 MW 68e4 c3 + 98 MC 68e4 + 99 MC 68e4 + 100 MC 68e4 + 101 MC 68e4 + 102 MC 68e4 + 103 MC 68e4 + 104 MC 68e4 + 105 MC 0000 + 109 MR 0000 ed + 109 MC 0001 + 113 MR 0001 b8 + 113 MC 4dca + 116 MR 4dca a7 + 116 MC 68e3 + 119 MW 68e3 a7 + 119 MC 68e3 + 120 MC 68e3 + 121 MC 68e3 + 122 MC 68e3 + 123 MC 68e3 + 124 MC 68e3 + 125 MC 68e3 + 126 MC 0000 + 130 MR 0000 ed + 130 MC 0001 + 134 MR 0001 b8 + 134 MC 4dc9 + 137 MR 4dc9 85 + 137 MC 68e2 + 140 MW 68e2 85 + 140 MC 68e2 + 141 MC 68e2 + 142 MC 68e2 + 143 MC 68e2 + 144 MC 68e2 + 145 MC 68e2 + 146 MC 68e2 + 147 MC 0000 + 151 MR 0000 ed + 151 MC 0001 + 155 MR 0001 b8 + 155 MC 4dc8 + 158 MR 4dc8 29 + 158 MC 68e1 + 161 MW 68e1 29 + 161 MC 68e1 + 162 MC 68e1 +e569 0000 68e0 4dc7 0000 0000 0000 0000 0000 0000 0000 0002 +00 10 0 0 0 0 163 +68e1 29 85 a7 c3 55 74 23 0a -1 + +edb9 + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 b9 + 8 MC c749 + 11 MR c749 6c + 11 MC c749 + 12 MC c749 + 13 MC c749 + 14 MC c749 + 15 MC c749 + 16 MC c749 + 17 MC c749 + 18 MC c749 + 19 MC c749 + 20 MC c749 + 21 MC 0000 + 25 MR 0000 ed + 25 MC 0001 + 29 MR 0001 b9 + 29 MC c748 + 32 MR c748 4e + 32 MC c748 + 33 MC c748 + 34 MC c748 + 35 MC c748 + 36 MC c748 + 37 MC c748 + 38 MC c748 + 39 MC c748 + 40 MC c748 + 41 MC c748 + 42 MC 0000 + 46 MR 0000 ed + 46 MC 0001 + 50 MR 0001 b9 + 50 MC c747 + 53 MR c747 01 + 53 MC c747 + 54 MC c747 + 55 MC c747 + 56 MC c747 + 57 MC c747 + 58 MC c747 + 59 MC c747 + 60 MC c747 + 61 MC c747 + 62 MC c747 + 63 MC 0000 + 67 MR 0000 ed + 67 MC 0001 + 71 MR 0001 b9 + 71 MC c746 + 74 MR c746 5a + 74 MC c746 + 75 MC c746 + 76 MC c746 + 77 MC c746 + 78 MC c746 + 79 MC c746 + 80 MC c746 + 81 MC c746 + 82 MC c746 + 83 MC c746 + 84 MC 0000 + 88 MR 0000 ed + 88 MC 0001 + 92 MR 0001 b9 + 92 MC c745 + 95 MR c745 ec + 95 MC c745 + 96 MC c745 + 97 MC c745 + 98 MC c745 + 99 MC c745 + 100 MC c745 + 101 MC c745 + 102 MC c745 + 103 MC c745 + 104 MC c745 + 105 MC 0000 + 109 MR 0000 ed + 109 MC 0001 + 113 MR 0001 b9 + 113 MC c744 + 116 MR c744 85 + 116 MC c744 + 117 MC c744 + 118 MC c744 + 119 MC c744 + 120 MC c744 + 121 MC c744 + 122 MC c744 + 123 MC c744 + 124 MC c744 + 125 MC c744 + 126 MC 0000 + 130 MR 0000 ed + 130 MC 0001 + 134 MR 0001 b9 + 134 MC c743 + 137 MR c743 09 + 137 MC c743 + 138 MC c743 + 139 MC c743 + 140 MC c743 + 141 MC c743 + 142 MC c743 + 143 MC c743 + 144 MC c743 + 145 MC c743 + 146 MC c743 + 147 MC 0000 + 151 MR 0000 ed + 151 MC 0001 + 155 MR 0001 b9 + 155 MC c742 + 158 MR c742 c6 + 158 MC c742 + 159 MC c742 + 160 MC c742 + 161 MC c742 + 162 MC c742 +ff0b 0000 a171 c741 0000 0000 0000 0000 0000 0000 0000 0002 +00 10 0 0 0 0 163 + +edba + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 ba + 8 MC 0002 + 10 PR 069f 06 + 13 MC 6b55 + 16 MW 6b55 06 + 16 MC 6b55 + 17 MC 6b55 + 18 MC 6b55 + 19 MC 6b55 + 20 MC 6b55 + 21 MC 0000 + 25 MR 0000 ed + 25 MC 0001 + 29 MR 0001 ba + 29 MC 0004 + 31 PR 059f 05 + 34 MC 6b54 + 37 MW 6b54 05 + 37 MC 6b54 + 38 MC 6b54 + 39 MC 6b54 + 40 MC 6b54 + 41 MC 6b54 + 42 MC 0000 + 46 MR 0000 ed + 46 MC 0001 + 50 MR 0001 ba + 50 MC 0006 + 52 PR 049f 04 + 55 MC 6b53 + 58 MW 6b53 04 + 58 MC 6b53 + 59 MC 6b53 + 60 MC 6b53 + 61 MC 6b53 + 62 MC 6b53 + 63 MC 0000 + 67 MR 0000 ed + 67 MC 0001 + 71 MR 0001 ba + 71 MC 0008 + 73 PR 039f 03 + 76 MC 6b52 + 79 MW 6b52 03 + 79 MC 6b52 + 80 MC 6b52 + 81 MC 6b52 + 82 MC 6b52 + 83 MC 6b52 + 84 MC 0000 + 88 MR 0000 ed + 88 MC 0001 + 92 MR 0001 ba + 92 MC 000a + 94 PR 029f 02 + 97 MC 6b51 + 100 MW 6b51 02 + 100 MC 6b51 + 101 MC 6b51 + 102 MC 6b51 + 103 MC 6b51 + 104 MC 6b51 + 105 MC 0000 + 109 MR 0000 ed + 109 MC 0001 + 113 MR 0001 ba + 113 MC 000c + 115 PR 019f 01 + 118 MC 6b50 + 121 MW 6b50 01 +2540 009f d40d 6b4f 0000 0000 0000 0000 0000 0000 0000 0002 +00 0c 0 0 0 0 121 +6b50 01 02 03 04 05 06 -1 + +edbb + 0 MC 0000 + 4 MR 0000 ed + 4 MC 0001 + 8 MR 0001 bb + 8 MC 0002 + 9 MC 1dd0 + 12 MR 1dd0 b6 + 13 PW 033b b6 + 16 MC 033b + 17 MC 033b + 18 MC 033b + 19 MC 033b + 20 MC 033b + 21 MC 0000 + 25 MR 0000 ed + 25 MC 0001 + 29 MR 0001 bb + 29 MC 0004 + 30 MC 1dcf + 33 MR 1dcf c5 + 34 PW 023b c5 + 37 MC 023b + 38 MC 023b + 39 MC 023b + 40 MC 023b + 41 MC 023b + 42 MC 0000 + 46 MR 0000 ed + 46 MC 0001 + 50 MR 0001 bb + 50 MC 0006 + 51 MC 1dce + 54 MR 1dce 71 + 55 PW 013b 71 + 58 MC 013b + 59 MC 013b + 60 MC 013b + 61 MC 013b + 62 MC 013b + 63 MC 0000 + 67 MR 0000 ed + 67 MC 0001 + 71 MR 0001 bb + 71 MC 0008 + 72 MC 1dcd + 75 MR 1dcd f9 + 76 PW 003b f9 +0957 003b be49 1dcc 0000 0000 0000 0000 0000 0000 0000 0002 +00 08 0 0 0 0 79 + +ee + 0 MC 0000 + 4 MR 0000 ee + 4 MC 0001 + 7 MR 0001 d0 +eeac 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +ef + 0 MC 6d33 + 4 MR 6d33 ef + 4 MC 0001 + 5 MC 5506 + 8 MW 5506 6d + 8 MC 5505 + 11 MW 5505 34 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5505 0028 +00 01 0 0 0 0 11 +5505 34 6d -1 + +f0_1 + 0 MC 0000 + 4 MR 0000 f0 + 4 MC 0001 + 5 MC 43f7 + 8 MR 43f7 e9 + 8 MC 43f8 + 11 MR 43f8 af +0018 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f9 afe9 +00 01 0 0 0 0 11 + +f0_2 + 0 MC 0000 + 4 MR 0000 f0 + 4 MC 0001 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0001 +00 01 0 0 0 0 5 + +f1 + 0 MC 0000 + 4 MR 0000 f1 + 4 MC 4143 + 7 MR 4143 ce + 7 MC 4144 + 10 MR 4144 e8 +e8ce 0000 0000 0000 0000 0000 0000 0000 0000 0000 4145 0001 +00 01 0 0 0 0 10 + +f2_1 + 0 MC 0000 + 4 MR 0000 f2 + 4 MC 0001 + 7 MR 0001 1b + 7 MC 0002 + 10 MR 0002 e1 +0007 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e11b +00 01 0 0 0 0 10 + +f2_2 + 0 MC 0000 + 4 MR 0000 f2 + 4 MC 0001 + 7 MC 0002 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 + +f3 + 0 MC 0000 + 4 MR 0000 f3 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 + +f4_1 + 0 MC 0000 + 4 MR 0000 f4 + 4 MC 0001 + 7 MR 0001 61 + 7 MC 0002 + 10 MR 0002 9c + 10 MC 0002 + 11 MC 5697 + 14 MW 5697 00 + 14 MC 5696 + 17 MW 5696 03 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5696 9c61 +00 01 0 0 0 0 17 +5696 03 00 -1 + +f4_2 + 0 MC 0000 + 4 MR 0000 f4 + 4 MC 0001 + 7 MC 0002 +008e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0003 +00 01 0 0 0 0 10 + +f5 + 0 MC 0000 + 4 MR 0000 f5 + 4 MC 0001 + 5 MC ec11 + 8 MW ec11 53 + 8 MC ec10 + 11 MW ec10 e3 +53e3 1459 775f 1a2f 0000 0000 0000 0000 0000 0000 ec10 0001 +00 01 0 0 0 0 11 +ec10 e3 53 -1 + +f6 + 0 MC 0000 + 4 MR 0000 f6 + 4 MC 0001 + 7 MR 0001 a7 +a7a0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +f7 + 0 MC 6d33 + 4 MR 6d33 f7 + 4 MC 0001 + 5 MC 5506 + 8 MW 5506 6d + 8 MC 5505 + 11 MW 5505 34 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5505 0030 +00 01 0 0 0 0 11 +5505 34 6d -1 + +f8_1 + 0 MC 0000 + 4 MR 0000 f8 + 4 MC 0001 +0018 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0001 +00 01 0 0 0 0 5 + +f8_2 + 0 MC 0000 + 4 MR 0000 f8 + 4 MC 0001 + 5 MC 43f7 + 8 MR 43f7 e9 + 8 MC 43f8 + 11 MR 43f8 af +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f9 afe9 +00 01 0 0 0 0 11 + +f9 + 0 MC 0000 + 4 MR 0000 f9 + 4 MC 0001 + 5 MC 0001 +0000 0000 0000 ce32 0000 0000 0000 0000 0000 0000 ce32 0001 +00 01 0 0 0 0 6 + +fa_1 + 0 MC 0000 + 4 MR 0000 fa + 4 MC 0001 + 7 MR 0001 1b + 7 MC 0002 + 10 MR 0002 e1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e11b +00 01 0 0 0 0 10 + +fa_2 + 0 MC 0000 + 4 MR 0000 fa + 4 MC 0001 + 7 MC 0002 +0007 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 + +fb + 0 MC 0000 + 4 MR 0000 fb +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 1 1 0 0 4 + +fc_1 + 0 MC 0000 + 4 MR 0000 fc + 4 MC 0001 + 7 MR 0001 61 + 7 MC 0002 + 10 MR 0002 9c + 10 MC 0002 + 11 MC 5697 + 14 MW 5697 00 + 14 MC 5696 + 17 MW 5696 03 +008e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5696 9c61 +00 01 0 0 0 0 17 +5696 03 00 -1 + +fc_2 + 0 MC 0000 + 4 MR 0000 fc + 4 MC 0001 + 7 MC 0002 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0003 +00 01 0 0 0 0 10 + +fd09 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 09 + 8 MC 0002 + 9 MC 0002 + 10 MC 0002 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 +4649 a623 bab2 d788 0000 0000 0000 0000 c9e8 9cbb 0000 0002 +00 02 0 0 0 0 15 + +fd19 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 19 + 8 MC 0002 + 9 MC 0002 + 10 MC 0002 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 +b3ec 5336 76cb 54e2 0000 0000 0000 0000 b9ce fcef 0000 0002 +00 02 0 0 0 0 15 + +fd21 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 21 + 8 MC 0002 + 11 MR 0002 46 + 11 MC 0003 + 14 MR 0003 47 +c924 5c83 e0e2 eddb 0000 0000 0000 0000 6e9f 4746 0000 0004 +00 02 0 0 0 0 14 + +fd22 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 22 + 8 MC 0002 + 11 MR 0002 9a + 11 MC 0003 + 14 MR 0003 e2 + 14 MC e29a + 17 MW e29a e4 + 17 MC e29b + 20 MW e29b 81 +1235 f0b6 b74c cc9f 0000 0000 0000 0000 8b00 81e4 0000 0004 +00 02 0 0 0 0 20 +e29a e4 81 -1 + +fd23 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 23 + 8 MC 0002 + 9 MC 0002 +69f2 c1d3 0f6f 2169 0000 0000 0000 0000 e39e 2606 0000 0002 +00 02 0 0 0 0 10 + +fd24 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 24 +5520 9684 d36a dac3 0000 0000 0000 0000 7803 6534 0000 0002 +00 02 0 0 0 0 8 + +fd25 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 25 +cd03 b5e4 a754 9526 0000 0000 0000 0000 3dcb 02b2 0000 0002 +00 02 0 0 0 0 8 + +fd26 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 26 + 8 MC 0002 + 11 MR 0002 77 +2452 300b b4a1 929d 0000 0000 0000 0000 c259 7730 0000 0003 +00 02 0 0 0 0 11 + +fd29 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 29 + 8 MC 0002 + 9 MC 0002 + 10 MC 0002 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 +5830 49d0 ec95 011c 0000 0000 0000 0000 ec6c b298 0000 0002 +00 02 0 0 0 0 15 + +fd2a + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 2a + 8 MC 0002 + 11 MR 0002 91 + 11 MC 0003 + 14 MR 0003 f9 + 14 MC f991 + 17 MR f991 92 + 17 MC f992 + 20 MR f992 bf +0f82 3198 87e3 7c1c 0000 0000 0000 0000 1bb4 bf92 0000 0004 +00 02 0 0 0 0 20 + +fd2b + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 2b + 8 MC 0002 + 9 MC 0002 +ab27 942f 82fa 6f2f 0000 0000 0000 0000 9438 ebbb 0000 0002 +00 02 0 0 0 0 10 + +fd2c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 2c +66a9 0ab1 5656 e5a9 0000 0000 0000 0000 5fb9 4df8 0000 0002 +00 02 0 0 0 0 8 + +fd2d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 2d +320b f78a b906 31d0 0000 0000 0000 0000 c72a e91b 0000 0002 +00 02 0 0 0 0 8 + +fd2e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 2e + 8 MC 0002 + 11 MR 0002 49 +2114 4923 6e65 006c 0000 0000 0000 0000 da39 c049 0000 0003 +00 02 0 0 0 0 11 + +fd34 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 34 + 8 MC 0002 + 11 MR 0002 b8 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC ef7c + 19 MR ef7c e0 + 19 MC ef7c + 20 MC ef7c + 23 MW ef7c e1 +d5a0 6f24 7df7 74f0 0000 0000 0000 0000 365a efc4 0000 0003 +00 02 0 0 0 0 23 +ef7c e1 -1 + +fd35 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 35 + 8 MC 0002 + 11 MR 0002 ab + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC ae71 + 19 MR ae71 a6 + 19 MC ae71 + 20 MC ae71 + 23 MW ae71 a5 +8ca2 35d8 7c1a 1c0a 0000 0000 0000 0000 62bb aec6 0000 0003 +00 02 0 0 0 0 23 +ae71 a5 -1 + +fd36 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 36 + 8 MC 0002 + 11 MR 0002 81 + 11 MC 0003 + 14 MR 0003 c5 + 14 MC 0003 + 15 MC 0003 + 16 MC bd55 + 19 MW bd55 c5 +e0f9 ae1f 4aef c9d5 0000 0000 0000 0000 c0db bdd4 0000 0004 +00 02 0 0 0 0 19 +bd55 c5 -1 + +fd39 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 39 + 8 MC 0002 + 9 MC 0002 + 10 MC 0002 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 +2631 726f 9c7f cd46 0000 0000 0000 0000 dc45 312c dc57 0002 +00 02 0 0 0 0 15 + +fd44 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 44 +0e58 6892 3580 9be4 0000 0000 0000 0000 1b79 685e 0000 0002 +00 02 0 0 0 0 8 + +fd45 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 45 +6555 7788 5ae8 c948 0000 0000 0000 0000 d7b8 a177 0000 0002 +00 02 0 0 0 0 8 + +fd46 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 46 + 8 MC 0002 + 11 MR 0002 4d + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 3b49 + 19 MR 3b49 c9 +87f3 c9d5 5eea 830b 0000 0000 0000 0000 dcee 3afc 0000 0003 +00 02 0 0 0 0 19 + +fd4c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 4c +7e6b bd01 24b6 ff94 0000 0000 0000 0000 862d 01d0 0000 0002 +00 02 0 0 0 0 8 + +fd4d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 4d +50cf e3c9 998e dba2 0000 0000 0000 0000 c4f5 c7c9 0000 0002 +00 02 0 0 0 0 8 + +fd4e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 4e + 8 MC 0002 + 11 MR 0002 67 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC bc01 + 19 MR bc01 9d +2c0f 699d 748a 9290 0000 0000 0000 0000 904f bb9a 0000 0003 +00 02 0 0 0 0 19 + +fd54 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 54 +d7f9 f65b d401 d4c4 0000 0000 0000 0000 4b8e d437 0000 0002 +00 02 0 0 0 0 8 + +fd55 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 55 +ab98 fdab a94a 010e 0000 0000 0000 0000 126b 13a9 0000 0002 +00 02 0 0 0 0 8 + +fd56 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 56 + 8 MC 0002 + 11 MR 0002 ce + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC fd70 + 19 MR fd70 78 +d3e8 df10 7842 b641 0000 0000 0000 0000 a5a0 fda2 0000 0003 +00 02 0 0 0 0 19 + +fd5c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 5c +11d5 c489 e2d8 434e 0000 0000 0000 0000 3244 d8bb 0000 0002 +00 02 0 0 0 0 8 + +fd5d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 5d +e945 dbae 324e 4f7e 0000 0000 0000 0000 fa56 074e 0000 0002 +00 02 0 0 0 0 8 + +fd5e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 5e + 8 MC 0002 + 11 MR 0002 c6 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 8a70 + 19 MR 8a70 8c +6f3b e9dc 7a8c 14f3 0000 0000 0000 0000 ec76 8aaa 0000 0003 +00 02 0 0 0 0 19 + +fd60 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 60 +8579 005d d9ee faee 0000 0000 0000 0000 382d 0095 0000 0002 +00 02 0 0 0 0 8 + +fd61 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 61 +5682 dbc3 b495 9799 0000 0000 0000 0000 85b2 c31e 0000 0002 +00 02 0 0 0 0 8 + +fd62 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 62 +906b f52e f3d8 1e8c 0000 0000 0000 0000 ddba f302 0000 0002 +00 02 0 0 0 0 8 + +fd63 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 63 +9d59 beb9 d826 0eaa 0000 0000 0000 0000 4290 26b9 0000 0002 +00 02 0 0 0 0 8 + +fd64 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 64 +7b0e e394 8a25 cddf 0000 0000 0000 0000 9784 2116 0000 0002 +00 02 0 0 0 0 8 + +fd65 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 65 +b827 eb4f f666 c52a 0000 0000 0000 0000 6206 1f1f 0000 0002 +00 02 0 0 0 0 8 + +fd66 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 66 + 8 MC 0002 + 11 MR 0002 80 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 5aa4 + 19 MR 5aa4 77 +9129 e4ee e3a3 77ca 0000 0000 0000 0000 4d93 5b24 0000 0003 +00 02 0 0 0 0 19 + +fd67 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 67 +db7a b40b 7b58 49fd 0000 0000 0000 0000 266f db7b 0000 0002 +00 02 0 0 0 0 8 + +fd68 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 68 +4d1d 4fd9 783e 0745 0000 0000 0000 0000 0c3d 824f 0000 0002 +00 02 0 0 0 0 8 + +fd69 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 69 +1589 5ceb b5db 922a 0000 0000 0000 0000 3c3a dceb 0000 0002 +00 02 0 0 0 0 8 + +fd6a + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 6a +607a e035 5bb9 dac0 0000 0000 0000 0000 fc04 b55b 0000 0002 +00 02 0 0 0 0 8 + +fd6b + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 6b +db2a e244 1182 096f 0000 0000 0000 0000 198e 9182 0000 0002 +00 02 0 0 0 0 8 + +fd6c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 6c +a0be 34ef 8fcd 40a7 0000 0000 0000 0000 4481 c2c2 0000 0002 +00 02 0 0 0 0 8 + +fd6d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 6d +fdfc 727a b839 50a6 0000 0000 0000 0000 e782 02e5 0000 0002 +00 02 0 0 0 0 8 + +fd6e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 6e + 8 MC 0002 + 11 MR 0002 78 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC b11b + 19 MR b11b f8 +cfd4 6ef1 c07d ebf8 0000 0000 0000 0000 b0f9 b0a3 0000 0003 +00 02 0 0 0 0 19 + +fd6f + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 6f +8e1d a138 f20a 298e 0000 0000 0000 0000 b600 0c8e 0000 0002 +00 02 0 0 0 0 8 + +fd70 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 70 + 8 MC 0002 + 11 MR 0002 53 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 23f4 + 19 MW 23f4 33 +2677 33c5 c0dc 262f 0000 0000 0000 0000 d3dc 23a1 0000 0003 +00 02 0 0 0 0 19 +23f4 33 -1 + +fd71 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 71 + 8 MC 0002 + 11 MR 0002 b4 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC bf5f + 19 MW bf5f ae +892e 04ae d67f 81ec 0000 0000 0000 0000 7757 bfab 0000 0003 +00 02 0 0 0 0 19 +bf5f ae -1 + +fd72 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 72 + 8 MC 0002 + 11 MR 0002 e3 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 7c63 + 19 MW 7c63 dd +d2dc c23c dd54 6559 0000 0000 0000 0000 b32b 7c80 0000 0003 +00 02 0 0 0 0 19 +7c63 dd -1 + +fd73 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 73 + 8 MC 0002 + 11 MR 0002 17 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 8779 + 19 MW 8779 09 +49ef bff2 8409 02dd 0000 0000 0000 0000 af95 8762 0000 0003 +00 02 0 0 0 0 19 +8779 09 -1 + +fd74 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 74 + 8 MC 0002 + 11 MR 0002 f6 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 92d1 + 19 MW 92d1 1f +9479 9817 fa2e 1fe0 0000 0000 0000 0000 a395 92db 0000 0003 +00 02 0 0 0 0 19 +92d1 1f -1 + +fd75 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 75 + 8 MC 0002 + 11 MR 0002 ab + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 16cf + 19 MW 16cf 7b +c8d6 6aa4 180e e37b 0000 0000 0000 0000 02cf 1724 0000 0003 +00 02 0 0 0 0 19 +16cf 7b -1 + +fd77 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 77 + 8 MC 0002 + 11 MR 0002 f7 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 6b44 + 19 MW 6b44 6f +6f9e 7475 78ad 2b8c 0000 0000 0000 0000 c6b7 6b4d 0000 0003 +00 02 0 0 0 0 19 +6b44 6f -1 + +fd7c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 7c +c628 93fc a3d4 dc9e 0000 0000 0000 0000 21ac c617 0000 0002 +00 02 0 0 0 0 8 + +fd7d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 7d +b9e5 3cbe 02c3 26c2 0000 0000 0000 0000 ca81 92b9 0000 0002 +00 02 0 0 0 0 8 + +fd7e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 7e + 8 MC 0002 + 11 MR 0002 e4 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC d443 + 19 MR d443 aa +aa96 daba 147b f362 0000 0000 0000 0000 7110 d45f 0000 0003 +00 02 0 0 0 0 19 + +fd84 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 84 +7f2d 7cae c4da 7aee 0000 0000 0000 0000 43ee c08e 0000 0002 +00 02 0 0 0 0 8 + +fd85 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 85 +eba8 1dea 324f 84e7 0000 0000 0000 0000 e7a8 f799 0000 0002 +00 02 0 0 0 0 8 + +fd86 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 86 + 8 MC 0002 + 11 MR 0002 ce + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 8b01 + 19 MR 8b01 e1 +dd89 b882 43f9 3e15 0000 0000 0000 0000 9781 8b33 0000 0003 +00 02 0 0 0 0 19 + +fd8c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 8c +3839 42b1 5e8a 081c 0000 0000 0000 0000 cb58 3b4e 0000 0002 +00 02 0 0 0 0 8 + +fd8d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 8d +8f89 7750 8ad6 295c 0000 0000 0000 0000 695c 99fb 0000 0002 +00 02 0 0 0 0 8 + +fd8e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 8e + 8 MC 0002 + 11 MR 0002 78 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 1b1a + 19 MR 1b1a c0 +0101 398f f6dc 06f3 0000 0000 0000 0000 f34a 1aa2 0000 0003 +00 02 0 0 0 0 19 + +fd94 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 94 +2f3b d255 b9d6 20bb 0000 0000 0000 0000 1e6a d5ef 0000 0002 +00 02 0 0 0 0 8 + +fd95 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 95 +f4a3 b455 2388 ec1e 0000 0000 0000 0000 7637 cb97 0000 0002 +00 02 0 0 0 0 8 + +fd96 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 96 + 8 MC 0002 + 11 MR 0002 55 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC c0e0 + 19 MR c0e0 7b +2536 22ac 0413 4b13 0000 0000 0000 0000 b44e c08b 0000 0003 +00 02 0 0 0 0 19 + +fd9c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 9c +f3a3 3ecf ced3 66ec 0000 0000 0000 0000 4bff b133 0000 0002 +00 02 0 0 0 0 8 + +fd9d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 9d +fdbb 8bd0 131b 3094 0000 0000 0000 0000 afc3 7409 0000 0002 +00 02 0 0 0 0 8 + +fd9e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 9e + 8 MC 0002 + 11 MR 0002 f9 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC f665 + 19 MR f665 f3 +c583 981f bb8e d6d5 0000 0000 0000 0000 5c3b f66c 0000 0003 +00 02 0 0 0 0 19 + +fda4 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 a4 +0054 79c0 2c7c 3e06 0000 0000 0000 0000 7399 037a 0000 0002 +00 02 0 0 0 0 8 + +fda5 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 a5 +0054 654d 9653 2b33 0000 0000 0000 0000 61a4 8f88 0000 0002 +00 02 0 0 0 0 8 + +fda6 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 a6 + 8 MC 0002 + 11 MR 0002 53 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 65ee + 19 MR 65ee 95 +9594 40bb 3742 6ff1 0000 0000 0000 0000 ad28 659b 0000 0003 +00 02 0 0 0 0 19 + +fdac + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 ac +2724 72e3 dd4d 1b62 0000 0000 0000 0000 4753 5d63 0000 0002 +00 02 0 0 0 0 8 + +fdad + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 ad +eca8 2573 19cc 78fb 0000 0000 0000 0000 5248 8391 0000 0002 +00 02 0 0 0 0 8 + +fdae + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 ae + 8 MC 0002 + 11 MR 0002 09 + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC 8201 + 19 MR 8201 cb +6b28 bc27 257b 5489 0000 0000 0000 0000 fa59 81f8 0000 0003 +00 02 0 0 0 0 19 + +fdb4 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 b4 +cf8c 3461 f173 8ad3 0000 0000 0000 0000 c1a2 8265 0000 0002 +00 02 0 0 0 0 8 + +fdb5 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 b5 +3720 e6ea f919 327c 0000 0000 0000 0000 4299 9733 0000 0002 +00 02 0 0 0 0 8 + +fdb6 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 b6 + 8 MC 0002 + 11 MR 0002 4b + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC dfb8 + 19 MR dfb8 64 +ffac 3509 d6ca b16a 0000 0000 0000 0000 a099 df6d 0000 0003 +00 02 0 0 0 0 19 + +fdbc + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 bc +b49a 9302 e35d 31bc 0000 0000 0000 0000 5c12 1c92 0000 0002 +00 02 0 0 0 0 8 + +fdbd + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 bd +391a 7b82 dfeb 03ee 0000 0000 0000 0000 be7b b30f 0000 0002 +00 02 0 0 0 0 8 + +fdbe + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 be + 8 MC 0002 + 11 MR 0002 6b + 11 MC 0002 + 12 MC 0002 + 13 MC 0002 + 14 MC 0002 + 15 MC 0002 + 16 MC a9d6 + 19 MR a9d6 c0 +0903 0b31 f4ad 9d4c 0000 0000 0000 0000 b95a a96b 0000 0003 +00 02 0 0 0 0 19 + +fdcb00 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0b + 11 MC 0003 + 14 MR 0003 00 + 14 MC 0003 + 15 MC 0003 + 16 MC 2781 + 19 MR 2781 50 + 19 MC 2781 + 20 MC 2781 + 23 MW 2781 a0 +85a4 a0d0 a135 20c5 0000 0000 0000 0000 b8de 2776 0000 0004 +00 02 0 0 0 0 23 +2781 a0 -1 + +fdcb01 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c8 + 11 MC 0003 + 14 MR 0003 01 + 14 MC 0003 + 15 MC 0003 + 16 MC 5bfd + 19 MR 5bfd cb + 19 MC 5bfd + 20 MC 5bfd + 23 MW 5bfd 97 +5781 2b97 3576 280a 0000 0000 0000 0000 ae22 5c35 0000 0004 +00 02 0 0 0 0 23 +5bfd 97 -1 + +fdcb02 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 14 + 11 MC 0003 + 14 MR 0003 02 + 14 MC 0003 + 15 MC 0003 + 16 MC 3e06 + 19 MR 3e06 58 + 19 MC 3e06 + 20 MC 3e06 + 23 MW 3e06 b0 +dca0 2b37 b0c8 5dd9 0000 0000 0000 0000 b2d2 3df2 0000 0004 +00 02 0 0 0 0 23 +3e06 b0 -1 + +fdcb03 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 3a + 11 MC 0003 + 14 MR 0003 03 + 14 MC 0003 + 15 MC 0003 + 16 MC 5821 + 19 MR 5821 1a + 19 MC 5821 + 20 MC 5821 + 23 MW 5821 34 +5720 c179 b234 7058 0000 0000 0000 0000 3f2e 57e7 0000 0004 +00 02 0 0 0 0 23 +5821 34 -1 + +fdcb04 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 67 + 11 MC 0003 + 14 MR 0003 04 + 14 MC 0003 + 15 MC 0003 + 16 MC 50d8 + 19 MR 50d8 92 + 19 MC 50d8 + 20 MC 50d8 + 23 MW 50d8 25 +ed21 3f03 3327 255a 0000 0000 0000 0000 cbf2 5071 0000 0004 +00 02 0 0 0 0 23 +50d8 25 -1 + +fdcb05 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 1e + 11 MC 0003 + 14 MR 0003 05 + 14 MC 0003 + 15 MC 0003 + 16 MC b279 + 19 MR b279 66 + 19 MC b279 + 20 MC b279 + 23 MW b279 cc +7a8c 0858 db6c dbcc 0000 0000 0000 0000 157a b25b 0000 0004 +00 02 0 0 0 0 23 +b279 cc -1 + +fdcb06 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 72 + 11 MC 0003 + 14 MR 0003 06 + 14 MC 0003 + 15 MC 0003 + 16 MC ff99 + 19 MR ff99 f1 + 19 MC ff99 + 20 MC ff99 + 23 MW ff99 e3 +f2a1 89a2 e78f ef74 0000 0000 0000 0000 140d ff27 0000 0004 +00 02 0 0 0 0 23 +ff99 e3 -1 + +fdcb07 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 24 + 11 MC 0003 + 14 MR 0003 07 + 14 MC 0003 + 15 MC 0003 + 16 MC 080f + 19 MR 080f ae + 19 MC 080f + 20 MC 080f + 23 MW 080f 5d +5d09 f3a7 3a6e 8f0a 0000 0000 0000 0000 8423 07eb 0000 0004 +00 02 0 0 0 0 23 +080f 5d -1 + +fdcb08 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 25 + 11 MC 0003 + 14 MR 0003 08 + 14 MC 0003 + 15 MC 0003 + 16 MC 615c + 19 MR 615c 83 + 19 MC 615c + 20 MC 615c + 23 MW 615c c1 +a681 c1ec c958 7bda 0000 0000 0000 0000 194d 6137 0000 0004 +00 02 0 0 0 0 23 +615c c1 -1 + +fdcb09 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 a0 + 11 MC 0003 + 14 MR 0003 09 + 14 MC 0003 + 15 MC 0003 + 16 MC 197a + 19 MR 197a 27 + 19 MC 197a + 20 MC 197a + 23 MW 197a 93 +5485 fa93 84e8 4fa5 0000 0000 0000 0000 1ad3 19da 0000 0004 +00 02 0 0 0 0 23 +197a 93 -1 + +fdcb0a + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e1 + 11 MC 0003 + 14 MR 0003 0a + 14 MC 0003 + 15 MC 0003 + 16 MC eed7 + 19 MR eed7 19 + 19 MC eed7 + 20 MC eed7 + 23 MW eed7 8c +b389 a2bb 8cd6 9617 0000 0000 0000 0000 f946 eef6 0000 0004 +00 02 0 0 0 0 23 +eed7 8c -1 + +fdcb0b + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0c + 11 MC 0003 + 14 MR 0003 0b + 14 MC 0003 + 15 MC 0003 + 16 MC c69b + 19 MR c69b f2 + 19 MC c69b + 20 MC c69b + 23 MW c69b 79 +ae28 8c4e e179 1c54 0000 0000 0000 0000 e108 c68f 0000 0004 +00 02 0 0 0 0 23 +c69b 79 -1 + +fdcb0c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d7 + 11 MC 0003 + 14 MR 0003 0c + 14 MC 0003 + 15 MC 0003 + 16 MC 8c74 + 19 MR 8c74 ae + 19 MC 8c74 + 20 MC 8c74 + 23 MW 8c74 57 +8700 6b16 4c3b 570a 0000 0000 0000 0000 175a 8c9d 0000 0004 +00 02 0 0 0 0 23 +8c74 57 -1 + +fdcb0d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 11 + 11 MC 0003 + 14 MR 0003 0d + 14 MC 0003 + 15 MC 0003 + 16 MC fe3e + 19 MR fe3e 1b + 19 MC fe3e + 20 MC fe3e + 23 MW fe3e 8d +128d e0cb 3ab1 248d 0000 0000 0000 0000 1de4 fe2d 0000 0004 +00 02 0 0 0 0 23 +fe3e 8d -1 + +fdcb0e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0c + 11 MC 0003 + 14 MR 0003 0e + 14 MC 0003 + 15 MC 0003 + 16 MC f22f + 19 MR f22f f7 + 19 MC f22f + 20 MC f22f + 23 MW f22f fb +8da9 8f91 fc5a 5e2c 0000 0000 0000 0000 b2f2 f223 0000 0004 +00 02 0 0 0 0 23 +f22f fb -1 + +fdcb0f + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 15 + 11 MC 0003 + 14 MR 0003 0f + 14 MC 0003 + 15 MC 0003 + 16 MC ce4d + 19 MR ce4d 44 + 19 MC ce4d + 20 MC ce4d + 23 MW ce4d 22 +2224 2ac9 ec6b 6511 0000 0000 0000 0000 c93a ce38 0000 0004 +00 02 0 0 0 0 23 +ce4d 22 -1 + +fdcb10 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7a + 11 MC 0003 + 14 MR 0003 10 + 14 MC 0003 + 15 MC 0003 + 16 MC 431c + 19 MR 431c 1c + 19 MC 431c + 20 MC 431c + 23 MW 431c 39 +252c 3952 590d ac66 0000 0000 0000 0000 144f 42a2 0000 0004 +00 02 0 0 0 0 23 +431c 39 -1 + +fdcb11 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7b + 11 MC 0003 + 14 MR 0003 11 + 14 MC 0003 + 15 MC 0003 + 16 MC 9d0b + 19 MR 9d0b 5e + 19 MC 9d0b + 20 MC 9d0b + 23 MW 9d0b bc +bca8 61bc f5f8 af24 0000 0000 0000 0000 4019 9c90 0000 0004 +00 02 0 0 0 0 23 +9d0b bc -1 + +fdcb12 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 61 + 11 MC 0003 + 14 MR 0003 12 + 14 MC 0003 + 15 MC 0003 + 16 MC 8598 + 19 MR 8598 a7 + 19 MC 8598 + 20 MC 8598 + 23 MW 8598 4f +4e09 3a25 4f17 bcc7 0000 0000 0000 0000 0d7e 8537 0000 0004 +00 02 0 0 0 0 23 +8598 4f -1 + +fdcb13 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 b3 + 11 MC 0003 + 14 MR 0003 13 + 14 MC 0003 + 15 MC 0003 + 16 MC e74b + 19 MR e74b b3 + 19 MC e74b + 20 MC e74b + 23 MW e74b 66 +b225 b79b 8466 ff7d 0000 0000 0000 0000 414c e798 0000 0004 +00 02 0 0 0 0 23 +e74b 66 -1 + +fdcb14 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c4 + 11 MC 0003 + 14 MR 0003 14 + 14 MC 0003 + 15 MC 0003 + 16 MC d900 + 19 MR d900 06 + 19 MC d900 + 20 MC d900 + 23 MW d900 0d +ab08 451a fc65 0da1 0000 0000 0000 0000 0f4d d93c 0000 0004 +00 02 0 0 0 0 23 +d900 0d -1 + +fdcb15 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 17 + 11 MC 0003 + 14 MR 0003 15 + 14 MC 0003 + 15 MC 0003 + 16 MC 2d92 + 19 MR 2d92 12 + 19 MC 2d92 + 20 MC 2d92 + 23 MW 2d92 24 +2824 9532 8631 7524 0000 0000 0000 0000 e327 2d7b 0000 0004 +00 02 0 0 0 0 23 +2d92 24 -1 + +fdcb16 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 23 + 11 MC 0003 + 14 MR 0003 16 + 14 MC 0003 + 15 MC 0003 + 16 MC f0d7 + 19 MR f0d7 89 + 19 MC f0d7 + 20 MC f0d7 + 23 MW f0d7 12 +0c05 dcd7 adcc 196d 0000 0000 0000 0000 87e2 f0b4 0000 0004 +00 02 0 0 0 0 23 +f0d7 12 -1 + +fdcb17 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 8a + 11 MC 0003 + 14 MR 0003 17 + 14 MC 0003 + 15 MC 0003 + 16 MC 1f9d + 19 MR 1f9d b8 + 19 MC 1f9d + 20 MC 1f9d + 23 MW 1f9d 71 +7125 d016 066e 6638 0000 0000 0000 0000 5e92 2013 0000 0004 +00 02 0 0 0 0 23 +1f9d 71 -1 + +fdcb18 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c0 + 11 MC 0003 + 14 MR 0003 18 + 14 MC 0003 + 15 MC 0003 + 16 MC 31d6 + 19 MR 31d6 fa + 19 MC 31d6 + 20 MC 31d6 + 23 MW 31d6 fd +23a8 fd17 16e0 6894 0000 0000 0000 0000 b908 3216 0000 0004 +00 02 0 0 0 0 23 +31d6 fd -1 + +fdcb19 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 a2 + 11 MC 0003 + 14 MR 0003 19 + 14 MC 0003 + 15 MC 0003 + 16 MC 4cd0 + 19 MR 4cd0 4b + 19 MC 4cd0 + 20 MC 4cd0 + 23 MW 4cd0 a5 +11a5 c2a5 a9f3 2014 0000 0000 0000 0000 6db0 4d2e 0000 0004 +00 02 0 0 0 0 23 +4cd0 a5 -1 + +fdcb1a + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 78 + 11 MC 0003 + 14 MR 0003 1a + 14 MC 0003 + 15 MC 0003 + 16 MC 414b + 19 MR 414b 44 + 19 MC 414b + 20 MC 414b + 23 MW 414b 22 +bc24 6168 2241 b630 0000 0000 0000 0000 0207 40d3 0000 0004 +00 02 0 0 0 0 23 +414b 22 -1 + +fdcb1b + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 16 + 11 MC 0003 + 14 MR 0003 1b + 14 MC 0003 + 15 MC 0003 + 16 MC 71c6 + 19 MR 71c6 b8 + 19 MC 71c6 + 20 MC 71c6 + 23 MW 71c6 5c +7a0c 1286 fe5c c42d 0000 0000 0000 0000 e290 71b0 0000 0004 +00 02 0 0 0 0 23 +71c6 5c -1 + +fdcb1c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 86 + 11 MC 0003 + 14 MR 0003 1c + 14 MC 0003 + 15 MC 0003 + 16 MC dee8 + 19 MR dee8 8f + 19 MC dee8 + 20 MC dee8 + 23 MW dee8 c7 +9381 097b 6928 c7a3 0000 0000 0000 0000 ff2d df62 0000 0004 +00 02 0 0 0 0 23 +dee8 c7 -1 + +fdcb1d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 27 + 11 MC 0003 + 14 MR 0003 1d + 14 MC 0003 + 15 MC 0003 + 16 MC d68e + 19 MR d68e b7 + 19 MC d68e + 20 MC d68e + 23 MW d68e db +978d 2b30 2645 04db 0000 0000 0000 0000 186a d667 0000 0004 +00 02 0 0 0 0 23 +d68e db -1 + +fdcb1e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 3a + 11 MC 0003 + 14 MR 0003 1e + 14 MC 0003 + 15 MC 0003 + 16 MC da72 + 19 MR da72 25 + 19 MC da72 + 20 MC da72 + 23 MW da72 92 +2f81 2470 b521 6ca3 0000 0000 0000 0000 1066 da38 0000 0004 +00 02 0 0 0 0 23 +da72 92 -1 + +fdcb1f + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7b + 11 MC 0003 + 14 MR 0003 1f + 14 MC 0003 + 15 MC 0003 + 16 MC 2110 + 19 MR 2110 04 + 19 MC 2110 + 20 MC 2110 + 23 MW 2110 82 +8284 49a3 da18 3afd 0000 0000 0000 0000 a4f1 2095 0000 0004 +00 02 0 0 0 0 23 +2110 82 -1 + +fdcb20 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7a + 11 MC 0003 + 14 MR 0003 20 + 14 MC 0003 + 15 MC 0003 + 16 MC da9f + 19 MR da9f 89 + 19 MC da9f + 20 MC da9f + 23 MW da9f 12 +3d05 128f 206f 8894 0000 0000 0000 0000 ddab da25 0000 0004 +00 02 0 0 0 0 23 +da9f 12 -1 + +fdcb21 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7b + 11 MC 0003 + 14 MR 0003 21 + 14 MC 0003 + 15 MC 0003 + 16 MC deb1 + 19 MR deb1 23 + 19 MC deb1 + 20 MC deb1 + 23 MW deb1 46 +1600 6046 641a 6598 0000 0000 0000 0000 473b de36 0000 0004 +00 02 0 0 0 0 23 +deb1 46 -1 + +fdcb22 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9a + 11 MC 0003 + 14 MR 0003 22 + 14 MC 0003 + 15 MC 0003 + 16 MC 88c0 + 19 MR 88c0 d4 + 19 MC 88c0 + 20 MC 88c0 + 23 MW 88c0 a8 +ada9 efb2 a803 e732 0000 0000 0000 0000 c11d 8926 0000 0004 +00 02 0 0 0 0 23 +88c0 a8 -1 + +fdcb23 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f5 + 11 MC 0003 + 14 MR 0003 23 + 14 MC 0003 + 15 MC 0003 + 16 MC 524a + 19 MR 524a 65 + 19 MC 524a + 20 MC 524a + 23 MW 524a ca +218c d678 a7ca 25d7 0000 0000 0000 0000 4ca8 5255 0000 0004 +00 02 0 0 0 0 23 +524a ca -1 + +fdcb24 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 b4 + 11 MC 0003 + 14 MR 0003 24 + 14 MC 0003 + 15 MC 0003 + 16 MC afb2 + 19 MR afb2 7e + 19 MC afb2 + 20 MC afb2 + 23 MW afb2 fc +1cac da3e cc7c fc19 0000 0000 0000 0000 572c affe 0000 0004 +00 02 0 0 0 0 23 +afb2 fc -1 + +fdcb25 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 a6 + 11 MC 0003 + 14 MR 0003 25 + 14 MC 0003 + 15 MC 0003 + 16 MC 238f + 19 MR 238f 26 + 19 MC 238f + 20 MC 238f + 23 MW 238f 4c +9508 097c a341 894c 0000 0000 0000 0000 435d 23e9 0000 0004 +00 02 0 0 0 0 23 +238f 4c -1 + +fdcb26 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 bd + 11 MC 0003 + 14 MR 0003 26 + 14 MC 0003 + 15 MC 0003 + 16 MC d4a1 + 19 MR d4a1 bf + 19 MC d4a1 + 20 MC d4a1 + 23 MW d4a1 7e +582d 0e19 d277 bf7f 0000 0000 0000 0000 6504 d4e4 0000 0004 +00 02 0 0 0 0 23 +d4a1 7e -1 + +fdcb27 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 59 + 11 MC 0003 + 14 MR 0003 27 + 14 MC 0003 + 15 MC 0003 + 16 MC 8d9b + 19 MR 8d9b a7 + 19 MC 8d9b + 20 MC 8d9b + 23 MW 8d9b 4e +4e0d 8c06 2c4c d7c8 0000 0000 0000 0000 9239 8d42 0000 0004 +00 02 0 0 0 0 23 +8d9b 4e -1 + +fdcb28 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 83 + 11 MC 0003 + 14 MR 0003 28 + 14 MC 0003 + 15 MC 0003 + 16 MC aac6 + 19 MR aac6 5d + 19 MC aac6 + 20 MC aac6 + 23 MW aac6 2e +412d 2e9b 7745 76f5 0000 0000 0000 0000 a1bb ab43 0000 0004 +00 02 0 0 0 0 23 +aac6 2e -1 + +fdcb29 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7d + 11 MC 0003 + 14 MR 0003 29 + 14 MC 0003 + 15 MC 0003 + 16 MC 03c0 + 19 MR 03c0 84 + 19 MC 03c0 + 20 MC 03c0 + 23 MW 03c0 c2 +0b80 afc2 fea6 9478 0000 0000 0000 0000 32bb 0343 0000 0004 +00 02 0 0 0 0 23 +03c0 c2 -1 + +fdcb2a + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f9 + 11 MC 0003 + 14 MR 0003 2a + 14 MC 0003 + 15 MC 0003 + 16 MC abe0 + 19 MR abe0 dd + 19 MC abe0 + 20 MC abe0 + 23 MW abe0 ee +f2ad 8c31 ee32 7feb 0000 0000 0000 0000 7db7 abe7 0000 0004 +00 02 0 0 0 0 23 +abe0 ee -1 + +fdcb2b + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 4b + 11 MC 0003 + 14 MR 0003 2b + 14 MC 0003 + 15 MC 0003 + 16 MC 4adf + 19 MR 4adf 49 + 19 MC 4adf + 20 MC 4adf + 23 MW 4adf 24 +2425 6945 dc24 d643 0000 0000 0000 0000 5be1 4a94 0000 0004 +00 02 0 0 0 0 23 +4adf 24 -1 + +fdcb2c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e6 + 11 MC 0003 + 14 MR 0003 2c + 14 MC 0003 + 15 MC 0003 + 16 MC ccb7 + 19 MR ccb7 3c + 19 MC ccb7 + 20 MC ccb7 + 23 MW ccb7 1e +110c b32b e530 1e5a 0000 0000 0000 0000 2416 ccd1 0000 0004 +00 02 0 0 0 0 23 +ccb7 1e -1 + +fdcb2d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 5f + 11 MC 0003 + 14 MR 0003 2d + 14 MC 0003 + 15 MC 0003 + 16 MC e545 + 19 MR e545 78 + 19 MC e545 + 20 MC e545 + 23 MW e545 3c +d02c 344b 1bb0 3e3c 0000 0000 0000 0000 fe11 e4e6 0000 0004 +00 02 0 0 0 0 23 +e545 3c -1 + +fdcb2e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 06 + 11 MC 0003 + 14 MR 0003 2e + 14 MC 0003 + 15 MC 0003 + 16 MC 4303 + 19 MR 4303 ad + 19 MC 4303 + 20 MC 4303 + 23 MW 4303 d6 +f481 b832 4b7f e2b7 0000 0000 0000 0000 9386 42fd 0000 0004 +00 02 0 0 0 0 23 +4303 d6 -1 + +fdcb2f + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 29 + 11 MC 0003 + 14 MR 0003 2f + 14 MC 0003 + 15 MC 0003 + 16 MC 16e1 + 19 MR 16e1 18 + 19 MC 16e1 + 20 MC 16e1 + 23 MW 16e1 0c +0c0c f2c2 9f2f c946 0000 0000 0000 0000 5fe0 16b8 0000 0004 +00 02 0 0 0 0 23 +16e1 0c -1 + +fdcb30 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 1b + 11 MC 0003 + 14 MR 0003 30 + 14 MC 0003 + 15 MC 0003 + 16 MC d661 + 19 MR d661 a5 + 19 MC d661 + 20 MC d661 + 23 MW d661 4b +ac0d 4b32 f9ed cabc 0000 0000 0000 0000 fabd d646 0000 0004 +00 02 0 0 0 0 23 +d661 4b -1 + +fdcb31 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f0 + 11 MC 0003 + 14 MR 0003 31 + 14 MC 0003 + 15 MC 0003 + 16 MC bfd0 + 19 MR bfd0 f1 + 19 MC bfd0 + 20 MC bfd0 + 23 MW bfd0 e3 +2ba1 51e3 83a7 7eee 0000 0000 0000 0000 7750 bfe0 0000 0004 +00 02 0 0 0 0 23 +bfd0 e3 -1 + +fdcb32 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c5 + 11 MC 0003 + 14 MR 0003 32 + 14 MC 0003 + 15 MC 0003 + 16 MC 5aa3 + 19 MR 5aa3 59 + 19 MC 5aa3 + 20 MC 5aa3 + 23 MW 5aa3 b3 +b2a0 a4b1 b385 f66e 0000 0000 0000 0000 a9a1 5ade 0000 0004 +00 02 0 0 0 0 23 +5aa3 b3 -1 + +fdcb33 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7f + 11 MC 0003 + 14 MR 0003 33 + 14 MC 0003 + 15 MC 0003 + 16 MC 19e3 + 19 MR 19e3 da + 19 MC 19e3 + 20 MC 19e3 + 23 MW 19e3 b5 +9ca1 2c90 d0b5 2be3 0000 0000 0000 0000 2691 1964 0000 0004 +00 02 0 0 0 0 23 +19e3 b5 -1 + +fdcb34 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d2 + 11 MC 0003 + 14 MR 0003 34 + 14 MC 0003 + 15 MC 0003 + 16 MC 5668 + 19 MR 5668 d4 + 19 MC 5668 + 20 MC 5668 + 23 MW 5668 a9 +60ad fbcd 5348 a947 0000 0000 0000 0000 5338 5696 0000 0004 +00 02 0 0 0 0 23 +5668 a9 -1 + +fdcb35 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 71 + 11 MC 0003 + 14 MR 0003 35 + 14 MC 0003 + 15 MC 0003 + 16 MC 0169 + 19 MR 0169 0b + 19 MC 0169 + 20 MC 0169 + 23 MW 0169 17 +9604 21c6 4cb6 b417 0000 0000 0000 0000 673a 00f8 0000 0004 +00 02 0 0 0 0 23 +0169 17 -1 + +fdcb36 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 da + 11 MC 0003 + 14 MR 0003 36 + 14 MC 0003 + 15 MC 0003 + 16 MC 1ab8 + 19 MR 1ab8 3c + 19 MC 1ab8 + 20 MC 1ab8 + 23 MW 1ab8 79 +dc28 0892 3cc7 1494 0000 0000 0000 0000 8598 1ade 0000 0004 +00 02 0 0 0 0 23 +1ab8 79 -1 + +fdcb37 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 cb + 11 MC 0003 + 14 MR 0003 37 + 14 MC 0003 + 15 MC 0003 + 16 MC e7b7 + 19 MR e7b7 9f + 19 MC e7b7 + 20 MC e7b7 + 23 MW e7b7 3f +3f2d 4524 208f 076f 0000 0000 0000 0000 ad10 e7ec 0000 0004 +00 02 0 0 0 0 23 +e7b7 3f -1 + +fdcb38 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 8e + 11 MC 0003 + 14 MR 0003 38 + 14 MC 0003 + 15 MC 0003 + 16 MC d024 + 19 MR d024 0d + 19 MC d024 + 20 MC d024 + 23 MW d024 06 +4f05 0650 40c6 4fb7 0000 0000 0000 0000 f37e d096 0000 0004 +00 02 0 0 0 0 23 +d024 06 -1 + +fdcb39 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7f + 11 MC 0003 + 14 MR 0003 39 + 14 MC 0003 + 15 MC 0003 + 16 MC f4b2 + 19 MR f4b2 f5 + 19 MC f4b2 + 20 MC f4b2 + 23 MW f4b2 7a +bc29 f57a 8dee e514 0000 0000 0000 0000 48bc f433 0000 0004 +00 02 0 0 0 0 23 +f4b2 7a -1 + +fdcb3a + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 1d + 11 MC 0003 + 14 MR 0003 3a + 14 MC 0003 + 15 MC 0003 + 16 MC cb20 + 19 MR cb20 a8 + 19 MC cb20 + 20 MC cb20 + 23 MW cb20 54 +d000 2ef5 5410 9ca5 0000 0000 0000 0000 b155 cb03 0000 0004 +00 02 0 0 0 0 23 +cb20 54 -1 + +fdcb3b + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 05 + 11 MC 0003 + 14 MR 0003 3b + 14 MC 0003 + 15 MC 0003 + 16 MC d268 + 19 MR d268 b2 + 19 MC d268 + 20 MC d268 + 23 MW d268 59 +500c a85b cf59 de8c 0000 0000 0000 0000 9c5b d263 0000 0004 +00 02 0 0 0 0 23 +d268 59 -1 + +fdcb3c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ae + 11 MC 0003 + 14 MR 0003 3c + 14 MC 0003 + 15 MC 0003 + 16 MC a7bd + 19 MR a7bd 96 + 19 MC a7bd + 20 MC a7bd + 23 MW a7bd 4b +970c 4456 0b52 4bad 0000 0000 0000 0000 6d2a a80f 0000 0004 +00 02 0 0 0 0 23 +a7bd 4b -1 + +fdcb3d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 13 + 11 MC 0003 + 14 MR 0003 3d + 14 MC 0003 + 15 MC 0003 + 16 MC e53d + 19 MR e53d fb + 19 MC e53d + 20 MC e53d + 23 MW e53d 7d +7d2d 9303 e12b bf7d 0000 0000 0000 0000 4c0f e52a 0000 0004 +00 02 0 0 0 0 23 +e53d 7d -1 + +fdcb3e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 2e + 11 MC 0003 + 14 MR 0003 3e + 14 MC 0003 + 15 MC 0003 + 16 MC b2ff + 19 MR b2ff 50 + 19 MC b2ff + 20 MC b2ff + 23 MW b2ff 28 +0d2c 3e02 8f74 0f82 0000 0000 0000 0000 85df b2d1 0000 0004 +00 02 0 0 0 0 23 +b2ff 28 -1 + +fdcb3f + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 21 + 11 MC 0003 + 14 MR 0003 3f + 14 MC 0003 + 15 MC 0003 + 16 MC c1cd + 19 MR c1cd 78 + 19 MC c1cd + 20 MC c1cd + 23 MW c1cd 3c +3c2c 12f6 426c 52d4 0000 0000 0000 0000 d9f7 c1ac 0000 0004 +00 02 0 0 0 0 23 +c1cd 3c -1 + +fdcb40 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 3b + 11 MC 0003 + 14 MR 0003 40 + 14 MC 0003 + 15 MC 0003 + 16 MC 41d0 + 19 MR 41d0 0d + 19 MC 41d0 +5410 2c34 6784 b376 0000 0000 0000 0000 8ff9 4195 0000 0004 +00 02 0 0 0 0 20 + +fdcb41 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 cc + 11 MC 0003 + 14 MR 0003 41 + 14 MC 0003 + 15 MC 0003 + 16 MC 0397 + 19 MR 0397 e9 + 19 MC 0397 +8c11 5a58 b71c 6777 0000 0000 0000 0000 deca 03cb 0000 0004 +00 02 0 0 0 0 20 + +fdcb42 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 01 + 11 MC 0003 + 14 MR 0003 42 + 14 MC 0003 + 15 MC 0003 + 16 MC 9f57 + 19 MR 9f57 a8 + 19 MC 9f57 +555d 9c29 2feb 97ff 0000 0000 0000 0000 7f17 9f56 0000 0004 +00 02 0 0 0 0 20 + +fdcb43 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 08 + 11 MC 0003 + 14 MR 0003 43 + 14 MC 0003 + 15 MC 0003 + 16 MC 1fd9 + 19 MR 1fd9 aa + 19 MC 1fd9 +b45c e58c e62e 2a32 0000 0000 0000 0000 7130 1fd1 0000 0004 +00 02 0 0 0 0 20 + +fdcb44 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 03 + 11 MC 0003 + 14 MR 0003 44 + 14 MC 0003 + 15 MC 0003 + 16 MC f4f6 + 19 MR f4f6 89 + 19 MC f4f6 +a930 68f4 9fa4 7f66 0000 0000 0000 0000 0209 f4f3 0000 0004 +00 02 0 0 0 0 20 + +fdcb45 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 8d + 11 MC 0003 + 14 MR 0003 45 + 14 MC 0003 + 15 MC 0003 + 16 MC 937a + 19 MR 937a 8d + 19 MC 937a +7311 8dde 5e4f 84a7 0000 0000 0000 0000 4e24 93ed 0000 0004 +00 02 0 0 0 0 20 + +fdcb46 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 8c + 11 MC 0003 + 14 MR 0003 46 + 14 MC 0003 + 15 MC 0003 + 16 MC 633d + 19 MR 633d fe + 19 MC 633d +0e74 b1f9 475f ebfc 0000 0000 0000 0000 7765 63b1 0000 0004 +00 02 0 0 0 0 20 + +fdcb47 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 96 + 11 MC 0003 + 14 MR 0003 47 + 14 MC 0003 + 15 MC 0003 + 16 MC 6da4 + 19 MR 6da4 d6 + 19 MC 6da4 +9b7d 7f38 0753 d5e7 0000 0000 0000 0000 b9c3 6e0e 0000 0004 +00 02 0 0 0 0 20 + +fdcb48 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 44 + 11 MC 0003 + 14 MR 0003 48 + 14 MC 0003 + 15 MC 0003 + 16 MC abed + 19 MR abed b0 + 19 MC abed +7d7c 50a9 2511 8f9f 0000 0000 0000 0000 b612 aba9 0000 0004 +00 02 0 0 0 0 20 + +fdcb49 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 4e + 11 MC 0003 + 14 MR 0003 49 + 14 MC 0003 + 15 MC 0003 + 16 MC 3e6f + 19 MR 3e6f a9 + 19 MC 3e6f +697c 3a39 b834 74b6 0000 0000 0000 0000 0eb7 3e21 0000 0004 +00 02 0 0 0 0 20 + +fdcb4a + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 52 + 11 MC 0003 + 14 MR 0003 4a + 14 MC 0003 + 15 MC 0003 + 16 MC e82d + 19 MR e82d da + 19 MC e82d +3139 68e0 fe2f a2c4 0000 0000 0000 0000 ac96 e7db 0000 0004 +00 02 0 0 0 0 20 + +fdcb4b + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ea + 11 MC 0003 + 14 MR 0003 4b + 14 MC 0003 + 15 MC 0003 + 16 MC 8829 + 19 MR 8829 4e + 19 MC 8829 +0919 2453 9186 a32a 0000 0000 0000 0000 71af 883f 0000 0004 +00 02 0 0 0 0 20 + +fdcb4c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ee + 11 MC 0003 + 14 MR 0003 4c + 14 MC 0003 + 15 MC 0003 + 16 MC 7f10 + 19 MR 7f10 70 + 19 MC 7f10 +4a7c 1e5b be2e 3ee4 0000 0000 0000 0000 af79 7f22 0000 0004 +00 02 0 0 0 0 20 + +fdcb4d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 29 + 11 MC 0003 + 14 MR 0003 4d + 14 MC 0003 + 15 MC 0003 + 16 MC a799 + 19 MR a799 78 + 19 MC a799 +9f75 6c8f 34f4 5a79 0000 0000 0000 0000 d3cc a770 0000 0004 +00 02 0 0 0 0 20 + +fdcb4e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 20 + 11 MC 0003 + 14 MR 0003 4e + 14 MC 0003 + 15 MC 0003 + 16 MC e1e8 + 19 MR e1e8 aa + 19 MC e1e8 +3031 5626 52bc 5503 0000 0000 0000 0000 303b e1c8 0000 0004 +00 02 0 0 0 0 20 + +fdcb4f + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9d + 11 MC 0003 + 14 MR 0003 4f + 14 MC 0003 + 15 MC 0003 + 16 MC 1c95 + 19 MR 1c95 18 + 19 MC 1c95 +605c e079 7152 671f 0000 0000 0000 0000 8c22 1cf8 0000 0004 +00 02 0 0 0 0 20 + +fdcb50 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 6b + 11 MC 0003 + 14 MR 0003 50 + 14 MC 0003 + 15 MC 0003 + 16 MC c7ca + 19 MR c7ca fe + 19 MC c7ca +8c10 1409 6d69 e5b2 0000 0000 0000 0000 4a0c c75f 0000 0004 +00 02 0 0 0 0 20 + +fdcb51 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 86 + 11 MC 0003 + 14 MR 0003 51 + 14 MC 0003 + 15 MC 0003 + 16 MC 341b + 19 MR 341b 13 + 19 MC 341b +8f75 40cb 9543 9b3a 0000 0000 0000 0000 1942 3495 0000 0004 +00 02 0 0 0 0 20 + +fdcb52 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e6 + 11 MC 0003 + 14 MR 0003 52 + 14 MC 0003 + 15 MC 0003 + 16 MC 8af3 + 19 MR 8af3 87 + 19 MC 8af3 +8919 3e41 7ab4 37f6 0000 0000 0000 0000 f82d 8b0d 0000 0004 +00 02 0 0 0 0 20 + +fdcb53 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d1 + 11 MC 0003 + 14 MR 0003 53 + 14 MC 0003 + 15 MC 0003 + 16 MC 7eb2 + 19 MR 7eb2 e4 + 19 MC 7eb2 +ef38 e345 09a3 f0b2 0000 0000 0000 0000 c378 7ee1 0000 0004 +00 02 0 0 0 0 20 + +fdcb54 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 08 + 11 MC 0003 + 14 MR 0003 54 + 14 MC 0003 + 15 MC 0003 + 16 MC 5b73 + 19 MR 5b73 07 + 19 MC 5b73 +7218 cb82 d966 2fc6 0000 0000 0000 0000 3c00 5b6b 0000 0004 +00 02 0 0 0 0 20 + +fdcb55 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 54 + 11 MC 0003 + 14 MR 0003 55 + 14 MC 0003 + 15 MC 0003 + 16 MC b506 + 19 MR b506 46 + 19 MC b506 +8530 c23b 6aab 9b00 0000 0000 0000 0000 fe93 b4b2 0000 0004 +00 02 0 0 0 0 20 + +fdcb56 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 6f + 11 MC 0003 + 14 MR 0003 56 + 14 MC 0003 + 15 MC 0003 + 16 MC 69a1 + 19 MR 69a1 df + 19 MC 69a1 +f539 f9f6 1e8c 9e08 0000 0000 0000 0000 716a 6932 0000 0004 +00 02 0 0 0 0 20 + +fdcb57 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 3c + 11 MC 0003 + 14 MR 0003 57 + 14 MC 0003 + 15 MC 0003 + 16 MC a3f7 + 19 MR a3f7 6c + 19 MC a3f7 +3731 b7dc be1c 38ea 0000 0000 0000 0000 5e82 a3bb 0000 0004 +00 02 0 0 0 0 20 + +fdcb58 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 4e + 11 MC 0003 + 14 MR 0003 58 + 14 MC 0003 + 15 MC 0003 + 16 MC 1ee2 + 19 MR 1ee2 f6 + 19 MC 1ee2 +755c 7296 3ea5 1143 0000 0000 0000 0000 d7cc 1e94 0000 0004 +00 02 0 0 0 0 20 + +fdcb59 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 2e + 11 MC 0003 + 14 MR 0003 59 + 14 MC 0003 + 15 MC 0003 + 16 MC fb01 + 19 MR fb01 6f + 19 MC fb01 +8038 bf2a 1809 ed31 0000 0000 0000 0000 fe2b fad3 0000 0004 +00 02 0 0 0 0 20 + +fdcb5a + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 88 + 11 MC 0003 + 14 MR 0003 5a + 14 MC 0003 + 15 MC 0003 + 16 MC 7b40 + 19 MR 7b40 6e + 19 MC 7b40 +cc38 a108 65d4 6f66 0000 0000 0000 0000 0008 7bb8 0000 0004 +00 02 0 0 0 0 20 + +fdcb5b + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e7 + 11 MC 0003 + 14 MR 0003 5b + 14 MC 0003 + 15 MC 0003 + 16 MC 3143 + 19 MR 3143 b1 + 19 MC 3143 +5c75 b3bd 25bd 98cf 0000 0000 0000 0000 2ba1 315c 0000 0004 +00 02 0 0 0 0 20 + +fdcb5c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 74 + 11 MC 0003 + 14 MR 0003 5c + 14 MC 0003 + 15 MC 0003 + 16 MC 54b2 + 19 MR 54b2 e3 + 19 MC 54b2 +b354 d43d d9c0 b04d 0000 0000 0000 0000 21a9 543e 0000 0004 +00 02 0 0 0 0 20 + +fdcb5d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 dc + 11 MC 0003 + 14 MR 0003 5d + 14 MC 0003 + 15 MC 0003 + 16 MC 3b60 + 19 MR 3b60 ef + 19 MC 3b60 +9f39 43dd ccb3 085a 0000 0000 0000 0000 f130 3b84 0000 0004 +00 02 0 0 0 0 20 + +fdcb5e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e2 + 11 MC 0003 + 14 MR 0003 5e + 14 MC 0003 + 15 MC 0003 + 16 MC e147 + 19 MR e147 17 + 19 MC e147 +6f75 eff5 993b 22b5 0000 0000 0000 0000 0f30 e165 0000 0004 +00 02 0 0 0 0 20 + +fdcb5f + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ab + 11 MC 0003 + 14 MR 0003 5f + 14 MC 0003 + 15 MC 0003 + 16 MC f7c6 + 19 MR f7c6 e2 + 19 MC f7c6 +d774 a57a aca6 667e 0000 0000 0000 0000 5c33 f81b 0000 0004 +00 02 0 0 0 0 20 + +fdcb60 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 85 + 11 MC 0003 + 14 MR 0003 60 + 14 MC 0003 + 15 MC 0003 + 16 MC 8bc9 + 19 MR 8bc9 b9 + 19 MC 8bc9 +1519 8d30 43f4 c65e 0000 0000 0000 0000 1e34 8c44 0000 0004 +00 02 0 0 0 0 20 + +fdcb61 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 be + 11 MC 0003 + 14 MR 0003 61 + 14 MC 0003 + 15 MC 0003 + 16 MC 92a2 + 19 MR 92a2 28 + 19 MC 92a2 +7b55 d421 5570 cb85 0000 0000 0000 0000 32ec 92e4 0000 0004 +00 02 0 0 0 0 20 + +fdcb62 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9d + 11 MC 0003 + 14 MR 0003 62 + 14 MC 0003 + 15 MC 0003 + 16 MC 7e4e + 19 MR 7e4e 1a + 19 MC 7e4e +ba39 4fbb 67a7 c5db 0000 0000 0000 0000 470b 7eb1 0000 0004 +00 02 0 0 0 0 20 + +fdcb63 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f4 + 11 MC 0003 + 14 MR 0003 63 + 14 MC 0003 + 15 MC 0003 + 16 MC 1707 + 19 MR 1707 3b + 19 MC 1707 +c011 2cc2 ce12 e77c 0000 0000 0000 0000 71c5 1713 0000 0004 +00 02 0 0 0 0 20 + +fdcb64 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 35 + 11 MC 0003 + 14 MR 0003 64 + 14 MC 0003 + 15 MC 0003 + 16 MC b36b + 19 MR b36b 8c + 19 MC b36b +0c75 7847 2494 71eb 0000 0000 0000 0000 315c b336 0000 0004 +00 02 0 0 0 0 20 + +fdcb65 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 37 + 11 MC 0003 + 14 MR 0003 65 + 14 MC 0003 + 15 MC 0003 + 16 MC 8a2b + 19 MR 8a2b 08 + 19 MC 8a2b +525d a82d 1112 8f09 0000 0000 0000 0000 672a 89f4 0000 0004 +00 02 0 0 0 0 20 + +fdcb66 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9d + 11 MC 0003 + 14 MR 0003 66 + 14 MC 0003 + 15 MC 0003 + 16 MC 68e5 + 19 MR 68e5 90 + 19 MC 68e5 +5839 c13e b136 6bc5 0000 0000 0000 0000 3ef9 6948 0000 0004 +00 02 0 0 0 0 20 + +fdcb67 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 cb + 11 MC 0003 + 14 MR 0003 67 + 14 MC 0003 + 15 MC 0003 + 16 MC 653d + 19 MR 653d 15 + 19 MC 653d +3130 0f7d 48b5 cc5f 0000 0000 0000 0000 2103 6572 0000 0004 +00 02 0 0 0 0 20 + +fdcb68 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ca + 11 MC 0003 + 14 MR 0003 68 + 14 MC 0003 + 15 MC 0003 + 16 MC 0388 + 19 MR 0388 83 + 19 MC 0388 +e354 39fb a03a 59bc 0000 0000 0000 0000 e04a 03be 0000 0004 +00 02 0 0 0 0 20 + +fdcb69 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e2 + 11 MC 0003 + 14 MR 0003 69 + 14 MC 0003 + 15 MC 0003 + 16 MC a5e5 + 19 MR a5e5 01 + 19 MC a5e5 +1874 5bc2 d4d9 4e8a 0000 0000 0000 0000 3716 a603 0000 0004 +00 02 0 0 0 0 20 + +fdcb6a + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ae + 11 MC 0003 + 14 MR 0003 6a + 14 MC 0003 + 15 MC 0003 + 16 MC 936c + 19 MR 936c 33 + 19 MC 936c +5b11 0099 34f8 3e96 0000 0000 0000 0000 f251 93be 0000 0004 +00 02 0 0 0 0 20 + +fdcb6b + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 1f + 11 MC 0003 + 14 MR 0003 6b + 14 MC 0003 + 15 MC 0003 + 16 MC aa4e + 19 MR aa4e 7c + 19 MC aa4e +bb39 9e6c abd1 515f 0000 0000 0000 0000 73db aa2f 0000 0004 +00 02 0 0 0 0 20 + +fdcb6c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0d + 11 MC 0003 + 14 MR 0003 6c + 14 MC 0003 + 15 MC 0003 + 16 MC 86c7 + 19 MR 86c7 25 + 19 MC 86c7 +1411 3af2 8f80 7be5 0000 0000 0000 0000 c379 86ba 0000 0004 +00 02 0 0 0 0 20 + +fdcb6d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f0 + 11 MC 0003 + 14 MR 0003 6d + 14 MC 0003 + 15 MC 0003 + 16 MC 62b8 + 19 MR 62b8 e3 + 19 MC 62b8 +6330 d077 668d 6e4a 0000 0000 0000 0000 b0a8 62c8 0000 0004 +00 02 0 0 0 0 20 + +fdcb6e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 93 + 11 MC 0003 + 14 MR 0003 6e + 14 MC 0003 + 15 MC 0003 + 16 MC 41a3 + 19 MR 41a3 1e + 19 MC 41a3 +2d54 f872 692d 92c4 0000 0000 0000 0000 36b5 4210 0000 0004 +00 02 0 0 0 0 20 + +fdcb6f + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 20 + 11 MC 0003 + 14 MR 0003 6f + 14 MC 0003 + 15 MC 0003 + 16 MC 006e + 19 MR 006e 37 + 19 MC 006e +df11 c7aa 9002 86b8 0000 0000 0000 0000 1347 004e 0000 0004 +00 02 0 0 0 0 20 + +fdcb70 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d9 + 11 MC 0003 + 14 MR 0003 70 + 14 MC 0003 + 15 MC 0003 + 16 MC 3e41 + 19 MR 3e41 c9 + 19 MC 3e41 +6e39 018d 5075 cf4e 0000 0000 0000 0000 cd2b 3e68 0000 0004 +00 02 0 0 0 0 20 + +fdcb71 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 27 + 11 MC 0003 + 14 MR 0003 71 + 14 MC 0003 + 15 MC 0003 + 16 MC 99c1 + 19 MR 99c1 3e + 19 MC 99c1 +1b5c e3af 94d5 0996 0000 0000 0000 0000 cad5 999a 0000 0004 +00 02 0 0 0 0 20 + +fdcb72 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 98 + 11 MC 0003 + 14 MR 0003 72 + 14 MC 0003 + 15 MC 0003 + 16 MC fcc9 + 19 MR fcc9 4f + 19 MC fcc9 +e839 26b1 8608 f3cb 0000 0000 0000 0000 6323 fd31 0000 0004 +00 02 0 0 0 0 20 + +fdcb73 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7a + 11 MC 0003 + 14 MR 0003 73 + 14 MC 0003 + 15 MC 0003 + 16 MC f652 + 19 MR f652 31 + 19 MC f652 +1075 446c c2f9 b9b1 0000 0000 0000 0000 0820 f5d8 0000 0004 +00 02 0 0 0 0 20 + +fdcb74 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 4b + 11 MC 0003 + 14 MR 0003 74 + 14 MC 0003 + 15 MC 0003 + 16 MC 5e95 + 19 MR 5e95 fe + 19 MC 5e95 +6819 38c2 0ea4 0825 0000 0000 0000 0000 d255 5e4a 0000 0004 +00 02 0 0 0 0 20 + +fdcb75 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 57 + 11 MC 0003 + 14 MR 0003 75 + 14 MC 0003 + 15 MC 0003 + 16 MC 6115 + 19 MR 6115 21 + 19 MC 6115 +5674 c034 6e11 d35e 0000 0000 0000 0000 e702 60be 0000 0004 +00 02 0 0 0 0 20 + +fdcb76 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 53 + 11 MC 0003 + 14 MR 0003 76 + 14 MC 0003 + 15 MC 0003 + 16 MC 6676 + 19 MR 6676 3a + 19 MC 6676 +7375 caff dd80 c8ed 0000 0000 0000 0000 7e39 6623 0000 0004 +00 02 0 0 0 0 20 + +fdcb77 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 02 + 11 MC 0003 + 14 MR 0003 77 + 14 MC 0003 + 15 MC 0003 + 16 MC 8843 + 19 MR 8843 d8 + 19 MC 8843 +ab18 983e 0bdc 3b46 0000 0000 0000 0000 ae51 8841 0000 0004 +00 02 0 0 0 0 20 + +fdcb78 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7d + 11 MC 0003 + 14 MR 0003 78 + 14 MC 0003 + 15 MC 0003 + 16 MC ff48 + 19 MR ff48 ec + 19 MC ff48 +27b9 ce2f 4824 6930 0000 0000 0000 0000 ae69 fecb 0000 0004 +00 02 0 0 0 0 20 + +fdcb79 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 23 + 11 MC 0003 + 14 MR 0003 79 + 14 MC 0003 + 15 MC 0003 + 16 MC 1cd1 + 19 MR 1cd1 87 + 19 MC 1cd1 +b498 6355 7896 8a7c 0000 0000 0000 0000 9090 1cae 0000 0004 +00 02 0 0 0 0 20 + +fdcb7a + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 42 + 11 MC 0003 + 14 MR 0003 7a + 14 MC 0003 + 15 MC 0003 + 16 MC d965 + 19 MR d965 b3 + 19 MC d965 +5998 ca21 1482 3fae 0000 0000 0000 0000 c6c9 d923 0000 0004 +00 02 0 0 0 0 20 + +fdcb7b + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 17 + 11 MC 0003 + 14 MR 0003 7b + 14 MC 0003 + 15 MC 0003 + 16 MC 0a9a + 19 MR 0a9a bd + 19 MC 0a9a +6398 0240 5efa 5e7b 0000 0000 0000 0000 3e50 0a83 0000 0004 +00 02 0 0 0 0 20 + +fdcb7c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f1 + 11 MC 0003 + 14 MR 0003 7c + 14 MC 0003 + 15 MC 0003 + 16 MC d362 + 19 MR d362 1b + 19 MC d362 +2254 aff4 b89b 4dca 0000 0000 0000 0000 0ac2 d371 0000 0004 +00 02 0 0 0 0 20 + +fdcb7d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9f + 11 MC 0003 + 14 MR 0003 7d + 14 MC 0003 + 15 MC 0003 + 16 MC abda + 19 MR abda 8a + 19 MC abda +1cb9 d615 825a 5e64 0000 0000 0000 0000 32fb ac3b 0000 0004 +00 02 0 0 0 0 20 + +fdcb7e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 40 + 11 MC 0003 + 14 MR 0003 7e + 14 MC 0003 + 15 MC 0003 + 16 MC 94c4 + 19 MR 94c4 9e + 19 MC 94c4 +5090 8dfe 1019 6778 0000 0000 0000 0000 f7df 9484 0000 0004 +00 02 0 0 0 0 20 + +fdcb7f + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 a2 + 11 MC 0003 + 14 MR 0003 7f + 14 MC 0003 + 15 MC 0003 + 16 MC ce0b + 19 MR ce0b 47 + 19 MC ce0b +1b5d 9ec3 14be 5ebe 0000 0000 0000 0000 1178 ce69 0000 0004 +00 02 0 0 0 0 20 + +fdcb80 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 8b + 11 MC 0003 + 14 MR 0003 80 + 14 MC 0003 + 15 MC 0003 + 16 MC 9198 + 19 MR 9198 a9 + 19 MC 9198 + 20 MC 9198 + 23 MW 9198 a8 +e196 a8ea 507e 6457 0000 0000 0000 0000 ab75 920d 0000 0004 +00 02 0 0 0 0 23 +9198 a8 -1 + +fdcb81 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 55 + 11 MC 0003 + 14 MR 0003 81 + 14 MC 0003 + 15 MC 0003 + 16 MC 82fa + 19 MR 82fa fa + 19 MC 82fa + 20 MC 82fa + 23 MW 82fa fa +3d3d b2fa 8759 0cb0 0000 0000 0000 0000 e078 82a5 0000 0004 +00 02 0 0 0 0 23 + +fdcb82 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9c + 11 MC 0003 + 14 MR 0003 82 + 14 MC 0003 + 15 MC 0003 + 16 MC 5d74 + 19 MR 5d74 9d + 19 MC 5d74 + 20 MC 5d74 + 23 MW 5d74 9c +4e10 5d8d 9ca0 ffff 0000 0000 0000 0000 ee0a 5dd8 0000 0004 +00 02 0 0 0 0 23 +5d74 9c -1 + +fdcb83 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 28 + 11 MC 0003 + 14 MR 0003 83 + 14 MC 0003 + 15 MC 0003 + 16 MC 3772 + 19 MR 3772 d5 + 19 MC 3772 + 20 MC 3772 + 23 MW 3772 d4 +3c7f fd81 47d4 9f12 0000 0000 0000 0000 cbf9 374a 0000 0004 +00 02 0 0 0 0 23 +3772 d4 -1 + +fdcb84 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 aa + 11 MC 0003 + 14 MR 0003 84 + 14 MC 0003 + 15 MC 0003 + 16 MC f16d + 19 MR f16d ea + 19 MC f16d + 20 MC f16d + 23 MW f16d ea +6872 81b1 1e7a ea7e 0000 0000 0000 0000 9b4c f1c3 0000 0004 +00 02 0 0 0 0 23 + +fdcb85 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 6c + 11 MC 0003 + 14 MR 0003 85 + 14 MC 0003 + 15 MC 0003 + 16 MC 049f + 19 MR 049f e0 + 19 MC 049f + 20 MC 049f + 23 MW 049f e0 +25b3 5694 57cd f3e0 0000 0000 0000 0000 8ed2 0433 0000 0004 +00 02 0 0 0 0 23 + +fdcb86 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7e + 11 MC 0003 + 14 MR 0003 86 + 14 MC 0003 + 15 MC 0003 + 16 MC 2ace + 19 MR 2ace 36 + 19 MC 2ace + 20 MC 2ace + 23 MW 2ace 36 +152b 8ce1 818d 40f2 0000 0000 0000 0000 9b7a 2a50 0000 0004 +00 02 0 0 0 0 23 + +fdcb87 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 59 + 11 MC 0003 + 14 MR 0003 87 + 14 MC 0003 + 15 MC 0003 + 16 MC 24c3 + 19 MR 24c3 65 + 19 MC 24c3 + 20 MC 24c3 + 23 MW 24c3 64 +641d 5353 618d 3266 0000 0000 0000 0000 1a53 246a 0000 0004 +00 02 0 0 0 0 23 +24c3 64 -1 + +fdcb88 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d4 + 11 MC 0003 + 14 MR 0003 88 + 14 MC 0003 + 15 MC 0003 + 16 MC c5e1 + 19 MR c5e1 d6 + 19 MC c5e1 + 20 MC c5e1 + 23 MW c5e1 d4 +7d14 d4ec 1e47 76e1 0000 0000 0000 0000 3871 c60d 0000 0004 +00 02 0 0 0 0 23 +c5e1 d4 -1 + +fdcb89 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c3 + 11 MC 0003 + 14 MR 0003 89 + 14 MC 0003 + 15 MC 0003 + 16 MC 09c4 + 19 MR 09c4 b0 + 19 MC 09c4 + 20 MC 09c4 + 23 MW 09c4 b0 +86c3 50b0 8592 d6ca 0000 0000 0000 0000 947b 0a01 0000 0004 +00 02 0 0 0 0 23 + +fdcb8a + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f9 + 11 MC 0003 + 14 MR 0003 8a + 14 MC 0003 + 15 MC 0003 + 16 MC d4cb + 19 MR d4cb d8 + 19 MC d4cb + 20 MC d4cb + 23 MW d4cb d8 +599c 961a d8f9 8470 0000 0000 0000 0000 d2a5 d4d2 0000 0004 +00 02 0 0 0 0 23 + +fdcb8b + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ed + 11 MC 0003 + 14 MR 0003 8b + 14 MC 0003 + 15 MC 0003 + 16 MC c70b + 19 MR c70b dc + 19 MC c70b + 20 MC c70b + 23 MW c70b dc +2715 a209 abdc 3eac 0000 0000 0000 0000 f352 c71e 0000 0004 +00 02 0 0 0 0 23 + +fdcb8c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 97 + 11 MC 0003 + 14 MR 0003 8c + 14 MC 0003 + 15 MC 0003 + 16 MC a199 + 19 MR a199 67 + 19 MC a199 + 20 MC a199 + 23 MW a199 65 +2818 4259 a9b0 65a0 0000 0000 0000 0000 6471 a202 0000 0004 +00 02 0 0 0 0 23 +a199 65 -1 + +fdcb8d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c9 + 11 MC 0003 + 14 MR 0003 8d + 14 MC 0003 + 15 MC 0003 + 16 MC 5632 + 19 MR 5632 9a + 19 MC 5632 + 20 MC 5632 + 23 MW 5632 98 +14e3 c330 9aa2 8498 0000 0000 0000 0000 0d4f 5669 0000 0004 +00 02 0 0 0 0 23 +5632 98 -1 + +fdcb8e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c2 + 11 MC 0003 + 14 MR 0003 8e + 14 MC 0003 + 15 MC 0003 + 16 MC 4c43 + 19 MR 4c43 7f + 19 MC 4c43 + 20 MC 4c43 + 23 MW 4c43 7d +cb79 0fff b244 c902 0000 0000 0000 0000 6246 4c81 0000 0004 +00 02 0 0 0 0 23 +4c43 7d -1 + +fdcb8f + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d4 + 11 MC 0003 + 14 MR 0003 8f + 14 MC 0003 + 15 MC 0003 + 16 MC 6b25 + 19 MR 6b25 59 + 19 MC 6b25 + 20 MC 6b25 + 23 MW 6b25 59 +59b4 5fbb 6c9b d0e3 0000 0000 0000 0000 ac5a 6b51 0000 0004 +00 02 0 0 0 0 23 + +fdcb90 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 fd + 11 MC 0003 + 14 MR 0003 90 + 14 MC 0003 + 15 MC 0003 + 16 MC d7f2 + 19 MR d7f2 70 + 19 MC d7f2 + 20 MC d7f2 + 23 MW d7f2 70 +1305 70e1 d627 7402 0000 0000 0000 0000 b470 d7f5 0000 0004 +00 02 0 0 0 0 23 + +fdcb91 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 bf + 11 MC 0003 + 14 MR 0003 91 + 14 MC 0003 + 15 MC 0003 + 16 MC 4791 + 19 MR 4791 0e + 19 MC 4791 + 20 MC 4791 + 23 MW 4791 0a +10df c40a 0213 fc7e 0000 0000 0000 0000 bfab 47d2 0000 0004 +00 02 0 0 0 0 23 +4791 0a -1 + +fdcb92 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0b + 11 MC 0003 + 14 MR 0003 92 + 14 MC 0003 + 15 MC 0003 + 16 MC 3145 + 19 MR 3145 f6 + 19 MC 3145 + 20 MC 3145 + 23 MW 3145 f2 +6a11 f89e f29d c115 0000 0000 0000 0000 bc5d 313a 0000 0004 +00 02 0 0 0 0 23 +3145 f2 -1 + +fdcb93 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 52 + 11 MC 0003 + 14 MR 0003 93 + 14 MC 0003 + 15 MC 0003 + 16 MC 2992 + 19 MR 2992 38 + 19 MC 2992 + 20 MC 2992 + 23 MW 2992 38 +61e5 cc2c 9538 b52b 0000 0000 0000 0000 fa64 2940 0000 0004 +00 02 0 0 0 0 23 + +fdcb94 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 95 + 11 MC 0003 + 14 MR 0003 94 + 14 MC 0003 + 15 MC 0003 + 16 MC fdb1 + 19 MR fdb1 48 + 19 MC fdb1 + 20 MC fdb1 + 23 MW fdb1 48 +31b4 3e5a fb3d 4883 0000 0000 0000 0000 a801 fe1c 0000 0004 +00 02 0 0 0 0 23 + +fdcb95 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 90 + 11 MC 0003 + 14 MR 0003 95 + 14 MC 0003 + 15 MC 0003 + 16 MC e706 + 19 MR e706 eb + 19 MC e706 + 20 MC e706 + 23 MW e706 eb +337e 63a7 2918 edeb 0000 0000 0000 0000 b12c e776 0000 0004 +00 02 0 0 0 0 23 + +fdcb96 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9e + 11 MC 0003 + 14 MR 0003 96 + 14 MC 0003 + 15 MC 0003 + 16 MC e66d + 19 MR e66d fc + 19 MC e66d + 20 MC e66d + 23 MW e66d f8 +5d99 d9ec b6d0 5ed5 0000 0000 0000 0000 5d9d e6cf 0000 0004 +00 02 0 0 0 0 23 +e66d f8 -1 + +fdcb97 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 64 + 11 MC 0003 + 14 MR 0003 97 + 14 MC 0003 + 15 MC 0003 + 16 MC 18e3 + 19 MR 18e3 9d + 19 MC 18e3 + 20 MC 18e3 + 23 MW 18e3 99 +99b6 8406 72c6 1ba7 0000 0000 0000 0000 6dca 187f 0000 0004 +00 02 0 0 0 0 23 +18e3 99 -1 + +fdcb98 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 da + 11 MC 0003 + 14 MR 0003 98 + 14 MC 0003 + 15 MC 0003 + 16 MC 4392 + 19 MR 4392 15 + 19 MC 4392 + 20 MC 4392 + 23 MW 4392 15 +0495 152f 8000 b749 0000 0000 0000 0000 e9cb 43b8 0000 0004 +00 02 0 0 0 0 23 + +fdcb99 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 78 + 11 MC 0003 + 14 MR 0003 99 + 14 MC 0003 + 15 MC 0003 + 16 MC d8e4 + 19 MR d8e4 b5 + 19 MC d8e4 + 20 MC d8e4 + 23 MW d8e4 b5 +2824 a4b5 a30b b286 0000 0000 0000 0000 10b0 d86c 0000 0004 +00 02 0 0 0 0 23 + +fdcb9a + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9c + 11 MC 0003 + 14 MR 0003 9a + 14 MC 0003 + 15 MC 0003 + 16 MC d6b3 + 19 MR d6b3 9d + 19 MC d6b3 + 20 MC d6b3 + 23 MW d6b3 95 +b0cc c40c 951a 014a 0000 0000 0000 0000 2ff9 d717 0000 0004 +00 02 0 0 0 0 23 +d6b3 95 -1 + +fdcb9b + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 83 + 11 MC 0003 + 14 MR 0003 9b + 14 MC 0003 + 15 MC 0003 + 16 MC caa1 + 19 MR caa1 95 + 19 MC caa1 + 20 MC caa1 + 23 MW caa1 95 +d092 a6c2 7995 5448 0000 0000 0000 0000 fab0 cb1e 0000 0004 +00 02 0 0 0 0 23 + +fdcb9c + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 1e + 11 MC 0003 + 14 MR 0003 9c + 14 MC 0003 + 15 MC 0003 + 16 MC 03d1 + 19 MR 03d1 78 + 19 MC 03d1 + 20 MC 03d1 + 23 MW 03d1 70 +b58d 1ed1 e93b 700c 0000 0000 0000 0000 5605 03b3 0000 0004 +00 02 0 0 0 0 23 +03d1 70 -1 + +fdcb9d + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e6 + 11 MC 0003 + 14 MR 0003 9d + 14 MC 0003 + 15 MC 0003 + 16 MC c06d + 19 MR c06d 53 + 19 MC c06d + 20 MC c06d + 23 MW c06d 53 +c7e9 18d3 8eed bd53 0000 0000 0000 0000 9a7f c087 0000 0004 +00 02 0 0 0 0 23 + +fdcb9e + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 eb + 11 MC 0003 + 14 MR 0003 9e + 14 MC 0003 + 15 MC 0003 + 16 MC 41a8 + 19 MR 41a8 61 + 19 MC 41a8 + 20 MC 41a8 + 23 MW 41a8 61 +81c7 71df 45d5 0ca7 0000 0000 0000 0000 648f 41bd 0000 0004 +00 02 0 0 0 0 23 + +fdcb9f + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 50 + 11 MC 0003 + 14 MR 0003 9f + 14 MC 0003 + 15 MC 0003 + 16 MC 9d99 + 19 MR 9d99 89 + 19 MC 9d99 + 20 MC 9d99 + 23 MW 9d99 81 +81f5 dc9f d490 15be 0000 0000 0000 0000 0e12 9d49 0000 0004 +00 02 0 0 0 0 23 +9d99 81 -1 + +fdcba0 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 76 + 11 MC 0003 + 14 MR 0003 a0 + 14 MC 0003 + 15 MC 0003 + 16 MC d703 + 19 MR d703 d4 + 19 MC d703 + 20 MC d703 + 23 MW d703 c4 +8ccb c457 bc19 e543 0000 0000 0000 0000 8c5d d68d 0000 0004 +00 02 0 0 0 0 23 +d703 c4 -1 + +fdcba1 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 31 + 11 MC 0003 + 14 MR 0003 a1 + 14 MC 0003 + 15 MC 0003 + 16 MC 66f9 + 19 MR 66f9 ec + 19 MC 66f9 + 20 MC 66f9 + 23 MW 66f9 ec +eee6 6dec 3a20 8bba 0000 0000 0000 0000 1de7 66c8 0000 0004 +00 02 0 0 0 0 23 + +fdcba2 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0e + 11 MC 0003 + 14 MR 0003 a2 + 14 MC 0003 + 15 MC 0003 + 16 MC 04cd + 19 MR 04cd 47 + 19 MC 04cd + 20 MC 04cd + 23 MW 04cd 47 +3f89 5120 47d1 e669 0000 0000 0000 0000 2993 04bf 0000 0004 +00 02 0 0 0 0 23 + +fdcba3 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 05 + 11 MC 0003 + 14 MR 0003 a3 + 14 MC 0003 + 15 MC 0003 + 16 MC ad7c + 19 MR ad7c 59 + 19 MC ad7c + 20 MC ad7c + 23 MW ad7c 49 +4439 6b8b 6149 1246 0000 0000 0000 0000 4cdb ad77 0000 0004 +00 02 0 0 0 0 23 +ad7c 49 -1 + +fdcba4 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 66 + 11 MC 0003 + 14 MR 0003 a4 + 14 MC 0003 + 15 MC 0003 + 16 MC c133 + 19 MR c133 c5 + 19 MC c133 + 20 MC c133 + 23 MW c133 c5 +3385 261e a487 c5bd 0000 0000 0000 0000 4b8f c0cd 0000 0004 +00 02 0 0 0 0 23 + +fdcba5 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 a0 + 11 MC 0003 + 14 MR 0003 a5 + 14 MC 0003 + 15 MC 0003 + 16 MC f141 + 19 MR f141 44 + 19 MC f141 + 20 MC f141 + 23 MW f141 44 +6e70 b7ed 22cd ae44 0000 0000 0000 0000 46de f1a1 0000 0004 +00 02 0 0 0 0 23 + +fdcba6 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 76 + 11 MC 0003 + 14 MR 0003 a6 + 14 MC 0003 + 15 MC 0003 + 16 MC 9469 + 19 MR 9469 bc + 19 MC 9469 + 20 MC 9469 + 23 MW 9469 ac +814b 6408 3dcb 971f 0000 0000 0000 0000 5716 93f3 0000 0004 +00 02 0 0 0 0 23 +9469 ac -1 + +fdcba7 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 66 + 11 MC 0003 + 14 MR 0003 a7 + 14 MC 0003 + 15 MC 0003 + 16 MC 7a2a + 19 MR 7a2a 2e + 19 MC 7a2a + 20 MC 7a2a + 23 MW 7a2a 2e +2ec2 679e c313 61df 0000 0000 0000 0000 67e6 79c4 0000 0004 +00 02 0 0 0 0 23 + +fdcba8 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 a9 + 11 MC 0003 + 14 MR 0003 a8 + 14 MC 0003 + 15 MC 0003 + 16 MC 0cef + 19 MR 0cef b7 + 19 MC 0cef + 20 MC 0cef + 23 MW 0cef 97 +537c 97ed 6cbb bd26 0000 0000 0000 0000 c638 0d46 0000 0004 +00 02 0 0 0 0 23 +0cef 97 -1 + +fdcba9 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 2b + 11 MC 0003 + 14 MR 0003 a9 + 14 MC 0003 + 15 MC 0003 + 16 MC 0f7f + 19 MR 0f7f 8f + 19 MC 0f7f + 20 MC 0f7f + 23 MW 0f7f 8f +ba5a 308f cdd7 298d 0000 0000 0000 0000 59ab 0f54 0000 0004 +00 02 0 0 0 0 23 + +fdcbaa + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0b + 11 MC 0003 + 14 MR 0003 aa + 14 MC 0003 + 15 MC 0003 + 16 MC b3dc + 19 MR b3dc 3a + 19 MC b3dc + 20 MC b3dc + 23 MW b3dc 1a +406a 2ed6 1a8c c633 0000 0000 0000 0000 87cb b3d1 0000 0004 +00 02 0 0 0 0 23 +b3dc 1a -1 + +fdcbab + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 a9 + 11 MC 0003 + 14 MR 0003 ab + 14 MC 0003 + 15 MC 0003 + 16 MC 8e77 + 19 MR 8e77 1f + 19 MC 8e77 + 20 MC 8e77 + 23 MW 8e77 1f +da61 0521 a11f c7fa 0000 0000 0000 0000 b71a 8ece 0000 0004 +00 02 0 0 0 0 23 + +fdcbac + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 23 + 11 MC 0003 + 14 MR 0003 ac + 14 MC 0003 + 15 MC 0003 + 16 MC 0548 + 19 MR 0548 9c + 19 MC 0548 + 20 MC 0548 + 23 MW 0548 9c +34a3 81ce 07d6 9ca4 0000 0000 0000 0000 430b 0525 0000 0004 +00 02 0 0 0 0 23 + +fdcbad + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 4e + 11 MC 0003 + 14 MR 0003 ad + 14 MC 0003 + 15 MC 0003 + 16 MC 94dd + 19 MR 94dd 37 + 19 MC 94dd + 20 MC 94dd + 23 MW 94dd 17 +5010 918e ddbc 4f17 0000 0000 0000 0000 88c5 948f 0000 0004 +00 02 0 0 0 0 23 +94dd 17 -1 + +fdcbae + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0c + 11 MC 0003 + 14 MR 0003 ae + 14 MC 0003 + 15 MC 0003 + 16 MC 0c29 + 19 MR 0c29 a9 + 19 MC 0c29 + 20 MC 0c29 + 23 MW 0c29 89 +ec0d b57e 18c6 7b01 0000 0000 0000 0000 bac6 0c1d 0000 0004 +00 02 0 0 0 0 23 +0c29 89 -1 + +fdcbaf + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0d + 11 MC 0003 + 14 MR 0003 af + 14 MC 0003 + 15 MC 0003 + 16 MC 26f8 + 19 MR 26f8 44 + 19 MC 26f8 + 20 MC 26f8 + 23 MW 26f8 44 +4422 6731 daad 8d38 0000 0000 0000 0000 dd8f 26eb 0000 0004 +00 02 0 0 0 0 23 + +fdcbb0 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 5a + 11 MC 0003 + 14 MR 0003 b0 + 14 MC 0003 + 15 MC 0003 + 16 MC a125 + 19 MR a125 76 + 19 MC a125 + 20 MC a125 + 23 MW a125 36 +b984 366c 44b1 fef9 0000 0000 0000 0000 4069 a0cb 0000 0004 +00 02 0 0 0 0 23 +a125 36 -1 + +fdcbb1 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 82 + 11 MC 0003 + 14 MR 0003 b1 + 14 MC 0003 + 15 MC 0003 + 16 MC f31a + 19 MR f31a 79 + 19 MC f31a + 20 MC f31a + 23 MW f31a 39 +59c3 ab39 42ee b764 0000 0000 0000 0000 8f7f f398 0000 0004 +00 02 0 0 0 0 23 +f31a 39 -1 + +fdcbb2 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 23 + 11 MC 0003 + 14 MR 0003 b2 + 14 MC 0003 + 15 MC 0003 + 16 MC 341c + 19 MR 341c 7b + 19 MC 341c + 20 MC 341c + 23 MW 341c 3b +f310 ceec 3bfb 3569 0000 0000 0000 0000 4a6f 33f9 0000 0004 +00 02 0 0 0 0 23 +341c 3b -1 + +fdcbb3 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 6c + 11 MC 0003 + 14 MR 0003 b3 + 14 MC 0003 + 15 MC 0003 + 16 MC 523e + 19 MR 523e 37 + 19 MC 523e + 20 MC 523e + 23 MW 523e 37 +9c05 0f92 bd37 553d 0000 0000 0000 0000 c75e 51d2 0000 0004 +00 02 0 0 0 0 23 + +fdcbb4 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c5 + 11 MC 0003 + 14 MR 0003 b4 + 14 MC 0003 + 15 MC 0003 + 16 MC 4cdc + 19 MR 4cdc e9 + 19 MC 4cdc + 20 MC 4cdc + 23 MW 4cdc a9 +3e55 1338 638d a93c 0000 0000 0000 0000 44ad 4d17 0000 0004 +00 02 0 0 0 0 23 +4cdc a9 -1 + +fdcbb5 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 50 + 11 MC 0003 + 14 MR 0003 b5 + 14 MC 0003 + 15 MC 0003 + 16 MC 8f2d + 19 MR 8f2d 0f + 19 MC 8f2d + 20 MC 8f2d + 23 MW 8f2d 0f +2f3a b709 4167 570f 0000 0000 0000 0000 b543 8edd 0000 0004 +00 02 0 0 0 0 23 + +fdcbb6 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 3a + 11 MC 0003 + 14 MR 0003 b6 + 14 MC 0003 + 15 MC 0003 + 16 MC 1e50 + 19 MR 1e50 13 + 19 MC 1e50 + 20 MC 1e50 + 23 MW 1e50 13 +a887 519b c91b cc91 0000 0000 0000 0000 a416 1e16 0000 0004 +00 02 0 0 0 0 23 + +fdcbb7 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c0 + 11 MC 0003 + 14 MR 0003 b7 + 14 MC 0003 + 15 MC 0003 + 16 MC 0069 + 19 MR 0069 38 + 19 MC 0069 + 20 MC 0069 + 23 MW 0069 38 +3835 a599 9fbf c111 0000 0000 0000 0000 8bc5 00a9 0000 0004 +00 02 0 0 0 0 23 + +fdcbb8 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 31 + 11 MC 0003 + 14 MR 0003 b8 + 14 MC 0003 + 15 MC 0003 + 16 MC d0b8 + 19 MR d0b8 17 + 19 MC d0b8 + 20 MC d0b8 + 23 MW d0b8 17 +d146 1738 1a45 8259 0000 0000 0000 0000 6a03 d087 0000 0004 +00 02 0 0 0 0 23 + +fdcbb9 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 3b + 11 MC 0003 + 14 MR 0003 b9 + 14 MC 0003 + 15 MC 0003 + 16 MC b889 + 19 MR b889 b4 + 19 MC b889 + 20 MC b889 + 23 MW b889 34 +757b 0b34 767b 2ad1 0000 0000 0000 0000 1498 b84e 0000 0004 +00 02 0 0 0 0 23 +b889 34 -1 + +fdcbba + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 38 + 11 MC 0003 + 14 MR 0003 ba + 14 MC 0003 + 15 MC 0003 + 16 MC 3877 + 19 MR 3877 d6 + 19 MC 3877 + 20 MC 3877 + 23 MW 3877 56 +43ef 1c58 56a3 4519 0000 0000 0000 0000 b67b 383f 0000 0004 +00 02 0 0 0 0 23 +3877 56 -1 + +fdcbbb + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 07 + 11 MC 0003 + 14 MR 0003 bb + 14 MC 0003 + 15 MC 0003 + 16 MC e305 + 19 MR e305 6e + 19 MC e305 + 20 MC e305 + 23 MW e305 6e +dccb 7ab3 766e 4161 0000 0000 0000 0000 2942 e2fe 0000 0004 +00 02 0 0 0 0 23 + +fdcbbc + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f8 + 11 MC 0003 + 14 MR 0003 bc + 14 MC 0003 + 15 MC 0003 + 16 MC af04 + 19 MR af04 cf + 19 MC af04 + 20 MC af04 + 23 MW af04 4f +0e07 34f5 0995 4f42 0000 0000 0000 0000 9d42 af0c 0000 0004 +00 02 0 0 0 0 23 +af04 4f -1 + +fdcbbd + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 aa + 11 MC 0003 + 14 MR 0003 bd + 14 MC 0003 + 15 MC 0003 + 16 MC deb7 + 19 MR deb7 8d + 19 MC deb7 + 20 MC deb7 + 23 MW deb7 0d +30ef e60c 9bf0 a10d 0000 0000 0000 0000 bd1c df0d 0000 0004 +00 02 0 0 0 0 23 +deb7 0d -1 + +fdcbbe + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c8 + 11 MC 0003 + 14 MR 0003 be + 14 MC 0003 + 15 MC 0003 + 16 MC 3cd7 + 19 MR 3cd7 a1 + 19 MC 3cd7 + 20 MC 3cd7 + 23 MW 3cd7 21 +1133 bef6 5059 1089 0000 0000 0000 0000 d558 3d0f 0000 0004 +00 02 0 0 0 0 23 +3cd7 21 -1 + +fdcbbf + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 fd + 11 MC 0003 + 14 MR 0003 bf + 14 MC 0003 + 15 MC 0003 + 16 MC bde4 + 19 MR bde4 ac + 19 MC bde4 + 20 MC bde4 + 23 MW bde4 2c +2cd6 c893 8db8 716b 0000 0000 0000 0000 0956 bde7 0000 0004 +00 02 0 0 0 0 23 +bde4 2c -1 + +fdcbc0 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 0a + 11 MC 0003 + 14 MR 0003 c0 + 14 MC 0003 + 15 MC 0003 + 16 MC 2b3b + 19 MR 2b3b ec + 19 MC 2b3b + 20 MC 2b3b + 23 MW 2b3b ed +3666 ed6c 35e5 db0a 0000 0000 0000 0000 ea93 2b31 0000 0004 +00 02 0 0 0 0 23 +2b3b ed -1 + +fdcbc1 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 87 + 11 MC 0003 + 14 MR 0003 c1 + 14 MC 0003 + 15 MC 0003 + 16 MC bcee + 19 MR bcee ee + 19 MC bcee + 20 MC bcee + 23 MW bcee ef +3902 d4ef af62 9821 0000 0000 0000 0000 48b8 bd67 0000 0004 +00 02 0 0 0 0 23 +bcee ef -1 + +fdcbc2 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 8d + 11 MC 0003 + 14 MR 0003 c2 + 14 MC 0003 + 15 MC 0003 + 16 MC 5ab9 + 19 MR 5ab9 c2 + 19 MC 5ab9 + 20 MC 5ab9 + 23 MW 5ab9 c3 +ad26 5a6d c362 16c9 0000 0000 0000 0000 495a 5b2c 0000 0004 +00 02 0 0 0 0 23 +5ab9 c3 -1 + +fdcbc3 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 5a + 11 MC 0003 + 14 MR 0003 c3 + 14 MC 0003 + 15 MC 0003 + 16 MC e6c0 + 19 MR e6c0 4f + 19 MC e6c0 + 20 MC e6c0 + 23 MW e6c0 4f +3e6c 9a74 a24f 9838 0000 0000 0000 0000 eafa e666 0000 0004 +00 02 0 0 0 0 23 + +fdcbc4 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 89 + 11 MC 0003 + 14 MR 0003 c4 + 14 MC 0003 + 15 MC 0003 + 16 MC 5c99 + 19 MR 5c99 61 + 19 MC 5c99 + 20 MC 5c99 + 23 MW 5c99 61 +bf68 d00b 5283 61c2 0000 0000 0000 0000 517c 5d10 0000 0004 +00 02 0 0 0 0 23 + +fdcbc5 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 a9 + 11 MC 0003 + 14 MR 0003 c5 + 14 MC 0003 + 15 MC 0003 + 16 MC 0264 + 19 MR 0264 cd + 19 MC 0264 + 20 MC 0264 + 23 MW 0264 cd +127b db6a 00b9 51cd 0000 0000 0000 0000 98f6 02bb 0000 0004 +00 02 0 0 0 0 23 + +fdcbc6 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ee + 11 MC 0003 + 14 MR 0003 c6 + 14 MC 0003 + 15 MC 0003 + 16 MC 76b2 + 19 MR 76b2 82 + 19 MC 76b2 + 20 MC 76b2 + 23 MW 76b2 83 +35da 98c2 3f57 44a4 0000 0000 0000 0000 2771 76c4 0000 0004 +00 02 0 0 0 0 23 +76b2 83 -1 + +fdcbc7 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9e + 11 MC 0003 + 14 MR 0003 c7 + 14 MC 0003 + 15 MC 0003 + 16 MC f2a9 + 19 MR f2a9 d7 + 19 MC f2a9 + 20 MC f2a9 + 23 MW f2a9 d7 +d73f b86f 12d3 7e2d 0000 0000 0000 0000 d870 f30b 0000 0004 +00 02 0 0 0 0 23 + +fdcbc8 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 10 + 11 MC 0003 + 14 MR 0003 c8 + 14 MC 0003 + 15 MC 0003 + 16 MC c422 + 19 MR c422 e9 + 19 MC c422 + 20 MC c422 + 23 MW c422 eb +1f81 ebc0 85da 3cdd 0000 0000 0000 0000 d854 c412 0000 0004 +00 02 0 0 0 0 23 +c422 eb -1 + +fdcbc9 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 61 + 11 MC 0003 + 14 MR 0003 c9 + 14 MC 0003 + 15 MC 0003 + 16 MC 8ba3 + 19 MR 8ba3 b7 + 19 MC 8ba3 + 20 MC 8ba3 + 23 MW 8ba3 b7 +ed19 3fb7 1370 e084 0000 0000 0000 0000 4fdd 8b42 0000 0004 +00 02 0 0 0 0 23 + +fdcbca + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 1a + 11 MC 0003 + 14 MR 0003 ca + 14 MC 0003 + 15 MC 0003 + 16 MC 51aa + 19 MR 51aa 90 + 19 MC 51aa + 20 MC 51aa + 23 MW 51aa 92 +c7e5 233b 9212 f7f9 0000 0000 0000 0000 e417 5190 0000 0004 +00 02 0 0 0 0 23 +51aa 92 -1 + +fdcbcb + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 5e + 11 MC 0003 + 14 MR 0003 cb + 14 MC 0003 + 15 MC 0003 + 16 MC 9ad0 + 19 MR 9ad0 70 + 19 MC 9ad0 + 20 MC 9ad0 + 23 MW 9ad0 72 +bdba a964 ea72 9422 0000 0000 0000 0000 fca3 9a72 0000 0004 +00 02 0 0 0 0 23 +9ad0 72 -1 + +fdcbcc + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 2d + 11 MC 0003 + 14 MR 0003 cc + 14 MC 0003 + 15 MC 0003 + 16 MC 1526 + 19 MR 1526 4e + 19 MC 1526 + 20 MC 1526 + 23 MW 1526 4e +0f4f 0261 21b0 4e97 0000 0000 0000 0000 575d 14f9 0000 0004 +00 02 0 0 0 0 23 + +fdcbcd + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 a1 + 11 MC 0003 + 14 MR 0003 cd + 14 MC 0003 + 15 MC 0003 + 16 MC bb8a + 19 MR bb8a 66 + 19 MC bb8a + 20 MC bb8a + 23 MW bb8a 66 +1b79 8f9f 31bf 9c66 0000 0000 0000 0000 7ecb bbe9 0000 0004 +00 02 0 0 0 0 23 + +fdcbce + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 36 + 11 MC 0003 + 14 MR 0003 ce + 14 MC 0003 + 15 MC 0003 + 16 MC b8d8 + 19 MR b8d8 45 + 19 MC b8d8 + 20 MC b8d8 + 23 MW b8d8 47 +8e13 968e 1784 0a0a 0000 0000 0000 0000 1e87 b8a2 0000 0004 +00 02 0 0 0 0 23 +b8d8 47 -1 + +fdcbcf + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 70 + 11 MC 0003 + 14 MR 0003 cf + 14 MC 0003 + 15 MC 0003 + 16 MC c30c + 19 MR c30c 7a + 19 MC c30c + 20 MC c30c + 23 MW c30c 7a +7a0a a073 c4ba 5b69 0000 0000 0000 0000 3b47 c29c 0000 0004 +00 02 0 0 0 0 23 + +fdcbd0 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 bc + 11 MC 0003 + 14 MR 0003 d0 + 14 MC 0003 + 15 MC 0003 + 16 MC 3ba7 + 19 MR 3ba7 20 + 19 MC 3ba7 + 20 MC 3ba7 + 23 MW 3ba7 24 +e2bb 2435 650c 689a 0000 0000 0000 0000 1294 3beb 0000 0004 +00 02 0 0 0 0 23 +3ba7 24 -1 + +fdcbd1 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 11 + 11 MC 0003 + 14 MR 0003 d1 + 14 MC 0003 + 15 MC 0003 + 16 MC 8c76 + 19 MR 8c76 b9 + 19 MC 8c76 + 20 MC 8c76 + 23 MW 8c76 bd +5df8 f7bd 9494 4967 0000 0000 0000 0000 ad00 8c65 0000 0004 +00 02 0 0 0 0 23 +8c76 bd -1 + +fdcbd2 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 fb + 11 MC 0003 + 14 MR 0003 d2 + 14 MC 0003 + 15 MC 0003 + 16 MC c04c + 19 MR c04c 51 + 19 MC c04c + 20 MC c04c + 23 MW c04c 55 +9876 4bd9 5548 665a 0000 0000 0000 0000 7eac c051 0000 0004 +00 02 0 0 0 0 23 +c04c 55 -1 + +fdcbd3 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 3e + 11 MC 0003 + 14 MR 0003 d3 + 14 MC 0003 + 15 MC 0003 + 16 MC 0ac5 + 19 MR 0ac5 e0 + 19 MC 0ac5 + 20 MC 0ac5 + 23 MW 0ac5 e4 +8f90 bacd e8e4 538f 0000 0000 0000 0000 fe5a 0a87 0000 0004 +00 02 0 0 0 0 23 +0ac5 e4 -1 + +fdcbd4 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 36 + 11 MC 0003 + 14 MR 0003 d4 + 14 MC 0003 + 15 MC 0003 + 16 MC 94ae + 19 MR 94ae 7d + 19 MC 94ae + 20 MC 94ae + 23 MW 94ae 7d +15e2 1820 5588 7d7f 0000 0000 0000 0000 7193 9478 0000 0004 +00 02 0 0 0 0 23 + +fdcbd5 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 48 + 11 MC 0003 + 14 MR 0003 d5 + 14 MC 0003 + 15 MC 0003 + 16 MC 8650 + 19 MR 8650 98 + 19 MC 8650 + 20 MC 8650 + 23 MW 8650 9c +1409 6535 c371 ab9c 0000 0000 0000 0000 2e10 8608 0000 0004 +00 02 0 0 0 0 23 +8650 9c -1 + +fdcbd6 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 c9 + 11 MC 0003 + 14 MR 0003 d6 + 14 MC 0003 + 15 MC 0003 + 16 MC 6a6c + 19 MR 6a6c 7c + 19 MC 6a6c + 20 MC 6a6c + 23 MW 6a6c 7c +7801 78b6 d191 054a 0000 0000 0000 0000 2065 6aa3 0000 0004 +00 02 0 0 0 0 23 + +fdcbd7 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 be + 11 MC 0003 + 14 MR 0003 d7 + 14 MC 0003 + 15 MC 0003 + 16 MC 3669 + 19 MR 3669 95 + 19 MC 3669 + 20 MC 3669 + 23 MW 3669 95 +956a 266e 387f 7fcb 0000 0000 0000 0000 1941 36ab 0000 0004 +00 02 0 0 0 0 23 + +fdcbd8 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 bc + 11 MC 0003 + 14 MR 0003 d8 + 14 MC 0003 + 15 MC 0003 + 16 MC 43b4 + 19 MR 43b4 d8 + 19 MC 43b4 + 20 MC 43b4 + 23 MW 43b4 d8 +7b1b d891 efee 55b9 0000 0000 0000 0000 f789 43f8 0000 0004 +00 02 0 0 0 0 23 + +fdcbd9 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 16 + 11 MC 0003 + 14 MR 0003 d9 + 14 MC 0003 + 15 MC 0003 + 16 MC 0a7c + 19 MR 0a7c f4 + 19 MC 0a7c + 20 MC 0a7c + 23 MW 0a7c fc +0faf 4efc c556 6ed3 0000 0000 0000 0000 3fc3 0a66 0000 0004 +00 02 0 0 0 0 23 +0a7c fc -1 + +fdcbda + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e8 + 11 MC 0003 + 14 MR 0003 da + 14 MC 0003 + 15 MC 0003 + 16 MC d0d8 + 19 MR d0d8 6b + 19 MC d0d8 + 20 MC d0d8 + 23 MW d0d8 6b +9ea1 8186 6b45 d6e0 0000 0000 0000 0000 34d3 d0f0 0000 0004 +00 02 0 0 0 0 23 + +fdcbdb + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 7a + 11 MC 0003 + 14 MR 0003 db + 14 MC 0003 + 15 MC 0003 + 16 MC 8ca3 + 19 MR 8ca3 15 + 19 MC 8ca3 + 20 MC 8ca3 + 23 MW 8ca3 1d +5ee0 bdea d01d 513f 0000 0000 0000 0000 690a 8c29 0000 0004 +00 02 0 0 0 0 23 +8ca3 1d -1 + +fdcbdc + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 64 + 11 MC 0003 + 14 MR 0003 dc + 14 MC 0003 + 15 MC 0003 + 16 MC 599e + 19 MR 599e 15 + 19 MC 599e + 20 MC 599e + 23 MW 599e 1d +5cfa 2e2b 1d17 1df6 0000 0000 0000 0000 a4f2 593a 0000 0004 +00 02 0 0 0 0 23 +599e 1d -1 + +fdcbdd + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 75 + 11 MC 0003 + 14 MR 0003 dd + 14 MC 0003 + 15 MC 0003 + 16 MC 1e09 + 19 MR 1e09 28 + 19 MC 1e09 + 20 MC 1e09 + 23 MW 1e09 28 +8773 70a6 83ce 5228 0000 0000 0000 0000 35da 1d94 0000 0004 +00 02 0 0 0 0 23 + +fdcbde + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 17 + 11 MC 0003 + 14 MR 0003 de + 14 MC 0003 + 15 MC 0003 + 16 MC c9f7 + 19 MR c9f7 41 + 19 MC c9f7 + 20 MC c9f7 + 23 MW c9f7 49 +8310 fa01 6c69 252a 0000 0000 0000 0000 5291 c9e0 0000 0004 +00 02 0 0 0 0 23 +c9f7 49 -1 + +fdcbdf + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 93 + 11 MC 0003 + 14 MR 0003 df + 14 MC 0003 + 15 MC 0003 + 16 MC ea56 + 19 MR ea56 ef + 19 MC ea56 + 20 MC ea56 + 23 MW ea56 ef +ef0d a722 e78e 50ba 0000 0000 0000 0000 9d67 eac3 0000 0004 +00 02 0 0 0 0 23 + +fdcbe0 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 56 + 11 MC 0003 + 14 MR 0003 e0 + 14 MC 0003 + 15 MC 0003 + 16 MC 155d + 19 MR 155d b9 + 19 MC 155d + 20 MC 155d + 23 MW 155d b9 +10ef b901 2ca5 f752 0000 0000 0000 0000 4747 1507 0000 0004 +00 02 0 0 0 0 23 + +fdcbe1 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d1 + 11 MC 0003 + 14 MR 0003 e1 + 14 MC 0003 + 15 MC 0003 + 16 MC 0dde + 19 MR 0dde 16 + 19 MC 0dde + 20 MC 0dde + 23 MW 0dde 16 +e4cb 6f16 1c11 1426 0000 0000 0000 0000 189b 0e0d 0000 0004 +00 02 0 0 0 0 23 + +fdcbe2 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 50 + 11 MC 0003 + 14 MR 0003 e2 + 14 MC 0003 + 15 MC 0003 + 16 MC e4ec + 19 MR e4ec c2 + 19 MC e4ec + 20 MC e4ec + 23 MW e4ec d2 +11a9 bae8 d28b bac4 0000 0000 0000 0000 d8ed e49c 0000 0004 +00 02 0 0 0 0 23 +e4ec d2 -1 + +fdcbe3 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ca + 11 MC 0003 + 14 MR 0003 e3 + 14 MC 0003 + 15 MC 0003 + 16 MC ad72 + 19 MR ad72 ba + 19 MC ad72 + 20 MC ad72 + 23 MW ad72 ba +8832 952b 02ba 26ef 0000 0000 0000 0000 fb55 ada8 0000 0004 +00 02 0 0 0 0 23 + +fdcbe4 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 62 + 11 MC 0003 + 14 MR 0003 e4 + 14 MC 0003 + 15 MC 0003 + 16 MC 54d6 + 19 MR 54d6 7b + 19 MC 54d6 + 20 MC 54d6 + 23 MW 54d6 7b +3989 4142 89e2 7b5b 0000 0000 0000 0000 0bf7 5474 0000 0004 +00 02 0 0 0 0 23 + +fdcbe5 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 da + 11 MC 0003 + 14 MR 0003 e5 + 14 MC 0003 + 15 MC 0003 + 16 MC a507 + 19 MR a507 4c + 19 MC a507 + 20 MC a507 + 23 MW a507 5c +e5c5 b86d 41bb 315c 0000 0000 0000 0000 1a78 a52d 0000 0004 +00 02 0 0 0 0 23 +a507 5c -1 + +fdcbe6 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 76 + 11 MC 0003 + 14 MR 0003 e6 + 14 MC 0003 + 15 MC 0003 + 16 MC 8b7c + 19 MR 8b7c 45 + 19 MC 8b7c + 20 MC 8b7c + 23 MW 8b7c 55 +fd89 d888 1e2f ddf5 0000 0000 0000 0000 42f5 8b06 0000 0004 +00 02 0 0 0 0 23 +8b7c 55 -1 + +fdcbe7 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 11 + 11 MC 0003 + 14 MR 0003 e7 + 14 MC 0003 + 15 MC 0003 + 16 MC b5a8 + 19 MR b5a8 a6 + 19 MC b5a8 + 20 MC b5a8 + 23 MW b5a8 b6 +b625 d3e9 d4b6 aa30 0000 0000 0000 0000 88bd b597 0000 0004 +00 02 0 0 0 0 23 +b5a8 b6 -1 + +fdcbe8 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ed + 11 MC 0003 + 14 MR 0003 e8 + 14 MC 0003 + 15 MC 0003 + 16 MC 0a64 + 19 MR 0a64 d0 + 19 MC 0a64 + 20 MC 0a64 + 23 MW 0a64 f0 +514d f0ab 37b5 57de 0000 0000 0000 0000 a4ec 0a77 0000 0004 +00 02 0 0 0 0 23 +0a64 f0 -1 + +fdcbe9 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 35 + 11 MC 0003 + 14 MR 0003 e9 + 14 MC 0003 + 15 MC 0003 + 16 MC a883 + 19 MR a883 2f + 19 MC a883 + 20 MC a883 + 23 MW a883 2f +974e d22f d5cb 6bd4 0000 0000 0000 0000 158a a84e 0000 0004 +00 02 0 0 0 0 23 + +fdcbea + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 93 + 11 MC 0003 + 14 MR 0003 ea + 14 MC 0003 + 15 MC 0003 + 16 MC 7526 + 19 MR 7526 1b + 19 MC 7526 + 20 MC 7526 + 23 MW 7526 3b +3ef4 3fc6 3b44 e9a4 0000 0000 0000 0000 c877 7593 0000 0004 +00 02 0 0 0 0 23 +7526 3b -1 + +fdcbeb + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d0 + 11 MC 0003 + 14 MR 0003 eb + 14 MC 0003 + 15 MC 0003 + 16 MC 23e1 + 19 MR 23e1 47 + 19 MC 23e1 + 20 MC 23e1 + 23 MW 23e1 67 +798f 5e9b 9467 2e52 0000 0000 0000 0000 d6ad 2411 0000 0004 +00 02 0 0 0 0 23 +23e1 67 -1 + +fdcbec + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 f3 + 11 MC 0003 + 14 MR 0003 ec + 14 MC 0003 + 15 MC 0003 + 16 MC d2de + 19 MR d2de 49 + 19 MC d2de + 20 MC d2de + 23 MW d2de 69 +38a4 07c0 6cee 6915 0000 0000 0000 0000 f160 d2eb 0000 0004 +00 02 0 0 0 0 23 +d2de 69 -1 + +fdcbed + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 58 + 11 MC 0003 + 14 MR 0003 ed + 14 MC 0003 + 15 MC 0003 + 16 MC 0f03 + 19 MR 0f03 10 + 19 MC 0f03 + 20 MC 0f03 + 23 MW 0f03 30 +e0bc 70c1 de35 8130 0000 0000 0000 0000 d57f 0eab 0000 0004 +00 02 0 0 0 0 23 +0f03 30 -1 + +fdcbee + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 02 + 11 MC 0003 + 14 MR 0003 ee + 14 MC 0003 + 15 MC 0003 + 16 MC 42be + 19 MR 42be d0 + 19 MC 42be + 20 MC 42be + 23 MW 42be f0 +5fcb 9007 1736 aca8 0000 0000 0000 0000 4bab 42bc 0000 0004 +00 02 0 0 0 0 23 +42be f0 -1 + +fdcbef + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 58 + 11 MC 0003 + 14 MR 0003 ef + 14 MC 0003 + 15 MC 0003 + 16 MC 22ca + 19 MR 22ca 09 + 19 MC 22ca + 20 MC 22ca + 23 MW 22ca 29 +29e3 d344 cb5b aeb5 0000 0000 0000 0000 de5f 2272 0000 0004 +00 02 0 0 0 0 23 +22ca 29 -1 + +fdcbf0 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 45 + 11 MC 0003 + 14 MR 0003 f0 + 14 MC 0003 + 15 MC 0003 + 16 MC eee3 + 19 MR eee3 2c + 19 MC eee3 + 20 MC eee3 + 23 MW eee3 6c +1080 6c70 1b5b a9b7 0000 0000 0000 0000 e89d ee9e 0000 0004 +00 02 0 0 0 0 23 +eee3 6c -1 + +fdcbf1 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 2f + 11 MC 0003 + 14 MR 0003 f1 + 14 MC 0003 + 15 MC 0003 + 16 MC 47b2 + 19 MR 47b2 dc + 19 MC 47b2 + 20 MC 47b2 + 23 MW 47b2 dc +1702 c4dc d138 316f 0000 0000 0000 0000 8067 4783 0000 0004 +00 02 0 0 0 0 23 + +fdcbf2 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 2c + 11 MC 0003 + 14 MR 0003 f2 + 14 MC 0003 + 15 MC 0003 + 16 MC eac3 + 19 MR eac3 5e + 19 MC eac3 + 20 MC eac3 + 23 MW eac3 5e +732a 4cd1 5efe 4814 0000 0000 0000 0000 42f1 ea97 0000 0004 +00 02 0 0 0 0 23 + +fdcbf3 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 38 + 11 MC 0003 + 14 MR 0003 f3 + 14 MC 0003 + 15 MC 0003 + 16 MC 7dc8 + 19 MR 7dc8 0c + 19 MC 7dc8 + 20 MC 7dc8 + 23 MW 7dc8 4c +6b97 59d3 f54c 7530 0000 0000 0000 0000 6670 7d90 0000 0004 +00 02 0 0 0 0 23 +7dc8 4c -1 + +fdcbf4 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 d0 + 11 MC 0003 + 14 MR 0003 f4 + 14 MC 0003 + 15 MC 0003 + 16 MC 306c + 19 MR 306c 0e + 19 MC 306c + 20 MC 306c + 23 MW 306c 4e +7af0 a81f 5d3a 4e9b 0000 0000 0000 0000 e12b 309c 0000 0004 +00 02 0 0 0 0 23 +306c 4e -1 + +fdcbf5 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 55 + 11 MC 0003 + 14 MR 0003 f5 + 14 MC 0003 + 15 MC 0003 + 16 MC 6b74 + 19 MR 6b74 f8 + 19 MC 6b74 + 20 MC 6b74 + 23 MW 6b74 f8 +1370 f6b2 aaa2 7ff8 0000 0000 0000 0000 c9f6 6b1f 0000 0004 +00 02 0 0 0 0 23 + +fdcbf6 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 56 + 11 MC 0003 + 14 MR 0003 f6 + 14 MC 0003 + 15 MC 0003 + 16 MC c670 + 19 MR c670 5d + 19 MC c670 + 20 MC c670 + 23 MW c670 5d +7c43 fcd1 34bd f4ab 0000 0000 0000 0000 ef33 c61a 0000 0004 +00 02 0 0 0 0 23 + +fdcbf7 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 9e + 11 MC 0003 + 14 MR 0003 f7 + 14 MC 0003 + 15 MC 0003 + 16 MC 5727 + 19 MR 5727 66 + 19 MC 5727 + 20 MC 5727 + 23 MW 5727 66 +66da 231a 7bb1 800d 0000 0000 0000 0000 e37e 5789 0000 0004 +00 02 0 0 0 0 23 + +fdcbf8 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 54 + 11 MC 0003 + 14 MR 0003 f8 + 14 MC 0003 + 15 MC 0003 + 16 MC dece + 19 MR dece 7a + 19 MC dece + 20 MC dece + 23 MW dece fa +fa29 fa74 d7c4 afaf 0000 0000 0000 0000 512c de7a 0000 0004 +00 02 0 0 0 0 23 +dece fa -1 + +fdcbf9 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 30 + 11 MC 0003 + 14 MR 0003 f9 + 14 MC 0003 + 15 MC 0003 + 16 MC 9a13 + 19 MR 9a13 c6 + 19 MC 9a13 + 20 MC 9a13 + 23 MW 9a13 c6 +4662 a7c6 5065 ed06 0000 0000 0000 0000 279e 99e3 0000 0004 +00 02 0 0 0 0 23 + +fdcbfa + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 09 + 11 MC 0003 + 14 MR 0003 fa + 14 MC 0003 + 15 MC 0003 + 16 MC bd82 + 19 MR bd82 f4 + 19 MC bd82 + 20 MC bd82 + 23 MW bd82 f4 +9426 53ec f416 6c99 0000 0000 0000 0000 8b99 bd79 0000 0004 +00 02 0 0 0 0 23 + +fdcbfb + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 ba + 11 MC 0003 + 14 MR 0003 fb + 14 MC 0003 + 15 MC 0003 + 16 MC f82f + 19 MR f82f ed + 19 MC f82f + 20 MC f82f + 23 MW f82f ed +5343 b212 09ed e3c6 0000 0000 0000 0000 cd2b f875 0000 0004 +00 02 0 0 0 0 23 + +fdcbfc + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 56 + 11 MC 0003 + 14 MR 0003 fc + 14 MC 0003 + 15 MC 0003 + 16 MC 6679 + 19 MR 6679 65 + 19 MC 6679 + 20 MC 6679 + 23 MW 6679 e5 +0965 4392 ca25 e5aa 0000 0000 0000 0000 f023 6623 0000 0004 +00 02 0 0 0 0 23 +6679 e5 -1 + +fdcbfd + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 25 + 11 MC 0003 + 14 MR 0003 fd + 14 MC 0003 + 15 MC 0003 + 16 MC 5d50 + 19 MR 5d50 27 + 19 MC 5d50 + 20 MC 5d50 + 23 MW 5d50 a7 +1751 233c 6214 d1a7 0000 0000 0000 0000 c415 5d2b 0000 0004 +00 02 0 0 0 0 23 +5d50 a7 -1 + +fdcbfe + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 88 + 11 MC 0003 + 14 MR 0003 fe + 14 MC 0003 + 15 MC 0003 + 16 MC 4dd7 + 19 MR 4dd7 4a + 19 MC 4dd7 + 20 MC 4dd7 + 23 MW 4dd7 ca +b4cf 5639 677b 0ca2 0000 0000 0000 0000 ddc5 4e4f 0000 0004 +00 02 0 0 0 0 23 +4dd7 ca -1 + +fdcbff + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 cb + 8 MC 0002 + 11 MR 0002 e4 + 11 MC 0003 + 14 MR 0003 ff + 14 MC 0003 + 15 MC 0003 + 16 MC 2ad1 + 19 MR 2ad1 97 + 19 MC 2ad1 + 20 MC 2ad1 + 23 MW 2ad1 97 +9751 13da 7c56 f025 0000 0000 0000 0000 2b36 2aed 0000 0004 +00 02 0 0 0 0 23 + +fde1 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 e1 + 8 MC 716e + 11 MR 716e d5 + 11 MC 716f + 14 MR 716f 92 +828e 078b 1e35 8f1c 0000 0000 0000 0000 4827 92d5 7170 0002 +00 02 0 0 0 0 14 + +fde3 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 e3 + 8 MC 1a38 + 11 MR 1a38 e0 + 11 MC 1a39 + 14 MR 1a39 0f + 14 MC 1a39 + 15 MC 1a39 + 18 MW 1a39 95 + 18 MC 1a38 + 21 MW 1a38 10 + 21 MC 1a38 + 22 MC 1a38 +4298 c805 6030 4292 0000 0000 0000 0000 473b 0fe0 1a38 0002 +00 02 0 0 0 0 23 +1a38 10 95 -1 + +fde5 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 e5 + 8 MC 0002 + 9 MC a8e0 + 12 MW a8e0 d4 + 12 MC a8df + 15 MW a8df da +d139 aa0d bf2b 2a56 0000 0000 0000 0000 e138 d4da a8df 0002 +00 02 0 0 0 0 15 +a8df da d4 -1 + +fde9 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 e9 +c14f 2eb6 edf0 27cf 0000 0000 0000 0000 09ee a2a4 0000 a2a4 +00 02 0 0 0 0 8 + +fdf9 + 0 MC 0000 + 4 MR 0000 fd + 4 MC 0001 + 8 MR 0001 f9 + 8 MC 0002 + 9 MC 0002 +c260 992e d544 67fb 0000 0000 0000 0000 ba5e 3596 3596 0002 +00 02 0 0 0 0 10 + +fe + 0 MC 0000 + 4 MR 0000 fe + 4 MC 0001 + 7 MR 0001 82 +6987 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 + +ff + 0 MC 6d33 + 4 MR 6d33 ff + 4 MC 0001 + 5 MC 5506 + 8 MW 5506 6d + 8 MC 5505 + 11 MW 5505 34 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5505 0038 +00 01 0 0 0 0 11 +5505 34 6d -1 + diff --git a/src/z80free/tests.in b/src/z80free/tests.in new file mode 100644 index 0000000..194461c --- /dev/null +++ b/src/z80free/tests.in @@ -0,0 +1,9011 @@ +00 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 00 -1 +-1 + +01 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 01 12 34 -1 +-1 + +02 +5600 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 02 -1 +-1 + +03 +0000 789a 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 03 -1 +-1 + +04 +0000 ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 04 -1 +-1 + +05 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 05 -1 +-1 + +06 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 06 bc -1 +-1 + +07 +8800 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 07 -1 +-1 + +08 +def0 0000 0000 0000 1234 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 08 -1 +-1 + +09 +0000 5678 0000 9abc 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 09 -1 +-1 + +0a +0000 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 0a de -1 +-1 + +0b +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 0b -1 +-1 + +0c +0000 007f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 0c -1 +-1 + +0d +0000 0080 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 0d -1 +-1 + +0e +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 0e f0 -1 +-1 + +0f +4100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 0f -1 +-1 + +10 +0000 0800 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 132 +0000 00 10 fd 0c -1 +-1 + +11 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 11 9a bc -1 +-1 + +12 +5600 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 12 -1 +-1 + +13 +0000 0000 def0 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 13 -1 +-1 + +14 +0000 0000 2700 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 14 -1 +-1 + +15 +0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 15 -1 +-1 + +16 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 16 12 -1 +-1 + +17 +0801 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 17 -1 +-1 + +18 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 18 40 -1 +-1 + +19 +0000 0000 3456 789a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 19 -1 +-1 + +1a +0000 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 1a -1 +8000 13 -1 +-1 + +1b +0000 0000 e5d4 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 1b -1 +-1 + +1c +0000 0000 00aa 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 1c -1 +-1 + +1d +0000 0000 00aa 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 1d -1 +-1 + +1e +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 1e ef -1 +-1 + +1f +01c4 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 1f -1 +-1 + +20_1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 20 40 -1 +-1 + +20_2 +0040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 20 40 -1 +-1 + +21 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 21 28 ed -1 +-1 + +22 +0000 0000 0000 c64c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 22 b0 c3 -1 +-1 + +23 +0000 0000 0000 9c4e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 23 -1 +-1 + +24 +0000 0000 0000 7200 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 24 -1 +-1 + +25 +0000 0000 0000 a500 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 25 -1 +-1 + +26 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 26 3a -1 +-1 + +27_1 +9a02 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 27 -1 +-1 + +27 +1f00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 27 -1 +-1 + +28_1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 28 8e -1 +-1 + +28_2 +0040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 28 8e -1 +-1 + +29 +0000 0000 0000 cdfa 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 29 -1 +-1 + +2a +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 2a 45 ac -1 +ac45 c4 de -1 +-1 + +2b +0000 0000 0000 9e66 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 2b -1 +-1 + +2c +0000 0000 0000 0026 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 2c -1 +-1 + +2d +0000 0000 0000 0032 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 2d -1 +-1 + +2e +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 2e 18 -1 +-1 + +2f +8900 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 2f -1 +-1 + +30_1 +0036 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 30 50 -1 +-1 + +30_2 +0037 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 30 50 -1 +-1 + +31 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 31 d4 61 -1 +-1 + +32 +0e00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 32 ac ad -1 +-1 + +33 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 a55a 0000 +00 00 0 0 0 0 1 +0000 33 -1 +-1 + +34 +0000 0000 0000 fe1d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 34 -1 +fe1d fd -1 +-1 + +35 +0000 0000 0000 470c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 35 -1 +470c 82 -1 +-1 + +36 +0000 0000 0000 7d29 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 36 7c -1 +-1 + +37_1 +00ff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 37 -1 +-1 + +37_2 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 37 -1 +-1 + +37_3 +ffff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 37 -1 +-1 + +37 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 37 -1 +-1 + +38_1 +00b2 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 38 66 -1 +-1 + +38_2 +00b3 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 38 66 -1 +-1 + +39 +0000 0000 0000 1aef 0000 0000 0000 0000 0000 0000 c534 0000 +00 00 0 0 0 0 1 +0000 29 -1 +-1 + +3a +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 3a 52 99 -1 +9952 28 -1 +-1 + +3b +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 9d36 0000 +00 00 0 0 0 0 1 +0000 3b -1 +-1 + +3c +cf00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 3c -1 +-1 + +3d +ea00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 3d -1 +-1 + +3e +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 3e d6 -1 +-1 + +3f +005b 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 3f -1 +-1 + +40 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 40 -1 +a169 50 -1 +-1 + +41 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 41 -1 +a169 50 -1 +-1 + +42 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 42 -1 +a169 50 -1 +-1 + +43 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 43 -1 +a169 50 -1 +-1 + +44 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 44 -1 +a169 50 -1 +-1 + +45 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 45 -1 +a169 50 -1 +-1 + +46 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 46 -1 +a169 50 -1 +-1 + +47 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 47 -1 +a169 50 -1 +-1 + +48 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 48 -1 +a169 50 -1 +-1 + +49 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 49 -1 +a169 50 -1 +-1 + +4a +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 4a -1 +a169 50 -1 +-1 + +4b +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 4b -1 +a169 50 -1 +-1 + +4c +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 4c -1 +a169 50 -1 +-1 + +4d +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 4d -1 +a169 50 -1 +-1 + +4e +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 4e -1 +a169 50 -1 +-1 + +4f +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 4f -1 +a169 50 -1 +-1 + +50 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 50 -1 +a169 50 -1 +-1 + +51 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 51 -1 +a169 50 -1 +-1 + +52 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 52 -1 +a169 50 -1 +-1 + +53 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 53 -1 +a169 50 -1 +-1 + +54 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 54 -1 +a169 50 -1 +-1 + +55 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 55 -1 +a169 50 -1 +-1 + +56 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 56 -1 +a169 50 -1 +-1 + +57 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 57 -1 +a169 50 -1 +-1 + +58 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 58 -1 +a169 50 -1 +-1 + +59 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 59 -1 +a169 50 -1 +-1 + +5a +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 5a -1 +a169 50 -1 +-1 + +5b +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 5b -1 +a169 50 -1 +-1 + +5c +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 5c -1 +a169 50 -1 +-1 + +5d +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 5d -1 +a169 50 -1 +-1 + +5e +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 5e -1 +a169 50 -1 +-1 + +5f +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 5f -1 +a169 50 -1 +-1 + +60 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 60 -1 +a169 50 -1 +-1 + +61 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 61 -1 +a169 50 -1 +-1 + +62 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 62 -1 +a169 50 -1 +-1 + +63 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 63 -1 +a169 50 -1 +-1 + +64 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 64 -1 +a169 50 -1 +-1 + +65 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 65 -1 +a169 50 -1 +-1 + +66 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 66 -1 +a169 50 -1 +-1 + +67 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 67 -1 +a169 50 -1 +-1 + +68 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 68 -1 +a169 50 -1 +-1 + +69 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 69 -1 +a169 50 -1 +-1 + +6a +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 6a -1 +a169 50 -1 +-1 + +6b +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 6b -1 +a169 50 -1 +-1 + +6c +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 6c -1 +a169 50 -1 +-1 + +6d +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 6d -1 +a169 50 -1 +-1 + +6e +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 6e -1 +a169 50 -1 +-1 + +6f +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 6f -1 +a169 50 -1 +-1 + +70 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 70 -1 +a169 50 -1 +-1 + +71 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 71 -1 +a169 50 -1 +-1 + +72 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 72 -1 +a169 50 -1 +-1 + +73 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 73 -1 +a169 50 -1 +-1 + +74 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 74 -1 +a169 50 -1 +-1 + +75 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 75 -1 +a169 50 -1 +-1 + +76 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 76 -1 +a169 50 -1 +-1 + +77 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 77 -1 +a169 50 -1 +-1 + +78 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 78 -1 +a169 50 -1 +-1 + +79 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 79 -1 +a169 50 -1 +-1 + +7a +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 7a -1 +a169 50 -1 +-1 + +7b +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 7b -1 +a169 50 -1 +-1 + +7c +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 7c -1 +a169 50 -1 +-1 + +7d +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 7d -1 +a169 50 -1 +-1 + +7e +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 7e -1 +a169 50 -1 +-1 + +7f +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 7f -1 +a169 50 -1 +-1 + +80 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 80 -1 +dca6 49 -1 +-1 + +81 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 81 -1 +dca6 49 -1 +-1 + +82 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 82 -1 +dca6 49 -1 +-1 + +83 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 83 -1 +dca6 49 -1 +-1 + +84 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 84 -1 +dca6 49 -1 +-1 + +85 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 85 -1 +dca6 49 -1 +-1 + +86 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 86 -1 +dca6 49 -1 +-1 + +87 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 87 -1 +dca6 49 -1 +-1 + +88 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 88 -1 +dca6 49 -1 +-1 + +89 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 89 -1 +dca6 49 -1 +-1 + +8a +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 8a -1 +dca6 49 -1 +-1 + +8b +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 8b -1 +dca6 49 -1 +-1 + +8c +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 8c -1 +dca6 49 -1 +-1 + +8d +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 8d -1 +dca6 49 -1 +-1 + +8e +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 8e -1 +dca6 49 -1 +-1 + +8f +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 8f -1 +dca6 49 -1 +-1 + +90 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 90 -1 +dca6 49 -1 +-1 + +91 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 91 -1 +dca6 49 -1 +-1 + +92 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 92 -1 +dca6 49 -1 +-1 + +93 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 93 -1 +dca6 49 -1 +-1 + +94 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 94 -1 +dca6 49 -1 +-1 + +95 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 95 -1 +dca6 49 -1 +-1 + +96 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 96 -1 +dca6 49 -1 +-1 + +97 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 97 -1 +dca6 49 -1 +-1 + +98 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 98 -1 +dca6 49 -1 +-1 + +99 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 99 -1 +dca6 49 -1 +-1 + +9a +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 9a -1 +dca6 49 -1 +-1 + +9b +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 9b -1 +dca6 49 -1 +-1 + +9c +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 9c -1 +dca6 49 -1 +-1 + +9d +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 9d -1 +dca6 49 -1 +-1 + +9e +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 9e -1 +dca6 49 -1 +-1 + +9f +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 9f -1 +dca6 49 -1 +-1 + +a0 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a0 -1 +dca6 49 -1 +-1 + +a1 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a1 -1 +dca6 49 -1 +-1 + +a2 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a2 -1 +dca6 49 -1 +-1 + +a3 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a3 -1 +dca6 49 -1 +-1 + +a4 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a4 -1 +dca6 49 -1 +-1 + +a5 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a5 -1 +dca6 49 -1 +-1 + +a6 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a6 -1 +dca6 49 -1 +-1 + +a7 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a7 -1 +dca6 49 -1 +-1 + +a8 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a8 -1 +dca6 49 -1 +-1 + +a9 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a9 -1 +dca6 49 -1 +-1 + +aa +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 aa -1 +dca6 49 -1 +-1 + +ab +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ab -1 +dca6 49 -1 +-1 + +ac +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ac -1 +dca6 49 -1 +-1 + +ad +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ad -1 +dca6 49 -1 +-1 + +ae +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ae -1 +dca6 49 -1 +-1 + +af +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 af -1 +dca6 49 -1 +-1 + +b0 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b0 -1 +dca6 49 -1 +-1 + +b1 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b1 -1 +dca6 49 -1 +-1 + +b2 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b2 -1 +dca6 49 -1 +-1 + +b3 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b3 -1 +dca6 49 -1 +-1 + +b4 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b4 -1 +dca6 49 -1 +-1 + +b5 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b5 -1 +dca6 49 -1 +-1 + +b6 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b6 -1 +dca6 49 -1 +-1 + +b7 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b7 -1 +dca6 49 -1 +-1 + +b8 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b8 -1 +dca6 49 -1 +-1 + +b9 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b9 -1 +dca6 49 -1 +-1 + +ba +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ba -1 +dca6 49 -1 +-1 + +bb +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 bb -1 +dca6 49 -1 +-1 + +bc +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 bc -1 +dca6 49 -1 +-1 + +bd +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 bd -1 +dca6 49 -1 +-1 + +be +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 be -1 +dca6 49 -1 +-1 + +bf +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 bf -1 +dca6 49 -1 +-1 + +c0_1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 c0 -1 +43f7 e9 af -1 +-1 + +c0_2 +00d8 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 c0 -1 +43f7 e9 af -1 +-1 + +c1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4143 0000 +00 00 0 0 0 0 1 +0000 c1 -1 +4143 ce e8 -1 +-1 + +c2_1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 c2 1b e1 -1 +-1 + +c2_2 +00c7 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 c2 1b e1 -1 +-1 + +c3 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 c3 ed 7c -1 +-1 + +c4_1 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 c4 61 9c -1 +-1 + +c4_2 +004e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 c4 61 9c -1 +-1 + +c5 +53e3 1459 775f 1a2f 0000 0000 0000 0000 0000 0000 ec12 0000 +00 00 0 0 0 0 1 +0000 c5 -1 +-1 + +c6 +ca00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 c6 6f -1 +-1 + +c7 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5507 6d33 +00 00 0 0 0 0 1 +6d33 c7 -1 +-1 + +c8_1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 c8 -1 +43f7 e9 af -1 +-1 + +c8_2 +00d8 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 c8 -1 +43f7 e9 af -1 +-1 + +c9 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 887e 0000 +00 00 0 0 0 0 1 +0000 c9 -1 +887e 36 11 -1 +-1 + +ca_1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ca 1b e1 -1 +-1 + +ca_2 +00c7 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ca 1b e1 -1 +-1 + +cb00 +da00 e479 552e a806 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 00 -1 +a806 76 -1 +-1 + +cb01 +1000 b379 b480 ef65 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 01 -1 +ef65 fb -1 +-1 + +cb02 +2e00 9adf ae6e a7f2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 02 -1 +a7f2 4a -1 +-1 + +cb03 +6800 9995 de3f ca71 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 03 -1 +ca71 e7 -1 +-1 + +cb04 +8c00 beea 0ce4 67b0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 04 -1 +67b0 cd -1 +-1 + +cb05 +3600 e19f 78c9 cb32 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 05 -1 +cb32 1b -1 +-1 + +cb06 +8a00 db02 8fb1 5b04 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 06 -1 +5b04 d4 -1 +-1 + +cb07 +6d00 19cf 7259 dcaa 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 07 -1 +dcaa 8d -1 +-1 + +cb08 +8000 cdb5 818e 2ee2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 08 -1 +2ee2 53 -1 +-1 + +cb09 +1800 125c dd97 59c6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 09 -1 +59c6 9e -1 +-1 + +cb0a +1200 3ba1 7724 63ad 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 0a -1 +63ad 96 -1 +-1 + +cb0b +7600 2abf b626 0289 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 0b -1 +0289 37 -1 +-1 + +cb0c +0e00 6fc5 2f12 34d9 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 0c -1 +34d9 50 -1 +-1 + +cb0d +6300 95a3 fcd2 519a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 0d -1 +519a 7a -1 +-1 + +cb0e +fc00 adf9 4925 543e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 0e -1 +543e d2 -1 +-1 + +cb0f +c300 18f3 41b8 070b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 0f -1 +070b 86 -1 +-1 + +cb10 +f800 dc25 33b3 0d74 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 10 -1 +0d74 3d -1 +-1 + +cb11 +6500 e25c 4b8a ed42 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 11 -1 +ed42 b7 -1 +-1 + +cb12 +7700 1384 0f50 29c6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 12 -1 +29c6 88 -1 +-1 + +cb13 +ce00 9f17 e128 3ed7 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 13 -1 +3ed7 ea -1 +-1 + +cb14 +b200 541a 60c7 7c9a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 14 -1 +7c9a 0f -1 +-1 + +cb15 +2d00 c1df 6eab 03e2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 15 -1 +03e2 bc -1 +-1 + +cb16 +3600 3b53 1a4a 684e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 16 -1 +684e c3 -1 +-1 + +cb17 +5400 d090 f60d 0fa2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 17 -1 +0fa2 23 -1 +-1 + +cb18 +8600 c658 755f 9596 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 18 -1 +9596 b6 -1 +-1 + +cb19 +9600 beb3 7c22 71c8 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 19 -1 +71c8 85 -1 +-1 + +cb1a +3900 882f 543b 5279 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 1a -1 +5279 26 -1 +-1 + +cb1b +9e00 b338 876c e8b4 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 1b -1 +e8b4 b9 -1 +-1 + +cb1c +4b00 b555 238f 311d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 1c -1 +311d 11 -1 +-1 + +cb1d +2100 3d7e 5e39 e451 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 1d -1 +e451 47 -1 +-1 + +cb1e +5e00 66b9 80dc 00ef 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 1e -1 +00ef 91 -1 +-1 + +cb1f +ed00 b838 8e18 ace7 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 1f -1 +ace7 82 -1 +-1 + +cb20 +c700 0497 d72b ccb6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 20 -1 +ccb6 1a -1 +-1 + +cb21 +2200 5cf4 938e 37a8 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 21 -1 +37a8 dd -1 +-1 + +cb22 +8500 0950 e7e8 0641 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 22 -1 +0641 4d -1 +-1 + +cb23 +2100 2a7c 37d0 aa59 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 23 -1 +aa59 c1 -1 +-1 + +cb24 +fb00 b9de 7014 84b6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 24 -1 +84b6 80 -1 +-1 + +cb25 +1500 6bbc 894e 85bc 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 25 -1 +85bc ef -1 +-1 + +cb26 +0a00 372e e315 283a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 26 -1 +283a ee -1 +-1 + +cb27 +bf00 bdba 67ab 5ea2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 27 -1 +5ea2 bd -1 +-1 + +cb28 +c000 0435 3e0f 021b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 28 -1 +021b 90 -1 +-1 + +cb29 +0600 f142 6ada c306 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 29 -1 +c306 5c -1 +-1 + +cb2a +3000 ec3a 7f7d 3473 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 2a -1 +3473 34 -1 +-1 + +cb2b +e000 ccf0 bbda b78a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 2b -1 +b78a ab -1 +-1 + +cb2c +5b00 25c0 996d 1e7b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 2c -1 +1e7b 2c -1 +-1 + +cb2d +5e00 c51b 58e3 78ea 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 2d -1 +78ea 85 -1 +-1 + +cb2e +3900 a2cd 0629 24bf 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 2e -1 +24bf b5 -1 +-1 + +cb2f +aa00 a194 d0e3 5c65 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 2f -1 +5c65 c9 -1 +-1 + +cb30 +cd00 7a81 d67b 656b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 30 -1 +656b 32 -1 +-1 + +cb31 +2800 e7fa 6d8c 75a4 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 31 -1 +75a4 0c -1 +-1 + +cb32 +1300 3f36 f608 5e56 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 32 -1 +5e56 8d -1 +-1 + +cb33 +d500 9720 7644 038f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 33 -1 +038f ba -1 +-1 + +cb34 +1200 77f6 0206 fb38 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 34 -1 +fb38 07 -1 +-1 + +cb35 +3c00 fd68 ea91 7861 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 35 -1 +7861 72 -1 +-1 + +cb36 +8a00 1185 1dde 6d38 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 36 -1 +6d38 f1 -1 +-1 + +cb37 +4300 d7bc 9133 6e56 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 37 -1 +6e56 f8 -1 +-1 + +cb38 +df00 7c1b 9f9f 4ff2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 38 -1 +4ff2 aa -1 +-1 + +cb39 +6600 b702 14f5 3c17 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 39 -1 +3c17 61 -1 +-1 + +cb3a +d100 5c5f e42e f1b1 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 3a -1 +f1b1 6e -1 +-1 + +cb3b +b200 38c8 a560 7419 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 3b -1 +7419 11 -1 +-1 + +cb3c +7800 cfae 66d8 2ad8 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 3c -1 +2ad8 8d -1 +-1 + +cb3d +e600 dcda 06aa 46cd 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 3d -1 +46cd f9 -1 +-1 + +cb3e +a900 6a34 e8d0 a96c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 3e -1 +a96c a0 -1 +-1 + +cb3f +f100 ceea 721e 77f0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 3f -1 +77f0 7c -1 +-1 + +cb40 +9e00 bcb2 efaa 505f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 40 -1 +505f 59 -1 +-1 + +cb41 +9e00 1b43 954e 7be9 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 41 -1 +7be9 f7 -1 +-1 + +cb42 +f200 dd12 7d4f 551f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 42 -1 +551f c9 -1 +-1 + +cb43 +ad00 c3b3 f1d0 bab4 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 43 -1 +bab4 76 -1 +-1 + +cb44 +b700 c829 27e3 5b92 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 44 -1 +5b92 78 -1 +-1 + +cb45 +7700 68ee 0c77 409b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 45 -1 +409b 64 -1 +-1 + +cb46 +7200 7ae3 a11e 6131 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 46 -1 +6131 d5 -1 +-1 + +cb47_1 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 47 -1 +-1 + +cb47 +1000 d8ca e2c4 8a8c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 47 -1 +8a8c 0e -1 +-1 + +cb48 +a900 6264 e833 6de0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 48 -1 +6de0 8c -1 +-1 + +cb49 +6c00 d0f7 1db7 a040 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 49 -1 +a040 5f -1 +-1 + +cb4a +4f00 f04c 5b29 77a4 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 4a -1 +77a4 96 -1 +-1 + +cb4b +5500 9848 095f 40ca 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 4b -1 +40ca 8a -1 +-1 + +cb4c +8800 0521 bf31 6d5d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 4c -1 +6d5d e7 -1 +-1 + +cb4d +f900 27d0 0f7e 158d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 4d -1 +158d e0 -1 +-1 + +cb4e +2600 9207 459a ada3 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 4e -1 +ada3 5b -1 +-1 + +cb4f_1 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 4f -1 +-1 + +cb4f +1700 2dc1 aca2 0bcc 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 4f -1 +0bcc a3 -1 +-1 + +cb50 +2300 2749 1012 84d2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 50 -1 +84d2 6a -1 +-1 + +cb51 +2200 b7db e19d aafc 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 51 -1 +aafc a6 -1 +-1 + +cb52 +8b00 ff7a b0ff ac44 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 52 -1 +ac44 00 -1 +-1 + +cb53 +6000 31a1 a4f4 7c75 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 53 -1 +7c75 ab -1 +-1 + +cb54 +3800 7ccc 89cc 1999 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 54 -1 +1999 98 -1 +-1 + +cb55 +f900 1f79 19cd fb4b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 55 -1 +fb4b 0b -1 +-1 + +cb56 +1500 2bfe e3b5 bbf9 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 56 -1 +bbf9 10 -1 +-1 + +cb57_1 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 57 -1 +-1 + +cb57 +6600 af32 532a da50 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 57 -1 +da50 30 -1 +-1 + +cb58 +5000 1aee 2e47 1479 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 58 -1 +1479 a0 -1 +-1 + +cb59 +7200 5e68 ff28 2075 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 59 -1 +2075 c1 -1 +-1 + +cb5a +eb00 fea7 17d1 d99b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 5a -1 +d99b e8 -1 +-1 + +cb5b +6b00 6f2c 3fe3 1691 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 5b -1 +1691 c7 -1 +-1 + +cb5c +3300 a7e7 2077 13e9 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 5c -1 +13e9 ae -1 +-1 + +cb5d +c100 afcc c8b1 ee49 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 5d -1 +ee49 a6 -1 +-1 + +cb5e +3000 ad43 16c1 349a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 5e -1 +349a 3c -1 +-1 + +cb5f_1 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 5f -1 +-1 + +cb5f +8c00 1b67 2314 6133 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 5f -1 +6133 90 -1 +-1 + +cb60 +9900 34b5 0fd8 5273 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 60 -1 +5273 0a -1 +-1 + +cb61 +d100 219f 3bb4 7c44 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 61 -1 +7c44 77 -1 +-1 + +cb62 +af00 bdf8 c536 8cc5 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 62 -1 +8cc5 af -1 +-1 + +cb63 +2a00 5e16 f627 84ca 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 63 -1 +84ca e6 -1 +-1 + +cb64 +a900 a365 c00b ea94 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 64 -1 +ea94 0c -1 +-1 + +cb65 +1800 8d58 4256 427a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 65 -1 +427a ee -1 +-1 + +cb66 +4c00 3ef7 e544 a44f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 66 -1 +a44f d2 -1 +-1 + +cb67_1 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 67 -1 +-1 + +cb67 +8600 5e92 2986 394d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 67 -1 +394d 10 -1 +-1 + +cb68 +d700 0f6a 18a6 ddd2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 68 -1 +ddd2 16 -1 +-1 + +cb69 +da00 691b 7c79 1dba 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 69 -1 +1dba 8a -1 +-1 + +cb6a +2200 13e8 86d4 4e09 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 6a -1 +4e09 d5 -1 +-1 + +cb6b +af00 5123 7635 1ca9 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 6b -1 +1ca9 86 -1 +-1 + +cb6c +4300 faa6 abc2 5605 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 6c -1 +5605 2b -1 +-1 + +cb6d +7f00 f099 d435 d9ad 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 6d -1 +d9ad 4e -1 +-1 + +cb6e +4a00 08c9 8177 d8ba 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 6e -1 +d8ba 31 -1 +-1 + +cb6f_1 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 6f -1 +-1 + +cb6f +a100 8c80 4678 4d34 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 6f -1 +4d34 78 -1 +-1 + +cb70 +1900 958a 5dab f913 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 70 -1 +f913 cf -1 +-1 + +cb71 +3d00 095e d6df 42fe 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 71 -1 +42fe 24 -1 +-1 + +cb72 +a500 c0bf 4c8d ad11 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 72 -1 +ad11 3b -1 +-1 + +cb73 +f200 49a6 b279 2ecc 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 73 -1 +2ecc e0 -1 +-1 + +cb74 +0500 445e 05e9 983d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 74 -1 +983d fa -1 +-1 + +cb75 +6b00 83c6 635a d18d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 75 -1 +d18d 11 -1 +-1 + +cb76 +f800 3057 3629 bc71 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 76 -1 +bc71 18 -1 +-1 + +cb77_1 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 77 -1 +-1 + +cb77 +9200 d6f8 5100 736d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 77 -1 +736d 36 -1 +-1 + +cb78 +7200 1cf8 8d2b c76a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 78 -1 +c76a 1f -1 +-1 + +cb79 +a800 809e 1124 39e8 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 79 -1 +39e8 98 -1 +-1 + +cb7a +5800 7d24 63e1 d9af 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 7a -1 +d9af ed -1 +-1 + +cb7b +0300 50ab 05bd 6bd0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 7b -1 +6bd0 a5 -1 +-1 + +cb7c +ad00 f77b 55ae 063b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 7c -1 +063b 34 -1 +-1 + +cb7d +8200 b792 38cb 5f9b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 7d -1 +5f9b 97 -1 +-1 + +cb7e +4200 3b91 f59c a25e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 7e -1 +a25e d7 -1 +-1 + +cb7f_1 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 7f -1 +-1 + +cb7f +6a00 84ec cf4e 185b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 7f -1 +185b f1 -1 +-1 + +cb80 +8f00 702f 17bd a706 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 80 -1 +a706 0a -1 +-1 + +cb81 +ae00 947f 7153 6616 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 81 -1 +6616 74 -1 +-1 + +cb82 +8100 bed2 c719 4572 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 82 -1 +4572 2f -1 +-1 + +cb83 +e600 63a2 ccf7 ae9a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 83 -1 +ae9a 16 -1 +-1 + +cb84 +ce00 e0cc d305 d6c0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 84 -1 +d6c0 72 -1 +-1 + +cb85 +f300 ed79 9db7 dda0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 85 -1 +dda0 8a -1 +-1 + +cb86 +2a00 b0b9 9426 1b48 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 86 -1 +1b48 62 -1 +-1 + +cb87 +1100 86dc 1798 dfc5 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 87 -1 +dfc5 de -1 +-1 + +cb88 +e300 8a21 e33e 674d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 88 -1 +674d 5f -1 +-1 + +cb89 +6000 d186 c5b6 1bd7 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 89 -1 +1bd7 f2 -1 +-1 + +cb8a +3e00 5fcd 0b38 b98e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 8a -1 +b98e 2f -1 +-1 + +cb8b +6500 040e 103f 4a07 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 8b -1 +4a07 3f -1 +-1 + +cb8c +f800 6d27 9bdf daef 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 8c -1 +daef 0c -1 +-1 + +cb8d +3e00 5469 2c28 bd72 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 8d -1 +bd72 13 -1 +-1 + +cb8e +1f00 140b b492 63a7 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 8e -1 +63a7 d4 -1 +-1 + +cb8f +2500 c522 ca46 1c1a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 8f -1 +1c1a 37 -1 +-1 + +cb90 +5700 595c 4f0a c73c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 90 -1 +c73c a2 -1 +-1 + +cb91 +5e00 8f26 a735 97e0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 91 -1 +97e0 5e -1 +-1 + +cb92 +3300 7d9f 87d0 83d0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 92 -1 +83d0 2b -1 +-1 + +cb93 +c200 4e05 b3f8 2234 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 93 -1 +2234 a0 -1 +-1 + +cb94 +ee00 8f4b 2831 d6a6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 94 -1 +d6a6 d0 -1 +-1 + +cb95 +3c00 6af2 b25d 36ff 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 95 -1 +36ff cd -1 +-1 + +cb96 +7600 b027 d0a5 3324 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 96 -1 +3324 21 -1 +-1 + +cb97 +1600 ad09 7902 97bc 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 97 -1 +97bc 75 -1 +-1 + +cb98 +3400 b61c 771d 5d5e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 98 -1 +5d5e a4 -1 +-1 + +cb99 +5100 65be 1359 8bec 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 99 -1 +8bec 0b -1 +-1 + +cb9a +6400 976d 4c25 dcb2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 9a -1 +dcb2 09 -1 +-1 + +cb9b +a100 b58a d264 2bd6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 9b -1 +2bd6 d3 -1 +-1 + +cb9c +d800 63d6 ac7b c7a0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 9c -1 +c7a0 75 -1 +-1 + +cb9d +0d00 d840 0810 0800 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 9d -1 +0800 cd -1 +-1 + +cb9e +3b00 ebbf 9434 3a65 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 9e -1 +3a65 2a -1 +-1 + +cb9f +b200 d1de f991 72f6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 9f -1 +72f6 72 -1 +-1 + +cba0 +fa00 d669 71e1 c80d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a0 -1 +c80d c0 -1 +-1 + +cba1 +8200 75e4 a0de d0ba 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a1 -1 +d0ba bd -1 +-1 + +cba2 +dd00 2b0d 5554 6fc0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a2 -1 +6fc0 61 -1 +-1 + +cba3 +2200 2f0d 4d2c 6666 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a3 -1 +6666 8e -1 +-1 + +cba4 +d600 d8ed 9cd4 8bb1 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a4 -1 +8bb1 bb -1 +-1 + +cba5 +b400 b393 3e42 88ca 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a5 -1 +88ca 4f -1 +-1 + +cba6 +0a00 4c34 f5a7 e70d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a6 -1 +e70d 27 -1 +-1 + +cba7 +4500 af61 569a c77b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a7 -1 +c77b ff -1 +-1 + +cba8 +6400 f269 bae4 c9e7 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a8 -1 +c9e7 46 -1 +-1 + +cba9 +e400 7ad4 bf0a ce0b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a9 -1 +ce0b 39 -1 +-1 + +cbaa +cd00 d249 4159 fed5 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb aa -1 +fed5 b0 -1 +-1 + +cbab +ac00 939a 5d9b 0812 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ab -1 +0812 f2 -1 +-1 + +cbac +2400 8a7d 2cac ffaa 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ac -1 +ffaa 09 -1 +-1 + +cbad +6f00 5ffb 2360 ae15 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ad -1 +ae15 30 -1 +-1 + +cbae +5a00 aa17 12f3 190e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ae -1 +190e 66 -1 +-1 + +cbaf +fc00 bb3f 8bb6 5877 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb af -1 +5877 62 -1 +-1 + +cbb0 +b900 7a79 1aaa c3ba 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b0 -1 +c3ba 4c -1 +-1 + +cbb1 +4900 63e4 a544 1190 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b1 -1 +1190 e3 -1 +-1 + +cbb2 +4d00 2b03 6b23 6ff5 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b2 -1 +6ff5 04 -1 +-1 + +cbb3 +8700 857a e98b 5cb1 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b3 -1 +5cb1 43 -1 +-1 + +cbb4 +2b00 b73e 79c9 e1bb 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b4 -1 +e1bb 78 -1 +-1 + +cbb5 +9b00 d879 2ec9 4bba 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b5 -1 +4bba 70 -1 +-1 + +cbb6 +8600 89bf de4a 4fab 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b6 -1 +4fab a5 -1 +-1 + +cbb7 +2200 fb8a 3d6e d4a2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b7 -1 +d4a2 f2 -1 +-1 + +cbb8 +d000 37c6 225a d249 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b8 -1 +d249 c4 -1 +-1 + +cbb9 +a500 1b4a d584 5dee 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b9 -1 +5dee cc -1 +-1 + +cbba +6300 a5fe f42b 34c9 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ba -1 +34c9 bc -1 +-1 + +cbbb +1200 f661 aa4f cb30 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb bb -1 +cb30 f4 -1 +-1 + +cbbc +9800 adc3 0b29 7b6e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb bc -1 +7b6e 45 -1 +-1 + +cbbd +d600 a6e1 8813 10b8 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb bd -1 +10b8 35 -1 +-1 + +cbbe +ca00 ff64 1218 77d5 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb be -1 +77d5 ea -1 +-1 + +cbbf +6800 4845 690a 15de 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb bf -1 +15de 1d -1 +-1 + +cbc0 +e300 ef71 bffb b3a1 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c0 -1 +b3a1 5c -1 +-1 + +cbc1 +3200 32a1 59ab 3343 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c1 -1 +3343 aa -1 +-1 + +cbc2 +c700 b159 c023 e1f3 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c2 -1 +e1f3 14 -1 +-1 + +cbc3 +0400 b463 c211 8f3a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c3 -1 +8f3a 81 -1 +-1 + +cbc4 +7e00 545a 6ecf 5876 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c4 -1 +5876 9d -1 +-1 + +cbc5 +4000 c617 079c 4107 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c5 -1 +4107 cc -1 +-1 + +cbc6 +b800 0373 b807 f0be 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c6 -1 +f0be 9c -1 +-1 + +cbc7 +7700 3681 9b55 583f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c7 -1 +583f 58 -1 +-1 + +cbc8 +7d00 a772 8682 7cf3 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c8 -1 +7cf3 75 -1 +-1 + +cbc9 +0b00 67ee 30e0 72db 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c9 -1 +72db 87 -1 +-1 + +cbca +9c00 9517 cfbb fbc7 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ca -1 +fbc7 1a -1 +-1 + +cbcb +e800 0f3d 336f f70d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb cb -1 +f70d a1 -1 +-1 + +cbcc +fb00 7981 0bbb 18fd 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb cc -1 +18fd fe -1 +-1 + +cbcd +5500 5e78 bf34 2602 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb cd -1 +2602 2d -1 +-1 + +cbce +d500 a111 cb2a 8ec6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ce -1 +8ec6 bf -1 +-1 + +cbcf +a200 6baf 98b2 98a0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb cf -1 +98a0 d4 -1 +-1 + +cbd0 +2300 7bcb 02e7 1724 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d0 -1 +1724 30 -1 +-1 + +cbd1 +5300 581f b775 47f4 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d1 -1 +47f4 c7 -1 +-1 + +cbd2 +6900 c147 b79c 7528 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d2 -1 +7528 4f -1 +-1 + +cbd3 +ae00 bbc4 ce52 5fba 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d3 -1 +5fba 3a -1 +-1 + +cbd4 +d800 6e1e af6f bf2e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d4 -1 +bf2e 71 -1 +-1 + +cbd5 +8400 a19a d2fd 8a77 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d5 -1 +8a77 52 -1 +-1 + +cbd6 +a900 f5f3 2180 6029 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d6 -1 +6029 b7 -1 +-1 + +cbd7 +b100 c008 8425 290a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d7 -1 +290a 42 -1 +-1 + +cbd8 +8b00 09c4 ddf3 6d7e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d8 -1 +6d7e 6e -1 +-1 + +cbd9 +3e00 3e36 30ec efc6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d9 -1 +efc6 5b -1 +-1 + +cbda +d000 3e8f 28fe 1c87 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb da -1 +1c87 b9 -1 +-1 + +cbdb +1200 977a 8c49 bc48 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb db -1 +bc48 ef -1 +-1 + +cbdc +8d00 05de f8d3 b125 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb dc -1 +b125 0e -1 +-1 + +cbdd +c300 08a9 2bc8 5b9f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb dd -1 +5b9f 94 -1 +-1 + +cbde +1900 900f d572 ba03 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb de -1 +ba03 93 -1 +-1 + +cbdf +6700 2745 7e3d 0fa1 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb df -1 +0fa1 c5 -1 +-1 + +cbe0 +3e00 d633 9897 3744 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e0 -1 +3744 54 -1 +-1 + +cbe1 +7d00 50a6 0136 5334 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e1 -1 +5334 85 -1 +-1 + +cbe2 +d400 6b45 a192 3a4c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e2 -1 +3a4c 47 -1 +-1 + +cbe3 +3b00 d29c 05e0 2e78 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e3 -1 +2e78 48 -1 +-1 + +cbe4 +1e00 7d5e 846d 0978 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e4 -1 +0978 84 -1 +-1 + +cbe5 +ca00 df0d d588 b48f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e5 -1 +b48f cf -1 +-1 + +cbe6 +b300 52c2 dbfe 9f9b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e6 -1 +9f9b f6 -1 +-1 + +cbe7 +8e00 cf02 67ef f2e0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e7 -1 +f2e0 cf -1 +-1 + +cbe8 +7100 bb18 66ec 4a05 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e8 -1 +4a05 e6 -1 +-1 + +cbe9 +5700 2897 8f2f a4d0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e9 -1 +a4d0 b2 -1 +-1 + +cbea +ec00 304a 60a1 f32a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ea -1 +f32a 9c -1 +-1 + +cbeb +f000 532b a1be 1a1a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb eb -1 +1a1a 21 -1 +-1 + +cbec +f200 f0f3 a816 ba08 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ec -1 +ba08 82 -1 +-1 + +cbed +1300 5127 adab 2dec 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ed -1 +2dec cb -1 +-1 + +cbee +9000 b273 50ae e90d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ee -1 +e90d f1 -1 +-1 + +cbef +2500 4281 f0d4 2c39 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ef -1 +2c39 c8 -1 +-1 + +cbf0 +fb00 5802 0c27 6ff5 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f0 -1 +6ff5 f6 -1 +-1 + +cbf1 +5500 a103 3ff5 5e1c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f1 -1 +5e1c 37 -1 +-1 + +cbf2 +f000 625a af82 9819 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f2 -1 +9819 e4 -1 +-1 + +cbf3 +8600 d7bd 5d86 263f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f3 -1 +263f a1 -1 +-1 + +cbf4 +9400 0243 9ec1 75d9 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f4 -1 +75d9 3f -1 +-1 + +cbf5 +ce00 2d42 5e6a 47e6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f5 -1 +47e6 ce -1 +-1 + +cbf6 +7b00 c2d7 4492 a9bc 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f6 -1 +a9bc b1 -1 +-1 + +cbf7 +6d00 abaf 5b5d 188c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f7 -1 +188c 6c -1 +-1 + +cbf8 +c600 b812 a037 d2b0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f8 -1 +d2b0 cb -1 +-1 + +cbf9 +ef00 c5f2 77a8 0730 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f9 -1 +0730 ae -1 +-1 + +cbfa +8700 1581 63e3 ed03 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb fa -1 +ed03 27 -1 +-1 + +cbfb +a300 7d27 97c3 d1ae 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb fb -1 +d1ae f2 -1 +-1 + +cbfc +ec00 060a 3ef6 500f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb fc -1 +500f 94 -1 +-1 + +cbfd +1100 231a 8563 28c5 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb fd -1 +28c5 ab -1 +-1 + +cbfe +5300 4948 89dd 3a24 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb fe -1 +3a24 c3 -1 +-1 + +cbff +7900 799b 6cf7 e3f2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ff -1 +e3f2 25 -1 +-1 + +cc_1 +004e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 cc 61 9c -1 +-1 + +cc_2 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 cc 61 9c -1 +-1 + +cd +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 b07d 0000 +00 00 0 0 0 0 1 +0000 cd 5d 3a -1 +-1 + +ce +60f5 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ce b2 -1 +-1 + +cf +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5507 6d33 +00 00 0 0 0 0 1 +6d33 cf -1 +-1 + +d0_1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 d0 -1 +43f7 e9 af -1 +-1 + +d0_2 +0099 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 d0 -1 +43f7 e9 af -1 +-1 + +d1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4143 0000 +00 00 0 0 0 0 1 +0000 d1 -1 +4143 ce e8 -1 +-1 + +d2_1 +0086 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 d2 1b e1 -1 +-1 + +d2_2 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 d2 1b e1 -1 +-1 + +d3_1 +a200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 d3 ed -1 +-1 + +d3_2 +4200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 d3 ec -1 +-1 + +d3_3 +4200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 d3 ed -1 +-1 + +d3 +a200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 d3 ec -1 +-1 + +d4_1 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 d4 61 9c -1 +-1 + +d4_2 +000f 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 d4 61 9c -1 +-1 + +d5 +53e3 1459 775f 1a2f 0000 0000 0000 0000 0000 0000 ec12 0000 +00 00 0 0 0 0 1 +0000 d5 -1 +-1 + +d6 +3900 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 d6 df -1 +-1 + +d7 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5507 6d33 +00 00 0 0 0 0 1 +6d33 d7 -1 +-1 + +d8_1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 d8 -1 +43f7 e9 af -1 +-1 + +d8_2 +0099 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 d8 -1 +43f7 e9 af -1 +-1 + +d9 +4d94 e07a e35b 9d64 1a64 c930 3d01 7d02 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 d9 -1 +-1 + +da_1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 da 1b e1 -1 +-1 + +da_2 +0086 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 da 1b e1 -1 +-1 + +db_1 +c100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 db e3 -1 +-1 + +db_2 +7100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 db e2 -1 +-1 + +db_3 +7100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 db e3 -1 +-1 + +db +c100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 db e2 -1 +-1 + +dc_1 +000f 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 dc 61 9c -1 +-1 + +dc_2 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 dc 61 9c -1 +-1 + +dd00 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 9 +0000 dd 00 00 -1 +-1 + +dd09 +0d05 1426 53ce 41e3 0000 0000 0000 0000 9ec0 5c89 0000 0000 +00 00 0 0 0 0 1 +0000 dd 09 -1 +-1 + +dd19 +1911 0e0b 2724 be62 0000 0000 0000 0000 824f 760b 0000 0000 +00 00 0 0 0 0 1 +0000 dd 19 -1 +-1 + +dd21 +c935 4353 bd22 94d5 0000 0000 0000 0000 dade aad6 0000 0000 +00 00 0 0 0 0 1 +0000 dd 21 f2 7c -1 +-1 + +dd22 +5b1d 45a1 6de8 39d3 0000 0000 0000 0000 ebe7 05b0 0000 0000 +00 00 0 0 0 0 1 +0000 dd 22 4f ad -1 +-1 + +dd23 +9095 ac3c 4d90 379b 0000 0000 0000 0000 d50b a157 0000 0000 +00 00 0 0 0 0 1 +0000 dd 23 -1 +-1 + +dd24 +0698 dcd0 a31b d527 0000 0000 0000 0000 8cda b096 0000 0000 +00 00 0 0 0 0 1 +0000 dd 24 -1 +-1 + +dd25 +5acc 206b ed10 6eab 0000 0000 0000 0000 bb3c 5ebd 0000 0000 +00 00 0 0 0 0 1 +0000 dd 25 -1 +-1 + +dd26 +9522 ede0 a352 adea 0000 0000 0000 0000 5f40 82e1 0000 0000 +00 00 0 0 0 0 1 +0000 dd 26 ad -1 +-1 + +dd29 +ac80 0f0e 72c8 1f2a 0000 0000 0000 0000 5195 7d8a 0000 0000 +00 00 0 0 0 0 1 +0000 dd 29 -1 +-1 + +dd2a +3d36 b24e bdbc ca4e 0000 0000 0000 0000 ba65 e7ce 0000 0000 +00 00 0 0 0 0 1 +0000 dd 2a bc 40 -1 +40bc b5 30 -1 +-1 + +dd2b +ad4b d5e6 9377 f132 0000 0000 0000 0000 7a17 2188 0000 0000 +00 00 0 0 0 0 1 +0000 dd 2b -1 +-1 + +dd2c +8838 f2f3 d277 9153 0000 0000 0000 0000 c62f b002 0000 0000 +00 00 0 0 0 0 1 +0000 dd 2c -1 +-1 + +dd2d +39bc b23c 6e11 5a49 0000 0000 0000 0000 0267 ab03 0000 0000 +00 00 0 0 0 0 1 +0000 dd 2d -1 +-1 + +dd2e +9aca a04a b49f a4a6 0000 0000 0000 0000 bd90 38a1 0000 0000 +00 00 0 0 0 0 1 +0000 dd 2e 1c -1 +-1 + +dd34 +8304 d1fc b80b 8082 0000 0000 0000 0000 dea9 6fd8 0000 0000 +00 00 0 0 0 0 1 +0000 dd 34 e6 -1 +de8f 57 -1 +-1 + +dd35 +8681 4641 1ef6 10ab 0000 0000 0000 0000 c733 8ec4 0000 0000 +00 00 0 0 0 0 1 +0000 dd 35 60 -1 +c793 f7 -1 +-1 + +dd36 +76dc 2530 5158 877d 0000 0000 0000 0000 b5c6 8d3c 0000 0000 +00 00 0 0 0 0 1 +0000 dd 36 35 b5 -1 +-1 + +dd39 +875b a334 d79d 59e4 0000 0000 0000 0000 b11a 4c88 fa4a 0000 +00 00 0 0 0 0 1 +0000 dd 39 -1 +-1 + +dd44 +b37e cbb0 36e8 3f45 0000 0000 0000 0000 2702 b3b9 0000 0000 +00 00 0 0 0 0 1 +0000 dd 44 -1 +-1 + +dd45 +4e10 5c6d d11d 1736 0000 0000 0000 0000 7298 2d10 0000 0000 +00 00 0 0 0 0 1 +0000 dd 45 -1 +-1 + +dd46 +c758 bf29 66f2 29ef 0000 0000 0000 0000 5cc7 407d 0000 0000 +00 00 0 0 0 0 1 +0000 dd 46 68 -1 +5d2f 8d -1 +-1 + +dd4c +e15c 75ec 7531 ae9e 0000 0000 0000 0000 3ed8 03b7 0000 0000 +00 00 0 0 0 0 1 +0000 dd 4c -1 +-1 + +dd4d +469e 7864 6a5a 00e2 0000 0000 0000 0000 a1aa 0d6f 0000 0000 +00 00 0 0 0 0 1 +0000 dd 4d -1 +-1 + +dd4e +7bf7 6605 8d55 def2 0000 0000 0000 0000 d94b 17fb 0000 0000 +00 00 0 0 0 0 1 +0000 dd 4e 2e -1 +d979 76 -1 +-1 + +dd54 +8376 0d13 c767 3119 0000 0000 0000 0000 4b6d 030b 0000 0000 +00 00 0 0 0 0 1 +0000 dd 54 -1 +-1 + +dd55 +ff78 85e3 566b 8f3a 0000 0000 0000 0000 d7d7 4e0b 0000 0000 +00 00 0 0 0 0 1 +0000 dd 55 -1 +-1 + +dd56 +97b3 b617 bb50 81d1 0000 0000 0000 0000 a306 7a49 0000 0000 +00 00 0 0 0 0 1 +0000 dd 56 f4 -1 +a2fa de -1 +-1 + +dd5c +af82 24bf 2793 f925 0000 0000 0000 0000 f9a3 0b82 0000 0000 +00 00 0 0 0 0 1 +0000 dd 5c -1 +-1 + +dd5d +36cb 97a9 400d 30fe 0000 0000 0000 0000 3340 b3ed 0000 0000 +00 00 0 0 0 0 1 +0000 dd 5d -1 +-1 + +dd5e +a220 389d 2ff8 368c 0000 0000 0000 0000 8d32 3512 0000 0000 +00 00 0 0 0 0 1 +0000 dd 5e 8f -1 +8cc1 ce -1 +-1 + +dd60 +2392 7f6a 3dc0 cefb 0000 0000 0000 0000 44a0 c424 0000 0000 +00 00 0 0 0 0 1 +0000 dd 60 -1 +-1 + +dd61 +76ed 268c d5c8 bab0 0000 0000 0000 0000 b650 0a93 0000 0000 +00 00 0 0 0 0 1 +0000 dd 61 -1 +-1 + +dd62 +4c6f b482 fef4 62e7 0000 0000 0000 0000 6e25 9655 0000 0000 +00 00 0 0 0 0 1 +0000 dd 62 -1 +-1 + +dd63 +6e9a 5499 3c8f 1f64 0000 0000 0000 0000 bf35 0df7 0000 0000 +00 00 0 0 0 0 1 +0000 dd 63 -1 +-1 + +dd64 +47f6 1b7a a55e 2fc2 0000 0000 0000 0000 efc7 aca0 0000 0000 +00 00 0 0 0 0 1 +0000 dd 64 -1 +-1 + +dd65 +d786 7d1d b659 77e8 0000 0000 0000 0000 58fa 006d 0000 0000 +00 00 0 0 0 0 1 +0000 dd 65 -1 +-1 + +dd66 +84c2 79b1 ca4a aaa0 0000 0000 0000 0000 ce5d dd2d 0000 0000 +00 00 0 0 0 0 1 +0000 dd 66 b5 -1 +ce12 03 -1 +-1 + +dd67 +967c 511e 336d 40f6 0000 0000 0000 0000 66e7 5be2 0000 0000 +00 00 0 0 0 0 1 +0000 dd 67 -1 +-1 + +dd68 +4a9d efa8 febd 07e4 0000 0000 0000 0000 5fd8 b23f 0000 0000 +00 00 0 0 0 0 1 +0000 dd 68 -1 +-1 + +dd69 +6466 2142 2523 82b3 0000 0000 0000 0000 6479 04a7 0000 0000 +00 00 0 0 0 0 1 +0000 dd 69 -1 +-1 + +dd6a +401f 61f1 4b08 fa88 0000 0000 0000 0000 c37f d8f6 0000 0000 +00 00 0 0 0 0 1 +0000 dd 6a -1 +-1 + +dd6b +6dc7 e2ae 40bd f3c0 0000 0000 0000 0000 2290 2749 0000 0000 +00 00 0 0 0 0 1 +0000 dd 6b -1 +-1 + +dd6c +3939 90da 62dc 7c31 0000 0000 0000 0000 412f 7211 0000 0000 +00 00 0 0 0 0 1 +0000 dd 6c -1 +-1 + +dd6d +3964 ff3f 23d4 c7c7 0000 0000 0000 0000 9b70 20c6 0000 0000 +00 00 0 0 0 0 1 +0000 dd 6d -1 +-1 + +dd6e +223f f661 b61c 0f53 0000 0000 0000 0000 c648 fae8 0000 0000 +00 00 0 0 0 0 1 +0000 dd 6e 2c -1 +c674 6b -1 +-1 + +dd6f +6e84 9cd4 a293 647d 0000 0000 0000 0000 0d0b 4a56 0000 0000 +00 00 0 0 0 0 1 +0000 dd 6f -1 +-1 + +dd70 +d09f fe00 231e 31ec 0000 0000 0000 0000 05fa ea92 0000 0000 +00 00 0 0 0 0 1 +0000 dd 70 f6 -1 +-1 + +dd71 +ebee 151c 05c7 ee08 0000 0000 0000 0000 3722 2ec6 0000 0000 +00 00 0 0 0 0 1 +0000 dd 71 23 -1 +-1 + +dd72 +80c9 ac1e 63bd 828b 0000 0000 0000 0000 8dff 94ef 0000 0000 +00 00 0 0 0 0 1 +0000 dd 72 93 -1 +-1 + +dd73 +8f3e b5a3 07de 0b0c 0000 0000 0000 0000 79c6 ae79 0000 0000 +00 00 0 0 0 0 1 +0000 dd 73 57 -1 +-1 + +dd74 +4ae0 49c5 3deb 0125 0000 0000 0000 0000 5910 429a 0000 0000 +00 00 0 0 0 0 1 +0000 dd 74 b9 -1 +-1 + +dd75 +5772 e833 b63e 734f 0000 0000 0000 0000 ae4c e8c2 0000 0000 +00 00 0 0 0 0 1 +0000 dd 75 30 -1 +-1 + +dd77 +dc56 d893 4116 f2d2 0000 0000 0000 0000 a181 3157 0000 0000 +00 00 0 0 0 0 1 +0000 dd 77 8c -1 +-1 + +dd7c +7558 7705 ac92 a6a1 0000 0000 0000 0000 8cde 7507 0000 0000 +00 00 0 0 0 0 1 +0000 dd 7c -1 +-1 + +dd7d +6c18 93fb 6bdd 3a10 0000 0000 0000 0000 d7cb c0f6 0000 0000 +00 00 0 0 0 0 1 +0000 dd 7d -1 +-1 + +dd7e +6a66 1f77 6220 0c40 0000 0000 0000 0000 1cf4 1a1f 0000 0000 +00 00 0 0 0 0 1 +0000 dd 7e bc -1 +1cb0 57 -1 +-1 + +dd84 +2e47 1de8 b8b9 78a6 0000 0000 0000 0000 9f1d b11f 0000 0000 +00 00 0 0 0 0 1 +0000 dd 84 -1 +-1 + +dd85 +b27a b1ff 8d7b 40c0 0000 0000 0000 0000 b513 0688 0000 0000 +00 00 0 0 0 0 1 +0000 dd 85 -1 +-1 + +dd86 +4efa d085 5bac e364 0000 0000 0000 0000 b5b5 fe3a 0000 0000 +00 00 0 0 0 0 1 +0000 dd 86 c1 -1 +b576 5b -1 +-1 + +dd8c +bc63 8fdc ea8f 9734 0000 0000 0000 0000 0eb3 1b54 0000 0000 +00 00 0 0 0 0 1 +0000 dd 8c -1 +-1 + +dd8d +b61f 1c81 b6fb d6e5 0000 0000 0000 0000 09be a736 0000 0000 +00 00 0 0 0 0 1 +0000 dd 8d -1 +-1 + +dd8e +4ed4 182d ab17 94ae 0000 0000 0000 0000 bb97 87da 0000 0000 +00 00 0 0 0 0 1 +0000 dd 8e 25 -1 +bbbc 32 -1 +-1 + +dd94 +7ef1 9efe 6ea1 fc55 0000 0000 0000 0000 0a09 89c5 0000 0000 +00 00 0 0 0 0 1 +0000 dd 94 -1 +-1 + +dd95 +2920 59ab 428c 3a94 0000 0000 0000 0000 44fd f243 0000 0000 +00 00 0 0 0 0 1 +0000 dd 95 -1 +-1 + +dd96 +9b76 461f ced7 db3f 0000 0000 0000 0000 2c66 9dbf 0000 0000 +00 00 0 0 0 0 1 +0000 dd 96 5f -1 +2cc5 49 -1 +-1 + +dd9c +faf4 670e afcc 8b34 0000 0000 0000 0000 285f 1caa 0000 0000 +00 00 0 0 0 0 1 +0000 dd 9c -1 +-1 + +dd9d +f827 0cdb df32 d0e4 0000 0000 0000 0000 9b12 7d07 0000 0000 +00 00 0 0 0 0 1 +0000 dd 9d -1 +-1 + +dd9e +938e f9c5 cbc4 ca21 0000 0000 0000 0000 b4cc 46fa 0000 0000 +00 00 0 0 0 0 1 +0000 dd 9e 14 -1 +b4e0 b5 -1 +-1 + +dda4 +52f5 ba53 acfc 9481 0000 0000 0000 0000 2f8b edf6 0000 0000 +00 00 0 0 0 0 1 +0000 dd a4 -1 +-1 + +dda5 +baaf a675 d757 f1db 0000 0000 0000 0000 fdef d8ce 0000 0000 +00 00 0 0 0 0 1 +0000 dd a5 -1 +-1 + +dda6 +1da4 20c4 ebc3 da8d 0000 0000 0000 0000 7e95 5e8a 0000 0000 +00 00 0 0 0 0 1 +0000 dd a6 41 -1 +7ed6 c7 -1 +-1 + +ddac +ef15 2a7c 17e5 3f6e 0000 0000 0000 0000 affa a0b5 0000 0000 +00 00 0 0 0 0 1 +0000 dd ac -1 +-1 + +ddad +ba2e 6ba1 ef1b 5713 0000 0000 0000 0000 ba38 a708 0000 0000 +00 00 0 0 0 0 1 +0000 dd ad -1 +-1 + +ddae +8009 3ad6 a721 2100 0000 0000 0000 0000 e909 87b4 0000 0000 +00 00 0 0 0 0 1 +0000 dd ae 72 -1 +e97b c3 -1 +-1 + +ddb4 +1ccd 29aa 2e82 4dc8 0000 0000 0000 0000 9c04 8be3 0000 0000 +00 00 0 0 0 0 1 +0000 dd b4 -1 +-1 + +ddb5 +46b4 fc93 7a06 0518 0000 0000 0000 0000 0ac5 4150 0000 0000 +00 00 0 0 0 0 1 +0000 dd b5 -1 +-1 + +ddb6 +5017 ab81 4287 5ee1 0000 0000 0000 0000 c66f d6cc 0000 0000 +00 00 0 0 0 0 1 +0000 dd b6 31 -1 +c6a0 1c -1 +-1 + +ddbc +53e0 aa98 f7d7 fa0c 0000 0000 0000 0000 be7a a41f 0000 0000 +00 00 0 0 0 0 1 +0000 dd bc -1 +-1 + +ddbd +dc83 80ce 5d2f e999 0000 0000 0000 0000 bb41 a24f 0000 0000 +00 00 0 0 0 0 1 +0000 dd bd -1 +-1 + +ddbe +9838 bfd5 a299 d34b 0000 0000 0000 0000 9332 b1d5 0000 0000 +00 00 0 0 0 0 1 +0000 dd be 48 -1 +937a 5b -1 +-1 + +ddcb00 +3c65 f0e4 09d1 646b 0000 0000 0000 0000 1da1 f08f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0d 00 -1 +1dae a1 -1 +-1 + +ddcb01 +f68f e33b 2d4a 7725 0000 0000 0000 0000 28fd f31b 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b7 01 -1 +28b4 e3 -1 +-1 + +ddcb02 +e20c 836e 513a f840 0000 0000 0000 0000 c796 ae9b 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 91 02 -1 +c727 8d -1 +-1 + +ddcb03 +6224 3571 c519 48dc 0000 0000 0000 0000 041e c07b 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 48 03 -1 +0466 78 -1 +-1 + +ddcb04 +b310 bfc4 64af d622 0000 0000 0000 0000 5949 a989 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 48 04 -1 +5991 68 -1 +-1 + +ddcb05 +4954 bb04 56ec 9d58 0000 0000 0000 0000 0077 1349 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ff 05 -1 +0076 95 -1 +-1 + +ddcb06 +0cf4 f636 90a6 6117 0000 0000 0000 0000 5421 90ee 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 07 06 -1 +5428 97 -1 +-1 + +ddcb07 +6f4d 9ca3 bdf6 ed50 0000 0000 0000 0000 9803 55f9 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 42 07 -1 +9845 ae -1 +-1 + +ddcb08 +02f4 1c66 6023 ae06 0000 0000 0000 0000 ef40 b006 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0a 08 -1 +ef4a da -1 +-1 + +ddcb09 +9825 9258 54d5 5e1e 0000 0000 0000 0000 9d0b 6e58 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 3b 09 -1 +9d46 6f -1 +-1 + +ddcb0a +d2dd 6aac e789 9293 0000 0000 0000 0000 1fb4 2498 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 83 0a -1 +1f37 78 -1 +-1 + +ddcb0b +b82c b284 23f8 7e7d 0000 0000 0000 0000 cd09 6a03 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb fa 0b -1 +cd03 92 -1 +-1 + +ddcb0c +df8b b6cc ee8d 855a 0000 0000 0000 0000 bf6b 9b7d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 79 0c -1 +bfe4 0d -1 +-1 + +ddcb0d +bae3 ceec bbaa b65e 0000 0000 0000 0000 88bd 503e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e4 0d -1 +88a1 1f -1 +-1 + +ddcb0e +1c36 890b 7830 060c 0000 0000 0000 0000 fd49 5d07 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c6 0e -1 +fd0f ad -1 +-1 + +ddcb0f +f5a7 fad4 fa4b 9c53 0000 0000 0000 0000 7447 2267 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 57 0f -1 +749e f8 -1 +-1 + +ddcb10 +f3af ba1f 5387 926e 0000 0000 0000 0000 bba2 ca47 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 4f 10 -1 +bbf1 45 -1 +-1 + +ddcb11 +2a69 d604 a9aa 5b52 0000 0000 0000 0000 1809 d275 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb eb 11 -1 +17f4 d9 -1 +-1 + +ddcb12 +9287 c479 26d1 10ce 0000 0000 0000 0000 c0fb 2777 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb a6 12 -1 +c0a1 e2 -1 +-1 + +ddcb13 +a507 580a a48f 11cd 0000 0000 0000 0000 5ac4 ccc7 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ff 13 -1 +5ac3 a7 -1 +-1 + +ddcb14 +294b 5b89 8467 0430 0000 0000 0000 0000 0977 c4e8 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb dd 14 -1 +0954 85 -1 +-1 + +ddcb15 +1fd1 6d53 5b7c a134 0000 0000 0000 0000 ede9 a85c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 07 15 -1 +edf0 0e -1 +-1 + +ddcb16 +da70 a1e4 00b0 92c8 0000 0000 0000 0000 16be 2c95 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 45 16 -1 +1703 5b -1 +-1 + +ddcb17 +3300 cbd1 4e1a cd27 0000 0000 0000 0000 b8c9 e6d4 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 1c 17 -1 +b8e5 7e -1 +-1 + +ddcb18 +d980 4eb5 9cf9 b9f1 0000 0000 0000 0000 a189 bd7c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0e 18 -1 +a197 90 -1 +-1 + +ddcb19 +23b7 595a a756 cf2e 0000 0000 0000 0000 f0e7 26e4 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb a3 19 -1 +f08a 37 -1 +-1 + +ddcb1a +8b52 7e45 bd0f 37a6 0000 0000 0000 0000 de61 9cd9 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ac 1a -1 +de0d cc -1 +-1 + +ddcb1b +5c79 1414 811c 5881 0000 0000 0000 0000 b7c3 d14f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 05 1b -1 +b7c8 91 -1 +-1 + +ddcb1c +fafc 6277 8b67 d423 0000 0000 0000 0000 fef9 4a66 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ff 1c -1 +fef8 61 -1 +-1 + +ddcb1d +76a5 324e e641 58f9 0000 0000 0000 0000 5b63 e18b 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 3a 1d -1 +5b9d f3 -1 +-1 + +ddcb1e +c5d9 cd58 8967 f074 0000 0000 0000 0000 75b4 693a 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ce 1e -1 +7582 91 -1 +-1 + +ddcb1f +d28f 7f6d 2058 63e3 0000 0000 0000 0000 1d9b baba 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb a8 1f -1 +1d43 b4 -1 +-1 + +ddcb20 +4ce5 739e dc6c 18f4 0000 0000 0000 0000 dc39 8b0c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e8 20 -1 +dc21 0e -1 +-1 + +ddcb21 +d29d 66dd 23ef 9096 0000 0000 0000 0000 3494 b6c3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9e 21 -1 +3432 f7 -1 +-1 + +ddcb22 +fb5d e0d0 7c02 b4b7 0000 0000 0000 0000 bd3f 385b 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 43 22 -1 +bd82 9f -1 +-1 + +ddcb23 +c359 68b6 da84 b990 0000 0000 0000 0000 22dd bd27 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c1 23 -1 +229e e0 -1 +-1 + +ddcb24 +baf5 7b0b 560b 7c33 0000 0000 0000 0000 31f1 ddbd 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e8 24 -1 +31d9 c3 -1 +-1 + +ddcb25 +43bb a21b 2347 ae4a 0000 0000 0000 0000 cc63 fc94 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c1 25 -1 +cc24 eb -1 +-1 + +ddcb26 +2065 ff37 e41f 70e7 0000 0000 0000 0000 6528 a0d5 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f7 26 -1 +651f 89 -1 +-1 + +ddcb27 +a806 5669 1bee f62c 0000 0000 0000 0000 1f69 3418 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c3 27 -1 +1f2c ac -1 +-1 + +ddcb28 +7afd 64b8 51f7 7164 0000 0000 0000 0000 999b 8857 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b6 28 -1 +9951 24 -1 +-1 + +ddcb29 +0404 b794 323f fd34 0000 0000 0000 0000 20e7 c753 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9c 29 -1 +2083 82 -1 +-1 + +ddcb2a +4524 afde 0c08 75d7 0000 0000 0000 0000 9505 b624 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d8 2a -1 +94dd 7c -1 +-1 + +ddcb2b +8324 e290 26be 7ddd 0000 0000 0000 0000 b484 571c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb bd 2b -1 +b441 44 -1 +-1 + +ddcb2c +c688 0c94 6e4b 7dc7 0000 0000 0000 0000 fe28 dc80 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 2c 2c -1 +fe54 81 -1 +-1 + +ddcb2d +ce28 d2ae c9be 4236 0000 0000 0000 0000 b4ed 6de3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9b 2d -1 +b488 44 -1 +-1 + +ddcb2e +50b0 de74 eca8 83ff 0000 0000 0000 0000 69d8 75c7 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 3d 2e -1 +6a15 05 -1 +-1 + +ddcb2f +aec6 759b 3059 01b9 0000 0000 0000 0000 7a30 dd56 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d3 2f -1 +7a03 f2 -1 +-1 + +ddcb30 +3c89 96ad 9cc7 a68c 0000 0000 0000 0000 eee8 5a80 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb df 30 -1 +eec7 32 -1 +-1 + +ddcb31 +ebf5 41e9 929b 7d47 0000 0000 0000 0000 f22d 8943 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 49 31 -1 +f276 cd -1 +-1 + +ddcb32 +9a1b aa64 4209 01ad 0000 0000 0000 0000 579f ec4c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e0 32 -1 +577f e2 -1 +-1 + +ddcb33 +b8b1 b854 524f 9599 0000 0000 0000 0000 efac d9ec 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c9 33 -1 +ef75 0b -1 +-1 + +ddcb34 +cd3c 4432 20d4 0b3e 0000 0000 0000 0000 ab48 c95f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 49 34 -1 +ab91 ef -1 +-1 + +ddcb35 +deb1 c6fc 696d 150d 0000 0000 0000 0000 eb1a 4a12 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b9 35 -1 +ead3 8f -1 +-1 + +ddcb36 +3d81 443b ff21 63e3 0000 0000 0000 0000 132e fb39 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b4 36 -1 +12e2 02 -1 +-1 + +ddcb37 +72d9 bfc9 a69a ec0b 0000 0000 0000 0000 5077 4e3e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c6 37 -1 +503d 3d -1 +-1 + +ddcb38 +3c64 b1ee 38e1 ae9f 0000 0000 0000 0000 f695 44b3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 8e 38 -1 +f623 5e -1 +-1 + +ddcb39 +05d6 9aad a2db df75 0000 0000 0000 0000 a895 e243 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb dc 39 -1 +a871 83 -1 +-1 + +ddcb3a +0e22 0b9f 873b c01d 0000 0000 0000 0000 2591 49c3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0d 3a -1 +259e 89 -1 +-1 + +ddcb3b +1bd9 c795 d8ae 7ccf 0000 0000 0000 0000 6fed 09dc 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 20 3b -1 +700d a9 -1 +-1 + +ddcb3c +b651 bdf7 fca3 7529 0000 0000 0000 0000 f53b 018b 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e1 3c -1 +f51c d0 -1 +-1 + +ddcb3d +2a2d 6e6e cfbd 1db5 0000 0000 0000 0000 0320 6ab0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb be 3d -1 +02de 58 -1 +-1 + +ddcb3e +39b8 b26e b670 b8a2 0000 0000 0000 0000 784a 7840 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0a 3e -1 +7854 5d -1 +-1 + +ddcb3f +2a17 429d d8c0 e069 0000 0000 0000 0000 3488 7150 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 31 3f -1 +34b9 04 -1 +-1 + +ddcb40 +119b f6ba 079e 0e41 0000 0000 0000 0000 8c01 cd21 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb bd 40 -1 +8bbe e7 -1 +-1 + +ddcb41 +22b3 c4b0 575b 66b4 0000 0000 0000 0000 cdcf a25c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 52 41 -1 +ce21 75 -1 +-1 + +ddcb42 +af5e 7720 aa95 3b0a 0000 0000 0000 0000 f03a 856a 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 1e 42 -1 +f058 90 -1 +-1 + +ddcb43 +7fa6 b699 5e71 1827 0000 0000 0000 0000 e8b6 96a8 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb bc 43 -1 +e872 6b -1 +-1 + +ddcb44 +5faa de05 12fd f73b 0000 0000 0000 0000 ee0a 6634 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e8 44 -1 +edf2 62 -1 +-1 + +ddcb45 +eac7 699c 47d3 89c3 0000 0000 0000 0000 a2be d81e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 02 45 -1 +a2c0 55 -1 +-1 + +ddcb46 +60de ac1d 4173 f92a 0000 0000 0000 0000 a39f 12e5 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e2 46 -1 +a381 d5 -1 +-1 + +ddcb47 +1b1a f7c0 22f6 5253 0000 0000 0000 0000 5227 919d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 7a 47 -1 +52a1 6a -1 +-1 + +ddcb48 +721a 4509 d68f 3b3d 0000 0000 0000 0000 2746 7f97 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 13 48 -1 +2759 a8 -1 +-1 + +ddcb49 +7fe9 da22 ea9c f480 0000 0000 0000 0000 41c6 75a9 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 94 49 -1 +415a 26 -1 +-1 + +ddcb4a +f16d e6c3 5a42 8b21 0000 0000 0000 0000 bfeb e383 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 3b 4a -1 +c026 b5 -1 +-1 + +ddcb4b +1050 880a 52b2 fb1b 0000 0000 0000 0000 c239 6b40 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b0 4b -1 +c1e9 18 -1 +-1 + +ddcb4c +0538 bc63 f081 0a55 0000 0000 0000 0000 874c 80a3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 97 4c -1 +86e3 63 -1 +-1 + +ddcb4d +7f8c 32b4 03d5 ef66 0000 0000 0000 0000 7d2a 03bc 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 15 4d -1 +7d3f 60 -1 +-1 + +ddcb4e +7c67 fa92 b4d0 9f23 0000 0000 0000 0000 eade 1785 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b0 4e -1 +ea8e 3b -1 +-1 + +ddcb4f +725c 257b db73 2478 0000 0000 0000 0000 88c0 f151 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 8b 4f -1 +884b 4c -1 +-1 + +ddcb50 +35f4 8e51 406c 2e3c 0000 0000 0000 0000 daf2 413c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 12 50 -1 +db04 00 -1 +-1 + +ddcb51 +a630 ba85 c88c e86c 0000 0000 0000 0000 84b2 cd8e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 18 51 -1 +84ca 1c -1 +-1 + +ddcb52 +cb88 1220 1103 a868 0000 0000 0000 0000 6156 cfac 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 42 52 -1 +6198 53 -1 +-1 + +ddcb53 +5eb3 569e f76d 88c6 0000 0000 0000 0000 ae45 623e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e3 53 -1 +ae28 d6 -1 +-1 + +ddcb54 +c3c9 76fe f1ff 416e 0000 0000 0000 0000 efd5 7576 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 7d 54 -1 +f052 5d -1 +-1 + +ddcb55 +7068 dcd0 8345 d498 0000 0000 0000 0000 f352 a88b 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 88 55 -1 +f2da 03 -1 +-1 + +ddcb56 +9128 2cb8 571c f4fd 0000 0000 0000 0000 6d30 aec2 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 57 56 -1 +6d87 61 -1 +-1 + +ddcb57 +3ca7 541a 027c c0b4 0000 0000 0000 0000 5833 160a 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 06 57 -1 +5839 1d -1 +-1 + +ddcb58 +c650 e1a8 9d6c bec3 0000 0000 0000 0000 6a46 b66c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 83 58 -1 +69c9 0f -1 +-1 + +ddcb59 +ad07 9bda b7ee 63c4 0000 0000 0000 0000 9195 9703 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb db 59 -1 +9170 10 -1 +-1 + +ddcb5a +80c0 5105 36b0 a37c 0000 0000 0000 0000 0de0 ce7f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d1 5a -1 +0db1 be -1 +-1 + +ddcb5b +2a8d 083d 1409 06ba 0000 0000 0000 0000 62ad baff 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d5 5b -1 +6282 67 -1 +-1 + +ddcb5c +4ca4 e502 d23c 6da8 0000 0000 0000 0000 9dc6 6f04 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 5c 5c -1 +9e22 c9 -1 +-1 + +ddcb5d +7e39 511b 3cfa 60d3 0000 0000 0000 0000 d193 3fe9 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ff 5d -1 +d192 0d -1 +-1 + +ddcb5e +cef1 0235 e2b1 7a4c 0000 0000 0000 0000 ed14 d0d6 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 62 5e -1 +ed76 a7 -1 +-1 + +ddcb5f +094f 20a8 52e1 d783 0000 0000 0000 0000 df46 da41 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 3f 5f -1 +df85 9e -1 +-1 + +ddcb60 +42ce 0713 dc90 2c89 0000 0000 0000 0000 32a2 c4d4 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 65 60 -1 +3307 2e -1 +-1 + +ddcb61 +1b36 1403 8b9b c221 0000 0000 0000 0000 36cb 93d4 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb a8 61 -1 +3673 bc -1 +-1 + +ddcb62 +361b 4055 650a 3f98 0000 0000 0000 0000 0acc a102 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d9 62 -1 +0aa5 ea -1 +-1 + +ddcb63 +6548 08df 3ceb 6d24 0000 0000 0000 0000 e679 f98e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 79 63 -1 +e6f2 83 -1 +-1 + +ddcb64 +3c22 e2a7 6da9 c346 0000 0000 0000 0000 ecfb 85b6 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 71 64 -1 +ed6c 52 -1 +-1 + +ddcb65 +09bd 0abb 3afa 91f5 0000 0000 0000 0000 7779 aef5 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 67 65 -1 +77e0 f5 -1 +-1 + +ddcb66 +ccbc d301 9b66 40fb 0000 0000 0000 0000 ee15 0d23 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 63 66 -1 +ee78 70 -1 +-1 + +ddcb67 +eccb 342f be3e a79b 0000 0000 0000 0000 eea1 dfae 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d7 67 -1 +ee78 06 -1 +-1 + +ddcb68 +8e51 0063 49ad b7d4 0000 0000 0000 0000 e968 864e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b1 68 -1 +e919 20 -1 +-1 + +ddcb69 +9f11 42b5 74fe 1116 0000 0000 0000 0000 33f4 46c2 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e8 69 -1 +33dc 4f -1 +-1 + +ddcb6a +4632 0bd8 0018 1ac3 0000 0000 0000 0000 86b6 1dd2 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 33 6a -1 +86e9 1c -1 +-1 + +ddcb6b +7a76 f79f a78e f867 0000 0000 0000 0000 187b 0023 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 11 6b -1 +188c bc -1 +-1 + +ddcb6c +dd91 1f1e c1e1 0ea7 0000 0000 0000 0000 3e21 f544 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 5e 6c -1 +3e7f 2a -1 +-1 + +ddcb6d +debf 9ae4 fd24 b3c2 0000 0000 0000 0000 e314 ad84 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb dd 6d -1 +e2f1 41 -1 +-1 + +ddcb6e +ca75 9f16 c700 1dce 0000 0000 0000 0000 3086 d68e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b2 6e -1 +3038 3f -1 +-1 + +ddcb6f +d4cd 0b39 3e2e c06e 0000 0000 0000 0000 fc1b d592 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb be 6f -1 +fbd9 56 -1 +-1 + +ddcb70 +f901 09b8 43f8 2a76 0000 0000 0000 0000 042c 7f2d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b5 70 -1 +03e1 74 -1 +-1 + +ddcb71 +ac78 36ad 34cb f950 0000 0000 0000 0000 1b33 aa23 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f7 71 -1 +1b2a 08 -1 +-1 + +ddcb72 +b1b3 f1e4 9984 c7fb 0000 0000 0000 0000 ce25 c5b6 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 22 72 -1 +ce47 08 -1 +-1 + +ddcb73 +21ba 592d f406 e21f 0000 0000 0000 0000 6442 cf58 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 12 73 -1 +6454 3c -1 +-1 + +ddcb74 +6642 64c1 dbe5 eb48 0000 0000 0000 0000 7dc1 c1fb 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 08 74 -1 +7dc9 be -1 +-1 + +ddcb75 +8778 580e 00dd f4c6 0000 0000 0000 0000 60ad 9b60 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 5b 75 -1 +6108 cf -1 +-1 + +ddcb76 +65b8 5cc2 3058 e258 0000 0000 0000 0000 7e8a b296 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 73 76 -1 +7efd 1e -1 +-1 + +ddcb77 +e3a8 47a0 c510 cf0a 0000 0000 0000 0000 0537 b242 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 7f 77 -1 +05b6 97 -1 +-1 + +ddcb78 +424f 24f6 1632 8a4f 0000 0000 0000 0000 9397 846c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 70 78 -1 +9407 76 -1 +-1 + +ddcb79 +e6a0 eeaa 41f7 5da2 0000 0000 0000 0000 41de 4189 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c3 79 -1 +41a1 b8 -1 +-1 + +ddcb7a +cabf 56aa 6a06 6cd7 0000 0000 0000 0000 0aa9 9812 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 3f 7a -1 +0ae8 eb -1 +-1 + +ddcb7b +ae3f 0227 721f 52a1 0000 0000 0000 0000 5040 b98a 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 88 7b -1 +4fc8 22 -1 +-1 + +ddcb7c +8a80 a2f1 239a d5cc 0000 0000 0000 0000 6883 b050 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9e 7c -1 +6821 3a -1 +-1 + +ddcb7d +c37f cf33 1010 98e6 0000 0000 0000 0000 b021 0356 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 29 7d -1 +b04a 2c -1 +-1 + +ddcb7e +9a25 2f6e 0d0d a83f 0000 0000 0000 0000 cef0 8c15 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 4f 7e -1 +cf3f f2 -1 +-1 + +ddcb7f +53b9 1f4e 4837 21b6 0000 0000 0000 0000 5ec2 80c3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 75 7f -1 +5f37 a2 -1 +-1 + +ddcb80 +6319 baf9 c84b bcf2 0000 0000 0000 0000 acc5 a4ed 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 70 80 -1 +ad35 30 -1 +-1 + +ddcb81 +fae1 5ae5 9502 dc9b 0000 0000 0000 0000 bdd3 1a52 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 2a 81 -1 +bdfd 24 -1 +-1 + +ddcb82 +daf6 3260 f1ac 1d47 0000 0000 0000 0000 5e74 35e2 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9a 82 -1 +5e0e 51 -1 +-1 + +ddcb83 +8e7c 5586 8c92 fb00 0000 0000 0000 0000 3441 d365 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0e 83 -1 +344f 01 -1 +-1 + +ddcb84 +c1b3 4874 c535 0e1c 0000 0000 0000 0000 0123 dd28 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 47 84 -1 +016a b0 -1 +-1 + +ddcb85 +0928 b0db 4e07 a7b7 0000 0000 0000 0000 0ba3 c61c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 6c 85 -1 +0c0f de -1 +-1 + +ddcb86 +4515 de09 3ce7 1fde 0000 0000 0000 0000 10c5 33ed 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 5c 86 -1 +1121 7c -1 +-1 + +ddcb87 +d05e a733 d1dd 1603 0000 0000 0000 0000 ede6 e5fb 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 02 87 -1 +ede8 c4 -1 +-1 + +ddcb88 +e4fa 3325 c266 1b13 0000 0000 0000 0000 878e e695 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9b 88 -1 +8729 7c -1 +-1 + +ddcb89 +933b 6fdd a3a8 2634 0000 0000 0000 0000 8f3e 7727 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 2b 89 -1 +8f69 cf -1 +-1 + +ddcb8a +6759 ad1e 5d71 ce52 0000 0000 0000 0000 39a9 38a0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0a 8a -1 +39b3 ea -1 +-1 + +ddcb8b +3da2 1833 03c1 07e9 0000 0000 0000 0000 1685 d790 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 62 8b -1 +16e7 8a -1 +-1 + +ddcb8c +a625 ed31 3946 32dc 0000 0000 0000 0000 c6a2 7ad6 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e8 8c -1 +c68a 3e -1 +-1 + +ddcb8d +016b 5802 a683 2549 0000 0000 0000 0000 22e6 33bb 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb cc 8d -1 +22b2 9e -1 +-1 + +ddcb8e +f4f4 f3a8 2843 82cb 0000 0000 0000 0000 d2e8 d367 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0a 8e -1 +d2f2 03 -1 +-1 + +ddcb8f +6b1a 8ae2 269b cb2f 0000 0000 0000 0000 3ffe 75dd 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 7b 8f -1 +4079 96 -1 +-1 + +ddcb90 +c167 3dfc 42e7 9e14 0000 0000 0000 0000 b501 84fe 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 04 90 -1 +b505 46 -1 +-1 + +ddcb91 +e85e cc89 d249 ea3b 0000 0000 0000 0000 c987 c4d1 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 11 91 -1 +c998 83 -1 +-1 + +ddcb92 +28a3 85ff ab28 47a5 0000 0000 0000 0000 9166 e755 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 4b 92 -1 +91b1 aa -1 +-1 + +ddcb93 +58ac c88b 6d24 dbdd 0000 0000 0000 0000 ac2e 5199 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 03 93 -1 +ac31 93 -1 +-1 + +ddcb94 +e38d 35a5 8d07 bfb8 0000 0000 0000 0000 5e84 5f24 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 11 94 -1 +5e95 b7 -1 +-1 + +ddcb95 +41f4 9536 dd7d 4948 0000 0000 0000 0000 fb74 f17d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e6 95 -1 +fb5a c6 -1 +-1 + +ddcb96 +4a9e 42ef 32d7 18cf 0000 0000 0000 0000 7a81 bb1d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d5 96 -1 +7a56 ae -1 +-1 + +ddcb97 +9ad3 89f0 73c7 0b1a 0000 0000 0000 0000 847c 4b86 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 92 97 -1 +840e 23 -1 +-1 + +ddcb98 +6e22 b9fd 9fdc 3aed 0000 0000 0000 0000 041e fd79 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb dc 98 -1 +03fa 58 -1 +-1 + +ddcb99 +a132 3891 1515 2830 0000 0000 0000 0000 09fd 0473 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 6d 99 -1 +0a6a ce -1 +-1 + +ddcb9a +783d 8f69 91c4 e38f 0000 0000 0000 0000 68a8 391d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 8a 9a -1 +6832 a8 -1 +-1 + +ddcb9b +955a c7b0 53b3 aec6 0000 0000 0000 0000 06ef e991 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 97 9b -1 +0686 62 -1 +-1 + +ddcb9c +af69 f896 e791 a2ee 0000 0000 0000 0000 847b 59ed 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 54 9c -1 +84cf 1b -1 +-1 + +ddcb9d +7d1e 5009 1248 380c 0000 0000 0000 0000 e920 4fe6 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0f 9d -1 +e92f e8 -1 +-1 + +ddcb9e +c207 b47c 0e16 e17f 0000 0000 0000 0000 d8bb bb99 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b5 9e -1 +d870 ee -1 +-1 + +ddcb9f +c26b 7537 46bb 13c0 0000 0000 0000 0000 e63c 1d98 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b8 9f -1 +e5f4 a6 -1 +-1 + +ddcba0 +0bbe 8500 8609 5352 0000 0000 0000 0000 a2f0 da02 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 02 a0 -1 +a2f2 39 -1 +-1 + +ddcba1 +ad0a aa76 0f2d 832c 0000 0000 0000 0000 45bb a22d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f5 a1 -1 +45b0 d2 -1 +-1 + +ddcba2 +f586 4a7d a5ab 26fc 0000 0000 0000 0000 628b 6c4d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0e a2 -1 +6299 a1 -1 +-1 + +ddcba3 +de5b a284 d40e c92d 0000 0000 0000 0000 040d 12c0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 2e a3 -1 +043b 04 -1 +-1 + +ddcba4 +dfaa ae40 02c3 e0b5 0000 0000 0000 0000 fe4d faa3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 03 a4 -1 +fe50 27 -1 +-1 + +ddcba5 +1a15 04cb 4352 ee39 0000 0000 0000 0000 7b27 38a0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f6 a5 -1 +7b1d 6b -1 +-1 + +ddcba6 +5e46 b98a b822 04ca 0000 0000 0000 0000 ae1b 8730 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 27 a6 -1 +ae42 8f -1 +-1 + +ddcba7 +0eed 7b11 8cb0 eb3d 0000 0000 0000 0000 5ec8 97cf 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f2 a7 -1 +5eba 87 -1 +-1 + +ddcba8 +5173 3089 070d e8f9 0000 0000 0000 0000 e84f 55f0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d0 a8 -1 +e81f 7e -1 +-1 + +ddcba9 +4fb8 ccb5 3e9a 2673 0000 0000 0000 0000 0fdd aef2 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9d a9 -1 +0f7a 1f -1 +-1 + +ddcbaa +fe76 6f96 3feb 0b21 0000 0000 0000 0000 6747 07ba 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9f aa -1 +66e6 50 -1 +-1 + +ddcbab +2eb4 36f1 8f44 36af 0000 0000 0000 0000 6682 9d60 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 16 ab -1 +6698 eb -1 +-1 + +ddcbac +af32 8ca8 6558 06d9 0000 0000 0000 0000 a4dd cd1f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c4 ac -1 +a4a1 44 -1 +-1 + +ddcbad +fcc9 69a7 0eed eab5 0000 0000 0000 0000 eef5 3ed2 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 49 ad -1 +ef3e 76 -1 +-1 + +ddcbae +5f7a 9c20 f013 c4b7 0000 0000 0000 0000 b306 15dd 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 6e ae -1 +b374 5a -1 +-1 + +ddcbaf +b11e 2583 51fa d427 0000 0000 0000 0000 3619 9cef 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c2 af -1 +35db 15 -1 +-1 + +ddcbb0 +f43e ce57 3bf3 0933 0000 0000 0000 0000 58d7 d89f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 47 b0 -1 +591e 1e -1 +-1 + +ddcbb1 +35ef bbbc db46 046c 0000 0000 0000 0000 add2 2b6e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 86 b1 -1 +ad58 46 -1 +-1 + +ddcbb2 +c26c fd32 9b7f ab6c 0000 0000 0000 0000 e7d0 501f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 70 b2 -1 +e840 48 -1 +-1 + +ddcbb3 +36ca b434 e212 f805 0000 0000 0000 0000 53fb b191 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb de b3 -1 +53d9 06 -1 +-1 + +ddcbb4 +0a1c ab67 9ca1 2f98 0000 0000 0000 0000 5066 320c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 6b b4 -1 +50d1 dd -1 +-1 + +ddcbb5 +fd6d 51c9 16d6 1373 0000 0000 0000 0000 146e 2148 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ec b5 -1 +145a d6 -1 +-1 + +ddcbb6 +1d0b 04e8 109e 1dde 0000 0000 0000 0000 8772 8661 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 15 b6 -1 +8787 8c -1 +-1 + +ddcbb7 +f012 b87e 65ba a5c8 0000 0000 0000 0000 6120 789d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d3 b7 -1 +60f3 54 -1 +-1 + +ddcbb8 +8eae 4a53 bfa1 5e7e 0000 0000 0000 0000 0bf6 1e35 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 13 b8 -1 +0c09 87 -1 +-1 + +ddcbb9 +5fb7 a81e e2d2 4117 0000 0000 0000 0000 0564 48a1 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 56 b9 -1 +05ba c8 -1 +-1 + +ddcbba +7f6a 47fe ce45 75de 0000 0000 0000 0000 f5e0 032c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 86 ba -1 +f566 30 -1 +-1 + +ddcbbb +c7e3 e49e 9ec5 07e7 0000 0000 0000 0000 bd31 9d5f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ef bb -1 +bd20 c9 -1 +-1 + +ddcbbc +b430 7ac7 b45f fbf7 0000 0000 0000 0000 638e 3173 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c0 bc -1 +634e 28 -1 +-1 + +ddcbbd +4e71 6ffa a3f9 a2e5 0000 0000 0000 0000 e3c4 02d4 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b9 bd -1 +e37d dd -1 +-1 + +ddcbbe +4af8 99a5 d6fd 7a16 0000 0000 0000 0000 58d3 ce54 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 4d be -1 +5920 e8 -1 +-1 + +ddcbbf +6e31 0320 134b 77c3 0000 0000 0000 0000 1734 bc2d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 26 bf -1 +175a e2 -1 +-1 + +ddcbc0 +75be 2b93 093d 1128 0000 0000 0000 0000 792e 31f7 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 00 c0 -1 +792e 92 -1 +-1 + +ddcbc1 +313f 8223 5fcc 42c8 0000 0000 0000 0000 dccc d87b 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f7 c1 -1 +dcc3 1c -1 +-1 + +ddcbc2 +a7e3 bf55 d27b 0a9d 0000 0000 0000 0000 0cfa ea4e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 85 c2 -1 +0c7f 30 -1 +-1 + +ddcbc3 +e076 2760 1eec 9968 0000 0000 0000 0000 5426 a1a0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 32 c3 -1 +5458 dd -1 +-1 + +ddcbc4 +a679 cc05 3f4d c899 0000 0000 0000 0000 7acd 48d7 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ae c4 -1 +7a7b 27 -1 +-1 + +ddcbc5 +ddfd 64d4 2671 35e7 0000 0000 0000 0000 ba99 bd98 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9c c5 -1 +ba35 20 -1 +-1 + +ddcbc6 +b324 dc0c 1e35 8cd5 0000 0000 0000 0000 ab2c b6f3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c4 c6 -1 +aaf0 b8 -1 +-1 + +ddcbc7 +a254 9e56 6828 3189 0000 0000 0000 0000 64cb dfad 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f8 c7 -1 +64c3 94 -1 +-1 + +ddcbc8 +8aca 139e e652 248b 0000 0000 0000 0000 6e7a 189a 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 65 c8 -1 +6edf 8f -1 +-1 + +ddcbc9 +f15f 856e a21f 8a59 0000 0000 0000 0000 b670 4f79 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb fb c9 -1 +b66b b9 -1 +-1 + +ddcbca +dfab a031 1d78 ad3a 0000 0000 0000 0000 a887 7334 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 8a ca -1 +a811 7e -1 +-1 + +ddcbcb +ebd6 376e c346 b10c 0000 0000 0000 0000 a447 31d6 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb a4 cb -1 +a3eb 73 -1 +-1 + +ddcbcc +0212 dc46 8f41 854e 0000 0000 0000 0000 1f5a 07ca 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 65 cc -1 +1fbf 72 -1 +-1 + +ddcbcd +3344 d73c d6b8 929d 0000 0000 0000 0000 5376 6d3a 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e9 cd -1 +535f 1c -1 +-1 + +ddcbce +9e47 fc93 9ffc aace 0000 0000 0000 0000 0313 7f66 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 85 ce -1 +0298 10 -1 +-1 + +ddcbcf +53e8 d379 87d5 10b0 0000 0000 0000 0000 c5d0 4f7f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e2 cf -1 +c5b2 b5 -1 +-1 + +ddcbd0 +3278 6114 d25d 1cf8 0000 0000 0000 0000 ad43 99fc 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 7f d0 -1 +adc2 51 -1 +-1 + +ddcbd1 +c0b8 371a 6472 d92d 0000 0000 0000 0000 10b2 3074 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb a6 d1 -1 +1058 2c -1 +-1 + +ddcbd2 +5bb6 caa8 e0db af84 0000 0000 0000 0000 b9a1 7b5f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9c d2 -1 +b93d 9c -1 +-1 + +ddcbd3 +db6a 4fe2 9e52 a034 0000 0000 0000 0000 da36 88a0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb bd d3 -1 +d9f3 60 -1 +-1 + +ddcbd4 +cc1c b884 6ad2 1621 0000 0000 0000 0000 ef26 41de 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 58 d4 -1 +ef7e 5e -1 +-1 + +ddcbd5 +c41d c8b0 cacb 7687 0000 0000 0000 0000 8dbc cc25 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 41 d5 -1 +8dfd 71 -1 +-1 + +ddcbd6 +09eb 769d 7e07 51f9 0000 0000 0000 0000 5f03 6280 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ea d6 -1 +5eed 73 -1 +-1 + +ddcbd7 +241b ee10 c152 2f6d 0000 0000 0000 0000 e725 c0d7 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 80 d7 -1 +e6a5 60 -1 +-1 + +ddcbd8 +e3dc 1981 c97b cb42 0000 0000 0000 0000 b30f b32a 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 4c d8 -1 +b35b 96 -1 +-1 + +ddcbd9 +e9a0 a7c7 a476 6057 0000 0000 0000 0000 2642 58a0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 52 d9 -1 +2694 ef -1 +-1 + +ddcbda +6787 26a7 a194 11d3 0000 0000 0000 0000 2d76 7f80 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ea da -1 +2d60 82 -1 +-1 + +ddcbdb +f986 6a4b 6588 d2c8 0000 0000 0000 0000 2b7d 5847 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 4d db -1 +2bca 10 -1 +-1 + +ddcbdc +4c9e d94d 9760 b707 0000 0000 0000 0000 7ed4 5cc5 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d3 dc -1 +7ea7 45 -1 +-1 + +ddcbdd +4b3b d351 9be9 2310 0000 0000 0000 0000 58c1 e430 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 6f dd -1 +5930 20 -1 +-1 + +ddcbde +3b62 ca1e a41a 227a 0000 0000 0000 0000 89d2 7011 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 14 de -1 +89e6 5e -1 +-1 + +ddcbdf +4c8a 5b42 50dd 4be0 0000 0000 0000 0000 d227 4913 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ef df -1 +d216 72 -1 +-1 + +ddcbe0 +440a 713d acfc f762 0000 0000 0000 0000 1c4b b6ba 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 62 e0 -1 +1cad 46 -1 +-1 + +ddcbe1 +c219 aa6b dfbf 6f10 0000 0000 0000 0000 b931 d3d6 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 2e e1 -1 +b95f 75 -1 +-1 + +ddcbe2 +66d7 abd0 cb48 8054 0000 0000 0000 0000 ef50 9997 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 85 e2 -1 +eed5 72 -1 +-1 + +ddcbe3 +7013 e7ed 7e1c 57fb 0000 0000 0000 0000 7ec6 75eb 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f4 e3 -1 +7eba 34 -1 +-1 + +ddcbe4 +1108 6e70 f0af 2f0c 0000 0000 0000 0000 95c7 6501 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb bf e4 -1 +9586 34 -1 +-1 + +ddcbe5 +57cc 5511 2696 b83d 0000 0000 0000 0000 6ab0 0e90 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f2 e5 -1 +6aa2 2e -1 +-1 + +ddcbe6 +207a a441 1e03 ac60 0000 0000 0000 0000 d866 5fdc 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 25 e6 -1 +d88b 4c -1 +-1 + +ddcbe7 +c3c5 7fa9 4e07 e02d 0000 0000 0000 0000 2a1b 55b7 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f3 e7 -1 +2a0e eb -1 +-1 + +ddcbe8 +6d1c a0c4 93f0 a0b4 0000 0000 0000 0000 4bda 7761 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f2 e8 -1 +4bcc ba -1 +-1 + +ddcbe9 +ebe5 0c2c 1a2a 2720 0000 0000 0000 0000 72dd a354 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 8a e9 -1 +7267 0a -1 +-1 + +ddcbea +42d2 da7a 757f 6da6 0000 0000 0000 0000 a7e9 b933 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 04 ea -1 +a7ed 5f -1 +-1 + +ddcbeb +e945 10aa f5f8 7647 0000 0000 0000 0000 16df 93fb 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 24 eb -1 +1703 f3 -1 +-1 + +ddcbec +7180 bc85 7dd3 f467 0000 0000 0000 0000 dd88 6a41 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 60 ec -1 +dde8 00 -1 +-1 + +ddcbed +6b2f 9762 1f0a db61 0000 0000 0000 0000 f772 33e3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb be ed -1 +f730 6b -1 +-1 + +ddcbee +79ea dc8a 7887 3baa 0000 0000 0000 0000 6c28 abbc 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb de ee -1 +6c06 bd -1 +-1 + +ddcbef +46c3 2fc2 8690 a836 0000 0000 0000 0000 cc68 a8ce 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 30 ef -1 +cc98 11 -1 +-1 + +ddcbf0 +b330 4469 362b b515 0000 0000 0000 0000 13c0 6479 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 2f f0 -1 +13ef ad -1 +-1 + +ddcbf1 +94c0 9ab0 a0fd 7c1d 0000 0000 0000 0000 47ba 8c81 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 40 f1 -1 +47fa 78 -1 +-1 + +ddcbf2 +5302 9204 20ec d640 0000 0000 0000 0000 c947 4ef1 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0f f2 -1 +c956 21 -1 +-1 + +ddcbf3 +9950 a3d2 5058 5ccc 0000 0000 0000 0000 1d96 7c75 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 06 f3 -1 +1d9c e4 -1 +-1 + +ddcbf4 +3712 1f99 4863 47de 0000 0000 0000 0000 1702 c042 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 3b f4 -1 +173d e1 -1 +-1 + +ddcbf5 +d83f 1ec9 d0da 4173 0000 0000 0000 0000 eb3f 1ead 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 64 f5 -1 +eba3 c5 -1 +-1 + +ddcbf6 +4d6c 93ac 810d cfe1 0000 0000 0000 0000 dc5a c33c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 7b f6 -1 +dcd5 a2 -1 +-1 + +ddcbf7 +fe40 7887 b9de c013 0000 0000 0000 0000 301e 9710 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c3 f7 -1 +2fe1 a9 -1 +-1 + +ddcbf8 +8278 21a4 1e5c 4952 0000 0000 0000 0000 427f 41e1 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 59 f8 -1 +42d8 28 -1 +-1 + +ddcbf9 +b2df e9b8 56c3 16ff 0000 0000 0000 0000 d88f 0bab 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 55 f9 -1 +d8e4 14 -1 +-1 + +ddcbfa +01f1 bc0d d476 1510 0000 0000 0000 0000 9420 93a3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 74 fa -1 +9494 fe -1 +-1 + +ddcbfb +709b 14eb ec1c b844 0000 0000 0000 0000 3453 f2b0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb af fb -1 +3402 02 -1 +-1 + +ddcbfc +6c89 a96e d27b d6a7 0000 0000 0000 0000 6139 b4c1 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb a1 fc -1 +60da 10 -1 +-1 + +ddcbfd +fb3f 83f6 2094 3349 0000 0000 0000 0000 3ed0 6f0e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 28 fd -1 +3ef8 c2 -1 +-1 + +ddcbfe +fc42 50b7 e98d 3e45 0000 0000 0000 0000 41b5 3410 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ec fe -1 +41a1 a1 -1 +-1 + +ddcbff +e666 94d2 ac90 8f45 0000 0000 0000 0000 0655 ba29 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d3 ff -1 +0628 2b -1 +-1 + +dde1 +8a15 6bf0 0106 3dd0 0000 0000 0000 0000 5da4 8716 595f 0000 +00 00 0 0 0 0 1 +0000 dd e1 -1 +595f 9a 09 -1 +-1 + +dde3 +068e 58e6 2713 500f 0000 0000 0000 0000 be05 4308 57bd 0000 +00 00 0 0 0 0 1 +0000 dd e3 -1 +57bd 15 3f -1 +-1 + +dde5 +7462 9b6c bfe5 0330 0000 0000 0000 0000 b282 e272 0761 0000 +00 00 0 0 0 0 1 +0000 dd e5 -1 +-1 + +dde9 +75a7 139b f9a3 94bb 0000 0000 0000 0000 64f0 3433 0000 0000 +00 00 0 0 0 0 1 +0000 dd e9 -1 +-1 + +ddf9 +8709 15dd 7fa6 3c5c 0000 0000 0000 0000 d3a7 1d7b f67c 0000 +00 00 0 0 0 0 1 +0000 dd f9 -1 +-1 + +ddfd00 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 13 +0000 dd fd 00 00 -1 +-1 + +de +e78d 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 de a1 -1 +-1 + +df +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5507 6d33 +00 00 0 0 0 0 1 +6d33 df -1 +-1 + +e0_1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 e0 -1 +43f7 e9 af -1 +-1 + +e0_2 +009c 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 e0 -1 +43f7 e9 af -1 +-1 + +e1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4143 0000 +00 00 0 0 0 0 1 +0000 e1 -1 +4143 ce e8 -1 +-1 + +e2_1 +0083 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 e2 1b e1 -1 +-1 + +e2_2 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 e2 1b e1 -1 +-1 + +e3 +0000 0000 0000 4d22 0000 0000 0000 0000 0000 0000 0373 0000 +00 00 0 0 0 0 1 +0000 e3 -1 +0373 8e e1 -1 +-1 + +e4_1 +000a 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 e4 61 9c -1 +-1 + +e4_2 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 e4 61 9c -1 +-1 + +e5 +53e3 1459 775f 1a2f 0000 0000 0000 0000 0000 0000 ec12 0000 +00 00 0 0 0 0 1 +0000 e5 -1 +-1 + +e6 +7500 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 e6 49 -1 +-1 + +e7 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5507 6d33 +00 00 0 0 0 0 1 +6d33 e7 -1 +-1 + +e8_1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 e8 -1 +43f7 e9 af -1 +-1 + +e8_2 +009c 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 e8 -1 +43f7 e9 af -1 +-1 + +e9 +0000 0000 0000 caba 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 e9 -1 +-1 + +ea_1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ea 1b e1 -1 +-1 + +ea_2 +0083 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ea 1b e1 -1 +-1 + +eb +0000 0000 b879 942e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 eb -1 +-1 + +ec_1 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 ec 61 9c -1 +-1 + +ec_2 +000a 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 ec 61 9c -1 +-1 + +ed40 +83f9 296b 7034 1f2f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 40 -1 +-1 + +ed41 +29a2 0881 d7dd ff4e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 41 -1 +-1 + +ed42 +cbd3 1c8f d456 315e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 42 -1 +-1 + +ed43 +da36 2732 91cc 9798 0000 0000 0000 0000 0000 0000 5f73 0000 +00 00 0 0 0 0 1 +0000 ed 43 c6 54 -1 +-1 + +ed44 +fe2b 040f deb6 afc3 0000 0000 0000 0000 0000 0000 5ca8 0000 +00 00 0 0 0 0 1 +0000 ed 44 -1 +-1 + +ed45 +001d 5b63 a586 1451 0000 0000 0000 0000 0000 0000 3100 0000 +00 00 0 1 0 0 1 +0000 ed 45 -1 +3100 1f 22 -1 +-1 + +ed46 +b6ec 8afb ce09 70a1 0000 0000 0000 0000 0000 0000 8dea 0000 +00 00 0 0 0 0 1 +0000 ed 46 -1 +-1 + +ed47 +9a99 9e5a 9913 cacc 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 47 -1 +-1 + +ed48 +dbdd 7d1b 141d 5fb4 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 48 -1 +-1 + +ed49 +07a5 59ec f459 4316 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 49 -1 +-1 + +ed4a +5741 24b5 83d2 9ac8 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 4a -1 +-1 + +ed4b +650c d74d 0448 a3b9 0000 0000 0000 0000 0000 0000 b554 0000 +00 00 0 0 0 0 1 +0000 ed 4b 1a a4 -1 +a41a f3 d4 -1 +-1 + +ed4c +5682 7dde b049 939d 0000 0000 0000 0000 0000 0000 c7bb 0000 +00 00 0 0 0 0 1 +0000 ed 4c -1 +-1 + +ed4d +1bed c358 5fd5 6093 0000 0000 0000 0000 0000 0000 680e 0000 +00 00 0 0 0 0 1 +0000 ed 4d -1 +680e 03 7c -1 +-1 + +ed4e +8e01 e7c6 880f d2a2 0000 0000 0000 0000 0000 0000 85da 0000 +00 00 0 0 1 0 1 +0000 ed 4e -1 +-1 + +ed4f +2ae3 c115 eff8 9f6d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 4f -1 +-1 + +ed50 +85ae bbcc e2a8 f219 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 50 -1 +-1 + +ed51 +2c4c c0a4 5303 bc25 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 51 -1 +-1 + +ed52 +fc57 1fc8 47b6 da7c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 52 -1 +-1 + +ed53 +1f88 4692 5cb2 4915 0000 0000 0000 0000 0000 0000 7d8c 0000 +00 00 0 0 0 0 1 +0000 ed 53 ff 21 -1 +-1 + +ed54 +adf9 5661 547c c322 0000 0000 0000 0000 0000 0000 d9eb 0000 +00 00 0 0 0 0 1 +0000 ed 54 -1 +-1 + +ed55 +b05b 5e84 d6e9 cb3e 0000 0000 0000 0000 0000 0000 d4b4 0000 +00 00 1 0 0 0 1 +0000 ed 55 -1 +d4b4 ea c9 -1 +-1 + +ed56 +5cc0 9100 356b 4bfd 0000 0000 0000 0000 0000 0000 2c93 0000 +00 00 0 0 1 0 1 +0000 ed 56 -1 +-1 + +ed57 +bcfe dfc7 a621 1022 0000 0000 0000 0000 0000 0000 0000 0000 +1e 17 0 0 0 0 1 +0000 ed 57 -1 +-1 + +ed58 +c9ee 4091 9e46 873a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 58 -1 +-1 + +ed59 +388a d512 ecc5 93af 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 59 -1 +-1 + +ed5a +a41f 751c 19ce 0493 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 5a -1 +-1 + +ed5b +5df1 982e 002f adb9 0000 0000 0000 0000 0000 0000 f398 0000 +00 00 0 0 0 0 1 +0000 ed 5b 04 9f -1 +9f04 84 4d -1 +-1 + +ed5c +11c3 b86c 2042 c958 0000 0000 0000 0000 0000 0000 93dc 0000 +00 00 0 0 0 0 1 +0000 ed 5c -1 +-1 + +ed5d +1152 1d20 3f86 64fc 0000 0000 0000 0000 0000 0000 5308 0000 +00 00 0 0 0 0 1 +0000 ed 5d -1 +5308 26 e0 -1 +-1 + +ed5e +611a c8cf f215 d92b 0000 0000 0000 0000 0000 0000 4d86 0000 +00 00 0 0 1 0 1 +0000 ed 5e -1 +-1 + +ed5f +1bb5 fc09 2dfa bab9 0000 0000 0000 0000 0000 0000 0000 0000 +d7 f3 0 0 0 0 1 +0000 ed 5f -1 +-1 + +ed60 +2c9c 0dae 621e 2f66 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 60 -1 +-1 + +ed61 +ffa8 90ca 0340 d847 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 61 -1 +-1 + +ed62 +a60b d9aa 6623 0b1a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 62 -1 +-1 + +ed63 +5222 88f9 9d9a e4d3 0000 0000 0000 0000 0000 0000 a2f0 0000 +00 00 0 0 0 0 1 +0000 ed 63 67 65 -1 +-1 + +ed64 +2127 e425 66ac b2a3 0000 0000 0000 0000 0000 0000 43f2 0000 +00 00 0 0 0 0 1 +0000 ed 64 -1 +-1 + +ed65 +63d2 1fa1 0788 881c 0000 0000 0000 0000 0000 0000 f207 0000 +00 00 0 1 0 0 1 +0000 ed 65 -1 +f207 eb 0e -1 +-1 + +ed66 +4088 a7e1 3ffd 919b 0000 0000 0000 0000 0000 0000 d193 0000 +00 00 0 0 1 0 1 +0000 ed 66 -1 +-1 + +ed67 +3624 b16a a4db b9de 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 67 -1 +b9de 93 -1 +-1 + +ed68 +5316 624b 7311 3106 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 68 -1 +-1 + +ed69 +abd8 8d2f 89c7 c3d6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 69 -1 +-1 + +ed6a +bb5a 6fed 59bb 4e40 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 6a -1 +-1 + +ed6b +9e35 d240 1998 ab19 0000 0000 0000 0000 0000 0000 9275 0000 +00 00 0 0 0 0 1 +0000 ed 6b 98 61 -1 +6198 3f be -1 +-1 + +ed6c +0fb1 7d5b cadb 0893 0000 0000 0000 0000 0000 0000 d983 0000 +00 00 0 0 0 0 1 +0000 ed 6c -1 +-1 + +ed6d +3860 42da 5935 dc10 0000 0000 0000 0000 0000 0000 5cd3 0000 +00 00 0 0 0 0 1 +0000 ed 6d -1 +5cd3 a9 73 -1 +-1 + +ed6e +7752 bec3 0457 8c95 0000 0000 0000 0000 0000 0000 a787 0000 +00 00 0 0 0 0 1 +0000 ed 6e -1 +-1 + +ed6f +658b 7a7a ecf0 403c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 6f -1 +403c c4 -1 +-1 + +ed70 +c6a1 f7d6 a3cb 288d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 70 -1 +-1 + +ed71 +afa0 20b3 7b33 4ac1 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 71 -1 +-1 + +ed72 +5fd9 05cb 0c6c d18b 0000 0000 0000 0000 0000 0000 53db 0000 +00 00 0 0 0 0 1 +0000 ed 72 -1 +-1 + +ed73 +41c4 763a ecb0 ee62 0000 0000 0000 0000 0000 0000 aed5 0000 +00 00 0 0 0 0 1 +0000 ed 73 2a 79 -1 +-1 + +ed74 +4454 f2d2 8340 7e76 0000 0000 0000 0000 0000 0000 0323 0000 +00 00 0 0 0 0 1 +0000 ed 74 -1 +-1 + +ed75 +7ca4 1615 5d2a a95b 0000 0000 0000 0000 0000 0000 7d00 0000 +00 00 1 1 0 0 1 +0000 ed 75 -1 +7d00 fd 4f -1 +-1 + +ed76 +cabf ff9a b98c a8e6 0000 0000 0000 0000 0000 0000 fe8e 0000 +00 00 0 0 2 0 1 +0000 ed 76 -1 +-1 + +ed78 +58dd f206 2d6a af16 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 78 -1 +-1 + +ed79 +e000 4243 8f7f ed90 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 79 -1 +-1 + +ed7a +32fd d819 d873 8dcf 0000 0000 0000 0000 0000 0000 5d22 0000 +00 00 0 0 0 0 1 +0000 ed 7a -1 +-1 + +ed7b +4f97 24b7 e105 1bf2 0000 0000 0000 0000 0000 0000 5e17 0000 +00 00 0 0 0 0 1 +0000 ed 7b 50 8c -1 +8c50 d8 48 -1 +-1 + +ed7c +d333 29ca 9622 b452 0000 0000 0000 0000 0000 0000 0be6 0000 +00 00 0 0 0 0 1 +0000 ed 7c -1 +-1 + +ed7d +ecb6 073e dc1e 38d9 0000 0000 0000 0000 0000 0000 66f0 0000 +00 00 0 1 0 0 1 +0000 ed 7d -1 +66f0 4f fb -1 +-1 + +ed7e +b246 1a1a 933a 4b8b 0000 0000 0000 0000 0000 0000 2242 0000 +00 00 0 0 0 0 1 +0000 ed 7e -1 +-1 + +eda0 +1bc9 3d11 95c1 d097 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a0 -1 +d097 b7 -1 +-1 + +eda1 +ecdb 7666 537f 3bc3 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a1 -1 +3bc3 b4 -1 +-1 + +eda2 +0121 9a82 5bbd 2666 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a2 -1 +-1 + +eda2_01 +0000 0200 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a2 -1 +-1 + +eda2_02 +0000 569a 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a2 -1 +-1 + +eda2_03 +0000 abcc 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a2 -1 +-1 + +eda3 +42c5 6334 1e28 32fa 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +32fa b3 -1 +-1 + +eda3_01 +0000 0100 0000 01ff 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01ff 00 -1 +-1 + +eda3_02 +0000 0100 0000 0100 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +0100 00 -1 +-1 + +eda3_03 +0000 0100 0000 0107 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +0107 00 -1 +-1 + +eda3_04 +0000 0100 0000 01ff 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01ff 80 -1 +-1 + +eda3_05 +0000 0100 0000 01fd 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01fd 12 -1 +-1 + +eda3_06 +0000 0100 0000 01fe 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01fe 12 -1 +-1 + +eda3_07 +0000 0200 0000 01ff 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01ff 00 -1 +-1 + +eda3_08 +0000 0800 0000 01fe 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01fe 00 -1 +-1 + +eda3_09 +0000 8100 0000 01ff 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01ff 00 -1 +-1 + +eda3_10 +0000 8200 0000 01ff 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01ff 00 -1 +-1 + +eda3_11 +0000 a900 0000 01ff 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01ff 00 -1 +-1 + +eda8 +2a8e 1607 5938 12e8 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a8 -1 +12e8 d8 -1 +-1 + +eda9 +1495 fb42 0466 0dbe 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a9 -1 +0dbe 89 -1 +-1 + +edaa +2042 d791 a912 a533 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed aa -1 +-1 + +edaa_01 +0000 0101 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed aa -1 +-1 + +edaa_02 +0000 56aa 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed aa -1 +-1 + +edaa_03 +0000 abcc 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed aa -1 +-1 + +edab +0037 f334 d3e1 199f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed ab -1 +199f 49 -1 +-1 + +edab_01 +0000 5800 0000 007a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed ab -1 +007a 7f -1 +-1 + +edab_02 +0000 ab00 0000 00f1 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed ab -1 +00f1 cd -1 +-1 + +edb0 +1045 0010 aad8 558e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 331 +0000 ed b0 -1 +558e 53 94 30 05 44 24 22 b9 e9 77 23 71 e2 5c fb 49 -1 +-1 + +edb1 +f4dd 0008 e4e0 9825 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 79 +0000 ed b1 -1 +9825 50 e5 41 f4 01 9f 11 85 -1 +-1 + +edb2 +8a34 0a40 d98c 37ce 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 205 +0000 ed b2 -1 +-1 + +edb3 +34ab 03e0 41b9 1d7c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 58 +0000 ed b3 -1 +1d7c 9d 24 aa -1 +-1 + +edb8 +e553 0008 68e8 4dcf 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 163 +0000 ed b8 -1 +4dc8 29 85 a7 c3 55 74 23 0a -1 +-1 + +edb9 +ffcd 0008 a171 c749 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 163 +0000 ed b9 -1 +c742 c6 09 85 ec 5a 01 4e 6c -1 +-1 + +edba +2567 069f d40d 6b55 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 121 +0000 ed ba -1 +-1 + +edbb +09c4 043b be49 1dd0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 79 +0000 ed bb -1 +1dcd f9 71 c5 b6 -1 +-1 + +ee +3e00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ee d0 -1 +-1 + +ef +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5507 6d33 +00 00 0 0 0 0 1 +6d33 ef -1 +-1 + +f0_1 +0018 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 f0 -1 +43f7 e9 af -1 +-1 + +f0_2 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 f0 -1 +43f7 e9 af -1 +-1 + +f1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4143 0000 +00 00 0 0 0 0 1 +0000 f1 -1 +4143 ce e8 -1 +-1 + +f2_1 +0007 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 f2 1b e1 -1 +-1 + +f2_2 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 f2 1b e1 -1 +-1 + +f3 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 1 1 0 0 1 +0000 f3 -1 +-1 + +f4_1 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 f4 61 9c -1 +-1 + +f4_2 +008e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 f4 61 9c -1 +-1 + +f5 +53e3 1459 775f 1a2f 0000 0000 0000 0000 0000 0000 ec12 0000 +00 00 0 0 0 0 1 +0000 f5 -1 +-1 + +f6 +0600 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 f6 a7 -1 +-1 + +f7 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5507 6d33 +00 00 0 0 0 0 1 +6d33 f7 -1 +-1 + +f8_1 +0018 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 f8 -1 +43f7 e9 af -1 +-1 + +f8_2 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 f8 -1 +43f7 e9 af -1 +-1 + +f9 +0000 0000 0000 ce32 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 f9 -1 +-1 + +fa_1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 fa 1b e1 -1 +-1 + +fa_2 +0007 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 fa 1b e1 -1 +-1 + +fb +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 fb -1 +-1 + +fc_1 +008e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 fc 61 9c -1 +-1 + +fc_2 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 fc 61 9c -1 +-1 + +fd09 +466a a623 bab2 d788 0000 0000 0000 0000 c9e8 f698 0000 0000 +00 00 0 0 0 0 1 +0000 fd 09 -1 +-1 + +fd19 +b3e5 5336 76cb 54e2 0000 0000 0000 0000 b9ce 8624 0000 0000 +00 00 0 0 0 0 1 +0000 fd 19 -1 +-1 + +fd21 +c924 5c83 e0e2 eddb 0000 0000 0000 0000 6e9f ba55 0000 0000 +00 00 0 0 0 0 1 +0000 fd 21 46 47 -1 +-1 + +fd22 +1235 f0b6 b74c cc9f 0000 0000 0000 0000 8b00 81e4 0000 0000 +00 00 0 0 0 0 1 +0000 fd 22 9a e2 -1 +-1 + +fd23 +69f2 c1d3 0f6f 2169 0000 0000 0000 0000 e39e 2605 0000 0000 +00 00 0 0 0 0 1 +0000 fd 23 -1 +-1 + +fd24 +5554 9684 d36a dac3 0000 0000 0000 0000 7803 6434 0000 0000 +00 00 0 0 0 0 1 +0000 fd 24 -1 +-1 + +fd25 +cd0b b5e4 a754 9526 0000 0000 0000 0000 3dcb 03b2 0000 0000 +00 00 0 0 0 0 1 +0000 fd 25 -1 +-1 + +fd26 +2452 300b b4a1 929d 0000 0000 0000 0000 c259 3f30 0000 0000 +00 00 0 0 0 0 1 +0000 fd 26 77 -1 +-1 + +fd29 +5812 49d0 ec95 011c 0000 0000 0000 0000 ec6c 594c 0000 0000 +00 00 0 0 0 0 1 +0000 fd 29 -1 +-1 + +fd2a +0f82 3198 87e3 7c1c 0000 0000 0000 0000 1bb4 eb1a 0000 0000 +00 00 0 0 0 0 1 +0000 fd 2a 91 f9 -1 +f991 92 bf -1 +-1 + +fd2b +ab27 942f 82fa 6f2f 0000 0000 0000 0000 9438 ebbc 0000 0000 +00 00 0 0 0 0 1 +0000 fd 2b -1 +-1 + +fd2c +665d 0ab1 5656 e5a9 0000 0000 0000 0000 5fb9 4df7 0000 0000 +00 00 0 0 0 0 1 +0000 fd 2c -1 +-1 + +fd2d +32fb f78a b906 31d0 0000 0000 0000 0000 c72a e91c 0000 0000 +00 00 0 0 0 0 1 +0000 fd 2d -1 +-1 + +fd2e +2114 4923 6e65 006c 0000 0000 0000 0000 da39 c0cb 0000 0000 +00 00 0 0 0 0 1 +0000 fd 2e 49 -1 +-1 + +fd34 +d56a 6f24 7df7 74f0 0000 0000 0000 0000 365a efc4 0000 0000 +00 00 0 0 0 0 1 +0000 fd 34 b8 -1 +ef7c e0 -1 +-1 + +fd35 +8cda 35d8 7c1a 1c0a 0000 0000 0000 0000 62bb aec6 0000 0000 +00 00 0 0 0 0 1 +0000 fd 35 ab -1 +ae71 a6 -1 +-1 + +fd36 +e0f9 ae1f 4aef c9d5 0000 0000 0000 0000 c0db bdd4 0000 0000 +00 00 0 0 0 0 1 +0000 fd 36 81 c5 -1 +-1 + +fd39 +2603 726f 9c7f cd46 0000 0000 0000 0000 dc45 54d5 dc57 0000 +00 00 0 0 0 0 1 +0000 fd 39 -1 +-1 + +fd44 +0e58 7192 3580 9be4 0000 0000 0000 0000 1b79 685e 0000 0000 +00 00 0 0 0 0 1 +0000 fd 44 -1 +-1 + +fd45 +6555 a488 5ae8 c948 0000 0000 0000 0000 d7b8 a177 0000 0000 +00 00 0 0 0 0 1 +0000 fd 45 -1 +-1 + +fd46 +87f3 17d5 5eea 830b 0000 0000 0000 0000 dcee 3afc 0000 0000 +00 00 0 0 0 0 1 +0000 fd 46 4d -1 +3b49 c9 -1 +-1 + +fd4c +7e6b bd4b 24b6 ff94 0000 0000 0000 0000 862d 01d0 0000 0000 +00 00 0 0 0 0 1 +0000 fd 4c -1 +-1 + +fd4d +50cf e3fe 998e dba2 0000 0000 0000 0000 c4f5 c7c9 0000 0000 +00 00 0 0 0 0 1 +0000 fd 4d -1 +-1 + +fd4e +2c0f 69d7 748a 9290 0000 0000 0000 0000 904f bb9a 0000 0000 +00 00 0 0 0 0 1 +0000 fd 4e 67 -1 +bc01 9d -1 +-1 + +fd54 +d7f9 f65b b001 d4c4 0000 0000 0000 0000 4b8e d437 0000 0000 +00 00 0 0 0 0 1 +0000 fd 54 -1 +-1 + +fd55 +ab98 fdab 254a 010e 0000 0000 0000 0000 126b 13a9 0000 0000 +00 00 0 0 0 0 1 +0000 fd 55 -1 +-1 + +fd56 +d3e8 df10 5442 b641 0000 0000 0000 0000 a5a0 fda2 0000 0000 +00 00 0 0 0 0 1 +0000 fd 56 ce -1 +fd70 78 -1 +-1 + +fd5c +11d5 c489 e220 434e 0000 0000 0000 0000 3244 d8bb 0000 0000 +00 00 0 0 0 0 1 +0000 fd 5c -1 +-1 + +fd5d +e945 dbae 32ea 4f7e 0000 0000 0000 0000 fa56 074e 0000 0000 +00 00 0 0 0 0 1 +0000 fd 5d -1 +-1 + +fd5e +6f3b e9dc 7a06 14f3 0000 0000 0000 0000 ec76 8aaa 0000 0000 +00 00 0 0 0 0 1 +0000 fd 5e c6 -1 +8a70 8c -1 +-1 + +fd60 +8579 005d d9ee faee 0000 0000 0000 0000 382d 2f95 0000 0000 +00 00 0 0 0 0 1 +0000 fd 60 -1 +-1 + +fd61 +5682 dbc3 b495 9799 0000 0000 0000 0000 85b2 3c1e 0000 0000 +00 00 0 0 0 0 1 +0000 fd 61 -1 +-1 + +fd62 +906b f52e f3d8 1e8c 0000 0000 0000 0000 ddba 9a02 0000 0000 +00 00 0 0 0 0 1 +0000 fd 62 -1 +-1 + +fd63 +9d59 beb9 d826 0eaa 0000 0000 0000 0000 4290 a4b9 0000 0000 +00 00 0 0 0 0 1 +0000 fd 63 -1 +-1 + +fd64 +7b0e e394 8a25 cddf 0000 0000 0000 0000 9784 2116 0000 0000 +00 00 0 0 0 0 1 +0000 fd 64 -1 +-1 + +fd65 +b827 eb4f f666 c52a 0000 0000 0000 0000 6206 831f 0000 0000 +00 00 0 0 0 0 1 +0000 fd 65 -1 +-1 + +fd66 +9129 e4ee e3a3 86ca 0000 0000 0000 0000 4d93 5b24 0000 0000 +00 00 0 0 0 0 1 +0000 fd 66 80 -1 +5aa4 77 -1 +-1 + +fd67 +db7a b40b 7b58 49fd 0000 0000 0000 0000 266f 9e7b 0000 0000 +00 00 0 0 0 0 1 +0000 fd 67 -1 +-1 + +fd68 +4d1d 4fd9 783e 0745 0000 0000 0000 0000 0c3d 82b5 0000 0000 +00 00 0 0 0 0 1 +0000 fd 68 -1 +-1 + +fd69 +1589 5ceb b5db 922a 0000 0000 0000 0000 3c3a dc98 0000 0000 +00 00 0 0 0 0 1 +0000 fd 69 -1 +-1 + +fd6a +607a e035 5bb9 dac0 0000 0000 0000 0000 fc04 b5b7 0000 0000 +00 00 0 0 0 0 1 +0000 fd 6a -1 +-1 + +fd6b +db2a e244 1182 096f 0000 0000 0000 0000 198e 91a6 0000 0000 +00 00 0 0 0 0 1 +0000 fd 6b -1 +-1 + +fd6c +a0be 34ef 8fcd 40a7 0000 0000 0000 0000 4481 c215 0000 0000 +00 00 0 0 0 0 1 +0000 fd 6c -1 +-1 + +fd6d +fdfc 727a b839 50a6 0000 0000 0000 0000 e782 02e5 0000 0000 +00 00 0 0 0 0 1 +0000 fd 6d -1 +-1 + +fd6e +cfd4 6ef1 c07d eb96 0000 0000 0000 0000 b0f9 b0a3 0000 0000 +00 00 0 0 0 0 1 +0000 fd 6e 78 -1 +b11b f8 -1 +-1 + +fd6f +8e1d a138 f20a 298e 0000 0000 0000 0000 b600 0cf7 0000 0000 +00 00 0 0 0 0 1 +0000 fd 6f -1 +-1 + +fd70 +2677 33c5 c0dc 262f 0000 0000 0000 0000 d3dc 23a1 0000 0000 +00 00 0 0 0 0 1 +0000 fd 70 53 -1 +-1 + +fd71 +892e 04ae d67f 81ec 0000 0000 0000 0000 7757 bfab 0000 0000 +00 00 0 0 0 0 1 +0000 fd 71 b4 -1 +-1 + +fd72 +d2dc c23c dd54 6559 0000 0000 0000 0000 b32b 7c80 0000 0000 +00 00 0 0 0 0 1 +0000 fd 72 e3 -1 +-1 + +fd73 +49ef bff2 8409 02dd 0000 0000 0000 0000 af95 8762 0000 0000 +00 00 0 0 0 0 1 +0000 fd 73 17 -1 +-1 + +fd74 +9479 9817 fa2e 1fe0 0000 0000 0000 0000 a395 92db 0000 0000 +00 00 0 0 0 0 1 +0000 fd 74 f6 -1 +-1 + +fd75 +c8d6 6aa4 180e e37b 0000 0000 0000 0000 02cf 1724 0000 0000 +00 00 0 0 0 0 1 +0000 fd 75 ab -1 +-1 + +fd77 +6f9e 7475 78ad 2b8c 0000 0000 0000 0000 c6b7 6b4d 0000 0000 +00 00 0 0 0 0 1 +0000 fd 77 f7 -1 +-1 + +fd7c +f228 93fc a3d4 dc9e 0000 0000 0000 0000 21ac c617 0000 0000 +00 00 0 0 0 0 1 +0000 fd 7c -1 +-1 + +fd7d +93e5 3cbe 02c3 26c2 0000 0000 0000 0000 ca81 92b9 0000 0000 +00 00 0 0 0 0 1 +0000 fd 7d -1 +-1 + +fd7e +1596 daba 147b f362 0000 0000 0000 0000 7110 d45f 0000 0000 +00 00 0 0 0 0 1 +0000 fd 7e e4 -1 +d443 aa -1 +-1 + +fd84 +bfba 7cae c4da 7aee 0000 0000 0000 0000 43ee c08e 0000 0000 +00 00 0 0 0 0 1 +0000 fd 84 -1 +-1 + +fd85 +52dd 1dea 324f 84e7 0000 0000 0000 0000 e7a8 f799 0000 0000 +00 00 0 0 0 0 1 +0000 fd 85 -1 +-1 + +fd86 +fc9c b882 43f9 3e15 0000 0000 0000 0000 9781 8b33 0000 0000 +00 00 0 0 0 0 1 +0000 fd 86 ce -1 +8b01 e1 -1 +-1 + +fd8c +fd9c 42b1 5e8a 081c 0000 0000 0000 0000 cb58 3b4e 0000 0000 +00 00 0 0 0 0 1 +0000 fd 8c -1 +-1 + +fd8d +9301 7750 8ad6 295c 0000 0000 0000 0000 695c 99fb 0000 0000 +00 00 0 0 0 0 1 +0000 fd 8d -1 +-1 + +fd8e +41ee 398f f6dc 06f3 0000 0000 0000 0000 f34a 1aa2 0000 0000 +00 00 0 0 0 0 1 +0000 fd 8e 78 -1 +1b1a c0 -1 +-1 + +fd94 +0431 d255 b9d6 20bb 0000 0000 0000 0000 1e6a d5ef 0000 0000 +00 00 0 0 0 0 1 +0000 fd 94 -1 +-1 + +fd95 +8b5d b455 2388 ec1e 0000 0000 0000 0000 7637 cb97 0000 0000 +00 00 0 0 0 0 1 +0000 fd 95 -1 +-1 + +fd96 +a0c6 22ac 0413 4b13 0000 0000 0000 0000 b44e c08b 0000 0000 +00 00 0 0 0 0 1 +0000 fd 96 55 -1 +c0e0 7b -1 +-1 + +fd9c +a44a 3ecf ced3 66ec 0000 0000 0000 0000 4bff b133 0000 0000 +00 00 0 0 0 0 1 +0000 fd 9c -1 +-1 + +fd9d +06c0 8bd0 131b 3094 0000 0000 0000 0000 afc3 7409 0000 0000 +00 00 0 0 0 0 1 +0000 fd 9d -1 +-1 + +fd9e +b983 981f bb8e d6d5 0000 0000 0000 0000 5c3b f66c 0000 0000 +00 00 0 0 0 0 1 +0000 fd 9e f9 -1 +f665 f3 -1 +-1 + +fda4 +b079 79c0 2c7c 3e06 0000 0000 0000 0000 7399 037a 0000 0000 +00 00 0 0 0 0 1 +0000 fd a4 -1 +-1 + +fda5 +01d2 654d 9653 2b33 0000 0000 0000 0000 61a4 8f88 0000 0000 +00 00 0 0 0 0 1 +0000 fd a5 -1 +-1 + +fda6 +ddb8 40bb 3742 6ff1 0000 0000 0000 0000 ad28 659b 0000 0000 +00 00 0 0 0 0 1 +0000 fd a6 53 -1 +65ee 95 -1 +-1 + +fdac +7a43 72e3 dd4d 1b62 0000 0000 0000 0000 4753 5d63 0000 0000 +00 00 0 0 0 0 1 +0000 fd ac -1 +-1 + +fdad +7d8e 2573 19cc 78fb 0000 0000 0000 0000 5248 8391 0000 0000 +00 00 0 0 0 0 1 +0000 fd ad -1 +-1 + +fdae +a0da bc27 257b 5489 0000 0000 0000 0000 fa59 81f8 0000 0000 +00 00 0 0 0 0 1 +0000 fd ae 09 -1 +8201 cb -1 +-1 + +fdb4 +4f95 3461 f173 8ad3 0000 0000 0000 0000 c1a2 8265 0000 0000 +00 00 0 0 0 0 1 +0000 fd b4 -1 +-1 + +fdb5 +17f6 e6ea f919 327c 0000 0000 0000 0000 4299 9733 0000 0000 +00 00 0 0 0 0 1 +0000 fd b5 -1 +-1 + +fdb6 +db37 3509 d6ca b16a 0000 0000 0000 0000 a099 df6d 0000 0000 +00 00 0 0 0 0 1 +0000 fd b6 4b -1 +dfb8 64 -1 +-1 + +fdbc +b4fc 9302 e35d 31bc 0000 0000 0000 0000 5c12 1c92 0000 0000 +00 00 0 0 0 0 1 +0000 fd bc -1 +-1 + +fdbd +391c 7b82 dfeb 03ee 0000 0000 0000 0000 be7b b30f 0000 0000 +00 00 0 0 0 0 1 +0000 fd bd -1 +-1 + +fdbe +0970 0b31 f4ad 9d4c 0000 0000 0000 0000 b95a a96b 0000 0000 +00 00 0 0 0 0 1 +0000 fd be 6b -1 +a9d6 c0 -1 +-1 + +fdcb00 +85ac 46d0 a135 20c5 0000 0000 0000 0000 b8de 2776 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0b 00 -1 +2781 50 -1 +-1 + +fdcb01 +577c 2b76 3576 280a 0000 0000 0000 0000 ae22 5c35 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c8 01 -1 +5bfd cb -1 +-1 + +fdcb02 +dc23 2b37 83c8 5dd9 0000 0000 0000 0000 b2d2 3df2 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 14 02 -1 +3e06 58 -1 +-1 + +fdcb03 +57ee c179 b2b6 7058 0000 0000 0000 0000 3f2e 57e7 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 3a 03 -1 +5821 1a -1 +-1 + +fdcb04 +ed18 3f03 3327 f35a 0000 0000 0000 0000 cbf2 5071 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 67 04 -1 +50d8 92 -1 +-1 + +fdcb05 +7a39 0858 db6c dbe0 0000 0000 0000 0000 157a b25b 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 1e 05 -1 +b279 66 -1 +-1 + +fdcb06 +f285 89a2 e78f ef74 0000 0000 0000 0000 140d ff27 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 72 06 -1 +ff99 f1 -1 +-1 + +fdcb07 +8cce f3a7 3a6e 8f0a 0000 0000 0000 0000 8423 07eb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 24 07 -1 +080f ae -1 +-1 + +fdcb08 +a611 e8ec c958 7bda 0000 0000 0000 0000 194d 6137 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 25 08 -1 +615c 83 -1 +-1 + +fdcb09 +54b1 fa1a 84e8 4fa5 0000 0000 0000 0000 1ad3 19da 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a0 09 -1 +197a 27 -1 +-1 + +fdcb0a +b3ef a2bb e5d6 9617 0000 0000 0000 0000 f946 eef6 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e1 0a -1 +eed7 19 -1 +-1 + +fdcb0b +ae10 8c4e e159 1c54 0000 0000 0000 0000 e108 c68f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0c 0b -1 +c69b f2 -1 +-1 + +fdcb0c +8719 6b16 4c3b 180a 0000 0000 0000 0000 175a 8c9d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d7 0c -1 +8c74 ae -1 +-1 + +fdcb0d +1204 e0cb 3ab1 2416 0000 0000 0000 0000 1de4 fe2d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 11 0d -1 +fe3e 1b -1 +-1 + +fdcb0e +8da4 8f91 fc5a 5e2c 0000 0000 0000 0000 b2f2 f223 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0c 0e -1 +f22f f7 -1 +-1 + +fdcb0f +fbb0 2ac9 ec6b 6511 0000 0000 0000 0000 c93a ce38 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 15 0f -1 +ce4d 44 -1 +-1 + +fdcb10 +259d 3852 590d ac66 0000 0000 0000 0000 144f 42a2 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7a 10 -1 +431c 1c -1 +-1 + +fdcb11 +bc60 61c1 f5f8 af24 0000 0000 0000 0000 4019 9c90 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7b 11 -1 +9d0b 5e -1 +-1 + +fdcb12 +4e45 3a25 3417 bcc7 0000 0000 0000 0000 0d7e 8537 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 61 12 -1 +8598 a7 -1 +-1 + +fdcb13 +b224 b79b 84f1 ff7d 0000 0000 0000 0000 414c e798 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb b3 13 -1 +e74b b3 -1 +-1 + +fdcb14 +abbb 451a fc65 14a1 0000 0000 0000 0000 0f4d d93c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c4 14 -1 +d900 06 -1 +-1 + +fdcb15 +2864 9532 8631 751c 0000 0000 0000 0000 e327 2d7b 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 17 15 -1 +2d92 12 -1 +-1 + +fdcb16 +0c3c dcd7 adcc 196d 0000 0000 0000 0000 87e2 f0b4 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 23 16 -1 +f0d7 89 -1 +-1 + +fdcb17 +af5b d016 066e 6638 0000 0000 0000 0000 5e92 2013 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 8a 17 -1 +1f9d b8 -1 +-1 + +fdcb18 +23f3 4517 16e0 6894 0000 0000 0000 0000 b908 3216 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c0 18 -1 +31d6 fa -1 +-1 + +fdcb19 +11ed c2b8 a9f3 2014 0000 0000 0000 0000 6db0 4d2e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a2 19 -1 +4cd0 4b -1 +-1 + +fdcb1a +bc5c 6168 e541 b630 0000 0000 0000 0000 0207 40d3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 78 1a -1 +414b 44 -1 +-1 + +fdcb1b +7a28 1286 fe50 c42d 0000 0000 0000 0000 e290 71b0 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 16 1b -1 +71c6 b8 -1 +-1 + +fdcb1c +932b 097b 6928 83a3 0000 0000 0000 0000 ff2d df62 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 86 1c -1 +dee8 8f -1 +-1 + +fdcb1d +97b1 2b30 2645 04ef 0000 0000 0000 0000 186a d667 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 27 1d -1 +d68e b7 -1 +-1 + +fdcb1e +2f39 2470 b521 6ca3 0000 0000 0000 0000 1066 da38 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 3a 1e -1 +da72 25 -1 +-1 + +fdcb1f +4cdd 49a3 da18 3afd 0000 0000 0000 0000 a4f1 2095 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7b 1f -1 +2110 04 -1 +-1 + +fdcb20 +3d74 3a8f 206f 8894 0000 0000 0000 0000 ddab da25 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7a 20 -1 +da9f 89 -1 +-1 + +fdcb21 +1674 6025 641a 6598 0000 0000 0000 0000 473b de36 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7b 21 -1 +deb1 23 -1 +-1 + +fdcb22 +ada9 efb2 6f03 e732 0000 0000 0000 0000 c11d 8926 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9a 22 -1 +88c0 d4 -1 +-1 + +fdcb23 +21e9 d678 a71b 25d7 0000 0000 0000 0000 4ca8 5255 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f5 23 -1 +524a 65 -1 +-1 + +fdcb24 +1c51 da3e cc7c cb19 0000 0000 0000 0000 572c affe 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb b4 24 -1 +afb2 7e -1 +-1 + +fdcb25 +954e 097c a341 89e0 0000 0000 0000 0000 435d 23e9 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a6 25 -1 +238f 26 -1 +-1 + +fdcb26 +5844 0e19 d277 bf7f 0000 0000 0000 0000 6504 d4e4 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb bd 26 -1 +d4a1 bf -1 +-1 + +fdcb27 +8e0d 8c06 2c4c d7c8 0000 0000 0000 0000 9239 8d42 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 59 27 -1 +8d9b a7 -1 +-1 + +fdcb28 +4122 af9b 7745 76f5 0000 0000 0000 0000 a1bb ab43 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 83 28 -1 +aac6 5d -1 +-1 + +fdcb29 +0b21 affd fea6 9478 0000 0000 0000 0000 32bb 0343 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7d 29 -1 +03c0 84 -1 +-1 + +fdcb2a +f236 8c31 5932 7feb 0000 0000 0000 0000 7db7 abe7 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f9 2a -1 +abe0 dd -1 +-1 + +fdcb2b +2450 6945 dcfc d643 0000 0000 0000 0000 5be1 4a94 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 4b 2b -1 +4adf 49 -1 +-1 + +fdcb2c +117f b32b e530 255a 0000 0000 0000 0000 2416 ccd1 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e6 2c -1 +ccb7 3c -1 +-1 + +fdcb2d +d0c3 344b 1bb0 3eab 0000 0000 0000 0000 fe11 e4e6 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 5f 2d -1 +e545 78 -1 +-1 + +fdcb2e +f4ee b832 4b7f e2b7 0000 0000 0000 0000 9386 42fd 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 06 2e -1 +4303 ad -1 +-1 + +fdcb2f +ff86 f2c2 9f2f c946 0000 0000 0000 0000 5fe0 16b8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 29 2f -1 +16e1 18 -1 +-1 + +fdcb30 +acf6 e832 f9ed cabc 0000 0000 0000 0000 fabd d646 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 1b 30 -1 +d661 a5 -1 +-1 + +fdcb31 +2b96 5134 83a7 7eee 0000 0000 0000 0000 7750 bfe0 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f0 31 -1 +bfd0 f1 -1 +-1 + +fdcb32 +b2bc a4b1 b685 f66e 0000 0000 0000 0000 a9a1 5ade 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c5 32 -1 +5aa3 59 -1 +-1 + +fdcb33 +9c6d 2c90 d0a9 2be3 0000 0000 0000 0000 2691 1964 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7f 33 -1 +19e3 da -1 +-1 + +fdcb34 +6029 fbcd 5348 f947 0000 0000 0000 0000 5338 5696 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d2 34 -1 +5668 d4 -1 +-1 + +fdcb35 +96a9 21c6 4cb6 b40b 0000 0000 0000 0000 673a 00f8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 71 35 -1 +0169 0b -1 +-1 + +fdcb36 +dc6f 0892 3cc7 1494 0000 0000 0000 0000 8598 1ade 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb da 36 -1 +1ab8 3c -1 +-1 + +fdcb37 +d2b3 4524 208f 076f 0000 0000 0000 0000 ad10 e7ec 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb cb 37 -1 +e7b7 9f -1 +-1 + +fdcb38 +4f07 0050 40c6 4fb7 0000 0000 0000 0000 f37e d096 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 8e 38 -1 +d024 0d -1 +-1 + +fdcb39 +bcc2 f5b5 8dee e514 0000 0000 0000 0000 48bc f433 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7f 39 -1 +f4b2 f5 -1 +-1 + +fdcb3a +d012 2ef5 2910 9ca5 0000 0000 0000 0000 b155 cb03 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 1d 3a -1 +cb20 a8 -1 +-1 + +fdcb3b +503d a85b cfbb de8c 0000 0000 0000 0000 9c5b d263 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 05 3b -1 +d268 b2 -1 +-1 + +fdcb3c +97f0 4456 0b52 fdad 0000 0000 0000 0000 6d2a a80f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ae 3c -1 +a7bd 96 -1 +-1 + +fdcb3d +7d44 9303 e12b bff6 0000 0000 0000 0000 4c0f e52a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 13 3d -1 +e53d fb -1 +-1 + +fdcb3e +0d95 3e02 8f74 0f82 0000 0000 0000 0000 85df b2d1 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 2e 3e -1 +b2ff 50 -1 +-1 + +fdcb3f +89e3 12f6 426c 52d4 0000 0000 0000 0000 d9f7 c1ac 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 21 3f -1 +c1cd 78 -1 +-1 + +fdcb40 +5408 2c34 6784 b376 0000 0000 0000 0000 8ff9 4195 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 3b 40 -1 +41d0 0d -1 +-1 + +fdcb41 +8c35 5a58 b71c 6777 0000 0000 0000 0000 deca 03cb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb cc 41 -1 +0397 e9 -1 +-1 + +fdcb42 +5535 9c29 2feb 97ff 0000 0000 0000 0000 7f17 9f56 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 01 42 -1 +9f57 a8 -1 +-1 + +fdcb43 +b404 e58c e62e 2a32 0000 0000 0000 0000 7130 1fd1 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 08 43 -1 +1fd9 aa -1 +-1 + +fdcb44 +a954 68f4 9fa4 7f66 0000 0000 0000 0000 0209 f4f3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 03 44 -1 +f4f6 89 -1 +-1 + +fdcb45 +73e5 8dde 5e4f 84a7 0000 0000 0000 0000 4e24 93ed 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 8d 45 -1 +937a 8d -1 +-1 + +fdcb46 +0e5a b1f9 475f ebfc 0000 0000 0000 0000 7765 63b1 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 8c 46 -1 +633d fe -1 +-1 + +fdcb47 +9b3d 7f38 0753 d5e7 0000 0000 0000 0000 b9c3 6e0e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 96 47 -1 +6da4 d6 -1 +-1 + +fdcb48 +7d94 50a9 2511 8f9f 0000 0000 0000 0000 b612 aba9 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 44 48 -1 +abed b0 -1 +-1 + +fdcb49 +691e 3a39 b834 74b6 0000 0000 0000 0000 0eb7 3e21 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 4e 49 -1 +3e6f a9 -1 +-1 + +fdcb4a +31e3 68e0 fe2f a2c4 0000 0000 0000 0000 ac96 e7db 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 52 4a -1 +e82d da -1 +-1 + +fdcb4b +09a1 2453 9186 a32a 0000 0000 0000 0000 71af 883f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ea 4b -1 +8829 4e -1 +-1 + +fdcb4c +4a52 1e5b be2e 3ee4 0000 0000 0000 0000 af79 7f22 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ee 4c -1 +7f10 70 -1 +-1 + +fdcb4d +9f87 6c8f 34f4 5a79 0000 0000 0000 0000 d3cc a770 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 29 4d -1 +a799 78 -1 +-1 + +fdcb4e +30cb 5626 52bc 5503 0000 0000 0000 0000 303b e1c8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 20 4e -1 +e1e8 aa -1 +-1 + +fdcb4f +6088 e079 7152 671f 0000 0000 0000 0000 8c22 1cf8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9d 4f -1 +1c95 18 -1 +-1 + +fdcb50 +8cde 1409 6d69 e5b2 0000 0000 0000 0000 4a0c c75f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 6b 50 -1 +c7ca fe -1 +-1 + +fdcb51 +8f59 40cb 9543 9b3a 0000 0000 0000 0000 1942 3495 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 86 51 -1 +341b 13 -1 +-1 + +fdcb52 +8905 3e41 7ab4 37f6 0000 0000 0000 0000 f82d 8b0d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e6 52 -1 +8af3 87 -1 +-1 + +fdcb53 +efde e345 09a3 f0b2 0000 0000 0000 0000 c378 7ee1 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d1 53 -1 +7eb2 e4 -1 +-1 + +fdcb54 +72a6 cb82 d966 2fc6 0000 0000 0000 0000 3c00 5b6b 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 08 54 -1 +5b73 07 -1 +-1 + +fdcb55 +855c c23b 6aab 9b00 0000 0000 0000 0000 fe93 b4b2 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 54 55 -1 +b506 46 -1 +-1 + +fdcb56 +f5ad f9f6 1e8c 9e08 0000 0000 0000 0000 716a 6932 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 6f 56 -1 +69a1 df -1 +-1 + +fdcb57 +37d7 b7dc be1c 38ea 0000 0000 0000 0000 5e82 a3bb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 3c 57 -1 +a3f7 6c -1 +-1 + +fdcb58 +752c 7296 3ea5 1143 0000 0000 0000 0000 d7cc 1e94 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 4e 58 -1 +1ee2 f6 -1 +-1 + +fdcb59 +8056 bf2a 1809 ed31 0000 0000 0000 0000 fe2b fad3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 2e 59 -1 +fb01 6f -1 +-1 + +fdcb5a +cc74 a108 65d4 6f66 0000 0000 0000 0000 0008 7bb8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 88 5a -1 +7b40 6e -1 +-1 + +fdcb5b +5cf1 b3bd 25bd 98cf 0000 0000 0000 0000 2ba1 315c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e7 5b -1 +3143 b1 -1 +-1 + +fdcb5c +b3e0 d43d d9c0 b04d 0000 0000 0000 0000 21a9 543e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 74 5c -1 +54b2 e3 -1 +-1 + +fdcb5d +9f49 43dd ccb3 085a 0000 0000 0000 0000 f130 3b84 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb dc 5d -1 +3b60 ef -1 +-1 + +fdcb5e +6f89 eff5 993b 22b5 0000 0000 0000 0000 0f30 e165 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e2 5e -1 +e147 17 -1 +-1 + +fdcb5f +d72a a57a aca6 667e 0000 0000 0000 0000 5c33 f81b 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ab 5f -1 +f7c6 e2 -1 +-1 + +fdcb60 +15e9 8d30 43f4 c65e 0000 0000 0000 0000 1e34 8c44 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 85 60 -1 +8bc9 b9 -1 +-1 + +fdcb61 +7bd1 d421 5570 cb85 0000 0000 0000 0000 32ec 92e4 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb be 61 -1 +92a2 28 -1 +-1 + +fdcb62 +ba2f 4fbb 67a7 c5db 0000 0000 0000 0000 470b 7eb1 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9d 62 -1 +7e4e 1a -1 +-1 + +fdcb63 +c0a1 2cc2 ce12 e77c 0000 0000 0000 0000 71c5 1713 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f4 63 -1 +1707 3b -1 +-1 + +fdcb64 +0c1f 7847 2494 71eb 0000 0000 0000 0000 315c b336 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 35 64 -1 +b36b 8c -1 +-1 + +fdcb65 +5245 a82d 1112 8f09 0000 0000 0000 0000 672a 89f4 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 37 65 -1 +8a2b 08 -1 +-1 + +fdcb66 +583f c13e b136 6bc5 0000 0000 0000 0000 3ef9 6948 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9d 66 -1 +68e5 90 -1 +-1 + +fdcb67 +31b6 0f7d 48b5 cc5f 0000 0000 0000 0000 2103 6572 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb cb 67 -1 +653d 15 -1 +-1 + +fdcb68 +e330 39fb a03a 59bc 0000 0000 0000 0000 e04a 03be 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ca 68 -1 +0388 83 -1 +-1 + +fdcb69 +1896 5bc2 d4d9 4e8a 0000 0000 0000 0000 3716 a603 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e2 69 -1 +a5e5 01 -1 +-1 + +fdcb6a +5bc9 0099 34f8 3e96 0000 0000 0000 0000 f251 93be 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ae 6a -1 +936c 33 -1 +-1 + +fdcb6b +bbe5 9e6c abd1 515f 0000 0000 0000 0000 73db aa2f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 1f 6b -1 +aa4e 7c -1 +-1 + +fdcb6c +144b 3af2 8f80 7be5 0000 0000 0000 0000 c379 86ba 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0d 6c -1 +86c7 25 -1 +-1 + +fdcb6d +6392 d077 668d 6e4a 0000 0000 0000 0000 b0a8 62c8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f0 6d -1 +62b8 e3 -1 +-1 + +fdcb6e +2da0 f872 692d 92c4 0000 0000 0000 0000 36b5 4210 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 93 6e -1 +41a3 1e -1 +-1 + +fdcb6f +df7b c7aa 9002 86b8 0000 0000 0000 0000 1347 004e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 20 6f -1 +006e 37 -1 +-1 + +fdcb70 +6ea9 018d 5075 cf4e 0000 0000 0000 0000 cd2b 3e68 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d9 70 -1 +3e41 c9 -1 +-1 + +fdcb71 +1b48 e3af 94d5 0996 0000 0000 0000 0000 cad5 999a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 27 71 -1 +99c1 3e -1 +-1 + +fdcb72 +e83b 26b1 8608 f3cb 0000 0000 0000 0000 6323 fd31 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 98 72 -1 +fcc9 4f -1 +-1 + +fdcb73 +101b 446c c2f9 b9b1 0000 0000 0000 0000 0820 f5d8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7a 73 -1 +f652 31 -1 +-1 + +fdcb74 +6847 38c2 0ea4 0825 0000 0000 0000 0000 d255 5e4a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 4b 74 -1 +5e95 fe -1 +-1 + +fdcb75 +56f2 c034 6e11 d35e 0000 0000 0000 0000 e702 60be 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 57 75 -1 +6115 21 -1 +-1 + +fdcb76 +7375 caff dd80 c8ed 0000 0000 0000 0000 7e39 6623 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 53 76 -1 +6676 3a -1 +-1 + +fdcb77 +ab10 983e 0bdc 3b46 0000 0000 0000 0000 ae51 8841 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 02 77 -1 +8843 d8 -1 +-1 + +fdcb78 +2765 ce2f 4824 6930 0000 0000 0000 0000 ae69 fecb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7d 78 -1 +ff48 ec -1 +-1 + +fdcb79 +b428 6355 7896 8a7c 0000 0000 0000 0000 9090 1cae 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 23 79 -1 +1cd1 87 -1 +-1 + +fdcb7a +59f4 ca21 1482 3fae 0000 0000 0000 0000 c6c9 d923 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 42 7a -1 +d965 b3 -1 +-1 + +fdcb7b +6314 0240 5efa 5e7b 0000 0000 0000 0000 3e50 0a83 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 17 7b -1 +0a9a bd -1 +-1 + +fdcb7c +22a6 aff4 b89b 4dca 0000 0000 0000 0000 0ac2 d371 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f1 7c -1 +d362 1b -1 +-1 + +fdcb7d +1c95 d615 825a 5e64 0000 0000 0000 0000 32fb ac3b 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9f 7d -1 +abda 8a -1 +-1 + +fdcb7e +503c 8dfe 1019 6778 0000 0000 0000 0000 f7df 9484 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 40 7e -1 +94c4 9e -1 +-1 + +fdcb7f +1b07 9ec3 14be 5ebe 0000 0000 0000 0000 1178 ce69 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a2 7f -1 +ce0b 47 -1 +-1 + +fdcb80 +e196 72ea 507e 6457 0000 0000 0000 0000 ab75 920d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 8b 80 -1 +9198 a9 -1 +-1 + +fdcb81 +3d3d b255 8759 0cb0 0000 0000 0000 0000 e078 82a5 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 55 81 -1 +82fa fa -1 +-1 + +fdcb82 +4e10 5d8d 27a0 ffff 0000 0000 0000 0000 ee0a 5dd8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9c 82 -1 +5d74 9d -1 +-1 + +fdcb83 +3c7f fd81 47fb 9f12 0000 0000 0000 0000 cbf9 374a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 28 83 -1 +3772 d5 -1 +-1 + +fdcb84 +6872 81b1 1e7a e37e 0000 0000 0000 0000 9b4c f1c3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb aa 84 -1 +f16d ea -1 +-1 + +fdcb85 +25b3 5694 57cd f34d 0000 0000 0000 0000 8ed2 0433 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 6c 85 -1 +049f e0 -1 +-1 + +fdcb86 +152b 8ce1 818d 40f2 0000 0000 0000 0000 9b7a 2a50 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7e 86 -1 +2ace 36 -1 +-1 + +fdcb87 +fe1d 5353 618d 3266 0000 0000 0000 0000 1a53 246a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 59 87 -1 +24c3 65 -1 +-1 + +fdcb88 +7d14 a0ec 1e47 76e1 0000 0000 0000 0000 3871 c60d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d4 88 -1 +c5e1 d6 -1 +-1 + +fdcb89 +86c3 50a6 8592 d6ca 0000 0000 0000 0000 947b 0a01 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c3 89 -1 +09c4 b0 -1 +-1 + +fdcb8a +599c 961a 55f9 8470 0000 0000 0000 0000 d2a5 d4d2 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f9 8a -1 +d4cb d8 -1 +-1 + +fdcb8b +2715 a209 ab47 3eac 0000 0000 0000 0000 f352 c71e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ed 8b -1 +c70b dc -1 +-1 + +fdcb8c +2818 4259 a9b0 e7a0 0000 0000 0000 0000 6471 a202 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 97 8c -1 +a199 67 -1 +-1 + +fdcb8d +14e3 c330 9aa2 8418 0000 0000 0000 0000 0d4f 5669 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c9 8d -1 +5632 9a -1 +-1 + +fdcb8e +cb79 0fff b244 c902 0000 0000 0000 0000 6246 4c81 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c2 8e -1 +4c43 7f -1 +-1 + +fdcb8f +66b4 5fbb 6c9b d0e3 0000 0000 0000 0000 ac5a 6b51 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d4 8f -1 +6b25 59 -1 +-1 + +fdcb90 +1305 1ce1 d627 7402 0000 0000 0000 0000 b470 d7f5 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb fd 90 -1 +d7f2 70 -1 +-1 + +fdcb91 +10df c48f 0213 fc7e 0000 0000 0000 0000 bfab 47d2 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb bf 91 -1 +4791 0e -1 +-1 + +fdcb92 +6a11 f89e f49d c115 0000 0000 0000 0000 bc5d 313a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0b 92 -1 +3145 f6 -1 +-1 + +fdcb93 +61e5 cc2c 959a b52b 0000 0000 0000 0000 fa64 2940 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 52 93 -1 +2992 38 -1 +-1 + +fdcb94 +31b4 3e5a fb3d ab83 0000 0000 0000 0000 a801 fe1c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 95 94 -1 +fdb1 48 -1 +-1 + +fdcb95 +337e 63a7 2918 ed6b 0000 0000 0000 0000 b12c e776 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 90 95 -1 +e706 eb -1 +-1 + +fdcb96 +5d99 d9ec b6d0 5ed5 0000 0000 0000 0000 5d9d e6cf 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9e 96 -1 +e66d fc -1 +-1 + +fdcb97 +ccb6 8406 72c6 1ba7 0000 0000 0000 0000 6dca 187f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 64 97 -1 +18e3 9d -1 +-1 + +fdcb98 +0495 312f 8000 b749 0000 0000 0000 0000 e9cb 43b8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb da 98 -1 +4392 15 -1 +-1 + +fdcb99 +2824 a485 a30b b286 0000 0000 0000 0000 10b0 d86c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 78 99 -1 +d8e4 b5 -1 +-1 + +fdcb9a +b0cc c40c dc1a 014a 0000 0000 0000 0000 2ff9 d717 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9c 9a -1 +d6b3 9d -1 +-1 + +fdcb9b +d092 a6c2 7900 5448 0000 0000 0000 0000 fab0 cb1e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 83 9b -1 +caa1 95 -1 +-1 + +fdcb9c +b58d 1ed1 e93b 9e0c 0000 0000 0000 0000 5605 03b3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 1e 9c -1 +03d1 78 -1 +-1 + +fdcb9d +c7e9 18d3 8eed bd7d 0000 0000 0000 0000 9a7f c087 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e6 9d -1 +c06d 53 -1 +-1 + +fdcb9e +81c7 71df 45d5 0ca7 0000 0000 0000 0000 648f 41bd 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb eb 9e -1 +41a8 61 -1 +-1 + +fdcb9f +ebf5 dc9f d490 15be 0000 0000 0000 0000 0e12 9d49 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 50 9f -1 +9d99 89 -1 +-1 + +fdcba0 +8ccb 0057 bc19 e543 0000 0000 0000 0000 8c5d d68d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 76 a0 -1 +d703 d4 -1 +-1 + +fdcba1 +eee6 6da4 3a20 8bba 0000 0000 0000 0000 1de7 66c8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 31 a1 -1 +66f9 ec -1 +-1 + +fdcba2 +3f89 5120 0bd1 e669 0000 0000 0000 0000 2993 04bf 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0e a2 -1 +04cd 47 -1 +-1 + +fdcba3 +4439 6b8b 6178 1246 0000 0000 0000 0000 4cdb ad77 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 05 a3 -1 +ad7c 59 -1 +-1 + +fdcba4 +3385 261e a487 b3bd 0000 0000 0000 0000 4b8f c0cd 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 66 a4 -1 +c133 c5 -1 +-1 + +fdcba5 +6e70 b7ed 22cd aedc 0000 0000 0000 0000 46de f1a1 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a0 a5 -1 +f141 44 -1 +-1 + +fdcba6 +814b 6408 3dcb 971f 0000 0000 0000 0000 5716 93f3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 76 a6 -1 +9469 bc -1 +-1 + +fdcba7 +a4c2 679e c313 61df 0000 0000 0000 0000 67e6 79c4 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 66 a7 -1 +7a2a 2e -1 +-1 + +fdcba8 +537c 1fed 6cbb bd26 0000 0000 0000 0000 c638 0d46 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a9 a8 -1 +0cef b7 -1 +-1 + +fdcba9 +ba5a 3076 cdd7 298d 0000 0000 0000 0000 59ab 0f54 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 2b a9 -1 +0f7f 8f -1 +-1 + +fdcbaa +406a 2ed6 fa8c c633 0000 0000 0000 0000 87cb b3d1 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0b aa -1 +b3dc 3a -1 +-1 + +fdcbab +da61 0521 a123 c7fa 0000 0000 0000 0000 b71a 8ece 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a9 ab -1 +8e77 1f -1 +-1 + +fdcbac +34a3 81ce 07d6 f3a4 0000 0000 0000 0000 430b 0525 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 23 ac -1 +0548 9c -1 +-1 + +fdcbad +5010 918e ddbc 4f89 0000 0000 0000 0000 88c5 948f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 4e ad -1 +94dd 37 -1 +-1 + +fdcbae +ec0d b57e 18c6 7b01 0000 0000 0000 0000 bac6 0c1d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0c ae -1 +0c29 a9 -1 +-1 + +fdcbaf +b322 6731 daad 8d38 0000 0000 0000 0000 dd8f 26eb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0d af -1 +26f8 44 -1 +-1 + +fdcbb0 +b984 796c 44b1 fef9 0000 0000 0000 0000 4069 a0cb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 5a b0 -1 +a125 76 -1 +-1 + +fdcbb1 +59c3 ab13 42ee b764 0000 0000 0000 0000 8f7f f398 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 82 b1 -1 +f31a 79 -1 +-1 + +fdcbb2 +f310 ceec bbfb 3569 0000 0000 0000 0000 4a6f 33f9 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 23 b2 -1 +341c 7b -1 +-1 + +fdcbb3 +9c05 0f92 bd3b 553d 0000 0000 0000 0000 c75e 51d2 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 6c b3 -1 +523e 37 -1 +-1 + +fdcbb4 +3e55 1338 638d 353c 0000 0000 0000 0000 44ad 4d17 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c5 b4 -1 +4cdc e9 -1 +-1 + +fdcbb5 +2f3a b709 4167 57be 0000 0000 0000 0000 b543 8edd 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 50 b5 -1 +8f2d 0f -1 +-1 + +fdcbb6 +a887 519b c91b cc91 0000 0000 0000 0000 a416 1e16 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 3a b6 -1 +1e50 13 -1 +-1 + +fdcbb7 +1335 a599 9fbf c111 0000 0000 0000 0000 8bc5 00a9 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c0 b7 -1 +0069 38 -1 +-1 + +fdcbb8 +d146 1138 1a45 8259 0000 0000 0000 0000 6a03 d087 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 31 b8 -1 +d0b8 17 -1 +-1 + +fdcbb9 +757b 0b9e 767b 2ad1 0000 0000 0000 0000 1498 b84e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 3b b9 -1 +b889 b4 -1 +-1 + +fdcbba +43ef 1c58 dda3 4519 0000 0000 0000 0000 b67b 383f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 38 ba -1 +3877 d6 -1 +-1 + +fdcbbb +dccb 7ab3 7615 4161 0000 0000 0000 0000 2942 e2fe 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 07 bb -1 +e305 6e -1 +-1 + +fdcbbc +0e07 34f5 0995 cc42 0000 0000 0000 0000 9d42 af0c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f8 bc -1 +af04 cf -1 +-1 + +fdcbbd +30ef e60c 9bf0 a1bf 0000 0000 0000 0000 bd1c df0d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb aa bd -1 +deb7 8d -1 +-1 + +fdcbbe +1133 bef6 5059 1089 0000 0000 0000 0000 d558 3d0f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c8 be -1 +3cd7 a1 -1 +-1 + +fdcbbf +83d6 c893 8db8 716b 0000 0000 0000 0000 0956 bde7 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb fd bf -1 +bde4 ac -1 +-1 + +fdcbc0 +3666 676c 35e5 db0a 0000 0000 0000 0000 ea93 2b31 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0a c0 -1 +2b3b ec -1 +-1 + +fdcbc1 +3902 d498 af62 9821 0000 0000 0000 0000 48b8 bd67 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 87 c1 -1 +bcee ee -1 +-1 + +fdcbc2 +ad26 5a6d 6762 16c9 0000 0000 0000 0000 495a 5b2c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 8d c2 -1 +5ab9 c2 -1 +-1 + +fdcbc3 +3e6c 9a74 a2ee 9838 0000 0000 0000 0000 eafa e666 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 5a c3 -1 +e6c0 4f -1 +-1 + +fdcbc4 +bf68 d00b 5283 51c2 0000 0000 0000 0000 517c 5d10 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 89 c4 -1 +5c99 61 -1 +-1 + +fdcbc5 +127b db6a 00b9 5138 0000 0000 0000 0000 98f6 02bb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a9 c5 -1 +0264 cd -1 +-1 + +fdcbc6 +35da 98c2 3f57 44a4 0000 0000 0000 0000 2771 76c4 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ee c6 -1 +76b2 82 -1 +-1 + +fdcbc7 +763f b86f 12d3 7e2d 0000 0000 0000 0000 d870 f30b 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9e c7 -1 +f2a9 d7 -1 +-1 + +fdcbc8 +1f81 c7c0 85da 3cdd 0000 0000 0000 0000 d854 c412 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 10 c8 -1 +c422 e9 -1 +-1 + +fdcbc9 +ed19 3f88 1370 e084 0000 0000 0000 0000 4fdd 8b42 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 61 c9 -1 +8ba3 b7 -1 +-1 + +fdcbca +c7e5 233b 2312 f7f9 0000 0000 0000 0000 e417 5190 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 1a ca -1 +51aa 90 -1 +-1 + +fdcbcb +bdba a964 ea38 9422 0000 0000 0000 0000 fca3 9a72 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 5e cb -1 +9ad0 70 -1 +-1 + +fdcbcc +0f4f 0261 21b0 2097 0000 0000 0000 0000 575d 14f9 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 2d cc -1 +1526 4e -1 +-1 + +fdcbcd +1b79 8f9f 31bf 9ca6 0000 0000 0000 0000 7ecb bbe9 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a1 cd -1 +bb8a 66 -1 +-1 + +fdcbce +8e13 968e 1784 0a0a 0000 0000 0000 0000 1e87 b8a2 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 36 ce -1 +b8d8 45 -1 +-1 + +fdcbcf +8d0a a073 c4ba 5b69 0000 0000 0000 0000 3b47 c29c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 70 cf -1 +c30c 7a -1 +-1 + +fdcbd0 +e2bb 8635 650c 689a 0000 0000 0000 0000 1294 3beb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb bc d0 -1 +3ba7 20 -1 +-1 + +fdcbd1 +5df8 f701 9494 4967 0000 0000 0000 0000 ad00 8c65 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 11 d1 -1 +8c76 b9 -1 +-1 + +fdcbd2 +9876 4bd9 3148 665a 0000 0000 0000 0000 7eac c051 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb fb d2 -1 +c04c 51 -1 +-1 + +fdcbd3 +8f90 bacd e87a 538f 0000 0000 0000 0000 fe5a 0a87 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 3e d3 -1 +0ac5 e0 -1 +-1 + +fdcbd4 +15e2 1820 5588 e67f 0000 0000 0000 0000 7193 9478 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 36 d4 -1 +94ae 7d -1 +-1 + +fdcbd5 +1409 6535 c371 abe2 0000 0000 0000 0000 2e10 8608 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 48 d5 -1 +8650 98 -1 +-1 + +fdcbd6 +7801 78b6 d191 054a 0000 0000 0000 0000 2065 6aa3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c9 d6 -1 +6a6c 7c -1 +-1 + +fdcbd7 +1b6a 266e 387f 7fcb 0000 0000 0000 0000 1941 36ab 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb be d7 -1 +3669 95 -1 +-1 + +fdcbd8 +7b1b a191 efee 55b9 0000 0000 0000 0000 f789 43f8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb bc d8 -1 +43b4 d8 -1 +-1 + +fdcbd9 +0faf 4eda c556 6ed3 0000 0000 0000 0000 3fc3 0a66 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 16 d9 -1 +0a7c f4 -1 +-1 + +fdcbda +9ea1 8186 c045 d6e0 0000 0000 0000 0000 34d3 d0f0 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e8 da -1 +d0d8 6b -1 +-1 + +fdcbdb +5ee0 bdea d00e 513f 0000 0000 0000 0000 690a 8c29 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7a db -1 +8ca3 15 -1 +-1 + +fdcbdc +5cfa 2e2b 1d17 dbf6 0000 0000 0000 0000 a4f2 593a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 64 dc -1 +599e 15 -1 +-1 + +fdcbdd +8773 70a6 83ce 52b8 0000 0000 0000 0000 35da 1d94 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 75 dd -1 +1e09 28 -1 +-1 + +fdcbde +8310 fa01 6c69 252a 0000 0000 0000 0000 5291 c9e0 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 17 de -1 +c9f7 41 -1 +-1 + +fdcbdf +780d a722 e78e 50ba 0000 0000 0000 0000 9d67 eac3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 93 df -1 +ea56 ef -1 +-1 + +fdcbe0 +10ef 4101 2ca5 f752 0000 0000 0000 0000 4747 1507 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 56 e0 -1 +155d b9 -1 +-1 + +fdcbe1 +e4cb 6f72 1c11 1426 0000 0000 0000 0000 189b 0e0d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d1 e1 -1 +0dde 16 -1 +-1 + +fdcbe2 +11a9 bae8 938b bac4 0000 0000 0000 0000 d8ed e49c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 50 e2 -1 +e4ec c2 -1 +-1 + +fdcbe3 +8832 952b 02b2 26ef 0000 0000 0000 0000 fb55 ada8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ca e3 -1 +ad72 ba -1 +-1 + +fdcbe4 +3989 4142 89e2 785b 0000 0000 0000 0000 0bf7 5474 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 62 e4 -1 +54d6 7b -1 +-1 + +fdcbe5 +e5c5 b86d 41bb 315e 0000 0000 0000 0000 1a78 a52d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb da e5 -1 +a507 4c -1 +-1 + +fdcbe6 +fd89 d888 1e2f ddf5 0000 0000 0000 0000 42f5 8b06 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 76 e6 -1 +8b7c 45 -1 +-1 + +fdcbe7 +2025 d3e9 d4b6 aa30 0000 0000 0000 0000 88bd b597 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 11 e7 -1 +b5a8 a6 -1 +-1 + +fdcbe8 +514d c2ab 37b5 57de 0000 0000 0000 0000 a4ec 0a77 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ed e8 -1 +0a64 d0 -1 +-1 + +fdcbe9 +974e d28e d5cb 6bd4 0000 0000 0000 0000 158a a84e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 35 e9 -1 +a883 2f -1 +-1 + +fdcbea +3ef4 3fc6 4a44 e9a4 0000 0000 0000 0000 c877 7593 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 93 ea -1 +7526 1b -1 +-1 + +fdcbeb +798f 5e9b 940e 2e52 0000 0000 0000 0000 d6ad 2411 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d0 eb -1 +23e1 47 -1 +-1 + +fdcbec +38a4 07c0 6cee e715 0000 0000 0000 0000 f160 d2eb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f3 ec -1 +d2de 49 -1 +-1 + +fdcbed +e0bc 70c1 de35 81c5 0000 0000 0000 0000 d57f 0eab 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 58 ed -1 +0f03 10 -1 +-1 + +fdcbee +5fcb 9007 1736 aca8 0000 0000 0000 0000 4bab 42bc 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 02 ee -1 +42be d0 -1 +-1 + +fdcbef +4ee3 d344 cb5b aeb5 0000 0000 0000 0000 de5f 2272 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 58 ef -1 +22ca 09 -1 +-1 + +fdcbf0 +1080 b270 1b5b a9b7 0000 0000 0000 0000 e89d ee9e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 45 f0 -1 +eee3 2c -1 +-1 + +fdcbf1 +1702 c43b d138 316f 0000 0000 0000 0000 8067 4783 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 2f f1 -1 +47b2 dc -1 +-1 + +fdcbf2 +732a 4cd1 77fe 4814 0000 0000 0000 0000 42f1 ea97 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 2c f2 -1 +eac3 5e -1 +-1 + +fdcbf3 +6b97 59d3 f546 7530 0000 0000 0000 0000 6670 7d90 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 38 f3 -1 +7dc8 0c -1 +-1 + +fdcbf4 +7af0 a81f 5d3a 799b 0000 0000 0000 0000 e12b 309c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d0 f4 -1 +306c 0e -1 +-1 + +fdcbf5 +1370 f6b2 aaa2 7f0a 0000 0000 0000 0000 c9f6 6b1f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 55 f5 -1 +6b74 f8 -1 +-1 + +fdcbf6 +7c43 fcd1 34bd f4ab 0000 0000 0000 0000 ef33 c61a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 56 f6 -1 +c670 5d -1 +-1 + +fdcbf7 +e6da 231a 7bb1 800d 0000 0000 0000 0000 e37e 5789 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9e f7 -1 +5727 66 -1 +-1 + +fdcbf8 +fa29 ee74 d7c4 afaf 0000 0000 0000 0000 512c de7a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 54 f8 -1 +dece 7a -1 +-1 + +fdcbf9 +4662 a71b 5065 ed06 0000 0000 0000 0000 279e 99e3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 30 f9 -1 +9a13 c6 -1 +-1 + +fdcbfa +9426 53ec 5016 6c99 0000 0000 0000 0000 8b99 bd79 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 09 fa -1 +bd82 f4 -1 +-1 + +fdcbfb +5343 b212 09ca e3c6 0000 0000 0000 0000 cd2b f875 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ba fb -1 +f82f ed -1 +-1 + +fdcbfc +0965 4392 ca25 2baa 0000 0000 0000 0000 f023 6623 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 56 fc -1 +6679 65 -1 +-1 + +fdcbfd +1751 233c 6214 d119 0000 0000 0000 0000 c415 5d2b 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 25 fd -1 +5d50 27 -1 +-1 + +fdcbfe +b4cf 5639 677b 0ca2 0000 0000 0000 0000 ddc5 4e4f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 88 fe -1 +4dd7 4a -1 +-1 + +fdcbff +f151 13da 7c56 f025 0000 0000 0000 0000 2b36 2aed 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e4 ff -1 +2ad1 97 -1 +-1 + +fde1 +828e 078b 1e35 8f1c 0000 0000 0000 0000 4827 b742 716e 0000 +00 00 0 0 0 0 1 +0000 fd e1 -1 +716e d5 92 -1 +-1 + +fde3 +4298 c805 6030 4292 0000 0000 0000 0000 473b 9510 1a38 0000 +00 00 0 0 0 0 1 +0000 fd e3 -1 +1a38 e0 0f -1 +-1 + +fde5 +d139 aa0d bf2b 2a56 0000 0000 0000 0000 e138 d4da a8e1 0000 +00 00 0 0 0 0 1 +0000 fd e5 -1 +-1 + +fde9 +c14f 2eb6 edf0 27cf 0000 0000 0000 0000 09ee a2a4 0000 0000 +00 00 0 0 0 0 1 +0000 fd e9 -1 +-1 + +fdf9 +c260 992e d544 67fb 0000 0000 0000 0000 ba5e 3596 353f 0000 +00 00 0 0 0 0 1 +0000 fd f9 -1 +-1 + +fe +6900 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 fe 82 -1 +-1 + +ff +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5507 6d33 +00 00 0 0 0 0 1 +6d33 ff -1 +-1 \ No newline at end of file diff --git a/src/z80free/tests.z80free b/src/z80free/tests.z80free new file mode 100644 index 0000000..94c4cd3 --- /dev/null +++ b/src/z80free/tests.z80free @@ -0,0 +1,14752 @@ +00 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 00 -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +01 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 01 12 34 -1 +-1 +-1 +0000 3412 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 +-1 + +02 +5600 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 02 -1 +-1 +-1 +5600 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +0001 56 -1 +-1 + +03 +0000 789a 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 03 -1 +-1 +-1 +0000 789b 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 6 +-1 + +04 +0000 ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 04 -1 +-1 +-1 +0050 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +05 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 05 -1 +-1 +-1 +00ba ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +06 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 06 bc -1 +-1 +-1 +0000 bc00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +07 +8800 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 07 -1 +-1 +-1 +1101 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +08 +def0 0000 0000 0000 1234 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 08 -1 +-1 +-1 +1234 0000 0000 0000 def0 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +09 +0000 5678 0000 9abc 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 09 -1 +-1 +-1 +0030 5678 0000 f134 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 11 +-1 + +0a +0000 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 0a de -1 +-1 +-1 +de00 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +0b +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 0b -1 +-1 +-1 +0000 ffff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 6 +-1 + +0c +0000 007f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 0c -1 +-1 +-1 +0094 0080 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +0d +0000 0080 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 0d -1 +-1 +-1 +003e 007f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +0e +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 0e f0 -1 +-1 +-1 +0000 00f0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +0f +4100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 0f -1 +-1 +-1 +a021 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +10 +0000 0800 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 132 +0000 00 10 fd 0c -1 +-1 +-1 +0000 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0004 +00 11 0 0 0 0 135 +-1 + +11 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 11 9a bc -1 +-1 +-1 +0000 0000 bc9a 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 +-1 + +12 +5600 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 12 -1 +-1 +-1 +5600 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +8000 56 -1 +-1 + +13 +0000 0000 def0 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 13 -1 +-1 +-1 +0000 0000 def1 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 6 +-1 + +14 +0000 0000 2700 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 14 -1 +-1 +-1 +0028 0000 2800 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +15 +0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 15 -1 +-1 +-1 +001a 0000 0f00 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +16 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 16 12 -1 +-1 +-1 +0000 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +17 +0801 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 17 -1 +-1 +-1 +1100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +18 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 18 40 -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0042 +00 01 0 0 0 0 12 +-1 + +19 +0000 0000 3456 789a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 19 -1 +-1 +-1 +0028 0000 3456 acf0 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 11 +-1 + +1a +0000 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 1a -1 +8000 13 -1 +-1 +-1 +1300 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +1b +0000 0000 e5d4 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 1b -1 +-1 +-1 +0000 0000 e5d3 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 6 +-1 + +1c +0000 0000 00aa 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 1c -1 +-1 +-1 +00a8 0000 00ab 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +1d +0000 0000 00aa 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 1d -1 +-1 +-1 +00aa 0000 00a9 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +1e +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 1e ef -1 +-1 +-1 +0000 0000 00ef 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +1f +01c4 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 1f -1 +-1 +-1 +00c5 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +20_1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 20 40 -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0042 +00 01 0 0 0 0 12 +-1 + +20_2 +0040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 20 40 -1 +-1 +-1 +0040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +21 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 21 28 ed -1 +-1 +-1 +0000 0000 0000 ed28 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 +-1 + +22 +0000 0000 0000 c64c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 22 b0 c3 -1 +-1 +-1 +0000 0000 0000 c64c 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 16 +c3b0 4c c6 -1 +-1 + +23 +0000 0000 0000 9c4e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 23 -1 +-1 +-1 +0000 0000 0000 9c4f 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 6 +-1 + +24 +0000 0000 0000 7200 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 24 -1 +-1 +-1 +0020 0000 0000 7300 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +25 +0000 0000 0000 a500 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 25 -1 +-1 +-1 +00a2 0000 0000 a400 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +26 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 26 3a -1 +-1 +-1 +0000 0000 0000 3a00 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +27_1 +9a02 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 27 -1 +-1 +-1 +3423 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +27 +1f00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 27 -1 +-1 +-1 +2530 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +28_1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 28 8e -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +28_2 +0040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 28 8e -1 +-1 +-1 +0040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ff90 +00 01 0 0 0 0 12 +-1 + +29 +0000 0000 0000 cdfa 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 29 -1 +-1 +-1 +0019 0000 0000 9bf4 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 11 +-1 + +2a +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 2a 45 ac -1 +ac45 c4 de -1 +-1 +-1 +0000 0000 0000 dec4 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 16 +-1 + +2b +0000 0000 0000 9e66 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 2b -1 +-1 +-1 +0000 0000 0000 9e65 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 6 +-1 + +2c +0000 0000 0000 0026 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 2c -1 +-1 +-1 +0020 0000 0000 0027 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +2d +0000 0000 0000 0032 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 2d -1 +-1 +-1 +0022 0000 0000 0031 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +2e +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 2e 18 -1 +-1 +-1 +0000 0000 0000 0018 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +2f +8900 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 2f -1 +-1 +-1 +7632 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +30_1 +0036 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 30 50 -1 +-1 +-1 +0036 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0052 +00 01 0 0 0 0 12 +-1 + +30_2 +0037 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 30 50 -1 +-1 +-1 +0037 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +31 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 31 d4 61 -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 61d4 0003 +00 01 0 0 0 0 10 +-1 + +32 +0e00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 32 ac ad -1 +-1 +-1 +0e00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 13 +adac 0e -1 +-1 + +33 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 a55a 0000 +00 00 0 0 0 0 1 +0000 33 -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 a55b 0001 +00 01 0 0 0 0 6 +-1 + +34 +0000 0000 0000 fe1d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 34 -1 +fe1d fd -1 +-1 +-1 +00a8 0000 0000 fe1d 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 11 +fe1d fe -1 +-1 + +35 +0000 0000 0000 470c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 35 -1 +470c 82 -1 +-1 +-1 +0082 0000 0000 470c 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 11 +470c 81 -1 +-1 + +36 +0000 0000 0000 7d29 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 36 7c -1 +-1 +-1 +0000 0000 0000 7d29 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 10 +7d29 7c -1 +-1 + +37_1 +00ff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 37 -1 +-1 +-1 +00c5 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +37_2 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 37 -1 +-1 +-1 +ff29 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +37_3 +ffff 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 37 -1 +-1 +-1 +ffed 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +37 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 37 -1 +-1 +-1 +0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +38_1 +00b2 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 38 66 -1 +-1 +-1 +00b2 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +38_2 +00b3 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 38 66 -1 +-1 +-1 +00b3 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0068 +00 01 0 0 0 0 12 +-1 + +39 +0000 0000 0000 1aef 0000 0000 0000 0000 0000 0000 c534 0000 +00 00 0 0 0 0 1 +0000 29 -1 +-1 +-1 +0030 0000 0000 35de 0000 0000 0000 0000 0000 0000 c534 0001 +00 01 0 0 0 0 11 +-1 + +3a +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 3a 52 99 -1 +9952 28 -1 +-1 +-1 +2800 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 13 +-1 + +3b +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 9d36 0000 +00 00 0 0 0 0 1 +0000 3b -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 9d35 0001 +00 01 0 0 0 0 6 +-1 + +3c +cf00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 3c -1 +-1 +-1 +d090 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +3d +ea00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 3d -1 +-1 +-1 +e9aa 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +3e +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 3e d6 -1 +-1 +-1 +d600 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +3f +005b 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 3f -1 +-1 +-1 +0050 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +40 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 40 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +41 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 41 -1 +a169 50 -1 +-1 +-1 +0200 9898 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +42 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 42 -1 +a169 50 -1 +-1 +-1 +0200 9098 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +43 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 43 -1 +a169 50 -1 +-1 +-1 +0200 d898 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +44 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 44 -1 +a169 50 -1 +-1 +-1 +0200 a198 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +45 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 45 -1 +a169 50 -1 +-1 +-1 +0200 6998 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +46 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 46 -1 +a169 50 -1 +-1 +-1 +0200 5098 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +47 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 47 -1 +a169 50 -1 +-1 +-1 +0200 0298 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +48 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 48 -1 +a169 50 -1 +-1 +-1 +0200 cfcf 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +49 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 49 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +4a +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 4a -1 +a169 50 -1 +-1 +-1 +0200 cf90 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +4b +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 4b -1 +a169 50 -1 +-1 +-1 +0200 cfd8 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +4c +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 4c -1 +a169 50 -1 +-1 +-1 +0200 cfa1 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +4d +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 4d -1 +a169 50 -1 +-1 +-1 +0200 cf69 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +4e +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 4e -1 +a169 50 -1 +-1 +-1 +0200 cf50 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +4f +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 4f -1 +a169 50 -1 +-1 +-1 +0200 cf02 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +50 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 50 -1 +a169 50 -1 +-1 +-1 +0200 cf98 cfd8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +51 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 51 -1 +a169 50 -1 +-1 +-1 +0200 cf98 98d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +52 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 52 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +53 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 53 -1 +a169 50 -1 +-1 +-1 +0200 cf98 d8d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +54 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 54 -1 +a169 50 -1 +-1 +-1 +0200 cf98 a1d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +55 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 55 -1 +a169 50 -1 +-1 +-1 +0200 cf98 69d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +56 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 56 -1 +a169 50 -1 +-1 +-1 +0200 cf98 50d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +57 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 57 -1 +a169 50 -1 +-1 +-1 +0200 cf98 02d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +58 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 58 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90cf a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +59 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 59 -1 +a169 50 -1 +-1 +-1 +0200 cf98 9098 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +5a +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 5a -1 +a169 50 -1 +-1 +-1 +0200 cf98 9090 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +5b +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 5b -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +5c +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 5c -1 +a169 50 -1 +-1 +-1 +0200 cf98 90a1 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +5d +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 5d -1 +a169 50 -1 +-1 +-1 +0200 cf98 9069 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +5e +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 5e -1 +a169 50 -1 +-1 +-1 +0200 cf98 9050 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +5f +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 5f -1 +a169 50 -1 +-1 +-1 +0200 cf98 9002 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +60 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 60 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 cf69 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +61 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 61 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 9869 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +62 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 62 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 9069 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +63 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 63 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 d869 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +64 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 64 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +65 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 65 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 6969 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +66 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 66 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 5069 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +67 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 67 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 0269 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +68 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 68 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a1cf 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +69 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 69 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a198 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +6a +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 6a -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a190 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +6b +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 6b -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a1d8 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +6c +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 6c -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a1a1 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +6d +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 6d -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +6e +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 6e -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a150 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +6f +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 6f -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a102 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +70 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 70 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +a169 cf -1 +-1 + +71 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 71 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +a169 98 -1 +-1 + +72 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 72 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +a169 90 -1 +-1 + +73 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 73 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +a169 d8 -1 +-1 + +74 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 74 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +a169 a1 -1 +-1 + +75 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 75 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +a169 69 -1 +-1 + +76 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 76 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 01 0 0 0 1 4 +-1 + +77 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 77 -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +a169 02 -1 +-1 + +78 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 78 -1 +a169 50 -1 +-1 +-1 +cf00 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +79 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 79 -1 +a169 50 -1 +-1 +-1 +9800 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +7a +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 7a -1 +a169 50 -1 +-1 +-1 +9000 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +7b +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 7b -1 +a169 50 -1 +-1 +-1 +d800 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +7c +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 7c -1 +a169 50 -1 +-1 +-1 +a100 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +7d +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 7d -1 +a169 50 -1 +-1 +-1 +6900 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +7e +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 7e -1 +a169 50 -1 +-1 +-1 +5000 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +7f +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 7f -1 +a169 50 -1 +-1 +-1 +0200 cf98 90d8 a169 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +80 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 80 -1 +dca6 49 -1 +-1 +-1 +0411 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +81 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 81 -1 +dca6 49 -1 +-1 +-1 +3031 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +82 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 82 -1 +dca6 49 -1 +-1 +-1 +1501 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +83 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 83 -1 +dca6 49 -1 +-1 +-1 +0211 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +84 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 84 -1 +dca6 49 -1 +-1 +-1 +d191 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +85 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 85 -1 +dca6 49 -1 +-1 +-1 +9b89 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +86 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 86 -1 +dca6 49 -1 +-1 +-1 +3e29 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +87 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 87 -1 +dca6 49 -1 +-1 +-1 +eaa9 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +88 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 88 -1 +dca6 49 -1 +-1 +-1 +0411 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +89 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 89 -1 +dca6 49 -1 +-1 +-1 +3031 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +8a +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 8a -1 +dca6 49 -1 +-1 +-1 +1501 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +8b +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 8b -1 +dca6 49 -1 +-1 +-1 +0211 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +8c +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 8c -1 +dca6 49 -1 +-1 +-1 +d191 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +8d +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 8d -1 +dca6 49 -1 +-1 +-1 +9b89 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +8e +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 8e -1 +dca6 49 -1 +-1 +-1 +3e29 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +8f +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 8f -1 +dca6 49 -1 +-1 +-1 +eaa9 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +90 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 90 -1 +dca6 49 -1 +-1 +-1 +e6b2 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +91 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 91 -1 +dca6 49 -1 +-1 +-1 +baba 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +92 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 92 -1 +dca6 49 -1 +-1 +-1 +d582 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +93 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 93 -1 +dca6 49 -1 +-1 +-1 +e8ba 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +94 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 94 -1 +dca6 49 -1 +-1 +-1 +191a 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +95 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 95 -1 +dca6 49 -1 +-1 +-1 +4f1a 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +96 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 96 -1 +dca6 49 -1 +-1 +-1 +acba 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +97 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 97 -1 +dca6 49 -1 +-1 +-1 +0042 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +98 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 98 -1 +dca6 49 -1 +-1 +-1 +e6b2 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +99 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 99 -1 +dca6 49 -1 +-1 +-1 +baba 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +9a +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 9a -1 +dca6 49 -1 +-1 +-1 +d582 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +9b +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 9b -1 +dca6 49 -1 +-1 +-1 +e8ba 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +9c +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 9c -1 +dca6 49 -1 +-1 +-1 +191a 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +9d +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 9d -1 +dca6 49 -1 +-1 +-1 +4f1a 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +9e +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 9e -1 +dca6 49 -1 +-1 +-1 +acba 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +9f +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 9f -1 +dca6 49 -1 +-1 +-1 +0042 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +a0 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a0 -1 +dca6 49 -1 +-1 +-1 +0514 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +a1 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a1 -1 +dca6 49 -1 +-1 +-1 +3130 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +a2 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a2 -1 +dca6 49 -1 +-1 +-1 +2030 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +a3 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a3 -1 +dca6 49 -1 +-1 +-1 +0514 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +a4 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a4 -1 +dca6 49 -1 +-1 +-1 +d494 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +a5 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a5 -1 +dca6 49 -1 +-1 +-1 +a4b0 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +a6 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a6 -1 +dca6 49 -1 +-1 +-1 +4114 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +a7 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a7 -1 +dca6 49 -1 +-1 +-1 +f5b4 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +a8 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a8 -1 +dca6 49 -1 +-1 +-1 +faac 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +a9 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 a9 -1 +dca6 49 -1 +-1 +-1 +ce88 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +aa +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 aa -1 +dca6 49 -1 +-1 +-1 +d580 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +ab +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ab -1 +dca6 49 -1 +-1 +-1 +f8a8 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +ac +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ac -1 +dca6 49 -1 +-1 +-1 +2928 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +ad +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ad -1 +dca6 49 -1 +-1 +-1 +5304 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +ae +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ae -1 +dca6 49 -1 +-1 +-1 +bca8 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +af +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 af -1 +dca6 49 -1 +-1 +-1 +0044 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +b0 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b0 -1 +dca6 49 -1 +-1 +-1 +ffac 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +b1 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b1 -1 +dca6 49 -1 +-1 +-1 +ffac 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +b2 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b2 -1 +dca6 49 -1 +-1 +-1 +f5a4 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +b3 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b3 -1 +dca6 49 -1 +-1 +-1 +fda8 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +b4 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b4 -1 +dca6 49 -1 +-1 +-1 +fda8 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +b5 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b5 -1 +dca6 49 -1 +-1 +-1 +f7a0 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +b6 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b6 -1 +dca6 49 -1 +-1 +-1 +fda8 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +b7 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b7 -1 +dca6 49 -1 +-1 +-1 +f5a4 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +b8 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b8 -1 +dca6 49 -1 +-1 +-1 +f59a 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +b9 +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 b9 -1 +dca6 49 -1 +-1 +-1 +f5ba 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +ba +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ba -1 +dca6 49 -1 +-1 +-1 +f5a2 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +bb +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 bb -1 +dca6 49 -1 +-1 +-1 +f59a 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +bc +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 bc -1 +dca6 49 -1 +-1 +-1 +f51a 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +bd +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 bd -1 +dca6 49 -1 +-1 +-1 +f532 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +be +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 be -1 +dca6 49 -1 +-1 +-1 +f59a 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 7 +-1 + +bf +f500 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 bf -1 +dca6 49 -1 +-1 +-1 +f562 0f3b 200d dca6 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +c0_1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 c0 -1 +43f7 e9 af -1 +-1 +-1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f9 afe9 +00 01 0 0 0 0 11 +-1 + +c0_2 +00d8 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 c0 -1 +43f7 e9 af -1 +-1 +-1 +00d8 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0001 +00 01 0 0 0 0 5 +-1 + +c1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4143 0000 +00 00 0 0 0 0 1 +0000 c1 -1 +4143 ce e8 -1 +-1 +-1 +0000 e8ce 0000 0000 0000 0000 0000 0000 0000 0000 4145 0001 +00 01 0 0 0 0 10 +-1 + +c2_1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 c2 1b e1 -1 +-1 +-1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e11b +00 01 0 0 0 0 10 +-1 + +c2_2 +00c7 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 c2 1b e1 -1 +-1 +-1 +00c7 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 +-1 + +c3 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 c3 ed 7c -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 7ced +00 01 0 0 0 0 10 +-1 + +c4_1 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 c4 61 9c -1 +-1 +-1 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5696 9c61 +00 01 0 0 0 0 17 +5696 03 00 -1 +-1 + +c4_2 +004e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 c4 61 9c -1 +-1 +-1 +004e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0003 +00 01 0 0 0 0 10 +-1 + +c5 +53e3 1459 775f 1a2f 0000 0000 0000 0000 0000 0000 ec12 0000 +00 00 0 0 0 0 1 +0000 c5 -1 +-1 +-1 +53e3 1459 775f 1a2f 0000 0000 0000 0000 0000 0000 ec10 0001 +00 01 0 0 0 0 11 +ec10 59 14 -1 +-1 + +c6 +ca00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 c6 6f -1 +-1 +-1 +3939 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +c7 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5507 6d33 +00 00 0 0 0 0 1 +6d33 c7 -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5505 0000 +00 01 0 0 0 0 11 +5505 34 6d -1 +-1 + +c8_1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 c8 -1 +43f7 e9 af -1 +-1 +-1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0001 +00 01 0 0 0 0 5 +-1 + +c8_2 +00d8 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 c8 -1 +43f7 e9 af -1 +-1 +-1 +00d8 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f9 afe9 +00 01 0 0 0 0 11 +-1 + +c9 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 887e 0000 +00 00 0 0 0 0 1 +0000 c9 -1 +887e 36 11 -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 8880 1136 +00 01 0 0 0 0 10 +-1 + +ca_1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ca 1b e1 -1 +-1 +-1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 +-1 + +ca_2 +00c7 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ca 1b e1 -1 +-1 +-1 +00c7 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e11b +00 01 0 0 0 0 10 +-1 + +cb00 +da00 e479 552e a806 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 00 -1 +a806 76 -1 +-1 +-1 +da8d c979 552e a806 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb01 +1000 b379 b480 ef65 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 01 -1 +ef65 fb -1 +-1 +-1 +10a0 b3f2 b480 ef65 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb02 +2e00 9adf ae6e a7f2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 02 -1 +a7f2 4a -1 +-1 +-1 +2e09 9adf 5d6e a7f2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb03 +6800 9995 de3f ca71 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 03 -1 +ca71 e7 -1 +-1 +-1 +682c 9995 de7e ca71 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb04 +8c00 beea 0ce4 67b0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 04 -1 +67b0 cd -1 +-1 +-1 +8c88 beea 0ce4 ceb0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb05 +3600 e19f 78c9 cb32 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 05 -1 +cb32 1b -1 +-1 +-1 +3620 e19f 78c9 cb64 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb06 +8a00 db02 8fb1 5b04 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 06 -1 +5b04 d4 -1 +-1 +-1 +8aad db02 8fb1 5b04 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +5b04 a9 -1 +-1 + +cb07 +6d00 19cf 7259 dcaa 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 07 -1 +dcaa 8d -1 +-1 +-1 +da88 19cf 7259 dcaa 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb08 +8000 cdb5 818e 2ee2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 08 -1 +2ee2 53 -1 +-1 +-1 +80a1 e6b5 818e 2ee2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb09 +1800 125c dd97 59c6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 09 -1 +59c6 9e -1 +-1 +-1 +182c 122e dd97 59c6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb0a +1200 3ba1 7724 63ad 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 0a -1 +63ad 96 -1 +-1 +-1 +12ad 3ba1 bb24 63ad 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb0b +7600 2abf b626 0289 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 0b -1 +0289 37 -1 +-1 +-1 +7600 2abf b613 0289 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb0c +0e00 6fc5 2f12 34d9 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 0c -1 +34d9 50 -1 +-1 +-1 +0e08 6fc5 2f12 1ad9 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb0d +6300 95a3 fcd2 519a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 0d -1 +519a 7a -1 +-1 +-1 +630c 95a3 fcd2 514d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb0e +fc00 adf9 4925 543e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 0e -1 +543e d2 -1 +-1 +-1 +fc2c adf9 4925 543e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +543e 69 -1 +-1 + +cb0f +c300 18f3 41b8 070b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 0f -1 +070b 86 -1 +-1 +-1 +e1a5 18f3 41b8 070b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb10 +f800 dc25 33b3 0d74 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 10 -1 +0d74 3d -1 +-1 +-1 +f8ad b825 33b3 0d74 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb11 +6500 e25c 4b8a ed42 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 11 -1 +ed42 b7 -1 +-1 +-1 +65ac e2b8 4b8a ed42 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb12 +7700 1384 0f50 29c6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 12 -1 +29c6 88 -1 +-1 +-1 +770c 1384 1e50 29c6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb13 +ce00 9f17 e128 3ed7 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 13 -1 +3ed7 ea -1 +-1 +-1 +ce04 9f17 e150 3ed7 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb14 +b200 541a 60c7 7c9a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 14 -1 +7c9a 0f -1 +-1 +-1 +b2a8 541a 60c7 f89a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb15 +2d00 c1df 6eab 03e2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 15 -1 +03e2 bc -1 +-1 +-1 +2d81 c1df 6eab 03c4 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb16 +3600 3b53 1a4a 684e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 16 -1 +684e c3 -1 +-1 +-1 +3681 3b53 1a4a 684e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +684e 86 -1 +-1 + +cb17 +5400 d090 f60d 0fa2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 17 -1 +0fa2 23 -1 +-1 +-1 +a8a8 d090 f60d 0fa2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb18 +8600 c658 755f 9596 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 18 -1 +9596 b6 -1 +-1 +-1 +8624 6358 755f 9596 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb19 +9600 beb3 7c22 71c8 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 19 -1 +71c8 85 -1 +-1 +-1 +960d be59 7c22 71c8 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb1a +3900 882f 543b 5279 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 1a -1 +5279 26 -1 +-1 +-1 +3928 882f 2a3b 5279 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb1b +9e00 b338 876c e8b4 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 1b -1 +e8b4 b9 -1 +-1 +-1 +9e24 b338 8736 e8b4 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb1c +4b00 b555 238f 311d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 1c -1 +311d 11 -1 +-1 +-1 +4b0d b555 238f 181d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb1d +2100 3d7e 5e39 e451 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 1d -1 +e451 47 -1 +-1 +-1 +212d 3d7e 5e39 e428 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb1e +5e00 66b9 80dc 00ef 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 1e -1 +00ef 91 -1 +-1 +-1 +5e0d 66b9 80dc 00ef 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +00ef 48 -1 +-1 + +cb1f +ed00 b838 8e18 ace7 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 1f -1 +ace7 82 -1 +-1 +-1 +7621 b838 8e18 ace7 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb20 +c700 0497 d72b ccb6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 20 -1 +ccb6 1a -1 +-1 +-1 +c708 0897 d72b ccb6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb21 +2200 5cf4 938e 37a8 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 21 -1 +37a8 dd -1 +-1 +-1 +22ad 5ce8 938e 37a8 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb22 +8500 0950 e7e8 0641 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 22 -1 +0641 4d -1 +-1 +-1 +8589 0950 cee8 0641 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb23 +2100 2a7c 37d0 aa59 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 23 -1 +aa59 c1 -1 +-1 +-1 +21a5 2a7c 37a0 aa59 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb24 +fb00 b9de 7014 84b6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 24 -1 +84b6 80 -1 +-1 +-1 +fb09 b9de 7014 08b6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb25 +1500 6bbc 894e 85bc 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 25 -1 +85bc ef -1 +-1 +-1 +152d 6bbc 894e 8578 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb26 +0a00 372e e315 283a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 26 -1 +283a ee -1 +-1 +-1 +0a89 372e e315 283a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +283a dc -1 +-1 + +cb27 +bf00 bdba 67ab 5ea2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 27 -1 +5ea2 bd -1 +-1 +-1 +7e2d bdba 67ab 5ea2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb28 +c000 0435 3e0f 021b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 28 -1 +021b 90 -1 +-1 +-1 +c000 0235 3e0f 021b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb29 +0600 f142 6ada c306 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 29 -1 +c306 5c -1 +-1 +-1 +0624 f121 6ada c306 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb2a +3000 ec3a 7f7d 3473 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 2a -1 +3473 34 -1 +-1 +-1 +302d ec3a 3f7d 3473 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb2b +e000 ccf0 bbda b78a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 2b -1 +b78a ab -1 +-1 +-1 +e0ac ccf0 bbed b78a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb2c +5b00 25c0 996d 1e7b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 2c -1 +1e7b 2c -1 +-1 +-1 +5b0c 25c0 996d 0f7b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb2d +5e00 c51b 58e3 78ea 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 2d -1 +78ea 85 -1 +-1 +-1 +5ea4 c51b 58e3 78f5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb2e +3900 a2cd 0629 24bf 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 2e -1 +24bf b5 -1 +-1 +-1 +3989 a2cd 0629 24bf 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +24bf da -1 +-1 + +cb2f +aa00 a194 d0e3 5c65 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 2f -1 +5c65 c9 -1 +-1 +-1 +d580 a194 d0e3 5c65 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb30 +cd00 7a81 d67b 656b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 30 -1 +656b 32 -1 +-1 +-1 +cda4 f581 d67b 656b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb31 +2800 e7fa 6d8c 75a4 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 31 -1 +75a4 0c -1 +-1 +-1 +28a5 e7f5 6d8c 75a4 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb32 +1300 3f36 f608 5e56 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 32 -1 +5e56 8d -1 +-1 +-1 +13ad 3f36 ed08 5e56 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb33 +d500 9720 7644 038f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 33 -1 +038f ba -1 +-1 +-1 +d588 9720 7689 038f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb34 +1200 77f6 0206 fb38 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 34 -1 +fb38 07 -1 +-1 +-1 +12a1 77f6 0206 f738 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb35 +3c00 fd68 ea91 7861 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 35 -1 +7861 72 -1 +-1 +-1 +3c84 fd68 ea91 78c3 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb36 +8a00 1185 1dde 6d38 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 36 -1 +6d38 f1 -1 +-1 +-1 +8aa1 1185 1dde 6d38 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +6d38 e3 -1 +-1 + +cb37 +4300 d7bc 9133 6e56 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 37 -1 +6e56 f8 -1 +-1 +-1 +8784 d7bc 9133 6e56 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb38 +df00 7c1b 9f9f 4ff2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 38 -1 +4ff2 aa -1 +-1 +-1 +df28 3e1b 9f9f 4ff2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb39 +6600 b702 14f5 3c17 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 39 -1 +3c17 61 -1 +-1 +-1 +6600 b701 14f5 3c17 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb3a +d100 5c5f e42e f1b1 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 3a -1 +f1b1 6e -1 +-1 +-1 +d124 5c5f 722e f1b1 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb3b +b200 38c8 a560 7419 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 3b -1 +7419 11 -1 +-1 +-1 +b224 38c8 a530 7419 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb3c +7800 cfae 66d8 2ad8 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 3c -1 +2ad8 8d -1 +-1 +-1 +7800 cfae 66d8 15d8 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb3d +e600 dcda 06aa 46cd 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 3d -1 +46cd f9 -1 +-1 +-1 +e625 dcda 06aa 4666 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb3e +a900 6a34 e8d0 a96c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 3e -1 +a96c a0 -1 +-1 +-1 +a904 6a34 e8d0 a96c 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +a96c 50 -1 +-1 + +cb3f +f100 ceea 721e 77f0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 3f -1 +77f0 7c -1 +-1 +-1 +782d ceea 721e 77f0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb40 +9e00 bcb2 efaa 505f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 40 -1 +505f 59 -1 +-1 +-1 +9e7c bcb2 efaa 505f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb41 +9e00 1b43 954e 7be9 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 41 -1 +7be9 f7 -1 +-1 +-1 +9e10 1b43 954e 7be9 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb42 +f200 dd12 7d4f 551f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 42 -1 +551f c9 -1 +-1 +-1 +f238 dd12 7d4f 551f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb43 +ad00 c3b3 f1d0 bab4 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 43 -1 +bab4 76 -1 +-1 +-1 +ad54 c3b3 f1d0 bab4 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb44 +b700 c829 27e3 5b92 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 44 -1 +5b92 78 -1 +-1 +-1 +b718 c829 27e3 5b92 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb45 +7700 68ee 0c77 409b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 45 -1 +409b 64 -1 +-1 +-1 +7718 68ee 0c77 409b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb46 +7200 7ae3 a11e 6131 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 46 -1 +6131 d5 -1 +-1 +-1 +7210 7ae3 a11e 6131 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +cb47_1 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 47 -1 +-1 +-1 +ff38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb47 +1000 d8ca e2c4 8a8c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 47 -1 +8a8c 0e -1 +-1 +-1 +1054 d8ca e2c4 8a8c 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb48 +a900 6264 e833 6de0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 48 -1 +6de0 8c -1 +-1 +-1 +a930 6264 e833 6de0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb49 +6c00 d0f7 1db7 a040 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 49 -1 +a040 5f -1 +-1 +-1 +6c30 d0f7 1db7 a040 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb4a +4f00 f04c 5b29 77a4 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 4a -1 +77a4 96 -1 +-1 +-1 +4f18 f04c 5b29 77a4 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb4b +5500 9848 095f 40ca 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 4b -1 +40ca 8a -1 +-1 +-1 +5518 9848 095f 40ca 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb4c +8800 0521 bf31 6d5d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 4c -1 +6d5d e7 -1 +-1 +-1 +887c 0521 bf31 6d5d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb4d +f900 27d0 0f7e 158d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 4d -1 +158d e0 -1 +-1 +-1 +f95c 27d0 0f7e 158d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb4e +2600 9207 459a ada3 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 4e -1 +ada3 5b -1 +-1 +-1 +2618 9207 459a ada3 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +cb4f_1 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 4f -1 +-1 +-1 +ff38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb4f +1700 2dc1 aca2 0bcc 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 4f -1 +0bcc a3 -1 +-1 +-1 +1710 2dc1 aca2 0bcc 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb50 +2300 2749 1012 84d2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 50 -1 +84d2 6a -1 +-1 +-1 +2330 2749 1012 84d2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb51 +2200 b7db e19d aafc 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 51 -1 +aafc a6 -1 +-1 +-1 +225c b7db e19d aafc 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb52 +8b00 ff7a b0ff ac44 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 52 -1 +ac44 00 -1 +-1 +-1 +8b74 ff7a b0ff ac44 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb53 +6000 31a1 a4f4 7c75 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 53 -1 +7c75 ab -1 +-1 +-1 +6030 31a1 a4f4 7c75 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb54 +3800 7ccc 89cc 1999 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 54 -1 +1999 98 -1 +-1 +-1 +385c 7ccc 89cc 1999 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb55 +f900 1f79 19cd fb4b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 55 -1 +fb4b 0b -1 +-1 +-1 +f95c 1f79 19cd fb4b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb56 +1500 2bfe e3b5 bbf9 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 56 -1 +bbf9 10 -1 +-1 +-1 +1554 2bfe e3b5 bbf9 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +cb57_1 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 57 -1 +-1 +-1 +ff38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb57 +6600 af32 532a da50 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 57 -1 +da50 30 -1 +-1 +-1 +6630 af32 532a da50 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb58 +5000 1aee 2e47 1479 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 58 -1 +1479 a0 -1 +-1 +-1 +5018 1aee 2e47 1479 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb59 +7200 5e68 ff28 2075 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 59 -1 +2075 c1 -1 +-1 +-1 +7238 5e68 ff28 2075 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb5a +eb00 fea7 17d1 d99b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 5a -1 +d99b e8 -1 +-1 +-1 +eb54 fea7 17d1 d99b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb5b +6b00 6f2c 3fe3 1691 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 5b -1 +1691 c7 -1 +-1 +-1 +6b74 6f2c 3fe3 1691 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb5c +3300 a7e7 2077 13e9 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 5c -1 +13e9 ae -1 +-1 +-1 +3354 a7e7 2077 13e9 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb5d +c100 afcc c8b1 ee49 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 5d -1 +ee49 a6 -1 +-1 +-1 +c118 afcc c8b1 ee49 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb5e +3000 ad43 16c1 349a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 5e -1 +349a 3c -1 +-1 +-1 +3038 ad43 16c1 349a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +cb5f_1 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 5f -1 +-1 +-1 +ff38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb5f +8c00 1b67 2314 6133 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 5f -1 +6133 90 -1 +-1 +-1 +8c18 1b67 2314 6133 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb60 +9900 34b5 0fd8 5273 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 60 -1 +5273 0a -1 +-1 +-1 +9930 34b5 0fd8 5273 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb61 +d100 219f 3bb4 7c44 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 61 -1 +7c44 77 -1 +-1 +-1 +d118 219f 3bb4 7c44 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb62 +af00 bdf8 c536 8cc5 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 62 -1 +8cc5 af -1 +-1 +-1 +af54 bdf8 c536 8cc5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb63 +2a00 5e16 f627 84ca 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 63 -1 +84ca e6 -1 +-1 +-1 +2a74 5e16 f627 84ca 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb64 +a900 a365 c00b ea94 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 64 -1 +ea94 0c -1 +-1 +-1 +a97c a365 c00b ea94 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb65 +1800 8d58 4256 427a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 65 -1 +427a ee -1 +-1 +-1 +1838 8d58 4256 427a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb66 +4c00 3ef7 e544 a44f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 66 -1 +a44f d2 -1 +-1 +-1 +4c10 3ef7 e544 a44f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +cb67_1 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 67 -1 +-1 +-1 +ff38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb67 +8600 5e92 2986 394d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 67 -1 +394d 10 -1 +-1 +-1 +8654 5e92 2986 394d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb68 +d700 0f6a 18a6 ddd2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 68 -1 +ddd2 16 -1 +-1 +-1 +d75c 0f6a 18a6 ddd2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb69 +da00 691b 7c79 1dba 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 69 -1 +1dba 8a -1 +-1 +-1 +da5c 691b 7c79 1dba 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb6a +2200 13e8 86d4 4e09 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 6a -1 +4e09 d5 -1 +-1 +-1 +2254 13e8 86d4 4e09 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb6b +af00 5123 7635 1ca9 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 6b -1 +1ca9 86 -1 +-1 +-1 +af30 5123 7635 1ca9 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb6c +4300 faa6 abc2 5605 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 6c -1 +5605 2b -1 +-1 +-1 +4354 faa6 abc2 5605 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb6d +7f00 f099 d435 d9ad 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 6d -1 +d9ad 4e -1 +-1 +-1 +7f38 f099 d435 d9ad 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb6e +4a00 08c9 8177 d8ba 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 6e -1 +d8ba 31 -1 +-1 +-1 +4a30 08c9 8177 d8ba 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +cb6f_1 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 6f -1 +-1 +-1 +ff38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb6f +a100 8c80 4678 4d34 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 6f -1 +4d34 78 -1 +-1 +-1 +a130 8c80 4678 4d34 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb70 +1900 958a 5dab f913 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 70 -1 +f913 cf -1 +-1 +-1 +1954 958a 5dab f913 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb71 +3d00 095e d6df 42fe 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 71 -1 +42fe 24 -1 +-1 +-1 +3d18 095e d6df 42fe 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb72 +a500 c0bf 4c8d ad11 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 72 -1 +ad11 3b -1 +-1 +-1 +a518 c0bf 4c8d ad11 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb73 +f200 49a6 b279 2ecc 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 73 -1 +2ecc e0 -1 +-1 +-1 +f238 49a6 b279 2ecc 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb74 +0500 445e 05e9 983d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 74 -1 +983d fa -1 +-1 +-1 +055c 445e 05e9 983d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb75 +6b00 83c6 635a d18d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 75 -1 +d18d 11 -1 +-1 +-1 +6b5c 83c6 635a d18d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb76 +f800 3057 3629 bc71 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 76 -1 +bc71 18 -1 +-1 +-1 +f85c 3057 3629 bc71 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +cb77_1 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 77 -1 +-1 +-1 +ff38 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb77 +9200 d6f8 5100 736d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 77 -1 +736d 36 -1 +-1 +-1 +9254 d6f8 5100 736d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb78 +7200 1cf8 8d2b c76a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 78 -1 +c76a 1f -1 +-1 +-1 +725c 1cf8 8d2b c76a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb79 +a800 809e 1124 39e8 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 79 -1 +39e8 98 -1 +-1 +-1 +a898 809e 1124 39e8 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb7a +5800 7d24 63e1 d9af 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 7a -1 +d9af ed -1 +-1 +-1 +5874 7d24 63e1 d9af 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb7b +0300 50ab 05bd 6bd0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 7b -1 +6bd0 a5 -1 +-1 +-1 +03b8 50ab 05bd 6bd0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb7c +ad00 f77b 55ae 063b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 7c -1 +063b 34 -1 +-1 +-1 +ad54 f77b 55ae 063b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb7d +8200 b792 38cb 5f9b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 7d -1 +5f9b 97 -1 +-1 +-1 +8298 b792 38cb 5f9b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb7e +4200 3b91 f59c a25e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 7e -1 +a25e d7 -1 +-1 +-1 +4290 3b91 f59c a25e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +cb7f_1 +ff00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 7f -1 +-1 +-1 +ffb8 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb7f +6a00 84ec cf4e 185b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 7f -1 +185b f1 -1 +-1 +-1 +6a7c 84ec cf4e 185b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb80 +8f00 702f 17bd a706 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 80 -1 +a706 0a -1 +-1 +-1 +8f00 702f 17bd a706 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb81 +ae00 947f 7153 6616 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 81 -1 +6616 74 -1 +-1 +-1 +ae00 947e 7153 6616 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb82 +8100 bed2 c719 4572 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 82 -1 +4572 2f -1 +-1 +-1 +8100 bed2 c619 4572 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb83 +e600 63a2 ccf7 ae9a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 83 -1 +ae9a 16 -1 +-1 +-1 +e600 63a2 ccf6 ae9a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb84 +ce00 e0cc d305 d6c0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 84 -1 +d6c0 72 -1 +-1 +-1 +ce00 e0cc d305 d6c0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb85 +f300 ed79 9db7 dda0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 85 -1 +dda0 8a -1 +-1 +-1 +f300 ed79 9db7 dda0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb86 +2a00 b0b9 9426 1b48 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 86 -1 +1b48 62 -1 +-1 +-1 +2a00 b0b9 9426 1b48 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +-1 + +cb87 +1100 86dc 1798 dfc5 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 87 -1 +dfc5 de -1 +-1 +-1 +1000 86dc 1798 dfc5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb88 +e300 8a21 e33e 674d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 88 -1 +674d 5f -1 +-1 +-1 +e300 8821 e33e 674d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb89 +6000 d186 c5b6 1bd7 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 89 -1 +1bd7 f2 -1 +-1 +-1 +6000 d184 c5b6 1bd7 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb8a +3e00 5fcd 0b38 b98e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 8a -1 +b98e 2f -1 +-1 +-1 +3e00 5fcd 0938 b98e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb8b +6500 040e 103f 4a07 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 8b -1 +4a07 3f -1 +-1 +-1 +6500 040e 103d 4a07 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb8c +f800 6d27 9bdf daef 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 8c -1 +daef 0c -1 +-1 +-1 +f800 6d27 9bdf d8ef 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb8d +3e00 5469 2c28 bd72 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 8d -1 +bd72 13 -1 +-1 +-1 +3e00 5469 2c28 bd70 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb8e +1f00 140b b492 63a7 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 8e -1 +63a7 d4 -1 +-1 +-1 +1f00 140b b492 63a7 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +-1 + +cb8f +2500 c522 ca46 1c1a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 8f -1 +1c1a 37 -1 +-1 +-1 +2500 c522 ca46 1c1a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb90 +5700 595c 4f0a c73c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 90 -1 +c73c a2 -1 +-1 +-1 +5700 595c 4f0a c73c 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb91 +5e00 8f26 a735 97e0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 91 -1 +97e0 5e -1 +-1 +-1 +5e00 8f22 a735 97e0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb92 +3300 7d9f 87d0 83d0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 92 -1 +83d0 2b -1 +-1 +-1 +3300 7d9f 83d0 83d0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb93 +c200 4e05 b3f8 2234 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 93 -1 +2234 a0 -1 +-1 +-1 +c200 4e05 b3f8 2234 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb94 +ee00 8f4b 2831 d6a6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 94 -1 +d6a6 d0 -1 +-1 +-1 +ee00 8f4b 2831 d2a6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb95 +3c00 6af2 b25d 36ff 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 95 -1 +36ff cd -1 +-1 +-1 +3c00 6af2 b25d 36fb 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb96 +7600 b027 d0a5 3324 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 96 -1 +3324 21 -1 +-1 +-1 +7600 b027 d0a5 3324 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +-1 + +cb97 +1600 ad09 7902 97bc 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 97 -1 +97bc 75 -1 +-1 +-1 +1200 ad09 7902 97bc 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb98 +3400 b61c 771d 5d5e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 98 -1 +5d5e a4 -1 +-1 +-1 +3400 b61c 771d 5d5e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb99 +5100 65be 1359 8bec 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 99 -1 +8bec 0b -1 +-1 +-1 +5100 65b6 1359 8bec 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb9a +6400 976d 4c25 dcb2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 9a -1 +dcb2 09 -1 +-1 +-1 +6400 976d 4425 dcb2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb9b +a100 b58a d264 2bd6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 9b -1 +2bd6 d3 -1 +-1 +-1 +a100 b58a d264 2bd6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb9c +d800 63d6 ac7b c7a0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 9c -1 +c7a0 75 -1 +-1 +-1 +d800 63d6 ac7b c7a0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb9d +0d00 d840 0810 0800 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 9d -1 +0800 cd -1 +-1 +-1 +0d00 d840 0810 0800 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cb9e +3b00 ebbf 9434 3a65 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 9e -1 +3a65 2a -1 +-1 +-1 +3b00 ebbf 9434 3a65 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +3a65 22 -1 +-1 + +cb9f +b200 d1de f991 72f6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb 9f -1 +72f6 72 -1 +-1 +-1 +b200 d1de f991 72f6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cba0 +fa00 d669 71e1 c80d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a0 -1 +c80d c0 -1 +-1 +-1 +fa00 c669 71e1 c80d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cba1 +8200 75e4 a0de d0ba 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a1 -1 +d0ba bd -1 +-1 +-1 +8200 75e4 a0de d0ba 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cba2 +dd00 2b0d 5554 6fc0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a2 -1 +6fc0 61 -1 +-1 +-1 +dd00 2b0d 4554 6fc0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cba3 +2200 2f0d 4d2c 6666 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a3 -1 +6666 8e -1 +-1 +-1 +2200 2f0d 4d2c 6666 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cba4 +d600 d8ed 9cd4 8bb1 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a4 -1 +8bb1 bb -1 +-1 +-1 +d600 d8ed 9cd4 8bb1 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cba5 +b400 b393 3e42 88ca 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a5 -1 +88ca 4f -1 +-1 +-1 +b400 b393 3e42 88ca 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cba6 +0a00 4c34 f5a7 e70d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a6 -1 +e70d 27 -1 +-1 +-1 +0a00 4c34 f5a7 e70d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +-1 + +cba7 +4500 af61 569a c77b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a7 -1 +c77b ff -1 +-1 +-1 +4500 af61 569a c77b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cba8 +6400 f269 bae4 c9e7 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a8 -1 +c9e7 46 -1 +-1 +-1 +6400 d269 bae4 c9e7 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cba9 +e400 7ad4 bf0a ce0b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb a9 -1 +ce0b 39 -1 +-1 +-1 +e400 7ad4 bf0a ce0b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbaa +cd00 d249 4159 fed5 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb aa -1 +fed5 b0 -1 +-1 +-1 +cd00 d249 4159 fed5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbab +ac00 939a 5d9b 0812 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ab -1 +0812 f2 -1 +-1 +-1 +ac00 939a 5d9b 0812 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbac +2400 8a7d 2cac ffaa 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ac -1 +ffaa 09 -1 +-1 +-1 +2400 8a7d 2cac dfaa 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbad +6f00 5ffb 2360 ae15 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ad -1 +ae15 30 -1 +-1 +-1 +6f00 5ffb 2360 ae15 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbae +5a00 aa17 12f3 190e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ae -1 +190e 66 -1 +-1 +-1 +5a00 aa17 12f3 190e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +190e 46 -1 +-1 + +cbaf +fc00 bb3f 8bb6 5877 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb af -1 +5877 62 -1 +-1 +-1 +dc00 bb3f 8bb6 5877 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbb0 +b900 7a79 1aaa c3ba 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b0 -1 +c3ba 4c -1 +-1 +-1 +b900 3a79 1aaa c3ba 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbb1 +4900 63e4 a544 1190 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b1 -1 +1190 e3 -1 +-1 +-1 +4900 63a4 a544 1190 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbb2 +4d00 2b03 6b23 6ff5 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b2 -1 +6ff5 04 -1 +-1 +-1 +4d00 2b03 2b23 6ff5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbb3 +8700 857a e98b 5cb1 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b3 -1 +5cb1 43 -1 +-1 +-1 +8700 857a e98b 5cb1 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbb4 +2b00 b73e 79c9 e1bb 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b4 -1 +e1bb 78 -1 +-1 +-1 +2b00 b73e 79c9 a1bb 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbb5 +9b00 d879 2ec9 4bba 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b5 -1 +4bba 70 -1 +-1 +-1 +9b00 d879 2ec9 4bba 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbb6 +8600 89bf de4a 4fab 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b6 -1 +4fab a5 -1 +-1 +-1 +8600 89bf de4a 4fab 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +-1 + +cbb7 +2200 fb8a 3d6e d4a2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b7 -1 +d4a2 f2 -1 +-1 +-1 +2200 fb8a 3d6e d4a2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbb8 +d000 37c6 225a d249 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b8 -1 +d249 c4 -1 +-1 +-1 +d000 37c6 225a d249 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbb9 +a500 1b4a d584 5dee 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb b9 -1 +5dee cc -1 +-1 +-1 +a500 1b4a d584 5dee 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbba +6300 a5fe f42b 34c9 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ba -1 +34c9 bc -1 +-1 +-1 +6300 a5fe 742b 34c9 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbbb +1200 f661 aa4f cb30 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb bb -1 +cb30 f4 -1 +-1 +-1 +1200 f661 aa4f cb30 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbbc +9800 adc3 0b29 7b6e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb bc -1 +7b6e 45 -1 +-1 +-1 +9800 adc3 0b29 7b6e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbbd +d600 a6e1 8813 10b8 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb bd -1 +10b8 35 -1 +-1 +-1 +d600 a6e1 8813 1038 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbbe +ca00 ff64 1218 77d5 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb be -1 +77d5 ea -1 +-1 +-1 +ca00 ff64 1218 77d5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +77d5 6a -1 +-1 + +cbbf +6800 4845 690a 15de 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb bf -1 +15de 1d -1 +-1 +-1 +6800 4845 690a 15de 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbc0 +e300 ef71 bffb b3a1 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c0 -1 +b3a1 5c -1 +-1 +-1 +e300 ef71 bffb b3a1 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbc1 +3200 32a1 59ab 3343 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c1 -1 +3343 aa -1 +-1 +-1 +3200 32a1 59ab 3343 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbc2 +c700 b159 c023 e1f3 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c2 -1 +e1f3 14 -1 +-1 +-1 +c700 b159 c123 e1f3 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbc3 +0400 b463 c211 8f3a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c3 -1 +8f3a 81 -1 +-1 +-1 +0400 b463 c211 8f3a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbc4 +7e00 545a 6ecf 5876 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c4 -1 +5876 9d -1 +-1 +-1 +7e00 545a 6ecf 5976 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbc5 +4000 c617 079c 4107 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c5 -1 +4107 cc -1 +-1 +-1 +4000 c617 079c 4107 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbc6 +b800 0373 b807 f0be 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c6 -1 +f0be 9c -1 +-1 +-1 +b800 0373 b807 f0be 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +f0be 9d -1 +-1 + +cbc7 +7700 3681 9b55 583f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c7 -1 +583f 58 -1 +-1 +-1 +7700 3681 9b55 583f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbc8 +7d00 a772 8682 7cf3 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c8 -1 +7cf3 75 -1 +-1 +-1 +7d00 a772 8682 7cf3 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbc9 +0b00 67ee 30e0 72db 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb c9 -1 +72db 87 -1 +-1 +-1 +0b00 67ee 30e0 72db 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbca +9c00 9517 cfbb fbc7 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ca -1 +fbc7 1a -1 +-1 +-1 +9c00 9517 cfbb fbc7 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbcb +e800 0f3d 336f f70d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb cb -1 +f70d a1 -1 +-1 +-1 +e800 0f3d 336f f70d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbcc +fb00 7981 0bbb 18fd 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb cc -1 +18fd fe -1 +-1 +-1 +fb00 7981 0bbb 1afd 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbcd +5500 5e78 bf34 2602 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb cd -1 +2602 2d -1 +-1 +-1 +5500 5e78 bf34 2602 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbce +d500 a111 cb2a 8ec6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ce -1 +8ec6 bf -1 +-1 +-1 +d500 a111 cb2a 8ec6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +-1 + +cbcf +a200 6baf 98b2 98a0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb cf -1 +98a0 d4 -1 +-1 +-1 +a200 6baf 98b2 98a0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbd0 +2300 7bcb 02e7 1724 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d0 -1 +1724 30 -1 +-1 +-1 +2300 7fcb 02e7 1724 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbd1 +5300 581f b775 47f4 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d1 -1 +47f4 c7 -1 +-1 +-1 +5300 581f b775 47f4 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbd2 +6900 c147 b79c 7528 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d2 -1 +7528 4f -1 +-1 +-1 +6900 c147 b79c 7528 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbd3 +ae00 bbc4 ce52 5fba 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d3 -1 +5fba 3a -1 +-1 +-1 +ae00 bbc4 ce56 5fba 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbd4 +d800 6e1e af6f bf2e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d4 -1 +bf2e 71 -1 +-1 +-1 +d800 6e1e af6f bf2e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbd5 +8400 a19a d2fd 8a77 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d5 -1 +8a77 52 -1 +-1 +-1 +8400 a19a d2fd 8a77 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbd6 +a900 f5f3 2180 6029 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d6 -1 +6029 b7 -1 +-1 +-1 +a900 f5f3 2180 6029 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +-1 + +cbd7 +b100 c008 8425 290a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d7 -1 +290a 42 -1 +-1 +-1 +b500 c008 8425 290a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbd8 +8b00 09c4 ddf3 6d7e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d8 -1 +6d7e 6e -1 +-1 +-1 +8b00 09c4 ddf3 6d7e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbd9 +3e00 3e36 30ec efc6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb d9 -1 +efc6 5b -1 +-1 +-1 +3e00 3e3e 30ec efc6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbda +d000 3e8f 28fe 1c87 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb da -1 +1c87 b9 -1 +-1 +-1 +d000 3e8f 28fe 1c87 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbdb +1200 977a 8c49 bc48 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb db -1 +bc48 ef -1 +-1 +-1 +1200 977a 8c49 bc48 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbdc +8d00 05de f8d3 b125 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb dc -1 +b125 0e -1 +-1 +-1 +8d00 05de f8d3 b925 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbdd +c300 08a9 2bc8 5b9f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb dd -1 +5b9f 94 -1 +-1 +-1 +c300 08a9 2bc8 5b9f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbde +1900 900f d572 ba03 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb de -1 +ba03 93 -1 +-1 +-1 +1900 900f d572 ba03 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +ba03 9b -1 +-1 + +cbdf +6700 2745 7e3d 0fa1 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb df -1 +0fa1 c5 -1 +-1 +-1 +6f00 2745 7e3d 0fa1 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbe0 +3e00 d633 9897 3744 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e0 -1 +3744 54 -1 +-1 +-1 +3e00 d633 9897 3744 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbe1 +7d00 50a6 0136 5334 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e1 -1 +5334 85 -1 +-1 +-1 +7d00 50b6 0136 5334 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbe2 +d400 6b45 a192 3a4c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e2 -1 +3a4c 47 -1 +-1 +-1 +d400 6b45 b192 3a4c 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbe3 +3b00 d29c 05e0 2e78 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e3 -1 +2e78 48 -1 +-1 +-1 +3b00 d29c 05f0 2e78 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbe4 +1e00 7d5e 846d 0978 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e4 -1 +0978 84 -1 +-1 +-1 +1e00 7d5e 846d 1978 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbe5 +ca00 df0d d588 b48f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e5 -1 +b48f cf -1 +-1 +-1 +ca00 df0d d588 b49f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbe6 +b300 52c2 dbfe 9f9b 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e6 -1 +9f9b f6 -1 +-1 +-1 +b300 52c2 dbfe 9f9b 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +-1 + +cbe7 +8e00 cf02 67ef f2e0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e7 -1 +f2e0 cf -1 +-1 +-1 +9e00 cf02 67ef f2e0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbe8 +7100 bb18 66ec 4a05 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e8 -1 +4a05 e6 -1 +-1 +-1 +7100 bb18 66ec 4a05 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbe9 +5700 2897 8f2f a4d0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb e9 -1 +a4d0 b2 -1 +-1 +-1 +5700 28b7 8f2f a4d0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbea +ec00 304a 60a1 f32a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ea -1 +f32a 9c -1 +-1 +-1 +ec00 304a 60a1 f32a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbeb +f000 532b a1be 1a1a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb eb -1 +1a1a 21 -1 +-1 +-1 +f000 532b a1be 1a1a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbec +f200 f0f3 a816 ba08 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ec -1 +ba08 82 -1 +-1 +-1 +f200 f0f3 a816 ba08 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbed +1300 5127 adab 2dec 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ed -1 +2dec cb -1 +-1 +-1 +1300 5127 adab 2dec 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbee +9000 b273 50ae e90d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ee -1 +e90d f1 -1 +-1 +-1 +9000 b273 50ae e90d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +-1 + +cbef +2500 4281 f0d4 2c39 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ef -1 +2c39 c8 -1 +-1 +-1 +2500 4281 f0d4 2c39 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbf0 +fb00 5802 0c27 6ff5 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f0 -1 +6ff5 f6 -1 +-1 +-1 +fb00 5802 0c27 6ff5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbf1 +5500 a103 3ff5 5e1c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f1 -1 +5e1c 37 -1 +-1 +-1 +5500 a143 3ff5 5e1c 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbf2 +f000 625a af82 9819 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f2 -1 +9819 e4 -1 +-1 +-1 +f000 625a ef82 9819 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbf3 +8600 d7bd 5d86 263f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f3 -1 +263f a1 -1 +-1 +-1 +8600 d7bd 5dc6 263f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbf4 +9400 0243 9ec1 75d9 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f4 -1 +75d9 3f -1 +-1 +-1 +9400 0243 9ec1 75d9 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbf5 +ce00 2d42 5e6a 47e6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f5 -1 +47e6 ce -1 +-1 +-1 +ce00 2d42 5e6a 47e6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbf6 +7b00 c2d7 4492 a9bc 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f6 -1 +a9bc b1 -1 +-1 +-1 +7b00 c2d7 4492 a9bc 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +a9bc f1 -1 +-1 + +cbf7 +6d00 abaf 5b5d 188c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f7 -1 +188c 6c -1 +-1 +-1 +6d00 abaf 5b5d 188c 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbf8 +c600 b812 a037 d2b0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f8 -1 +d2b0 cb -1 +-1 +-1 +c600 b812 a037 d2b0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbf9 +ef00 c5f2 77a8 0730 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb f9 -1 +0730 ae -1 +-1 +-1 +ef00 c5f2 77a8 0730 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbfa +8700 1581 63e3 ed03 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb fa -1 +ed03 27 -1 +-1 +-1 +8700 1581 e3e3 ed03 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbfb +a300 7d27 97c3 d1ae 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb fb -1 +d1ae f2 -1 +-1 +-1 +a300 7d27 97c3 d1ae 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbfc +ec00 060a 3ef6 500f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb fc -1 +500f 94 -1 +-1 +-1 +ec00 060a 3ef6 d00f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbfd +1100 231a 8563 28c5 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb fd -1 +28c5 ab -1 +-1 +-1 +1100 231a 8563 28c5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cbfe +5300 4948 89dd 3a24 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb fe -1 +3a24 c3 -1 +-1 +-1 +5300 4948 89dd 3a24 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +-1 + +cbff +7900 799b 6cf7 e3f2 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 cb ff -1 +e3f2 25 -1 +-1 +-1 +f900 799b 6cf7 e3f2 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 8 +-1 + +cc_1 +004e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 cc 61 9c -1 +-1 +-1 +004e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5696 9c61 +00 01 0 0 0 0 17 +5696 03 00 -1 +-1 + +cc_2 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 cc 61 9c -1 +-1 +-1 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0003 +00 01 0 0 0 0 10 +-1 + +cd +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 b07d 0000 +00 00 0 0 0 0 1 +0000 cd 5d 3a -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 b07b 3a5d +00 01 0 0 0 0 17 +b07b 03 00 -1 +-1 + +ce +60f5 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ce b2 -1 +-1 +-1 +1301 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +cf +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5507 6d33 +00 00 0 0 0 0 1 +6d33 cf -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5505 0008 +00 01 0 0 0 0 11 +5505 34 6d -1 +-1 + +d0_1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 d0 -1 +43f7 e9 af -1 +-1 +-1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f9 afe9 +00 01 0 0 0 0 11 +-1 + +d0_2 +0099 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 d0 -1 +43f7 e9 af -1 +-1 +-1 +0099 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0001 +00 01 0 0 0 0 5 +-1 + +d1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4143 0000 +00 00 0 0 0 0 1 +0000 d1 -1 +4143 ce e8 -1 +-1 +-1 +0000 0000 e8ce 0000 0000 0000 0000 0000 0000 0000 4145 0001 +00 01 0 0 0 0 10 +-1 + +d2_1 +0086 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 d2 1b e1 -1 +-1 +-1 +0086 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e11b +00 01 0 0 0 0 10 +-1 + +d2_2 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 d2 1b e1 -1 +-1 +-1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 +-1 + +d3_1 +a200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 d3 ed -1 +-1 +-1 +a200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 11 +-1 + +d3_2 +4200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 d3 ec -1 +-1 +-1 +4200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 11 +-1 + +d3_3 +4200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 d3 ed -1 +-1 +-1 +4200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 11 +-1 + +d3 +a200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 d3 ec -1 +-1 +-1 +a200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 11 +-1 + +d4_1 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 d4 61 9c -1 +-1 +-1 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5696 9c61 +00 01 0 0 0 0 17 +5696 03 00 -1 +-1 + +d4_2 +000f 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 d4 61 9c -1 +-1 +-1 +000f 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0003 +00 01 0 0 0 0 10 +-1 + +d5 +53e3 1459 775f 1a2f 0000 0000 0000 0000 0000 0000 ec12 0000 +00 00 0 0 0 0 1 +0000 d5 -1 +-1 +-1 +53e3 1459 775f 1a2f 0000 0000 0000 0000 0000 0000 ec10 0001 +00 01 0 0 0 0 11 +ec10 5f 77 -1 +-1 + +d6 +3900 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 d6 df -1 +-1 +-1 +5a1b 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +d7 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5507 6d33 +00 00 0 0 0 0 1 +6d33 d7 -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5505 0010 +00 01 0 0 0 0 11 +5505 34 6d -1 +-1 + +d8_1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 d8 -1 +43f7 e9 af -1 +-1 +-1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0001 +00 01 0 0 0 0 5 +-1 + +d8_2 +0099 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 d8 -1 +43f7 e9 af -1 +-1 +-1 +0099 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f9 afe9 +00 01 0 0 0 0 11 +-1 + +d9 +4d94 e07a e35b 9d64 1a64 c930 3d01 7d02 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 d9 -1 +-1 +-1 +4d94 c930 3d01 7d02 1a64 e07a e35b 9d64 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +da_1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 da 1b e1 -1 +-1 +-1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e11b +00 01 0 0 0 0 10 +-1 + +da_2 +0086 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 da 1b e1 -1 +-1 +-1 +0086 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 +-1 + +db_1 +c100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 db e3 -1 +-1 +c1e3 c1 + -1 +c100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 11 +-1 + +db_2 +7100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 db e2 -1 +-1 +71e2 71 + -1 +7100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 11 +-1 + +db_3 +7100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 db e3 -1 +-1 +71e3 71 + -1 +7100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 11 +-1 + +db +c100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 db e2 -1 +-1 +c1e2 c1 + -1 +c100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 11 +-1 + +dc_1 +000f 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 dc 61 9c -1 +-1 +-1 +000f 0000 0000 0000 0000 0000 0000 0000 0000 0000 5696 9c61 +00 01 0 0 0 0 17 +5696 03 00 -1 +-1 + +dc_2 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 dc 61 9c -1 +-1 +-1 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0003 +00 01 0 0 0 0 10 +-1 + +dd00 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 9 +0000 dd 00 00 -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 03 0 0 0 0 12 +-1 + +dd09 +0d05 1426 53ce 41e3 0000 0000 0000 0000 9ec0 5c89 0000 0000 +00 00 0 0 0 0 1 +0000 dd 09 -1 +-1 +-1 +0d34 1426 53ce 41e3 0000 0000 0000 0000 b2e6 5c89 0000 0002 +00 02 0 0 0 0 15 +-1 + +dd19 +1911 0e0b 2724 be62 0000 0000 0000 0000 824f 760b 0000 0000 +00 00 0 0 0 0 1 +0000 dd 19 -1 +-1 +-1 +1928 0e0b 2724 be62 0000 0000 0000 0000 a973 760b 0000 0002 +00 02 0 0 0 0 15 +-1 + +dd21 +c935 4353 bd22 94d5 0000 0000 0000 0000 dade aad6 0000 0000 +00 00 0 0 0 0 1 +0000 dd 21 f2 7c -1 +-1 +-1 +c935 4353 bd22 94d5 0000 0000 0000 0000 7cf2 aad6 0000 0004 +00 02 0 0 0 0 14 +-1 + +dd22 +5b1d 45a1 6de8 39d3 0000 0000 0000 0000 ebe7 05b0 0000 0000 +00 00 0 0 0 0 1 +0000 dd 22 4f ad -1 +-1 +-1 +5b1d 45a1 6de8 39d3 0000 0000 0000 0000 ebe7 05b0 0000 0004 +00 02 0 0 0 0 20 +ad4f e7 eb -1 +-1 + +dd23 +9095 ac3c 4d90 379b 0000 0000 0000 0000 d50b a157 0000 0000 +00 00 0 0 0 0 1 +0000 dd 23 -1 +-1 +-1 +9095 ac3c 4d90 379b 0000 0000 0000 0000 d50c a157 0000 0002 +00 02 0 0 0 0 10 +-1 + +dd24 +0698 dcd0 a31b d527 0000 0000 0000 0000 8cda b096 0000 0000 +00 00 0 0 0 0 1 +0000 dd 24 -1 +-1 +-1 +0688 dcd0 a31b d527 0000 0000 0000 0000 8dda b096 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd25 +5acc 206b ed10 6eab 0000 0000 0000 0000 bb3c 5ebd 0000 0000 +00 00 0 0 0 0 1 +0000 dd 25 -1 +-1 +-1 +5aaa 206b ed10 6eab 0000 0000 0000 0000 ba3c 5ebd 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd26 +9522 ede0 a352 adea 0000 0000 0000 0000 5f40 82e1 0000 0000 +00 00 0 0 0 0 1 +0000 dd 26 ad -1 +-1 +-1 +9522 ede0 a352 adea 0000 0000 0000 0000 ad40 82e1 0000 0003 +00 02 0 0 0 0 11 +-1 + +dd29 +ac80 0f0e 72c8 1f2a 0000 0000 0000 0000 5195 7d8a 0000 0000 +00 00 0 0 0 0 1 +0000 dd 29 -1 +-1 +-1 +aca0 0f0e 72c8 1f2a 0000 0000 0000 0000 a32a 7d8a 0000 0002 +00 02 0 0 0 0 15 +-1 + +dd2a +3d36 b24e bdbc ca4e 0000 0000 0000 0000 ba65 e7ce 0000 0000 +00 00 0 0 0 0 1 +0000 dd 2a bc 40 -1 +40bc b5 30 -1 +-1 +-1 +3d36 b24e bdbc ca4e 0000 0000 0000 0000 30b5 e7ce 0000 0004 +00 02 0 0 0 0 20 +-1 + +dd2b +ad4b d5e6 9377 f132 0000 0000 0000 0000 7a17 2188 0000 0000 +00 00 0 0 0 0 1 +0000 dd 2b -1 +-1 +-1 +ad4b d5e6 9377 f132 0000 0000 0000 0000 7a16 2188 0000 0002 +00 02 0 0 0 0 10 +-1 + +dd2c +8838 f2f3 d277 9153 0000 0000 0000 0000 c62f b002 0000 0000 +00 00 0 0 0 0 1 +0000 dd 2c -1 +-1 +-1 +8830 f2f3 d277 9153 0000 0000 0000 0000 c630 b002 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd2d +39bc b23c 6e11 5a49 0000 0000 0000 0000 0267 ab03 0000 0000 +00 00 0 0 0 0 1 +0000 dd 2d -1 +-1 +-1 +3922 b23c 6e11 5a49 0000 0000 0000 0000 0266 ab03 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd2e +9aca a04a b49f a4a6 0000 0000 0000 0000 bd90 38a1 0000 0000 +00 00 0 0 0 0 1 +0000 dd 2e 1c -1 +-1 +-1 +9aca a04a b49f a4a6 0000 0000 0000 0000 bd1c 38a1 0000 0003 +00 02 0 0 0 0 11 +-1 + +dd34 +8304 d1fc b80b 8082 0000 0000 0000 0000 dea9 6fd8 0000 0000 +00 00 0 0 0 0 1 +0000 dd 34 e6 -1 +de8f 57 -1 +-1 +-1 +8308 d1fc b80b 8082 0000 0000 0000 0000 dea9 6fd8 0000 0003 +00 02 0 0 0 0 23 +de8f 58 -1 +-1 + +dd35 +8681 4641 1ef6 10ab 0000 0000 0000 0000 c733 8ec4 0000 0000 +00 00 0 0 0 0 1 +0000 dd 35 60 -1 +c793 f7 -1 +-1 +-1 +86a3 4641 1ef6 10ab 0000 0000 0000 0000 c733 8ec4 0000 0003 +00 02 0 0 0 0 23 +c793 f6 -1 +-1 + +dd36 +76dc 2530 5158 877d 0000 0000 0000 0000 b5c6 8d3c 0000 0000 +00 00 0 0 0 0 1 +0000 dd 36 35 b5 -1 +-1 +-1 +76dc 2530 5158 877d 0000 0000 0000 0000 b5c6 8d3c 0000 0004 +00 02 0 0 0 0 19 +b5fb b5 -1 +-1 + +dd39 +875b a334 d79d 59e4 0000 0000 0000 0000 b11a 4c88 fa4a 0000 +00 00 0 0 0 0 1 +0000 dd 39 -1 +-1 +-1 +8769 a334 d79d 59e4 0000 0000 0000 0000 ab64 4c88 fa4a 0002 +00 02 0 0 0 0 15 +-1 + +dd44 +b37e cbb0 36e8 3f45 0000 0000 0000 0000 2702 b3b9 0000 0000 +00 00 0 0 0 0 1 +0000 dd 44 -1 +-1 +-1 +b37e 27b0 36e8 3f45 0000 0000 0000 0000 2702 b3b9 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd45 +4e10 5c6d d11d 1736 0000 0000 0000 0000 7298 2d10 0000 0000 +00 00 0 0 0 0 1 +0000 dd 45 -1 +-1 +-1 +4e10 986d d11d 1736 0000 0000 0000 0000 7298 2d10 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd46 +c758 bf29 66f2 29ef 0000 0000 0000 0000 5cc7 407d 0000 0000 +00 00 0 0 0 0 1 +0000 dd 46 68 -1 +5d2f 8d -1 +-1 +-1 +c758 8d29 66f2 29ef 0000 0000 0000 0000 5cc7 407d 0000 0003 +00 02 0 0 0 0 19 +-1 + +dd4c +e15c 75ec 7531 ae9e 0000 0000 0000 0000 3ed8 03b7 0000 0000 +00 00 0 0 0 0 1 +0000 dd 4c -1 +-1 +-1 +e15c 753e 7531 ae9e 0000 0000 0000 0000 3ed8 03b7 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd4d +469e 7864 6a5a 00e2 0000 0000 0000 0000 a1aa 0d6f 0000 0000 +00 00 0 0 0 0 1 +0000 dd 4d -1 +-1 +-1 +469e 78aa 6a5a 00e2 0000 0000 0000 0000 a1aa 0d6f 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd4e +7bf7 6605 8d55 def2 0000 0000 0000 0000 d94b 17fb 0000 0000 +00 00 0 0 0 0 1 +0000 dd 4e 2e -1 +d979 76 -1 +-1 +-1 +7bf7 6676 8d55 def2 0000 0000 0000 0000 d94b 17fb 0000 0003 +00 02 0 0 0 0 19 +-1 + +dd54 +8376 0d13 c767 3119 0000 0000 0000 0000 4b6d 030b 0000 0000 +00 00 0 0 0 0 1 +0000 dd 54 -1 +-1 +-1 +8376 0d13 4b67 3119 0000 0000 0000 0000 4b6d 030b 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd55 +ff78 85e3 566b 8f3a 0000 0000 0000 0000 d7d7 4e0b 0000 0000 +00 00 0 0 0 0 1 +0000 dd 55 -1 +-1 +-1 +ff78 85e3 d76b 8f3a 0000 0000 0000 0000 d7d7 4e0b 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd56 +97b3 b617 bb50 81d1 0000 0000 0000 0000 a306 7a49 0000 0000 +00 00 0 0 0 0 1 +0000 dd 56 f4 -1 +a2fa de -1 +-1 +-1 +97b3 b617 de50 81d1 0000 0000 0000 0000 a306 7a49 0000 0003 +00 02 0 0 0 0 19 +-1 + +dd5c +af82 24bf 2793 f925 0000 0000 0000 0000 f9a3 0b82 0000 0000 +00 00 0 0 0 0 1 +0000 dd 5c -1 +-1 +-1 +af82 24bf 27f9 f925 0000 0000 0000 0000 f9a3 0b82 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd5d +36cb 97a9 400d 30fe 0000 0000 0000 0000 3340 b3ed 0000 0000 +00 00 0 0 0 0 1 +0000 dd 5d -1 +-1 +-1 +36cb 97a9 4040 30fe 0000 0000 0000 0000 3340 b3ed 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd5e +a220 389d 2ff8 368c 0000 0000 0000 0000 8d32 3512 0000 0000 +00 00 0 0 0 0 1 +0000 dd 5e 8f -1 +8cc1 ce -1 +-1 +-1 +a220 389d 2fce 368c 0000 0000 0000 0000 8d32 3512 0000 0003 +00 02 0 0 0 0 19 +-1 + +dd60 +2392 7f6a 3dc0 cefb 0000 0000 0000 0000 44a0 c424 0000 0000 +00 00 0 0 0 0 1 +0000 dd 60 -1 +-1 +-1 +2392 7f6a 3dc0 cefb 0000 0000 0000 0000 7fa0 c424 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd61 +76ed 268c d5c8 bab0 0000 0000 0000 0000 b650 0a93 0000 0000 +00 00 0 0 0 0 1 +0000 dd 61 -1 +-1 +-1 +76ed 268c d5c8 bab0 0000 0000 0000 0000 8c50 0a93 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd62 +4c6f b482 fef4 62e7 0000 0000 0000 0000 6e25 9655 0000 0000 +00 00 0 0 0 0 1 +0000 dd 62 -1 +-1 +-1 +4c6f b482 fef4 62e7 0000 0000 0000 0000 fe25 9655 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd63 +6e9a 5499 3c8f 1f64 0000 0000 0000 0000 bf35 0df7 0000 0000 +00 00 0 0 0 0 1 +0000 dd 63 -1 +-1 +-1 +6e9a 5499 3c8f 1f64 0000 0000 0000 0000 8f35 0df7 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd64 +47f6 1b7a a55e 2fc2 0000 0000 0000 0000 efc7 aca0 0000 0000 +00 00 0 0 0 0 1 +0000 dd 64 -1 +-1 +-1 +47f6 1b7a a55e 2fc2 0000 0000 0000 0000 efc7 aca0 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd65 +d786 7d1d b659 77e8 0000 0000 0000 0000 58fa 006d 0000 0000 +00 00 0 0 0 0 1 +0000 dd 65 -1 +-1 +-1 +d786 7d1d b659 77e8 0000 0000 0000 0000 fafa 006d 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd66 +84c2 79b1 ca4a aaa0 0000 0000 0000 0000 ce5d dd2d 0000 0000 +00 00 0 0 0 0 1 +0000 dd 66 b5 -1 +ce12 03 -1 +-1 +-1 +84c2 79b1 ca4a 03a0 0000 0000 0000 0000 ce5d dd2d 0000 0003 +00 02 0 0 0 0 19 +-1 + +dd67 +967c 511e 336d 40f6 0000 0000 0000 0000 66e7 5be2 0000 0000 +00 00 0 0 0 0 1 +0000 dd 67 -1 +-1 +-1 +967c 511e 336d 40f6 0000 0000 0000 0000 96e7 5be2 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd68 +4a9d efa8 febd 07e4 0000 0000 0000 0000 5fd8 b23f 0000 0000 +00 00 0 0 0 0 1 +0000 dd 68 -1 +-1 +-1 +4a9d efa8 febd 07e4 0000 0000 0000 0000 5fef b23f 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd69 +6466 2142 2523 82b3 0000 0000 0000 0000 6479 04a7 0000 0000 +00 00 0 0 0 0 1 +0000 dd 69 -1 +-1 +-1 +6466 2142 2523 82b3 0000 0000 0000 0000 6442 04a7 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd6a +401f 61f1 4b08 fa88 0000 0000 0000 0000 c37f d8f6 0000 0000 +00 00 0 0 0 0 1 +0000 dd 6a -1 +-1 +-1 +401f 61f1 4b08 fa88 0000 0000 0000 0000 c34b d8f6 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd6b +6dc7 e2ae 40bd f3c0 0000 0000 0000 0000 2290 2749 0000 0000 +00 00 0 0 0 0 1 +0000 dd 6b -1 +-1 +-1 +6dc7 e2ae 40bd f3c0 0000 0000 0000 0000 22bd 2749 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd6c +3939 90da 62dc 7c31 0000 0000 0000 0000 412f 7211 0000 0000 +00 00 0 0 0 0 1 +0000 dd 6c -1 +-1 +-1 +3939 90da 62dc 7c31 0000 0000 0000 0000 4141 7211 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd6d +3964 ff3f 23d4 c7c7 0000 0000 0000 0000 9b70 20c6 0000 0000 +00 00 0 0 0 0 1 +0000 dd 6d -1 +-1 +-1 +3964 ff3f 23d4 c7c7 0000 0000 0000 0000 9b70 20c6 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd6e +223f f661 b61c 0f53 0000 0000 0000 0000 c648 fae8 0000 0000 +00 00 0 0 0 0 1 +0000 dd 6e 2c -1 +c674 6b -1 +-1 +-1 +223f f661 b61c 0f6b 0000 0000 0000 0000 c648 fae8 0000 0003 +00 02 0 0 0 0 19 +-1 + +dd6f +6e84 9cd4 a293 647d 0000 0000 0000 0000 0d0b 4a56 0000 0000 +00 00 0 0 0 0 1 +0000 dd 6f -1 +-1 +-1 +6e84 9cd4 a293 647d 0000 0000 0000 0000 0d6e 4a56 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd70 +d09f fe00 231e 31ec 0000 0000 0000 0000 05fa ea92 0000 0000 +00 00 0 0 0 0 1 +0000 dd 70 f6 -1 +-1 +-1 +d09f fe00 231e 31ec 0000 0000 0000 0000 05fa ea92 0000 0003 +00 02 0 0 0 0 19 +05f0 fe -1 +-1 + +dd71 +ebee 151c 05c7 ee08 0000 0000 0000 0000 3722 2ec6 0000 0000 +00 00 0 0 0 0 1 +0000 dd 71 23 -1 +-1 +-1 +ebee 151c 05c7 ee08 0000 0000 0000 0000 3722 2ec6 0000 0003 +00 02 0 0 0 0 19 +3745 1c -1 +-1 + +dd72 +80c9 ac1e 63bd 828b 0000 0000 0000 0000 8dff 94ef 0000 0000 +00 00 0 0 0 0 1 +0000 dd 72 93 -1 +-1 +-1 +80c9 ac1e 63bd 828b 0000 0000 0000 0000 8dff 94ef 0000 0003 +00 02 0 0 0 0 19 +8d92 63 -1 +-1 + +dd73 +8f3e b5a3 07de 0b0c 0000 0000 0000 0000 79c6 ae79 0000 0000 +00 00 0 0 0 0 1 +0000 dd 73 57 -1 +-1 +-1 +8f3e b5a3 07de 0b0c 0000 0000 0000 0000 79c6 ae79 0000 0003 +00 02 0 0 0 0 19 +7a1d de -1 +-1 + +dd74 +4ae0 49c5 3deb 0125 0000 0000 0000 0000 5910 429a 0000 0000 +00 00 0 0 0 0 1 +0000 dd 74 b9 -1 +-1 +-1 +4ae0 49c5 3deb 0125 0000 0000 0000 0000 5910 429a 0000 0003 +00 02 0 0 0 0 19 +58c9 01 -1 +-1 + +dd75 +5772 e833 b63e 734f 0000 0000 0000 0000 ae4c e8c2 0000 0000 +00 00 0 0 0 0 1 +0000 dd 75 30 -1 +-1 +-1 +5772 e833 b63e 734f 0000 0000 0000 0000 ae4c e8c2 0000 0003 +00 02 0 0 0 0 19 +ae7c 4f -1 +-1 + +dd77 +dc56 d893 4116 f2d2 0000 0000 0000 0000 a181 3157 0000 0000 +00 00 0 0 0 0 1 +0000 dd 77 8c -1 +-1 +-1 +dc56 d893 4116 f2d2 0000 0000 0000 0000 a181 3157 0000 0003 +00 02 0 0 0 0 19 +a10d dc -1 +-1 + +dd7c +7558 7705 ac92 a6a1 0000 0000 0000 0000 8cde 7507 0000 0000 +00 00 0 0 0 0 1 +0000 dd 7c -1 +-1 +-1 +8c58 7705 ac92 a6a1 0000 0000 0000 0000 8cde 7507 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd7d +6c18 93fb 6bdd 3a10 0000 0000 0000 0000 d7cb c0f6 0000 0000 +00 00 0 0 0 0 1 +0000 dd 7d -1 +-1 +-1 +cb18 93fb 6bdd 3a10 0000 0000 0000 0000 d7cb c0f6 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd7e +6a66 1f77 6220 0c40 0000 0000 0000 0000 1cf4 1a1f 0000 0000 +00 00 0 0 0 0 1 +0000 dd 7e bc -1 +1cb0 57 -1 +-1 +-1 +5766 1f77 6220 0c40 0000 0000 0000 0000 1cf4 1a1f 0000 0003 +00 02 0 0 0 0 19 +-1 + +dd84 +2e47 1de8 b8b9 78a6 0000 0000 0000 0000 9f1d b11f 0000 0000 +00 00 0 0 0 0 1 +0000 dd 84 -1 +-1 +-1 +cd98 1de8 b8b9 78a6 0000 0000 0000 0000 9f1d b11f 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd85 +b27a b1ff 8d7b 40c0 0000 0000 0000 0000 b513 0688 0000 0000 +00 00 0 0 0 0 1 +0000 dd 85 -1 +-1 +-1 +c580 b1ff 8d7b 40c0 0000 0000 0000 0000 b513 0688 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd86 +4efa d085 5bac e364 0000 0000 0000 0000 b5b5 fe3a 0000 0000 +00 00 0 0 0 0 1 +0000 dd 86 c1 -1 +b576 5b -1 +-1 +-1 +a9bc d085 5bac e364 0000 0000 0000 0000 b5b5 fe3a 0000 0003 +00 02 0 0 0 0 19 +-1 + +dd8c +bc63 8fdc ea8f 9734 0000 0000 0000 0000 0eb3 1b54 0000 0000 +00 00 0 0 0 0 1 +0000 dd 8c -1 +-1 +-1 +cb98 8fdc ea8f 9734 0000 0000 0000 0000 0eb3 1b54 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd8d +b61f 1c81 b6fb d6e5 0000 0000 0000 0000 09be a736 0000 0000 +00 00 0 0 0 0 1 +0000 dd 8d -1 +-1 +-1 +7535 1c81 b6fb d6e5 0000 0000 0000 0000 09be a736 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd8e +4ed4 182d ab17 94ae 0000 0000 0000 0000 bb97 87da 0000 0000 +00 00 0 0 0 0 1 +0000 dd 8e 25 -1 +bbbc 32 -1 +-1 +-1 +8094 182d ab17 94ae 0000 0000 0000 0000 bb97 87da 0000 0003 +00 02 0 0 0 0 19 +-1 + +dd94 +7ef1 9efe 6ea1 fc55 0000 0000 0000 0000 0a09 89c5 0000 0000 +00 00 0 0 0 0 1 +0000 dd 94 -1 +-1 +-1 +7422 9efe 6ea1 fc55 0000 0000 0000 0000 0a09 89c5 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd95 +2920 59ab 428c 3a94 0000 0000 0000 0000 44fd f243 0000 0000 +00 00 0 0 0 0 1 +0000 dd 95 -1 +-1 +-1 +2c3b 59ab 428c 3a94 0000 0000 0000 0000 44fd f243 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd96 +9b76 461f ced7 db3f 0000 0000 0000 0000 2c66 9dbf 0000 0000 +00 00 0 0 0 0 1 +0000 dd 96 5f -1 +2cc5 49 -1 +-1 +-1 +5206 461f ced7 db3f 0000 0000 0000 0000 2c66 9dbf 0000 0003 +00 02 0 0 0 0 19 +-1 + +dd9c +faf4 670e afcc 8b34 0000 0000 0000 0000 285f 1caa 0000 0000 +00 00 0 0 0 0 1 +0000 dd 9c -1 +-1 +-1 +d282 670e afcc 8b34 0000 0000 0000 0000 285f 1caa 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd9d +f827 0cdb df32 d0e4 0000 0000 0000 0000 9b12 7d07 0000 0000 +00 00 0 0 0 0 1 +0000 dd 9d -1 +-1 +-1 +e5a2 0cdb df32 d0e4 0000 0000 0000 0000 9b12 7d07 0000 0002 +00 02 0 0 0 0 8 +-1 + +dd9e +938e f9c5 cbc4 ca21 0000 0000 0000 0000 b4cc 46fa 0000 0000 +00 00 0 0 0 0 1 +0000 dd 9e 14 -1 +b4e0 b5 -1 +-1 +-1 +de9b f9c5 cbc4 ca21 0000 0000 0000 0000 b4cc 46fa 0000 0003 +00 02 0 0 0 0 19 +-1 + +dda4 +52f5 ba53 acfc 9481 0000 0000 0000 0000 2f8b edf6 0000 0000 +00 00 0 0 0 0 1 +0000 dd a4 -1 +-1 +-1 +0210 ba53 acfc 9481 0000 0000 0000 0000 2f8b edf6 0000 0002 +00 02 0 0 0 0 8 +-1 + +dda5 +baaf a675 d757 f1db 0000 0000 0000 0000 fdef d8ce 0000 0000 +00 00 0 0 0 0 1 +0000 dd a5 -1 +-1 +-1 +aabc a675 d757 f1db 0000 0000 0000 0000 fdef d8ce 0000 0002 +00 02 0 0 0 0 8 +-1 + +dda6 +1da4 20c4 ebc3 da8d 0000 0000 0000 0000 7e95 5e8a 0000 0000 +00 00 0 0 0 0 1 +0000 dd a6 41 -1 +7ed6 c7 -1 +-1 +-1 +0514 20c4 ebc3 da8d 0000 0000 0000 0000 7e95 5e8a 0000 0003 +00 02 0 0 0 0 19 +-1 + +ddac +ef15 2a7c 17e5 3f6e 0000 0000 0000 0000 affa a0b5 0000 0000 +00 00 0 0 0 0 1 +0000 dd ac -1 +-1 +-1 +4000 2a7c 17e5 3f6e 0000 0000 0000 0000 affa a0b5 0000 0002 +00 02 0 0 0 0 8 +-1 + +ddad +ba2e 6ba1 ef1b 5713 0000 0000 0000 0000 ba38 a708 0000 0000 +00 00 0 0 0 0 1 +0000 dd ad -1 +-1 +-1 +8284 6ba1 ef1b 5713 0000 0000 0000 0000 ba38 a708 0000 0002 +00 02 0 0 0 0 8 +-1 + +ddae +8009 3ad6 a721 2100 0000 0000 0000 0000 e909 87b4 0000 0000 +00 00 0 0 0 0 1 +0000 dd ae 72 -1 +e97b c3 -1 +-1 +-1 +4300 3ad6 a721 2100 0000 0000 0000 0000 e909 87b4 0000 0003 +00 02 0 0 0 0 19 +-1 + +ddb4 +1ccd 29aa 2e82 4dc8 0000 0000 0000 0000 9c04 8be3 0000 0000 +00 00 0 0 0 0 1 +0000 dd b4 -1 +-1 +-1 +9c8c 29aa 2e82 4dc8 0000 0000 0000 0000 9c04 8be3 0000 0002 +00 02 0 0 0 0 8 +-1 + +ddb5 +46b4 fc93 7a06 0518 0000 0000 0000 0000 0ac5 4150 0000 0000 +00 00 0 0 0 0 1 +0000 dd b5 -1 +-1 +-1 +c780 fc93 7a06 0518 0000 0000 0000 0000 0ac5 4150 0000 0002 +00 02 0 0 0 0 8 +-1 + +ddb6 +5017 ab81 4287 5ee1 0000 0000 0000 0000 c66f d6cc 0000 0000 +00 00 0 0 0 0 1 +0000 dd b6 31 -1 +c6a0 1c -1 +-1 +-1 +5c0c ab81 4287 5ee1 0000 0000 0000 0000 c66f d6cc 0000 0003 +00 02 0 0 0 0 19 +-1 + +ddbc +53e0 aa98 f7d7 fa0c 0000 0000 0000 0000 be7a a41f 0000 0000 +00 00 0 0 0 0 1 +0000 dd bc -1 +-1 +-1 +53bf aa98 f7d7 fa0c 0000 0000 0000 0000 be7a a41f 0000 0002 +00 02 0 0 0 0 8 +-1 + +ddbd +dc83 80ce 5d2f e999 0000 0000 0000 0000 bb41 a24f 0000 0000 +00 00 0 0 0 0 1 +0000 dd bd -1 +-1 +-1 +dc82 80ce 5d2f e999 0000 0000 0000 0000 bb41 a24f 0000 0002 +00 02 0 0 0 0 8 +-1 + +ddbe +9838 bfd5 a299 d34b 0000 0000 0000 0000 9332 b1d5 0000 0000 +00 00 0 0 0 0 1 +0000 dd be 48 -1 +937a 5b -1 +-1 +-1 +981e bfd5 a299 d34b 0000 0000 0000 0000 9332 b1d5 0000 0003 +00 02 0 0 0 0 19 +-1 + +ddcb00 +3c65 f0e4 09d1 646b 0000 0000 0000 0000 1da1 f08f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0d 00 -1 +1dae a1 -1 +-1 +-1 +3c01 43e4 09d1 646b 0000 0000 0000 0000 1da1 f08f 0000 0004 +00 02 0 0 0 0 23 +1dae 43 -1 +-1 + +ddcb01 +f68f e33b 2d4a 7725 0000 0000 0000 0000 28fd f31b 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b7 01 -1 +28b4 e3 -1 +-1 +-1 +f681 e3c7 2d4a 7725 0000 0000 0000 0000 28fd f31b 0000 0004 +00 02 0 0 0 0 23 +28b4 c7 -1 +-1 + +ddcb02 +e20c 836e 513a f840 0000 0000 0000 0000 c796 ae9b 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 91 02 -1 +c727 8d -1 +-1 +-1 +e20d 836e 1b3a f840 0000 0000 0000 0000 c796 ae9b 0000 0004 +00 02 0 0 0 0 23 +c727 1b -1 +-1 + +ddcb03 +6224 3571 c519 48dc 0000 0000 0000 0000 041e c07b 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 48 03 -1 +0466 78 -1 +-1 +-1 +62a4 3571 c5f0 48dc 0000 0000 0000 0000 041e c07b 0000 0004 +00 02 0 0 0 0 23 +0466 f0 -1 +-1 + +ddcb04 +b310 bfc4 64af d622 0000 0000 0000 0000 5949 a989 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 48 04 -1 +5991 68 -1 +-1 +-1 +b380 bfc4 64af d022 0000 0000 0000 0000 5949 a989 0000 0004 +00 02 0 0 0 0 23 +5991 d0 -1 +-1 + +ddcb05 +4954 bb04 56ec 9d58 0000 0000 0000 0000 0077 1349 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ff 05 -1 +0076 95 -1 +-1 +-1 +492d bb04 56ec 9d2b 0000 0000 0000 0000 0077 1349 0000 0004 +00 02 0 0 0 0 23 +0076 2b -1 +-1 + +ddcb06 +0cf4 f636 90a6 6117 0000 0000 0000 0000 5421 90ee 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 07 06 -1 +5428 97 -1 +-1 +-1 +0c29 f636 90a6 6117 0000 0000 0000 0000 5421 90ee 0000 0004 +00 02 0 0 0 0 23 +5428 2f -1 +-1 + +ddcb07 +6f4d 9ca3 bdf6 ed50 0000 0000 0000 0000 9803 55f9 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 42 07 -1 +9845 ae -1 +-1 +-1 +5d09 9ca3 bdf6 ed50 0000 0000 0000 0000 9803 55f9 0000 0004 +00 02 0 0 0 0 23 +9845 5d -1 +-1 + +ddcb08 +02f4 1c66 6023 ae06 0000 0000 0000 0000 ef40 b006 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0a 08 -1 +ef4a da -1 +-1 +-1 +0228 6d66 6023 ae06 0000 0000 0000 0000 ef40 b006 0000 0004 +00 02 0 0 0 0 23 +ef4a 6d -1 +-1 + +ddcb09 +9825 9258 54d5 5e1e 0000 0000 0000 0000 9d0b 6e58 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 3b 09 -1 +9d46 6f -1 +-1 +-1 +98a5 92b7 54d5 5e1e 0000 0000 0000 0000 9d0b 6e58 0000 0004 +00 02 0 0 0 0 23 +9d46 b7 -1 +-1 + +ddcb0a +d2dd 6aac e789 9293 0000 0000 0000 0000 1fb4 2498 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 83 0a -1 +1f37 78 -1 +-1 +-1 +d22c 6aac 3c89 9293 0000 0000 0000 0000 1fb4 2498 0000 0004 +00 02 0 0 0 0 23 +1f37 3c -1 +-1 + +ddcb0b +b82c b284 23f8 7e7d 0000 0000 0000 0000 cd09 6a03 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb fa 0b -1 +cd03 92 -1 +-1 +-1 +b808 b284 2349 7e7d 0000 0000 0000 0000 cd09 6a03 0000 0004 +00 02 0 0 0 0 23 +cd03 49 -1 +-1 + +ddcb0c +df8b b6cc ee8d 855a 0000 0000 0000 0000 bf6b 9b7d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 79 0c -1 +bfe4 0d -1 +-1 +-1 +df81 b6cc ee8d 865a 0000 0000 0000 0000 bf6b 9b7d 0000 0004 +00 02 0 0 0 0 23 +bfe4 86 -1 +-1 + +ddcb0d +bae3 ceec bbaa b65e 0000 0000 0000 0000 88bd 503e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e4 0d -1 +88a1 1f -1 +-1 +-1 +ba89 ceec bbaa b68f 0000 0000 0000 0000 88bd 503e 0000 0004 +00 02 0 0 0 0 23 +88a1 8f -1 +-1 + +ddcb0e +1c36 890b 7830 060c 0000 0000 0000 0000 fd49 5d07 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c6 0e -1 +fd0f ad -1 +-1 +-1 +1c81 890b 7830 060c 0000 0000 0000 0000 fd49 5d07 0000 0004 +00 02 0 0 0 0 23 +fd0f d6 -1 +-1 + +ddcb0f +f5a7 fad4 fa4b 9c53 0000 0000 0000 0000 7447 2267 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 57 0f -1 +749e f8 -1 +-1 +-1 +7c28 fad4 fa4b 9c53 0000 0000 0000 0000 7447 2267 0000 0004 +00 02 0 0 0 0 23 +749e 7c -1 +-1 + +ddcb10 +f3af ba1f 5387 926e 0000 0000 0000 0000 bba2 ca47 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 4f 10 -1 +bbf1 45 -1 +-1 +-1 +f38c 8b1f 5387 926e 0000 0000 0000 0000 bba2 ca47 0000 0004 +00 02 0 0 0 0 23 +bbf1 8b -1 +-1 + +ddcb11 +2a69 d604 a9aa 5b52 0000 0000 0000 0000 1809 d275 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb eb 11 -1 +17f4 d9 -1 +-1 +-1 +2aa1 d6b3 a9aa 5b52 0000 0000 0000 0000 1809 d275 0000 0004 +00 02 0 0 0 0 23 +17f4 b3 -1 +-1 + +ddcb12 +9287 c479 26d1 10ce 0000 0000 0000 0000 c0fb 2777 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb a6 12 -1 +c0a1 e2 -1 +-1 +-1 +9285 c479 c5d1 10ce 0000 0000 0000 0000 c0fb 2777 0000 0004 +00 02 0 0 0 0 23 +c0a1 c5 -1 +-1 + +ddcb13 +a507 580a a48f 11cd 0000 0000 0000 0000 5ac4 ccc7 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ff 13 -1 +5ac3 a7 -1 +-1 +-1 +a509 580a a44f 11cd 0000 0000 0000 0000 5ac4 ccc7 0000 0004 +00 02 0 0 0 0 23 +5ac3 4f -1 +-1 + +ddcb14 +294b 5b89 8467 0430 0000 0000 0000 0000 0977 c4e8 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb dd 14 -1 +0954 85 -1 +-1 +-1 +2909 5b89 8467 0b30 0000 0000 0000 0000 0977 c4e8 0000 0004 +00 02 0 0 0 0 23 +0954 0b -1 +-1 + +ddcb15 +1fd1 6d53 5b7c a134 0000 0000 0000 0000 ede9 a85c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 07 15 -1 +edf0 0e -1 +-1 +-1 +1f0c 6d53 5b7c a11d 0000 0000 0000 0000 ede9 a85c 0000 0004 +00 02 0 0 0 0 23 +edf0 1d -1 +-1 + +ddcb16 +da70 a1e4 00b0 92c8 0000 0000 0000 0000 16be 2c95 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 45 16 -1 +1703 5b -1 +-1 +-1 +daa0 a1e4 00b0 92c8 0000 0000 0000 0000 16be 2c95 0000 0004 +00 02 0 0 0 0 23 +1703 b6 -1 +-1 + +ddcb17 +3300 cbd1 4e1a cd27 0000 0000 0000 0000 b8c9 e6d4 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 1c 17 -1 +b8e5 7e -1 +-1 +-1 +fcac cbd1 4e1a cd27 0000 0000 0000 0000 b8c9 e6d4 0000 0004 +00 02 0 0 0 0 23 +b8e5 fc -1 +-1 + +ddcb18 +d980 4eb5 9cf9 b9f1 0000 0000 0000 0000 a189 bd7c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0e 18 -1 +a197 90 -1 +-1 +-1 +d90c 48b5 9cf9 b9f1 0000 0000 0000 0000 a189 bd7c 0000 0004 +00 02 0 0 0 0 23 +a197 48 -1 +-1 + +ddcb19 +23b7 595a a756 cf2e 0000 0000 0000 0000 f0e7 26e4 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb a3 19 -1 +f08a 37 -1 +-1 +-1 +2389 599b a756 cf2e 0000 0000 0000 0000 f0e7 26e4 0000 0004 +00 02 0 0 0 0 23 +f08a 9b -1 +-1 + +ddcb1a +8b52 7e45 bd0f 37a6 0000 0000 0000 0000 de61 9cd9 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ac 1a -1 +de0d cc -1 +-1 +-1 +8b24 7e45 660f 37a6 0000 0000 0000 0000 de61 9cd9 0000 0004 +00 02 0 0 0 0 23 +de0d 66 -1 +-1 + +ddcb1b +5c79 1414 811c 5881 0000 0000 0000 0000 b7c3 d14f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 05 1b -1 +b7c8 91 -1 +-1 +-1 +5c89 1414 81c8 5881 0000 0000 0000 0000 b7c3 d14f 0000 0004 +00 02 0 0 0 0 23 +b7c8 c8 -1 +-1 + +ddcb1c +fafc 6277 8b67 d423 0000 0000 0000 0000 fef9 4a66 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ff 1c -1 +fef8 61 -1 +-1 +-1 +fa25 6277 8b67 3023 0000 0000 0000 0000 fef9 4a66 0000 0004 +00 02 0 0 0 0 23 +fef8 30 -1 +-1 + +ddcb1d +76a5 324e e641 58f9 0000 0000 0000 0000 5b63 e18b 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 3a 1d -1 +5b9d f3 -1 +-1 +-1 +76ad 324e e641 58f9 0000 0000 0000 0000 5b63 e18b 0000 0004 +00 02 0 0 0 0 23 +5b9d f9 -1 +-1 + +ddcb1e +c5d9 cd58 8967 f074 0000 0000 0000 0000 75b4 693a 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ce 1e -1 +7582 91 -1 +-1 +-1 +c589 cd58 8967 f074 0000 0000 0000 0000 75b4 693a 0000 0004 +00 02 0 0 0 0 23 +7582 c8 -1 +-1 + +ddcb1f +d28f 7f6d 2058 63e3 0000 0000 0000 0000 1d9b baba 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb a8 1f -1 +1d43 b4 -1 +-1 +-1 +da88 7f6d 2058 63e3 0000 0000 0000 0000 1d9b baba 0000 0004 +00 02 0 0 0 0 23 +1d43 da -1 +-1 + +ddcb20 +4ce5 739e dc6c 18f4 0000 0000 0000 0000 dc39 8b0c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e8 20 -1 +dc21 0e -1 +-1 +-1 +4c08 1c9e dc6c 18f4 0000 0000 0000 0000 dc39 8b0c 0000 0004 +00 02 0 0 0 0 23 +dc21 1c -1 +-1 + +ddcb21 +d29d 66dd 23ef 9096 0000 0000 0000 0000 3494 b6c3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9e 21 -1 +3432 f7 -1 +-1 +-1 +d2ad 66ee 23ef 9096 0000 0000 0000 0000 3494 b6c3 0000 0004 +00 02 0 0 0 0 23 +3432 ee -1 +-1 + +ddcb22 +fb5d e0d0 7c02 b4b7 0000 0000 0000 0000 bd3f 385b 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 43 22 -1 +bd82 9f -1 +-1 +-1 +fb29 e0d0 3e02 b4b7 0000 0000 0000 0000 bd3f 385b 0000 0004 +00 02 0 0 0 0 23 +bd82 3e -1 +-1 + +ddcb23 +c359 68b6 da84 b990 0000 0000 0000 0000 22dd bd27 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c1 23 -1 +229e e0 -1 +-1 +-1 +c385 68b6 dac0 b990 0000 0000 0000 0000 22dd bd27 0000 0004 +00 02 0 0 0 0 23 +229e c0 -1 +-1 + +ddcb24 +baf5 7b0b 560b 7c33 0000 0000 0000 0000 31f1 ddbd 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e8 24 -1 +31d9 c3 -1 +-1 +-1 +ba81 7b0b 560b 8633 0000 0000 0000 0000 31f1 ddbd 0000 0004 +00 02 0 0 0 0 23 +31d9 86 -1 +-1 + +ddcb25 +43bb a21b 2347 ae4a 0000 0000 0000 0000 cc63 fc94 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c1 25 -1 +cc24 eb -1 +-1 +-1 +4381 a21b 2347 aed6 0000 0000 0000 0000 cc63 fc94 0000 0004 +00 02 0 0 0 0 23 +cc24 d6 -1 +-1 + +ddcb26 +2065 ff37 e41f 70e7 0000 0000 0000 0000 6528 a0d5 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f7 26 -1 +651f 89 -1 +-1 +-1 +2005 ff37 e41f 70e7 0000 0000 0000 0000 6528 a0d5 0000 0004 +00 02 0 0 0 0 23 +651f 12 -1 +-1 + +ddcb27 +a806 5669 1bee f62c 0000 0000 0000 0000 1f69 3418 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c3 27 -1 +1f2c ac -1 +-1 +-1 +5809 5669 1bee f62c 0000 0000 0000 0000 1f69 3418 0000 0004 +00 02 0 0 0 0 23 +1f2c 58 -1 +-1 + +ddcb28 +7afd 64b8 51f7 7164 0000 0000 0000 0000 999b 8857 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b6 28 -1 +9951 24 -1 +-1 +-1 +7a04 12b8 51f7 7164 0000 0000 0000 0000 999b 8857 0000 0004 +00 02 0 0 0 0 23 +9951 12 -1 +-1 + +ddcb29 +0404 b794 323f fd34 0000 0000 0000 0000 20e7 c753 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9c 29 -1 +2083 82 -1 +-1 +-1 +0480 b7c1 323f fd34 0000 0000 0000 0000 20e7 c753 0000 0004 +00 02 0 0 0 0 23 +2083 c1 -1 +-1 + +ddcb2a +4524 afde 0c08 75d7 0000 0000 0000 0000 9505 b624 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d8 2a -1 +94dd 7c -1 +-1 +-1 +4528 afde 3e08 75d7 0000 0000 0000 0000 9505 b624 0000 0004 +00 02 0 0 0 0 23 +94dd 3e -1 +-1 + +ddcb2b +8324 e290 26be 7ddd 0000 0000 0000 0000 b484 571c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb bd 2b -1 +b441 44 -1 +-1 +-1 +8324 e290 2622 7ddd 0000 0000 0000 0000 b484 571c 0000 0004 +00 02 0 0 0 0 23 +b441 22 -1 +-1 + +ddcb2c +c688 0c94 6e4b 7dc7 0000 0000 0000 0000 fe28 dc80 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 2c 2c -1 +fe54 81 -1 +-1 +-1 +c685 0c94 6e4b c0c7 0000 0000 0000 0000 fe28 dc80 0000 0004 +00 02 0 0 0 0 23 +fe54 c0 -1 +-1 + +ddcb2d +ce28 d2ae c9be 4236 0000 0000 0000 0000 b4ed 6de3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9b 2d -1 +b488 44 -1 +-1 +-1 +ce24 d2ae c9be 4222 0000 0000 0000 0000 b4ed 6de3 0000 0004 +00 02 0 0 0 0 23 +b488 22 -1 +-1 + +ddcb2e +50b0 de74 eca8 83ff 0000 0000 0000 0000 69d8 75c7 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 3d 2e -1 +6a15 05 -1 +-1 +-1 +5001 de74 eca8 83ff 0000 0000 0000 0000 69d8 75c7 0000 0004 +00 02 0 0 0 0 23 +6a15 02 -1 +-1 + +ddcb2f +aec6 759b 3059 01b9 0000 0000 0000 0000 7a30 dd56 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d3 2f -1 +7a03 f2 -1 +-1 +-1 +f9ac 759b 3059 01b9 0000 0000 0000 0000 7a30 dd56 0000 0004 +00 02 0 0 0 0 23 +7a03 f9 -1 +-1 + +ddcb30 +3c89 96ad 9cc7 a68c 0000 0000 0000 0000 eee8 5a80 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb df 30 -1 +eec7 32 -1 +-1 +-1 +3c24 65ad 9cc7 a68c 0000 0000 0000 0000 eee8 5a80 0000 0004 +00 02 0 0 0 0 23 +eec7 65 -1 +-1 + +ddcb31 +ebf5 41e9 929b 7d47 0000 0000 0000 0000 f22d 8943 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 49 31 -1 +f276 cd -1 +-1 +-1 +eb89 419b 929b 7d47 0000 0000 0000 0000 f22d 8943 0000 0004 +00 02 0 0 0 0 23 +f276 9b -1 +-1 + +ddcb32 +9a1b aa64 4209 01ad 0000 0000 0000 0000 579f ec4c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e0 32 -1 +577f e2 -1 +-1 +-1 +9a85 aa64 c509 01ad 0000 0000 0000 0000 579f ec4c 0000 0004 +00 02 0 0 0 0 23 +577f c5 -1 +-1 + +ddcb33 +b8b1 b854 524f 9599 0000 0000 0000 0000 efac d9ec 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c9 33 -1 +ef75 0b -1 +-1 +-1 +b804 b854 5217 9599 0000 0000 0000 0000 efac d9ec 0000 0004 +00 02 0 0 0 0 23 +ef75 17 -1 +-1 + +ddcb34 +cd3c 4432 20d4 0b3e 0000 0000 0000 0000 ab48 c95f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 49 34 -1 +ab91 ef -1 +-1 +-1 +cd89 4432 20d4 df3e 0000 0000 0000 0000 ab48 c95f 0000 0004 +00 02 0 0 0 0 23 +ab91 df -1 +-1 + +ddcb35 +deb1 c6fc 696d 150d 0000 0000 0000 0000 eb1a 4a12 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b9 35 -1 +ead3 8f -1 +-1 +-1 +de09 c6fc 696d 151f 0000 0000 0000 0000 eb1a 4a12 0000 0004 +00 02 0 0 0 0 23 +ead3 1f -1 +-1 + +ddcb36 +3d81 443b ff21 63e3 0000 0000 0000 0000 132e fb39 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b4 36 -1 +12e2 02 -1 +-1 +-1 +3d04 443b ff21 63e3 0000 0000 0000 0000 132e fb39 0000 0004 +00 02 0 0 0 0 23 +12e2 05 -1 +-1 + +ddcb37 +72d9 bfc9 a69a ec0b 0000 0000 0000 0000 5077 4e3e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c6 37 -1 +503d 3d -1 +-1 +-1 +7b2c bfc9 a69a ec0b 0000 0000 0000 0000 5077 4e3e 0000 0004 +00 02 0 0 0 0 23 +503d 7b -1 +-1 + +ddcb38 +3c64 b1ee 38e1 ae9f 0000 0000 0000 0000 f695 44b3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 8e 38 -1 +f623 5e -1 +-1 +-1 +3c28 2fee 38e1 ae9f 0000 0000 0000 0000 f695 44b3 0000 0004 +00 02 0 0 0 0 23 +f623 2f -1 +-1 + +ddcb39 +05d6 9aad a2db df75 0000 0000 0000 0000 a895 e243 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb dc 39 -1 +a871 83 -1 +-1 +-1 +0505 9a41 a2db df75 0000 0000 0000 0000 a895 e243 0000 0004 +00 02 0 0 0 0 23 +a871 41 -1 +-1 + +ddcb3a +0e22 0b9f 873b c01d 0000 0000 0000 0000 2591 49c3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0d 3a -1 +259e 89 -1 +-1 +-1 +0e05 0b9f 443b c01d 0000 0000 0000 0000 2591 49c3 0000 0004 +00 02 0 0 0 0 23 +259e 44 -1 +-1 + +ddcb3b +1bd9 c795 d8ae 7ccf 0000 0000 0000 0000 6fed 09dc 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 20 3b -1 +700d a9 -1 +-1 +-1 +1b01 c795 d854 7ccf 0000 0000 0000 0000 6fed 09dc 0000 0004 +00 02 0 0 0 0 23 +700d 54 -1 +-1 + +ddcb3c +b651 bdf7 fca3 7529 0000 0000 0000 0000 f53b 018b 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e1 3c -1 +f51c d0 -1 +-1 +-1 +b628 bdf7 fca3 6829 0000 0000 0000 0000 f53b 018b 0000 0004 +00 02 0 0 0 0 23 +f51c 68 -1 +-1 + +ddcb3d +2a2d 6e6e cfbd 1db5 0000 0000 0000 0000 0320 6ab0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb be 3d -1 +02de 58 -1 +-1 +-1 +2a28 6e6e cfbd 1d2c 0000 0000 0000 0000 0320 6ab0 0000 0004 +00 02 0 0 0 0 23 +02de 2c -1 +-1 + +ddcb3e +39b8 b26e b670 b8a2 0000 0000 0000 0000 784a 7840 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0a 3e -1 +7854 5d -1 +-1 +-1 +392d b26e b670 b8a2 0000 0000 0000 0000 784a 7840 0000 0004 +00 02 0 0 0 0 23 +7854 2e -1 +-1 + +ddcb3f +2a17 429d d8c0 e069 0000 0000 0000 0000 3488 7150 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 31 3f -1 +34b9 04 -1 +-1 +-1 +0200 429d d8c0 e069 0000 0000 0000 0000 3488 7150 0000 0004 +00 02 0 0 0 0 23 +34b9 02 -1 +-1 + +ddcb40 +119b f6ba 079e 0e41 0000 0000 0000 0000 8c01 cd21 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb bd 40 -1 +8bbe e7 -1 +-1 +-1 +1119 f6ba 079e 0e41 0000 0000 0000 0000 8c01 cd21 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb41 +22b3 c4b0 575b 66b4 0000 0000 0000 0000 cdcf a25c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 52 41 -1 +ce21 75 -1 +-1 +-1 +2219 c4b0 575b 66b4 0000 0000 0000 0000 cdcf a25c 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb42 +af5e 7720 aa95 3b0a 0000 0000 0000 0000 f03a 856a 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 1e 42 -1 +f058 90 -1 +-1 +-1 +af74 7720 aa95 3b0a 0000 0000 0000 0000 f03a 856a 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb43 +7fa6 b699 5e71 1827 0000 0000 0000 0000 e8b6 96a8 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb bc 43 -1 +e872 6b -1 +-1 +-1 +7f38 b699 5e71 1827 0000 0000 0000 0000 e8b6 96a8 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb44 +5faa de05 12fd f73b 0000 0000 0000 0000 ee0a 6634 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e8 44 -1 +edf2 62 -1 +-1 +-1 +5f7c de05 12fd f73b 0000 0000 0000 0000 ee0a 6634 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb45 +eac7 699c 47d3 89c3 0000 0000 0000 0000 a2be d81e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 02 45 -1 +a2c0 55 -1 +-1 +-1 +ea31 699c 47d3 89c3 0000 0000 0000 0000 a2be d81e 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb46 +60de ac1d 4173 f92a 0000 0000 0000 0000 a39f 12e5 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e2 46 -1 +a381 d5 -1 +-1 +-1 +6030 ac1d 4173 f92a 0000 0000 0000 0000 a39f 12e5 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb47 +1b1a f7c0 22f6 5253 0000 0000 0000 0000 5227 919d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 7a 47 -1 +52a1 6a -1 +-1 +-1 +1b54 f7c0 22f6 5253 0000 0000 0000 0000 5227 919d 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb48 +721a 4509 d68f 3b3d 0000 0000 0000 0000 2746 7f97 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 13 48 -1 +2759 a8 -1 +-1 +-1 +7274 4509 d68f 3b3d 0000 0000 0000 0000 2746 7f97 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb49 +7fe9 da22 ea9c f480 0000 0000 0000 0000 41c6 75a9 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 94 49 -1 +415a 26 -1 +-1 +-1 +7f11 da22 ea9c f480 0000 0000 0000 0000 41c6 75a9 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb4a +f16d e6c3 5a42 8b21 0000 0000 0000 0000 bfeb e383 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 3b 4a -1 +c026 b5 -1 +-1 +-1 +f155 e6c3 5a42 8b21 0000 0000 0000 0000 bfeb e383 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb4b +1050 880a 52b2 fb1b 0000 0000 0000 0000 c239 6b40 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b0 4b -1 +c1e9 18 -1 +-1 +-1 +1054 880a 52b2 fb1b 0000 0000 0000 0000 c239 6b40 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb4c +0538 bc63 f081 0a55 0000 0000 0000 0000 874c 80a3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 97 4c -1 +86e3 63 -1 +-1 +-1 +0510 bc63 f081 0a55 0000 0000 0000 0000 874c 80a3 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb4d +7f8c 32b4 03d5 ef66 0000 0000 0000 0000 7d2a 03bc 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 15 4d -1 +7d3f 60 -1 +-1 +-1 +7f7c 32b4 03d5 ef66 0000 0000 0000 0000 7d2a 03bc 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb4e +7c67 fa92 b4d0 9f23 0000 0000 0000 0000 eade 1785 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b0 4e -1 +ea8e 3b -1 +-1 +-1 +7c39 fa92 b4d0 9f23 0000 0000 0000 0000 eade 1785 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb4f +725c 257b db73 2478 0000 0000 0000 0000 88c0 f151 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 8b 4f -1 +884b 4c -1 +-1 +-1 +725c 257b db73 2478 0000 0000 0000 0000 88c0 f151 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb50 +35f4 8e51 406c 2e3c 0000 0000 0000 0000 daf2 413c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 12 50 -1 +db04 00 -1 +-1 +-1 +355c 8e51 406c 2e3c 0000 0000 0000 0000 daf2 413c 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb51 +a630 ba85 c88c e86c 0000 0000 0000 0000 84b2 cd8e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 18 51 -1 +84ca 1c -1 +-1 +-1 +a610 ba85 c88c e86c 0000 0000 0000 0000 84b2 cd8e 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb52 +cb88 1220 1103 a868 0000 0000 0000 0000 6156 cfac 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 42 52 -1 +6198 53 -1 +-1 +-1 +cb74 1220 1103 a868 0000 0000 0000 0000 6156 cfac 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb53 +5eb3 569e f76d 88c6 0000 0000 0000 0000 ae45 623e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e3 53 -1 +ae28 d6 -1 +-1 +-1 +5e39 569e f76d 88c6 0000 0000 0000 0000 ae45 623e 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb54 +c3c9 76fe f1ff 416e 0000 0000 0000 0000 efd5 7576 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 7d 54 -1 +f052 5d -1 +-1 +-1 +c331 76fe f1ff 416e 0000 0000 0000 0000 efd5 7576 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb55 +7068 dcd0 8345 d498 0000 0000 0000 0000 f352 a88b 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 88 55 -1 +f2da 03 -1 +-1 +-1 +7074 dcd0 8345 d498 0000 0000 0000 0000 f352 a88b 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb56 +9128 2cb8 571c f4fd 0000 0000 0000 0000 6d30 aec2 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 57 56 -1 +6d87 61 -1 +-1 +-1 +917c 2cb8 571c f4fd 0000 0000 0000 0000 6d30 aec2 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb57 +3ca7 541a 027c c0b4 0000 0000 0000 0000 5833 160a 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 06 57 -1 +5839 1d -1 +-1 +-1 +3c19 541a 027c c0b4 0000 0000 0000 0000 5833 160a 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb58 +c650 e1a8 9d6c bec3 0000 0000 0000 0000 6a46 b66c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 83 58 -1 +69c9 0f -1 +-1 +-1 +c638 e1a8 9d6c bec3 0000 0000 0000 0000 6a46 b66c 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb59 +ad07 9bda b7ee 63c4 0000 0000 0000 0000 9195 9703 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb db 59 -1 +9170 10 -1 +-1 +-1 +ad55 9bda b7ee 63c4 0000 0000 0000 0000 9195 9703 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb5a +80c0 5105 36b0 a37c 0000 0000 0000 0000 0de0 ce7f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d1 5a -1 +0db1 be -1 +-1 +-1 +8018 5105 36b0 a37c 0000 0000 0000 0000 0de0 ce7f 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb5b +2a8d 083d 1409 06ba 0000 0000 0000 0000 62ad baff 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d5 5b -1 +6282 67 -1 +-1 +-1 +2a75 083d 1409 06ba 0000 0000 0000 0000 62ad baff 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb5c +4ca4 e502 d23c 6da8 0000 0000 0000 0000 9dc6 6f04 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 5c 5c -1 +9e22 c9 -1 +-1 +-1 +4c18 e502 d23c 6da8 0000 0000 0000 0000 9dc6 6f04 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb5d +7e39 511b 3cfa 60d3 0000 0000 0000 0000 d193 3fe9 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ff 5d -1 +d192 0d -1 +-1 +-1 +7e11 511b 3cfa 60d3 0000 0000 0000 0000 d193 3fe9 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb5e +cef1 0235 e2b1 7a4c 0000 0000 0000 0000 ed14 d0d6 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 62 5e -1 +ed76 a7 -1 +-1 +-1 +ce7d 0235 e2b1 7a4c 0000 0000 0000 0000 ed14 d0d6 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb5f +094f 20a8 52e1 d783 0000 0000 0000 0000 df46 da41 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 3f 5f -1 +df85 9e -1 +-1 +-1 +0919 20a8 52e1 d783 0000 0000 0000 0000 df46 da41 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb60 +42ce 0713 dc90 2c89 0000 0000 0000 0000 32a2 c4d4 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 65 60 -1 +3307 2e -1 +-1 +-1 +4274 0713 dc90 2c89 0000 0000 0000 0000 32a2 c4d4 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb61 +1b36 1403 8b9b c221 0000 0000 0000 0000 36cb 93d4 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb a8 61 -1 +3673 bc -1 +-1 +-1 +1b30 1403 8b9b c221 0000 0000 0000 0000 36cb 93d4 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb62 +361b 4055 650a 3f98 0000 0000 0000 0000 0acc a102 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d9 62 -1 +0aa5 ea -1 +-1 +-1 +365d 4055 650a 3f98 0000 0000 0000 0000 0acc a102 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb63 +6548 08df 3ceb 6d24 0000 0000 0000 0000 e679 f98e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 79 63 -1 +e6f2 83 -1 +-1 +-1 +6574 08df 3ceb 6d24 0000 0000 0000 0000 e679 f98e 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb64 +3c22 e2a7 6da9 c346 0000 0000 0000 0000 ecfb 85b6 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 71 64 -1 +ed6c 52 -1 +-1 +-1 +3c38 e2a7 6da9 c346 0000 0000 0000 0000 ecfb 85b6 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb65 +09bd 0abb 3afa 91f5 0000 0000 0000 0000 7779 aef5 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 67 65 -1 +77e0 f5 -1 +-1 +-1 +0931 0abb 3afa 91f5 0000 0000 0000 0000 7779 aef5 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb66 +ccbc d301 9b66 40fb 0000 0000 0000 0000 ee15 0d23 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 63 66 -1 +ee78 70 -1 +-1 +-1 +cc38 d301 9b66 40fb 0000 0000 0000 0000 ee15 0d23 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb67 +eccb 342f be3e a79b 0000 0000 0000 0000 eea1 dfae 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d7 67 -1 +ee78 06 -1 +-1 +-1 +ec7d 342f be3e a79b 0000 0000 0000 0000 eea1 dfae 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb68 +8e51 0063 49ad b7d4 0000 0000 0000 0000 e968 864e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b1 68 -1 +e919 20 -1 +-1 +-1 +8e39 0063 49ad b7d4 0000 0000 0000 0000 e968 864e 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb69 +9f11 42b5 74fe 1116 0000 0000 0000 0000 33f4 46c2 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e8 69 -1 +33dc 4f -1 +-1 +-1 +9f75 42b5 74fe 1116 0000 0000 0000 0000 33f4 46c2 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb6a +4632 0bd8 0018 1ac3 0000 0000 0000 0000 86b6 1dd2 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 33 6a -1 +86e9 1c -1 +-1 +-1 +4654 0bd8 0018 1ac3 0000 0000 0000 0000 86b6 1dd2 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb6b +7a76 f79f a78e f867 0000 0000 0000 0000 187b 0023 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 11 6b -1 +188c bc -1 +-1 +-1 +7a18 f79f a78e f867 0000 0000 0000 0000 187b 0023 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb6c +dd91 1f1e c1e1 0ea7 0000 0000 0000 0000 3e21 f544 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 5e 6c -1 +3e7f 2a -1 +-1 +-1 +dd39 1f1e c1e1 0ea7 0000 0000 0000 0000 3e21 f544 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb6d +debf 9ae4 fd24 b3c2 0000 0000 0000 0000 e314 ad84 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb dd 6d -1 +e2f1 41 -1 +-1 +-1 +de75 9ae4 fd24 b3c2 0000 0000 0000 0000 e314 ad84 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb6e +ca75 9f16 c700 1dce 0000 0000 0000 0000 3086 d68e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b2 6e -1 +3038 3f -1 +-1 +-1 +ca31 9f16 c700 1dce 0000 0000 0000 0000 3086 d68e 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb6f +d4cd 0b39 3e2e c06e 0000 0000 0000 0000 fc1b d592 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb be 6f -1 +fbd9 56 -1 +-1 +-1 +d47d 0b39 3e2e c06e 0000 0000 0000 0000 fc1b d592 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb70 +f901 09b8 43f8 2a76 0000 0000 0000 0000 042c 7f2d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b5 70 -1 +03e1 74 -1 +-1 +-1 +f911 09b8 43f8 2a76 0000 0000 0000 0000 042c 7f2d 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb71 +ac78 36ad 34cb f950 0000 0000 0000 0000 1b33 aa23 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f7 71 -1 +1b2a 08 -1 +-1 +-1 +ac5c 36ad 34cb f950 0000 0000 0000 0000 1b33 aa23 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb72 +b1b3 f1e4 9984 c7fb 0000 0000 0000 0000 ce25 c5b6 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 22 72 -1 +ce47 08 -1 +-1 +-1 +b15d f1e4 9984 c7fb 0000 0000 0000 0000 ce25 c5b6 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb73 +21ba 592d f406 e21f 0000 0000 0000 0000 6442 cf58 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 12 73 -1 +6454 3c -1 +-1 +-1 +2174 592d f406 e21f 0000 0000 0000 0000 6442 cf58 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb74 +6642 64c1 dbe5 eb48 0000 0000 0000 0000 7dc1 c1fb 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 08 74 -1 +7dc9 be -1 +-1 +-1 +667c 64c1 dbe5 eb48 0000 0000 0000 0000 7dc1 c1fb 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb75 +8778 580e 00dd f4c6 0000 0000 0000 0000 60ad 9b60 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 5b 75 -1 +6108 cf -1 +-1 +-1 +8730 580e 00dd f4c6 0000 0000 0000 0000 60ad 9b60 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb76 +65b8 5cc2 3058 e258 0000 0000 0000 0000 7e8a b296 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 73 76 -1 +7efd 1e -1 +-1 +-1 +657c 5cc2 3058 e258 0000 0000 0000 0000 7e8a b296 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb77 +e3a8 47a0 c510 cf0a 0000 0000 0000 0000 0537 b242 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 7f 77 -1 +05b6 97 -1 +-1 +-1 +e354 47a0 c510 cf0a 0000 0000 0000 0000 0537 b242 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb78 +424f 24f6 1632 8a4f 0000 0000 0000 0000 9397 846c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 70 78 -1 +9407 76 -1 +-1 +-1 +4255 24f6 1632 8a4f 0000 0000 0000 0000 9397 846c 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb79 +e6a0 eeaa 41f7 5da2 0000 0000 0000 0000 41de 4189 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c3 79 -1 +41a1 b8 -1 +-1 +-1 +e690 eeaa 41f7 5da2 0000 0000 0000 0000 41de 4189 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb7a +cabf 56aa 6a06 6cd7 0000 0000 0000 0000 0aa9 9812 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 3f 7a -1 +0ae8 eb -1 +-1 +-1 +ca99 56aa 6a06 6cd7 0000 0000 0000 0000 0aa9 9812 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb7b +ae3f 0227 721f 52a1 0000 0000 0000 0000 5040 b98a 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 88 7b -1 +4fc8 22 -1 +-1 +-1 +ae5d 0227 721f 52a1 0000 0000 0000 0000 5040 b98a 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb7c +8a80 a2f1 239a d5cc 0000 0000 0000 0000 6883 b050 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9e 7c -1 +6821 3a -1 +-1 +-1 +8a7c a2f1 239a d5cc 0000 0000 0000 0000 6883 b050 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb7d +c37f cf33 1010 98e6 0000 0000 0000 0000 b021 0356 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 29 7d -1 +b04a 2c -1 +-1 +-1 +c375 cf33 1010 98e6 0000 0000 0000 0000 b021 0356 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb7e +9a25 2f6e 0d0d a83f 0000 0000 0000 0000 cef0 8c15 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 4f 7e -1 +cf3f f2 -1 +-1 +-1 +9a99 2f6e 0d0d a83f 0000 0000 0000 0000 cef0 8c15 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb7f +53b9 1f4e 4837 21b6 0000 0000 0000 0000 5ec2 80c3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 75 7f -1 +5f37 a2 -1 +-1 +-1 +5399 1f4e 4837 21b6 0000 0000 0000 0000 5ec2 80c3 0000 0004 +00 02 0 0 0 0 20 +-1 + +ddcb80 +6319 baf9 c84b bcf2 0000 0000 0000 0000 acc5 a4ed 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 70 80 -1 +ad35 30 -1 +-1 +-1 +6319 30f9 c84b bcf2 0000 0000 0000 0000 acc5 a4ed 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcb81 +fae1 5ae5 9502 dc9b 0000 0000 0000 0000 bdd3 1a52 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 2a 81 -1 +bdfd 24 -1 +-1 +-1 +fae1 5a24 9502 dc9b 0000 0000 0000 0000 bdd3 1a52 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcb82 +daf6 3260 f1ac 1d47 0000 0000 0000 0000 5e74 35e2 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9a 82 -1 +5e0e 51 -1 +-1 +-1 +daf6 3260 50ac 1d47 0000 0000 0000 0000 5e74 35e2 0000 0004 +00 02 0 0 0 0 23 +5e0e 50 -1 +-1 + +ddcb83 +8e7c 5586 8c92 fb00 0000 0000 0000 0000 3441 d365 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0e 83 -1 +344f 01 -1 +-1 +-1 +8e7c 5586 8c00 fb00 0000 0000 0000 0000 3441 d365 0000 0004 +00 02 0 0 0 0 23 +344f 00 -1 +-1 + +ddcb84 +c1b3 4874 c535 0e1c 0000 0000 0000 0000 0123 dd28 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 47 84 -1 +016a b0 -1 +-1 +-1 +c1b3 4874 c535 b01c 0000 0000 0000 0000 0123 dd28 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcb85 +0928 b0db 4e07 a7b7 0000 0000 0000 0000 0ba3 c61c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 6c 85 -1 +0c0f de -1 +-1 +-1 +0928 b0db 4e07 a7de 0000 0000 0000 0000 0ba3 c61c 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcb86 +4515 de09 3ce7 1fde 0000 0000 0000 0000 10c5 33ed 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 5c 86 -1 +1121 7c -1 +-1 +-1 +4515 de09 3ce7 1fde 0000 0000 0000 0000 10c5 33ed 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcb87 +d05e a733 d1dd 1603 0000 0000 0000 0000 ede6 e5fb 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 02 87 -1 +ede8 c4 -1 +-1 +-1 +c45e a733 d1dd 1603 0000 0000 0000 0000 ede6 e5fb 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcb88 +e4fa 3325 c266 1b13 0000 0000 0000 0000 878e e695 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9b 88 -1 +8729 7c -1 +-1 +-1 +e4fa 7c25 c266 1b13 0000 0000 0000 0000 878e e695 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcb89 +933b 6fdd a3a8 2634 0000 0000 0000 0000 8f3e 7727 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 2b 89 -1 +8f69 cf -1 +-1 +-1 +933b 6fcd a3a8 2634 0000 0000 0000 0000 8f3e 7727 0000 0004 +00 02 0 0 0 0 23 +8f69 cd -1 +-1 + +ddcb8a +6759 ad1e 5d71 ce52 0000 0000 0000 0000 39a9 38a0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0a 8a -1 +39b3 ea -1 +-1 +-1 +6759 ad1e e871 ce52 0000 0000 0000 0000 39a9 38a0 0000 0004 +00 02 0 0 0 0 23 +39b3 e8 -1 +-1 + +ddcb8b +3da2 1833 03c1 07e9 0000 0000 0000 0000 1685 d790 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 62 8b -1 +16e7 8a -1 +-1 +-1 +3da2 1833 0388 07e9 0000 0000 0000 0000 1685 d790 0000 0004 +00 02 0 0 0 0 23 +16e7 88 -1 +-1 + +ddcb8c +a625 ed31 3946 32dc 0000 0000 0000 0000 c6a2 7ad6 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e8 8c -1 +c68a 3e -1 +-1 +-1 +a625 ed31 3946 3cdc 0000 0000 0000 0000 c6a2 7ad6 0000 0004 +00 02 0 0 0 0 23 +c68a 3c -1 +-1 + +ddcb8d +016b 5802 a683 2549 0000 0000 0000 0000 22e6 33bb 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb cc 8d -1 +22b2 9e -1 +-1 +-1 +016b 5802 a683 259c 0000 0000 0000 0000 22e6 33bb 0000 0004 +00 02 0 0 0 0 23 +22b2 9c -1 +-1 + +ddcb8e +f4f4 f3a8 2843 82cb 0000 0000 0000 0000 d2e8 d367 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0a 8e -1 +d2f2 03 -1 +-1 +-1 +f4f4 f3a8 2843 82cb 0000 0000 0000 0000 d2e8 d367 0000 0004 +00 02 0 0 0 0 23 +d2f2 01 -1 +-1 + +ddcb8f +6b1a 8ae2 269b cb2f 0000 0000 0000 0000 3ffe 75dd 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 7b 8f -1 +4079 96 -1 +-1 +-1 +941a 8ae2 269b cb2f 0000 0000 0000 0000 3ffe 75dd 0000 0004 +00 02 0 0 0 0 23 +4079 94 -1 +-1 + +ddcb90 +c167 3dfc 42e7 9e14 0000 0000 0000 0000 b501 84fe 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 04 90 -1 +b505 46 -1 +-1 +-1 +c167 42fc 42e7 9e14 0000 0000 0000 0000 b501 84fe 0000 0004 +00 02 0 0 0 0 23 +b505 42 -1 +-1 + +ddcb91 +e85e cc89 d249 ea3b 0000 0000 0000 0000 c987 c4d1 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 11 91 -1 +c998 83 -1 +-1 +-1 +e85e cc83 d249 ea3b 0000 0000 0000 0000 c987 c4d1 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcb92 +28a3 85ff ab28 47a5 0000 0000 0000 0000 9166 e755 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 4b 92 -1 +91b1 aa -1 +-1 +-1 +28a3 85ff aa28 47a5 0000 0000 0000 0000 9166 e755 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcb93 +58ac c88b 6d24 dbdd 0000 0000 0000 0000 ac2e 5199 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 03 93 -1 +ac31 93 -1 +-1 +-1 +58ac c88b 6d93 dbdd 0000 0000 0000 0000 ac2e 5199 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcb94 +e38d 35a5 8d07 bfb8 0000 0000 0000 0000 5e84 5f24 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 11 94 -1 +5e95 b7 -1 +-1 +-1 +e38d 35a5 8d07 b3b8 0000 0000 0000 0000 5e84 5f24 0000 0004 +00 02 0 0 0 0 23 +5e95 b3 -1 +-1 + +ddcb95 +41f4 9536 dd7d 4948 0000 0000 0000 0000 fb74 f17d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e6 95 -1 +fb5a c6 -1 +-1 +-1 +41f4 9536 dd7d 49c2 0000 0000 0000 0000 fb74 f17d 0000 0004 +00 02 0 0 0 0 23 +fb5a c2 -1 +-1 + +ddcb96 +4a9e 42ef 32d7 18cf 0000 0000 0000 0000 7a81 bb1d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d5 96 -1 +7a56 ae -1 +-1 +-1 +4a9e 42ef 32d7 18cf 0000 0000 0000 0000 7a81 bb1d 0000 0004 +00 02 0 0 0 0 23 +7a56 aa -1 +-1 + +ddcb97 +9ad3 89f0 73c7 0b1a 0000 0000 0000 0000 847c 4b86 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 92 97 -1 +840e 23 -1 +-1 +-1 +23d3 89f0 73c7 0b1a 0000 0000 0000 0000 847c 4b86 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcb98 +6e22 b9fd 9fdc 3aed 0000 0000 0000 0000 041e fd79 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb dc 98 -1 +03fa 58 -1 +-1 +-1 +6e22 50fd 9fdc 3aed 0000 0000 0000 0000 041e fd79 0000 0004 +00 02 0 0 0 0 23 +03fa 50 -1 +-1 + +ddcb99 +a132 3891 1515 2830 0000 0000 0000 0000 09fd 0473 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 6d 99 -1 +0a6a ce -1 +-1 +-1 +a132 38c6 1515 2830 0000 0000 0000 0000 09fd 0473 0000 0004 +00 02 0 0 0 0 23 +0a6a c6 -1 +-1 + +ddcb9a +783d 8f69 91c4 e38f 0000 0000 0000 0000 68a8 391d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 8a 9a -1 +6832 a8 -1 +-1 +-1 +783d 8f69 a0c4 e38f 0000 0000 0000 0000 68a8 391d 0000 0004 +00 02 0 0 0 0 23 +6832 a0 -1 +-1 + +ddcb9b +955a c7b0 53b3 aec6 0000 0000 0000 0000 06ef e991 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 97 9b -1 +0686 62 -1 +-1 +-1 +955a c7b0 5362 aec6 0000 0000 0000 0000 06ef e991 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcb9c +af69 f896 e791 a2ee 0000 0000 0000 0000 847b 59ed 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 54 9c -1 +84cf 1b -1 +-1 +-1 +af69 f896 e791 13ee 0000 0000 0000 0000 847b 59ed 0000 0004 +00 02 0 0 0 0 23 +84cf 13 -1 +-1 + +ddcb9d +7d1e 5009 1248 380c 0000 0000 0000 0000 e920 4fe6 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0f 9d -1 +e92f e8 -1 +-1 +-1 +7d1e 5009 1248 38e0 0000 0000 0000 0000 e920 4fe6 0000 0004 +00 02 0 0 0 0 23 +e92f e0 -1 +-1 + +ddcb9e +c207 b47c 0e16 e17f 0000 0000 0000 0000 d8bb bb99 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b5 9e -1 +d870 ee -1 +-1 +-1 +c207 b47c 0e16 e17f 0000 0000 0000 0000 d8bb bb99 0000 0004 +00 02 0 0 0 0 23 +d870 e6 -1 +-1 + +ddcb9f +c26b 7537 46bb 13c0 0000 0000 0000 0000 e63c 1d98 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b8 9f -1 +e5f4 a6 -1 +-1 +-1 +a66b 7537 46bb 13c0 0000 0000 0000 0000 e63c 1d98 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcba0 +0bbe 8500 8609 5352 0000 0000 0000 0000 a2f0 da02 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 02 a0 -1 +a2f2 39 -1 +-1 +-1 +0bbe 2900 8609 5352 0000 0000 0000 0000 a2f0 da02 0000 0004 +00 02 0 0 0 0 23 +a2f2 29 -1 +-1 + +ddcba1 +ad0a aa76 0f2d 832c 0000 0000 0000 0000 45bb a22d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f5 a1 -1 +45b0 d2 -1 +-1 +-1 +ad0a aac2 0f2d 832c 0000 0000 0000 0000 45bb a22d 0000 0004 +00 02 0 0 0 0 23 +45b0 c2 -1 +-1 + +ddcba2 +f586 4a7d a5ab 26fc 0000 0000 0000 0000 628b 6c4d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0e a2 -1 +6299 a1 -1 +-1 +-1 +f586 4a7d a1ab 26fc 0000 0000 0000 0000 628b 6c4d 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcba3 +de5b a284 d40e c92d 0000 0000 0000 0000 040d 12c0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 2e a3 -1 +043b 04 -1 +-1 +-1 +de5b a284 d404 c92d 0000 0000 0000 0000 040d 12c0 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcba4 +dfaa ae40 02c3 e0b5 0000 0000 0000 0000 fe4d faa3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 03 a4 -1 +fe50 27 -1 +-1 +-1 +dfaa ae40 02c3 27b5 0000 0000 0000 0000 fe4d faa3 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcba5 +1a15 04cb 4352 ee39 0000 0000 0000 0000 7b27 38a0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f6 a5 -1 +7b1d 6b -1 +-1 +-1 +1a15 04cb 4352 ee6b 0000 0000 0000 0000 7b27 38a0 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcba6 +5e46 b98a b822 04ca 0000 0000 0000 0000 ae1b 8730 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 27 a6 -1 +ae42 8f -1 +-1 +-1 +5e46 b98a b822 04ca 0000 0000 0000 0000 ae1b 8730 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcba7 +0eed 7b11 8cb0 eb3d 0000 0000 0000 0000 5ec8 97cf 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f2 a7 -1 +5eba 87 -1 +-1 +-1 +87ed 7b11 8cb0 eb3d 0000 0000 0000 0000 5ec8 97cf 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcba8 +5173 3089 070d e8f9 0000 0000 0000 0000 e84f 55f0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d0 a8 -1 +e81f 7e -1 +-1 +-1 +5173 5e89 070d e8f9 0000 0000 0000 0000 e84f 55f0 0000 0004 +00 02 0 0 0 0 23 +e81f 5e -1 +-1 + +ddcba9 +4fb8 ccb5 3e9a 2673 0000 0000 0000 0000 0fdd aef2 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9d a9 -1 +0f7a 1f -1 +-1 +-1 +4fb8 cc1f 3e9a 2673 0000 0000 0000 0000 0fdd aef2 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbaa +fe76 6f96 3feb 0b21 0000 0000 0000 0000 6747 07ba 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9f aa -1 +66e6 50 -1 +-1 +-1 +fe76 6f96 50eb 0b21 0000 0000 0000 0000 6747 07ba 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbab +2eb4 36f1 8f44 36af 0000 0000 0000 0000 6682 9d60 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 16 ab -1 +6698 eb -1 +-1 +-1 +2eb4 36f1 8fcb 36af 0000 0000 0000 0000 6682 9d60 0000 0004 +00 02 0 0 0 0 23 +6698 cb -1 +-1 + +ddcbac +af32 8ca8 6558 06d9 0000 0000 0000 0000 a4dd cd1f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c4 ac -1 +a4a1 44 -1 +-1 +-1 +af32 8ca8 6558 44d9 0000 0000 0000 0000 a4dd cd1f 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbad +fcc9 69a7 0eed eab5 0000 0000 0000 0000 eef5 3ed2 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 49 ad -1 +ef3e 76 -1 +-1 +-1 +fcc9 69a7 0eed ea56 0000 0000 0000 0000 eef5 3ed2 0000 0004 +00 02 0 0 0 0 23 +ef3e 56 -1 +-1 + +ddcbae +5f7a 9c20 f013 c4b7 0000 0000 0000 0000 b306 15dd 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 6e ae -1 +b374 5a -1 +-1 +-1 +5f7a 9c20 f013 c4b7 0000 0000 0000 0000 b306 15dd 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbaf +b11e 2583 51fa d427 0000 0000 0000 0000 3619 9cef 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c2 af -1 +35db 15 -1 +-1 +-1 +151e 2583 51fa d427 0000 0000 0000 0000 3619 9cef 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbb0 +f43e ce57 3bf3 0933 0000 0000 0000 0000 58d7 d89f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 47 b0 -1 +591e 1e -1 +-1 +-1 +f43e 1e57 3bf3 0933 0000 0000 0000 0000 58d7 d89f 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbb1 +35ef bbbc db46 046c 0000 0000 0000 0000 add2 2b6e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 86 b1 -1 +ad58 46 -1 +-1 +-1 +35ef bb06 db46 046c 0000 0000 0000 0000 add2 2b6e 0000 0004 +00 02 0 0 0 0 23 +ad58 06 -1 +-1 + +ddcbb2 +c26c fd32 9b7f ab6c 0000 0000 0000 0000 e7d0 501f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 70 b2 -1 +e840 48 -1 +-1 +-1 +c26c fd32 087f ab6c 0000 0000 0000 0000 e7d0 501f 0000 0004 +00 02 0 0 0 0 23 +e840 08 -1 +-1 + +ddcbb3 +36ca b434 e212 f805 0000 0000 0000 0000 53fb b191 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb de b3 -1 +53d9 06 -1 +-1 +-1 +36ca b434 e206 f805 0000 0000 0000 0000 53fb b191 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbb4 +0a1c ab67 9ca1 2f98 0000 0000 0000 0000 5066 320c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 6b b4 -1 +50d1 dd -1 +-1 +-1 +0a1c ab67 9ca1 9d98 0000 0000 0000 0000 5066 320c 0000 0004 +00 02 0 0 0 0 23 +50d1 9d -1 +-1 + +ddcbb5 +fd6d 51c9 16d6 1373 0000 0000 0000 0000 146e 2148 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ec b5 -1 +145a d6 -1 +-1 +-1 +fd6d 51c9 16d6 1396 0000 0000 0000 0000 146e 2148 0000 0004 +00 02 0 0 0 0 23 +145a 96 -1 +-1 + +ddcbb6 +1d0b 04e8 109e 1dde 0000 0000 0000 0000 8772 8661 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 15 b6 -1 +8787 8c -1 +-1 +-1 +1d0b 04e8 109e 1dde 0000 0000 0000 0000 8772 8661 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbb7 +f012 b87e 65ba a5c8 0000 0000 0000 0000 6120 789d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d3 b7 -1 +60f3 54 -1 +-1 +-1 +1412 b87e 65ba a5c8 0000 0000 0000 0000 6120 789d 0000 0004 +00 02 0 0 0 0 23 +60f3 14 -1 +-1 + +ddcbb8 +8eae 4a53 bfa1 5e7e 0000 0000 0000 0000 0bf6 1e35 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 13 b8 -1 +0c09 87 -1 +-1 +-1 +8eae 0753 bfa1 5e7e 0000 0000 0000 0000 0bf6 1e35 0000 0004 +00 02 0 0 0 0 23 +0c09 07 -1 +-1 + +ddcbb9 +5fb7 a81e e2d2 4117 0000 0000 0000 0000 0564 48a1 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 56 b9 -1 +05ba c8 -1 +-1 +-1 +5fb7 a848 e2d2 4117 0000 0000 0000 0000 0564 48a1 0000 0004 +00 02 0 0 0 0 23 +05ba 48 -1 +-1 + +ddcbba +7f6a 47fe ce45 75de 0000 0000 0000 0000 f5e0 032c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 86 ba -1 +f566 30 -1 +-1 +-1 +7f6a 47fe 3045 75de 0000 0000 0000 0000 f5e0 032c 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbbb +c7e3 e49e 9ec5 07e7 0000 0000 0000 0000 bd31 9d5f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ef bb -1 +bd20 c9 -1 +-1 +-1 +c7e3 e49e 9e49 07e7 0000 0000 0000 0000 bd31 9d5f 0000 0004 +00 02 0 0 0 0 23 +bd20 49 -1 +-1 + +ddcbbc +b430 7ac7 b45f fbf7 0000 0000 0000 0000 638e 3173 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c0 bc -1 +634e 28 -1 +-1 +-1 +b430 7ac7 b45f 28f7 0000 0000 0000 0000 638e 3173 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbbd +4e71 6ffa a3f9 a2e5 0000 0000 0000 0000 e3c4 02d4 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb b9 bd -1 +e37d dd -1 +-1 +-1 +4e71 6ffa a3f9 a25d 0000 0000 0000 0000 e3c4 02d4 0000 0004 +00 02 0 0 0 0 23 +e37d 5d -1 +-1 + +ddcbbe +4af8 99a5 d6fd 7a16 0000 0000 0000 0000 58d3 ce54 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 4d be -1 +5920 e8 -1 +-1 +-1 +4af8 99a5 d6fd 7a16 0000 0000 0000 0000 58d3 ce54 0000 0004 +00 02 0 0 0 0 23 +5920 68 -1 +-1 + +ddcbbf +6e31 0320 134b 77c3 0000 0000 0000 0000 1734 bc2d 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 26 bf -1 +175a e2 -1 +-1 +-1 +6231 0320 134b 77c3 0000 0000 0000 0000 1734 bc2d 0000 0004 +00 02 0 0 0 0 23 +175a 62 -1 +-1 + +ddcbc0 +75be 2b93 093d 1128 0000 0000 0000 0000 792e 31f7 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 00 c0 -1 +792e 92 -1 +-1 +-1 +75be 9393 093d 1128 0000 0000 0000 0000 792e 31f7 0000 0004 +00 02 0 0 0 0 23 +792e 93 -1 +-1 + +ddcbc1 +313f 8223 5fcc 42c8 0000 0000 0000 0000 dccc d87b 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f7 c1 -1 +dcc3 1c -1 +-1 +-1 +313f 821d 5fcc 42c8 0000 0000 0000 0000 dccc d87b 0000 0004 +00 02 0 0 0 0 23 +dcc3 1d -1 +-1 + +ddcbc2 +a7e3 bf55 d27b 0a9d 0000 0000 0000 0000 0cfa ea4e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 85 c2 -1 +0c7f 30 -1 +-1 +-1 +a7e3 bf55 317b 0a9d 0000 0000 0000 0000 0cfa ea4e 0000 0004 +00 02 0 0 0 0 23 +0c7f 31 -1 +-1 + +ddcbc3 +e076 2760 1eec 9968 0000 0000 0000 0000 5426 a1a0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 32 c3 -1 +5458 dd -1 +-1 +-1 +e076 2760 1edd 9968 0000 0000 0000 0000 5426 a1a0 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbc4 +a679 cc05 3f4d c899 0000 0000 0000 0000 7acd 48d7 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ae c4 -1 +7a7b 27 -1 +-1 +-1 +a679 cc05 3f4d 2799 0000 0000 0000 0000 7acd 48d7 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbc5 +ddfd 64d4 2671 35e7 0000 0000 0000 0000 ba99 bd98 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9c c5 -1 +ba35 20 -1 +-1 +-1 +ddfd 64d4 2671 3521 0000 0000 0000 0000 ba99 bd98 0000 0004 +00 02 0 0 0 0 23 +ba35 21 -1 +-1 + +ddcbc6 +b324 dc0c 1e35 8cd5 0000 0000 0000 0000 ab2c b6f3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c4 c6 -1 +aaf0 b8 -1 +-1 +-1 +b324 dc0c 1e35 8cd5 0000 0000 0000 0000 ab2c b6f3 0000 0004 +00 02 0 0 0 0 23 +aaf0 b9 -1 +-1 + +ddcbc7 +a254 9e56 6828 3189 0000 0000 0000 0000 64cb dfad 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f8 c7 -1 +64c3 94 -1 +-1 +-1 +9554 9e56 6828 3189 0000 0000 0000 0000 64cb dfad 0000 0004 +00 02 0 0 0 0 23 +64c3 95 -1 +-1 + +ddcbc8 +8aca 139e e652 248b 0000 0000 0000 0000 6e7a 189a 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 65 c8 -1 +6edf 8f -1 +-1 +-1 +8aca 8f9e e652 248b 0000 0000 0000 0000 6e7a 189a 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbc9 +f15f 856e a21f 8a59 0000 0000 0000 0000 b670 4f79 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb fb c9 -1 +b66b b9 -1 +-1 +-1 +f15f 85bb a21f 8a59 0000 0000 0000 0000 b670 4f79 0000 0004 +00 02 0 0 0 0 23 +b66b bb -1 +-1 + +ddcbca +dfab a031 1d78 ad3a 0000 0000 0000 0000 a887 7334 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 8a ca -1 +a811 7e -1 +-1 +-1 +dfab a031 7e78 ad3a 0000 0000 0000 0000 a887 7334 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbcb +ebd6 376e c346 b10c 0000 0000 0000 0000 a447 31d6 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb a4 cb -1 +a3eb 73 -1 +-1 +-1 +ebd6 376e c373 b10c 0000 0000 0000 0000 a447 31d6 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbcc +0212 dc46 8f41 854e 0000 0000 0000 0000 1f5a 07ca 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 65 cc -1 +1fbf 72 -1 +-1 +-1 +0212 dc46 8f41 724e 0000 0000 0000 0000 1f5a 07ca 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbcd +3344 d73c d6b8 929d 0000 0000 0000 0000 5376 6d3a 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e9 cd -1 +535f 1c -1 +-1 +-1 +3344 d73c d6b8 921e 0000 0000 0000 0000 5376 6d3a 0000 0004 +00 02 0 0 0 0 23 +535f 1e -1 +-1 + +ddcbce +9e47 fc93 9ffc aace 0000 0000 0000 0000 0313 7f66 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 85 ce -1 +0298 10 -1 +-1 +-1 +9e47 fc93 9ffc aace 0000 0000 0000 0000 0313 7f66 0000 0004 +00 02 0 0 0 0 23 +0298 12 -1 +-1 + +ddcbcf +53e8 d379 87d5 10b0 0000 0000 0000 0000 c5d0 4f7f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb e2 cf -1 +c5b2 b5 -1 +-1 +-1 +b7e8 d379 87d5 10b0 0000 0000 0000 0000 c5d0 4f7f 0000 0004 +00 02 0 0 0 0 23 +c5b2 b7 -1 +-1 + +ddcbd0 +3278 6114 d25d 1cf8 0000 0000 0000 0000 ad43 99fc 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 7f d0 -1 +adc2 51 -1 +-1 +-1 +3278 5514 d25d 1cf8 0000 0000 0000 0000 ad43 99fc 0000 0004 +00 02 0 0 0 0 23 +adc2 55 -1 +-1 + +ddcbd1 +c0b8 371a 6472 d92d 0000 0000 0000 0000 10b2 3074 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb a6 d1 -1 +1058 2c -1 +-1 +-1 +c0b8 372c 6472 d92d 0000 0000 0000 0000 10b2 3074 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbd2 +5bb6 caa8 e0db af84 0000 0000 0000 0000 b9a1 7b5f 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 9c d2 -1 +b93d 9c -1 +-1 +-1 +5bb6 caa8 9cdb af84 0000 0000 0000 0000 b9a1 7b5f 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbd3 +db6a 4fe2 9e52 a034 0000 0000 0000 0000 da36 88a0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb bd d3 -1 +d9f3 60 -1 +-1 +-1 +db6a 4fe2 9e64 a034 0000 0000 0000 0000 da36 88a0 0000 0004 +00 02 0 0 0 0 23 +d9f3 64 -1 +-1 + +ddcbd4 +cc1c b884 6ad2 1621 0000 0000 0000 0000 ef26 41de 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 58 d4 -1 +ef7e 5e -1 +-1 +-1 +cc1c b884 6ad2 5e21 0000 0000 0000 0000 ef26 41de 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbd5 +c41d c8b0 cacb 7687 0000 0000 0000 0000 8dbc cc25 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 41 d5 -1 +8dfd 71 -1 +-1 +-1 +c41d c8b0 cacb 7675 0000 0000 0000 0000 8dbc cc25 0000 0004 +00 02 0 0 0 0 23 +8dfd 75 -1 +-1 + +ddcbd6 +09eb 769d 7e07 51f9 0000 0000 0000 0000 5f03 6280 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ea d6 -1 +5eed 73 -1 +-1 +-1 +09eb 769d 7e07 51f9 0000 0000 0000 0000 5f03 6280 0000 0004 +00 02 0 0 0 0 23 +5eed 77 -1 +-1 + +ddcbd7 +241b ee10 c152 2f6d 0000 0000 0000 0000 e725 c0d7 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 80 d7 -1 +e6a5 60 -1 +-1 +-1 +641b ee10 c152 2f6d 0000 0000 0000 0000 e725 c0d7 0000 0004 +00 02 0 0 0 0 23 +e6a5 64 -1 +-1 + +ddcbd8 +e3dc 1981 c97b cb42 0000 0000 0000 0000 b30f b32a 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 4c d8 -1 +b35b 96 -1 +-1 +-1 +e3dc 9e81 c97b cb42 0000 0000 0000 0000 b30f b32a 0000 0004 +00 02 0 0 0 0 23 +b35b 9e -1 +-1 + +ddcbd9 +e9a0 a7c7 a476 6057 0000 0000 0000 0000 2642 58a0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 52 d9 -1 +2694 ef -1 +-1 +-1 +e9a0 a7ef a476 6057 0000 0000 0000 0000 2642 58a0 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbda +6787 26a7 a194 11d3 0000 0000 0000 0000 2d76 7f80 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ea da -1 +2d60 82 -1 +-1 +-1 +6787 26a7 8a94 11d3 0000 0000 0000 0000 2d76 7f80 0000 0004 +00 02 0 0 0 0 23 +2d60 8a -1 +-1 + +ddcbdb +f986 6a4b 6588 d2c8 0000 0000 0000 0000 2b7d 5847 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 4d db -1 +2bca 10 -1 +-1 +-1 +f986 6a4b 6518 d2c8 0000 0000 0000 0000 2b7d 5847 0000 0004 +00 02 0 0 0 0 23 +2bca 18 -1 +-1 + +ddcbdc +4c9e d94d 9760 b707 0000 0000 0000 0000 7ed4 5cc5 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d3 dc -1 +7ea7 45 -1 +-1 +-1 +4c9e d94d 9760 4d07 0000 0000 0000 0000 7ed4 5cc5 0000 0004 +00 02 0 0 0 0 23 +7ea7 4d -1 +-1 + +ddcbdd +4b3b d351 9be9 2310 0000 0000 0000 0000 58c1 e430 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 6f dd -1 +5930 20 -1 +-1 +-1 +4b3b d351 9be9 2328 0000 0000 0000 0000 58c1 e430 0000 0004 +00 02 0 0 0 0 23 +5930 28 -1 +-1 + +ddcbde +3b62 ca1e a41a 227a 0000 0000 0000 0000 89d2 7011 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 14 de -1 +89e6 5e -1 +-1 +-1 +3b62 ca1e a41a 227a 0000 0000 0000 0000 89d2 7011 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbdf +4c8a 5b42 50dd 4be0 0000 0000 0000 0000 d227 4913 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ef df -1 +d216 72 -1 +-1 +-1 +7a8a 5b42 50dd 4be0 0000 0000 0000 0000 d227 4913 0000 0004 +00 02 0 0 0 0 23 +d216 7a -1 +-1 + +ddcbe0 +440a 713d acfc f762 0000 0000 0000 0000 1c4b b6ba 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 62 e0 -1 +1cad 46 -1 +-1 +-1 +440a 563d acfc f762 0000 0000 0000 0000 1c4b b6ba 0000 0004 +00 02 0 0 0 0 23 +1cad 56 -1 +-1 + +ddcbe1 +c219 aa6b dfbf 6f10 0000 0000 0000 0000 b931 d3d6 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 2e e1 -1 +b95f 75 -1 +-1 +-1 +c219 aa75 dfbf 6f10 0000 0000 0000 0000 b931 d3d6 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbe2 +66d7 abd0 cb48 8054 0000 0000 0000 0000 ef50 9997 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 85 e2 -1 +eed5 72 -1 +-1 +-1 +66d7 abd0 7248 8054 0000 0000 0000 0000 ef50 9997 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbe3 +7013 e7ed 7e1c 57fb 0000 0000 0000 0000 7ec6 75eb 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f4 e3 -1 +7eba 34 -1 +-1 +-1 +7013 e7ed 7e34 57fb 0000 0000 0000 0000 7ec6 75eb 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbe4 +1108 6e70 f0af 2f0c 0000 0000 0000 0000 95c7 6501 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb bf e4 -1 +9586 34 -1 +-1 +-1 +1108 6e70 f0af 340c 0000 0000 0000 0000 95c7 6501 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbe5 +57cc 5511 2696 b83d 0000 0000 0000 0000 6ab0 0e90 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f2 e5 -1 +6aa2 2e -1 +-1 +-1 +57cc 5511 2696 b83e 0000 0000 0000 0000 6ab0 0e90 0000 0004 +00 02 0 0 0 0 23 +6aa2 3e -1 +-1 + +ddcbe6 +207a a441 1e03 ac60 0000 0000 0000 0000 d866 5fdc 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 25 e6 -1 +d88b 4c -1 +-1 +-1 +207a a441 1e03 ac60 0000 0000 0000 0000 d866 5fdc 0000 0004 +00 02 0 0 0 0 23 +d88b 5c -1 +-1 + +ddcbe7 +c3c5 7fa9 4e07 e02d 0000 0000 0000 0000 2a1b 55b7 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f3 e7 -1 +2a0e eb -1 +-1 +-1 +fbc5 7fa9 4e07 e02d 0000 0000 0000 0000 2a1b 55b7 0000 0004 +00 02 0 0 0 0 23 +2a0e fb -1 +-1 + +ddcbe8 +6d1c a0c4 93f0 a0b4 0000 0000 0000 0000 4bda 7761 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb f2 e8 -1 +4bcc ba -1 +-1 +-1 +6d1c bac4 93f0 a0b4 0000 0000 0000 0000 4bda 7761 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbe9 +ebe5 0c2c 1a2a 2720 0000 0000 0000 0000 72dd a354 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 8a e9 -1 +7267 0a -1 +-1 +-1 +ebe5 0c2a 1a2a 2720 0000 0000 0000 0000 72dd a354 0000 0004 +00 02 0 0 0 0 23 +7267 2a -1 +-1 + +ddcbea +42d2 da7a 757f 6da6 0000 0000 0000 0000 a7e9 b933 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 04 ea -1 +a7ed 5f -1 +-1 +-1 +42d2 da7a 7f7f 6da6 0000 0000 0000 0000 a7e9 b933 0000 0004 +00 02 0 0 0 0 23 +a7ed 7f -1 +-1 + +ddcbeb +e945 10aa f5f8 7647 0000 0000 0000 0000 16df 93fb 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 24 eb -1 +1703 f3 -1 +-1 +-1 +e945 10aa f5f3 7647 0000 0000 0000 0000 16df 93fb 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbec +7180 bc85 7dd3 f467 0000 0000 0000 0000 dd88 6a41 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 60 ec -1 +dde8 00 -1 +-1 +-1 +7180 bc85 7dd3 2067 0000 0000 0000 0000 dd88 6a41 0000 0004 +00 02 0 0 0 0 23 +dde8 20 -1 +-1 + +ddcbed +6b2f 9762 1f0a db61 0000 0000 0000 0000 f772 33e3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb be ed -1 +f730 6b -1 +-1 +-1 +6b2f 9762 1f0a db6b 0000 0000 0000 0000 f772 33e3 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbee +79ea dc8a 7887 3baa 0000 0000 0000 0000 6c28 abbc 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb de ee -1 +6c06 bd -1 +-1 +-1 +79ea dc8a 7887 3baa 0000 0000 0000 0000 6c28 abbc 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbef +46c3 2fc2 8690 a836 0000 0000 0000 0000 cc68 a8ce 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 30 ef -1 +cc98 11 -1 +-1 +-1 +31c3 2fc2 8690 a836 0000 0000 0000 0000 cc68 a8ce 0000 0004 +00 02 0 0 0 0 23 +cc98 31 -1 +-1 + +ddcbf0 +b330 4469 362b b515 0000 0000 0000 0000 13c0 6479 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 2f f0 -1 +13ef ad -1 +-1 +-1 +b330 ed69 362b b515 0000 0000 0000 0000 13c0 6479 0000 0004 +00 02 0 0 0 0 23 +13ef ed -1 +-1 + +ddcbf1 +94c0 9ab0 a0fd 7c1d 0000 0000 0000 0000 47ba 8c81 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 40 f1 -1 +47fa 78 -1 +-1 +-1 +94c0 9a78 a0fd 7c1d 0000 0000 0000 0000 47ba 8c81 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbf2 +5302 9204 20ec d640 0000 0000 0000 0000 c947 4ef1 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 0f f2 -1 +c956 21 -1 +-1 +-1 +5302 9204 61ec d640 0000 0000 0000 0000 c947 4ef1 0000 0004 +00 02 0 0 0 0 23 +c956 61 -1 +-1 + +ddcbf3 +9950 a3d2 5058 5ccc 0000 0000 0000 0000 1d96 7c75 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 06 f3 -1 +1d9c e4 -1 +-1 +-1 +9950 a3d2 50e4 5ccc 0000 0000 0000 0000 1d96 7c75 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbf4 +3712 1f99 4863 47de 0000 0000 0000 0000 1702 c042 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 3b f4 -1 +173d e1 -1 +-1 +-1 +3712 1f99 4863 e1de 0000 0000 0000 0000 1702 c042 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbf5 +d83f 1ec9 d0da 4173 0000 0000 0000 0000 eb3f 1ead 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 64 f5 -1 +eba3 c5 -1 +-1 +-1 +d83f 1ec9 d0da 41c5 0000 0000 0000 0000 eb3f 1ead 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbf6 +4d6c 93ac 810d cfe1 0000 0000 0000 0000 dc5a c33c 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 7b f6 -1 +dcd5 a2 -1 +-1 +-1 +4d6c 93ac 810d cfe1 0000 0000 0000 0000 dc5a c33c 0000 0004 +00 02 0 0 0 0 23 +dcd5 e2 -1 +-1 + +ddcbf7 +fe40 7887 b9de c013 0000 0000 0000 0000 301e 9710 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb c3 f7 -1 +2fe1 a9 -1 +-1 +-1 +e940 7887 b9de c013 0000 0000 0000 0000 301e 9710 0000 0004 +00 02 0 0 0 0 23 +2fe1 e9 -1 +-1 + +ddcbf8 +8278 21a4 1e5c 4952 0000 0000 0000 0000 427f 41e1 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 59 f8 -1 +42d8 28 -1 +-1 +-1 +8278 a8a4 1e5c 4952 0000 0000 0000 0000 427f 41e1 0000 0004 +00 02 0 0 0 0 23 +42d8 a8 -1 +-1 + +ddcbf9 +b2df e9b8 56c3 16ff 0000 0000 0000 0000 d88f 0bab 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 55 f9 -1 +d8e4 14 -1 +-1 +-1 +b2df e994 56c3 16ff 0000 0000 0000 0000 d88f 0bab 0000 0004 +00 02 0 0 0 0 23 +d8e4 94 -1 +-1 + +ddcbfa +01f1 bc0d d476 1510 0000 0000 0000 0000 9420 93a3 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 74 fa -1 +9494 fe -1 +-1 +-1 +01f1 bc0d fe76 1510 0000 0000 0000 0000 9420 93a3 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbfb +709b 14eb ec1c b844 0000 0000 0000 0000 3453 f2b0 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb af fb -1 +3402 02 -1 +-1 +-1 +709b 14eb ec82 b844 0000 0000 0000 0000 3453 f2b0 0000 0004 +00 02 0 0 0 0 23 +3402 82 -1 +-1 + +ddcbfc +6c89 a96e d27b d6a7 0000 0000 0000 0000 6139 b4c1 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb a1 fc -1 +60da 10 -1 +-1 +-1 +6c89 a96e d27b 90a7 0000 0000 0000 0000 6139 b4c1 0000 0004 +00 02 0 0 0 0 23 +60da 90 -1 +-1 + +ddcbfd +fb3f 83f6 2094 3349 0000 0000 0000 0000 3ed0 6f0e 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb 28 fd -1 +3ef8 c2 -1 +-1 +-1 +fb3f 83f6 2094 33c2 0000 0000 0000 0000 3ed0 6f0e 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbfe +fc42 50b7 e98d 3e45 0000 0000 0000 0000 41b5 3410 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb ec fe -1 +41a1 a1 -1 +-1 +-1 +fc42 50b7 e98d 3e45 0000 0000 0000 0000 41b5 3410 0000 0004 +00 02 0 0 0 0 23 +-1 + +ddcbff +e666 94d2 ac90 8f45 0000 0000 0000 0000 0655 ba29 0000 0000 +00 00 0 0 0 0 1 +0000 dd cb d3 ff -1 +0628 2b -1 +-1 +-1 +ab66 94d2 ac90 8f45 0000 0000 0000 0000 0655 ba29 0000 0004 +00 02 0 0 0 0 23 +0628 ab -1 +-1 + +dde1 +8a15 6bf0 0106 3dd0 0000 0000 0000 0000 5da4 8716 595f 0000 +00 00 0 0 0 0 1 +0000 dd e1 -1 +595f 9a 09 -1 +-1 +-1 +8a15 6bf0 0106 3dd0 0000 0000 0000 0000 099a 8716 5961 0002 +00 02 0 0 0 0 14 +-1 + +dde3 +068e 58e6 2713 500f 0000 0000 0000 0000 be05 4308 57bd 0000 +00 00 0 0 0 0 1 +0000 dd e3 -1 +57bd 15 3f -1 +-1 +-1 +068e 58e6 2713 500f 0000 0000 0000 0000 3f15 4308 57bd 0002 +00 02 0 0 0 0 23 +57bd 05 be -1 +-1 + +dde5 +7462 9b6c bfe5 0330 0000 0000 0000 0000 b282 e272 0761 0000 +00 00 0 0 0 0 1 +0000 dd e5 -1 +-1 +-1 +7462 9b6c bfe5 0330 0000 0000 0000 0000 b282 e272 075f 0002 +00 02 0 0 0 0 15 +075f 82 b2 -1 +-1 + +dde9 +75a7 139b f9a3 94bb 0000 0000 0000 0000 64f0 3433 0000 0000 +00 00 0 0 0 0 1 +0000 dd e9 -1 +-1 +-1 +75a7 139b f9a3 94bb 0000 0000 0000 0000 64f0 3433 0000 64f0 +00 02 0 0 0 0 8 +-1 + +ddf9 +8709 15dd 7fa6 3c5c 0000 0000 0000 0000 d3a7 1d7b f67c 0000 +00 00 0 0 0 0 1 +0000 dd f9 -1 +-1 +-1 +8709 15dd 7fa6 3c5c 0000 0000 0000 0000 d3a7 1d7b d3a7 0002 +00 02 0 0 0 0 10 +-1 + +ddfd00 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 13 +0000 dd fd 00 00 -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0004 +00 04 0 0 0 0 16 +-1 + +de +e78d 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 de a1 -1 +-1 +-1 +4502 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +df +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5507 6d33 +00 00 0 0 0 0 1 +6d33 df -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5505 0018 +00 01 0 0 0 0 11 +5505 34 6d -1 +-1 + +e0_1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 e0 -1 +43f7 e9 af -1 +-1 +-1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f9 afe9 +00 01 0 0 0 0 11 +-1 + +e0_2 +009c 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 e0 -1 +43f7 e9 af -1 +-1 +-1 +009c 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0001 +00 01 0 0 0 0 5 +-1 + +e1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4143 0000 +00 00 0 0 0 0 1 +0000 e1 -1 +4143 ce e8 -1 +-1 +-1 +0000 0000 0000 e8ce 0000 0000 0000 0000 0000 0000 4145 0001 +00 01 0 0 0 0 10 +-1 + +e2_1 +0083 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 e2 1b e1 -1 +-1 +-1 +0083 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e11b +00 01 0 0 0 0 10 +-1 + +e2_2 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 e2 1b e1 -1 +-1 +-1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 +-1 + +e3 +0000 0000 0000 4d22 0000 0000 0000 0000 0000 0000 0373 0000 +00 00 0 0 0 0 1 +0000 e3 -1 +0373 8e e1 -1 +-1 +-1 +0000 0000 0000 e18e 0000 0000 0000 0000 0000 0000 0373 0001 +00 01 0 0 0 0 19 +0373 22 4d -1 +-1 + +e4_1 +000a 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 e4 61 9c -1 +-1 +-1 +000a 0000 0000 0000 0000 0000 0000 0000 0000 0000 5696 9c61 +00 01 0 0 0 0 17 +5696 03 00 -1 +-1 + +e4_2 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 e4 61 9c -1 +-1 +-1 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0003 +00 01 0 0 0 0 10 +-1 + +e5 +53e3 1459 775f 1a2f 0000 0000 0000 0000 0000 0000 ec12 0000 +00 00 0 0 0 0 1 +0000 e5 -1 +-1 +-1 +53e3 1459 775f 1a2f 0000 0000 0000 0000 0000 0000 ec10 0001 +00 01 0 0 0 0 11 +ec10 2f 1a -1 +-1 + +e6 +7500 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 e6 49 -1 +-1 +-1 +4114 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +e7 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5507 6d33 +00 00 0 0 0 0 1 +6d33 e7 -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5505 0020 +00 01 0 0 0 0 11 +5505 34 6d -1 +-1 + +e8_1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 e8 -1 +43f7 e9 af -1 +-1 +-1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0001 +00 01 0 0 0 0 5 +-1 + +e8_2 +009c 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 e8 -1 +43f7 e9 af -1 +-1 +-1 +009c 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f9 afe9 +00 01 0 0 0 0 11 +-1 + +e9 +0000 0000 0000 caba 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 e9 -1 +-1 +-1 +0000 0000 0000 caba 0000 0000 0000 0000 0000 0000 0000 caba +00 01 0 0 0 0 4 +-1 + +ea_1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ea 1b e1 -1 +-1 +-1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e11b +00 01 0 0 0 0 10 +-1 + +ea_2 +0083 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ea 1b e1 -1 +-1 +-1 +0083 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 +-1 + +eb +0000 0000 b879 942e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 eb -1 +-1 +-1 +0000 0000 942e b879 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +ec_1 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 ec 61 9c -1 +-1 +-1 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5696 9c61 +00 01 0 0 0 0 17 +5696 03 00 -1 +-1 + +ec_2 +000a 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 ec 61 9c -1 +-1 +-1 +000a 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0003 +00 01 0 0 0 0 10 +-1 + +ed40 +83f9 296b 7034 1f2f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 40 -1 +-1 +296b 29 + -1 +8329 296b 7034 1f2f 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +ed41 +29a2 0881 d7dd ff4e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 41 -1 +-1 +-1 +29a2 0881 d7dd ff4e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +ed42 +cbd3 1c8f d456 315e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 42 -1 +-1 +-1 +cb12 1c8f d456 14ce 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +-1 + +ed43 +da36 2732 91cc 9798 0000 0000 0000 0000 0000 0000 5f73 0000 +00 00 0 0 0 0 1 +0000 ed 43 c6 54 -1 +-1 +-1 +da36 2732 91cc 9798 0000 0000 0000 0000 0000 0000 5f73 0004 +00 02 0 0 0 0 20 +54c6 32 27 -1 +-1 + +ed44 +fe2b 040f deb6 afc3 0000 0000 0000 0000 0000 0000 5ca8 0000 +00 00 0 0 0 0 1 +0000 ed 44 -1 +-1 +-1 +0213 040f deb6 afc3 0000 0000 0000 0000 0000 0000 5ca8 0002 +00 02 0 0 0 0 8 +-1 + +ed45 +001d 5b63 a586 1451 0000 0000 0000 0000 0000 0000 3100 0000 +00 00 0 1 0 0 1 +0000 ed 45 -1 +3100 1f 22 -1 +-1 +-1 +001d 5b63 a586 1451 0000 0000 0000 0000 0000 0000 3102 221f +00 02 1 1 0 0 14 +-1 + +ed46 +b6ec 8afb ce09 70a1 0000 0000 0000 0000 0000 0000 8dea 0000 +00 00 0 0 0 0 1 +0000 ed 46 -1 +-1 +-1 +b6ec 8afb ce09 70a1 0000 0000 0000 0000 0000 0000 8dea 0002 +00 02 0 0 0 0 8 +-1 + +ed47 +9a99 9e5a 9913 cacc 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 47 -1 +-1 +-1 +9a99 9e5a 9913 cacc 0000 0000 0000 0000 0000 0000 0000 0002 +9a 02 0 0 0 0 9 +-1 + +ed48 +dbdd 7d1b 141d 5fb4 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 48 -1 +-1 +7d1b 7d + -1 +db2d 7d7d 141d 5fb4 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +ed49 +07a5 59ec f459 4316 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 49 -1 +-1 +-1 +07a5 59ec f459 4316 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +ed4a +5741 24b5 83d2 9ac8 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 4a -1 +-1 +-1 +57a8 24b5 83d2 bf7e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +-1 + +ed4b +650c d74d 0448 a3b9 0000 0000 0000 0000 0000 0000 b554 0000 +00 00 0 0 0 0 1 +0000 ed 4b 1a a4 -1 +a41a f3 d4 -1 +-1 +-1 +650c d4f3 0448 a3b9 0000 0000 0000 0000 0000 0000 b554 0004 +00 02 0 0 0 0 20 +-1 + +ed4c +5682 7dde b049 939d 0000 0000 0000 0000 0000 0000 c7bb 0000 +00 00 0 0 0 0 1 +0000 ed 4c -1 +-1 +-1 +aabb 7dde b049 939d 0000 0000 0000 0000 0000 0000 c7bb 0002 +00 02 0 0 0 0 8 +-1 + +ed4d +1bed c358 5fd5 6093 0000 0000 0000 0000 0000 0000 680e 0000 +00 00 0 0 0 0 1 +0000 ed 4d -1 +680e 03 7c -1 +-1 +-1 +1bed c358 5fd5 6093 0000 0000 0000 0000 0000 0000 6810 7c03 +00 02 0 0 0 0 14 +-1 + +ed4e +8e01 e7c6 880f d2a2 0000 0000 0000 0000 0000 0000 85da 0000 +00 00 0 0 1 0 1 +0000 ed 4e -1 +-1 +-1 +8e01 e7c6 880f d2a2 0000 0000 0000 0000 0000 0000 85da 0002 +00 02 0 0 0 0 8 +-1 + +ed4f +2ae3 c115 eff8 9f6d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 4f -1 +-1 +-1 +2ae3 c115 eff8 9f6d 0000 0000 0000 0000 0000 0000 0000 0002 +00 2a 0 0 0 0 9 +-1 + +ed50 +85ae bbcc e2a8 f219 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 50 -1 +-1 +bbcc bb + -1 +85ac bbcc bba8 f219 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +ed51 +2c4c c0a4 5303 bc25 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 51 -1 +-1 +-1 +2c4c c0a4 5303 bc25 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +ed52 +fc57 1fc8 47b6 da7c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 52 -1 +-1 +-1 +fc82 1fc8 47b6 92c5 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +-1 + +ed53 +1f88 4692 5cb2 4915 0000 0000 0000 0000 0000 0000 7d8c 0000 +00 00 0 0 0 0 1 +0000 ed 53 ff 21 -1 +-1 +-1 +1f88 4692 5cb2 4915 0000 0000 0000 0000 0000 0000 7d8c 0004 +00 02 0 0 0 0 20 +21ff b2 5c -1 +-1 + +ed54 +adf9 5661 547c c322 0000 0000 0000 0000 0000 0000 d9eb 0000 +00 00 0 0 0 0 1 +0000 ed 54 -1 +-1 +-1 +5313 5661 547c c322 0000 0000 0000 0000 0000 0000 d9eb 0002 +00 02 0 0 0 0 8 +-1 + +ed55 +b05b 5e84 d6e9 cb3e 0000 0000 0000 0000 0000 0000 d4b4 0000 +00 00 1 0 0 0 1 +0000 ed 55 -1 +d4b4 ea c9 -1 +-1 +-1 +b05b 5e84 d6e9 cb3e 0000 0000 0000 0000 0000 0000 d4b6 c9ea +00 02 0 0 0 0 14 +-1 + +ed56 +5cc0 9100 356b 4bfd 0000 0000 0000 0000 0000 0000 2c93 0000 +00 00 0 0 1 0 1 +0000 ed 56 -1 +-1 +-1 +5cc0 9100 356b 4bfd 0000 0000 0000 0000 0000 0000 2c93 0002 +00 02 0 0 1 0 8 +-1 + +ed57 +bcfe dfc7 a621 1022 0000 0000 0000 0000 0000 0000 0000 0000 +1e 17 0 0 0 0 1 +0000 ed 57 -1 +-1 +-1 +1e08 dfc7 a621 1022 0000 0000 0000 0000 0000 0000 0000 0002 +1e 19 0 0 0 0 9 +-1 + +ed58 +c9ee 4091 9e46 873a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 58 -1 +-1 +4091 40 + -1 +c900 4091 9e40 873a 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +ed59 +388a d512 ecc5 93af 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 59 -1 +-1 +-1 +388a d512 ecc5 93af 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +ed5a +a41f 751c 19ce 0493 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 5a -1 +-1 +-1 +a408 751c 19ce 1e62 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +-1 + +ed5b +5df1 982e 002f adb9 0000 0000 0000 0000 0000 0000 f398 0000 +00 00 0 0 0 0 1 +0000 ed 5b 04 9f -1 +9f04 84 4d -1 +-1 +-1 +5df1 982e 4d84 adb9 0000 0000 0000 0000 0000 0000 f398 0004 +00 02 0 0 0 0 20 +-1 + +ed5c +11c3 b86c 2042 c958 0000 0000 0000 0000 0000 0000 93dc 0000 +00 00 0 0 0 0 1 +0000 ed 5c -1 +-1 +-1 +efbb b86c 2042 c958 0000 0000 0000 0000 0000 0000 93dc 0002 +00 02 0 0 0 0 8 +-1 + +ed5d +1152 1d20 3f86 64fc 0000 0000 0000 0000 0000 0000 5308 0000 +00 00 0 0 0 0 1 +0000 ed 5d -1 +5308 26 e0 -1 +-1 +-1 +1152 1d20 3f86 64fc 0000 0000 0000 0000 0000 0000 530a e026 +00 02 0 0 0 0 14 +-1 + +ed5e +611a c8cf f215 d92b 0000 0000 0000 0000 0000 0000 4d86 0000 +00 00 0 0 1 0 1 +0000 ed 5e -1 +-1 +-1 +611a c8cf f215 d92b 0000 0000 0000 0000 0000 0000 4d86 0002 +00 02 0 0 2 0 8 +-1 + +ed5f +1bb5 fc09 2dfa bab9 0000 0000 0000 0000 0000 0000 0000 0000 +d7 f3 0 0 0 0 1 +0000 ed 5f -1 +-1 +-1 +f5a1 fc09 2dfa bab9 0000 0000 0000 0000 0000 0000 0000 0002 +d7 f5 0 0 0 0 9 +-1 + +ed60 +2c9c 0dae 621e 2f66 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 60 -1 +-1 +0dae 0d + -1 +2c08 0dae 621e 0d66 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +ed61 +ffa8 90ca 0340 d847 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 61 -1 +-1 +-1 +ffa8 90ca 0340 d847 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +ed62 +a60b d9aa 6623 0b1a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 62 -1 +-1 +-1 +a6bb d9aa 6623 ffff 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +-1 + +ed63 +5222 88f9 9d9a e4d3 0000 0000 0000 0000 0000 0000 a2f0 0000 +00 00 0 0 0 0 1 +0000 ed 63 67 65 -1 +-1 +-1 +5222 88f9 9d9a e4d3 0000 0000 0000 0000 0000 0000 a2f0 0004 +00 02 0 0 0 0 20 +6567 d3 e4 -1 +-1 + +ed64 +2127 e425 66ac b2a3 0000 0000 0000 0000 0000 0000 43f2 0000 +00 00 0 0 0 0 1 +0000 ed 64 -1 +-1 +-1 +df9b e425 66ac b2a3 0000 0000 0000 0000 0000 0000 43f2 0002 +00 02 0 0 0 0 8 +-1 + +ed65 +63d2 1fa1 0788 881c 0000 0000 0000 0000 0000 0000 f207 0000 +00 00 0 1 0 0 1 +0000 ed 65 -1 +f207 eb 0e -1 +-1 +-1 +63d2 1fa1 0788 881c 0000 0000 0000 0000 0000 0000 f209 0eeb +00 02 1 1 0 0 14 +-1 + +ed66 +4088 a7e1 3ffd 919b 0000 0000 0000 0000 0000 0000 d193 0000 +00 00 0 0 1 0 1 +0000 ed 66 -1 +-1 +-1 +4088 a7e1 3ffd 919b 0000 0000 0000 0000 0000 0000 d193 0002 +00 02 0 0 0 0 8 +-1 + +ed67 +3624 b16a a4db b9de 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 67 -1 +b9de 93 -1 +-1 +-1 +3324 b16a a4db b9de 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 18 +b9de 69 -1 +-1 + +ed68 +5316 624b 7311 3106 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 68 -1 +-1 +624b 62 + -1 +5320 624b 7311 3162 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +ed69 +abd8 8d2f 89c7 c3d6 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 69 -1 +-1 +-1 +abd8 8d2f 89c7 c3d6 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +ed6a +bb5a 6fed 59bb 4e40 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 6a -1 +-1 +-1 +bb9c 6fed 59bb 9c80 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 15 +-1 + +ed6b +9e35 d240 1998 ab19 0000 0000 0000 0000 0000 0000 9275 0000 +00 00 0 0 0 0 1 +0000 ed 6b 98 61 -1 +6198 3f be -1 +-1 +-1 +9e35 d240 1998 be3f 0000 0000 0000 0000 0000 0000 9275 0004 +00 02 0 0 0 0 20 +-1 + +ed6c +0fb1 7d5b cadb 0893 0000 0000 0000 0000 0000 0000 d983 0000 +00 00 0 0 0 0 1 +0000 ed 6c -1 +-1 +-1 +f1b3 7d5b cadb 0893 0000 0000 0000 0000 0000 0000 d983 0002 +00 02 0 0 0 0 8 +-1 + +ed6d +3860 42da 5935 dc10 0000 0000 0000 0000 0000 0000 5cd3 0000 +00 00 0 0 0 0 1 +0000 ed 6d -1 +5cd3 a9 73 -1 +-1 +-1 +3860 42da 5935 dc10 0000 0000 0000 0000 0000 0000 5cd5 73a9 +00 02 0 0 0 0 14 +-1 + +ed6e +7752 bec3 0457 8c95 0000 0000 0000 0000 0000 0000 a787 0000 +00 00 0 0 0 0 1 +0000 ed 6e -1 +-1 +-1 +7752 bec3 0457 8c95 0000 0000 0000 0000 0000 0000 a787 0002 +00 02 0 0 0 0 8 +-1 + +ed6f +658b 7a7a ecf0 403c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 6f -1 +403c c4 -1 +-1 +-1 +6c2d 7a7a ecf0 403c 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 18 +403c 45 -1 +-1 + +ed70 +c6a1 f7d6 a3cb 288d 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 70 -1 +-1 +f7d6 f7 + -1 +c6a1 f7d6 a3cb 288d 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +ed71 +afa0 20b3 7b33 4ac1 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 71 -1 +-1 +-1 +afa0 20b3 7b33 4ac1 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +ed72 +5fd9 05cb 0c6c d18b 0000 0000 0000 0000 0000 0000 53db 0000 +00 00 0 0 0 0 1 +0000 ed 72 -1 +-1 +-1 +5f3e 05cb 0c6c 7daf 0000 0000 0000 0000 0000 0000 53db 0002 +00 02 0 0 0 0 15 +-1 + +ed73 +41c4 763a ecb0 ee62 0000 0000 0000 0000 0000 0000 aed5 0000 +00 00 0 0 0 0 1 +0000 ed 73 2a 79 -1 +-1 +-1 +41c4 763a ecb0 ee62 0000 0000 0000 0000 0000 0000 aed5 0004 +00 02 0 0 0 0 20 +792a d5 ae -1 +-1 + +ed74 +4454 f2d2 8340 7e76 0000 0000 0000 0000 0000 0000 0323 0000 +00 00 0 0 0 0 1 +0000 ed 74 -1 +-1 +-1 +bcbb f2d2 8340 7e76 0000 0000 0000 0000 0000 0000 0323 0002 +00 02 0 0 0 0 8 +-1 + +ed75 +7ca4 1615 5d2a a95b 0000 0000 0000 0000 0000 0000 7d00 0000 +00 00 1 1 0 0 1 +0000 ed 75 -1 +7d00 fd 4f -1 +-1 +-1 +7ca4 1615 5d2a a95b 0000 0000 0000 0000 0000 0000 7d02 4ffd +00 02 1 1 0 0 14 +-1 + +ed76 +cabf ff9a b98c a8e6 0000 0000 0000 0000 0000 0000 fe8e 0000 +00 00 0 0 2 0 1 +0000 ed 76 -1 +-1 +-1 +cabf ff9a b98c a8e6 0000 0000 0000 0000 0000 0000 fe8e 0002 +00 02 0 0 1 0 8 +-1 + +ed78 +58dd f206 2d6a af16 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 78 -1 +-1 +f206 f2 + -1 +f2a1 f206 2d6a af16 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +ed79 +e000 4243 8f7f ed90 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed 79 -1 +-1 +-1 +e000 4243 8f7f ed90 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 12 +-1 + +ed7a +32fd d819 d873 8dcf 0000 0000 0000 0000 0000 0000 5d22 0000 +00 00 0 0 0 0 1 +0000 ed 7a -1 +-1 +-1 +32b8 d819 d873 eaf2 0000 0000 0000 0000 0000 0000 5d22 0002 +00 02 0 0 0 0 15 +-1 + +ed7b +4f97 24b7 e105 1bf2 0000 0000 0000 0000 0000 0000 5e17 0000 +00 00 0 0 0 0 1 +0000 ed 7b 50 8c -1 +8c50 d8 48 -1 +-1 +-1 +4f97 24b7 e105 1bf2 0000 0000 0000 0000 0000 0000 48d8 0004 +00 02 0 0 0 0 20 +-1 + +ed7c +d333 29ca 9622 b452 0000 0000 0000 0000 0000 0000 0be6 0000 +00 00 0 0 0 0 1 +0000 ed 7c -1 +-1 +-1 +2d3b 29ca 9622 b452 0000 0000 0000 0000 0000 0000 0be6 0002 +00 02 0 0 0 0 8 +-1 + +ed7d +ecb6 073e dc1e 38d9 0000 0000 0000 0000 0000 0000 66f0 0000 +00 00 0 1 0 0 1 +0000 ed 7d -1 +66f0 4f fb -1 +-1 +-1 +ecb6 073e dc1e 38d9 0000 0000 0000 0000 0000 0000 66f2 fb4f +00 02 1 1 0 0 14 +-1 + +ed7e +b246 1a1a 933a 4b8b 0000 0000 0000 0000 0000 0000 2242 0000 +00 00 0 0 0 0 1 +0000 ed 7e -1 +-1 +-1 +b246 1a1a 933a 4b8b 0000 0000 0000 0000 0000 0000 2242 0002 +00 02 0 0 2 0 8 +-1 + +eda0 +1bc9 3d11 95c1 d097 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a0 -1 +d097 b7 -1 +-1 +-1 +1be5 3d10 95c2 d098 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +95c1 b7 -1 +-1 + +eda1 +ecdb 7666 537f 3bc3 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a1 -1 +3bc3 b4 -1 +-1 +-1 +ec0f 7665 537f 3bc4 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +eda2 +0121 9a82 5bbd 2666 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a2 -1 +-1 +9a82 9a + -1 +019f 9982 5bbd 2667 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +2666 9a -1 +-1 + +eda2_01 +0000 0200 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a2 -1 +-1 +0200 02 + -1 +0000 0100 0000 8001 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +8000 02 -1 +-1 + +eda2_02 +0000 569a 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a2 -1 +-1 +569a 56 + -1 +0000 559a 0000 8001 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +8000 56 -1 +-1 + +eda2_03 +0000 abcc 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a2 -1 +-1 +abcc ab + -1 +00bf aacc 0000 8001 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +8000 ab -1 +-1 + +eda3 +42c5 6334 1e28 32fa 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +32fa b3 -1 +-1 +-1 +4233 6234 1e28 32fb 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +eda3_01 +0000 0100 0000 01ff 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01ff 00 -1 +-1 +-1 +0044 0000 0000 0200 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +eda3_02 +0000 0100 0000 0100 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +0100 00 -1 +-1 +-1 +0040 0000 0000 0101 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +eda3_03 +0000 0100 0000 0107 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +0107 00 -1 +-1 +-1 +0044 0000 0000 0108 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +eda3_04 +0000 0100 0000 01ff 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01ff 80 -1 +-1 +-1 +0046 0000 0000 0200 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +eda3_05 +0000 0100 0000 01fd 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01fd 12 -1 +-1 +-1 +0055 0000 0000 01fe 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +eda3_06 +0000 0100 0000 01fe 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01fe 12 -1 +-1 +-1 +0051 0000 0000 01ff 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +eda3_07 +0000 0200 0000 01ff 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01ff 00 -1 +-1 +-1 +0000 0100 0000 0200 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +eda3_08 +0000 0800 0000 01fe 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01fe 00 -1 +-1 +-1 +0004 0700 0000 01ff 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +eda3_09 +0000 8100 0000 01ff 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01ff 00 -1 +-1 +-1 +0080 8000 0000 0200 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +eda3_10 +0000 8200 0000 01ff 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01ff 00 -1 +-1 +-1 +0084 8100 0000 0200 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +eda3_11 +0000 a900 0000 01ff 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a3 -1 +01ff 00 -1 +-1 +-1 +00a8 a800 0000 0200 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +eda8 +2a8e 1607 5938 12e8 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a8 -1 +12e8 d8 -1 +-1 +-1 +2aa4 1606 5937 12e7 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +5938 d8 -1 +-1 + +eda9 +1495 fb42 0466 0dbe 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed a9 -1 +0dbe 89 -1 +-1 +-1 +14bf fb41 0466 0dbd 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +edaa +2042 d791 a912 a533 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed aa -1 +-1 +d791 d7 + -1 +2097 d691 a912 a532 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +a533 d7 -1 +-1 + +edaa_01 +0000 0101 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed aa -1 +-1 +0101 01 + -1 +0040 0001 0000 7fff 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +8000 01 -1 +-1 + +edaa_02 +0000 56aa 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed aa -1 +-1 +56aa 56 + -1 +0000 55aa 0000 7fff 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +8000 56 -1 +-1 + +edaa_03 +0000 abcc 0000 8000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed aa -1 +-1 +abcc ab + -1 +00bf aacc 0000 7fff 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +8000 ab -1 +-1 + +edab +0037 f334 d3e1 199f 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed ab -1 +199f 49 -1 +-1 +-1 +00a4 f234 d3e1 199e 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +edab_01 +0000 5800 0000 007a 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed ab -1 +007a 7f -1 +-1 +-1 +0000 5700 0000 0079 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +edab_02 +0000 ab00 0000 00f1 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ed ab -1 +00f1 cd -1 +-1 +-1 +00bf aa00 0000 00f0 0000 0000 0000 0000 0000 0000 0000 0002 +00 02 0 0 0 0 16 +-1 + +edb0 +1045 0010 aad8 558e 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 331 +0000 ed b0 -1 +558e 53 94 30 05 44 24 22 b9 e9 77 23 71 e2 5c fb 49 -1 +-1 +-1 +1049 0000 aae8 559e 0000 0000 0000 0000 0000 0000 0000 0002 +00 20 0 0 0 0 331 +aad8 53 94 30 05 44 24 22 b9 e9 77 23 71 e2 5c fb 49 -1 +-1 + +edb1 +f4dd 0008 e4e0 9825 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 79 +0000 ed b1 -1 +9825 50 e5 41 f4 01 9f 11 85 -1 +-1 +-1 +f447 0004 e4e0 9829 0000 0000 0000 0000 0000 0000 0000 0002 +00 08 0 0 0 0 79 +-1 + +edb2 +8a34 0a40 d98c 37ce 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 205 +0000 ed b2 -1 +-1 +0a40 0a + 0940 09 + 0840 08 + 0740 07 + 0640 06 + 0540 05 + 0440 04 + 0340 03 + 0240 02 + 0140 01 + -1 +8a40 0040 d98c 37d8 0000 0000 0000 0000 0000 0000 0000 0002 +00 14 0 0 0 0 205 +37ce 0a 09 08 07 06 05 04 03 02 01 -1 +-1 + +edb3 +34ab 03e0 41b9 1d7c 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 58 +0000 ed b3 -1 +1d7c 9d 24 aa -1 +-1 +-1 +3453 00e0 41b9 1d7f 0000 0000 0000 0000 0000 0000 0000 0002 +00 06 0 0 0 0 58 +-1 + +edb8 +e553 0008 68e8 4dcf 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 163 +0000 ed b8 -1 +4dc8 29 85 a7 c3 55 74 23 0a -1 +-1 +-1 +e569 0000 68e0 4dc7 0000 0000 0000 0000 0000 0000 0000 0002 +00 10 0 0 0 0 163 +68e1 29 85 a7 c3 55 74 23 0a -1 +-1 + +edb9 +ffcd 0008 a171 c749 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 163 +0000 ed b9 -1 +c742 c6 09 85 ec 5a 01 4e 6c -1 +-1 +-1 +ff0b 0000 a171 c741 0000 0000 0000 0000 0000 0000 0000 0002 +00 10 0 0 0 0 163 +-1 + +edba +2567 069f d40d 6b55 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 121 +0000 ed ba -1 +-1 +069f 06 + 059f 05 + 049f 04 + 039f 03 + 029f 02 + 019f 01 + -1 +2540 009f d40d 6b4f 0000 0000 0000 0000 0000 0000 0000 0002 +00 0c 0 0 0 0 121 +6b50 01 02 03 04 05 06 -1 +-1 + +edbb +09c4 043b be49 1dd0 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 79 +0000 ed bb -1 +1dcd f9 71 c5 b6 -1 +-1 +-1 +0957 003b be49 1dcc 0000 0000 0000 0000 0000 0000 0000 0002 +00 08 0 0 0 0 79 +-1 + +ee +3e00 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 ee d0 -1 +-1 +-1 +eeac 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +ef +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5507 6d33 +00 00 0 0 0 0 1 +6d33 ef -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5505 0028 +00 01 0 0 0 0 11 +5505 34 6d -1 +-1 + +f0_1 +0018 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 f0 -1 +43f7 e9 af -1 +-1 +-1 +0018 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f9 afe9 +00 01 0 0 0 0 11 +-1 + +f0_2 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 f0 -1 +43f7 e9 af -1 +-1 +-1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0001 +00 01 0 0 0 0 5 +-1 + +f1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4143 0000 +00 00 0 0 0 0 1 +0000 f1 -1 +4143 ce e8 -1 +-1 +-1 +e8ce 0000 0000 0000 0000 0000 0000 0000 0000 0000 4145 0001 +00 01 0 0 0 0 10 +-1 + +f2_1 +0007 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 f2 1b e1 -1 +-1 +-1 +0007 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e11b +00 01 0 0 0 0 10 +-1 + +f2_2 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 f2 1b e1 -1 +-1 +-1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 +-1 + +f3 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 1 1 0 0 1 +0000 f3 -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 0 0 0 0 4 +-1 + +f4_1 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 f4 61 9c -1 +-1 +-1 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5696 9c61 +00 01 0 0 0 0 17 +5696 03 00 -1 +-1 + +f4_2 +008e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 f4 61 9c -1 +-1 +-1 +008e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0003 +00 01 0 0 0 0 10 +-1 + +f5 +53e3 1459 775f 1a2f 0000 0000 0000 0000 0000 0000 ec12 0000 +00 00 0 0 0 0 1 +0000 f5 -1 +-1 +-1 +53e3 1459 775f 1a2f 0000 0000 0000 0000 0000 0000 ec10 0001 +00 01 0 0 0 0 11 +ec10 e3 53 -1 +-1 + +f6 +0600 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 f6 a7 -1 +-1 +-1 +a7a0 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +f7 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5507 6d33 +00 00 0 0 0 0 1 +6d33 f7 -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5505 0030 +00 01 0 0 0 0 11 +5505 34 6d -1 +-1 + +f8_1 +0018 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 f8 -1 +43f7 e9 af -1 +-1 +-1 +0018 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0001 +00 01 0 0 0 0 5 +-1 + +f8_2 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f7 0000 +00 00 0 0 0 0 1 +0000 f8 -1 +43f7 e9 af -1 +-1 +-1 +0098 0000 0000 0000 0000 0000 0000 0000 0000 0000 43f9 afe9 +00 01 0 0 0 0 11 +-1 + +f9 +0000 0000 0000 ce32 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 f9 -1 +-1 +-1 +0000 0000 0000 ce32 0000 0000 0000 0000 0000 0000 ce32 0001 +00 01 0 0 0 0 6 +-1 + +fa_1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 fa 1b e1 -1 +-1 +-1 +0087 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e11b +00 01 0 0 0 0 10 +-1 + +fa_2 +0007 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 fa 1b e1 -1 +-1 +-1 +0007 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0003 +00 01 0 0 0 0 10 +-1 + +fb +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 fb -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 +00 01 1 1 0 0 4 +-1 + +fc_1 +008e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 fc 61 9c -1 +-1 +-1 +008e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5696 9c61 +00 01 0 0 0 0 17 +5696 03 00 -1 +-1 + +fc_2 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0000 +00 00 0 0 0 0 1 +0000 fc 61 9c -1 +-1 +-1 +000e 0000 0000 0000 0000 0000 0000 0000 0000 0000 5698 0003 +00 01 0 0 0 0 10 +-1 + +fd09 +466a a623 bab2 d788 0000 0000 0000 0000 c9e8 f698 0000 0000 +00 00 0 0 0 0 1 +0000 fd 09 -1 +-1 +-1 +4649 a623 bab2 d788 0000 0000 0000 0000 c9e8 9cbb 0000 0002 +00 02 0 0 0 0 15 +-1 + +fd19 +b3e5 5336 76cb 54e2 0000 0000 0000 0000 b9ce 8624 0000 0000 +00 00 0 0 0 0 1 +0000 fd 19 -1 +-1 +-1 +b3ec 5336 76cb 54e2 0000 0000 0000 0000 b9ce fcef 0000 0002 +00 02 0 0 0 0 15 +-1 + +fd21 +c924 5c83 e0e2 eddb 0000 0000 0000 0000 6e9f ba55 0000 0000 +00 00 0 0 0 0 1 +0000 fd 21 46 47 -1 +-1 +-1 +c924 5c83 e0e2 eddb 0000 0000 0000 0000 6e9f 4746 0000 0004 +00 02 0 0 0 0 14 +-1 + +fd22 +1235 f0b6 b74c cc9f 0000 0000 0000 0000 8b00 81e4 0000 0000 +00 00 0 0 0 0 1 +0000 fd 22 9a e2 -1 +-1 +-1 +1235 f0b6 b74c cc9f 0000 0000 0000 0000 8b00 81e4 0000 0004 +00 02 0 0 0 0 20 +e29a e4 81 -1 +-1 + +fd23 +69f2 c1d3 0f6f 2169 0000 0000 0000 0000 e39e 2605 0000 0000 +00 00 0 0 0 0 1 +0000 fd 23 -1 +-1 +-1 +69f2 c1d3 0f6f 2169 0000 0000 0000 0000 e39e 2606 0000 0002 +00 02 0 0 0 0 10 +-1 + +fd24 +5554 9684 d36a dac3 0000 0000 0000 0000 7803 6434 0000 0000 +00 00 0 0 0 0 1 +0000 fd 24 -1 +-1 +-1 +5520 9684 d36a dac3 0000 0000 0000 0000 7803 6534 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd25 +cd0b b5e4 a754 9526 0000 0000 0000 0000 3dcb 03b2 0000 0000 +00 00 0 0 0 0 1 +0000 fd 25 -1 +-1 +-1 +cd03 b5e4 a754 9526 0000 0000 0000 0000 3dcb 02b2 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd26 +2452 300b b4a1 929d 0000 0000 0000 0000 c259 3f30 0000 0000 +00 00 0 0 0 0 1 +0000 fd 26 77 -1 +-1 +-1 +2452 300b b4a1 929d 0000 0000 0000 0000 c259 7730 0000 0003 +00 02 0 0 0 0 11 +-1 + +fd29 +5812 49d0 ec95 011c 0000 0000 0000 0000 ec6c 594c 0000 0000 +00 00 0 0 0 0 1 +0000 fd 29 -1 +-1 +-1 +5830 49d0 ec95 011c 0000 0000 0000 0000 ec6c b298 0000 0002 +00 02 0 0 0 0 15 +-1 + +fd2a +0f82 3198 87e3 7c1c 0000 0000 0000 0000 1bb4 eb1a 0000 0000 +00 00 0 0 0 0 1 +0000 fd 2a 91 f9 -1 +f991 92 bf -1 +-1 +-1 +0f82 3198 87e3 7c1c 0000 0000 0000 0000 1bb4 bf92 0000 0004 +00 02 0 0 0 0 20 +-1 + +fd2b +ab27 942f 82fa 6f2f 0000 0000 0000 0000 9438 ebbc 0000 0000 +00 00 0 0 0 0 1 +0000 fd 2b -1 +-1 +-1 +ab27 942f 82fa 6f2f 0000 0000 0000 0000 9438 ebbb 0000 0002 +00 02 0 0 0 0 10 +-1 + +fd2c +665d 0ab1 5656 e5a9 0000 0000 0000 0000 5fb9 4df7 0000 0000 +00 00 0 0 0 0 1 +0000 fd 2c -1 +-1 +-1 +66a9 0ab1 5656 e5a9 0000 0000 0000 0000 5fb9 4df8 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd2d +32fb f78a b906 31d0 0000 0000 0000 0000 c72a e91c 0000 0000 +00 00 0 0 0 0 1 +0000 fd 2d -1 +-1 +-1 +320b f78a b906 31d0 0000 0000 0000 0000 c72a e91b 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd2e +2114 4923 6e65 006c 0000 0000 0000 0000 da39 c0cb 0000 0000 +00 00 0 0 0 0 1 +0000 fd 2e 49 -1 +-1 +-1 +2114 4923 6e65 006c 0000 0000 0000 0000 da39 c049 0000 0003 +00 02 0 0 0 0 11 +-1 + +fd34 +d56a 6f24 7df7 74f0 0000 0000 0000 0000 365a efc4 0000 0000 +00 00 0 0 0 0 1 +0000 fd 34 b8 -1 +ef7c e0 -1 +-1 +-1 +d5a0 6f24 7df7 74f0 0000 0000 0000 0000 365a efc4 0000 0003 +00 02 0 0 0 0 23 +ef7c e1 -1 +-1 + +fd35 +8cda 35d8 7c1a 1c0a 0000 0000 0000 0000 62bb aec6 0000 0000 +00 00 0 0 0 0 1 +0000 fd 35 ab -1 +ae71 a6 -1 +-1 +-1 +8ca2 35d8 7c1a 1c0a 0000 0000 0000 0000 62bb aec6 0000 0003 +00 02 0 0 0 0 23 +ae71 a5 -1 +-1 + +fd36 +e0f9 ae1f 4aef c9d5 0000 0000 0000 0000 c0db bdd4 0000 0000 +00 00 0 0 0 0 1 +0000 fd 36 81 c5 -1 +-1 +-1 +e0f9 ae1f 4aef c9d5 0000 0000 0000 0000 c0db bdd4 0000 0004 +00 02 0 0 0 0 19 +bd55 c5 -1 +-1 + +fd39 +2603 726f 9c7f cd46 0000 0000 0000 0000 dc45 54d5 dc57 0000 +00 00 0 0 0 0 1 +0000 fd 39 -1 +-1 +-1 +2631 726f 9c7f cd46 0000 0000 0000 0000 dc45 312c dc57 0002 +00 02 0 0 0 0 15 +-1 + +fd44 +0e58 7192 3580 9be4 0000 0000 0000 0000 1b79 685e 0000 0000 +00 00 0 0 0 0 1 +0000 fd 44 -1 +-1 +-1 +0e58 6892 3580 9be4 0000 0000 0000 0000 1b79 685e 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd45 +6555 a488 5ae8 c948 0000 0000 0000 0000 d7b8 a177 0000 0000 +00 00 0 0 0 0 1 +0000 fd 45 -1 +-1 +-1 +6555 7788 5ae8 c948 0000 0000 0000 0000 d7b8 a177 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd46 +87f3 17d5 5eea 830b 0000 0000 0000 0000 dcee 3afc 0000 0000 +00 00 0 0 0 0 1 +0000 fd 46 4d -1 +3b49 c9 -1 +-1 +-1 +87f3 c9d5 5eea 830b 0000 0000 0000 0000 dcee 3afc 0000 0003 +00 02 0 0 0 0 19 +-1 + +fd4c +7e6b bd4b 24b6 ff94 0000 0000 0000 0000 862d 01d0 0000 0000 +00 00 0 0 0 0 1 +0000 fd 4c -1 +-1 +-1 +7e6b bd01 24b6 ff94 0000 0000 0000 0000 862d 01d0 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd4d +50cf e3fe 998e dba2 0000 0000 0000 0000 c4f5 c7c9 0000 0000 +00 00 0 0 0 0 1 +0000 fd 4d -1 +-1 +-1 +50cf e3c9 998e dba2 0000 0000 0000 0000 c4f5 c7c9 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd4e +2c0f 69d7 748a 9290 0000 0000 0000 0000 904f bb9a 0000 0000 +00 00 0 0 0 0 1 +0000 fd 4e 67 -1 +bc01 9d -1 +-1 +-1 +2c0f 699d 748a 9290 0000 0000 0000 0000 904f bb9a 0000 0003 +00 02 0 0 0 0 19 +-1 + +fd54 +d7f9 f65b b001 d4c4 0000 0000 0000 0000 4b8e d437 0000 0000 +00 00 0 0 0 0 1 +0000 fd 54 -1 +-1 +-1 +d7f9 f65b d401 d4c4 0000 0000 0000 0000 4b8e d437 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd55 +ab98 fdab 254a 010e 0000 0000 0000 0000 126b 13a9 0000 0000 +00 00 0 0 0 0 1 +0000 fd 55 -1 +-1 +-1 +ab98 fdab a94a 010e 0000 0000 0000 0000 126b 13a9 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd56 +d3e8 df10 5442 b641 0000 0000 0000 0000 a5a0 fda2 0000 0000 +00 00 0 0 0 0 1 +0000 fd 56 ce -1 +fd70 78 -1 +-1 +-1 +d3e8 df10 7842 b641 0000 0000 0000 0000 a5a0 fda2 0000 0003 +00 02 0 0 0 0 19 +-1 + +fd5c +11d5 c489 e220 434e 0000 0000 0000 0000 3244 d8bb 0000 0000 +00 00 0 0 0 0 1 +0000 fd 5c -1 +-1 +-1 +11d5 c489 e2d8 434e 0000 0000 0000 0000 3244 d8bb 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd5d +e945 dbae 32ea 4f7e 0000 0000 0000 0000 fa56 074e 0000 0000 +00 00 0 0 0 0 1 +0000 fd 5d -1 +-1 +-1 +e945 dbae 324e 4f7e 0000 0000 0000 0000 fa56 074e 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd5e +6f3b e9dc 7a06 14f3 0000 0000 0000 0000 ec76 8aaa 0000 0000 +00 00 0 0 0 0 1 +0000 fd 5e c6 -1 +8a70 8c -1 +-1 +-1 +6f3b e9dc 7a8c 14f3 0000 0000 0000 0000 ec76 8aaa 0000 0003 +00 02 0 0 0 0 19 +-1 + +fd60 +8579 005d d9ee faee 0000 0000 0000 0000 382d 2f95 0000 0000 +00 00 0 0 0 0 1 +0000 fd 60 -1 +-1 +-1 +8579 005d d9ee faee 0000 0000 0000 0000 382d 0095 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd61 +5682 dbc3 b495 9799 0000 0000 0000 0000 85b2 3c1e 0000 0000 +00 00 0 0 0 0 1 +0000 fd 61 -1 +-1 +-1 +5682 dbc3 b495 9799 0000 0000 0000 0000 85b2 c31e 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd62 +906b f52e f3d8 1e8c 0000 0000 0000 0000 ddba 9a02 0000 0000 +00 00 0 0 0 0 1 +0000 fd 62 -1 +-1 +-1 +906b f52e f3d8 1e8c 0000 0000 0000 0000 ddba f302 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd63 +9d59 beb9 d826 0eaa 0000 0000 0000 0000 4290 a4b9 0000 0000 +00 00 0 0 0 0 1 +0000 fd 63 -1 +-1 +-1 +9d59 beb9 d826 0eaa 0000 0000 0000 0000 4290 26b9 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd64 +7b0e e394 8a25 cddf 0000 0000 0000 0000 9784 2116 0000 0000 +00 00 0 0 0 0 1 +0000 fd 64 -1 +-1 +-1 +7b0e e394 8a25 cddf 0000 0000 0000 0000 9784 2116 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd65 +b827 eb4f f666 c52a 0000 0000 0000 0000 6206 831f 0000 0000 +00 00 0 0 0 0 1 +0000 fd 65 -1 +-1 +-1 +b827 eb4f f666 c52a 0000 0000 0000 0000 6206 1f1f 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd66 +9129 e4ee e3a3 86ca 0000 0000 0000 0000 4d93 5b24 0000 0000 +00 00 0 0 0 0 1 +0000 fd 66 80 -1 +5aa4 77 -1 +-1 +-1 +9129 e4ee e3a3 77ca 0000 0000 0000 0000 4d93 5b24 0000 0003 +00 02 0 0 0 0 19 +-1 + +fd67 +db7a b40b 7b58 49fd 0000 0000 0000 0000 266f 9e7b 0000 0000 +00 00 0 0 0 0 1 +0000 fd 67 -1 +-1 +-1 +db7a b40b 7b58 49fd 0000 0000 0000 0000 266f db7b 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd68 +4d1d 4fd9 783e 0745 0000 0000 0000 0000 0c3d 82b5 0000 0000 +00 00 0 0 0 0 1 +0000 fd 68 -1 +-1 +-1 +4d1d 4fd9 783e 0745 0000 0000 0000 0000 0c3d 824f 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd69 +1589 5ceb b5db 922a 0000 0000 0000 0000 3c3a dc98 0000 0000 +00 00 0 0 0 0 1 +0000 fd 69 -1 +-1 +-1 +1589 5ceb b5db 922a 0000 0000 0000 0000 3c3a dceb 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd6a +607a e035 5bb9 dac0 0000 0000 0000 0000 fc04 b5b7 0000 0000 +00 00 0 0 0 0 1 +0000 fd 6a -1 +-1 +-1 +607a e035 5bb9 dac0 0000 0000 0000 0000 fc04 b55b 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd6b +db2a e244 1182 096f 0000 0000 0000 0000 198e 91a6 0000 0000 +00 00 0 0 0 0 1 +0000 fd 6b -1 +-1 +-1 +db2a e244 1182 096f 0000 0000 0000 0000 198e 9182 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd6c +a0be 34ef 8fcd 40a7 0000 0000 0000 0000 4481 c215 0000 0000 +00 00 0 0 0 0 1 +0000 fd 6c -1 +-1 +-1 +a0be 34ef 8fcd 40a7 0000 0000 0000 0000 4481 c2c2 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd6d +fdfc 727a b839 50a6 0000 0000 0000 0000 e782 02e5 0000 0000 +00 00 0 0 0 0 1 +0000 fd 6d -1 +-1 +-1 +fdfc 727a b839 50a6 0000 0000 0000 0000 e782 02e5 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd6e +cfd4 6ef1 c07d eb96 0000 0000 0000 0000 b0f9 b0a3 0000 0000 +00 00 0 0 0 0 1 +0000 fd 6e 78 -1 +b11b f8 -1 +-1 +-1 +cfd4 6ef1 c07d ebf8 0000 0000 0000 0000 b0f9 b0a3 0000 0003 +00 02 0 0 0 0 19 +-1 + +fd6f +8e1d a138 f20a 298e 0000 0000 0000 0000 b600 0cf7 0000 0000 +00 00 0 0 0 0 1 +0000 fd 6f -1 +-1 +-1 +8e1d a138 f20a 298e 0000 0000 0000 0000 b600 0c8e 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd70 +2677 33c5 c0dc 262f 0000 0000 0000 0000 d3dc 23a1 0000 0000 +00 00 0 0 0 0 1 +0000 fd 70 53 -1 +-1 +-1 +2677 33c5 c0dc 262f 0000 0000 0000 0000 d3dc 23a1 0000 0003 +00 02 0 0 0 0 19 +23f4 33 -1 +-1 + +fd71 +892e 04ae d67f 81ec 0000 0000 0000 0000 7757 bfab 0000 0000 +00 00 0 0 0 0 1 +0000 fd 71 b4 -1 +-1 +-1 +892e 04ae d67f 81ec 0000 0000 0000 0000 7757 bfab 0000 0003 +00 02 0 0 0 0 19 +bf5f ae -1 +-1 + +fd72 +d2dc c23c dd54 6559 0000 0000 0000 0000 b32b 7c80 0000 0000 +00 00 0 0 0 0 1 +0000 fd 72 e3 -1 +-1 +-1 +d2dc c23c dd54 6559 0000 0000 0000 0000 b32b 7c80 0000 0003 +00 02 0 0 0 0 19 +7c63 dd -1 +-1 + +fd73 +49ef bff2 8409 02dd 0000 0000 0000 0000 af95 8762 0000 0000 +00 00 0 0 0 0 1 +0000 fd 73 17 -1 +-1 +-1 +49ef bff2 8409 02dd 0000 0000 0000 0000 af95 8762 0000 0003 +00 02 0 0 0 0 19 +8779 09 -1 +-1 + +fd74 +9479 9817 fa2e 1fe0 0000 0000 0000 0000 a395 92db 0000 0000 +00 00 0 0 0 0 1 +0000 fd 74 f6 -1 +-1 +-1 +9479 9817 fa2e 1fe0 0000 0000 0000 0000 a395 92db 0000 0003 +00 02 0 0 0 0 19 +92d1 1f -1 +-1 + +fd75 +c8d6 6aa4 180e e37b 0000 0000 0000 0000 02cf 1724 0000 0000 +00 00 0 0 0 0 1 +0000 fd 75 ab -1 +-1 +-1 +c8d6 6aa4 180e e37b 0000 0000 0000 0000 02cf 1724 0000 0003 +00 02 0 0 0 0 19 +16cf 7b -1 +-1 + +fd77 +6f9e 7475 78ad 2b8c 0000 0000 0000 0000 c6b7 6b4d 0000 0000 +00 00 0 0 0 0 1 +0000 fd 77 f7 -1 +-1 +-1 +6f9e 7475 78ad 2b8c 0000 0000 0000 0000 c6b7 6b4d 0000 0003 +00 02 0 0 0 0 19 +6b44 6f -1 +-1 + +fd7c +f228 93fc a3d4 dc9e 0000 0000 0000 0000 21ac c617 0000 0000 +00 00 0 0 0 0 1 +0000 fd 7c -1 +-1 +-1 +c628 93fc a3d4 dc9e 0000 0000 0000 0000 21ac c617 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd7d +93e5 3cbe 02c3 26c2 0000 0000 0000 0000 ca81 92b9 0000 0000 +00 00 0 0 0 0 1 +0000 fd 7d -1 +-1 +-1 +b9e5 3cbe 02c3 26c2 0000 0000 0000 0000 ca81 92b9 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd7e +1596 daba 147b f362 0000 0000 0000 0000 7110 d45f 0000 0000 +00 00 0 0 0 0 1 +0000 fd 7e e4 -1 +d443 aa -1 +-1 +-1 +aa96 daba 147b f362 0000 0000 0000 0000 7110 d45f 0000 0003 +00 02 0 0 0 0 19 +-1 + +fd84 +bfba 7cae c4da 7aee 0000 0000 0000 0000 43ee c08e 0000 0000 +00 00 0 0 0 0 1 +0000 fd 84 -1 +-1 +-1 +7f2d 7cae c4da 7aee 0000 0000 0000 0000 43ee c08e 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd85 +52dd 1dea 324f 84e7 0000 0000 0000 0000 e7a8 f799 0000 0000 +00 00 0 0 0 0 1 +0000 fd 85 -1 +-1 +-1 +eba8 1dea 324f 84e7 0000 0000 0000 0000 e7a8 f799 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd86 +fc9c b882 43f9 3e15 0000 0000 0000 0000 9781 8b33 0000 0000 +00 00 0 0 0 0 1 +0000 fd 86 ce -1 +8b01 e1 -1 +-1 +-1 +dd89 b882 43f9 3e15 0000 0000 0000 0000 9781 8b33 0000 0003 +00 02 0 0 0 0 19 +-1 + +fd8c +fd9c 42b1 5e8a 081c 0000 0000 0000 0000 cb58 3b4e 0000 0000 +00 00 0 0 0 0 1 +0000 fd 8c -1 +-1 +-1 +3839 42b1 5e8a 081c 0000 0000 0000 0000 cb58 3b4e 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd8d +9301 7750 8ad6 295c 0000 0000 0000 0000 695c 99fb 0000 0000 +00 00 0 0 0 0 1 +0000 fd 8d -1 +-1 +-1 +8f89 7750 8ad6 295c 0000 0000 0000 0000 695c 99fb 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd8e +41ee 398f f6dc 06f3 0000 0000 0000 0000 f34a 1aa2 0000 0000 +00 00 0 0 0 0 1 +0000 fd 8e 78 -1 +1b1a c0 -1 +-1 +-1 +0101 398f f6dc 06f3 0000 0000 0000 0000 f34a 1aa2 0000 0003 +00 02 0 0 0 0 19 +-1 + +fd94 +0431 d255 b9d6 20bb 0000 0000 0000 0000 1e6a d5ef 0000 0000 +00 00 0 0 0 0 1 +0000 fd 94 -1 +-1 +-1 +2f3b d255 b9d6 20bb 0000 0000 0000 0000 1e6a d5ef 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd95 +8b5d b455 2388 ec1e 0000 0000 0000 0000 7637 cb97 0000 0000 +00 00 0 0 0 0 1 +0000 fd 95 -1 +-1 +-1 +f4a3 b455 2388 ec1e 0000 0000 0000 0000 7637 cb97 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd96 +a0c6 22ac 0413 4b13 0000 0000 0000 0000 b44e c08b 0000 0000 +00 00 0 0 0 0 1 +0000 fd 96 55 -1 +c0e0 7b -1 +-1 +-1 +2536 22ac 0413 4b13 0000 0000 0000 0000 b44e c08b 0000 0003 +00 02 0 0 0 0 19 +-1 + +fd9c +a44a 3ecf ced3 66ec 0000 0000 0000 0000 4bff b133 0000 0000 +00 00 0 0 0 0 1 +0000 fd 9c -1 +-1 +-1 +f3a3 3ecf ced3 66ec 0000 0000 0000 0000 4bff b133 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd9d +06c0 8bd0 131b 3094 0000 0000 0000 0000 afc3 7409 0000 0000 +00 00 0 0 0 0 1 +0000 fd 9d -1 +-1 +-1 +fdbb 8bd0 131b 3094 0000 0000 0000 0000 afc3 7409 0000 0002 +00 02 0 0 0 0 8 +-1 + +fd9e +b983 981f bb8e d6d5 0000 0000 0000 0000 5c3b f66c 0000 0000 +00 00 0 0 0 0 1 +0000 fd 9e f9 -1 +f665 f3 -1 +-1 +-1 +c583 981f bb8e d6d5 0000 0000 0000 0000 5c3b f66c 0000 0003 +00 02 0 0 0 0 19 +-1 + +fda4 +b079 79c0 2c7c 3e06 0000 0000 0000 0000 7399 037a 0000 0000 +00 00 0 0 0 0 1 +0000 fd a4 -1 +-1 +-1 +0054 79c0 2c7c 3e06 0000 0000 0000 0000 7399 037a 0000 0002 +00 02 0 0 0 0 8 +-1 + +fda5 +01d2 654d 9653 2b33 0000 0000 0000 0000 61a4 8f88 0000 0000 +00 00 0 0 0 0 1 +0000 fd a5 -1 +-1 +-1 +0054 654d 9653 2b33 0000 0000 0000 0000 61a4 8f88 0000 0002 +00 02 0 0 0 0 8 +-1 + +fda6 +ddb8 40bb 3742 6ff1 0000 0000 0000 0000 ad28 659b 0000 0000 +00 00 0 0 0 0 1 +0000 fd a6 53 -1 +65ee 95 -1 +-1 +-1 +9594 40bb 3742 6ff1 0000 0000 0000 0000 ad28 659b 0000 0003 +00 02 0 0 0 0 19 +-1 + +fdac +7a43 72e3 dd4d 1b62 0000 0000 0000 0000 4753 5d63 0000 0000 +00 00 0 0 0 0 1 +0000 fd ac -1 +-1 +-1 +2724 72e3 dd4d 1b62 0000 0000 0000 0000 4753 5d63 0000 0002 +00 02 0 0 0 0 8 +-1 + +fdad +7d8e 2573 19cc 78fb 0000 0000 0000 0000 5248 8391 0000 0000 +00 00 0 0 0 0 1 +0000 fd ad -1 +-1 +-1 +eca8 2573 19cc 78fb 0000 0000 0000 0000 5248 8391 0000 0002 +00 02 0 0 0 0 8 +-1 + +fdae +a0da bc27 257b 5489 0000 0000 0000 0000 fa59 81f8 0000 0000 +00 00 0 0 0 0 1 +0000 fd ae 09 -1 +8201 cb -1 +-1 +-1 +6b28 bc27 257b 5489 0000 0000 0000 0000 fa59 81f8 0000 0003 +00 02 0 0 0 0 19 +-1 + +fdb4 +4f95 3461 f173 8ad3 0000 0000 0000 0000 c1a2 8265 0000 0000 +00 00 0 0 0 0 1 +0000 fd b4 -1 +-1 +-1 +cf8c 3461 f173 8ad3 0000 0000 0000 0000 c1a2 8265 0000 0002 +00 02 0 0 0 0 8 +-1 + +fdb5 +17f6 e6ea f919 327c 0000 0000 0000 0000 4299 9733 0000 0000 +00 00 0 0 0 0 1 +0000 fd b5 -1 +-1 +-1 +3720 e6ea f919 327c 0000 0000 0000 0000 4299 9733 0000 0002 +00 02 0 0 0 0 8 +-1 + +fdb6 +db37 3509 d6ca b16a 0000 0000 0000 0000 a099 df6d 0000 0000 +00 00 0 0 0 0 1 +0000 fd b6 4b -1 +dfb8 64 -1 +-1 +-1 +ffac 3509 d6ca b16a 0000 0000 0000 0000 a099 df6d 0000 0003 +00 02 0 0 0 0 19 +-1 + +fdbc +b4fc 9302 e35d 31bc 0000 0000 0000 0000 5c12 1c92 0000 0000 +00 00 0 0 0 0 1 +0000 fd bc -1 +-1 +-1 +b49a 9302 e35d 31bc 0000 0000 0000 0000 5c12 1c92 0000 0002 +00 02 0 0 0 0 8 +-1 + +fdbd +391c 7b82 dfeb 03ee 0000 0000 0000 0000 be7b b30f 0000 0000 +00 00 0 0 0 0 1 +0000 fd bd -1 +-1 +-1 +391a 7b82 dfeb 03ee 0000 0000 0000 0000 be7b b30f 0000 0002 +00 02 0 0 0 0 8 +-1 + +fdbe +0970 0b31 f4ad 9d4c 0000 0000 0000 0000 b95a a96b 0000 0000 +00 00 0 0 0 0 1 +0000 fd be 6b -1 +a9d6 c0 -1 +-1 +-1 +0903 0b31 f4ad 9d4c 0000 0000 0000 0000 b95a a96b 0000 0003 +00 02 0 0 0 0 19 +-1 + +fdcb00 +85ac 46d0 a135 20c5 0000 0000 0000 0000 b8de 2776 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0b 00 -1 +2781 50 -1 +-1 +-1 +85a4 a0d0 a135 20c5 0000 0000 0000 0000 b8de 2776 0000 0004 +00 02 0 0 0 0 23 +2781 a0 -1 +-1 + +fdcb01 +577c 2b76 3576 280a 0000 0000 0000 0000 ae22 5c35 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c8 01 -1 +5bfd cb -1 +-1 +-1 +5781 2b97 3576 280a 0000 0000 0000 0000 ae22 5c35 0000 0004 +00 02 0 0 0 0 23 +5bfd 97 -1 +-1 + +fdcb02 +dc23 2b37 83c8 5dd9 0000 0000 0000 0000 b2d2 3df2 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 14 02 -1 +3e06 58 -1 +-1 +-1 +dca0 2b37 b0c8 5dd9 0000 0000 0000 0000 b2d2 3df2 0000 0004 +00 02 0 0 0 0 23 +3e06 b0 -1 +-1 + +fdcb03 +57ee c179 b2b6 7058 0000 0000 0000 0000 3f2e 57e7 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 3a 03 -1 +5821 1a -1 +-1 +-1 +5720 c179 b234 7058 0000 0000 0000 0000 3f2e 57e7 0000 0004 +00 02 0 0 0 0 23 +5821 34 -1 +-1 + +fdcb04 +ed18 3f03 3327 f35a 0000 0000 0000 0000 cbf2 5071 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 67 04 -1 +50d8 92 -1 +-1 +-1 +ed21 3f03 3327 255a 0000 0000 0000 0000 cbf2 5071 0000 0004 +00 02 0 0 0 0 23 +50d8 25 -1 +-1 + +fdcb05 +7a39 0858 db6c dbe0 0000 0000 0000 0000 157a b25b 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 1e 05 -1 +b279 66 -1 +-1 +-1 +7a8c 0858 db6c dbcc 0000 0000 0000 0000 157a b25b 0000 0004 +00 02 0 0 0 0 23 +b279 cc -1 +-1 + +fdcb06 +f285 89a2 e78f ef74 0000 0000 0000 0000 140d ff27 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 72 06 -1 +ff99 f1 -1 +-1 +-1 +f2a1 89a2 e78f ef74 0000 0000 0000 0000 140d ff27 0000 0004 +00 02 0 0 0 0 23 +ff99 e3 -1 +-1 + +fdcb07 +8cce f3a7 3a6e 8f0a 0000 0000 0000 0000 8423 07eb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 24 07 -1 +080f ae -1 +-1 +-1 +5d09 f3a7 3a6e 8f0a 0000 0000 0000 0000 8423 07eb 0000 0004 +00 02 0 0 0 0 23 +080f 5d -1 +-1 + +fdcb08 +a611 e8ec c958 7bda 0000 0000 0000 0000 194d 6137 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 25 08 -1 +615c 83 -1 +-1 +-1 +a681 c1ec c958 7bda 0000 0000 0000 0000 194d 6137 0000 0004 +00 02 0 0 0 0 23 +615c c1 -1 +-1 + +fdcb09 +54b1 fa1a 84e8 4fa5 0000 0000 0000 0000 1ad3 19da 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a0 09 -1 +197a 27 -1 +-1 +-1 +5485 fa93 84e8 4fa5 0000 0000 0000 0000 1ad3 19da 0000 0004 +00 02 0 0 0 0 23 +197a 93 -1 +-1 + +fdcb0a +b3ef a2bb e5d6 9617 0000 0000 0000 0000 f946 eef6 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e1 0a -1 +eed7 19 -1 +-1 +-1 +b389 a2bb 8cd6 9617 0000 0000 0000 0000 f946 eef6 0000 0004 +00 02 0 0 0 0 23 +eed7 8c -1 +-1 + +fdcb0b +ae10 8c4e e159 1c54 0000 0000 0000 0000 e108 c68f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0c 0b -1 +c69b f2 -1 +-1 +-1 +ae28 8c4e e179 1c54 0000 0000 0000 0000 e108 c68f 0000 0004 +00 02 0 0 0 0 23 +c69b 79 -1 +-1 + +fdcb0c +8719 6b16 4c3b 180a 0000 0000 0000 0000 175a 8c9d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d7 0c -1 +8c74 ae -1 +-1 +-1 +8700 6b16 4c3b 570a 0000 0000 0000 0000 175a 8c9d 0000 0004 +00 02 0 0 0 0 23 +8c74 57 -1 +-1 + +fdcb0d +1204 e0cb 3ab1 2416 0000 0000 0000 0000 1de4 fe2d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 11 0d -1 +fe3e 1b -1 +-1 +-1 +128d e0cb 3ab1 248d 0000 0000 0000 0000 1de4 fe2d 0000 0004 +00 02 0 0 0 0 23 +fe3e 8d -1 +-1 + +fdcb0e +8da4 8f91 fc5a 5e2c 0000 0000 0000 0000 b2f2 f223 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0c 0e -1 +f22f f7 -1 +-1 +-1 +8da9 8f91 fc5a 5e2c 0000 0000 0000 0000 b2f2 f223 0000 0004 +00 02 0 0 0 0 23 +f22f fb -1 +-1 + +fdcb0f +fbb0 2ac9 ec6b 6511 0000 0000 0000 0000 c93a ce38 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 15 0f -1 +ce4d 44 -1 +-1 +-1 +2224 2ac9 ec6b 6511 0000 0000 0000 0000 c93a ce38 0000 0004 +00 02 0 0 0 0 23 +ce4d 22 -1 +-1 + +fdcb10 +259d 3852 590d ac66 0000 0000 0000 0000 144f 42a2 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7a 10 -1 +431c 1c -1 +-1 +-1 +252c 3952 590d ac66 0000 0000 0000 0000 144f 42a2 0000 0004 +00 02 0 0 0 0 23 +431c 39 -1 +-1 + +fdcb11 +bc60 61c1 f5f8 af24 0000 0000 0000 0000 4019 9c90 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7b 11 -1 +9d0b 5e -1 +-1 +-1 +bca8 61bc f5f8 af24 0000 0000 0000 0000 4019 9c90 0000 0004 +00 02 0 0 0 0 23 +9d0b bc -1 +-1 + +fdcb12 +4e45 3a25 3417 bcc7 0000 0000 0000 0000 0d7e 8537 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 61 12 -1 +8598 a7 -1 +-1 +-1 +4e09 3a25 4f17 bcc7 0000 0000 0000 0000 0d7e 8537 0000 0004 +00 02 0 0 0 0 23 +8598 4f -1 +-1 + +fdcb13 +b224 b79b 84f1 ff7d 0000 0000 0000 0000 414c e798 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb b3 13 -1 +e74b b3 -1 +-1 +-1 +b225 b79b 8466 ff7d 0000 0000 0000 0000 414c e798 0000 0004 +00 02 0 0 0 0 23 +e74b 66 -1 +-1 + +fdcb14 +abbb 451a fc65 14a1 0000 0000 0000 0000 0f4d d93c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c4 14 -1 +d900 06 -1 +-1 +-1 +ab08 451a fc65 0da1 0000 0000 0000 0000 0f4d d93c 0000 0004 +00 02 0 0 0 0 23 +d900 0d -1 +-1 + +fdcb15 +2864 9532 8631 751c 0000 0000 0000 0000 e327 2d7b 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 17 15 -1 +2d92 12 -1 +-1 +-1 +2824 9532 8631 7524 0000 0000 0000 0000 e327 2d7b 0000 0004 +00 02 0 0 0 0 23 +2d92 24 -1 +-1 + +fdcb16 +0c3c dcd7 adcc 196d 0000 0000 0000 0000 87e2 f0b4 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 23 16 -1 +f0d7 89 -1 +-1 +-1 +0c05 dcd7 adcc 196d 0000 0000 0000 0000 87e2 f0b4 0000 0004 +00 02 0 0 0 0 23 +f0d7 12 -1 +-1 + +fdcb17 +af5b d016 066e 6638 0000 0000 0000 0000 5e92 2013 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 8a 17 -1 +1f9d b8 -1 +-1 +-1 +7125 d016 066e 6638 0000 0000 0000 0000 5e92 2013 0000 0004 +00 02 0 0 0 0 23 +1f9d 71 -1 +-1 + +fdcb18 +23f3 4517 16e0 6894 0000 0000 0000 0000 b908 3216 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c0 18 -1 +31d6 fa -1 +-1 +-1 +23a8 fd17 16e0 6894 0000 0000 0000 0000 b908 3216 0000 0004 +00 02 0 0 0 0 23 +31d6 fd -1 +-1 + +fdcb19 +11ed c2b8 a9f3 2014 0000 0000 0000 0000 6db0 4d2e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a2 19 -1 +4cd0 4b -1 +-1 +-1 +11a5 c2a5 a9f3 2014 0000 0000 0000 0000 6db0 4d2e 0000 0004 +00 02 0 0 0 0 23 +4cd0 a5 -1 +-1 + +fdcb1a +bc5c 6168 e541 b630 0000 0000 0000 0000 0207 40d3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 78 1a -1 +414b 44 -1 +-1 +-1 +bc24 6168 2241 b630 0000 0000 0000 0000 0207 40d3 0000 0004 +00 02 0 0 0 0 23 +414b 22 -1 +-1 + +fdcb1b +7a28 1286 fe50 c42d 0000 0000 0000 0000 e290 71b0 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 16 1b -1 +71c6 b8 -1 +-1 +-1 +7a0c 1286 fe5c c42d 0000 0000 0000 0000 e290 71b0 0000 0004 +00 02 0 0 0 0 23 +71c6 5c -1 +-1 + +fdcb1c +932b 097b 6928 83a3 0000 0000 0000 0000 ff2d df62 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 86 1c -1 +dee8 8f -1 +-1 +-1 +9381 097b 6928 c7a3 0000 0000 0000 0000 ff2d df62 0000 0004 +00 02 0 0 0 0 23 +dee8 c7 -1 +-1 + +fdcb1d +97b1 2b30 2645 04ef 0000 0000 0000 0000 186a d667 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 27 1d -1 +d68e b7 -1 +-1 +-1 +978d 2b30 2645 04db 0000 0000 0000 0000 186a d667 0000 0004 +00 02 0 0 0 0 23 +d68e db -1 +-1 + +fdcb1e +2f39 2470 b521 6ca3 0000 0000 0000 0000 1066 da38 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 3a 1e -1 +da72 25 -1 +-1 +-1 +2f81 2470 b521 6ca3 0000 0000 0000 0000 1066 da38 0000 0004 +00 02 0 0 0 0 23 +da72 92 -1 +-1 + +fdcb1f +4cdd 49a3 da18 3afd 0000 0000 0000 0000 a4f1 2095 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7b 1f -1 +2110 04 -1 +-1 +-1 +8284 49a3 da18 3afd 0000 0000 0000 0000 a4f1 2095 0000 0004 +00 02 0 0 0 0 23 +2110 82 -1 +-1 + +fdcb20 +3d74 3a8f 206f 8894 0000 0000 0000 0000 ddab da25 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7a 20 -1 +da9f 89 -1 +-1 +-1 +3d05 128f 206f 8894 0000 0000 0000 0000 ddab da25 0000 0004 +00 02 0 0 0 0 23 +da9f 12 -1 +-1 + +fdcb21 +1674 6025 641a 6598 0000 0000 0000 0000 473b de36 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7b 21 -1 +deb1 23 -1 +-1 +-1 +1600 6046 641a 6598 0000 0000 0000 0000 473b de36 0000 0004 +00 02 0 0 0 0 23 +deb1 46 -1 +-1 + +fdcb22 +ada9 efb2 6f03 e732 0000 0000 0000 0000 c11d 8926 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9a 22 -1 +88c0 d4 -1 +-1 +-1 +ada9 efb2 a803 e732 0000 0000 0000 0000 c11d 8926 0000 0004 +00 02 0 0 0 0 23 +88c0 a8 -1 +-1 + +fdcb23 +21e9 d678 a71b 25d7 0000 0000 0000 0000 4ca8 5255 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f5 23 -1 +524a 65 -1 +-1 +-1 +218c d678 a7ca 25d7 0000 0000 0000 0000 4ca8 5255 0000 0004 +00 02 0 0 0 0 23 +524a ca -1 +-1 + +fdcb24 +1c51 da3e cc7c cb19 0000 0000 0000 0000 572c affe 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb b4 24 -1 +afb2 7e -1 +-1 +-1 +1cac da3e cc7c fc19 0000 0000 0000 0000 572c affe 0000 0004 +00 02 0 0 0 0 23 +afb2 fc -1 +-1 + +fdcb25 +954e 097c a341 89e0 0000 0000 0000 0000 435d 23e9 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a6 25 -1 +238f 26 -1 +-1 +-1 +9508 097c a341 894c 0000 0000 0000 0000 435d 23e9 0000 0004 +00 02 0 0 0 0 23 +238f 4c -1 +-1 + +fdcb26 +5844 0e19 d277 bf7f 0000 0000 0000 0000 6504 d4e4 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb bd 26 -1 +d4a1 bf -1 +-1 +-1 +582d 0e19 d277 bf7f 0000 0000 0000 0000 6504 d4e4 0000 0004 +00 02 0 0 0 0 23 +d4a1 7e -1 +-1 + +fdcb27 +8e0d 8c06 2c4c d7c8 0000 0000 0000 0000 9239 8d42 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 59 27 -1 +8d9b a7 -1 +-1 +-1 +4e0d 8c06 2c4c d7c8 0000 0000 0000 0000 9239 8d42 0000 0004 +00 02 0 0 0 0 23 +8d9b 4e -1 +-1 + +fdcb28 +4122 af9b 7745 76f5 0000 0000 0000 0000 a1bb ab43 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 83 28 -1 +aac6 5d -1 +-1 +-1 +412d 2e9b 7745 76f5 0000 0000 0000 0000 a1bb ab43 0000 0004 +00 02 0 0 0 0 23 +aac6 2e -1 +-1 + +fdcb29 +0b21 affd fea6 9478 0000 0000 0000 0000 32bb 0343 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7d 29 -1 +03c0 84 -1 +-1 +-1 +0b80 afc2 fea6 9478 0000 0000 0000 0000 32bb 0343 0000 0004 +00 02 0 0 0 0 23 +03c0 c2 -1 +-1 + +fdcb2a +f236 8c31 5932 7feb 0000 0000 0000 0000 7db7 abe7 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f9 2a -1 +abe0 dd -1 +-1 +-1 +f2ad 8c31 ee32 7feb 0000 0000 0000 0000 7db7 abe7 0000 0004 +00 02 0 0 0 0 23 +abe0 ee -1 +-1 + +fdcb2b +2450 6945 dcfc d643 0000 0000 0000 0000 5be1 4a94 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 4b 2b -1 +4adf 49 -1 +-1 +-1 +2425 6945 dc24 d643 0000 0000 0000 0000 5be1 4a94 0000 0004 +00 02 0 0 0 0 23 +4adf 24 -1 +-1 + +fdcb2c +117f b32b e530 255a 0000 0000 0000 0000 2416 ccd1 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e6 2c -1 +ccb7 3c -1 +-1 +-1 +110c b32b e530 1e5a 0000 0000 0000 0000 2416 ccd1 0000 0004 +00 02 0 0 0 0 23 +ccb7 1e -1 +-1 + +fdcb2d +d0c3 344b 1bb0 3eab 0000 0000 0000 0000 fe11 e4e6 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 5f 2d -1 +e545 78 -1 +-1 +-1 +d02c 344b 1bb0 3e3c 0000 0000 0000 0000 fe11 e4e6 0000 0004 +00 02 0 0 0 0 23 +e545 3c -1 +-1 + +fdcb2e +f4ee b832 4b7f e2b7 0000 0000 0000 0000 9386 42fd 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 06 2e -1 +4303 ad -1 +-1 +-1 +f481 b832 4b7f e2b7 0000 0000 0000 0000 9386 42fd 0000 0004 +00 02 0 0 0 0 23 +4303 d6 -1 +-1 + +fdcb2f +ff86 f2c2 9f2f c946 0000 0000 0000 0000 5fe0 16b8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 29 2f -1 +16e1 18 -1 +-1 +-1 +0c0c f2c2 9f2f c946 0000 0000 0000 0000 5fe0 16b8 0000 0004 +00 02 0 0 0 0 23 +16e1 0c -1 +-1 + +fdcb30 +acf6 e832 f9ed cabc 0000 0000 0000 0000 fabd d646 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 1b 30 -1 +d661 a5 -1 +-1 +-1 +ac0d 4b32 f9ed cabc 0000 0000 0000 0000 fabd d646 0000 0004 +00 02 0 0 0 0 23 +d661 4b -1 +-1 + +fdcb31 +2b96 5134 83a7 7eee 0000 0000 0000 0000 7750 bfe0 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f0 31 -1 +bfd0 f1 -1 +-1 +-1 +2ba1 51e3 83a7 7eee 0000 0000 0000 0000 7750 bfe0 0000 0004 +00 02 0 0 0 0 23 +bfd0 e3 -1 +-1 + +fdcb32 +b2bc a4b1 b685 f66e 0000 0000 0000 0000 a9a1 5ade 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c5 32 -1 +5aa3 59 -1 +-1 +-1 +b2a0 a4b1 b385 f66e 0000 0000 0000 0000 a9a1 5ade 0000 0004 +00 02 0 0 0 0 23 +5aa3 b3 -1 +-1 + +fdcb33 +9c6d 2c90 d0a9 2be3 0000 0000 0000 0000 2691 1964 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7f 33 -1 +19e3 da -1 +-1 +-1 +9ca1 2c90 d0b5 2be3 0000 0000 0000 0000 2691 1964 0000 0004 +00 02 0 0 0 0 23 +19e3 b5 -1 +-1 + +fdcb34 +6029 fbcd 5348 f947 0000 0000 0000 0000 5338 5696 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d2 34 -1 +5668 d4 -1 +-1 +-1 +60ad fbcd 5348 a947 0000 0000 0000 0000 5338 5696 0000 0004 +00 02 0 0 0 0 23 +5668 a9 -1 +-1 + +fdcb35 +96a9 21c6 4cb6 b40b 0000 0000 0000 0000 673a 00f8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 71 35 -1 +0169 0b -1 +-1 +-1 +9604 21c6 4cb6 b417 0000 0000 0000 0000 673a 00f8 0000 0004 +00 02 0 0 0 0 23 +0169 17 -1 +-1 + +fdcb36 +dc6f 0892 3cc7 1494 0000 0000 0000 0000 8598 1ade 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb da 36 -1 +1ab8 3c -1 +-1 +-1 +dc28 0892 3cc7 1494 0000 0000 0000 0000 8598 1ade 0000 0004 +00 02 0 0 0 0 23 +1ab8 79 -1 +-1 + +fdcb37 +d2b3 4524 208f 076f 0000 0000 0000 0000 ad10 e7ec 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb cb 37 -1 +e7b7 9f -1 +-1 +-1 +3f2d 4524 208f 076f 0000 0000 0000 0000 ad10 e7ec 0000 0004 +00 02 0 0 0 0 23 +e7b7 3f -1 +-1 + +fdcb38 +4f07 0050 40c6 4fb7 0000 0000 0000 0000 f37e d096 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 8e 38 -1 +d024 0d -1 +-1 +-1 +4f05 0650 40c6 4fb7 0000 0000 0000 0000 f37e d096 0000 0004 +00 02 0 0 0 0 23 +d024 06 -1 +-1 + +fdcb39 +bcc2 f5b5 8dee e514 0000 0000 0000 0000 48bc f433 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7f 39 -1 +f4b2 f5 -1 +-1 +-1 +bc29 f57a 8dee e514 0000 0000 0000 0000 48bc f433 0000 0004 +00 02 0 0 0 0 23 +f4b2 7a -1 +-1 + +fdcb3a +d012 2ef5 2910 9ca5 0000 0000 0000 0000 b155 cb03 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 1d 3a -1 +cb20 a8 -1 +-1 +-1 +d000 2ef5 5410 9ca5 0000 0000 0000 0000 b155 cb03 0000 0004 +00 02 0 0 0 0 23 +cb20 54 -1 +-1 + +fdcb3b +503d a85b cfbb de8c 0000 0000 0000 0000 9c5b d263 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 05 3b -1 +d268 b2 -1 +-1 +-1 +500c a85b cf59 de8c 0000 0000 0000 0000 9c5b d263 0000 0004 +00 02 0 0 0 0 23 +d268 59 -1 +-1 + +fdcb3c +97f0 4456 0b52 fdad 0000 0000 0000 0000 6d2a a80f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ae 3c -1 +a7bd 96 -1 +-1 +-1 +970c 4456 0b52 4bad 0000 0000 0000 0000 6d2a a80f 0000 0004 +00 02 0 0 0 0 23 +a7bd 4b -1 +-1 + +fdcb3d +7d44 9303 e12b bff6 0000 0000 0000 0000 4c0f e52a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 13 3d -1 +e53d fb -1 +-1 +-1 +7d2d 9303 e12b bf7d 0000 0000 0000 0000 4c0f e52a 0000 0004 +00 02 0 0 0 0 23 +e53d 7d -1 +-1 + +fdcb3e +0d95 3e02 8f74 0f82 0000 0000 0000 0000 85df b2d1 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 2e 3e -1 +b2ff 50 -1 +-1 +-1 +0d2c 3e02 8f74 0f82 0000 0000 0000 0000 85df b2d1 0000 0004 +00 02 0 0 0 0 23 +b2ff 28 -1 +-1 + +fdcb3f +89e3 12f6 426c 52d4 0000 0000 0000 0000 d9f7 c1ac 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 21 3f -1 +c1cd 78 -1 +-1 +-1 +3c2c 12f6 426c 52d4 0000 0000 0000 0000 d9f7 c1ac 0000 0004 +00 02 0 0 0 0 23 +c1cd 3c -1 +-1 + +fdcb40 +5408 2c34 6784 b376 0000 0000 0000 0000 8ff9 4195 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 3b 40 -1 +41d0 0d -1 +-1 +-1 +5410 2c34 6784 b376 0000 0000 0000 0000 8ff9 4195 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb41 +8c35 5a58 b71c 6777 0000 0000 0000 0000 deca 03cb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb cc 41 -1 +0397 e9 -1 +-1 +-1 +8c11 5a58 b71c 6777 0000 0000 0000 0000 deca 03cb 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb42 +5535 9c29 2feb 97ff 0000 0000 0000 0000 7f17 9f56 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 01 42 -1 +9f57 a8 -1 +-1 +-1 +555d 9c29 2feb 97ff 0000 0000 0000 0000 7f17 9f56 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb43 +b404 e58c e62e 2a32 0000 0000 0000 0000 7130 1fd1 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 08 43 -1 +1fd9 aa -1 +-1 +-1 +b45c e58c e62e 2a32 0000 0000 0000 0000 7130 1fd1 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb44 +a954 68f4 9fa4 7f66 0000 0000 0000 0000 0209 f4f3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 03 44 -1 +f4f6 89 -1 +-1 +-1 +a930 68f4 9fa4 7f66 0000 0000 0000 0000 0209 f4f3 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb45 +73e5 8dde 5e4f 84a7 0000 0000 0000 0000 4e24 93ed 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 8d 45 -1 +937a 8d -1 +-1 +-1 +7311 8dde 5e4f 84a7 0000 0000 0000 0000 4e24 93ed 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb46 +0e5a b1f9 475f ebfc 0000 0000 0000 0000 7765 63b1 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 8c 46 -1 +633d fe -1 +-1 +-1 +0e74 b1f9 475f ebfc 0000 0000 0000 0000 7765 63b1 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb47 +9b3d 7f38 0753 d5e7 0000 0000 0000 0000 b9c3 6e0e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 96 47 -1 +6da4 d6 -1 +-1 +-1 +9b7d 7f38 0753 d5e7 0000 0000 0000 0000 b9c3 6e0e 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb48 +7d94 50a9 2511 8f9f 0000 0000 0000 0000 b612 aba9 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 44 48 -1 +abed b0 -1 +-1 +-1 +7d7c 50a9 2511 8f9f 0000 0000 0000 0000 b612 aba9 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb49 +691e 3a39 b834 74b6 0000 0000 0000 0000 0eb7 3e21 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 4e 49 -1 +3e6f a9 -1 +-1 +-1 +697c 3a39 b834 74b6 0000 0000 0000 0000 0eb7 3e21 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb4a +31e3 68e0 fe2f a2c4 0000 0000 0000 0000 ac96 e7db 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 52 4a -1 +e82d da -1 +-1 +-1 +3139 68e0 fe2f a2c4 0000 0000 0000 0000 ac96 e7db 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb4b +09a1 2453 9186 a32a 0000 0000 0000 0000 71af 883f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ea 4b -1 +8829 4e -1 +-1 +-1 +0919 2453 9186 a32a 0000 0000 0000 0000 71af 883f 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb4c +4a52 1e5b be2e 3ee4 0000 0000 0000 0000 af79 7f22 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ee 4c -1 +7f10 70 -1 +-1 +-1 +4a7c 1e5b be2e 3ee4 0000 0000 0000 0000 af79 7f22 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb4d +9f87 6c8f 34f4 5a79 0000 0000 0000 0000 d3cc a770 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 29 4d -1 +a799 78 -1 +-1 +-1 +9f75 6c8f 34f4 5a79 0000 0000 0000 0000 d3cc a770 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb4e +30cb 5626 52bc 5503 0000 0000 0000 0000 303b e1c8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 20 4e -1 +e1e8 aa -1 +-1 +-1 +3031 5626 52bc 5503 0000 0000 0000 0000 303b e1c8 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb4f +6088 e079 7152 671f 0000 0000 0000 0000 8c22 1cf8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9d 4f -1 +1c95 18 -1 +-1 +-1 +605c e079 7152 671f 0000 0000 0000 0000 8c22 1cf8 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb50 +8cde 1409 6d69 e5b2 0000 0000 0000 0000 4a0c c75f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 6b 50 -1 +c7ca fe -1 +-1 +-1 +8c10 1409 6d69 e5b2 0000 0000 0000 0000 4a0c c75f 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb51 +8f59 40cb 9543 9b3a 0000 0000 0000 0000 1942 3495 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 86 51 -1 +341b 13 -1 +-1 +-1 +8f75 40cb 9543 9b3a 0000 0000 0000 0000 1942 3495 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb52 +8905 3e41 7ab4 37f6 0000 0000 0000 0000 f82d 8b0d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e6 52 -1 +8af3 87 -1 +-1 +-1 +8919 3e41 7ab4 37f6 0000 0000 0000 0000 f82d 8b0d 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb53 +efde e345 09a3 f0b2 0000 0000 0000 0000 c378 7ee1 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d1 53 -1 +7eb2 e4 -1 +-1 +-1 +ef38 e345 09a3 f0b2 0000 0000 0000 0000 c378 7ee1 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb54 +72a6 cb82 d966 2fc6 0000 0000 0000 0000 3c00 5b6b 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 08 54 -1 +5b73 07 -1 +-1 +-1 +7218 cb82 d966 2fc6 0000 0000 0000 0000 3c00 5b6b 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb55 +855c c23b 6aab 9b00 0000 0000 0000 0000 fe93 b4b2 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 54 55 -1 +b506 46 -1 +-1 +-1 +8530 c23b 6aab 9b00 0000 0000 0000 0000 fe93 b4b2 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb56 +f5ad f9f6 1e8c 9e08 0000 0000 0000 0000 716a 6932 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 6f 56 -1 +69a1 df -1 +-1 +-1 +f539 f9f6 1e8c 9e08 0000 0000 0000 0000 716a 6932 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb57 +37d7 b7dc be1c 38ea 0000 0000 0000 0000 5e82 a3bb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 3c 57 -1 +a3f7 6c -1 +-1 +-1 +3731 b7dc be1c 38ea 0000 0000 0000 0000 5e82 a3bb 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb58 +752c 7296 3ea5 1143 0000 0000 0000 0000 d7cc 1e94 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 4e 58 -1 +1ee2 f6 -1 +-1 +-1 +755c 7296 3ea5 1143 0000 0000 0000 0000 d7cc 1e94 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb59 +8056 bf2a 1809 ed31 0000 0000 0000 0000 fe2b fad3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 2e 59 -1 +fb01 6f -1 +-1 +-1 +8038 bf2a 1809 ed31 0000 0000 0000 0000 fe2b fad3 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb5a +cc74 a108 65d4 6f66 0000 0000 0000 0000 0008 7bb8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 88 5a -1 +7b40 6e -1 +-1 +-1 +cc38 a108 65d4 6f66 0000 0000 0000 0000 0008 7bb8 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb5b +5cf1 b3bd 25bd 98cf 0000 0000 0000 0000 2ba1 315c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e7 5b -1 +3143 b1 -1 +-1 +-1 +5c75 b3bd 25bd 98cf 0000 0000 0000 0000 2ba1 315c 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb5c +b3e0 d43d d9c0 b04d 0000 0000 0000 0000 21a9 543e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 74 5c -1 +54b2 e3 -1 +-1 +-1 +b354 d43d d9c0 b04d 0000 0000 0000 0000 21a9 543e 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb5d +9f49 43dd ccb3 085a 0000 0000 0000 0000 f130 3b84 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb dc 5d -1 +3b60 ef -1 +-1 +-1 +9f39 43dd ccb3 085a 0000 0000 0000 0000 f130 3b84 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb5e +6f89 eff5 993b 22b5 0000 0000 0000 0000 0f30 e165 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e2 5e -1 +e147 17 -1 +-1 +-1 +6f75 eff5 993b 22b5 0000 0000 0000 0000 0f30 e165 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb5f +d72a a57a aca6 667e 0000 0000 0000 0000 5c33 f81b 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ab 5f -1 +f7c6 e2 -1 +-1 +-1 +d774 a57a aca6 667e 0000 0000 0000 0000 5c33 f81b 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb60 +15e9 8d30 43f4 c65e 0000 0000 0000 0000 1e34 8c44 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 85 60 -1 +8bc9 b9 -1 +-1 +-1 +1519 8d30 43f4 c65e 0000 0000 0000 0000 1e34 8c44 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb61 +7bd1 d421 5570 cb85 0000 0000 0000 0000 32ec 92e4 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb be 61 -1 +92a2 28 -1 +-1 +-1 +7b55 d421 5570 cb85 0000 0000 0000 0000 32ec 92e4 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb62 +ba2f 4fbb 67a7 c5db 0000 0000 0000 0000 470b 7eb1 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9d 62 -1 +7e4e 1a -1 +-1 +-1 +ba39 4fbb 67a7 c5db 0000 0000 0000 0000 470b 7eb1 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb63 +c0a1 2cc2 ce12 e77c 0000 0000 0000 0000 71c5 1713 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f4 63 -1 +1707 3b -1 +-1 +-1 +c011 2cc2 ce12 e77c 0000 0000 0000 0000 71c5 1713 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb64 +0c1f 7847 2494 71eb 0000 0000 0000 0000 315c b336 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 35 64 -1 +b36b 8c -1 +-1 +-1 +0c75 7847 2494 71eb 0000 0000 0000 0000 315c b336 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb65 +5245 a82d 1112 8f09 0000 0000 0000 0000 672a 89f4 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 37 65 -1 +8a2b 08 -1 +-1 +-1 +525d a82d 1112 8f09 0000 0000 0000 0000 672a 89f4 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb66 +583f c13e b136 6bc5 0000 0000 0000 0000 3ef9 6948 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9d 66 -1 +68e5 90 -1 +-1 +-1 +5839 c13e b136 6bc5 0000 0000 0000 0000 3ef9 6948 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb67 +31b6 0f7d 48b5 cc5f 0000 0000 0000 0000 2103 6572 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb cb 67 -1 +653d 15 -1 +-1 +-1 +3130 0f7d 48b5 cc5f 0000 0000 0000 0000 2103 6572 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb68 +e330 39fb a03a 59bc 0000 0000 0000 0000 e04a 03be 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ca 68 -1 +0388 83 -1 +-1 +-1 +e354 39fb a03a 59bc 0000 0000 0000 0000 e04a 03be 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb69 +1896 5bc2 d4d9 4e8a 0000 0000 0000 0000 3716 a603 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e2 69 -1 +a5e5 01 -1 +-1 +-1 +1874 5bc2 d4d9 4e8a 0000 0000 0000 0000 3716 a603 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb6a +5bc9 0099 34f8 3e96 0000 0000 0000 0000 f251 93be 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ae 6a -1 +936c 33 -1 +-1 +-1 +5b11 0099 34f8 3e96 0000 0000 0000 0000 f251 93be 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb6b +bbe5 9e6c abd1 515f 0000 0000 0000 0000 73db aa2f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 1f 6b -1 +aa4e 7c -1 +-1 +-1 +bb39 9e6c abd1 515f 0000 0000 0000 0000 73db aa2f 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb6c +144b 3af2 8f80 7be5 0000 0000 0000 0000 c379 86ba 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0d 6c -1 +86c7 25 -1 +-1 +-1 +1411 3af2 8f80 7be5 0000 0000 0000 0000 c379 86ba 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb6d +6392 d077 668d 6e4a 0000 0000 0000 0000 b0a8 62c8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f0 6d -1 +62b8 e3 -1 +-1 +-1 +6330 d077 668d 6e4a 0000 0000 0000 0000 b0a8 62c8 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb6e +2da0 f872 692d 92c4 0000 0000 0000 0000 36b5 4210 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 93 6e -1 +41a3 1e -1 +-1 +-1 +2d54 f872 692d 92c4 0000 0000 0000 0000 36b5 4210 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb6f +df7b c7aa 9002 86b8 0000 0000 0000 0000 1347 004e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 20 6f -1 +006e 37 -1 +-1 +-1 +df11 c7aa 9002 86b8 0000 0000 0000 0000 1347 004e 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb70 +6ea9 018d 5075 cf4e 0000 0000 0000 0000 cd2b 3e68 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d9 70 -1 +3e41 c9 -1 +-1 +-1 +6e39 018d 5075 cf4e 0000 0000 0000 0000 cd2b 3e68 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb71 +1b48 e3af 94d5 0996 0000 0000 0000 0000 cad5 999a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 27 71 -1 +99c1 3e -1 +-1 +-1 +1b5c e3af 94d5 0996 0000 0000 0000 0000 cad5 999a 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb72 +e83b 26b1 8608 f3cb 0000 0000 0000 0000 6323 fd31 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 98 72 -1 +fcc9 4f -1 +-1 +-1 +e839 26b1 8608 f3cb 0000 0000 0000 0000 6323 fd31 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb73 +101b 446c c2f9 b9b1 0000 0000 0000 0000 0820 f5d8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7a 73 -1 +f652 31 -1 +-1 +-1 +1075 446c c2f9 b9b1 0000 0000 0000 0000 0820 f5d8 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb74 +6847 38c2 0ea4 0825 0000 0000 0000 0000 d255 5e4a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 4b 74 -1 +5e95 fe -1 +-1 +-1 +6819 38c2 0ea4 0825 0000 0000 0000 0000 d255 5e4a 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb75 +56f2 c034 6e11 d35e 0000 0000 0000 0000 e702 60be 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 57 75 -1 +6115 21 -1 +-1 +-1 +5674 c034 6e11 d35e 0000 0000 0000 0000 e702 60be 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb76 +7375 caff dd80 c8ed 0000 0000 0000 0000 7e39 6623 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 53 76 -1 +6676 3a -1 +-1 +-1 +7375 caff dd80 c8ed 0000 0000 0000 0000 7e39 6623 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb77 +ab10 983e 0bdc 3b46 0000 0000 0000 0000 ae51 8841 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 02 77 -1 +8843 d8 -1 +-1 +-1 +ab18 983e 0bdc 3b46 0000 0000 0000 0000 ae51 8841 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb78 +2765 ce2f 4824 6930 0000 0000 0000 0000 ae69 fecb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7d 78 -1 +ff48 ec -1 +-1 +-1 +27b9 ce2f 4824 6930 0000 0000 0000 0000 ae69 fecb 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb79 +b428 6355 7896 8a7c 0000 0000 0000 0000 9090 1cae 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 23 79 -1 +1cd1 87 -1 +-1 +-1 +b498 6355 7896 8a7c 0000 0000 0000 0000 9090 1cae 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb7a +59f4 ca21 1482 3fae 0000 0000 0000 0000 c6c9 d923 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 42 7a -1 +d965 b3 -1 +-1 +-1 +5998 ca21 1482 3fae 0000 0000 0000 0000 c6c9 d923 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb7b +6314 0240 5efa 5e7b 0000 0000 0000 0000 3e50 0a83 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 17 7b -1 +0a9a bd -1 +-1 +-1 +6398 0240 5efa 5e7b 0000 0000 0000 0000 3e50 0a83 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb7c +22a6 aff4 b89b 4dca 0000 0000 0000 0000 0ac2 d371 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f1 7c -1 +d362 1b -1 +-1 +-1 +2254 aff4 b89b 4dca 0000 0000 0000 0000 0ac2 d371 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb7d +1c95 d615 825a 5e64 0000 0000 0000 0000 32fb ac3b 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9f 7d -1 +abda 8a -1 +-1 +-1 +1cb9 d615 825a 5e64 0000 0000 0000 0000 32fb ac3b 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb7e +503c 8dfe 1019 6778 0000 0000 0000 0000 f7df 9484 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 40 7e -1 +94c4 9e -1 +-1 +-1 +5090 8dfe 1019 6778 0000 0000 0000 0000 f7df 9484 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb7f +1b07 9ec3 14be 5ebe 0000 0000 0000 0000 1178 ce69 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a2 7f -1 +ce0b 47 -1 +-1 +-1 +1b5d 9ec3 14be 5ebe 0000 0000 0000 0000 1178 ce69 0000 0004 +00 02 0 0 0 0 20 +-1 + +fdcb80 +e196 72ea 507e 6457 0000 0000 0000 0000 ab75 920d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 8b 80 -1 +9198 a9 -1 +-1 +-1 +e196 a8ea 507e 6457 0000 0000 0000 0000 ab75 920d 0000 0004 +00 02 0 0 0 0 23 +9198 a8 -1 +-1 + +fdcb81 +3d3d b255 8759 0cb0 0000 0000 0000 0000 e078 82a5 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 55 81 -1 +82fa fa -1 +-1 +-1 +3d3d b2fa 8759 0cb0 0000 0000 0000 0000 e078 82a5 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb82 +4e10 5d8d 27a0 ffff 0000 0000 0000 0000 ee0a 5dd8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9c 82 -1 +5d74 9d -1 +-1 +-1 +4e10 5d8d 9ca0 ffff 0000 0000 0000 0000 ee0a 5dd8 0000 0004 +00 02 0 0 0 0 23 +5d74 9c -1 +-1 + +fdcb83 +3c7f fd81 47fb 9f12 0000 0000 0000 0000 cbf9 374a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 28 83 -1 +3772 d5 -1 +-1 +-1 +3c7f fd81 47d4 9f12 0000 0000 0000 0000 cbf9 374a 0000 0004 +00 02 0 0 0 0 23 +3772 d4 -1 +-1 + +fdcb84 +6872 81b1 1e7a e37e 0000 0000 0000 0000 9b4c f1c3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb aa 84 -1 +f16d ea -1 +-1 +-1 +6872 81b1 1e7a ea7e 0000 0000 0000 0000 9b4c f1c3 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb85 +25b3 5694 57cd f34d 0000 0000 0000 0000 8ed2 0433 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 6c 85 -1 +049f e0 -1 +-1 +-1 +25b3 5694 57cd f3e0 0000 0000 0000 0000 8ed2 0433 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb86 +152b 8ce1 818d 40f2 0000 0000 0000 0000 9b7a 2a50 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7e 86 -1 +2ace 36 -1 +-1 +-1 +152b 8ce1 818d 40f2 0000 0000 0000 0000 9b7a 2a50 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb87 +fe1d 5353 618d 3266 0000 0000 0000 0000 1a53 246a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 59 87 -1 +24c3 65 -1 +-1 +-1 +641d 5353 618d 3266 0000 0000 0000 0000 1a53 246a 0000 0004 +00 02 0 0 0 0 23 +24c3 64 -1 +-1 + +fdcb88 +7d14 a0ec 1e47 76e1 0000 0000 0000 0000 3871 c60d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d4 88 -1 +c5e1 d6 -1 +-1 +-1 +7d14 d4ec 1e47 76e1 0000 0000 0000 0000 3871 c60d 0000 0004 +00 02 0 0 0 0 23 +c5e1 d4 -1 +-1 + +fdcb89 +86c3 50a6 8592 d6ca 0000 0000 0000 0000 947b 0a01 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c3 89 -1 +09c4 b0 -1 +-1 +-1 +86c3 50b0 8592 d6ca 0000 0000 0000 0000 947b 0a01 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb8a +599c 961a 55f9 8470 0000 0000 0000 0000 d2a5 d4d2 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f9 8a -1 +d4cb d8 -1 +-1 +-1 +599c 961a d8f9 8470 0000 0000 0000 0000 d2a5 d4d2 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb8b +2715 a209 ab47 3eac 0000 0000 0000 0000 f352 c71e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ed 8b -1 +c70b dc -1 +-1 +-1 +2715 a209 abdc 3eac 0000 0000 0000 0000 f352 c71e 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb8c +2818 4259 a9b0 e7a0 0000 0000 0000 0000 6471 a202 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 97 8c -1 +a199 67 -1 +-1 +-1 +2818 4259 a9b0 65a0 0000 0000 0000 0000 6471 a202 0000 0004 +00 02 0 0 0 0 23 +a199 65 -1 +-1 + +fdcb8d +14e3 c330 9aa2 8418 0000 0000 0000 0000 0d4f 5669 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c9 8d -1 +5632 9a -1 +-1 +-1 +14e3 c330 9aa2 8498 0000 0000 0000 0000 0d4f 5669 0000 0004 +00 02 0 0 0 0 23 +5632 98 -1 +-1 + +fdcb8e +cb79 0fff b244 c902 0000 0000 0000 0000 6246 4c81 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c2 8e -1 +4c43 7f -1 +-1 +-1 +cb79 0fff b244 c902 0000 0000 0000 0000 6246 4c81 0000 0004 +00 02 0 0 0 0 23 +4c43 7d -1 +-1 + +fdcb8f +66b4 5fbb 6c9b d0e3 0000 0000 0000 0000 ac5a 6b51 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d4 8f -1 +6b25 59 -1 +-1 +-1 +59b4 5fbb 6c9b d0e3 0000 0000 0000 0000 ac5a 6b51 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb90 +1305 1ce1 d627 7402 0000 0000 0000 0000 b470 d7f5 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb fd 90 -1 +d7f2 70 -1 +-1 +-1 +1305 70e1 d627 7402 0000 0000 0000 0000 b470 d7f5 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb91 +10df c48f 0213 fc7e 0000 0000 0000 0000 bfab 47d2 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb bf 91 -1 +4791 0e -1 +-1 +-1 +10df c40a 0213 fc7e 0000 0000 0000 0000 bfab 47d2 0000 0004 +00 02 0 0 0 0 23 +4791 0a -1 +-1 + +fdcb92 +6a11 f89e f49d c115 0000 0000 0000 0000 bc5d 313a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0b 92 -1 +3145 f6 -1 +-1 +-1 +6a11 f89e f29d c115 0000 0000 0000 0000 bc5d 313a 0000 0004 +00 02 0 0 0 0 23 +3145 f2 -1 +-1 + +fdcb93 +61e5 cc2c 959a b52b 0000 0000 0000 0000 fa64 2940 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 52 93 -1 +2992 38 -1 +-1 +-1 +61e5 cc2c 9538 b52b 0000 0000 0000 0000 fa64 2940 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb94 +31b4 3e5a fb3d ab83 0000 0000 0000 0000 a801 fe1c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 95 94 -1 +fdb1 48 -1 +-1 +-1 +31b4 3e5a fb3d 4883 0000 0000 0000 0000 a801 fe1c 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb95 +337e 63a7 2918 ed6b 0000 0000 0000 0000 b12c e776 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 90 95 -1 +e706 eb -1 +-1 +-1 +337e 63a7 2918 edeb 0000 0000 0000 0000 b12c e776 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb96 +5d99 d9ec b6d0 5ed5 0000 0000 0000 0000 5d9d e6cf 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9e 96 -1 +e66d fc -1 +-1 +-1 +5d99 d9ec b6d0 5ed5 0000 0000 0000 0000 5d9d e6cf 0000 0004 +00 02 0 0 0 0 23 +e66d f8 -1 +-1 + +fdcb97 +ccb6 8406 72c6 1ba7 0000 0000 0000 0000 6dca 187f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 64 97 -1 +18e3 9d -1 +-1 +-1 +99b6 8406 72c6 1ba7 0000 0000 0000 0000 6dca 187f 0000 0004 +00 02 0 0 0 0 23 +18e3 99 -1 +-1 + +fdcb98 +0495 312f 8000 b749 0000 0000 0000 0000 e9cb 43b8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb da 98 -1 +4392 15 -1 +-1 +-1 +0495 152f 8000 b749 0000 0000 0000 0000 e9cb 43b8 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb99 +2824 a485 a30b b286 0000 0000 0000 0000 10b0 d86c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 78 99 -1 +d8e4 b5 -1 +-1 +-1 +2824 a4b5 a30b b286 0000 0000 0000 0000 10b0 d86c 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb9a +b0cc c40c dc1a 014a 0000 0000 0000 0000 2ff9 d717 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9c 9a -1 +d6b3 9d -1 +-1 +-1 +b0cc c40c 951a 014a 0000 0000 0000 0000 2ff9 d717 0000 0004 +00 02 0 0 0 0 23 +d6b3 95 -1 +-1 + +fdcb9b +d092 a6c2 7900 5448 0000 0000 0000 0000 fab0 cb1e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 83 9b -1 +caa1 95 -1 +-1 +-1 +d092 a6c2 7995 5448 0000 0000 0000 0000 fab0 cb1e 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb9c +b58d 1ed1 e93b 9e0c 0000 0000 0000 0000 5605 03b3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 1e 9c -1 +03d1 78 -1 +-1 +-1 +b58d 1ed1 e93b 700c 0000 0000 0000 0000 5605 03b3 0000 0004 +00 02 0 0 0 0 23 +03d1 70 -1 +-1 + +fdcb9d +c7e9 18d3 8eed bd7d 0000 0000 0000 0000 9a7f c087 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e6 9d -1 +c06d 53 -1 +-1 +-1 +c7e9 18d3 8eed bd53 0000 0000 0000 0000 9a7f c087 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb9e +81c7 71df 45d5 0ca7 0000 0000 0000 0000 648f 41bd 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb eb 9e -1 +41a8 61 -1 +-1 +-1 +81c7 71df 45d5 0ca7 0000 0000 0000 0000 648f 41bd 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcb9f +ebf5 dc9f d490 15be 0000 0000 0000 0000 0e12 9d49 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 50 9f -1 +9d99 89 -1 +-1 +-1 +81f5 dc9f d490 15be 0000 0000 0000 0000 0e12 9d49 0000 0004 +00 02 0 0 0 0 23 +9d99 81 -1 +-1 + +fdcba0 +8ccb 0057 bc19 e543 0000 0000 0000 0000 8c5d d68d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 76 a0 -1 +d703 d4 -1 +-1 +-1 +8ccb c457 bc19 e543 0000 0000 0000 0000 8c5d d68d 0000 0004 +00 02 0 0 0 0 23 +d703 c4 -1 +-1 + +fdcba1 +eee6 6da4 3a20 8bba 0000 0000 0000 0000 1de7 66c8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 31 a1 -1 +66f9 ec -1 +-1 +-1 +eee6 6dec 3a20 8bba 0000 0000 0000 0000 1de7 66c8 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcba2 +3f89 5120 0bd1 e669 0000 0000 0000 0000 2993 04bf 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0e a2 -1 +04cd 47 -1 +-1 +-1 +3f89 5120 47d1 e669 0000 0000 0000 0000 2993 04bf 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcba3 +4439 6b8b 6178 1246 0000 0000 0000 0000 4cdb ad77 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 05 a3 -1 +ad7c 59 -1 +-1 +-1 +4439 6b8b 6149 1246 0000 0000 0000 0000 4cdb ad77 0000 0004 +00 02 0 0 0 0 23 +ad7c 49 -1 +-1 + +fdcba4 +3385 261e a487 b3bd 0000 0000 0000 0000 4b8f c0cd 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 66 a4 -1 +c133 c5 -1 +-1 +-1 +3385 261e a487 c5bd 0000 0000 0000 0000 4b8f c0cd 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcba5 +6e70 b7ed 22cd aedc 0000 0000 0000 0000 46de f1a1 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a0 a5 -1 +f141 44 -1 +-1 +-1 +6e70 b7ed 22cd ae44 0000 0000 0000 0000 46de f1a1 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcba6 +814b 6408 3dcb 971f 0000 0000 0000 0000 5716 93f3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 76 a6 -1 +9469 bc -1 +-1 +-1 +814b 6408 3dcb 971f 0000 0000 0000 0000 5716 93f3 0000 0004 +00 02 0 0 0 0 23 +9469 ac -1 +-1 + +fdcba7 +a4c2 679e c313 61df 0000 0000 0000 0000 67e6 79c4 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 66 a7 -1 +7a2a 2e -1 +-1 +-1 +2ec2 679e c313 61df 0000 0000 0000 0000 67e6 79c4 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcba8 +537c 1fed 6cbb bd26 0000 0000 0000 0000 c638 0d46 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a9 a8 -1 +0cef b7 -1 +-1 +-1 +537c 97ed 6cbb bd26 0000 0000 0000 0000 c638 0d46 0000 0004 +00 02 0 0 0 0 23 +0cef 97 -1 +-1 + +fdcba9 +ba5a 3076 cdd7 298d 0000 0000 0000 0000 59ab 0f54 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 2b a9 -1 +0f7f 8f -1 +-1 +-1 +ba5a 308f cdd7 298d 0000 0000 0000 0000 59ab 0f54 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbaa +406a 2ed6 fa8c c633 0000 0000 0000 0000 87cb b3d1 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0b aa -1 +b3dc 3a -1 +-1 +-1 +406a 2ed6 1a8c c633 0000 0000 0000 0000 87cb b3d1 0000 0004 +00 02 0 0 0 0 23 +b3dc 1a -1 +-1 + +fdcbab +da61 0521 a123 c7fa 0000 0000 0000 0000 b71a 8ece 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a9 ab -1 +8e77 1f -1 +-1 +-1 +da61 0521 a11f c7fa 0000 0000 0000 0000 b71a 8ece 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbac +34a3 81ce 07d6 f3a4 0000 0000 0000 0000 430b 0525 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 23 ac -1 +0548 9c -1 +-1 +-1 +34a3 81ce 07d6 9ca4 0000 0000 0000 0000 430b 0525 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbad +5010 918e ddbc 4f89 0000 0000 0000 0000 88c5 948f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 4e ad -1 +94dd 37 -1 +-1 +-1 +5010 918e ddbc 4f17 0000 0000 0000 0000 88c5 948f 0000 0004 +00 02 0 0 0 0 23 +94dd 17 -1 +-1 + +fdcbae +ec0d b57e 18c6 7b01 0000 0000 0000 0000 bac6 0c1d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0c ae -1 +0c29 a9 -1 +-1 +-1 +ec0d b57e 18c6 7b01 0000 0000 0000 0000 bac6 0c1d 0000 0004 +00 02 0 0 0 0 23 +0c29 89 -1 +-1 + +fdcbaf +b322 6731 daad 8d38 0000 0000 0000 0000 dd8f 26eb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0d af -1 +26f8 44 -1 +-1 +-1 +4422 6731 daad 8d38 0000 0000 0000 0000 dd8f 26eb 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbb0 +b984 796c 44b1 fef9 0000 0000 0000 0000 4069 a0cb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 5a b0 -1 +a125 76 -1 +-1 +-1 +b984 366c 44b1 fef9 0000 0000 0000 0000 4069 a0cb 0000 0004 +00 02 0 0 0 0 23 +a125 36 -1 +-1 + +fdcbb1 +59c3 ab13 42ee b764 0000 0000 0000 0000 8f7f f398 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 82 b1 -1 +f31a 79 -1 +-1 +-1 +59c3 ab39 42ee b764 0000 0000 0000 0000 8f7f f398 0000 0004 +00 02 0 0 0 0 23 +f31a 39 -1 +-1 + +fdcbb2 +f310 ceec bbfb 3569 0000 0000 0000 0000 4a6f 33f9 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 23 b2 -1 +341c 7b -1 +-1 +-1 +f310 ceec 3bfb 3569 0000 0000 0000 0000 4a6f 33f9 0000 0004 +00 02 0 0 0 0 23 +341c 3b -1 +-1 + +fdcbb3 +9c05 0f92 bd3b 553d 0000 0000 0000 0000 c75e 51d2 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 6c b3 -1 +523e 37 -1 +-1 +-1 +9c05 0f92 bd37 553d 0000 0000 0000 0000 c75e 51d2 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbb4 +3e55 1338 638d 353c 0000 0000 0000 0000 44ad 4d17 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c5 b4 -1 +4cdc e9 -1 +-1 +-1 +3e55 1338 638d a93c 0000 0000 0000 0000 44ad 4d17 0000 0004 +00 02 0 0 0 0 23 +4cdc a9 -1 +-1 + +fdcbb5 +2f3a b709 4167 57be 0000 0000 0000 0000 b543 8edd 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 50 b5 -1 +8f2d 0f -1 +-1 +-1 +2f3a b709 4167 570f 0000 0000 0000 0000 b543 8edd 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbb6 +a887 519b c91b cc91 0000 0000 0000 0000 a416 1e16 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 3a b6 -1 +1e50 13 -1 +-1 +-1 +a887 519b c91b cc91 0000 0000 0000 0000 a416 1e16 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbb7 +1335 a599 9fbf c111 0000 0000 0000 0000 8bc5 00a9 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c0 b7 -1 +0069 38 -1 +-1 +-1 +3835 a599 9fbf c111 0000 0000 0000 0000 8bc5 00a9 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbb8 +d146 1138 1a45 8259 0000 0000 0000 0000 6a03 d087 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 31 b8 -1 +d0b8 17 -1 +-1 +-1 +d146 1738 1a45 8259 0000 0000 0000 0000 6a03 d087 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbb9 +757b 0b9e 767b 2ad1 0000 0000 0000 0000 1498 b84e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 3b b9 -1 +b889 b4 -1 +-1 +-1 +757b 0b34 767b 2ad1 0000 0000 0000 0000 1498 b84e 0000 0004 +00 02 0 0 0 0 23 +b889 34 -1 +-1 + +fdcbba +43ef 1c58 dda3 4519 0000 0000 0000 0000 b67b 383f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 38 ba -1 +3877 d6 -1 +-1 +-1 +43ef 1c58 56a3 4519 0000 0000 0000 0000 b67b 383f 0000 0004 +00 02 0 0 0 0 23 +3877 56 -1 +-1 + +fdcbbb +dccb 7ab3 7615 4161 0000 0000 0000 0000 2942 e2fe 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 07 bb -1 +e305 6e -1 +-1 +-1 +dccb 7ab3 766e 4161 0000 0000 0000 0000 2942 e2fe 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbbc +0e07 34f5 0995 cc42 0000 0000 0000 0000 9d42 af0c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f8 bc -1 +af04 cf -1 +-1 +-1 +0e07 34f5 0995 4f42 0000 0000 0000 0000 9d42 af0c 0000 0004 +00 02 0 0 0 0 23 +af04 4f -1 +-1 + +fdcbbd +30ef e60c 9bf0 a1bf 0000 0000 0000 0000 bd1c df0d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb aa bd -1 +deb7 8d -1 +-1 +-1 +30ef e60c 9bf0 a10d 0000 0000 0000 0000 bd1c df0d 0000 0004 +00 02 0 0 0 0 23 +deb7 0d -1 +-1 + +fdcbbe +1133 bef6 5059 1089 0000 0000 0000 0000 d558 3d0f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c8 be -1 +3cd7 a1 -1 +-1 +-1 +1133 bef6 5059 1089 0000 0000 0000 0000 d558 3d0f 0000 0004 +00 02 0 0 0 0 23 +3cd7 21 -1 +-1 + +fdcbbf +83d6 c893 8db8 716b 0000 0000 0000 0000 0956 bde7 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb fd bf -1 +bde4 ac -1 +-1 +-1 +2cd6 c893 8db8 716b 0000 0000 0000 0000 0956 bde7 0000 0004 +00 02 0 0 0 0 23 +bde4 2c -1 +-1 + +fdcbc0 +3666 676c 35e5 db0a 0000 0000 0000 0000 ea93 2b31 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 0a c0 -1 +2b3b ec -1 +-1 +-1 +3666 ed6c 35e5 db0a 0000 0000 0000 0000 ea93 2b31 0000 0004 +00 02 0 0 0 0 23 +2b3b ed -1 +-1 + +fdcbc1 +3902 d498 af62 9821 0000 0000 0000 0000 48b8 bd67 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 87 c1 -1 +bcee ee -1 +-1 +-1 +3902 d4ef af62 9821 0000 0000 0000 0000 48b8 bd67 0000 0004 +00 02 0 0 0 0 23 +bcee ef -1 +-1 + +fdcbc2 +ad26 5a6d 6762 16c9 0000 0000 0000 0000 495a 5b2c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 8d c2 -1 +5ab9 c2 -1 +-1 +-1 +ad26 5a6d c362 16c9 0000 0000 0000 0000 495a 5b2c 0000 0004 +00 02 0 0 0 0 23 +5ab9 c3 -1 +-1 + +fdcbc3 +3e6c 9a74 a2ee 9838 0000 0000 0000 0000 eafa e666 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 5a c3 -1 +e6c0 4f -1 +-1 +-1 +3e6c 9a74 a24f 9838 0000 0000 0000 0000 eafa e666 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbc4 +bf68 d00b 5283 51c2 0000 0000 0000 0000 517c 5d10 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 89 c4 -1 +5c99 61 -1 +-1 +-1 +bf68 d00b 5283 61c2 0000 0000 0000 0000 517c 5d10 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbc5 +127b db6a 00b9 5138 0000 0000 0000 0000 98f6 02bb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a9 c5 -1 +0264 cd -1 +-1 +-1 +127b db6a 00b9 51cd 0000 0000 0000 0000 98f6 02bb 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbc6 +35da 98c2 3f57 44a4 0000 0000 0000 0000 2771 76c4 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ee c6 -1 +76b2 82 -1 +-1 +-1 +35da 98c2 3f57 44a4 0000 0000 0000 0000 2771 76c4 0000 0004 +00 02 0 0 0 0 23 +76b2 83 -1 +-1 + +fdcbc7 +763f b86f 12d3 7e2d 0000 0000 0000 0000 d870 f30b 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9e c7 -1 +f2a9 d7 -1 +-1 +-1 +d73f b86f 12d3 7e2d 0000 0000 0000 0000 d870 f30b 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbc8 +1f81 c7c0 85da 3cdd 0000 0000 0000 0000 d854 c412 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 10 c8 -1 +c422 e9 -1 +-1 +-1 +1f81 ebc0 85da 3cdd 0000 0000 0000 0000 d854 c412 0000 0004 +00 02 0 0 0 0 23 +c422 eb -1 +-1 + +fdcbc9 +ed19 3f88 1370 e084 0000 0000 0000 0000 4fdd 8b42 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 61 c9 -1 +8ba3 b7 -1 +-1 +-1 +ed19 3fb7 1370 e084 0000 0000 0000 0000 4fdd 8b42 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbca +c7e5 233b 2312 f7f9 0000 0000 0000 0000 e417 5190 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 1a ca -1 +51aa 90 -1 +-1 +-1 +c7e5 233b 9212 f7f9 0000 0000 0000 0000 e417 5190 0000 0004 +00 02 0 0 0 0 23 +51aa 92 -1 +-1 + +fdcbcb +bdba a964 ea38 9422 0000 0000 0000 0000 fca3 9a72 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 5e cb -1 +9ad0 70 -1 +-1 +-1 +bdba a964 ea72 9422 0000 0000 0000 0000 fca3 9a72 0000 0004 +00 02 0 0 0 0 23 +9ad0 72 -1 +-1 + +fdcbcc +0f4f 0261 21b0 2097 0000 0000 0000 0000 575d 14f9 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 2d cc -1 +1526 4e -1 +-1 +-1 +0f4f 0261 21b0 4e97 0000 0000 0000 0000 575d 14f9 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbcd +1b79 8f9f 31bf 9ca6 0000 0000 0000 0000 7ecb bbe9 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb a1 cd -1 +bb8a 66 -1 +-1 +-1 +1b79 8f9f 31bf 9c66 0000 0000 0000 0000 7ecb bbe9 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbce +8e13 968e 1784 0a0a 0000 0000 0000 0000 1e87 b8a2 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 36 ce -1 +b8d8 45 -1 +-1 +-1 +8e13 968e 1784 0a0a 0000 0000 0000 0000 1e87 b8a2 0000 0004 +00 02 0 0 0 0 23 +b8d8 47 -1 +-1 + +fdcbcf +8d0a a073 c4ba 5b69 0000 0000 0000 0000 3b47 c29c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 70 cf -1 +c30c 7a -1 +-1 +-1 +7a0a a073 c4ba 5b69 0000 0000 0000 0000 3b47 c29c 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbd0 +e2bb 8635 650c 689a 0000 0000 0000 0000 1294 3beb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb bc d0 -1 +3ba7 20 -1 +-1 +-1 +e2bb 2435 650c 689a 0000 0000 0000 0000 1294 3beb 0000 0004 +00 02 0 0 0 0 23 +3ba7 24 -1 +-1 + +fdcbd1 +5df8 f701 9494 4967 0000 0000 0000 0000 ad00 8c65 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 11 d1 -1 +8c76 b9 -1 +-1 +-1 +5df8 f7bd 9494 4967 0000 0000 0000 0000 ad00 8c65 0000 0004 +00 02 0 0 0 0 23 +8c76 bd -1 +-1 + +fdcbd2 +9876 4bd9 3148 665a 0000 0000 0000 0000 7eac c051 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb fb d2 -1 +c04c 51 -1 +-1 +-1 +9876 4bd9 5548 665a 0000 0000 0000 0000 7eac c051 0000 0004 +00 02 0 0 0 0 23 +c04c 55 -1 +-1 + +fdcbd3 +8f90 bacd e87a 538f 0000 0000 0000 0000 fe5a 0a87 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 3e d3 -1 +0ac5 e0 -1 +-1 +-1 +8f90 bacd e8e4 538f 0000 0000 0000 0000 fe5a 0a87 0000 0004 +00 02 0 0 0 0 23 +0ac5 e4 -1 +-1 + +fdcbd4 +15e2 1820 5588 e67f 0000 0000 0000 0000 7193 9478 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 36 d4 -1 +94ae 7d -1 +-1 +-1 +15e2 1820 5588 7d7f 0000 0000 0000 0000 7193 9478 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbd5 +1409 6535 c371 abe2 0000 0000 0000 0000 2e10 8608 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 48 d5 -1 +8650 98 -1 +-1 +-1 +1409 6535 c371 ab9c 0000 0000 0000 0000 2e10 8608 0000 0004 +00 02 0 0 0 0 23 +8650 9c -1 +-1 + +fdcbd6 +7801 78b6 d191 054a 0000 0000 0000 0000 2065 6aa3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb c9 d6 -1 +6a6c 7c -1 +-1 +-1 +7801 78b6 d191 054a 0000 0000 0000 0000 2065 6aa3 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbd7 +1b6a 266e 387f 7fcb 0000 0000 0000 0000 1941 36ab 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb be d7 -1 +3669 95 -1 +-1 +-1 +956a 266e 387f 7fcb 0000 0000 0000 0000 1941 36ab 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbd8 +7b1b a191 efee 55b9 0000 0000 0000 0000 f789 43f8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb bc d8 -1 +43b4 d8 -1 +-1 +-1 +7b1b d891 efee 55b9 0000 0000 0000 0000 f789 43f8 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbd9 +0faf 4eda c556 6ed3 0000 0000 0000 0000 3fc3 0a66 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 16 d9 -1 +0a7c f4 -1 +-1 +-1 +0faf 4efc c556 6ed3 0000 0000 0000 0000 3fc3 0a66 0000 0004 +00 02 0 0 0 0 23 +0a7c fc -1 +-1 + +fdcbda +9ea1 8186 c045 d6e0 0000 0000 0000 0000 34d3 d0f0 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e8 da -1 +d0d8 6b -1 +-1 +-1 +9ea1 8186 6b45 d6e0 0000 0000 0000 0000 34d3 d0f0 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbdb +5ee0 bdea d00e 513f 0000 0000 0000 0000 690a 8c29 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 7a db -1 +8ca3 15 -1 +-1 +-1 +5ee0 bdea d01d 513f 0000 0000 0000 0000 690a 8c29 0000 0004 +00 02 0 0 0 0 23 +8ca3 1d -1 +-1 + +fdcbdc +5cfa 2e2b 1d17 dbf6 0000 0000 0000 0000 a4f2 593a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 64 dc -1 +599e 15 -1 +-1 +-1 +5cfa 2e2b 1d17 1df6 0000 0000 0000 0000 a4f2 593a 0000 0004 +00 02 0 0 0 0 23 +599e 1d -1 +-1 + +fdcbdd +8773 70a6 83ce 52b8 0000 0000 0000 0000 35da 1d94 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 75 dd -1 +1e09 28 -1 +-1 +-1 +8773 70a6 83ce 5228 0000 0000 0000 0000 35da 1d94 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbde +8310 fa01 6c69 252a 0000 0000 0000 0000 5291 c9e0 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 17 de -1 +c9f7 41 -1 +-1 +-1 +8310 fa01 6c69 252a 0000 0000 0000 0000 5291 c9e0 0000 0004 +00 02 0 0 0 0 23 +c9f7 49 -1 +-1 + +fdcbdf +780d a722 e78e 50ba 0000 0000 0000 0000 9d67 eac3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 93 df -1 +ea56 ef -1 +-1 +-1 +ef0d a722 e78e 50ba 0000 0000 0000 0000 9d67 eac3 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbe0 +10ef 4101 2ca5 f752 0000 0000 0000 0000 4747 1507 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 56 e0 -1 +155d b9 -1 +-1 +-1 +10ef b901 2ca5 f752 0000 0000 0000 0000 4747 1507 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbe1 +e4cb 6f72 1c11 1426 0000 0000 0000 0000 189b 0e0d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d1 e1 -1 +0dde 16 -1 +-1 +-1 +e4cb 6f16 1c11 1426 0000 0000 0000 0000 189b 0e0d 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbe2 +11a9 bae8 938b bac4 0000 0000 0000 0000 d8ed e49c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 50 e2 -1 +e4ec c2 -1 +-1 +-1 +11a9 bae8 d28b bac4 0000 0000 0000 0000 d8ed e49c 0000 0004 +00 02 0 0 0 0 23 +e4ec d2 -1 +-1 + +fdcbe3 +8832 952b 02b2 26ef 0000 0000 0000 0000 fb55 ada8 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ca e3 -1 +ad72 ba -1 +-1 +-1 +8832 952b 02ba 26ef 0000 0000 0000 0000 fb55 ada8 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbe4 +3989 4142 89e2 785b 0000 0000 0000 0000 0bf7 5474 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 62 e4 -1 +54d6 7b -1 +-1 +-1 +3989 4142 89e2 7b5b 0000 0000 0000 0000 0bf7 5474 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbe5 +e5c5 b86d 41bb 315e 0000 0000 0000 0000 1a78 a52d 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb da e5 -1 +a507 4c -1 +-1 +-1 +e5c5 b86d 41bb 315c 0000 0000 0000 0000 1a78 a52d 0000 0004 +00 02 0 0 0 0 23 +a507 5c -1 +-1 + +fdcbe6 +fd89 d888 1e2f ddf5 0000 0000 0000 0000 42f5 8b06 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 76 e6 -1 +8b7c 45 -1 +-1 +-1 +fd89 d888 1e2f ddf5 0000 0000 0000 0000 42f5 8b06 0000 0004 +00 02 0 0 0 0 23 +8b7c 55 -1 +-1 + +fdcbe7 +2025 d3e9 d4b6 aa30 0000 0000 0000 0000 88bd b597 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 11 e7 -1 +b5a8 a6 -1 +-1 +-1 +b625 d3e9 d4b6 aa30 0000 0000 0000 0000 88bd b597 0000 0004 +00 02 0 0 0 0 23 +b5a8 b6 -1 +-1 + +fdcbe8 +514d c2ab 37b5 57de 0000 0000 0000 0000 a4ec 0a77 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ed e8 -1 +0a64 d0 -1 +-1 +-1 +514d f0ab 37b5 57de 0000 0000 0000 0000 a4ec 0a77 0000 0004 +00 02 0 0 0 0 23 +0a64 f0 -1 +-1 + +fdcbe9 +974e d28e d5cb 6bd4 0000 0000 0000 0000 158a a84e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 35 e9 -1 +a883 2f -1 +-1 +-1 +974e d22f d5cb 6bd4 0000 0000 0000 0000 158a a84e 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbea +3ef4 3fc6 4a44 e9a4 0000 0000 0000 0000 c877 7593 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 93 ea -1 +7526 1b -1 +-1 +-1 +3ef4 3fc6 3b44 e9a4 0000 0000 0000 0000 c877 7593 0000 0004 +00 02 0 0 0 0 23 +7526 3b -1 +-1 + +fdcbeb +798f 5e9b 940e 2e52 0000 0000 0000 0000 d6ad 2411 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d0 eb -1 +23e1 47 -1 +-1 +-1 +798f 5e9b 9467 2e52 0000 0000 0000 0000 d6ad 2411 0000 0004 +00 02 0 0 0 0 23 +23e1 67 -1 +-1 + +fdcbec +38a4 07c0 6cee e715 0000 0000 0000 0000 f160 d2eb 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb f3 ec -1 +d2de 49 -1 +-1 +-1 +38a4 07c0 6cee 6915 0000 0000 0000 0000 f160 d2eb 0000 0004 +00 02 0 0 0 0 23 +d2de 69 -1 +-1 + +fdcbed +e0bc 70c1 de35 81c5 0000 0000 0000 0000 d57f 0eab 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 58 ed -1 +0f03 10 -1 +-1 +-1 +e0bc 70c1 de35 8130 0000 0000 0000 0000 d57f 0eab 0000 0004 +00 02 0 0 0 0 23 +0f03 30 -1 +-1 + +fdcbee +5fcb 9007 1736 aca8 0000 0000 0000 0000 4bab 42bc 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 02 ee -1 +42be d0 -1 +-1 +-1 +5fcb 9007 1736 aca8 0000 0000 0000 0000 4bab 42bc 0000 0004 +00 02 0 0 0 0 23 +42be f0 -1 +-1 + +fdcbef +4ee3 d344 cb5b aeb5 0000 0000 0000 0000 de5f 2272 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 58 ef -1 +22ca 09 -1 +-1 +-1 +29e3 d344 cb5b aeb5 0000 0000 0000 0000 de5f 2272 0000 0004 +00 02 0 0 0 0 23 +22ca 29 -1 +-1 + +fdcbf0 +1080 b270 1b5b a9b7 0000 0000 0000 0000 e89d ee9e 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 45 f0 -1 +eee3 2c -1 +-1 +-1 +1080 6c70 1b5b a9b7 0000 0000 0000 0000 e89d ee9e 0000 0004 +00 02 0 0 0 0 23 +eee3 6c -1 +-1 + +fdcbf1 +1702 c43b d138 316f 0000 0000 0000 0000 8067 4783 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 2f f1 -1 +47b2 dc -1 +-1 +-1 +1702 c4dc d138 316f 0000 0000 0000 0000 8067 4783 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbf2 +732a 4cd1 77fe 4814 0000 0000 0000 0000 42f1 ea97 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 2c f2 -1 +eac3 5e -1 +-1 +-1 +732a 4cd1 5efe 4814 0000 0000 0000 0000 42f1 ea97 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbf3 +6b97 59d3 f546 7530 0000 0000 0000 0000 6670 7d90 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 38 f3 -1 +7dc8 0c -1 +-1 +-1 +6b97 59d3 f54c 7530 0000 0000 0000 0000 6670 7d90 0000 0004 +00 02 0 0 0 0 23 +7dc8 4c -1 +-1 + +fdcbf4 +7af0 a81f 5d3a 799b 0000 0000 0000 0000 e12b 309c 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb d0 f4 -1 +306c 0e -1 +-1 +-1 +7af0 a81f 5d3a 4e9b 0000 0000 0000 0000 e12b 309c 0000 0004 +00 02 0 0 0 0 23 +306c 4e -1 +-1 + +fdcbf5 +1370 f6b2 aaa2 7f0a 0000 0000 0000 0000 c9f6 6b1f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 55 f5 -1 +6b74 f8 -1 +-1 +-1 +1370 f6b2 aaa2 7ff8 0000 0000 0000 0000 c9f6 6b1f 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbf6 +7c43 fcd1 34bd f4ab 0000 0000 0000 0000 ef33 c61a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 56 f6 -1 +c670 5d -1 +-1 +-1 +7c43 fcd1 34bd f4ab 0000 0000 0000 0000 ef33 c61a 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbf7 +e6da 231a 7bb1 800d 0000 0000 0000 0000 e37e 5789 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 9e f7 -1 +5727 66 -1 +-1 +-1 +66da 231a 7bb1 800d 0000 0000 0000 0000 e37e 5789 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbf8 +fa29 ee74 d7c4 afaf 0000 0000 0000 0000 512c de7a 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 54 f8 -1 +dece 7a -1 +-1 +-1 +fa29 fa74 d7c4 afaf 0000 0000 0000 0000 512c de7a 0000 0004 +00 02 0 0 0 0 23 +dece fa -1 +-1 + +fdcbf9 +4662 a71b 5065 ed06 0000 0000 0000 0000 279e 99e3 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 30 f9 -1 +9a13 c6 -1 +-1 +-1 +4662 a7c6 5065 ed06 0000 0000 0000 0000 279e 99e3 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbfa +9426 53ec 5016 6c99 0000 0000 0000 0000 8b99 bd79 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 09 fa -1 +bd82 f4 -1 +-1 +-1 +9426 53ec f416 6c99 0000 0000 0000 0000 8b99 bd79 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbfb +5343 b212 09ca e3c6 0000 0000 0000 0000 cd2b f875 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb ba fb -1 +f82f ed -1 +-1 +-1 +5343 b212 09ed e3c6 0000 0000 0000 0000 cd2b f875 0000 0004 +00 02 0 0 0 0 23 +-1 + +fdcbfc +0965 4392 ca25 2baa 0000 0000 0000 0000 f023 6623 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 56 fc -1 +6679 65 -1 +-1 +-1 +0965 4392 ca25 e5aa 0000 0000 0000 0000 f023 6623 0000 0004 +00 02 0 0 0 0 23 +6679 e5 -1 +-1 + +fdcbfd +1751 233c 6214 d119 0000 0000 0000 0000 c415 5d2b 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 25 fd -1 +5d50 27 -1 +-1 +-1 +1751 233c 6214 d1a7 0000 0000 0000 0000 c415 5d2b 0000 0004 +00 02 0 0 0 0 23 +5d50 a7 -1 +-1 + +fdcbfe +b4cf 5639 677b 0ca2 0000 0000 0000 0000 ddc5 4e4f 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb 88 fe -1 +4dd7 4a -1 +-1 +-1 +b4cf 5639 677b 0ca2 0000 0000 0000 0000 ddc5 4e4f 0000 0004 +00 02 0 0 0 0 23 +4dd7 ca -1 +-1 + +fdcbff +f151 13da 7c56 f025 0000 0000 0000 0000 2b36 2aed 0000 0000 +00 00 0 0 0 0 1 +0000 fd cb e4 ff -1 +2ad1 97 -1 +-1 +-1 +9751 13da 7c56 f025 0000 0000 0000 0000 2b36 2aed 0000 0004 +00 02 0 0 0 0 23 +-1 + +fde1 +828e 078b 1e35 8f1c 0000 0000 0000 0000 4827 b742 716e 0000 +00 00 0 0 0 0 1 +0000 fd e1 -1 +716e d5 92 -1 +-1 +-1 +828e 078b 1e35 8f1c 0000 0000 0000 0000 4827 92d5 7170 0002 +00 02 0 0 0 0 14 +-1 + +fde3 +4298 c805 6030 4292 0000 0000 0000 0000 473b 9510 1a38 0000 +00 00 0 0 0 0 1 +0000 fd e3 -1 +1a38 e0 0f -1 +-1 +-1 +4298 c805 6030 4292 0000 0000 0000 0000 473b 0fe0 1a38 0002 +00 02 0 0 0 0 23 +1a38 10 95 -1 +-1 + +fde5 +d139 aa0d bf2b 2a56 0000 0000 0000 0000 e138 d4da a8e1 0000 +00 00 0 0 0 0 1 +0000 fd e5 -1 +-1 +-1 +d139 aa0d bf2b 2a56 0000 0000 0000 0000 e138 d4da a8df 0002 +00 02 0 0 0 0 15 +a8df da d4 -1 +-1 + +fde9 +c14f 2eb6 edf0 27cf 0000 0000 0000 0000 09ee a2a4 0000 0000 +00 00 0 0 0 0 1 +0000 fd e9 -1 +-1 +-1 +c14f 2eb6 edf0 27cf 0000 0000 0000 0000 09ee a2a4 0000 a2a4 +00 02 0 0 0 0 8 +-1 + +fdf9 +c260 992e d544 67fb 0000 0000 0000 0000 ba5e 3596 353f 0000 +00 00 0 0 0 0 1 +0000 fd f9 -1 +-1 +-1 +c260 992e d544 67fb 0000 0000 0000 0000 ba5e 3596 3596 0002 +00 02 0 0 0 0 10 +-1 + +fe +6900 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +00 00 0 0 0 0 1 +0000 fe 82 -1 +-1 +-1 +6987 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 +00 01 0 0 0 0 7 +-1 + +ff +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5507 6d33 +00 00 0 0 0 0 1 +6d33 ff -1 +-1 +-1 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5505 0038 +00 01 0 0 0 0 11 +5505 34 6d -1 +-1 + diff --git a/src/z80free/z80_test.pnproj b/src/z80free/z80_test.pnproj new file mode 100644 index 0000000..5361186 --- /dev/null +++ b/src/z80free/z80_test.pnproj @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/z80free/z80_test.pnps b/src/z80free/z80_test.pnps new file mode 100644 index 0000000..c54a1c3 --- /dev/null +++ b/src/z80free/z80_test.pnps @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/z80free/z80free_gencode.py b/src/z80free/z80free_gencode.py new file mode 100644 index 0000000..93b5453 --- /dev/null +++ b/src/z80free/z80free_gencode.py @@ -0,0 +1,1308 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- + +# Copyright 2008-2009 (C) Raster Software Vigo (Sergio Costas) + +# This file is part of Z80Free +# +# Z80Free is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Z80Free is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import sys + +class generic_parser: + + + def get_code_from_one_param(self,element,bits): + + """ Returns nbits,read,write,condition + + Parses the ELEMENT string and, if its a register, a number or a memory access, + returns in READ a piece of C code that allows to get that value; in WRITE a + piece of code that allows to store a value there (if applicable, None if not + valid) and NONE in CONDITION. + + if ELEMENT is a condition (like check ZERO, CARRY...), it returns None in READ + and WRITE, and in CONDITION a piece of C code which returns TRUE (1) if that + condition is true, or FALSE (0) if it is false. + + When the string has an ambiguous size (like (nn) in LD A,(nn) ), this function + will use BITS to know how many bits has to use. But if BITS is 0 it means + that the main class still doesn't know how many bits the current instruction + is using, so this function must return 0 in NBITS. But if it can determine + the true bit size (both because it's a fixed size element, like a register, + or because BITS contains a value different of 0) then it must returns that + size. + + If the combination of ELEMENT and BITS is unknown, it must call + + self.unknown_param() + + to show an error and stop the parsing process + """ + + raise TypeError('Abstract method z80parser.get_code_from_one_param called') + + + def create_code(self,ncode,tst1,tst2,opcode,code_read,code_write,condition,bits): + + """ Writes C code for the opcode OPCODE, with the list CODE_READ containing + C code for read each one of the parameters, the list CODE_WRITE containing + C code for write each one of the parameters, CONDITION containing a C code + string to check if the condition is TRUE or FALSE (or containing NONE if + the opcode is unconditional), and all parameters having a wide of BITS bits. + NCODE is the decimal code asigned to this opcode, and TST1 and TST2 are the + TStates used by this opcode to run (the first when the condition is True, + and the second when the condition is False). + + If this method returns False the main class will assume that it hasn't + added the C code to return the number of TStates, and will add a line with + the code RETURN (TST1); after it; but if it returns True, the class will + assume that the C code inserted already returns the number of TStates, and + won't add the RETURN line. + + This is an abstract method, and must be implemented in the class + derived from this one. + + If the combination of OPCODE and BITS is unknown, it must call + + self.unknown_opcode() + + to show an error and stop the parsing process + + """ + + raise TypeError('Abstract method z80parser.create_code called') + + + def write_start_code(self,filename,file_out): + + """ Writes the first part of the C code for the file """ + + raise TypeError('Abstract method z80parser.write_start_code called') + + + def write_end_code(self,filename,file_out): + + """ Writes the first part of the C code for the file """ + + raise TypeError('Abstract method z80parser.write_end_code called') + + + def license(self): + + """ writes the license terms. It must be always the GPL """ + + if self.copyright_year==None: + raise TypeError('Copyright year not defined') + + if self.copyright_author==None: + raise TypeError('Copyright author not defined') + + if self.copyright_program_name==None: + raise TypeError('Copyright program name not defined') + + self.file_out.write('/*\n') + self.file_out.write(' * Copyright (C) '+str(self.copyright_year)+' '+str(self.copyright_author)+'\n') + self.file_out.write(' * This file is part of '+str(self.copyright_program_name)+'\n') + self.file_out.write(' *\n') + self.file_out.write(' * '+str(self.copyright_program_name)+' is free software; you can redistribute it and/or modify\n') + self.file_out.write(' * it under the terms of the GNU General Public License as published by\n') + self.file_out.write(' * the Free Software Foundation; either version 3 of the License, or\n') + self.file_out.write(' * (at your option) any later version.\n') + self.file_out.write(' *\n') + self.file_out.write(' * '+str(self.copyright_program_name)+' is distributed in the hope that it will be useful,\n') + self.file_out.write(' * but WITHOUT ANY WARRANTY; without even the implied warranty of\n') + self.file_out.write(' * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n') + self.file_out.write(' * GNU General Public License for more details.\n') + self.file_out.write(' *\n') + self.file_out.write(' * You should have received a copy of the GNU General Public License\n') + self.file_out.write(' * along with this program. If not, see .\n') + self.file_out.write(' * \n') + self.file_out.write(' */') + + + def __init__(self,filename): + + self.line_number=0 + self.curr_element="" + self.curr_bits=0 + self.curr_opcode="" + self.curr_instruction="" + self.filename=filename + self.file_in=open(filename+".txt","r") + self.file_out=open(filename+".c","w") + + self.license() # the code generated by z80free_gencode.py is ALWAYS GPL + self.file_out.write('\n\n') + self.write_start_code() + self.file_out.write('\tswitch(opcode) {\n') + while True: + if self.proccess_line()==False: + break + self.file_out.write('\t}\n\n') + self.write_end_code() + self.file_out.close() + self.file_in.close() + + + def proccess_line(self): + + while True: + ncode,tst1,tst2,opcode,params=self.get_parts() + if ncode==None: + return False + if tst1!=0: + break + + code_read,code_write,condition,bits=self.get_code_from_params(params) + self.file_out.write("\tcase "+str(ncode)+": // "+self.curr_instruction+"\n") + self.curr_opcode=opcode + self.curr_bits=bits + tst_done=self.create_code(ncode,tst1,tst2,opcode,code_read,code_write,condition,bits) + if tst_done==False: + self.file_out.write("\t\treturn ("+str(tst1)+");\n") + self.file_out.write("\tbreak;\n") + + + def unknown_opcode(self): + + self.show_error("Unknown opcode "+str(self.curr_opcode)+" for "+str(self.curr_bits)+" bits wide while processing "+str(self.curr_instruction)) + + + def unknown_param(self): + + self.show_error("Unknown parameter "+str(self.curr_element)+" for "+str(self.curr_bits)+" bits wide while processing "+str(self.curr_instruction)) + + + def show_error(self,msg_error): + + print + print "Syntax error while processing file "+self.filename+".txt" + print "at line "+str(self.line_number)+" when processing instruction "+self.curr_instruction + print msg_error + print "Check the file and run again" + print + self.file_out.close() + self.file_in.close() + sys.exit(1) + + + def get_parts(self): + + """ Gets the parts from a file line: number code, TStates OPCODE and parameters """ + + while True: + line=self.file_in.readline() + self.line_number+=1 + if line=="": + return None,0,0,"","" + if (line[0]!="#") and (line!="\n"): + break + + if line[-1]=="\n": + line=line[:-1] + l_ncode=int(line[0:2],16) + pos=line[3:].find("\t") # find the separator between the TStates and the OPCODE + if (line[3]=="\t") or (line[3]=="*") or (pos==-1): # if there are no TStates nor OPCODE, its an empty entry + return l_ncode,0,0,"","" + + tstates=line[3:pos+3] + pos2=tstates.find("/") # check if there are two TState values + if pos2==-1: + l_tst1=int(tstates) + l_tst2=int(tstates) + else: + l_tst1=int(tstates[:pos2]) # tstates if the condition is True + l_tst2=int(tstates[pos2+1:]) # tstates if the condition is False + l_opcode=line[pos+4:] + self.curr_instruction=l_opcode + pos=l_opcode.find(" ") + if pos!=-1: # there are parameters + l_params=l_opcode[pos+1:] + l_opcode=l_opcode[:pos] + else: + l_params="" + + return l_ncode,l_tst1,l_tst2,l_opcode,l_params + + + def get_code_from_params(self,params): + + """ Returns the C code to read or write the params, and the code for the condition + Return two lists, an string and an integer. The first list contains the C code to + read each parameter; the second list the C code to write each parameter; the + string returns the string which checks the condition (None if there's no condition) + and the integer indicates when the operators are 8 or 16 bit wide. + + If it finds a set of parameters that can't parse, it prints it and exits + + It uses the virtual method get_code_from_one_param(element,bits) to parse + each parameter + """ + + bits=0 + + if params=="": + return [],[],None,0 + + bits_found=False + list_params=params.split(",") + while bits_found==False: + bits_found=True + read_code=[] + write_code=[] + condition=None + for element in list_params: + # a parameter's bit wide can be ambiguous (like (nn) in LD A,(nn) or + # LD HL,(nn) ) so we try to read it passing the currently known bit wide, + # and the function must returns the true wide if it's unambiguous (like A, HL...) + # the true wide if passed a correct wide, or 0 if the current bit wide is + # unknown and the parameter is ambiguous. So in the case of + # LD A,(nn) we do only one pass to get the wide, but in the case of + # LD (nn),A we do two passes, because the first parameter is ambiguous + # in size + self.curr_bits=bits + self.curr_element=element + nbits,read,write,p_condition=self.get_code_from_one_param(element,bits) + if p_condition!=None: # this parameter is a condition + condition=p_condition + continue + if nbits==0: + bits_found=False + else: + if bits==0: + bits=nbits + if bits!=nbits: + self.show_error("Mixed bit wide parameters (8 and 16 bit parameters in the same line)") + + read_code.append(read) + write_code.append(write) + if (bits==0) and (bits_found==False): + self.show_error("All parameters are ambiguous: "+str(params)) + + return read_code,write_code,condition,bits + + +class z80_parser(generic_parser): + + def __init__(self,filename): + + self.copyright_year="2008-2009" + self.copyright_author="Sergio Costas (Raster Software Vigo)" + self.copyright_program_name="Z80Free" + generic_parser.__init__(self, filename) + + + def get_code_from_one_param(self,element,bits): + + """ Returns nbits,read,write,condition """ + + if element=="AF": + return 16,"processor->Rm.wr.AF","processor->Rm.wr.AF=@DATA@;",None + if element=="AF'": + return 16,"processor->Ra.wr.AF","processor->Ra.wr.AF=@DATA@;",None + if element=="BC": + return 16,"processor->Rm.wr.BC","processor->Rm.wr.BC=@DATA@;",None + if element=="DE": + return 16,"processor->Rm.wr.DE","processor->Rm.wr.DE=@DATA@;",None + if element=="HL": + return 16,"processor->Rm.wr.HL","processor->Rm.wr.HL=@DATA@;",None + if element=="SP": + return 16,"processor->Rm.wr.SP","processor->Rm.wr.SP=@DATA@;",None + + if element=="IX": + return 16,"processor->Rm.wr.IX","processor->Rm.wr.IX=@DATA@;",None + if element=="IY": + return 16,"processor->Rm.wr.IY","processor->Rm.wr.IY=@DATA@;",None + + if element=="(IX+d)": + if bits==0: + return 0,None,None,None + elif bits==8: + if (self.codes=="DDCB") or (self.codes=="FDCB"): + return 8,"Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))","Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),@DATA@);",None + else: + return 8,"Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX))","Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IX),@DATA@);",None + + if element=="(IY+d)": + if bits==0: + return 0,None,None,None + elif bits==8: + if (self.codes=="DDCB") or (self.codes=="FDCB"): + return 8,"Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))","Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),@DATA@);",None + else: + return 8,"Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY))","Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IY),@DATA@);",None + + if element=="IX+d": + if bits==0: + return 0,None,None,None + elif bits==8: + return 8,"Z80free_addr_relative(processor,processor->Rm.wr.IX)",None,None + + if element=="IY+d": + if bits==0: + return 0,None,None,None + elif bits==8: + return 8,"Z80free_addr_relative(processor,processor->Rm.wr.IY)",None,None + + if element=="b(IX+d)": + if (self.codes=="DDCB") or (self.codes=="FDCB"): + return 8,"Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1))","Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IX,d1),@DATA@);",None + else: + return 8,"Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IX))","Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IX),@DATA@);",None + + + if element=="b(IY+d)": + if (self.codes=="DDCB") or (self.codes=="FDCB"): + return 8,"Z80free_Rd(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1))","Z80free_Wr(Z80free_addr_relativeXDCB(processor,processor->Rm.wr.IY,d1),@DATA@);",None + else: + return 8,"Z80free_Rd(Z80free_addr_relative(processor,processor->Rm.wr.IY))","Z80free_Wr(Z80free_addr_relative(processor,processor->Rm.wr.IY),@DATA@);",None + + if element=="nn": + return 16,"Z80free_read_param_16(processor)",None,None + if element=="n": + return 8,"Z80free_read_param_8(processor)",None,None + + if element=="(nn)": + if bits==0: + return 0,None,None,None + elif bits==8: + return 8,"Z80free_Rd(Z80free_read_param_16(processor))","Z80free_Wr(Z80free_read_param_16(processor),@DATA@);",None + elif bits==16: + return 16,"Z80free_read16(Z80free_read_param_16(processor))","Z80free_write16(Z80free_read_param_16(processor),@DATA@);",None + + if element=="(BC)": + if bits==0: + return 0,None,None,None + elif bits==8: + return 8,"Z80free_Rd(processor->Rm.wr.BC)","Z80free_Wr(processor->Rm.wr.BC,@DATA@);",None + elif bits==16: + return 16,"Z80free_read16(processor->Rm.wr.BC)","Z80free_write16(processor->Rm.wr.BC,@DATA@);",None + if element=="(DE)": + if bits==0: + return 0,None,None,None + elif bits==8: + return 8,"Z80free_Rd(processor->Rm.wr.DE)","Z80free_Wr(processor->Rm.wr.DE,@DATA@);",None + elif bits==16: + return 16,"Z80free_read16(processor->Rm.wr.DE)","Z80free_write16(processor->Rm.wr.DE,@DATA@);",None + if element=="(HL)": + if bits==0: + return 0,None,None,None + elif bits==8: + return 8,"Z80free_Rd(processor->Rm.wr.HL)","Z80free_Wr(processor->Rm.wr.HL,@DATA@);",None + elif bits==16: + return 16,"Z80free_read16(processor->Rm.wr.HL)","Z80free_write16(processor->Rm.wr.HL,@DATA@);",None + if element=="(SP)": + if bits==0: + return 0,None,None,None + elif bits==16: + return 16,"Z80free_read16(processor->Rm.wr.SP)","Z80free_write16(processor->Rm.wr.SP,@DATA@);",None + if element=="b(HL)": + return 8,"Z80free_Rd(processor->Rm.wr.HL)","Z80free_Wr(processor->Rm.wr.HL,@DATA@);",None + + if element=="I": + return 8,"Z80free_readI(processor)","processor->I=@DATA@;",None + if element=="R": + return 8,"Z80free_readR(processor)","Z80free_setR(processor,@DATA@);",None + + if element=="A": + return 8,"processor->Rm.br.A","processor->Rm.br.A=@DATA@;",None + if element=="B": + return 8,"processor->Rm.br.B","processor->Rm.br.B=@DATA@;",None + if element=="C": + return 8,"processor->Rm.br.C","processor->Rm.br.C=@DATA@;",None + if element=="D": + return 8,"processor->Rm.br.D","processor->Rm.br.D=@DATA@;",None + if element=="E": + return 8,"processor->Rm.br.E","processor->Rm.br.E=@DATA@;",None + if element=="H": + return 8,"processor->Rm.br.H","processor->Rm.br.H=@DATA@;",None + if element=="L": + return 8,"processor->Rm.br.L","processor->Rm.br.L=@DATA@;",None + if element=="IXH": + return 8,"processor->Rm.br.IXh","processor->Rm.br.IXh=@DATA@;",None + if element=="IXL": + return 8,"processor->Rm.br.IXl","processor->Rm.br.IXl=@DATA@;",None + if element=="IYH": + return 8,"processor->Rm.br.IYh","processor->Rm.br.IYh=@DATA@;",None + if element=="IYL": + return 8,"processor->Rm.br.IYl","processor->Rm.br.IYl=@DATA@;",None + + if element=="0H": + return 16,"0",None,None + if element=="0": + return 8,"0",None,None + if element=="1": + return 8,"1",None,None + if element=="2": + return 8,"2",None,None + if element=="3": + return 8,"3",None,None + if element=="4": + return 8,"4",None,None + if element=="5": + return 8,"5",None,None + if element=="6": + return 8,"6",None,None + if element=="7": + return 8,"7",None,None + if element=="8H": + return 16,"8",None,None + if element=="10H": + return 16,"16",None,None + if element=="18H": + return 16,"24",None,None + if element=="20H": + return 16,"32",None,None + if element=="28H": + return 16,"40",None,None + if element=="30H": + return 16,"48",None,None + if element=="38H": + return 16,"56",None,None + + if element=="NZ": + return 0,None,None,"(0==(F_Z&processor->Rm.br.F))" + if element=="Z": + return 0,None,None,"(F_Z&processor->Rm.br.F)" + if element=="NC": + return 0,None,None,"(0==(F_C&processor->Rm.br.F))" + if element=="CF": + return 0,None,None,"(F_C&processor->Rm.br.F)" + if element=="PO": + return 0,None,None,"(0==(F_PV&processor->Rm.br.F))" + if element=="PE": + return 0,None,None,"(F_PV&processor->Rm.br.F)" + if element=="P": + return 0,None,None,"(0==(F_S&processor->Rm.br.F))" + if element=="M": + return 0,None,None,"(F_S&processor->Rm.br.F)" + + self.unknown_param() + + + def create_code(self,ncode,tst1,tst2,opcode,code_read,code_write,condition,bits): + + """ Returns True if it has written the RETURN for returning the TStates """ + + if opcode=="NOP": + return False + + if opcode=="LD2": + self.file_out.write("\t\ttmp2="+code_read[0]+";\n") + self.file_out.write("\t\tZ80free_Wr(tmp2,"+code_read[1]+");\n") + return False + + if opcode=="LD": + self.file_out.write("\t\t"+code_write[0].replace("@DATA@",code_read[1])+"\n") + return False + + if opcode=="INC": + if bits==16: + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","Z80free_doIncDec16(processor,"+code_read[0]+",0)")+"\n") + return False + elif bits==8: + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","Z80free_doIncDec(processor,"+code_read[0]+",0)")+"\n") + return False + + if opcode=="DEC": + if bits==16: + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","Z80free_doIncDec16(processor,"+code_read[0]+",1)")+"\n") + return False + elif bits==8: + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","Z80free_doIncDec(processor,"+code_read[0]+",1)")+"\n") + return False + + if opcode=="RLCA": + self.file_out.write("\t\tprocessor->Rm.br.A=Z80free_doRLC(processor,0,processor->Rm.br.A);\n") + return False + + if opcode=="RRCA": + self.file_out.write("\t\tprocessor->Rm.br.A=Z80free_doRRC(processor,0,processor->Rm.br.A);\n") + return False + + if opcode=="EX": + self.file_out.write("\t\ttmp2="+code_read[0]+";\n") + self.file_out.write("\t\t"+code_write[0].replace("@DATA@",code_read[1])+"\n") + self.file_out.write("\t\t"+code_write[1].replace("@DATA@","tmp2")+"\n") + return False + + if opcode=="ADD": + if bits==16: + data="Z80free_doArithmetic16(processor,"+code_read[0]+","+code_read[1]+",0,0)" + self.file_out.write("\t\t"+code_write[0].replace("@DATA@",data)+"\n") + return False + elif bits==8: + data="Z80free_doArithmetic(processor,"+code_read[0]+","+code_read[1]+",0,0)" + self.file_out.write("\t\t"+code_write[0].replace("@DATA@",data)+"\n") + return False + + if opcode=="ADC": + if bits==16: + data="Z80free_doArithmetic16(processor,"+code_read[0]+","+code_read[1]+",1,0)" + self.file_out.write("\t\t"+code_write[0].replace("@DATA@",data)+"\n") + return False + elif bits==8: + data="Z80free_doArithmetic(processor,"+code_read[0]+","+code_read[1]+",1,0)" + self.file_out.write("\t\t"+code_write[0].replace("@DATA@",data)+"\n") + return False + + if opcode=="SUB": + if bits==16: + data="Z80free_doArithmetic16(processor,"+code_read[0]+","+code_read[1]+",0,1)" + self.file_out.write("\t\t"+code_write[0].replace("@DATA@",data)+"\n") + return False + elif bits==8: + data="Z80free_doArithmetic(processor,processor->Rm.br.A,"+code_read[0]+",0,1)" + self.file_out.write("\t\tprocessor->Rm.br.A="+data+";\n") + return False + + if opcode=="SBC": + if bits==16: + data="Z80free_doArithmetic16(processor,"+code_read[0]+","+code_read[1]+",1,1)" + self.file_out.write("\t\t"+code_write[0].replace("@DATA@",data)+"\n") + return False + elif bits==8: + data="Z80free_doArithmetic(processor,"+code_read[0]+","+code_read[1]+",1,1)" + self.file_out.write("\t\t"+code_write[0].replace("@DATA@",data)+"\n") + return False + + if opcode=="DJNZ": + self.file_out.write("\t\ttmp1="+code_read[0]+";\n") + self.file_out.write("\t\tprocessor->Rm.br.B--;\n") + self.file_out.write("\t\tif (processor->Rm.br.B) {\n") + self.file_out.write("\t\t\tZ80free_jump_relative(processor,tmp1);\n") + self.file_out.write("\t\t\treturn ("+str(tst1)+");\n") + self.file_out.write("\t\t} else {\n") + self.file_out.write("\t\t\treturn ("+str(tst2)+");\n") + self.file_out.write("\t\t}\n") + return True + + if opcode=="RLA": + self.file_out.write("\t\tprocessor->Rm.br.A=Z80free_doRL(processor,0,processor->Rm.br.A);\n") + return False + + if opcode=="RRA": + self.file_out.write("\t\tprocessor->Rm.br.A=Z80free_doRR(processor,0,processor->Rm.br.A);\n") + return False + + if opcode=="DAA": + self.file_out.write("\t\tZ80free_doDAA(processor);\n") + return False + + if opcode=="CPL": + self.file_out.write("\t\tprocessor->Rm.br.A=255-processor->Rm.br.A;\n") + self.file_out.write("\t\tZ80free_adjustFlags(processor,processor->Rm.br.A);\n") + self.file_out.write("\t\tZ80free_setFlag(processor,F_H);\n") + self.file_out.write("\t\tZ80free_setFlag(processor,F_N);\n") + return False + + if opcode=="SCF": + self.file_out.write("\t\tZ80free_setFlag(processor,F_C);\n") + self.file_out.write("\t\tZ80free_resFlag(processor,F_H);\n") + self.file_out.write("\t\tZ80free_resFlag(processor,F_N);\n") + self.file_out.write("\t\tZ80free_adjustFlags(processor,processor->Rm.br.A);\n") + return False + + if opcode=="CCF": + self.file_out.write("\t\tZ80free_valFlag(processor,F_C,(~processor->Rm.br.F)&F_C);\n") + self.file_out.write("\t\tZ80free_resFlag(processor,F_N);\n") + self.file_out.write("\t\tZ80free_adjustFlags(processor,processor->Rm.br.A);\n") + return False + + if opcode=="HALT": + self.file_out.write("\t\tprocessor->PC--;\n") + self.file_out.write("\t\tprocessor->HALT=1;\n") + return False + + if opcode=="AND": + if bits==8: + self.file_out.write("\t\tZ80free_doAND(processor,"+code_read[0]+");\n") + return False + + if opcode=="OR": + if bits==8: + self.file_out.write("\t\tZ80free_doOR(processor,"+code_read[0]+");\n") + return False + + if opcode=="XOR": + if bits==8: + self.file_out.write("\t\tZ80free_doXOR(processor,"+code_read[0]+");\n") + return False + + if opcode=="CP": + if bits==8: + self.file_out.write("\t\ttmp1="+code_read[0]+";\n") + self.file_out.write("\t\tZ80free_doArithmetic(processor,processor->Rm.br.A,tmp1,0,1);\n") + self.file_out.write("\t\tZ80free_adjustFlags(processor,tmp1);\n") + return False + + if opcode=="JR": + self.file_out.write("\t\ttmp1="+code_read[0]+";\n") + if condition==None: # no condition, always jump + self.file_out.write("\t\tZ80free_jump_relative(processor,tmp1);\n") + return False + else: + self.file_out.write("\t\tif "+condition+" {\n") + self.file_out.write("\t\t\tZ80free_jump_relative(processor,tmp1);\n") + self.file_out.write("\t\t\treturn ("+str(tst1)+");\n") + self.file_out.write("\t\t} else {\n") + self.file_out.write("\t\t\treturn ("+str(tst2)+");\n") + self.file_out.write("\t\t}\n") + return True + + if opcode=="RET": + if condition==None: + self.file_out.write("\t\tprocessor->PC=Z80free_doPop(processor);\n") + return False + else: + self.file_out.write("\t\tif "+condition+" {\n") + self.file_out.write("\t\t\tprocessor->PC=Z80free_doPop(processor);\n") + self.file_out.write("\t\t\treturn ("+str(tst1)+");\n") + self.file_out.write("\t\t} else {\n") + self.file_out.write("\t\t\treturn ("+str(tst2)+");\n") + self.file_out.write("\t\t}\n") + return True + + if opcode=="POP": + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","Z80free_doPop(processor)")+"\n") + return False + + if opcode=="JP": + self.file_out.write("\t\ttmp2="+code_read[0]+";\n") + if condition==None: + self.file_out.write("\t\tprocessor->PC=tmp2;\n") + return False + else: + self.file_out.write("\t\tif "+condition+" {\n") + self.file_out.write("\t\t\tprocessor->PC=tmp2;\n") + self.file_out.write("\t\t\treturn ("+str(tst1)+");\n") + self.file_out.write("\t\t} else {\n") + self.file_out.write("\t\t\treturn ("+str(tst2)+");\n") + self.file_out.write("\t\t}\n") + return True + + if opcode=="CALL": + self.file_out.write("\t\ttmp2="+code_read[0]+";\n") + if condition==None: + self.file_out.write("\t\tZ80free_doPush(processor,processor->PC);\n") + self.file_out.write("\t\tprocessor->PC=tmp2;\n") + return False + else: + self.file_out.write("\t\tif "+condition+" {\n") + self.file_out.write("\t\t\tZ80free_doPush(processor,processor->PC);\n") + self.file_out.write("\t\t\tprocessor->PC=tmp2;\n") + self.file_out.write("\t\t\treturn ("+str(tst1)+");\n") + self.file_out.write("\t\t} else {\n") + self.file_out.write("\t\t\treturn ("+str(tst2)+");\n") + self.file_out.write("\t\t}\n") + return True + + if opcode=="PUSH": + self.file_out.write("\t\tZ80free_doPush(processor,"+code_read[0]+");\n") + return False + + if opcode=="RST": + self.file_out.write("\t\tZ80free_doPush(processor,processor->PC);\n") + self.file_out.write("\t\tprocessor->PC="+code_read[0]+";\n") + return False + + if opcode=="EXX": + self.file_out.write("\t\ttmp2=processor->Rm.wr.BC;\n") + self.file_out.write("\t\tprocessor->Rm.wr.BC=processor->Ra.wr.BC;\n") + self.file_out.write("\t\tprocessor->Ra.wr.BC=tmp2;\n") + self.file_out.write("\t\ttmp2=processor->Rm.wr.DE;\n") + self.file_out.write("\t\tprocessor->Rm.wr.DE=processor->Ra.wr.DE;\n") + self.file_out.write("\t\tprocessor->Ra.wr.DE=tmp2;\n") + self.file_out.write("\t\ttmp2=processor->Rm.wr.HL;\n") + self.file_out.write("\t\tprocessor->Rm.wr.HL=processor->Ra.wr.HL;\n") + self.file_out.write("\t\tprocessor->Ra.wr.HL=tmp2;\n") + return False + + if opcode=="IN": + if bits==8: + self.file_out.write("\t\ttmp2=((word)processor->Rm.br.A)<<8;\n") + self.file_out.write("\t\tprocessor->Rm.br.A=Z80free_In(tmp2+((word)Z80free_read_param_8(processor)));\n") + return False + + if opcode=="IN_BC": + if bits==8: + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","Z80free_In(processor->Rm.wr.BC)")+"\n") + self.file_out.write("\t\tZ80free_adjustFlagSZP (processor,"+code_read[0]+");\n") + self.file_out.write("\t\tZ80free_resFlag(processor,F_H|F_N);\n") + return False + elif bits==0: + self.file_out.write("\t\ttmp1=Z80free_In(processor->Rm.wr.BC);\n") + self.file_out.write("\t\tZ80free_adjustFlagSZP (processor,tmp1);\n") + self.file_out.write("\t\tZ80free_resFlag(processor,F_H|F_N);\n") + return False + + if opcode=="OUT": + if bits==8: + self.file_out.write("\t\ttmp1=processor->Rm.br.A;\n") + self.file_out.write("\t\ttmp2=((word)tmp1)<<8;\n") + self.file_out.write("\t\tZ80free_Out(tmp2+((word)Z80free_read_param_8(processor)),tmp1);\n") + return False + + + if opcode=="OUT_BC": + if bits==8: + self.file_out.write("\t\tZ80free_Out(processor->Rm.wr.BC,"+code_read[0]+");\n") + return False + + if opcode=="DI": + self.file_out.write("\t\tprocessor->IFF1=0;\n") + self.file_out.write("\t\tprocessor->IFF2=0;\n") + return False + + if opcode=="EI": + self.file_out.write("\t\tprocessor->IFF1=2; /* this allows to delay one instruction the interrupts*/\n") + self.file_out.write("\t\tprocessor->IFF2=1;\n") + return False + + if opcode=="NEG": + self.file_out.write("\t\tprocessor->Rm.br.A=Z80free_doArithmetic(processor,0,processor->Rm.br.A,0,1);\n") + return False + + if opcode=="RETN": + self.file_out.write("\t\tprocessor->IFF1=(processor->IFF2 ? 2 : 0);\n") + self.file_out.write("\t\tprocessor->PC=Z80free_doPop(processor);\n") + return False + + if opcode=="RETI": + self.file_out.write("\t\tprocessor->IFF1=2;\n") + self.file_out.write("\t\tprocessor->IFF2=1;\n") + self.file_out.write("\t\tprocessor->PC=Z80free_doPop(processor);\n") + return False + + if opcode=="IM": + self.file_out.write("\t\tprocessor->IM="+code_read[0]+";\n") + return False + + if opcode=="RLD": + self.file_out.write("\t\tZ80free_doRLD(processor);\n") + return False + + if opcode=="RRD": + self.file_out.write("\t\tZ80free_doRRD(processor);\n") + return False + + if opcode=="LDI": + self.file_out.write("\t\ttmp1=Z80free_Rd(processor->Rm.wr.HL++);\n") + self.file_out.write("\t\tZ80free_Wr(processor->Rm.wr.DE++,tmp1);\n") + self.file_out.write("\t\ttmp1+=processor->Rm.br.A;\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_3,tmp1&0x08);\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_5,tmp1&0x02);\n") + self.file_out.write("\t\tprocessor->Rm.wr.BC--;\n") + self.file_out.write("\t\tZ80free_resFlag(processor,F_H|F_N);\n") + self.file_out.write("\t\tif (processor->Rm.wr.BC)\n") + self.file_out.write("\t\t\tZ80free_setFlag(processor,F_PV);\n") + self.file_out.write("\t\telse\n") + self.file_out.write("\t\t\tZ80free_resFlag(processor,F_PV);\n") + return False + + if opcode=="CPI": + self.file_out.write("\t\ttmp2=F_C&processor->Rm.br.F;\n") + self.file_out.write("\t\ttmp1=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(processor->Rm.wr.HL++),0,1);\n") + self.file_out.write("\t\tif (processor->Rm.br.F&F_H)\n") + self.file_out.write("\t\t\ttmp1--;\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_3,tmp1&0x08);\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_5,tmp1&0x02);\n") + self.file_out.write("\t\tZ80free_setFlag(processor,F_N);\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_C,tmp2);\n") + self.file_out.write("\t\tprocessor->Rm.wr.BC--;\n") + self.file_out.write("\t\tif (processor->Rm.wr.BC)\n") + self.file_out.write("\t\t\tZ80free_setFlag(processor,F_PV);\n") + self.file_out.write("\t\telse\n") + self.file_out.write("\t\t\tZ80free_resFlag(processor,F_PV);\n") + return False + + if opcode=="INI": + self.file_out.write("\t\t/*INI, IND, INIR and INDR first decrement B and then uses it*/\n") + self.file_out.write("\t\tZ80free_Wr(processor->Rm.wr.HL,Z80free_In(processor->Rm.wr.BC));\n") + self.file_out.write("\t\tprocessor->Rm.wr.HL++;\n") + self.file_out.write("\t\tprocessor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1);\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_N, 1);\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_Z, (processor->Rm.br.B == 0));\n") + return False + + if opcode=="OUTI": + self.file_out.write("\t\t/*OUTI, OUTD, OTIR and OTDR first uses B and then decrement it*/\n") + self.file_out.write("\t\tZ80free_Out(processor->Rm.wr.BC,Z80free_Rd(processor->Rm.wr.HL));\n") + self.file_out.write("\t\tprocessor->Rm.wr.HL++;\n") + self.file_out.write("\t\tprocessor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1);\n") + return False + + if opcode=="LDD": + self.file_out.write("\t\ttmp1=Z80free_Rd(processor->Rm.wr.HL--);\n") + self.file_out.write("\t\tZ80free_Wr(processor->Rm.wr.DE--,tmp1);\n") + self.file_out.write("\t\ttmp1+=processor->Rm.br.A;\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_3,tmp1&0x08);\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_5,tmp1&0x02);\n") + self.file_out.write("\t\tprocessor->Rm.wr.BC--;\n") + self.file_out.write("\t\tZ80free_resFlag(processor,F_H|F_N);\n") + self.file_out.write("\t\tif (processor->Rm.wr.BC)\n") + self.file_out.write("\t\t\tZ80free_setFlag(processor,F_PV);\n") + self.file_out.write("\t\telse\n") + self.file_out.write("\t\t\tZ80free_resFlag(processor,F_PV);\n") + return False + + if opcode=="CPD": + self.file_out.write("\t\ttmp2=F_C&processor->Rm.br.F;\n") + self.file_out.write("\t\ttmp1=Z80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(processor->Rm.wr.HL--),0,1);\n") + self.file_out.write("\t\tif (processor->Rm.br.F&F_H)\n") + self.file_out.write("\t\t\ttmp1--;\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_3,tmp1&0x08);\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_5,tmp1&0x02);\n") + self.file_out.write("\t\tZ80free_setFlag(processor,F_N);\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_C,tmp2);\n") + self.file_out.write("\t\tprocessor->Rm.wr.BC--;\n") + self.file_out.write("\t\tif (processor->Rm.wr.BC)\n") + self.file_out.write("\t\t\tZ80free_setFlag(processor,F_PV);\n") + self.file_out.write("\t\telse\n") + self.file_out.write("\t\t\tZ80free_resFlag(processor,F_PV);\n") + return False + + if opcode=="IND": + self.file_out.write("\t\tZ80free_Wr(processor->Rm.wr.HL,Z80free_In(processor->Rm.wr.BC));\n") + self.file_out.write("\t\tprocessor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1);\n") + self.file_out.write("\t\tprocessor->Rm.wr.HL--;\n") + return False + + if opcode=="OUTD": + self.file_out.write("\t\tZ80free_Out(processor->Rm.wr.BC,Z80free_Rd(processor->Rm.wr.HL));\n") + self.file_out.write("\t\tprocessor->Rm.wr.HL--;\n") + self.file_out.write("\t\tprocessor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1);\n") + return False + + if opcode=="LDIR": + self.file_out.write("\t\ttmp1=Z80free_Rd(processor->Rm.wr.HL++);\n") + self.file_out.write("\t\tZ80free_Wr(processor->Rm.wr.DE++,tmp1);\n") + self.file_out.write("\t\tprocessor->Rm.wr.BC--;\n") + self.file_out.write("\t\tif (processor->Rm.wr.BC) {\n") + self.file_out.write("\t\t\tprocessor->PC-=2;\n") + self.file_out.write("\t\t\treturn ("+str(tst1)+");\n") + self.file_out.write("\t\t} else {\n") + self.file_out.write("\t\t\tZ80free_resFlag(processor,F_H|F_N|F_PV);\n") + self.file_out.write("\t\ttmp1+=processor->Rm.br.A;\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_3,tmp1&0x08);\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_5,tmp1&0x02);\n") + self.file_out.write("\t\t\treturn ("+str(tst2)+");\n") + self.file_out.write("\t\t}\n") + return True + + if opcode=="CPIR": + self.file_out.write("\t\ttmp2=F_C&processor->Rm.br.F;\n") + self.file_out.write("\t\tZ80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(processor->Rm.wr.HL++),0,1);\n") + self.file_out.write("\t\tprocessor->Rm.wr.BC--;\n") + self.file_out.write("\t\tif ((processor->Rm.wr.BC)&&(!(processor->Rm.br.F&F_Z))) {\n") + self.file_out.write("\t\t\tprocessor->PC-=2;\n") + self.file_out.write("\t\t\treturn ("+str(tst1)+");\n") + self.file_out.write("\t\t} else {\n") + self.file_out.write("\t\t\tZ80free_resFlag(processor,F_H|F_N|F_PV|F_3|F_5);\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_C,tmp2);\n") + self.file_out.write("\t\t\treturn ("+str(tst2)+");\n") + self.file_out.write("\t\t}\n") + return True + + if opcode=="INIR": + self.file_out.write("\t\tZ80free_Wr(processor->Rm.wr.HL,Z80free_In(processor->Rm.wr.BC));\n") + self.file_out.write("\t\tprocessor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1);\n") + self.file_out.write("\t\tprocessor->Rm.wr.HL++;\n") + self.file_out.write("\t\tif (processor->Rm.br.B) {\n") + self.file_out.write("\t\t\tprocessor->PC-=2;\n") + self.file_out.write("\t\t\treturn ("+str(tst1)+");\n") + self.file_out.write("\t\t} else {\n") + self.file_out.write("\t\t\treturn ("+str(tst2)+");\n") + self.file_out.write("\t\t}\n") + return True + + if opcode=="OTIR": + self.file_out.write("\t\tZ80free_Out(processor->Rm.wr.BC,Z80free_Rd(processor->Rm.wr.HL));\n") + self.file_out.write("\t\tprocessor->Rm.wr.HL++;\n") + self.file_out.write("\t\tprocessor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1);\n") + self.file_out.write("\t\tif (processor->Rm.br.B) {\n") + self.file_out.write("\t\t\tprocessor->PC-=2;\n") + self.file_out.write("\t\t\treturn ("+str(tst1)+");\n") + self.file_out.write("\t\t} else {\n") + self.file_out.write("\t\t\treturn ("+str(tst2)+");\n") + self.file_out.write("\t\t}\n") + return True + + if opcode=="LDDR": + self.file_out.write("\t\ttmp1=Z80free_Rd(processor->Rm.wr.HL--);\n") + self.file_out.write("\t\tZ80free_Wr(processor->Rm.wr.DE--,tmp1);\n") + self.file_out.write("\t\tprocessor->Rm.wr.BC--;\n") + self.file_out.write("\t\tif (processor->Rm.wr.BC) {\n") + self.file_out.write("\t\t\tprocessor->PC-=2;\n") + self.file_out.write("\t\t\treturn ("+str(tst1)+");\n") + self.file_out.write("\t\t} else {\n") + self.file_out.write("\t\t\tZ80free_resFlag(processor,F_H|F_N|F_PV);\n") + self.file_out.write("\t\ttmp1+=processor->Rm.br.A;\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_3,tmp1&0x08);\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_5,tmp1&0x02);\n") + self.file_out.write("\t\t\treturn ("+str(tst2)+");\n") + self.file_out.write("\t\t}\n") + return True + + if opcode=="CPDR": + self.file_out.write("\t\ttmp2=F_C&processor->Rm.br.F;\n") + self.file_out.write("\t\tZ80free_doArithmetic(processor,processor->Rm.br.A,Z80free_Rd(processor->Rm.wr.HL--),0,1);\n") + self.file_out.write("\t\tprocessor->Rm.wr.BC--;\n") + self.file_out.write("\t\tif ((processor->Rm.wr.BC)&&(!(processor->Rm.br.F&F_Z))) {\n") + self.file_out.write("\t\t\tprocessor->PC-=2;\n") + self.file_out.write("\t\t\treturn ("+str(tst1)+");\n") + self.file_out.write("\t\t} else {\n") + self.file_out.write("\t\t\tZ80free_resFlag(processor,F_H|F_N|F_PV|F_3|F_5);\n") + self.file_out.write("\t\tZ80free_valFlag(processor,F_C,tmp2);\n") + self.file_out.write("\t\t\treturn ("+str(tst2)+");\n") + self.file_out.write("\t\t}\n") + return True + + if opcode=="INDR": + self.file_out.write("\t\tZ80free_Wr(processor->Rm.wr.HL,Z80free_In(processor->Rm.wr.BC));\n") + self.file_out.write("\t\tprocessor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1);\n") + self.file_out.write("\t\tprocessor->Rm.wr.HL--;\n") + self.file_out.write("\t\tif (processor->Rm.br.B) {\n") + self.file_out.write("\t\t\tprocessor->PC-=2;\n") + self.file_out.write("\t\t\treturn ("+str(tst1)+");\n") + self.file_out.write("\t\t} else {\n") + self.file_out.write("\t\t\treturn ("+str(tst2)+");\n") + self.file_out.write("\t\t}\n") + return True + + if opcode=="OTDR": + self.file_out.write("\t\tZ80free_Out(processor->Rm.wr.BC,Z80free_Rd(processor->Rm.wr.HL));\n") + self.file_out.write("\t\tprocessor->Rm.wr.HL--;\n") + self.file_out.write("\t\tprocessor->Rm.br.B=Z80free_doIncDec(processor,processor->Rm.br.B,1);\n") + self.file_out.write("\t\tif (processor->Rm.br.B) {\n") + self.file_out.write("\t\t\tprocessor->PC-=2;\n") + self.file_out.write("\t\t\treturn ("+str(tst1)+");\n") + self.file_out.write("\t\t} else {\n") + self.file_out.write("\t\t\treturn ("+str(tst2)+");\n") + self.file_out.write("\t\t}\n") + return True + + if opcode=="RLC": + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","Z80free_doRLC(processor,1,"+code_read[0]+")")+"\n") + return False + + if opcode=="LD_RLC": + self.file_out.write("\t\ttmp1=Z80free_doRLC(processor,1,"+code_read[1]+");\n") + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","tmp1")+"\n") + self.file_out.write("\t\t"+code_write[1].replace("@DATA@","tmp1")+"\n") + return False + + if opcode=="RRC": + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","Z80free_doRRC(processor,1,"+code_read[0]+")")+"\n") + return False + + if opcode=="LD_RRC": + self.file_out.write("\t\ttmp1=Z80free_doRRC(processor,1,"+code_read[1]+");\n") + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","tmp1")+"\n") + self.file_out.write("\t\t"+code_write[1].replace("@DATA@","tmp1")+"\n") + return False + + if opcode=="RL": + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","Z80free_doRL(processor,1,"+code_read[0]+")")+"\n") + return False + + if opcode=="LD_RL": + self.file_out.write("\t\ttmp1=Z80free_doRL(processor,1,"+code_read[1]+");\n") + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","tmp1")+"\n") + self.file_out.write("\t\t"+code_write[1].replace("@DATA@","tmp1")+"\n") + return False + + if opcode=="RR": + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","Z80free_doRR(processor,1,"+code_read[0]+")")+"\n") + return False + + if opcode=="LD_RR": + self.file_out.write("\t\ttmp1=Z80free_doRR(processor,1,"+code_read[1]+");\n") + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","tmp1")+"\n") + self.file_out.write("\t\t"+code_write[1].replace("@DATA@","tmp1")+"\n") + return False + + if opcode=="SLA": + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","Z80free_doSL(processor,0,"+code_read[0]+")")+"\n") + return False + + if opcode=="LD_SLA": + self.file_out.write("\t\ttmp1=Z80free_doSL(processor,0,"+code_read[1]+");\n") + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","tmp1")+"\n") + self.file_out.write("\t\t"+code_write[1].replace("@DATA@","tmp1")+"\n") + return False + + if opcode=="SRA": + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","Z80free_doSR(processor,1,"+code_read[0]+")")+"\n") + return False + + if opcode=="LD_SRA": + self.file_out.write("\t\ttmp1=Z80free_doSR(processor,1,"+code_read[1]+");\n") + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","tmp1")+"\n") + self.file_out.write("\t\t"+code_write[1].replace("@DATA@","tmp1")+"\n") + return False + + if opcode=="SLL": + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","Z80free_doSL(processor,1,"+code_read[0]+")")+"\n") + return False + + if opcode=="LD_SLL": + self.file_out.write("\t\ttmp1=Z80free_doSL(processor,1,"+code_read[1]+");\n") + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","tmp1")+"\n") + self.file_out.write("\t\t"+code_write[1].replace("@DATA@","tmp1")+"\n") + return False + + if opcode=="SRL": + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","Z80free_doSR(processor,0,"+code_read[0]+")")+"\n") + return False + + if opcode=="LD_SRL": + self.file_out.write("\t\ttmp1=Z80free_doSR(processor,0,"+code_read[1]+");\n") + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","tmp1")+"\n") + self.file_out.write("\t\t"+code_write[1].replace("@DATA@","tmp1")+"\n") + return False + + if opcode=="BIT": + self.file_out.write("\t\tZ80free_doBIT(processor,"+code_read[0]+","+code_read[1]+");\n") + return False + + if opcode=="RES": + self.file_out.write("\t\t"+code_write[1].replace("@DATA@","Z80free_doSetRes(processor,0,"+code_read[0]+","+code_read[1]+")")+"\n") + return False + + if opcode=="LD_RES": + self.file_out.write("\t\ttmp1=Z80free_doSetRes(processor,0,"+code_read[1]+","+code_read[2]+");\n") + self.file_out.write("\t\t"+code_write[2].replace("@DATA@","tmp1")+"\n") + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","tmp1")+"\n") + return False + + if opcode=="SET": + self.file_out.write("\t\t"+code_write[1].replace("@DATA@","Z80free_doSetRes(processor,1,"+code_read[0]+","+code_read[1]+")")+"\n") + return False + + if opcode=="LD_SET": + self.file_out.write("\t\ttmp1=Z80free_doSetRes(processor,1,"+code_read[1]+","+code_read[2]+");\n") + self.file_out.write("\t\t"+code_write[2].replace("@DATA@","tmp1")+"\n") + self.file_out.write("\t\t"+code_write[0].replace("@DATA@","tmp1")+"\n") + return False + + if opcode=="DEFAULT": + self.file_out.write("\t\treturn (Z80free_codes(processor,opcode));\n") + return True + + self.unknown_opcode() + + +class parser_XX(z80_parser): + + def __init__(self,filename): + + self.codes="XX" + z80_parser.__init__(self,filename) + + + def write_start_code(self): + + """ Writes the first part of the C code for the file """ + + self.file_out.write('#include "Z80free.h"\n\n') + self.file_out.write('int '+self.filename+' (Z80FREE *processor,byte opcode) {\n') + self.file_out.write('\tstatic byte tmp1;\n') + self.file_out.write('\tstatic word tmp2;\n') + self.file_out.write('\n') + + + def write_end_code(self): + + """ writes the last part of the C code for the file """ + + self.file_out.write('\treturn -1;\n') + self.file_out.write('}\n') + + +class parser_CB(z80_parser): + + def __init__(self,filename): + + self.codes="CB" + z80_parser.__init__(self,filename) + + + def write_start_code(self): + + """ Writes the first part of the C code for the file """ + + self.file_out.write('#include "Z80free.h"\n\n') + self.file_out.write('int '+self.filename+' (Z80FREE *processor,byte opcode) {\n') + #self.file_out.write('\tstatic byte tmp1;\n') + #self.file_out.write('\tstatic word tmp2;\n') + self.file_out.write('\n') + + + def write_end_code(self): + + """ writes the last part of the C code for the file """ + + self.file_out.write('\treturn -1;\n') + self.file_out.write('}\n') + + +class parser_ED(z80_parser): + + def __init__(self,filename): + + self.codes="ED" + z80_parser.__init__(self,filename) + + + def write_start_code(self): + + """ Writes the first part of the C code for the file """ + + self.file_out.write('#include "Z80free.h"\n\n') + self.file_out.write('int '+self.filename+' (Z80FREE *processor,byte opcode) {\n') + self.file_out.write('\tstatic byte tmp1;\n') + self.file_out.write('\tstatic byte tmp2;\n') + self.file_out.write('\n') + + + def write_end_code(self): + + """ writes the last part of the C code for the file """ + + self.file_out.write('\treturn -1;\n') + self.file_out.write('}\n') + + +class parser_DD(z80_parser): + + def __init__(self,filename): + + self.codes="DD" + z80_parser.__init__(self,filename) + + + def write_start_code(self): + + """ Writes the first part of the C code for the file """ + + self.file_out.write('#include "Z80free.h"\n\n') + self.file_out.write('int '+self.filename+' (Z80FREE *processor,byte opcode) {\n') + self.file_out.write('\tstatic byte tmp1;\n') + self.file_out.write('\tstatic word tmp2;\n') + self.file_out.write('\n') + + + def write_end_code(self): + + """ writes the last part of the C code for the file """ + + self.file_out.write('\treturn -1;\n') + self.file_out.write('}\n') + + +class parser_FD(z80_parser): + + def __init__(self,filename): + + self.codes="FD" + z80_parser.__init__(self, filename) + + + def write_start_code(self): + + """ Writes the first part of the C code for the file """ + + self.file_out.write('#include "Z80free.h"\n\n') + self.file_out.write('int '+self.filename+' (Z80FREE *processor,byte opcode) {\n') + self.file_out.write('\tstatic byte tmp1;\n') + self.file_out.write('\tstatic word tmp2;\n') + self.file_out.write('\n') + + + def write_end_code(self): + + """ writes the last part of the C code for the file """ + + self.file_out.write('\treturn -1;\n') + self.file_out.write('}\n') + + +class parser_DDCB(z80_parser): + + def __init__(self,filename): + + self.codes="DDCB" + z80_parser.__init__(self, filename) + + + def write_start_code(self): + + """ Writes the first part of the C code for the file """ + + self.file_out.write('#include "Z80free.h"\n\n') + self.file_out.write('int '+self.filename+' (Z80FREE *processor,byte d1) {\n') + self.file_out.write('\tstatic byte tmp1;\n') + #self.file_out.write('\tstatic word tmp2;\n') + self.file_out.write('\tstatic byte opcode;\n') + self.file_out.write('\topcode=Z80free_Rd(processor->PC++);\n') + self.file_out.write('\n') + + + def write_end_code(self): + + """ writes the last part of the C code for the file """ + + self.file_out.write('\treturn -1;\n') + self.file_out.write('}\n') + + +class parser_FDCB(z80_parser): + + def __init__(self,filename): + + self.codes="FDCB" + z80_parser.__init__(self, filename) + + + def write_start_code(self): + + """ Writes the first part of the C code for the file """ + + self.file_out.write('#include "Z80free.h"\n\n') + self.file_out.write('int '+self.filename+' (Z80FREE *processor,byte d1) {\n') + self.file_out.write('\tstatic byte tmp1;\n') + #self.file_out.write('\tstatic word tmp2;\n') + self.file_out.write('\tstatic byte opcode;\n') + self.file_out.write('\topcode=Z80free_Rd(processor->PC++);\n') + self.file_out.write('\n') + + + def write_end_code(self): + + """ writes the last part of the C code for the file """ + + self.file_out.write('\treturn -1;\n') + self.file_out.write('}\n') + + +aparser=parser_XX("Z80free_codes") +aparser=parser_CB("Z80free_codesCB") +aparser=parser_DD("Z80free_codesDD") +aparser=parser_DDCB("Z80free_codesDDCB") +aparser=parser_ED("Z80free_codesED") +aparser=parser_FD("Z80free_codesFD") +aparser=parser_FDCB("Z80free_codesFDCB") + diff --git a/src/z80free/z80free_tester.c b/src/z80free/z80free_tester.c new file mode 100644 index 0000000..43f4608 --- /dev/null +++ b/src/z80free/z80free_tester.c @@ -0,0 +1,286 @@ +/* + * Copyright 2009 (C) Raster Software Vigo (Sergio Costas) + * This file is part of Z80Free, with some bits extracted + * and fixed from libZ80 (from Gabriel Gambetta) + * + * Z80Free is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Z80Free is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include "Z80free.h" +#include + +#ifdef GEKKO +#include +#include + +FILE *fdebug; +#define printf(...) fprintf(fdebug,__VA_ARGS__) + +#endif + +Z80FREE emulator,emulator2; +unsigned char memory[65536]; +FILE *infile; +char test_name[20]; +byte ports[256]; +word portdirs[256]; +int portpos=0,elements=0; + +#define NO35 + +int compare_processors() { + + if (emulator.Rm.br.A!=emulator2.Rm.br.A) { + printf("A should be %X but is %X\n",emulator2.Rm.br.A,emulator.Rm.br.A); + } + +#ifdef NO35 + if ((emulator.Rm.br.F|0x28)!=(emulator2.Rm.br.F|0x28)) { + printf("F should be %X but is %X\n",emulator2.Rm.br.F,emulator.Rm.br.F); + } +#else + if (emulator.Rm.br.F!=emulator2.Rm.br.F) { + printf("F should be %X but is %X\n",emulator2.Rm.br.F,emulator.Rm.br.F); + } +#endif + + if (emulator.Rm.wr.BC!=emulator2.Rm.wr.BC) { + printf("BC should be %X but is %X\n",emulator2.Rm.wr.BC,emulator.Rm.wr.BC); + } + if (emulator.Rm.wr.DE!=emulator2.Rm.wr.DE) { + printf("DE should be %X but is %X\n",emulator2.Rm.wr.DE,emulator.Rm.wr.DE); + } + if (emulator.Rm.wr.HL!=emulator2.Rm.wr.HL) { + printf("HL should be %X but is %X\n",emulator2.Rm.wr.HL,emulator.Rm.wr.HL); + } + + if (emulator.Ra.br.A!=emulator2.Ra.br.A) { + printf("A' should be %X but is %X\n",emulator2.Ra.br.A,emulator.Ra.br.A); + } + +#ifdef NO35 + if ((emulator.Ra.br.F|0x28)!=(emulator2.Ra.br.F|0x28)) { + printf("F' should be %X but is %X\n",emulator2.Ra.br.F,emulator.Ra.br.F); + } +#else + if (emulator.Ra.br.F!=emulator2.Ra.br.F) { + printf("F' should be %X but is %X\n",emulator2.Ra.br.F,emulator.Ra.br.F); + } +#endif + + if (emulator.Ra.wr.BC!=emulator2.Ra.wr.BC) { + printf("BC' should be %X but is %X\n",emulator2.Ra.wr.BC,emulator.Ra.wr.BC); + } + if (emulator.Ra.wr.DE!=emulator2.Ra.wr.DE) { + printf("DE' should be %X but is %X\n",emulator2.Ra.wr.DE,emulator.Ra.wr.DE); + } + if (emulator.Ra.wr.HL!=emulator2.Ra.wr.HL) { + printf("HL' should be %X but is %X\n",emulator2.Ra.wr.HL,emulator.Ra.wr.HL); + } + + if (emulator.Rm.wr.IX!=emulator2.Rm.wr.IX) { + printf("IX should be %X but is %X\n",emulator2.Rm.wr.IX,emulator.Rm.wr.IX); + } + if (emulator.Rm.wr.IY!=emulator2.Rm.wr.IY) { + printf("IY should be %X but is %X\n",emulator2.Rm.wr.IY,emulator.Rm.wr.IY); + } + + if (emulator.PC!=emulator2.PC) { + printf("PC should be %X but is %X\n",emulator2.PC,emulator.PC); + } + if (emulator.Rm.wr.SP!=emulator2.Rm.wr.SP) { + printf("SP should be %X but is %X\n",emulator2.Rm.wr.SP,emulator.Rm.wr.SP); + } + + if (emulator.HALT!=emulator2.HALT) { + printf("HALT should be %X but is %X\n",emulator2.HALT,emulator.HALT); + } + if (emulator.I!=emulator2.I) { + printf("I should be %X but is %X\n",emulator2.I,emulator.I); + } + if ((emulator.R&0x7F)!=(emulator2.R&0x7F)) { + printf("R should be %X but is %X\n",(emulator2.R&0x7F),(emulator.R&0x7F)); + } + if (emulator.IM!=emulator2.IM) { + printf("IM should be %X but is %X\n",emulator2.IM,emulator.IM); + } + if (emulator.IFF1!=emulator2.IFF1) { + printf("IFF1 should be %X but is %X\n",emulator2.IFF1,emulator.IFF1); + } + if (emulator.IFF2!=emulator2.IFF2) { + printf("IFF2 should be %X but is %X\n",emulator2.IFF2,emulator.IFF2); + } + return 0; +} + +int read_elements(Z80FREE *emulador) { + + int tstates,retval; + unsigned short int v1,v2,v3,v4,v5,v6,v7,v8,v9,v10; + + + Z80free_reset(emulador); + + retval=fscanf(infile,"%hx %hx %hx %hx",(unsigned short int *)&emulador->Rm.wr.AF,(unsigned short int *)&emulador->Rm.wr.BC,(unsigned short int *)&emulador->Rm.wr.DE,(unsigned short int *)&emulador->Rm.wr.HL); + retval=fscanf(infile,"%hx %hx %hx %hx",&v7,&v8,&v9,&v10); + emulador->Ra.wr.AF=v7; + emulador->Ra.wr.BC=v8; + emulador->Ra.wr.DE=v9; + emulador->Ra.wr.HL=v10; + retval=fscanf(infile,"%hx %hx %hx %hx",(unsigned short int *)&emulador->Rm.wr.IX,(unsigned short int *)&emulador->Rm.wr.IY,(unsigned short int *)&emulador->Rm.wr.SP,(unsigned short int *)&emulador->PC); + retval=fscanf(infile,"%hx %hx %hx %hx %hx %hx %d",&v1,&v2,&v3,&v4,&v5,&v6,&tstates); + + emulador->I=v1; + emulador->R=v2; + emulador->R2=v2; + emulador->IFF1=v3; + emulador->IFF2=v4; + emulador->IM=v5; + emulador->HALT=v6; + + return (tstates); +} + +int read_memory(char mode) { + // mode=0 : store value in memory + // mode=1 : compare value with memory + + int position,retval,value; + + + retval=fscanf(infile,"%x",&position); + if (position==-1) { + return -1; + } + + do { + retval=fscanf(infile,"%x",&value); + + if (value!=-1) { + if (mode) { + if (memory[position]!=value) { + printf("Error in memory, address %X. Expected value: %X, current value: %X\n",position,value,memory[position]); + } + } else { + memory[position]= (byte) value; + } + position++; + } + } while(value!=-1); + return 0; +} + + +int read_inports() { + + int retval, value, addr; + + + portpos=0; + elements=0; + + while (1) { + retval=fscanf(infile,"%x",&addr); + if (addr==-1) { + break; + } + retval=fscanf(infile,"%x",&value); + portdirs[elements]=(word) addr; + ports[elements]=(byte) value; + elements++; + } + return 0; +} + + +int read_test() { + + int retval,tstates,tst2,totaltst; + + retval=fscanf(infile,"%s",test_name); + if (retval<=0) { + return -1; + } + printf("Test %s\n",test_name); + tstates=read_elements(&emulator); + while(0==read_memory(0)) { + } + read_inports(); + totaltst=0; + while(totaltst=elements) { + printf("IN beyond values\n"); + return 0; + } + + if (Port!=portdirs[portpos]) + printf("IN to port %X (should be %X)\n",Port,portdirs[portpos]); + value=ports[portpos]; + portpos++; + return (value); + +} +void Z80free_Out (register word Port, register byte Value) { + +} + +int main() { + + #ifdef GEKKO + + //initialize libfat library + fatInitDefault(); + + fdebug = fopen("/logfile_big.txt","w"); + + infile=fopen("/apps/z80_test/tests.z80free","r"); + + #else + infile=fopen("tests.z80free","r"); + #endif + + while(0==read_test()) { + } + + return 0; +} + + diff --git a/src/z80free/z80free_testgen.py b/src/z80free/z80free_testgen.py new file mode 100644 index 0000000..1e36f3d --- /dev/null +++ b/src/z80free/z80free_testgen.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- + +# Copyright 2008-2009 (C) Raster Software Vigo (Sergio Costas) + +# This file is part of Z80Free +# +# Z80Free is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Z80Free is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import sys + +infile=open("tests.in","r") +expected=open("tests.expected","r") + +outfile=open("tests.z80free","w") + +maximo=0 + +while True: + # read the test + while True: + test_name="" + test_name=infile.readline() + if test_name!="\n": + break + if test_name=="": # EOF + break + print test_name + outfile.write(test_name) + linea=infile.readline() + while linea[:2]!="-1": + outfile.write(linea) + linea=infile.readline() + outfile.write("-1\n") + + while True: + test_name2=expected.readline() + if test_name2!="\n": + break + if test_name2=="": #EOF + continue + if (test_name2!=test_name): + print "error, %(entrada)s y %(salida)s no coinciden"%{"entrada":test_name,"salida":test_name2} + sys.exit(1) + + port=[] + while True: # jump over event lines + linea=expected.readline() + if linea[0]!=' ': + break + pos=linea.find("PR") + if pos==-1: + continue + port.append(linea[pos+3:]) + + print linea + for element in port: + outfile.write(element) + outfile.write(" ") + outfile.write("-1\n") + outfile.write(linea) # registers + linea=expected.readline() + print linea + while (linea!="\n") and (linea!=""): + print linea + outfile.write(linea) + linea=expected.readline() + outfile.write("-1\n\n") + +infile.close() +expected.close() +outfile.close() diff --git a/src/z80free/z80txt_converter.py b/src/z80free/z80txt_converter.py new file mode 100644 index 0000000..02d1a73 --- /dev/null +++ b/src/z80free/z80txt_converter.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python + +import sys + +fichero1=open(sys.argv[1],"r") +fichero2=open(sys.argv[2],"w") + +def escribe_linea(thefile,nlinea3,pp2,pp3): + + nlinea2=hex(nlinea3)[2:].upper() + while len(nlinea2)<2: + nlinea2="0"+nlinea2 + + thefile.write(nlinea2+"\t"+pp2+"\t"+pp3+"\n") + +contador2=0 +for linea in fichero1: + if linea[-1]=="\n": + linea=linea[:-1] + if linea=="": + continue + contador=0 + nlinea="" + for caracter in linea: + if caracter=='\t': + nlinea+=(" "*(8-contador)) + contador=-1 + else: + nlinea+=caracter + contador+=1 + if contador==8: + contador=0 + + if len(nlinea)<49: + nlinea+=" "*(49-len(nlinea)) + + p1=nlinea[:9] + p2=nlinea[16:40] + p3=nlinea[40:48] + + while (p1!="") and (p1[-1]==" "): + p1=p1[:-1] + while (p2!="") and (p2[-1]==" "): + p2=p2[:-1] + while (p3!="") and (p3[-1]==" "): + p3=p3[:-1] + + try: + if ((p1[:4].upper()=="FDCB") or (p1[:4].upper()=="DDCB")) and (len(p1)>8): + nlinea=int(p1[7:],16) + elif (len(p1)>3) and ((p1[:2].upper()=="CB") or (p1[:2].upper()=="ED") or (p1[:2].upper()=="DD") or (p1[:2].upper()=="FD")): + nlinea=int(p1[2:4],16) + else: + nlinea=int(p1[:2],16) + except: + print p1 + + while contador2