Hot Z v1.6 is a Z80 machine code utility loader and runtime environment that bootstraps itself via a single RAND USR 21340 call in line 1, with the entire payload stored as raw bytes in a REM statement at line 2. The machine code spans hundreds of bytes embedded in the REM data area and implements a complex runtime with multiple interlinked subroutines covering memory management, display routines, keyboard input handling, and interrupt-driven services. The code makes extensive use of Z80 undocumented instructions, IX/IY register operations (including FD CB bit manipulation sequences targeting IY+0x21), and direct hardware port I/O. Several self-modifying code patterns and jump tables are present, along with use of the system variables area around address 0x4000 for state storage.
Program Analysis
Program Structure
The program consists of exactly two BASIC lines:
1 RAND USR 21340— transfers control immediately to Z80 machine code at address 21340 (0x535C), which falls within the REM statement data area of line 2.2 REM ...— contains the entire machine code payload as raw bytes embedded in the REM token’s data field.
Line 2’s REM data begins with a block of null bytes, followed by the machine code proper. The entry point at 0x535C is reached directly by the RAND USR call in line 1. This is a classic technique for embedding and auto-executing machine code without any separate loader.
Entry Point and Initialization
Execution begins at 0x535C. The code immediately sets up a custom stack (LD SP, 0x40CC or similar), saves and restores alternate registers (EXX, EX AF,AF'), and installs interrupt handlers. The sequence near the top manipulates ED 73 / ED 5B pairs (i.e., LD (nn),SP and LD SP,(nn)), preserving the BASIC interpreter’s stack pointer while establishing a private one for the machine code environment.
Memory Map Usage
| Address Range | Purpose |
|---|---|
| 0x400C–0x400F | System variable area used for pointer storage (HL, DE pairs) |
| 0x400E–0x400F | Primary working pointer, updated by many subroutines |
| 0x4100–0x41FF | Secondary data buffer / workspace |
| 0x4200–0x43FF | Extended data tables referenced by jump table dispatchers |
| 0x40BA–0x40FF | Various state flags and counters (e.g., 0x40F4, 0x40F5, 0x40F6, 0x40F7) |
| 0x53xx–0x60xx | Machine code body (within REM statement) |
Subroutine Architecture
The code is organized as a large collection of subroutines called via CD xx xx (CALL) sequences. A recurring main loop pattern exists at approximately 0x4952 / 0x494E, which calls a chain of handlers: input reading, display update, state machines, and cleanup, looping with 20 E9 (JR NZ, back) or C9 (RET) to return to BASIC. Key identified subroutine clusters:
- 0x4700–0x47FF: Low-level output and character dispatch routines;
CD 4D 47is called repeatedly as a character output primitive. - 0x4800–0x48FF: Memory copy and block transfer routines using
ED B0(LDIR) andED B8(LDDR). - 0x4900–0x49FF: Main dispatch loop, input processing, and state machine transitions.
- 0x4A00–0x4AFF: Prefix/opcode scanning and decode logic; contains tables of byte patterns matched against memory.
- 0x4B00–0x4FFF: Higher-level operations including display formatting, jump table dispatch, and flag management.
- 0x5000–0x55FF: Extended state handlers, interrupt setup/teardown, and re-entry to BASIC via
C3 1D 55(JP 0x551D). - 0x5600–0x60FF: Disassembler / instruction decoder — systematic opcode recognition using cascaded
FE xx(CP n) /28(JR Z) chains covering ED, FD, DD, CB prefixes and main opcodes.
Instruction Decoder / Disassembler
A substantial portion of the code (roughly 0x5700–0x5900) implements a Z80 instruction decoder. It reads bytes from a target address (tracked via the working pointer at 0x400E), identifies instruction prefixes (DD, FD, ED, CB), and dispatches to handlers that format the mnemonic and operand output. The decoder handles all major Z80 instruction classes:
- Single-byte opcodes (
NOP,RET,JP,CALL, etc.) - CB-prefixed bit manipulation instructions
- ED-prefixed block and I/O instructions
- DD/FD-prefixed IX/IY instructions including
FD CB dd op(DDCB/FDCB) forms
The decoder at 0x57F3 onward uses a long chain of CP / JR Z / JR NZ pairs to match opcode bytes and branch to formatting routines, a standard technique for compact Z80 disassemblers of this era.
IY Register Usage (FD CB Sequences)
Throughout the code, FD CB 21 xx sequences appear frequently. These are BIT, SET, and RES operations on (IY+0x21), used to maintain a set of status/mode flags in a single byte at that IY-relative address. Specific bit operations observed:
FD CB 21 46—BIT 0,(IY+33): test flag bit 0FD CB 21 56,5E,66,6E,76— test bits 2–6FD CB 21 86,8E,96,9E,AE,C6,CE,D6,DE,EE,F6—RESandSEToperations on various bits
This pattern indicates IY is pointed at a flags/state byte structure, with individual bits controlling different behavioral modes of the runtime.
Hardware I/O
The code uses DB FE (IN A,(0xFE)) for keyboard scanning and D3 FF (OUT (0xFF),A) for border/speaker control. A sequence near 0x5390 reads keyboard rows in a loop, testing individual key bits — consistent with a full keyboard scanner driving the application’s input system.
Interrupt Handling
The code saves and restores the full register set including alternate pairs and the stack pointer using a structured prologue/epilogue pattern (visible around 0x5600 / CD 23 0F calls). This is consistent with installing a custom IM 1 or IM 2 interrupt handler that invokes application logic on each interrupt, then cleanly returns to the interrupted context.
Jump Tables
Several locations use LD HL, base; ADD HL, offset; JP (HL) patterns to dispatch through jump tables. For example, near 0x4B50 a base address is loaded, an index scaled and added, and execution jumps indirectly — a compact dispatch mechanism for multi-way branching without long chains of conditional jumps.
String / Mnemonic Data
The REM data contains embedded ASCII text strings (visible as sequences of bytes in the printable range, e.g., 37 2A 2C = “7*,”, and longer sequences spelling recognizable Z80 mnemonics and register names when XORed or offset-decoded). These are the text labels output by the disassembler and/or the application’s user interface.
BASIC Re-entry
The address 0x551D appears as a frequent jump target (C3 1D 55) throughout the code. This is the canonical “return to BASIC” exit point — the machine code restores the saved stack pointer and returns control to the BASIC interpreter cleanly, allowing the RAND USR expression to complete normally.
Notable Techniques
- Entire program delivered as a two-line BASIC file; all logic in the REM payload.
- Extensive use of
ED 53/ED 5B(LD (nn),SP/LD SP,(nn)) for stack context switching. - IY used as a base pointer to a flags byte, with FDCB bit operations as a compact flag register.
- LDIR/LDDR block moves used for all buffer copies, minimizing code size.
- Keyboard I/O via direct port reads rather than ROM routines, for speed and independence.
- Self-contained Z80 disassembler with full prefix handling embedded within the runtime.
Source Code
1 RAND USR 21340
2 REM \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\E6\1C\00\00\01\00\DD\44\0B\01\CA\40\00\00\2F\61\2E\61\00\00\EE\65\08\08\AA\40\D2\10\2B\00\76\55\A1\E3\00\40\8F\02\04\00\28\66\F5\08\02\08\F8\64\00\C0\82\70\00\C9\02\00\33\61\00\80\32\5C\7D\40\75\61\01\21\00\00\FE\7F\FE\7F\FE\7F\9A\40\00\00\38\26\3B\AA\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\37\2A\2C\00\00\2D\2A\3D\00\00\00\33\18\29\2A\28\00\00\10\00\11\00\28\2D\37\0D\00\00\00\00\00\00\A6\A9\A9\B7\00\2D\2A\3D\00\33\26\32\2A\00\00\29\2A\28\00\00\26\29\29\37\00\28\2D\37\0D\00\00\00\A6\A9\A9\B7\00\2D\2A\3D\28\34\29\2A\00\00\33\26\32\2A\00\32\33\2A\32\34\33\2E\28\00\00\00\00\00\58\53\76\56\1D\55\54\4C\15\55\B5\5F\1D\55\ED\50\1D\55\2A\55\11\61\1D\55\1D\55\73\53\11\5C\D4\58\92\5E\29\5D\65\5F\1D\55\EE\4E\EE\4E\D3\52\F7\53\6A\5E\AC\5F\85\59\E0\55\D1\58\C9\5C\D3\60\19\52\F8\53\36\52\37\5E\F0\60\E6\5C\3F\56\E0\5C\05\53\A3\5F\6D\59\52\59\C5\5E\EC\5E\23\59\41\5F\73\5C\D1\58\00\00\00\00\00\00\00\00\00\00\00\00\00\00\27\28\29\2A\00\00\38\35\2D\31\2E\3D\2E\3E\80\33\34\B5\2A\3D\00\26\2B\1A\26\2B\8B\29\2F\33\3F\00\A2\2F\37\00\A2\2F\37\00\33\3F\00\A2\2F\37\00\3F\00\A2\2F\37\00\33\28\00\A2\2F\37\00\28\00\A2\31\29\00\27\28\1A\9E\26\29\29\00\23\1A\A1\31\29\00\29\2A\1A\9E\26\29\29\00\23\1A\A1\31\29\00\23\1A\9E\26\29\29\00\23\1A\A3\31\29\00\38\35\1A\9E\26\29\29\00\23\1A\A1\31\29\10\27\28\11\1A\A6\31\29\00\26\1A\10\27\28\91\31\29\10\29\2A\11\1A\A6\31\29\00\26\1A\10\29\2A\91\31\29\00\1F\1A\A3\31\29\00\23\1A\9F\31\29\00\1F\1A\A6\31\29\00\26\1A\9F\2E\33\28\00\27\A8\29\2A\28\00\27\A8\2E\33\28\00\29\AA\29\2A\28\00\29\AA\2E\33\28\00\A3\29\2A\28\00\A3\2E\33\28\00\38\B5\29\2A\28\00\38\B5\80\80\80\80\80\80\80\2E\33\28\00\A0\80\80\80\80\80\80\80\29\2A\28\00\A0\80\80\80\80\80\80\80\31\29\00\20\1A\9D\37\31\28\A6\37\37\28\A6\37\31\A6\37\37\A6\29\26\A6\28\35\B1\38\28\AB\28\28\AB\80\80\80\80\80\80\80\37\2A\39\00\9C\35\34\35\00\27\A8\37\2A\B9\35\34\35\00\29\AA\2A\3D\BD\35\34\35\00\A3\2F\35\00\A4\35\34\35\00\26\AB\31\29\00\38\35\1A\A3\80\80\80\80\80\80\80\2F\35\00\1C\00\9E\2F\35\00\9E\A7\34\3A\39\00\1D\1A\A6\2E\33\00\26\1A\9D\2A\3D\10\38\35\11\1A\A3\2A\3D\00\29\2A\1A\2D\B1\29\AE\2A\AE\80\80\80\80\80\80\80\28\26\31\31\00\1C\00\9E\35\3A\38\2D\00\27\A8\28\26\31\31\00\9E\35\3A\38\2D\00\29\AA\2E\3D\2E\BD\35\3A\38\2D\00\A3\A9\35\3A\38\2D\00\26\AB\2E\3E\2E\BE\26\29\29\00\26\1A\9D\26\29\28\00\26\1A\9D\38\3A\27\00\9D\38\27\28\00\26\1A\9D\26\33\29\00\9D\3D\34\37\00\9D\34\37\00\9D\28\35\00\9D\80\80\80\80\80\80\80\37\38\39\00\A5\27\2E\B9\37\2A\B8\38\2A\B9\37\31\A8\37\37\A8\37\B1\37\B7\38\31\A6\38\37\A6\2A\37\B7\38\37\B1\80\80\80\80\80\80\80\2E\33\00\20\1A\10\28\91\80\80\80\80\80\80\80\34\3A\39\10\28\11\1A\A0\38\27\28\00\23\1A\A1\80\80\80\80\80\80\26\29\28\00\23\1A\A1\31\29\00\1F\1A\A1\80\80\80\80\80\80\31\29\00\21\1A\9F\33\2A\AC\80\80\80\80\80\80\2A\37\B7\37\2A\39\B3\37\2A\39\AE\80\80\80\80\80\2A\37\B7\2E\32\00\9C\2A\37\B7\2E\32\00\9D\2E\32\00\9E\80\80\80\2A\37\B7\31\29\00\2E\1A\A6\31\29\00\37\1A\A6\31\29\00\26\1A\AE\31\29\00\26\1A\B7\37\37\A9\37\31\A9\80\2A\37\B7\31\29\AE\31\29\A9\31\29\2E\B7\31\29\29\B7\28\35\AE\28\35\A9\28\35\2E\B7\28\35\29\B7\2E\33\AE\2E\33\A9\2E\33\2E\B7\2E\33\29\B7\34\3A\39\AE\34\3A\39\A9\34\39\2E\B7\34\39\29\B7\27\28\29\2A\2D\31\2E\3D\2E\3E\80\33\BF\BF\33\A8\A8\35\B4\35\AA\B5\B2\27\28\29\2A\2D\31\00\26\10\2D\31\11\10\2E\3D\15\10\2E\3E\15\5F\55\55\A5\55\55\55\A5\AF\55\55\A5\A5\55\55\A5\AF\F5\55\A5\A5\F5\55\A5\AF\F5\99\E5\A5\F5\55\A5\55\55\55\95\55\55\55\95\55\55\55\95\55\55\55\95\55\55\55\95\55\55\55\95\99\99\99\59\55\55\55\95\55\55\55\95\55\55\55\95\55\55\55\95\55\55\55\95\55\55\55\95\55\55\55\95\55\55\55\95\55\55\55\95\55\FF\F5\A5\55\FE\FF\A5\55\FA\F5\A5\55\FA\F5\A5\55\F5\F5\A5\55\F5\FA\A5\55\F5\F5\A5\55\F5\F5\A5\80\2A\37\37\33\B7\2B\31\26\2C\B8\2A\37\37\38\B5\80\37\26\32\39\B5\80\32\34\29\AA\35\35\A8\80\3B\2A\37\38\B3\2A\00\35\35\A8\80\29\2B\2E\31\AA\80\29\2B\00\28\A8\80\3B\26\37\B8\80\29\2A\38\B9\80\2A\31\2E\33\AA\80\28\2D\26\29\A9\80\3D\00\35\39\B7\80\38\39\30\27\B9\80\38\39\30\33\A9\80\27\2A\37\AC\32\2A\B2\80\80\29\2B\00\38\BF\38\00\39\34\B5\80\31\26\38\39\B0\80\29\27\33\28\AA\32\26\37\2C\B3\33\3D\39\31\B3\80\34\31\35\35\A8\80\2B\31\26\2C\BD\38\39\37\31\B3\80\39\26\29\29\B7\80\38\2A\2A\A9\80\2B\37\26\32\B8\80\28\34\37\29\B8\80\35\37\00\28\A8\38\35\34\38\B3\38\35\34\38\B1\28\29\2B\31\AC\35\37\27\3A\AB\32\2A\32\27\B9\B6\4A\8F\4B\FF\4A\96\48\5D\48\27\4B\47\4B\5B\4B\67\4B\FD\4B\80\2F\37\39\80\38\3C\34\B5\29\37\34\B5\38\3A\A7\32\3A\31\B9\29\2E\BB\35\3C\37\80\34\B7\26\33\A9\33\13\14\B2\33\12\14\B2\33\13\12\B2\33\12\B2\33\13\B2\33\14\B2\26\29\A9\0D\26\33\A9\0D\13\94\0D\12\94\0D\13\92\0D\92\0D\93\0D\94\0D\39\37\95\33\2A\AC\29\3A\B5\36\37\2A\B2\2F\37\3A\80\38\39\2B\B5\31\34\33\BF\33\13\1C\8F\33\12\1C\8F\2A\33\A9\26\26\29\AF\37\34\3A\B3\37\26\2B\B5\29\2A\3D\B5\38\26\35\B5\38\39\26\B0\38\39\34\B7\2C\2A\B9\00\00\00\00\00\00\00\00\00\00\00\00\00\21\02\41\18\0D\21\22\41\18\08\21\42\41\18\03\21\62\41\E5\01\00\00\CD\F5\08\E1\01\20\00\ED\5B\0E\40\ED\B0\ED\53\0E\40\C9\00\CD\F5\08\01\16\20\18\06\CD\F5\08\01\00\20\79\2A\0E\40\77\23\10\FC\C9\3E\1A\18\09\3E\10\18\05\3E\11\18\01\AF\2A\0E\40\77\23\22\0E\40\C9\CD\F5\08\E1\7E\23\E5\FE\0B\C8\CD\4D\47\18\F4\4F\E6\F0\1F\1F\1F\1F\C6\1C\CD\4D\47\79\E6\0F\C6\1C\C3\4D\47\ED\5B\00\41\7A\CD\65\47\7B\C3\65\47\2A\00\41\AF\4F\47\7E\FE\DD\28\04\FE\FD\20\07\0C\04\23\7E\2B\18\15\FE\ED\20\11\23\7E\2B\E6\C7\FE\43\20\04\0E\04\18\02\0E\02\18\1B\E5\A7\1F\F5\C6\02\6F\26\45\F1\7E\38\04\1F\1F\1F\1F\0D\20\02\1F\1F\E6\03\80\4F\E1\06\00\C9\CD\52\47\C3\EC\49\01\00\02\CD\F5\08\CD\79\47\CD\60\4C\CD\D4\4B\CD\EC\49\CD\48\49\CD\39\48\CD\56\48\20\E9\C9\BE\20\03\32\F7\40\23\7E\C0\32\F5\40\22\00\41\C9\2A\00\41\EB\2A\FA\40\7A\B3\A7\C8\CD\69\50\CD\76\55\D9\21\D2\10\D9\28\02\AF\C9\60\69\23\23\F6\01\C9\C3\00\00\CD\02\48\C8\ED\5B\0E\40\01\04\00\ED\B0\ED\53\0E\40\C9\00\2A\0E\40\3E\76\BE\28\05\36\00\23\18\F8\23\22\0E\40\2A\39\40\2E\20\25\AF\BC\22\39\40\C9\2A\FE\40\22\00\41\C9\2A\00\41\AF\CD\A9\48\18\06\2A\00\41\7E\E6\07\21\EE\44\FE\06\28\06\85\6F\7E\C3\4D\47\3A\F6\40\FE\02\CA\B5\4B\A7\17\17\C6\08\85\6F\01\04\00\CD\1D\47\2B\7E\FE\11\C2\CA\4A\C9\CD\44\47\CD\FF\4A\CD\48\47\C9\2A\00\41\7E\E6\07\17\17\17\4F\7E\E6\38\1F\1F\1F\B1\C9\2A\00\41\23\22\00\41\C9\47\04\2B\23\CB\7E\28\FB\10\F9\23\C9\ED\53\0E\40\21\50\46\D6\1C\17\85\6F\5E\23\56\EB\E9\2A\00\41\7E\FE\76\20\08\CD\59\47\2D\31\39\0B\C9\CD\59\47\31\29\00\0B\CD\5D\48\CD\40\47\C3\66\48\00\11\00\42\18\03\11\0E\43\CD\A0\48\EB\CD\BA\48\2B\23\7E\FE\80\28\FA\ED\5B\0E\40\CB\7E\7E\20\14\FE\1C\38\0C\FE\26\30\08\E5\CD\C6\48\E1\23\18\E7\ED\A0\18\E7\EE\80\FE\1C\38\04\FE\26\38\91\12\13\ED\53\0E\40\C9\21\F6\40\CB\6F\28\01\34\34\CD\B2\48\2A\00\41\7E\E6\C0\FE\40\28\85\38\A4\FE\80\28\13\7E\FE\CB\28\2E\FE\ED\28\66\FE\FD\28\D7\FE\DD\28\D3\18\92\2A\00\41\AF\CD\A9\48\21\AE\43\CD\BA\48\ED\5B\0E\40\CB\7E\20\04\ED\A0\18\F8\ED\53\0E\40\C3\66\48\3A\F6\40\A7\2A\00\41\28\0A\23\7E\32\F5\40\3E\01\32\F7\40\23\22\00\41\7E\E6\C0\ED\5B\0E\40\28\1F\17\17\17\3D\21\E6\43\CD\56\4A\CD\4C\47\2A\00\41\AF\CD\A9\48\C6\1C\CD\4D\47\C3\F1\48\18\2E\00\AF\CD\A9\48\00\21\EF\43\CD\56\4A\CD\4C\47\18\AE\2A\00\41\3A\F7\40\A7\28\04\3A\F5\40\C9\3E\36\C3\F2\47\CD\4C\47\C3\A4\4A\FD\CB\21\96\C9\CD\B2\48\7E\E6\C0\28\06\FE\80\28\3B\38\09\CD\59\47\29\26\39\26\0B\C9\7E\E6\07\FE\02\28\1A\FE\03\28\16\FE\06\20\09\AF\CD\A9\48\21\65\44\18\2C\CD\A0\48\21\05\44\18\3D\00\CB\5E\F5\7E\E6\07\17\17\17\4F\F1\C3\C3\4A\00\CB\56\20\C3\CB\6E\28\BF\7E\E6\18\1F\1F\1F\CD\D3\4A\21\9C\44\ED\5B\0E\40\CD\BA\48\CB\7E\20\04\ED\A0\18\F8\7E\EE\80\12\13\ED\53\0E\40\C9\CD\BA\48\2B\23\7E\FE\80\28\FA\ED\5B\0E\40\CB\7E\7E\20\14\FE\1C\38\0C\FE\26\30\08\E5\CD\C6\48\E1\23\18\E7\ED\A0\18\E7\EE\80\FE\1C\38\05\FE\26\DA\C6\48\12\13\ED\53\0E\40\C9\CD\26\48\28\04\CD\4C\47\C9\01\00\05\CD\37\47\C3\52\47\2A\00\41\AF\CD\A9\48\21\E0\44\C3\52\4A\79\28\01\3C\C3\29\4A\CD\DA\49\CD\65\47\C3\48\47\4F\7E\E6\03\17\17\B1\C9\00\00\00\47\21\81\45\ED\5B\0E\40\04\23\CB\7E\28\FB\10\F9\23\7E\FE\80\C9\CD\05\48\CA\7D\47\01\04\00\C3\1D\47\2A\00\41\23\5E\23\56\EB\7C\FE\40\C2\F3\4A\7D\FE\3D\38\06\FE\5D\20\F4\3E\3D\E5\CD\DE\4A\D1\CA\7D\47\ED\5B\0E\40\C3\59\4A\2A\00\41\7E\E6\30\1F\1F\1F\01\02\00\21\F2\41\FE\04\28\05\85\6F\C3\1D\47\5F\3A\F6\40\83\17\18\F3\CD\B2\48\7E\FE\80\30\04\16\00\18\02\16\FF\5F\13\19\C3\F3\4A\21\FA\41\01\02\00\3A\F6\40\A7\18\DD\CD\44\47\CD\5B\4B\C3\48\47\CD\0F\47\01\00\01\CD\F5\08\01\14\1B\CD\37\47\CD\52\47\01\00\05\C3\37\47\AF\2A\F2\40\77\C9\00\2A\00\41\7E\FE\FE\F5\23\7E\F5\CD\65\47\CD\B2\48\C1\F1\C0\78\FE\40\D0\CD\4C\47\78\C3\4D\47\21\EE\44\3E\02\C3\81\48\CD\DA\49\FE\3D\38\06\FE\5D\20\ED\3E\3D\CD\DE\4A\28\E6\E5\CD\44\47\D1\EB\CD\59\4A\C3\48\47\00\CD\85\47\54\5D\79\85\30\01\24\6F\22\FE\40\CD\4C\47\C5\41\1A\13\CD\65\47\10\F9\C1\3E\04\91\C8\17\47\AF\CD\38\47\22\0E\40\C9\2A\00\41\E5\AF\CD\A9\48\A7\1F\30\04\1E\24\18\02\1E\1C\C6\1C\CD\4D\47\7B\CD\4D\47\3E\2D\CD\4D\47\E1\7E\FE\CF\20\04\FD\CB\21\C6\FE\EF\C0\FD\CB\21\CE\C9\2A\00\41\01\01\00\20\01\03\CD\D7\4B\CD\EC\49\C3\4C\47\21\64\46\ED\5B\0E\40\CD\56\4A\C9\CD\B2\48\7E\3D\C3\4B\4B\3E\02\FD\AE\21\32\21\40\C3\1D\55\00\21\00\00\22\F6\40\21\E8\5F\E3\FD\CB\21\46\FD\CB\21\86\C2\07\60\FD\CB\21\4E\E3\C8\E3\2A\00\41\7E\A7\28\06\FE\2F\28\02\FE\31\F5\CD\2F\4C\F1\F5\FE\19\38\10\FE\2D\30\06\F1\C6\AB\C3\4B\09\FE\39\30\1E\D6\14\CD\41\4C\F1\A7\28\A2\FE\2F\28\FA\FE\31\28\F6\FE\30\CA\2B\60\FE\34\C0\FD\CB\21\8E\C9\F1\A7\F2\65\47\F5\E6\60\07\07\07\C6\25\CD\41\4C\CD\4C\47\F1\FE\A0\DA\69\60\FE\C0\DA\8C\60\E6\1F\C3\74\47\00\2A\F2\40\2B\7E\D6\1C\5F\2B\7E\D6\1C\17\17\17\17\B3\5F\2B\7E\D6\1C\57\2B\7E\D6\1C\17\17\17\17\B2\57\EB\22\F0\40\C9\CD\55\50\FE\1C\38\F9\FE\40\30\F5\FE\2C\38\0F\21\2A\41\07\85\30\01\24\6F\5E\23\56\EB\E3\C9\E1\2A\0C\40\23\77\3E\FC\FD\A6\21\FD\77\21\22\EA\40\CD\46\4D\CA\1D\55\22\00\41\C3\2A\55\00\00\06\03\C5\CD\55\50\FE\76\28\1E\FE\77\28\1C\FE\1C\38\F1\FE\2C\30\ED\2A\EA\40\23\77\22\EA\40\C1\10\E1\CD\E8\4C\3E\01\A7\C9\C1\C9\2A\EA\40\3E\76\BE\28\D1\AF\BE\28\FA\CB\FE\2B\22\EA\40\C1\04\18\C2\CD\4C\5D\CD\56\47\26\29\29\37\00\00\BC\B7\AE\B9\AA\00\00\0B\01\1D\00\CD\56\47\2A\34\35\0B\01\1C\01\CD\F5\08\ED\5B\EC\40\C3\7D\47\01\00\00\CD\56\47\B3\A6\B2\AA\0B\C3\A5\50\00\00\CD\BD\5E\36\00\3A\F4\40\FE\14\28\20\3C\11\21\00\32\F4\40\19\36\92\22\F2\40\C9\CD\BD\5E\36\00\3A\F4\40\FE\01\28\0F\3D\11\DF\FF\18\E4\CD\FB\4D\2A\F2\40\36\92\C9\CD\B6\60\18\F5\3E\15\11\43\00\2A\0C\40\19\EB\21\21\00\19\01\20\00\ED\B0\13\23\3D\20\F6\ED\53\0E\40\C3\6C\5F\ED\5B\10\40\00\1B\CD\C0\4E\21\DF\FF\19\3E\15\01\20\00\ED\B8\1B\2B\3D\20\F6\21\E0\FF\19\22\0E\40\CD\CA\4E\2A\F0\40\22\00\41\C9\CD\79\47\CD\DC\5F\CD\D4\4B\CD\EC\49\CD\48\49\CD\39\48\C9\00\21\AB\01\18\03\21\CF\01\11\02\41\01\04\00\ED\B0\CD\00\47\2A\0C\40\01\06\00\09\22\EA\40\E5\01\3F\19\CD\AF\50\3E\19\90\28\04\4F\06\00\2B\CB\FE\E1\C9\2A\0C\40\01\43\00\09\16\16\CD\76\08\2A\FE\40\E5\FD\CB\21\66\20\05\CD\D4\47\18\09\01\00\02\CD\F5\08\CD\D2\54\D1\2A\EC\40\ED\52\30\D4\CD\2B\0F\C3\58\53\23\C9\C9\C9\00\D5\21\E4\FF\19\CD\E7\4C\D1\C9\ED\5B\F0\40\D5\23\23\23\CD\E7\4C\D1\ED\53\F0\40\54\5D\2B\2B\2B\CD\00\51\CD\44\4E\C3\56\48\CD\EE\4F\CD\86\4D\CD\55\50\FE\76\20\06\CD\88\4B\C3\1D\60\FE\70\20\05\CD\DB\4D\18\EA\FE\71\20\05\CD\C1\4D\18\E1\FE\73\28\1B\FE\1C\38\D9\FE\40\30\D5\FE\2C\38\0F\21\52\41\07\85\30\01\24\6F\5E\23\56\EB\E9\00\CD\E0\5D\F5\CD\88\47\79\32\E8\40\21\E6\40\36\00\CD\88\4B\23\F1\CD\24\50\C5\CD\16\50\CD\74\4F\C1\18\47\00\00\3A\F4\40\3C\47\0E\00\CD\F5\08\CD\3D\4E\C9\CD\9E\52\09\2B\EB\41\C5\2A\EA\40\CD\77\4F\12\1B\10\F9\C1\2B\C9\00\2A\EA\40\2B\7E\D6\1C\4F\2B\7E\D6\1C\17\17\17\17\B1\C9\70\C5\CD\16\50\18\B8\2A\F2\40\36\93\C3\EB\4E\21\E6\40\47\EE\CD\28\04\E6\CF\28\E5\23\70\CD\5D\52\2B\7E\A7\20\01\23\CD\88\47\41\3A\E6\40\A7\28\01\05\05\28\09\CB\00\C5\CD\16\50\C1\10\F9\2A\F0\40\CD\5E\4F\C5\CD\50\4F\3A\E8\40\C1\B9\28\05\CD\DA\47\18\03\CD\E2\4F\CD\C1\4D\C3\EE\4E\2A\FE\40\E5\CD\44\4E\E1\22\00\41\C9\2A\0C\40\11\47\00\19\22\F2\40\AF\3C\32\F4\40\36\92\C9\CD\D4\47\CD\70\4B\CD\09\4D\18\F5\C1\C1\CD\50\4F\CD\E2\4F\C3\8D\4F\CD\55\50\2A\EA\40\FE\76\28\EB\FE\77\28\1D\FE\73\20\09\3E\7F\A6\28\E9\CB\BE\18\09\FE\1C\38\E1\FE\2C\30\DD\77\23\CB\FE\22\EA\40\C9\AF\2B\BE\23\28\CF\36\00\2B\CD\3B\50\E1\C1\04\C5\E5\18\C2\00\CD\BB\02\2C\20\FA\CD\BB\02\44\4D\59\1C\28\F7\CD\BD\07\7E\C9\D5\EB\2A\FC\40\A7\ED\52\EB\D1\28\01\D0\E1\AF\C9\2A\EA\40\01\FB\FF\09\E5\2A\F8\40\D1\CD\69\50\D5\23\06\04\23\13\1A\BE\28\05\23\10\FD\18\ED\10\F3\01\FB\FF\09\5E\23\56\EB\D1\3C\A7\C9\2A\0C\40\23\22\EA\40\01\2C\04\C5\CD\55\50\C1\2A\EA\40\FE\76\28\19\FE\77\28\20\B9\38\04\FD\CB\21\DE\E6\BF\77\23\CB\FE\22\EA\40\10\DE\F6\01\C9\FD\CB\21\9E\C9\00\00\00\C3\0D\50\78\FE\04\28\CB\04\2B\22\EA\40\CB\FE\18\C2\CD\B1\4D\FD\CB\21\9E\CD\79\50\CA\1D\55\22\00\41\C3\2A\55\2B\01\04\04\C5\CD\88\47\79\C1\B9\28\0C\23\0D\10\F3\2B\22\00\41\E1\C3\D4\47\22\00\41\C9\C5\CD\A9\59\FD\CB\21\5E\28\41\FD\CB\21\9E\CD\79\50\28\1A\EB\2A\F0\40\23\23\AF\EB\ED\52\8C\20\0D\7D\30\06\A7\FA\5C\51\18\04\A7\F2\5C\51\F1\2A\EA\40\CD\CA\55\CB\FE\22\EA\40\47\18\C4\00\00\00\CD\E7\52\1B\12\1B\F1\12\D1\C3\C9\4F\CD\EB\51\18\C7\78\E6\F7\C8\E6\CF\28\A8\78\FE\CD\28\2C\E6\CF\FE\01\28\26\78\E6\E7\FE\22\28\1F\E6\E4\20\04\CB\6F\20\17\2B\7E\23\FE\ED\20\07\78\E6\C7\FE\43\28\09\78\FE\C3\28\04\C3\DB\52\00\CD\BE\5D\FD\CB\21\5E\CA\FB\51\FD\CB\21\9E\CD\79\50\28\1D\E5\CD\F5\52\ED\5B\E6\40\7B\A7\28\04\AF\37\73\23\72\23\D1\73\23\72\CE\03\4F\D1\C3\C9\4F\2A\EA\40\CD\CA\55\CB\FE\22\EA\40\2A\E6\40\23\46\78\18\BD\00\00\2A\F0\40\E5\2A\EA\40\CD\E6\4C\EB\E1\22\F0\40\C9\CD\EB\51\D5\18\B9\00\00\00\01\00\00\CD\56\47\93\AA\B4\B5\0B\CD\1D\52\28\F0\22\EC\40\C9\00\CD\E3\4C\E9\CD\A5\50\FD\CB\21\5E\28\08\FD\CB\21\9E\CD\79\50\C9\CD\EB\51\EB\F6\01\C9\E1\01\00\00\CD\56\47\A9\AA\B8\B9\0B\2A\F2\40\36\B9\CD\E3\4C\E5\CD\1D\52\28\E6\E5\CD\CF\5C\2A\EC\40\D1\C1\28\0C\C3\8D\4F\FD\CB\21\6E\CA\6D\51\C9\00\A7\ED\42\23\30\07\09\C5\E3\C1\A7\ED\42\C5\44\4D\A7\E1\C5\ED\52\38\05\19\ED\B0\18\09\19\EB\09\2B\EB\09\2B\ED\B8\A7\C1\ED\52\30\04\13\EB\18\03\EB\ED\42\22\00\41\C3\2A\55\FD\CB\21\56\C8\FD\CB\21\96\C5\EB\2A\EC\40\E5\A7\ED\42\E5\ED\52\44\4D\E1\D1\38\0F\03\ED\B8\C1\EB\23\ED\42\3E\05\32\E8\40\C9\00\C1\C1\C1\3E\97\CD\89\4B\C3\EB\4E\FD\CB\21\D6\3E\AE\18\F2\E6\C7\FE\C2\CA\A6\51\FE\C4\28\F9\C9\F5\D5\01\02\00\2A\F0\40\CD\9E\52\D1\F1\C9\01\03\00\3A\E6\40\A7\28\01\03\2A\F0\40\C3\9E\52\CD\E3\4C\CD\8C\56\54\5D\09\44\4D\2A\EC\40\A7\ED\42\D8\E5\60\69\C1\03\ED\B0\CD\50\4F\CD\99\5A\C3\8D\4F\CD\23\0F\11\CB\12\CD\46\0F\D0\10\FE\1B\7A\B3\20\F5\CD\1E\03\CB\7E\23\28\F8\2A\E4\40\CD\1E\03\CD\4B\53\18\F8\23\EB\2A\EC\40\37\ED\52\EB\D0\C3\06\02\21\6A\65\F9\CD\2B\0F\21\7B\40\22\02\40\21\AA\40\22\CA\40\21\1D\55\E5\E5\C3\2A\55\2A\F8\40\22\00\41\18\F5\00\00\00\00\00\00\E3\F5\AF\2A\C6\40\CB\5E\28\02\7E\23\32\96\53\7E\32\97\53\F1\E1\00\00\C3\C2\56\16\80\CD\23\0F\CD\A5\53\18\FB\0E\01\06\00\3E\7F\DB\FE\D3\FF\1F\30\43\17\17\38\22\10\F1\F1\62\6B\CD\A5\53\CB\7A\79\20\04\BE\C2\9E\53\23\17\30\F0\2A\E4\40\50\CD\A5\53\71\CD\4B\53\18\F6\D5\1E\94\06\1A\1D\DB\FE\17\CB\7B\7B\38\F5\10\F5\D1\20\04\FE\56\30\B8\3F\CB\11\30\B3\C9\E1\C9\AF\F5\CD\E3\4C\22\E4\40\F1\28\08\CD\5D\4E\CD\27\53\18\03\CD\13\54\CD\2B\0F\C3\1D\55\CD\58\4E\28\83\EB\18\82\7E\FE\C0\38\06\FE\C3\C8\C3\53\55\FE\40\38\07\FE\43\38\F5\FE\80\D8\C3\4D\47\1E\00\ED\42\38\03\1C\18\F9\ED\4A\C9\7C\2F\67\7D\2F\6F\23\ED\5B\0E\40\1B\3E\16\12\13\ED\53\0E\40\C9\A7\20\08\2B\7E\36\00\23\77\28\07\CB\F9\E6\2F\C6\1C\77\23\79\C9\CB\7C\C4\40\54\01\10\27\CD\34\54\53\01\E8\03\CD\34\54\D5\01\64\00\CD\34\54\53\0E\0A\CD\34\54\C1\78\45\05\C9\CD\6A\54\C3\34\55\CD\6F\54\18\F8\CD\A7\54\2A\0E\40\C3\3A\55\CD\AF\54\18\F5\7E\17\ED\62\1F\6F\18\BB\11\00\00\7E\26\00\6F\18\C4\EB\E5\5E\23\22\FE\40\56\CD\06\48\CD\29\48\20\05\CD\AD\4A\18\03\CD\4C\47\E1\C9\CD\79\47\CD\4C\47\1A\CD\65\47\CD\4D\55\CD\B8\54\E5\CD\A2\54\CD\4C\47\E1\E5\CD\94\54\CD\4C\47\E1\CD\1B\54\CD\39\48\CD\56\48\20\D5\C9\01\00\02\CD\F5\08\CD\D2\54\CD\0A\47\01\00\01\CD\29\47\CD\09\4D\18\E9\3E\10\FD\AE\21\FD\77\21\2A\0C\40\11\47\00\19\CD\E6\4C\22\00\41\FD\CB\21\66\CA\00\50\C3\FE\54\2A\0E\40\CD\55\54\4A\CD\55\54\4B\CD\55\54\48\CD\55\54\CD\62\54\22\0E\40\C9\CD\4C\47\C3\4C\47\FD\CB\01\C6\C3\4B\09\7A\B8\28\01\C9\7B\B9\C9\01\06\00\18\03\01\FA\FF\2A\F8\40\09\22\F8\40\22\FA\40\C9\EB\2A\F8\40\4E\23\46\2B\CD\5A\55\44\4D\C8\D0\E5\D9\ED\5B\FC\40\C1\A7\62\6B\ED\42\28\28\CB\1C\CB\1D\CB\45\28\07\7D\C6\03\30\01\24\6F\09\E5\D9\E1\E5\4E\23\46\CD\5A\55\C1\C8\C5\D9\38\D8\11\FA\FF\19\EB\E1\18\D1\D5\D9\E1\01\06\00\09\F6\01\C9\21\05\00\09\18\5E\06\04\36\00\2B\10\FB\C9\E6\3F\C3\4D\47\CD\CA\55\18\07\36\97\18\5C\CD\E3\4C\2A\FA\40\3E\65\BC\2A\F2\40\30\EE\36\B3\01\0A\00\09\CB\FE\CD\A9\50\FD\CB\21\5E\28\D8\FD\CB\21\9E\2A\F0\40\CD\75\55\D9\21\D2\10\D9\28\B4\E5\2A\F8\40\EB\CD\67\55\E3\A7\ED\52\44\4D\E1\EB\78\B1\A7\28\02\ED\B0\2B\EB\2A\EA\40\CB\BE\2B\01\04\00\ED\B8\21\F0\40\23\ED\A8\ED\A8\C3\8D\4F\CD\E3\4C\CD\75\55\CD\26\5C\20\F2\C5\69\ED\5B\F8\40\60\ED\52\E3\54\5D\01\05\00\09\C1\78\B1\28\04\1B\EB\ED\B8\CD\62\55\2A\F2\40\0E\0A\09\06\04\36\00\23\10\FB\18\C7\00\2A\F8\40\ED\5B\FA\40\A7\ED\52\19\20\03\2A\FC\40\22\FA\40\C3\1D\55\FD\CB\21\66\20\04\CD\88\47\C9\01\01\00\C9\F5\CD\88\4B\F1\C9\00\CD\23\0F\ED\73\E0\40\31\CC\40\D9\08\E1\D1\C1\F1\D9\08\FD\E1\DD\E1\E1\D1\C1\F1\ED\7B\CA\40\CD\23\48\ED\73\CA\40\31\E0\40\F5\C5\D5\E5\DD\E5\FD\E5\D9\08\F5\C5\D5\E5\08\D9\ED\7B\E0\40\CD\D9\60\CD\2B\0F\C9\00\00\CD\00\58\21\7C\57\79\85\6F\5E\23\56\ED\53\24\48\C9\2A\C8\40\2B\7E\32\0F\57\E3\E1\CD\0F\57\E1\22\C8\40\ED\73\CA\40\C3\D9\56\C0\E1\18\F5\2A\C8\40\2B\56\2B\5E\ED\53\CA\40\C3\D9\56\2A\C8\40\2B\56\2B\5E\EB\23\18\EB\D1\ED\73\CA\40\3A\F6\40\FE\01\28\0C\30\10\22\C8\40\AF\32\F6\40\C3\D9\56\DD\22\C8\40\18\F3\FD\22\C8\40\18\ED\2A\C8\40\2B\5E\2B\7E\32\5A\57\30\0D\E3\E1\ED\73\CA\40\ED\43\DC\40\C3\D9\56\7B\23\FE\80\30\04\16\00\18\02\16\FF\13\19\22\C8\40\18\E0\BB\4E\F7\56\21\57\2C\57\50\57\13\57\96\57\AB\57\C9\57\E1\60\F3\57\96\58\81\53\2A\C8\40\2B\CB\5E\2A\CA\40\28\03\2B\18\01\23\22\CA\40\C3\D9\56\2A\C8\40\2B\56\2B\5E\2B\7E\E3\E1\32\B9\57\C3\BE\57\18\04\ED\53\C8\40\ED\73\CA\40\C3\D9\56\2A\C8\40\E5\2B\56\2B\5E\2B\7E\E1\E3\E1\32\D9\57\CD\E3\57\ED\73\CA\40\C3\D9\56\ED\53\C8\40\E3\18\F2\AF\2A\C6\40\CB\56\C8\7E\C9\CD\EA\57\32\F9\57\00\22\CA\40\C3\D9\56\0E\00\7E\FE\ED\20\11\23\7E\FE\7B\28\08\E6\F7\FE\45\C0\0E\02\C9\0E\04\C9\FE\DD\28\04\FE\FD\20\13\41\CB\6F\28\01\04\04\78\32\F6\B9\23\7E\18\04\00\0E\06\C9\FE\31\20\03\0E\0A\C9\E6\F7\C8\FE\33\28\07\E6\CF\20\06\0E\08\C9\0E\0C\C9\7E\FE\E9\28\E0\FE\C9\28\BE\FE\C3\20\03\0E\0E\C9\FE\CD\20\03\0E\10\C9\FE\E3\20\03\0E\12\C9\FE\F9\20\03\0E\14\C9\E6\C7\FE\C0\D8\28\9B\FE\C7\20\03\0E\16\C9\FE\C4\28\DD\FE\C2\28\D2\7E\CB\4F\C0\CB\5F\C0\0E\18\C9\00\00\00\00\00\00\2A\C8\40\E3\E1\2B\7E\23\E5\ED\73\CA\40\E6\38\6F\26\00\22\C8\40\C3\D9\56\CD\E3\4C\22\C8\40\2A\C8\40\22\C6\40\CD\88\47\11\BB\4E\D5\ED\B0\22\C8\40\3E\C9\12\E1\CD\E6\56\CD\A1\56\C9\CD\AE\58\CD\00\5A\CD\55\50\FE\76\28\40\A7\28\4B\FE\1C\38\F2\FE\3A\30\EE\FE\2C\38\4E\FE\31\38\E6\07\C6\70\6F\26\41\5E\23\56\EB\E9\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\CD\B4\58\18\B1\2A\C8\40\22\00\41\C3\00\50\2A\C8\40\22\C6\40\CD\88\47\09\18\0C\00\00\00\2A\EA\40\77\CD\46\4D\28\03\22\C8\40\01\00\14\CD\F5\08\CD\64\5A\18\85\01\00\14\CD\56\47\B3\A6\B2\AA\0B\CD\AC\50\FD\CB\21\9E\28\E1\CD\79\50\28\F9\18\D7\3E\80\FD\AE\21\FD\77\21\01\1E\12\CD\56\47\BC\0B\C3\D7\58\00\00\00\00\00\2A\0C\40\23\22\0E\40\CD\59\47\A8\B2\B5\8D\0B\2A\F2\40\36\A8\CD\1D\52\CA\8D\4F\E5\CD\CF\5C\28\16\E1\C3\8D\4F\CD\AC\50\C0\C1\C3\0B\50\00\00\A7\D5\D9\E1\ED\42\D9\C9\2A\EC\40\E5\CD\E3\4C\EB\D9\C1\D9\01\FF\1F\E1\1A\ED\B1\E2\E9\59\CD\B3\59\28\1A\D5\E5\13\1A\ED\A1\20\07\CD\B3\59\28\0D\18\F3\E3\E1\D1\18\E1\ED\53\00\41\18\06\E1\2B\22\00\41\E1\CD\26\5C\C3\2A\55\00\E1\C3\D3\52\CD\05\47\01\00\01\CD\29\47\CD\FE\5A\CD\3F\5B\CD\2C\47\00\00\00\CD\35\5B\CD\B7\5B\CD\2C\47\CD\E6\5B\01\00\0F\CD\F5\08\01\16\12\CD\B0\4A\CD\A4\5A\CD\B8\5A\01\00\12\CD\29\47\01\17\0D\CD\56\47\38\39\26\28\30\0B\01\12\12\CD\56\47\31\26\38\39\16\B3\AA\BD\B9\0B\2A\C6\40\22\00\41\01\00\13\CD\F5\08\CD\44\4E\2A\C8\40\22\00\41\CD\24\60\01\00\14\CD\F5\08\06\04\2A\0E\40\22\EA\40\CB\FE\23\10\FB\C9\CD\E3\4C\EB\2A\EC\40\AF\ED\52\23\4C\0C\45\12\13\10\FC\0D\20\F9\C3\1D\55\FD\CB\21\66\CA\DA\47\C3\D2\54\00\01\00\10\CD\56\47\2A\3D\2B\31\26\2C\38\00\0B\2A\D2\40\18\12\01\00\11\CD\56\47\2B\31\26\2C\38\00\00\00\0B\2A\DE\40\7D\CB\7F\3E\32\20\02\3E\35\D7\AF\D7\7D\CB\77\3E\33\20\01\D7\3E\3F\D7\AF\D7\3E\35\D7\7D\CB\57\3E\2A\20\02\3E\34\D7\AF\D7\7D\CB\47\3E\33\20\01\D7\3E\28\D7\C9\21\DE\40\AF\01\00\02\23\E5\F5\CD\F5\08\3E\26\D7\F1\D7\01\00\03\CD\B0\4A\E1\7E\E5\CD\65\47\01\00\05\CD\B0\4A\E1\E5\CD\99\54\01\00\06\CD\B0\4A\E1\CD\1B\54\CD\39\48\C9\21\D2\40\01\00\09\3E\0B\18\C6\06\05\AF\21\DC\40\32\BA\40\22\BC\40\21\D7\44\22\B8\40\C5\2A\B8\40\01\02\00\CD\1D\47\22\B8\40\3A\BA\40\CD\4D\47\CD\4D\55\2A\BC\40\2B\2B\22\BC\40\23\23\5E\23\56\D5\CD\7D\47\CD\4D\55\D1\D5\CD\06\48\28\1F\E5\CD\4C\47\E1\CD\2A\48\CD\4D\55\E1\E5\7E\CD\65\47\CD\4D\55\E1\CD\1B\54\CD\39\48\C1\10\B1\C9\E1\E5\CD\8E\54\18\E2\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\06\03\3E\0B\21\D0\40\18\85\D5\CD\7D\47\CD\4C\47\CD\4D\55\D1\CD\06\48\C8\C3\2A\48\01\00\15\CD\B0\4A\C1\E1\5E\23\56\23\E5\C5\CD\C0\5B\C3\39\48\01\00\0E\CD\31\47\CD\59\47\38\35\00\00\00\0B\2A\CA\40\E5\EB\CD\C0\5B\01\15\0E\CD\F5\08\CD\D8\5B\CD\D2\5B\CD\D2\5B\CD\D2\5B\E1\C9\2A\0C\40\0E\19\06\20\36\76\23\36\00\23\10\FB\0D\20\F3\C3\2A\55\D9\21\D2\10\D9\C9\E5\D7\3E\14\D7\2A\0E\40\22\EA\40\01\2C\02\CD\AF\50\E1\28\10\FD\CB\21\5E\FD\CB\21\9E\20\06\E5\CD\74\4F\E1\77\C3\D4\58\E5\CB\FF\D7\CD\AC\50\28\0D\FD\CB\21\5E\28\61\FD\CB\21\9E\CD\79\50\D1\28\04\EB\73\23\72\C3\D4\58\01\00\14\CD\56\47\92\92\92\92\0B\2A\EA\40\22\0E\40\CD\55\50\FE\26\20\05\21\DF\40\18\9C\FE\2B\20\05\21\DE\40\18\F5\FE\38\20\05\21\CA\40\18\B1\21\D4\40\FE\3E\28\AA\23\23\FE\3D\28\A4\23\23\FE\2D\28\9E\23\23\FE\29\28\98\23\23\FE\27\28\92\18\C1\CD\EB\51\E1\18\A4\CD\04\52\C3\EB\4E\CD\55\50\FE\76\C8\FE\35\CC\04\52\A7\20\F2\F6\01\C9\FD\CB\21\EE\18\04\FD\CB\21\AE\C3\EB\4E\00\2A\0C\40\23\22\EA\40\22\16\40\01\04\00\09\36\A9\47\C5\CD\55\50\C1\2A\EA\40\FE\76\28\17\FE\77\28\2D\FE\72\28\12\FE\1C\38\E8\FE\26\30\E4\77\23\22\EA\40\10\DD\AF\77\C9\E1\C3\2A\55\3E\05\CD\EE\5C\DF\CD\D9\14\CD\8A\15\ED\43\00\41\C3\2A\55\2B\3E\76\BE\23\28\BC\2B\36\93\22\EA\40\04\18\B3\01\00\00\FD\CB\21\66\20\1A\FD\CB\21\6E\C8\E1\CD\56\47\26\29\29\37\00\2D\2A\3D\AA\A9\AE\B9\00\0B\C3\9A\4D\E1\CD\55\5D\CD\89\4D\CD\55\50\FE\70\38\48\FE\79\CA\9A\5F\30\41\E6\07\21\4D\5E\C3\20\4F\00\CD\DB\4D\18\E4\CD\C1\4D\18\DF\CD\04\52\01\00\00\18\D4\CD\E3\4C\EB\2A\EC\40\A7\ED\52\44\4D\62\6B\23\ED\B0\CD\24\5E\E1\C3\8D\4F\E1\CD\88\4B\C3\1D\55\CD\AC\50\C0\C3\0B\50\F5\CD\E3\4C\01\01\00\CD\9E\52\F1\77\CD\27\5E\CD\C1\4D\FD\CB\21\6E\28\99\C3\EE\4E\F5\CD\E3\4C\F1\FD\CB\21\66\C8\E1\CD\9A\56\00\23\77\23\CB\FE\06\01\E5\C5\CD\55\50\C1\E1\FE\76\28\12\FE\77\28\13\FE\1C\38\ED\FE\2C\30\E9\77\10\E1\CD\79\4F\CD\8D\5F\18\B8\2B\AF\B6\23\28\D8\2B\CB\FE\04\18\D2\CD\E3\4C\3A\F4\40\3C\47\0E\00\22\00\41\CD\F5\08\C3\D2\54\CD\E3\4C\EB\2A\EC\40\AF\ED\52\38\08\44\4D\12\62\6B\13\ED\B0\18\6D\8D\5D\92\5D\6A\5E\FC\59\97\5D\5D\5E\B7\5D\9F\5D\CD\E3\4C\22\00\41\FD\CB\21\EE\C3\86\4D\CD\E3\4C\22\00\41\3E\10\FD\AE\21\FD\77\21\CB\67\20\08\C3\C4\60\CD\0F\47\18\12\01\00\02\CD\F5\08\CD\D2\54\CD\0A\47\18\04\FD\CB\21\AE\C3\E8\4E\2A\0E\40\E5\01\1C\00\CD\F5\08\ED\73\E0\40\ED\5B\E0\40\CD\7D\47\E1\22\0E\40\CD\BB\02\C9\FD\CB\21\96\C3\1D\55\FD\CB\21\96\2A\F2\40\C9\01\00\14\CD\F5\08\2A\0E\40\22\EA\40\22\16\40\CD\59\47\B3\B3\B3\80\80\0B\06\03\CD\FF\5C\DF\CD\D9\14\CD\CD\15\32\B6\40\3A\B6\40\A7\28\08\47\C5\CD\B4\58\C1\10\F9\C3\D4\58\2A\C0\40\22\0E\40\ED\5B\0C\40\2A\C2\40\01\19\03\ED\B0\CD\A1\56\FD\CB\21\7E\28\08\CD\55\50\FE\3B\CC\2A\0A\2A\0E\40\22\C0\40\2A\0C\40\ED\5B\C2\40\01\19\03\ED\B0\C9\7E\FE\D7\C2\D7\58\22\C6\40\11\10\00\18\15\2A\C8\40\7E\FE\CD\28\06\E6\C7\FE\C4\20\E4\22\C6\40\23\5E\23\56\23\22\C8\40\ED\53\24\48\CD\A1\56\C3\D4\58\00\FD\CB\21\EE\C3\E8\4E\2A\0C\40\01\FC\02\09\CD\E6\4C\FD\CB\21\66\20\0A\CD\CE\5F\09\22\00\41\C3\E2\4E\2B\01\00\15\C3\2E\5E\2A\F0\40\01\01\00\F5\CD\9E\52\F1\C9\00\21\76\5D\E5\21\18\7F\18\1A\21\D7\58\E5\21\F5\7D\18\11\21\EE\4E\E5\21\B6\7B\18\08\E5\21\09\4D\E5\21\38\7A\7E\FE\76\C0\E5\2A\0C\40\E3\22\0C\40\C3\CB\60\00\00\3A\21\40\E6\03\28\04\01\01\00\C9\C3\88\47\FD\CB\21\F6\CD\60\4C\FD\CB\21\B6\C9\FD\CB\21\76\CA\E9\47\FD\CB\21\B6\C3\53\4E\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\CD\2F\4C\CD\59\47\2A\37\37\34\37\00\0B\2A\00\41\7E\C6\1D\C3\D2\55\FD\CB\21\8E\C3\1D\55\FD\CB\21\8E\C3\DA\47\CD\39\48\28\53\CD\56\48\CD\79\47\CD\4C\47\2A\FE\40\D9\ED\5B\1C\40\D5\CD\01\1A\ED\53\1C\40\D9\22\FE\40\22\00\41\CD\26\5C\E1\06\05\7E\23\E5\CD\65\47\E1\10\F7\CD\4D\55\CD\4C\47\CD\DB\15\C9\E6\1F\47\CD\85\60\C5\CD\39\48\28\07\CD\30\60\C1\10\F4\C9\E1\2A\B2\40\22\00\41\E1\C9\2A\00\41\22\B2\40\C9\E6\1F\FE\02\DA\74\47\FE\03\28\0E\38\15\FE\05\D2\74\47\CD\59\47\1D\1C\0B\C9\CD\59\47\35\2E\18\1E\0B\C9\CD\59\47\1C\1B\21\0B\C9\FD\CB\21\66\CA\1A\4E\CD\E3\4C\2B\C3\27\5E\CD\D4\47\E1\C3\7F\5E\CD\55\50\E1\22\0C\40\C9\CD\E7\02\C3\89\4E\CD\26\5C\FD\21\00\40\C9\E3\F5\CD\EA\57\32\EB\60\F1\E1\00\E3\C3\C2\56\CD\E3\4C\EB\2A\EC\40\ED\52\44\4D\03\21\C4\C9\1A\13\85\30\01\24\6F\0B\79\B0\20\F4\22\00\41\C3\2A\55\CD\2A\0A\11\20\15\E1\A7\ED\52\20\FA\2A\04\40\2B\2B\2B\2B\22\02\40\EB\E9\00\00\00\00
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.


