+++ /dev/null
-/* 3DNow! interface library
- * Copyright (C) 1998 Robert Dale
- *
- * This depends on mmx.h which should have been included.
- *
- */
-
-#include "mmx.h"
-
-/* 3DNow! instructions */
-
-#define femms() \
- __asm__ __volatile__ ("femms")
-
-#define pf2id_m2r(var, reg) mmx_m2r(pf2id, var, reg)
-#define pf2id_r2r(regs, regd) mmx_r2r(pf2id, regs, regd)
-#define pf2id(vars, vard) mmx_m2m(pf2id, vars, vard)
-
-#define pfacc_m2r(var, reg) mmx_m2r(pfacc, var, reg)
-#define pfacc_r2r(regs, regd) mmx_r2r(pfacc, regs, regd)
-#define pfacc(vars, vard) mmx_m2m(pfacc, vars, vard)
-
-#define pfadd_i2r(imm, reg) mmx_i2r(pfadd, imm, reg)
-#define pfadd_m2r(var, reg) mmx_m2r(pfadd, var, reg)
-#define pfadd_r2r(regs, regd) mmx_r2r(pfadd, regs, regd)
-#define pfadd(vars, vard) mmx_m2m(pfadd, vars, vard)
-
-#define pfcmpeq_m2r(var, reg) mmx_m2r(pfcmpeq, var, reg)
-#define pfcmpeq_r2r(regs, regd) mmx_r2r(pfcmpeq, regs, regd)
-#define pfcmpeq(vars, vard) mmx_m2m(pfcmpeq, vars, vard)
-
-#define pfcmpge_m2r(var, reg) mmx_m2r(pfcmpge, var, reg)
-#define pfcmpge_r2r(regs, regd) mmx_r2r(pfcmpge, regs, regd)
-#define pfcmpge(vars, vard) mmx_m2m(pfcmpge, vars, vard)
-
-#define pfcmpgt_m2r(var, reg) mmx_m2r(pfcmpgt, var, reg)
-#define pfcmpgt_r2r(regs, regd) mmx_r2r(pfcmpgt, regs, regd)
-#define pfcmpgt(vars, vard) mmx_m2m(pfcmpgt, vars, vard)
-
-#define pfmax_m2r(var, reg) mmx_m2r(pfmax, var, reg)
-#define pfmax_r2r(regs, regd) mmx_r2r(pfmax, regs, regd)
-#define pfmax(vars, vard) mmx_m2m(pfmax, vars, vard)
-
-#define pfmin_m2r(var, reg) mmx_m2r(pfmin, var, reg)
-#define pfmin_r2r(regs, regd) mmx_r2r(pfmin, regs, regd)
-#define pfmin(vars, vard) mmx_m2m(pfmin, vars, vard)
-
-#define pfmul_i2r(imm, reg) mmx_i2r(pfmul, imm, reg)
-#define pfmul_m2r(var, reg) mmx_m2r(pfmul, var, reg)
-#define pfmul_r2r(regs, regd) mmx_r2r(pfmul, regs, regd)
-#define pfmul(vars, vard) mmx_m2m(pfmul, vars, vard)
-
-#define pfrcp_m2r(var, reg) mmx_m2r(pfrcp, var, reg)
-#define pfrcp_r2r(regs, regd) mmx_r2r(pfrcp, regs, regd)
-#define pfrcp(vars, vard) mmx_m2m(pfrcp, vars, vard)
-
-#define pfrcpit1_m2r(var, reg) mmx_m2r(pfrcpit1, var, reg)
-#define pfrcpit1_r2r(regs, regd) mmx_r2r(pfrcpit1, regs, regd)
-#define pfrcpit1(vars, vard) mmx_m2m(pfrcpit1, vars, vard)
-
-#define pfrcpit2_m2r(var, reg) mmx_m2r(pfrcpit2, var, reg)
-#define pfrcpit2_r2r(regs, regd) mmx_r2r(pfrcpit2, regs, regd)
-#define pfrcpit2(vars, vard) mmx_m2m(pfrcpit2, vars, vard)
-
-#define pfrsqrt_m2r(var, reg) mmx_m2r(pfrsqrt, var, reg)
-#define pfrsqrt_r2r(regs, regd) mmx_r2r(pfrsqrt, regs, regd)
-#define pfrsqrt(vars, vard) mmx_m2m(pfrsqrt, vars, vard)
-
-#define pfrsqit1_m2r(var, reg) mmx_m2r(pfrsqit1, var, reg)
-#define pfrsqit1_r2r(regs, regd) mmx_r2r(pfrsqit1, regs, regd)
-#define pfrsqit1(vars, vard) mmx_m2m(pfrsqit1, vars, vard)
-
-#define pfsub_m2r(var, reg) mmx_m2r(pfsub, var, reg)
-#define pfsub_r2r(regs, regd) mmx_r2r(pfsub, regs, regd)
-#define pfsub(vars, vard) mmx_m2m(pfsub, vars, vard)
-
-#define pfsubr_m2r(var, reg) mmx_m2r(pfsubr, var, reg)
-#define pfsubr_r2r(regs, regd) mmx_r2r(pfsubr, regs, regd)
-#define pfsubr(vars, vard) mmx_m2m(pfsubr, vars, vard)
-
-#define pi2fd_m2r(var, reg) mmx_m2r(pi2fd, var, reg)
-#define pi2fd_r2r(regs, regd) mmx_r2r(pi2fd, regs, regd)
-#define pi2fd(vars, vard) mmx_m2m(pi2fd, vars, vard)
-
-#define pavgusb_m2r(var, reg) mmx_m2r(pavgusb, var, reg)
-#define pavgusb_r2r(regs, regd) mmx_r2r(pavgusb, regs, regd)
-#define pavgusb(vars, vard) mmx_m2m(pavgusb, vars, vard)
-
-#define pmulhrw_m2r(var, reg) mmx_m2r(pmulhrw, var, reg)
-#define pmulhrw_r2r(regs, regd) mmx_r2r(pmulhrw, regs, regd)
-#define pmulhrw(vars, vard) mmx_m2m(pmulhrw, vars, vard)
-
-#define prefetch() __asm__ __volatile__ ("prefetch")
-
-#define prefetchw() __asm__ __volatile__ ("prefetchw")
+++ /dev/null
-LIBS=@GTK_LIBS@ -lXi -lXxf86dga -lpthread
-
-CFLAGS=@CFLAGS@ @GTK_CFLAGS@ -D_REENTRANT
-CXXFLAGS=@CFLAGS@ @GTK_CFLAGS@ -D_REENTRANT
-
-license.c: $(top_srcdir)/COPYING
- @AWK@ -f $(srcdir)/licmak.awk < $(top_srcdir)/COPYING > $(srcdir)/license.c
-
-BUILT_SOURCES = license.c
-
-bin_PROGRAMS = terminatorX
-
-terminatorX_DEPENDENCIES = license.c
-
-terminatorX_SOURCES = endian.c tX_dialog.cc tX_widget.c wav_write.c \
- tX_engine.cc tX_logo.c tX_mouse.cc tX_mouse.h \
- main.cc tX_global.c tX_wavfunc.cc wav_read.c licmak.awk \
- endian.h tX_engine.h tX_types.h tX_flash.c tX_flash.h \
- tX_global.h tX_wavfunc.h version.h tX_tape.h tX_tape.cc \
- tX_dialog.h tX_mastergui.h tX_widget.h wav_file.h \
- tX_vtt.cc tX_vtt.h tX_vttgui.h tX_vttgui.cc \
- tX_audiodevice.cc tX_audiodevice.h tX_mastergui.cc \
- Makefile.cygwin 3dnow.h mmx.h tX_smlog.c
+++ /dev/null
-# Makefile for cygwin
-
-# Location for the required includes/libs
-TXLIBS=//f/TXLIB
-
-# Inlcude path
-INCLUDES=-I/$(TXLIBS)/include -I$(TXLIBS)/include/gdk/win32
-
-# The objects
-OBJECTS=endian.o main.o turntable.o tX_dialog.o tX_engine.o \
- tX_global.o tX_gui.o tX_logo.o tX_wavfunc.o tX_widget.o \
- wav_read.o wav_write.o
-
-# The libs
-LIBS=$(TXLIBS)/lib/libgtk.a $(TXLIBS)/lib/libglib.a $(TXLIBS)/lib/libgdk.a $(TXLIBS)/lib/libpthread.a
-
-CFLAGS=-D_REENTRANT -DWIN32 -DUSE_SOX_INPUT -O2 -g $(INCLUDES)
-
-all: terminatorX.exe
-
-clean: Makefile.cygwin
- rm -f $(OBJECTS) terminatorX.exe
-
-terminatorX.exe: $(OBJECTS)
- gcc -o terminatorX.exe $(OBJECTS) $(LIBS)
+++ /dev/null
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
-
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-SHELL = @SHELL@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
-
-DESTDIR =
-
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-
-top_builddir = ..
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-transform = @program_transform_name@
-
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-AWK = @AWK@
-CC = @CC@
-CXX = @CXX@
-GLIB_CFLAGS = @GLIB_CFLAGS@
-GLIB_CONFIG = @GLIB_CONFIG@
-GLIB_LIBS = @GLIB_LIBS@
-GTK_CFLAGS = @GTK_CFLAGS@
-GTK_CONFIG = @GTK_CONFIG@
-GTK_LIBS = @GTK_LIBS@
-LN_S = @LN_S@
-MAKEINFO = @MAKEINFO@
-MPG123_PROG = @MPG123_PROG@
-PACKAGE = @PACKAGE@
-RANLIB = @RANLIB@
-SOX_PROG = @SOX_PROG@
-VERSION = @VERSION@
-X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
-X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
-x_libraries = @x_libraries@
-
-LIBS = @GTK_LIBS@ -lXi -lXxf86dga -lpthread
-
-CFLAGS = @CFLAGS@ @GTK_CFLAGS@ -D_REENTRANT
-CXXFLAGS = @CFLAGS@ @GTK_CFLAGS@ -D_REENTRANT
-
-BUILT_SOURCES = license.c
-
-bin_PROGRAMS = terminatorX
-
-terminatorX_DEPENDENCIES = license.c
-
-terminatorX_SOURCES = endian.c tX_dialog.cc tX_widget.c wav_write.c tX_engine.cc tX_logo.c tX_mouse.cc tX_mouse.h main.cc tX_global.c tX_wavfunc.cc wav_read.c licmak.awk endian.h tX_engine.h tX_types.h tX_flash.c tX_flash.h tX_global.h tX_wavfunc.h version.h tX_tape.h tX_tape.cc tX_dialog.h tX_mastergui.h tX_widget.h wav_file.h tX_vtt.cc tX_vtt.h tX_vttgui.h tX_vttgui.cc tX_audiodevice.cc tX_audiodevice.h tX_mastergui.cc Makefile.cygwin 3dnow.h mmx.h tX_smlog.c
-
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = ../config.h
-CONFIG_CLEAN_FILES =
-PROGRAMS = $(bin_PROGRAMS)
-
-
-DEFS = @DEFS@ -I. -I$(srcdir) -I..
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-terminatorX_OBJECTS = endian.o tX_dialog.o tX_widget.o wav_write.o \
-tX_engine.o tX_logo.o tX_mouse.o main.o tX_global.o tX_wavfunc.o \
-wav_read.o tX_flash.o tX_tape.o tX_vtt.o tX_vttgui.o tX_audiodevice.o \
-tX_mastergui.o tX_smlog.o
-terminatorX_LDADD = $(LDADD)
-terminatorX_LDFLAGS =
-CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-DIST_COMMON = Makefile.am Makefile.in
-
-
-DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-
-TAR = gtar
-GZIP_ENV = --best
-SOURCES = $(terminatorX_SOURCES)
-OBJECTS = $(terminatorX_OBJECTS)
-
-all: all-redirect
-.SUFFIXES:
-.SUFFIXES: .S .c .cc .o .s
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
- cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/Makefile
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-
-mostlyclean-binPROGRAMS:
-
-clean-binPROGRAMS:
- -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
-
-distclean-binPROGRAMS:
-
-maintainer-clean-binPROGRAMS:
-
-install-binPROGRAMS: $(bin_PROGRAMS)
- @$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(bindir)
- @list='$(bin_PROGRAMS)'; for p in $$list; do \
- if test -f $$p; then \
- echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
- $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
- else :; fi; \
- done
-
-uninstall-binPROGRAMS:
- @$(NORMAL_UNINSTALL)
- list='$(bin_PROGRAMS)'; for p in $$list; do \
- rm -f $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
- done
-
-.c.o:
- $(COMPILE) -c $<
-
-.s.o:
- $(COMPILE) -c $<
-
-.S.o:
- $(COMPILE) -c $<
-
-mostlyclean-compile:
- -rm -f *.o core *.core
-
-clean-compile:
-
-distclean-compile:
- -rm -f *.tab.c
-
-maintainer-clean-compile:
-
-terminatorX: $(terminatorX_OBJECTS) $(terminatorX_DEPENDENCIES)
- @rm -f terminatorX
- $(CXXLINK) $(terminatorX_LDFLAGS) $(terminatorX_OBJECTS) $(terminatorX_LDADD) $(LIBS)
-.cc.o:
- $(CXXCOMPILE) -c $<
-
-tags: TAGS
-
-ID: $(HEADERS) $(SOURCES) $(LISP)
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- here=`pwd` && cd $(srcdir) \
- && mkid -f$$here/ID $$unique $(LISP)
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP)
- tags=; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS)'; \
- unique=`for i in $$list; do echo $$i; done | \
- awk ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
- || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS)
-
-mostlyclean-tags:
-
-clean-tags:
-
-distclean-tags:
- -rm -f TAGS ID
-
-maintainer-clean-tags:
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-
-subdir = src
-
-distdir: $(DISTFILES)
- @for file in $(DISTFILES); do \
- d=$(srcdir); \
- if test -d $$d/$$file; then \
- cp -pr $$/$$file $(distdir)/$$file; \
- else \
- test -f $(distdir)/$$file \
- || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
- || cp -p $$d/$$file $(distdir)/$$file || :; \
- fi; \
- done
-endian.o: endian.c
-main.o: main.cc tX_mastergui.h endian.h ../config.h 3dnow.h mmx.h \
- tX_types.h tX_wavfunc.h tX_global.h version.h tX_dialog.h
-tX_audiodevice.o: tX_audiodevice.cc tX_audiodevice.h tX_types.h endian.h \
- ../config.h tX_global.h
-tX_dialog.o: tX_dialog.cc tX_types.h endian.h ../config.h tX_global.h \
- tX_dialog.h license.c tX_wavfunc.h tX_mastergui.h version.h
-tX_engine.o: tX_engine.cc tX_types.h endian.h ../config.h tX_engine.h \
- tX_audiodevice.h tX_global.h tX_mouse.h tX_vtt.h tX_vttgui.h \
- tX_mastergui.h tX_tape.h wav_file.h tX_widget.h
-tX_flash.o: tX_flash.c tX_flash.h tX_types.h endian.h ../config.h
-tX_global.o: tX_global.c endian.h ../config.h tX_types.h tX_global.h
-tX_logo.o: tX_logo.c
-tX_mastergui.o: tX_mastergui.cc endian.h ../config.h version.h \
- tX_global.h tX_types.h tX_engine.h tX_vttgui.h tX_vtt.h \
- tX_flash.h tX_smlog.c tX_dialog.h
-tX_mouse.o: tX_mouse.cc tX_mouse.h tX_types.h endian.h ../config.h \
- tX_mastergui.h tX_global.h tX_engine.h tX_vtt.h tX_vttgui.h
-tX_smlog.o: tX_smlog.c
-tX_tape.o: tX_tape.cc tX_tape.h wav_file.h ../config.h tX_global.h \
- tX_types.h endian.h
-tX_vtt.o: tX_vtt.cc tX_vtt.h endian.h ../config.h tX_types.h tX_vttgui.h \
- tX_global.h tX_wavfunc.h 3dnow.h mmx.h
-tX_vttgui.o: tX_vttgui.cc tX_vttgui.h tX_vtt.h endian.h ../config.h \
- tX_types.h tX_widget.h tX_wavfunc.h tX_mastergui.h tX_flash.h
-tX_wavfunc.o: tX_wavfunc.cc tX_types.h endian.h ../config.h \
- tX_mastergui.h wav_file.h tX_global.h tX_wavfunc.h
-tX_widget.o: tX_widget.c tX_widget.h tX_types.h endian.h ../config.h
-wav_read.o: wav_read.c endian.h ../config.h wav_file.h tX_global.h \
- tX_types.h
-wav_write.o: wav_write.c endian.h ../config.h wav_file.h tX_global.h \
- tX_types.h
-
-info-am:
-info: info-am
-dvi-am:
-dvi: dvi-am
-check-am: all-am
-check: check-am
-installcheck-am:
-installcheck: installcheck-am
-install-exec-am: install-binPROGRAMS
-install-exec: install-exec-am
-
-install-data-am:
-install-data: install-data-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-install: install-am
-uninstall-am: uninstall-binPROGRAMS
-uninstall: uninstall-am
-all-am: Makefile $(PROGRAMS)
-all-redirect: all-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
-installdirs:
- $(mkinstalldirs) $(DESTDIR)$(bindir)
-
-
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
- -rm -f config.cache config.log stamp-h stamp-h[0-9]*
-
-maintainer-clean-generic:
- -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-mostlyclean-am: mostlyclean-binPROGRAMS mostlyclean-compile \
- mostlyclean-tags mostlyclean-generic
-
-mostlyclean: mostlyclean-am
-
-clean-am: clean-binPROGRAMS clean-compile clean-tags clean-generic \
- mostlyclean-am
-
-clean: clean-am
-
-distclean-am: distclean-binPROGRAMS distclean-compile distclean-tags \
- distclean-generic clean-am
-
-distclean: distclean-am
-
-maintainer-clean-am: maintainer-clean-binPROGRAMS \
- maintainer-clean-compile maintainer-clean-tags \
- maintainer-clean-generic distclean-am
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
-
-maintainer-clean: maintainer-clean-am
-
-.PHONY: mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
-maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
-mostlyclean-compile distclean-compile clean-compile \
-maintainer-clean-compile tags mostlyclean-tags distclean-tags \
-clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
-check-am installcheck-am installcheck install-exec-am install-exec \
-install-data-am install-data install-am install uninstall-am uninstall \
-all-redirect all-am all installdirs mostlyclean-generic \
-distclean-generic clean-generic maintainer-clean-generic clean \
-mostlyclean distclean maintainer-clean
-
-
-license.c: $(top_srcdir)/COPYING
- @AWK@ -f $(srcdir)/licmak.awk < $(top_srcdir)/COPYING > $(srcdir)/license.c
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: endian.c
-
- Description: swap byte order for big endian systems/audiohardware.
-*/
-
-
-#if defined (BIG_ENDIAN_MACHINE) || defined(BIG_ENDIAN_AUDIO) || defined (TEST_ENDIAN)
-
-#include "tX_types.h"
-
-void swap16(int16_t * val)
-{
- int8_t temp;
- int8_t *p;
-
- p=(int8_t *) val;
- temp=*p;
- *p=*++p;
- *p=temp;
-}
-
-void swap32(int32_t * val)
-{
- /*
- This one is very inefficient but it wont be
- called from performace critical areas so
- who cares...
- */
- int8_t temp;
- int8_t *p;
-
- p=(int8_t *) val;
- temp=p[0];
- p[0]=p[3];
- p[3]=temp;
-
- temp=p[1];
- p[1]=p[2];
- p[2]=temp;
-}
-
-void swapbuffer(int16_t *buffer, int samples)
-{
- int i;
- int8_t temp;
- int8_t *p;
- int16_t *val;
-
- val=buffer;
-
- for (i=0; i<samples; i++)
- {
- p=(int8_t *) val;
- temp=*p;
- *p=*++p;
- *p=temp;
- val++;
- }
-}
-
-
-/* The following main() is just for testing */
-
-#ifdef TEST_ENDIAN
-
-#include <netinet/in.h>
-
-int main(int argc, char **argv)
-{
- int16_t t16=0x1234;
- int32_t t32=0x12345678;
-
- int16_t buffer[8]={0x1234, 0x5678, 0x9ABC, 0xDEF0, 10, 20, 30, 0};
-
- int i;
-
- printf("16: %4x\n", (int) t16);
- swap16(&t16);
- printf("16: %4x\n", (int) t16);
- swap16(&t16);
- printf("16: %4x\n", (int) t16);
- t16=htons(t16);
- printf("16: %4x\n", (int) t16);
- t16=htons(t16);
- printf("16: %4x\n", (int) t16);
-
- printf("32: %8x\n", (int) t32);
- swap32(&t32);
- printf("32: %8x\n", (int) t32);
- swap32(&t32);
- printf("32: %8x\n", (int) t32);
- t32=htonl(t32);
- printf("32: %8x\n", (int) t32);
- t32=htonl(t32);
- printf("32: %8x\n", (int) t32);
-
- printf("buf: ");
- for (i=0; i<8; i++) printf("%4hx ", buffer[i]);
- swapbuffer(buffer, 8);
- printf("\nbuf: ");
- for (i=0; i<8; i++) printf("%4hx ", buffer[i]);
- swapbuffer(buffer, 8);
- printf("\nbuf: ");
- for (i=0; i<8; i++) printf("%4hx ", buffer[i]);
-
- puts("\nDone.\n");
-}
-#endif
-
-#endif
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: endian.h
-
- Description: header to endian.c
-
- 27 apr 1999: include config.h to automatically recognize
- big endian machines via configure.
-*/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#ifdef WORDS_BIGENDIAN
-#define BIG_ENDIAN_MACHINE 1
-#else
-#undef BIG_ENDIAN_MACHINE
-#endif
-#endif
-
-#if defined (BIG_ENDIAN_MACHINE) || defined(BIG_ENDIAN_AUDIO)
-
-#include "tX_types.h"
-
-extern void swap16(int16_t * val);
-extern void swap32(int32_t * val);
-extern void swapbuffer(int16_t *buffer, int samples);
-
-#endif
+++ /dev/null
-BEGIN { printf "char license[]=\"\\\n" }
-{ gsub(/\"/,"\\\"") ; printf $0"\\n\\\n" }
-END { printf "\";\n" }
\ No newline at end of file
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander K÷nig
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: main.c
-
- Description: This contains the main() function. All the initializing
- happens here.
-
- Changes:
-
- 19 Mar 1999: Applied a patch by Andrew C. Bul+hac?k (eMail: acb@zikzak.net)
- that fixes wavfile reading routine for the overreading bug.
-
- 20 Mar 1999: Big endian support.
-
- 23 Mar 1999: display of new keys (<-, ->)
-
- 4 October 1999: Rewrite ;) - back to C++
-*/
-
-#include <stdio.h>
-#include "tX_mastergui.h"
-#include <malloc.h>
-#include <math.h>
-#include <stdio.h>
-#ifndef WIN32
-#include <unistd.h>
-#endif
-
-#ifdef USE_3DNOW
-#include "3dnow.h"
-#endif
-
-#include "endian.h"
-#include "tX_types.h"
-#include "tX_wavfunc.h"
-#include "tX_global.h"
-#include "version.h"
-#include "tX_dialog.h"
-#include <gtk/gtk.h>
-#include <glib.h>
-
-GTimer *my_time;
-gint idle_tag;
-/* main(): */
-
-void idle()
-{
- gdouble time;
- gulong ms;
-
- time=g_timer_elapsed(my_time, &ms);
- if (time > 1.5)
- {
- gtk_idle_remove(idle_tag);
- destroy_about();
- display_mastergui();
- }
-}
-
-int main(int argc, char **argv)
-{
-#ifndef WIN32
- fprintf(stderr, "%s, Copyright(C)1999 Alexander König, alkoit00@fht-esslingen.de\n", VERSIONSTRING);
-#else
- fprintf(stderr, "%s, Copyright(C)1999 Alexander König, alkoit00@fht-esslingen.de\n", VERSIONSTRING);
- setenv ("CYGWIN", "binmode");
-#endif
- fprintf(stderr, "terminatorX comes with ABSOLUTELY NO WARRANTY - for details read the license.\n");
-
-#ifdef USE_3DNOW
- if (mm_support()!=5)
- {
- printf("3DNow! not detected. Giving up.\n");
- return(1);
- }
- else
- printf("3DNow! accelerations available.\n");
-#endif
-
-#ifndef CREATE_BENCHMARK
-
- gtk_init (&argc, &argv);
-
- load_globals();
-
- if (globals.show_nag)
- {
- show_about(1);
-
- my_time=g_timer_new();
- g_timer_start(my_time);
-
- idle_tag=gtk_idle_add((GtkFunction)idle, NULL);
- }
- /*
- if (strlen(globals.scratch_name))
- {
- fprintf (stderr, "Loading: %s\n", globals.scratch_name);
- if (load_wav(globals.scratch_name, &globals.scratch_data, &globals.scratch_size))
- {
- strcpy(globals.scratch_name , "");
- globals.scratch_size=0;
- globals.scratch_len=0;
- }
- {
- globals.scratch_len=globals.scratch_size/sizeof(int16_t);
- }
- }
-
- if (strlen(globals.loop_name))
- {
- fprintf (stderr, "Loading: %s\n", globals.loop_name);
- if (load_wav(globals.loop_name, &globals.loop_data, &globals.loop_size))
- {
- strcpy(globals.loop_name , "");
- globals.loop_size=0;
- globals.loop_len=0;
- globals.do_mix=0;
- }
- {
- globals.loop_len=globals.loop_size/sizeof(int16_t);
- }
- }
- else
- {
- globals.do_mix=0;
- } */
-
- globals.rec_buffer=0;
-
- create_mastergui(globals.width, globals.height);
-
- if (!globals.show_nag) display_mastergui();
-
- gtk_main();
-
- if (globals.scratch_data) free(globals.scratch_data);
- if (globals.loop_data) free(globals.loop_data);
- if (globals.rec_buffer) free(globals.rec_buffer);
-
- store_globals();
-
- fprintf(stderr, "Have a nice life.\n");
-
- return (0);
-#else
-#endif
- return (0);
-}
+++ /dev/null
-/* mmx.h
-
- MultiMedia eXtensions GCC interface library for IA32.
-
- To use this library, simply include this header file
- and compile with GCC. You MUST have inlining enabled
- in order for mmx_ok() to work; this can be done by
- simply using -O on the GCC command line.
-
- Compiling with -DMMX_TRACE will cause detailed trace
- output to be sent to stderr for each mmx operation.
- This adds lots of code, and obviously slows execution to
- a crawl, but can be very useful for debugging.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY
- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
- LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR ANY PARTICULAR PURPOSE.
-
- 1997-99 by H. Dietz and R. Fisher
-
- Notes:
- It appears that the latest gas has the pand problem fixed, therefore
- I'll undefine BROKEN_PAND by default.
-*/
-
-#ifndef _MMX_H
-#define _MMX_H
-
-
-/* Warning: at this writing, the version of GAS packaged
- with most Linux distributions does not handle the
- parallel AND operation mnemonic correctly. If the
- symbol BROKEN_PAND is defined, a slower alternative
- coding will be used. If execution of mmxtest results
- in an illegal instruction fault, define this symbol.
-*/
-#undef BROKEN_PAND
-
-
-/* The type of an value that fits in an MMX register
- (note that long long constant values MUST be suffixed
- by LL and unsigned long long values by ULL, lest
- they be truncated by the compiler)
-*/
-typedef union {
- long long q; /* Quadword (64-bit) value */
- unsigned long long uq; /* Unsigned Quadword */
- int d[2]; /* 2 Doubleword (32-bit) values */
- unsigned int ud[2]; /* 2 Unsigned Doubleword */
- short w[4]; /* 4 Word (16-bit) values */
- unsigned short uw[4]; /* 4 Unsigned Word */
- char b[8]; /* 8 Byte (8-bit) values */
- unsigned char ub[8]; /* 8 Unsigned Byte */
- float s[2]; /* Single-precision (32-bit) value */
-} __attribute__ ((aligned (8))) mmx_t; /* On an 8-byte (64-bit) boundary */
-
-
-
-/* Function to test if multimedia instructions are supported...
-*/
-#ifdef NEED_EXTERN
-inline int extern
-#else
-inline int
-#endif
-mm_support(void)
-{
- /* Returns 1 if MMX instructions are supported,
- 3 if Cyrix MMX and Extended MMX instructions are supported
- 5 if AMD MMX and 3DNow! instructions are supported
- 0 if hardware does not support any of these
- */
- register int rval = 0;
-
- __asm__ __volatile__ (
- /* See if CPUID instruction is supported ... */
- /* ... Get copies of EFLAGS into eax and ecx */
- "pushf\n\t"
- "popl %%eax\n\t"
- "movl %%eax, %%ecx\n\t"
-
- /* ... Toggle the ID bit in one copy and store */
- /* to the EFLAGS reg */
- "xorl $0x200000, %%eax\n\t"
- "push %%eax\n\t"
- "popf\n\t"
-
- /* ... Get the (hopefully modified) EFLAGS */
- "pushf\n\t"
- "popl %%eax\n\t"
-
- /* ... Compare and test result */
- "xorl %%eax, %%ecx\n\t"
- "testl $0x200000, %%ecx\n\t"
- "jz NotSupported1\n\t" /* CPUID not supported */
-
-
- /* Get standard CPUID information, and
- go to a specific vendor section */
- "movl $0, %%eax\n\t"
- "cpuid\n\t"
-
- /* Check for Intel */
- "cmpl $0x756e6547, %%ebx\n\t"
- "jne TryAMD\n\t"
- "cmpl $0x49656e69, %%edx\n\t"
- "jne TryAMD\n\t"
- "cmpl $0x6c65746e, %%ecx\n"
- "jne TryAMD\n\t"
- "jmp Intel\n\t"
-
- /* Check for AMD */
- "\nTryAMD:\n\t"
- "cmpl $0x68747541, %%ebx\n\t"
- "jne TryCyrix\n\t"
- "cmpl $0x69746e65, %%edx\n\t"
- "jne TryCyrix\n\t"
- "cmpl $0x444d4163, %%ecx\n"
- "jne TryCyrix\n\t"
- "jmp AMD\n\t"
-
- /* Check for Cyrix */
- "\nTryCyrix:\n\t"
- "cmpl $0x69727943, %%ebx\n\t"
- "jne NotSupported2\n\t"
- "cmpl $0x736e4978, %%edx\n\t"
- "jne NotSupported3\n\t"
- "cmpl $0x64616574, %%ecx\n\t"
- "jne NotSupported4\n\t"
- /* Drop through to Cyrix... */
-
-
- /* Cyrix Section */
- /* See if extended CPUID level 80000001 is supported */
- /* The value of CPUID/80000001 for the 6x86MX is undefined
- according to the Cyrix CPU Detection Guide (Preliminary
- Rev. 1.01 table 1), so we'll check the value of eax for
- CPUID/0 to see if standard CPUID level 2 is supported.
- According to the table, the only CPU which supports level
- 2 is also the only one which supports extended CPUID levels.
- */
- "cmpl $0x2, %%eax\n\t"
- "jne MMXtest\n\t" /* Use standard CPUID instead */
-
- /* Extended CPUID supported (in theory), so get extended
- features */
- "movl $0x80000001, %%eax\n\t"
- "cpuid\n\t"
- "testl $0x00800000, %%eax\n\t" /* Test for MMX */
- "jz NotSupported5\n\t" /* MMX not supported */
- "testl $0x01000000, %%eax\n\t" /* Test for Ext'd MMX */
- "jnz EMMXSupported\n\t"
- "movl $1, %0:\n\n\t" /* MMX Supported */
- "jmp Return\n\n"
- "EMMXSupported:\n\t"
- "movl $3, %0:\n\n\t" /* EMMX and MMX Supported */
- "jmp Return\n\t"
-
-
- /* AMD Section */
- "AMD:\n\t"
-
- /* See if extended CPUID is supported */
- "movl $0x80000000, %%eax\n\t"
- "cpuid\n\t"
- "cmpl $0x80000000, %%eax\n\t"
- "jl MMXtest\n\t" /* Use standard CPUID instead */
-
- /* Extended CPUID supported, so get extended features */
- "movl $0x80000001, %%eax\n\t"
- "cpuid\n\t"
- "testl $0x00800000, %%edx\n\t" /* Test for MMX */
- "jz NotSupported6\n\t" /* MMX not supported */
- "testl $0x80000000, %%edx\n\t" /* Test for 3DNow! */
- "jnz ThreeDNowSupported\n\t"
- "movl $1, %0:\n\n\t" /* MMX Supported */
- "jmp Return\n\n"
- "ThreeDNowSupported:\n\t"
- "movl $5, %0:\n\n\t" /* 3DNow! and MMX Supported */
- "jmp Return\n\t"
-
-
- /* Intel Section */
- "Intel:\n\t"
-
- /* Check for MMX */
- "MMXtest:\n\t"
- "movl $1, %%eax\n\t"
- "cpuid\n\t"
- "testl $0x00800000, %%edx\n\t" /* Test for MMX */
- "jz NotSupported7\n\t" /* MMX Not supported */
- "movl $1, %0:\n\n\t" /* MMX Supported */
- "jmp Return\n\t"
-
- /* Nothing supported */
- "\nNotSupported1:\n\t"
- "#movl $101, %0:\n\n\t"
- "\nNotSupported2:\n\t"
- "#movl $102, %0:\n\n\t"
- "\nNotSupported3:\n\t"
- "#movl $103, %0:\n\n\t"
- "\nNotSupported4:\n\t"
- "#movl $104, %0:\n\n\t"
- "\nNotSupported5:\n\t"
- "#movl $105, %0:\n\n\t"
- "\nNotSupported6:\n\t"
- "#movl $106, %0:\n\n\t"
- "\nNotSupported7:\n\t"
- "#movl $107, %0:\n\n\t"
- "movl $0, %0:\n\n\t"
-
- "Return:\n\t"
- : "=a" (rval)
- : /* no input */
- : "eax", "ebx", "ecx", "edx"
- );
-
- /* Return */
- return(rval);
-}
-
-/* Function to test if mmx instructions are supported...
-*/
-inline extern int
-mmx_ok(void)
-{
- /* Returns 1 if MMX instructions are supported, 0 otherwise */
- return ( mm_support() & 0x1 );
-}
-
-
-/* Helper functions for the instruction macros that follow...
- (note that memory-to-register, m2r, instructions are nearly
- as efficient as register-to-register, r2r, instructions;
- however, memory-to-memory instructions are really simulated
- as a convenience, and are only 1/3 as efficient)
-*/
-#ifdef MMX_TRACE
-
-/* Include the stuff for printing a trace to stderr...
-*/
-
-#include <stdio.h>
-
-#define mmx_i2r(op, imm, reg) \
- { \
- mmx_t mmx_trace; \
- mmx_trace.uq = (imm); \
- fprintf(stderr, #op "_i2r(" #imm "=0x%08x%08x, ", \
- mmx_trace.d[1], mmx_trace.d[0]); \
- __asm__ __volatile__ ("movq %%" #reg ", %0" \
- : "=X" (mmx_trace) \
- : /* nothing */ ); \
- fprintf(stderr, #reg "=0x%08x%08x) => ", \
- mmx_trace.d[1], mmx_trace.d[0]); \
- __asm__ __volatile__ (#op " %0, %%" #reg \
- : /* nothing */ \
- : "X" (imm)); \
- __asm__ __volatile__ ("movq %%" #reg ", %0" \
- : "=X" (mmx_trace) \
- : /* nothing */ ); \
- fprintf(stderr, #reg "=0x%08x%08x\n", \
- mmx_trace.d[1], mmx_trace.d[0]); \
- }
-
-#define mmx_m2r(op, mem, reg) \
- { \
- mmx_t mmx_trace; \
- mmx_trace = (mem); \
- fprintf(stderr, #op "_m2r(" #mem "=0x%08x%08x, ", \
- mmx_trace.d[1], mmx_trace.d[0]); \
- __asm__ __volatile__ ("movq %%" #reg ", %0" \
- : "=X" (mmx_trace) \
- : /* nothing */ ); \
- fprintf(stderr, #reg "=0x%08x%08x) => ", \
- mmx_trace.d[1], mmx_trace.d[0]); \
- __asm__ __volatile__ (#op " %0, %%" #reg \
- : /* nothing */ \
- : "X" (mem)); \
- __asm__ __volatile__ ("movq %%" #reg ", %0" \
- : "=X" (mmx_trace) \
- : /* nothing */ ); \
- fprintf(stderr, #reg "=0x%08x%08x\n", \
- mmx_trace.d[1], mmx_trace.d[0]); \
- }
-
-#define mmx_r2m(op, reg, mem) \
- { \
- mmx_t mmx_trace; \
- __asm__ __volatile__ ("movq %%" #reg ", %0" \
- : "=X" (mmx_trace) \
- : /* nothing */ ); \
- fprintf(stderr, #op "_r2m(" #reg "=0x%08x%08x, ", \
- mmx_trace.d[1], mmx_trace.d[0]); \
- mmx_trace = (mem); \
- fprintf(stderr, #mem "=0x%08x%08x) => ", \
- mmx_trace.d[1], mmx_trace.d[0]); \
- __asm__ __volatile__ (#op " %%" #reg ", %0" \
- : "=X" (mem) \
- : /* nothing */ ); \
- mmx_trace = (mem); \
- fprintf(stderr, #mem "=0x%08x%08x\n", \
- mmx_trace.d[1], mmx_trace.d[0]); \
- }
-
-#define mmx_r2r(op, regs, regd) \
- { \
- mmx_t mmx_trace; \
- __asm__ __volatile__ ("movq %%" #regs ", %0" \
- : "=X" (mmx_trace) \
- : /* nothing */ ); \
- fprintf(stderr, #op "_r2r(" #regs "=0x%08x%08x, ", \
- mmx_trace.d[1], mmx_trace.d[0]); \
- __asm__ __volatile__ ("movq %%" #regd ", %0" \
- : "=X" (mmx_trace) \
- : /* nothing */ ); \
- fprintf(stderr, #regd "=0x%08x%08x) => ", \
- mmx_trace.d[1], mmx_trace.d[0]); \
- __asm__ __volatile__ (#op " %" #regs ", %" #regd); \
- __asm__ __volatile__ ("movq %%" #regd ", %0" \
- : "=X" (mmx_trace) \
- : /* nothing */ ); \
- fprintf(stderr, #regd "=0x%08x%08x\n", \
- mmx_trace.d[1], mmx_trace.d[0]); \
- }
-
-#define mmx_m2m(op, mems, memd) \
- { \
- mmx_t mmx_trace; \
- mmx_trace = (mems); \
- fprintf(stderr, #op "_m2m(" #mems "=0x%08x%08x, ", \
- mmx_trace.d[1], mmx_trace.d[0]); \
- mmx_trace = (memd); \
- fprintf(stderr, #memd "=0x%08x%08x) => ", \
- mmx_trace.d[1], mmx_trace.d[0]); \
- __asm__ __volatile__ ("movq %0, %%mm0\n\t" \
- #op " %1, %%mm0\n\t" \
- "movq %%mm0, %0" \
- : "=X" (memd) \
- : "X" (mems)); \
- mmx_trace = (memd); \
- fprintf(stderr, #memd "=0x%08x%08x\n", \
- mmx_trace.d[1], mmx_trace.d[0]); \
- }
-
-#else
-
-/* These macros are a lot simpler without the tracing...
-*/
-
-#define mmx_i2r(op, imm, reg) \
- __asm__ __volatile__ (#op " %0, %%" #reg \
- : /* nothing */ \
- : "X" (imm) )
-
-#define mmx_m2r(op, mem, reg) \
- __asm__ __volatile__ (#op " %0, %%" #reg \
- : /* nothing */ \
- : "X" (mem))
-
-#define mmx_r2m(op, reg, mem) \
- __asm__ __volatile__ (#op " %%" #reg ", %0" \
- : "=X" (mem) \
- : /* nothing */ )
-
-#define mmx_r2r(op, regs, regd) \
- __asm__ __volatile__ (#op " %" #regs ", %" #regd)
-
-#define mmx_m2m(op, mems, memd) \
- __asm__ __volatile__ ("movq %0, %%mm0\n\t" \
- #op " %1, %%mm0\n\t" \
- "movq %%mm0, %0" \
- : "=X" (memd) \
- : "X" (mems))
-
-#endif
-
-
-/* 1x64 MOVe Quadword
- (this is both a load and a store...
- in fact, it is the only way to store)
-*/
-#define movq_m2r(var, reg) mmx_m2r(movq, var, reg)
-#define movq_r2m(reg, var) mmx_r2m(movq, reg, var)
-#define movq_r2r(regs, regd) mmx_r2r(movq, regs, regd)
-#define movq(vars, vard) \
- __asm__ __volatile__ ("movq %1, %%mm0\n\t" \
- "movq %%mm0, %0" \
- : "=X" (vard) \
- : "X" (vars))
-
-
-/* 1x32 MOVe Doubleword
- (like movq, this is both load and store...
- but is most useful for moving things between
- mmx registers and ordinary registers)
-*/
-#define movd_m2r(var, reg) mmx_m2r(movd, var, reg)
-#define movd_r2m(reg, var) mmx_r2m(movd, reg, var)
-#define movd_r2r(regs, regd) mmx_r2r(movd, regs, regd)
-#define movd(vars, vard) \
- __asm__ __volatile__ ("movd %1, %%mm0\n\t" \
- "movd %%mm0, %0" \
- : "=X" (vard) \
- : "X" (vars))
-
-
-/* 2x32, 4x16, and 8x8 Parallel ADDs
-*/
-#define paddd_m2r(var, reg) mmx_m2r(paddd, var, reg)
-#define paddd_r2r(regs, regd) mmx_r2r(paddd, regs, regd)
-#define paddd(vars, vard) mmx_m2m(paddd, vars, vard)
-
-#define paddw_m2r(var, reg) mmx_m2r(paddw, var, reg)
-#define paddw_r2r(regs, regd) mmx_r2r(paddw, regs, regd)
-#define paddw(vars, vard) mmx_m2m(paddw, vars, vard)
-
-#define paddb_m2r(var, reg) mmx_m2r(paddb, var, reg)
-#define paddb_r2r(regs, regd) mmx_r2r(paddb, regs, regd)
-#define paddb(vars, vard) mmx_m2m(paddb, vars, vard)
-
-
-/* 4x16 and 8x8 Parallel ADDs using Saturation arithmetic
-*/
-#define paddsw_m2r(var, reg) mmx_m2r(paddsw, var, reg)
-#define paddsw_r2r(regs, regd) mmx_r2r(paddsw, regs, regd)
-#define paddsw(vars, vard) mmx_m2m(paddsw, vars, vard)
-
-#define paddsb_m2r(var, reg) mmx_m2r(paddsb, var, reg)
-#define paddsb_r2r(regs, regd) mmx_r2r(paddsb, regs, regd)
-#define paddsb(vars, vard) mmx_m2m(paddsb, vars, vard)
-
-
-/* 4x16 and 8x8 Parallel ADDs using Unsigned Saturation arithmetic
-*/
-#define paddusw_m2r(var, reg) mmx_m2r(paddusw, var, reg)
-#define paddusw_r2r(regs, regd) mmx_r2r(paddusw, regs, regd)
-#define paddusw(vars, vard) mmx_m2m(paddusw, vars, vard)
-
-#define paddusb_m2r(var, reg) mmx_m2r(paddusb, var, reg)
-#define paddusb_r2r(regs, regd) mmx_r2r(paddusb, regs, regd)
-#define paddusb(vars, vard) mmx_m2m(paddusb, vars, vard)
-
-
-/* 2x32, 4x16, and 8x8 Parallel SUBs
-*/
-#define psubd_m2r(var, reg) mmx_m2r(psubd, var, reg)
-#define psubd_r2r(regs, regd) mmx_r2r(psubd, regs, regd)
-#define psubd(vars, vard) mmx_m2m(psubd, vars, vard)
-
-#define psubw_m2r(var, reg) mmx_m2r(psubw, var, reg)
-#define psubw_r2r(regs, regd) mmx_r2r(psubw, regs, regd)
-#define psubw(vars, vard) mmx_m2m(psubw, vars, vard)
-
-#define psubb_m2r(var, reg) mmx_m2r(psubb, var, reg)
-#define psubb_r2r(regs, regd) mmx_r2r(psubb, regs, regd)
-#define psubb(vars, vard) mmx_m2m(psubb, vars, vard)
-
-
-/* 4x16 and 8x8 Parallel SUBs using Saturation arithmetic
-*/
-#define psubsw_m2r(var, reg) mmx_m2r(psubsw, var, reg)
-#define psubsw_r2r(regs, regd) mmx_r2r(psubsw, regs, regd)
-#define psubsw(vars, vard) mmx_m2m(psubsw, vars, vard)
-
-#define psubsb_m2r(var, reg) mmx_m2r(psubsb, var, reg)
-#define psubsb_r2r(regs, regd) mmx_r2r(psubsb, regs, regd)
-#define psubsb(vars, vard) mmx_m2m(psubsb, vars, vard)
-
-
-/* 4x16 and 8x8 Parallel SUBs using Unsigned Saturation arithmetic
-*/
-#define psubusw_m2r(var, reg) mmx_m2r(psubusw, var, reg)
-#define psubusw_r2r(regs, regd) mmx_r2r(psubusw, regs, regd)
-#define psubusw(vars, vard) mmx_m2m(psubusw, vars, vard)
-
-#define psubusb_m2r(var, reg) mmx_m2r(psubusb, var, reg)
-#define psubusb_r2r(regs, regd) mmx_r2r(psubusb, regs, regd)
-#define psubusb(vars, vard) mmx_m2m(psubusb, vars, vard)
-
-
-/* 4x16 Parallel MULs giving Low 4x16 portions of results
-*/
-#define pmullw_m2r(var, reg) mmx_m2r(pmullw, var, reg)
-#define pmullw_r2r(regs, regd) mmx_r2r(pmullw, regs, regd)
-#define pmullw(vars, vard) mmx_m2m(pmullw, vars, vard)
-
-
-/* 4x16 Parallel MULs giving High 4x16 portions of results
-*/
-#define pmulhw_m2r(var, reg) mmx_m2r(pmulhw, var, reg)
-#define pmulhw_r2r(regs, regd) mmx_r2r(pmulhw, regs, regd)
-#define pmulhw(vars, vard) mmx_m2m(pmulhw, vars, vard)
-
-
-/* 4x16->2x32 Parallel Mul-ADD
- (muls like pmullw, then adds adjacent 16-bit fields
- in the multiply result to make the final 2x32 result)
-*/
-#define pmaddwd_m2r(var, reg) mmx_m2r(pmaddwd, var, reg)
-#define pmaddwd_r2r(regs, regd) mmx_r2r(pmaddwd, regs, regd)
-#define pmaddwd(vars, vard) mmx_m2m(pmaddwd, vars, vard)
-
-
-/* 1x64 bitwise AND
-*/
-#ifdef BROKEN_PAND
-#define pand_m2r(var, reg) \
- { \
- mmx_m2r(pandn, (mmx_t) -1LL, reg); \
- mmx_m2r(pandn, var, reg); \
- }
-#define pand_r2r(regs, regd) \
- { \
- mmx_m2r(pandn, (mmx_t) -1LL, regd); \
- mmx_r2r(pandn, regs, regd) \
- }
-#define pand(vars, vard) \
- { \
- movq_m2r(vard, mm0); \
- mmx_m2r(pandn, (mmx_t) -1LL, mm0); \
- mmx_m2r(pandn, vars, mm0); \
- movq_r2m(mm0, vard); \
- }
-#else
-#define pand_m2r(var, reg) mmx_m2r(pand, var, reg)
-#define pand_r2r(regs, regd) mmx_r2r(pand, regs, regd)
-#define pand(vars, vard) mmx_m2m(pand, vars, vard)
-#endif
-
-
-/* 1x64 bitwise AND with Not the destination
-*/
-#define pandn_m2r(var, reg) mmx_m2r(pandn, var, reg)
-#define pandn_r2r(regs, regd) mmx_r2r(pandn, regs, regd)
-#define pandn(vars, vard) mmx_m2m(pandn, vars, vard)
-
-
-/* 1x64 bitwise OR
-*/
-#define por_m2r(var, reg) mmx_m2r(por, var, reg)
-#define por_r2r(regs, regd) mmx_r2r(por, regs, regd)
-#define por(vars, vard) mmx_m2m(por, vars, vard)
-
-
-/* 1x64 bitwise eXclusive OR
-*/
-#define pxor_m2r(var, reg) mmx_m2r(pxor, var, reg)
-#define pxor_r2r(regs, regd) mmx_r2r(pxor, regs, regd)
-#define pxor(vars, vard) mmx_m2m(pxor, vars, vard)
-
-
-/* 2x32, 4x16, and 8x8 Parallel CoMPare for EQuality
- (resulting fields are either 0 or -1)
-*/
-#define pcmpeqd_m2r(var, reg) mmx_m2r(pcmpeqd, var, reg)
-#define pcmpeqd_r2r(regs, regd) mmx_r2r(pcmpeqd, regs, regd)
-#define pcmpeqd(vars, vard) mmx_m2m(pcmpeqd, vars, vard)
-
-#define pcmpeqw_m2r(var, reg) mmx_m2r(pcmpeqw, var, reg)
-#define pcmpeqw_r2r(regs, regd) mmx_r2r(pcmpeqw, regs, regd)
-#define pcmpeqw(vars, vard) mmx_m2m(pcmpeqw, vars, vard)
-
-#define pcmpeqb_m2r(var, reg) mmx_m2r(pcmpeqb, var, reg)
-#define pcmpeqb_r2r(regs, regd) mmx_r2r(pcmpeqb, regs, regd)
-#define pcmpeqb(vars, vard) mmx_m2m(pcmpeqb, vars, vard)
-
-
-/* 2x32, 4x16, and 8x8 Parallel CoMPare for Greater Than
- (resulting fields are either 0 or -1)
-*/
-#define pcmpgtd_m2r(var, reg) mmx_m2r(pcmpgtd, var, reg)
-#define pcmpgtd_r2r(regs, regd) mmx_r2r(pcmpgtd, regs, regd)
-#define pcmpgtd(vars, vard) mmx_m2m(pcmpgtd, vars, vard)
-
-#define pcmpgtw_m2r(var, reg) mmx_m2r(pcmpgtw, var, reg)
-#define pcmpgtw_r2r(regs, regd) mmx_r2r(pcmpgtw, regs, regd)
-#define pcmpgtw(vars, vard) mmx_m2m(pcmpgtw, vars, vard)
-
-#define pcmpgtb_m2r(var, reg) mmx_m2r(pcmpgtb, var, reg)
-#define pcmpgtb_r2r(regs, regd) mmx_r2r(pcmpgtb, regs, regd)
-#define pcmpgtb(vars, vard) mmx_m2m(pcmpgtb, vars, vard)
-
-
-/* 1x64, 2x32, and 4x16 Parallel Shift Left Logical
-*/
-#define psllq_i2r(imm, reg) mmx_i2r(psllq, imm, reg)
-#define psllq_m2r(var, reg) mmx_m2r(psllq, var, reg)
-#define psllq_r2r(regs, regd) mmx_r2r(psllq, regs, regd)
-#define psllq(vars, vard) mmx_m2m(psllq, vars, vard)
-
-#define pslld_i2r(imm, reg) mmx_i2r(pslld, imm, reg)
-#define pslld_m2r(var, reg) mmx_m2r(pslld, var, reg)
-#define pslld_r2r(regs, regd) mmx_r2r(pslld, regs, regd)
-#define pslld(vars, vard) mmx_m2m(pslld, vars, vard)
-
-#define psllw_i2r(imm, reg) mmx_i2r(psllw, imm, reg)
-#define psllw_m2r(var, reg) mmx_m2r(psllw, var, reg)
-#define psllw_r2r(regs, regd) mmx_r2r(psllw, regs, regd)
-#define psllw(vars, vard) mmx_m2m(psllw, vars, vard)
-
-
-/* 1x64, 2x32, and 4x16 Parallel Shift Right Logical
-*/
-#define psrlq_i2r(imm, reg) mmx_i2r(psrlq, imm, reg)
-#define psrlq_m2r(var, reg) mmx_m2r(psrlq, var, reg)
-#define psrlq_r2r(regs, regd) mmx_r2r(psrlq, regs, regd)
-#define psrlq(vars, vard) mmx_m2m(psrlq, vars, vard)
-
-#define psrld_i2r(imm, reg) mmx_i2r(psrld, imm, reg)
-#define psrld_m2r(var, reg) mmx_m2r(psrld, var, reg)
-#define psrld_r2r(regs, regd) mmx_r2r(psrld, regs, regd)
-#define psrld(vars, vard) mmx_m2m(psrld, vars, vard)
-
-#define psrlw_i2r(imm, reg) mmx_i2r(psrlw, imm, reg)
-#define psrlw_m2r(var, reg) mmx_m2r(psrlw, var, reg)
-#define psrlw_r2r(regs, regd) mmx_r2r(psrlw, regs, regd)
-#define psrlw(vars, vard) mmx_m2m(psrlw, vars, vard)
-
-
-/* 2x32 and 4x16 Parallel Shift Right Arithmetic
-*/
-#define psrad_i2r(imm, reg) mmx_i2r(psrad, imm, reg)
-#define psrad_m2r(var, reg) mmx_m2r(psrad, var, reg)
-#define psrad_r2r(regs, regd) mmx_r2r(psrad, regs, regd)
-#define psrad(vars, vard) mmx_m2m(psrad, vars, vard)
-
-#define psraw_i2r(imm, reg) mmx_i2r(psraw, imm, reg)
-#define psraw_m2r(var, reg) mmx_m2r(psraw, var, reg)
-#define psraw_r2r(regs, regd) mmx_r2r(psraw, regs, regd)
-#define psraw(vars, vard) mmx_m2m(psraw, vars, vard)
-
-
-/* 2x32->4x16 and 4x16->8x8 PACK and Signed Saturate
- (packs source and dest fields into dest in that order)
-*/
-#define packssdw_m2r(var, reg) mmx_m2r(packssdw, var, reg)
-#define packssdw_r2r(regs, regd) mmx_r2r(packssdw, regs, regd)
-#define packssdw(vars, vard) mmx_m2m(packssdw, vars, vard)
-
-#define packsswb_m2r(var, reg) mmx_m2r(packsswb, var, reg)
-#define packsswb_r2r(regs, regd) mmx_r2r(packsswb, regs, regd)
-#define packsswb(vars, vard) mmx_m2m(packsswb, vars, vard)
-
-
-/* 4x16->8x8 PACK and Unsigned Saturate
- (packs source and dest fields into dest in that order)
-*/
-#define packuswb_m2r(var, reg) mmx_m2r(packuswb, var, reg)
-#define packuswb_r2r(regs, regd) mmx_r2r(packuswb, regs, regd)
-#define packuswb(vars, vard) mmx_m2m(packuswb, vars, vard)
-
-
-/* 2x32->1x64, 4x16->2x32, and 8x8->4x16 UNPaCK Low
- (interleaves low half of dest with low half of source
- as padding in each result field)
-*/
-#define punpckldq_m2r(var, reg) mmx_m2r(punpckldq, var, reg)
-#define punpckldq_r2r(regs, regd) mmx_r2r(punpckldq, regs, regd)
-#define punpckldq(vars, vard) mmx_m2m(punpckldq, vars, vard)
-
-#define punpcklwd_m2r(var, reg) mmx_m2r(punpcklwd, var, reg)
-#define punpcklwd_r2r(regs, regd) mmx_r2r(punpcklwd, regs, regd)
-#define punpcklwd(vars, vard) mmx_m2m(punpcklwd, vars, vard)
-
-#define punpcklbw_m2r(var, reg) mmx_m2r(punpcklbw, var, reg)
-#define punpcklbw_r2r(regs, regd) mmx_r2r(punpcklbw, regs, regd)
-#define punpcklbw(vars, vard) mmx_m2m(punpcklbw, vars, vard)
-
-
-/* 2x32->1x64, 4x16->2x32, and 8x8->4x16 UNPaCK High
- (interleaves high half of dest with high half of source
- as padding in each result field)
-*/
-#define punpckhdq_m2r(var, reg) mmx_m2r(punpckhdq, var, reg)
-#define punpckhdq_r2r(regs, regd) mmx_r2r(punpckhdq, regs, regd)
-#define punpckhdq(vars, vard) mmx_m2m(punpckhdq, vars, vard)
-
-#define punpckhwd_m2r(var, reg) mmx_m2r(punpckhwd, var, reg)
-#define punpckhwd_r2r(regs, regd) mmx_r2r(punpckhwd, regs, regd)
-#define punpckhwd(vars, vard) mmx_m2m(punpckhwd, vars, vard)
-
-#define punpckhbw_m2r(var, reg) mmx_m2r(punpckhbw, var, reg)
-#define punpckhbw_r2r(regs, regd) mmx_r2r(punpckhbw, regs, regd)
-#define punpckhbw(vars, vard) mmx_m2m(punpckhbw, vars, vard)
-
-
-/* Empty MMx State
- (used to clean-up when going from mmx to float use
- of the registers that are shared by both; note that
- there is no float-to-mmx operation needed, because
- only the float tag word info is corruptible)
-*/
-#ifdef MMX_TRACE
-
-#define emms() \
- { \
- fprintf(stderr, "emms()\n"); \
- __asm__ __volatile__ ("emms"); \
- }
-
-#else
-
-#define emms() __asm__ __volatile__ ("emms")
-
-#endif
-
-#endif
-
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_aduiodevice.cc
-
- Description: Implements Audiodevice handling...
-*/
-
-#include "tX_audiodevice.h"
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/soundcard.h>
-
-#ifdef USE_WRITER_THREAD
-
-void* writer_thread(void *parm)
-{
- audiodevice *audio=(audiodevice *) parm;
- int16_t *buffer;
-
- puts("writer thread");
-
- pthread_mutex_lock(&audio->write_mutex);
-
- while (pthread_mutex_trylock(&audio->stop_mutex))
- {
-
- pthread_mutex_lock(&audio->buffer_read_mutex);
- pthread_mutex_unlock(&audio->write_mutex);
- pthread_mutex_lock(&audio->buffer_ready_mutex);
- buffer=audio->current_buffer;
- pthread_mutex_unlock(&audio->buffer_read_mutex);
- pthread_mutex_unlock(&audio->buffer_ready_mutex);
- pthread_mutex_lock(&audio->write_mutex);
-
- write(audio->fd, buffer, audio->blocksize);
- }
- pthread_mutex_unlock(&audio->stop_mutex);
- pthread_mutex_unlock(&audio->write_mutex);
-
- puts("wt quits");
- return NULL;
-}
-
-int audiodevice :: eat(int16_t *buffer)
-{
- if (pthread_mutex_trylock(&stop_mutex))
- {
- pthread_mutex_lock(&write_mutex);
-
- current_buffer=buffer;
- pthread_mutex_unlock(&buffer_ready_mutex);
-
- pthread_mutex_lock(&buffer_read_mutex);
-
- pthread_mutex_lock(&buffer_ready_mutex);
-
- pthread_mutex_unlock(&buffer_read_mutex);
- pthread_mutex_unlock(&write_mutex);
- }
-}
-
-#endif
-
-int audiodevice :: dev_open(int dont_use_rt_buffsize)
-{
- int i=0;
- int p;
- int buff_cfg;
-
- if (fd) return (1);
-
- if (globals.use_stdout)
- {
- fd=STDOUT_FILENO;
- blocksize=1 << globals.buff_size;
- return(0);
- }
-
- fd = open(globals.audio_device, O_WRONLY, 0);
-
- /* setting buffer size */
- if (dont_use_rt_buffsize)
- {
- buff_cfg=(globals.buff_no<<16) | NON_RT_BUFF;
- }
- else
- {
- buff_cfg=(globals.buff_no<<16) | globals.buff_size;
- }
-
- p=buff_cfg;
-
- i = ioctl(fd, SNDCTL_DSP_SETFRAGMENT, &p);
-
- ioctl(fd, SNDCTL_DSP_RESET, 0);
-
- /* 16 Bits */
-
- p = 16;
-
- i += ioctl(fd, SOUND_PCM_WRITE_BITS, &p);
-
- /* MONO */
-
- p = 1;
- i += ioctl(fd, SOUND_PCM_WRITE_CHANNELS, &p);
-
- /* 44.1 khz */
-
- p = 44100;
- i += ioctl(fd, SOUND_PCM_WRITE_RATE, &p);
-
- i += ioctl(fd, SNDCTL_DSP_GETBLKSIZE, &blocksize);
-
- ioctl(fd, SNDCTL_DSP_SYNC, 0);
-
-#ifdef USE_WRITER_THREAD
-
- puts("A");
- pthread_mutex_lock(&stop_mutex);
- puts("A");
- pthread_mutex_trylock(&buffer_ready_mutex);
- puts("A");
- pthread_create(&writer, NULL, writer_thread, (void *) this);
-#endif
-
- return(i);
-}
-
-int audiodevice :: getblocksize()
-{
- return(blocksize);
-}
-
-int audiodevice :: dev_close()
-{
- void *dummy;
-
-#ifdef USE_WRITER_THREAD
- pthread_mutex_unlock(&buffer_ready_mutex);
- pthread_mutex_unlock(&stop_mutex);
-
- pthread_join(writer, &dummy);
- puts("okidoki");
-#endif
-
- if (!fd)
- {
- return(1);
- }
-
- if (!globals.use_stdout)
- {
- close(fd);
- }
- fd=0;
- blocksize=0;
-
- return(0);
-}
-
-audiodevice :: audiodevice()
-{
- fd=0;
- blocksize=0;
-#ifdef USE_WRITER_THREAD
- pthread_mutex_init(&stop_mutex, NULL);
- pthread_mutex_init(&write_mutex, NULL);
- pthread_mutex_init(&buffer_read_mutex, NULL);
- pthread_mutex_init(&buffer_ready_mutex, NULL);
-#endif
-}
-
-#ifndef USE_WRITER_THREAD
-int audiodevice :: eat(int16_t *buffer)
-{
- write(fd, buffer, blocksize);
-}
-#endif
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_audiodevice.h
-
- Description: Header to tX_mastergui.cc
-*/
-
-#ifndef _h_tx_audiodevice
-#define _h_tx_audiodevice 1
-
-#include "tX_types.h"
-#include "tX_global.h"
-#include "pthread.h"
-
-#define NON_RT_BUFF 12
-
-
-class audiodevice
-{
- friend void* writer_thread(void *parm);
- int fd;
- int blocksize;
-
- public:
- int dev_open(int);
- int dev_close();
-
- int getblocksize();
-
- int eat(int16_t*);
-
- audiodevice();
-
-#ifdef USE_WRITER_THREAD
- pthread_mutex_t stop_mutex;
- pthread_mutex_t write_mutex;
- pthread_mutex_t buffer_ready_mutex;
- pthread_mutex_t buffer_read_mutex;
- int16_t *current_buffer;
- pthread_t writer;
-#endif
-};
-
-#endif
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander K÷nig
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_dialog.c
-
- Description: Contains the implementation of the Options and About
- Dialogs. (And some really ugly "WE WANT TO
- TYPE LESS" macros)
-
- Changes:
-
- 28 Jul 1999: Now display compiletime settings in the about dialog.
-*/
-
-#include "tX_types.h"
-#include "tX_global.h"
-#include "tX_dialog.h"
-#include <gtk/gtk.h>
-#include <string.h>
-#include <gdk/gdk.h>
-
-#ifndef WIN32
-#include <X11/extensions/XInput.h>
-#include <X11/X.h>
-#endif
-
-#include "license.c"
-#include "tX_wavfunc.h"
-#include "tX_mastergui.h"
-#include "version.h"
-
-extern char *logo_xpm[];
-
-GdkWindow *opt_window=NULL;
-GtkWidget *opt_dialog;
-GtkWidget *menu=NULL;
-
-GtkWidget *prefix;
-GtkWidget *reset_filectr;
-GtkWidget *audio_device;
-GtkWidget *use_stdout;
-GtkWidget *prelis;
-
-GtkAdjustment *buff_no=NULL;
-GtkWidget *buff_no_slider;
-GtkAdjustment *buff_size=NULL;
-GtkWidget *buff_size_slider;
-
-GtkAdjustment *rec_size;
-GtkWidget *rec_size_slider;
-
-GtkAdjustment *sense_cycles=NULL;
-GtkWidget *sense_cycles_slider;
-
-GtkAdjustment *vtt_default_speed=NULL;
-GtkWidget *vtt_default_speed_slider;
-
-GtkWidget *xinput_enable;
-GtkWidget *xinput_device;
-GtkAdjustment *mouse_speed=NULL;
-GtkWidget *mouse_speed_slider;
-GtkWidget *use_y;
-
-GtkWidget *tooltips;
-GtkWidget *show_nag;
-GtkAdjustment *update_idle=NULL;
-GtkWidget *update_idle_slider;
-
-GtkWidget *time_enable;
-GtkAdjustment *time_update=NULL;
-GtkWidget *time_update_slider;
-
-GtkWidget *opt_ok;
-GtkWidget *opt_apply;
-GtkWidget *opt_cancel;
-
-GtkTooltips *opt_tips;
-
-int opt_hidden=0;
-
-void apply_options()
-{
- char *text;
-
- strcpy(globals.prefix, gtk_entry_get_text(GTK_ENTRY(prefix)));
- globals.reset_filectr=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(reset_filectr));
-
- strcpy(globals.audio_device, gtk_entry_get_text(GTK_ENTRY(audio_device)));
- globals.use_stdout=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(use_stdout));
- globals.buff_no=(int)buff_no->value;
- globals.buff_size=(int)buff_size->value;
-
- globals.prelis=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(prelis));
-
- globals.rec_size=(int)rec_size->value*1024;
- if (malloc_recbuffer()) tx_note("Error: Failed to allocate recbuffer.");
-
- globals.sense_cycles=(int) sense_cycles->value;
- globals.vtt_default_speed=vtt_default_speed->value;
- globals.xinput_enable=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(xinput_enable));
- gtk_label_get(GTK_LABEL(GTK_BUTTON(xinput_device)->child), &text);
- strcpy(globals.xinput_device, text);
- globals.use_y=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(use_y));
-
- globals.mouse_speed=mouse_speed->value;
- globals.tooltips=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(tooltips));
- globals.show_nag=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(show_nag));
- globals.update_idle=(int) update_idle->value;
-
- globals.time_enable=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(time_enable));
- globals.time_update=(int)time_update->value;
-}
-
-#define WID_DYN TRUE, TRUE, 0
-#define WID_FIX FALSE, FALSE, 0
-
-#define my_new_subsec(s); \
- separator=gtk_hseparator_new(); \
- gtk_box_pack_start(GTK_BOX(vbox), separator, WID_DYN);\
- gtk_widget_show(separator); \
- label=gtk_label_new(s); \
- gtk_misc_set_alignment (GTK_MISC(label), 0 ,0.5); \
- gtk_box_pack_start(GTK_BOX(vbox), label, WID_DYN); \
- gtk_widget_show(label);
-
-#define my_new_button(btn, s); \
- btn=gtk_button_new_with_label(s); \
- gtk_box_pack_start(GTK_BOX(aa), btn, WID_DYN); \
- gtk_widget_show(btn);
-
-
-#define begin_box(); box=gtk_hbox_new(FALSE, 5);
-
-#define begin_hom_box(); box=gtk_hbox_new(TRUE, 5);
-
-#define end_box(); gtk_box_pack_start(GTK_BOX(vbox), box, WID_DYN); \
- gtk_widget_show(box);
-
-#define add_widget_dyn(wid); gtk_box_pack_start(GTK_BOX(box), wid, WID_DYN);\
- gtk_widget_show(wid);
-
-#define add_widget_fix(wid); gtk_box_pack_start(GTK_BOX(box), wid, WID_FIX);\
- gtk_widget_show(wid);
-
-#define add_expl(s); label=gtk_label_new(s); \
- gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0.5);\
- add_widget_fix(label);
-
-#define add_expl_dyn(s); label=gtk_label_new(s); \
- gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0.5);\
- add_widget_dyn(label);
-
-static gint showdevmenu(GtkWidget *widget, GdkEvent *event)
-{
- if (event->type == GDK_BUTTON_PRESS) {
- GdkEventButton *bevent = (GdkEventButton *) event;
- gtk_menu_popup (GTK_MENU (widget), NULL, NULL, NULL, NULL,
- bevent->button, bevent->time);
- return TRUE;
- }
-
- return FALSE;
-}
-
-#ifndef WIN32
-XDeviceInfo *xdev=NULL;
-#endif
-
-void options_destroy(GtkWidget *widget)
-{
- /* Destroying everything that is NOT a direct part of
- the dialog: adjustments, menu and XDeviceList.
- */
-
- gdk_window_hide(opt_window);
- opt_hidden=1;
-
- gtk_object_destroy(GTK_OBJECT(opt_dialog));
-
-#ifndef WIN32
- XFreeDeviceList(xdev);
-#endif
- opt_window=NULL;
-}
-
-void ok_options(GtkWidget *widget)
-{
- apply_options();
- options_destroy(widget);
-}
-
-void select_input(GtkWidget *w, char *dev)
-{
- gtk_label_set(GTK_LABEL(GTK_BUTTON(xinput_device)->child), dev);
-}
-
-void create_options()
-{
- GtkWidget *box;
- GtkWidget *vbox;
- GtkWidget *aa;
- GtkWidget *label;
- GtkWidget *separator;
- GtkWindow *w;
- GtkWidget *item;
- Display *dpy;
-
- int i, devmax;
-
- opt_dialog=gtk_dialog_new();
- w=&(GTK_DIALOG(opt_dialog)->window);
- gtk_window_set_title(w, "terminatorX - Options");
-
- opt_tips=gtk_tooltips_new();
-
- vbox=GTK_WIDGET(GTK_DIALOG(opt_dialog)->vbox);
- gtk_box_set_spacing(GTK_BOX(vbox), 5);
- gtk_container_set_border_width(GTK_CONTAINER(w), 5);
-// gtk_box_set_homogeneous(GTK_BOX(vbox), FALSE);
- aa=GTK_WIDGET(GTK_DIALOG(opt_dialog)->action_area);
- gtk_box_set_spacing(GTK_BOX(aa), 5);
-// gtk_box_set_homogeneous(GTK_BOX(aa), FALSE);
-
- label=gtk_label_new("Options:");
- gtk_misc_set_alignment (GTK_MISC(label), 0.5 ,0.5);
- gtk_box_pack_start(GTK_BOX(vbox), label, WID_DYN);
- gtk_widget_show(label);
-
- my_new_subsec("[ Audio: ]");
-
- begin_box();
-
- add_expl("Device:");
-
- audio_device=gtk_entry_new_with_max_length(PATH_MAX);
- gtk_entry_set_text(GTK_ENTRY(audio_device), globals.audio_device);
- gtk_tooltips_set_tip(opt_tips, audio_device, "Enter the path to your audio device here. For most systems this should be /dev/dsp.", NULL);
- add_widget_dyn(audio_device);
-
- end_box();
-
- begin_box();
- use_stdout=gtk_check_button_new_with_label("Use standard output instead of the above device");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(use_stdout), globals.use_stdout);
- add_widget_fix(use_stdout);
- end_box();
-
- begin_box();
-
- add_expl("No. of Buffers:");
-
- buff_no=(GtkAdjustment*) gtk_adjustment_new(globals.buff_no, 1, 16, 1, 1, 1);
- buff_no_slider=gtk_hscale_new(buff_no);
- gtk_scale_set_digits(GTK_SCALE(buff_no_slider), 0);
- gtk_scale_set_value_pos(GTK_SCALE(buff_no_slider), GTK_POS_LEFT);
- gtk_tooltips_set_tip(opt_tips, buff_no_slider, "Sets the number of kernel level audio buffers. Actually most systems should run just fine with two.", NULL);
- add_widget_dyn(buff_no_slider);
-
- end_box();
-
- begin_box();
-
- add_expl("Size of Buffers:");
-
- buff_size=(GtkAdjustment*) gtk_adjustment_new(globals.buff_size, 1, 16, 1, 1, 1);
- buff_size_slider=gtk_hscale_new(buff_size);
- gtk_scale_set_digits(GTK_SCALE(buff_size_slider), 0);
- gtk_scale_set_value_pos(GTK_SCALE(buff_size_slider), GTK_POS_LEFT);
- gtk_tooltips_set_tip(opt_tips, buff_size_slider, "Sets the size of the kernel level audio buffers. On slower systems you might have to increase this value (if you hear \"clicks\"). Lower values mean lower latency though.", NULL);
- add_widget_dyn(buff_size_slider);
-
- end_box();
-
- begin_box();
-
- add_expl("Turntable Default Speed:");
-
- vtt_default_speed=(GtkAdjustment*) gtk_adjustment_new(globals.vtt_default_speed, -2.5, 2.5, 0.1, 0.01, 0.01);
- vtt_default_speed_slider=gtk_hscale_new(vtt_default_speed);
- gtk_scale_set_digits(GTK_SCALE(vtt_default_speed_slider), 2);
- gtk_scale_set_value_pos(GTK_SCALE(vtt_default_speed_slider), GTK_POS_LEFT);
- gtk_tooltips_set_tip(opt_tips, vtt_default_speed_slider, "Sets the \"motor\" speed of the turntable. 1.0 => real speed, 2.0 => double speed, negative values => play backwards.", NULL);
- add_widget_dyn(vtt_default_speed_slider);
-
- end_box();
-
- begin_box();
-
- prelis=gtk_check_button_new_with_label("Pre-Listen to audio files in scratch/loop dialog");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(prelis), globals.prelis);
- add_widget_fix(prelis);
-
- end_box();
-
- my_new_subsec("[ Recording: ]");
-
- begin_box();
-
- add_expl("Fast Save Prefix:");
-
- prefix=gtk_entry_new_with_max_length(PATH_MAX);
- gtk_entry_set_text(GTK_ENTRY(prefix), globals.prefix);
- add_widget_dyn(prefix);
-
- end_box();
-
- begin_box();
-
- reset_filectr=gtk_check_button_new_with_label("Reset the file counter on startup");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(reset_filectr), globals.reset_filectr);
- add_widget_fix(reset_filectr);
-
- end_box();
-
- begin_box();
-
- add_expl("Record Buffer Size (KB):");
-
- rec_size=(GtkAdjustment*) gtk_adjustment_new(globals.rec_size/1024, 100, 50000, 1000, 100, 100);
-
- rec_size_slider=gtk_hscale_new(rec_size);
- gtk_scale_set_digits(GTK_SCALE(rec_size_slider), 0);
- gtk_scale_set_value_pos(GTK_SCALE(rec_size_slider), GTK_POS_LEFT);
- gtk_tooltips_set_tip(opt_tips, rec_size_slider, "Sets the size of the buffer that stores recorded scratches. If you want to record longer scratches you need to increase this value.", NULL);
- add_widget_dyn(rec_size_slider);
-
- end_box();
-
- my_new_subsec("[ Mouse / Input: ]");
-
-#ifndef WIN32
- dpy=XOpenDisplay(NULL);
- xdev=XListInputDevices(dpy, &devmax);
- XCloseDisplay(dpy);
-
- if (menu) gtk_object_destroy(GTK_OBJECT(menu));
-
- menu = gtk_menu_new();
-
- for (i=0; i<devmax; i++)
- {
- item = gtk_menu_item_new_with_label(xdev[i].name);
- gtk_menu_append(GTK_MENU(menu), item);
- gtk_signal_connect(GTK_OBJECT(item), "activate", GTK_SIGNAL_FUNC(select_input), xdev[i].name);
- gtk_widget_show(item);
- }
-
- begin_box();
-
- xinput_enable=gtk_check_button_new_with_label("XInput Device:");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(xinput_enable), globals.xinput_enable);
- gtk_tooltips_set_tip(opt_tips, xinput_enable, "Enable this if you want to use other input than your default X-Pointer. You have to select your desired device as well.", NULL);
- add_widget_fix(xinput_enable);
-
- if (strlen(globals.xinput_device)>0)
- {
- xinput_device=gtk_button_new_with_label(globals.xinput_device);
- }
- else
- {
- xinput_device=gtk_button_new_with_label("< NONE >");
- }
-
- gtk_signal_connect_object (GTK_OBJECT (xinput_device), "event", GTK_SIGNAL_FUNC (showdevmenu), GTK_OBJECT (menu));
- add_widget_dyn(xinput_device);
-
- end_box();
-
-#endif
-
- begin_box();
-
- add_expl("Mouse Speed:");
-
- mouse_speed=(GtkAdjustment*) gtk_adjustment_new(globals.mouse_speed, -10, 10, 0.5, 0.1, 0.1);
- mouse_speed_slider=gtk_hscale_new(mouse_speed);
- gtk_scale_set_digits(GTK_SCALE(mouse_speed_slider), 1);
- gtk_scale_set_value_pos(GTK_SCALE(mouse_speed_slider), GTK_POS_LEFT);
- gtk_tooltips_set_tip(opt_tips, mouse_speed_slider, "The speed of your mouse in scratch mode. Use negative values to invert motion.", NULL);
- add_widget_dyn(mouse_speed_slider);
-
- end_box();
-
- begin_box();
-
- add_expl("Stop Sense Cycles:");
-
- sense_cycles=(GtkAdjustment*) gtk_adjustment_new(globals.sense_cycles, 1, 50, 5, 1, 1);
- sense_cycles_slider=gtk_hscale_new(sense_cycles);
- gtk_scale_set_digits(GTK_SCALE(sense_cycles_slider), 0);
- gtk_scale_set_value_pos(GTK_SCALE(sense_cycles_slider), GTK_POS_LEFT);
- gtk_tooltips_set_tip(opt_tips, sense_cycles_slider, "If there is no \"motion-event\" for x cycles, where x is the number of cycles you select here, terminatorX assumes mouse motion has stopped. For smaller buffer sizes (=> shorter cycle times) you might have to increase this value", NULL);
- add_widget_dyn(sense_cycles_slider);
-
- end_box();
-
- begin_box();
-
- use_y=gtk_check_button_new_with_label("Use Y instead of X axis");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(use_y), globals.use_y);
- add_widget_dyn(use_y);
-
- end_box();
-
- my_new_subsec("[ Graphics / GUI: ]");
-
- begin_box();
-
- tooltips=gtk_check_button_new_with_label("Main Window Tooltips");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(tooltips), globals.tooltips);
- add_widget_dyn(tooltips);
-
- end_box();
-
- begin_box();
-
- add_expl("Pos Update Idle:");
-
- update_idle=(GtkAdjustment*) gtk_adjustment_new(globals.update_idle, 1, 100, 1, 10, 10);
- update_idle_slider=gtk_hscale_new(update_idle);
- gtk_scale_set_digits(GTK_SCALE(update_idle_slider), 0);
- gtk_scale_set_value_pos(GTK_SCALE(update_idle_slider), GTK_POS_LEFT);
- gtk_tooltips_set_tip(opt_tips, update_idle_slider, "The update thread will idle for the selcted amount of milliseconds. If you want to have a more responsive display update increase this value - if you have performance problems reduce this value.", NULL);
- add_widget_dyn(update_idle_slider);
-
- end_box();
-
- begin_box();
-
- time_enable=gtk_check_button_new_with_label("Time Update:");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(time_enable), globals.time_enable);
- add_widget_fix(time_enable);
-
- time_update=(GtkAdjustment*) gtk_adjustment_new(globals.time_update, 1, 50, 1, 5, 5);
- time_update_slider=gtk_hscale_new(time_update);
- gtk_scale_set_digits(GTK_SCALE(time_update_slider), 0);
- gtk_scale_set_value_pos(GTK_SCALE(time_update_slider), GTK_POS_LEFT);
- gtk_tooltips_set_tip(opt_tips, time_update_slider, "The update thread will update the time display every n-th position display update, where n is the value you select. If you want to have a more responsive display update increase this value - if you have performance problems reduce this value.", NULL);
- add_widget_dyn(time_update_slider);
- end_box();
-
- begin_box();
-
- show_nag=gtk_check_button_new_with_label("Display nagbox on startup while loading data");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(show_nag), globals.show_nag);
- add_widget_dyn(show_nag);
-
- end_box();
-
-
- my_new_button(opt_ok, "Ok");
- gtk_signal_connect(GTK_OBJECT(opt_ok), "clicked", (GtkSignalFunc) ok_options, NULL);
- my_new_button(opt_apply, "Apply");
- gtk_signal_connect(GTK_OBJECT(opt_apply), "clicked", (GtkSignalFunc) apply_options, NULL);
- my_new_button(opt_cancel, "Cancel");
- gtk_signal_connect(GTK_OBJECT(opt_cancel), "clicked", (GtkSignalFunc) options_destroy, NULL);
-
-
- gtk_widget_show(opt_dialog);
- opt_window=opt_dialog->window;
- gtk_signal_connect(GTK_OBJECT(opt_dialog), "delete-event", (GtkSignalFunc) options_destroy, NULL);
-
-}
-
-void display_options()
-{
- if (opt_window)
- {
- gdk_window_raise(opt_window);
- }
- else
- {
- create_options();
- }
-}
-
-GtkWidget *about=NULL;
-
-void raise_about()
-{
- if (about)
- gdk_window_raise(about->window);
-}
-
-
-void destroy_about()
-{
- if (about)
- {
- gtk_widget_destroy(about);
- about=NULL;
- }
-}
-
-
-
-#define add_about_wid(wid); gtk_box_pack_start(GTK_BOX(box), wid, WID_DYN); \
- gtk_widget_show(wid);
-
-GdkFont *GPL_font=NULL;
-
-void show_about(int nag)
-{
- GtkWidget *window, *pwid;
- GdkBitmap *mask;
- GtkStyle *style;
- GtkWidget *btn;
- GtkWidget *box;
- GtkWidget *hbox;
- GtkWidget *label;
- GtkWidget *sep;
- GtkWidget *text;
- GtkWidget *scroll;
- GdkPixmap *pmap=NULL;
-
- int loop;
-
- if (about)
- {
- gdk_window_raise(about->window);
- return;
- }
-
- window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_container_set_border_width(GTK_CONTAINER(window), 5);
-
-// GTK_WINDOW(window)->use_uposition=TRUE;
-
- gtk_widget_realize(window);
-
- gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
- gtk_window_set_title(GTK_WINDOW(window), "terminatorX - About");
-
- if (nag)
- {
- gdk_window_set_decorations(window->window, (enum GdkWMDecoration) 0);
- }
-
-
- style = gtk_widget_get_style( window );
-
- if (!pmap)
- {
- pmap=gdk_pixmap_create_from_xpm_d(window->window, &mask, &style->bg[GTK_STATE_NORMAL], (gchar **)logo_xpm );
- }
-
-
- pwid = gtk_pixmap_new( pmap, mask );
-
- gtk_widget_show( pwid );
-
- if (nag)
- {
- gtk_container_add(GTK_CONTAINER(window), pwid);
- gtk_widget_show(window);
-
- while (gtk_events_pending()) gtk_main_iteration();
- }
- else
- {
- box=gtk_vbox_new(FALSE, 5);
- add_about_wid(pwid);
-
- sep=gtk_hseparator_new();
- add_about_wid(sep);
-
- label=gtk_label_new(
- "\nThis is "PACKAGE" Release "VERSION" - Copyright (C) 1999 by Alexander König"
- "\n\nSend comments, patches and scratches to: alkoit00@fht-esslingen.de\n"
- "terminatorX-homepage: http://termX.cjb.net\n\nThis binary has been compiled with the following flags: "
- "Sox support: "
-#ifdef USE_SOX_INPUT
- "ON"
-#else
- "OFF"
-#endif
- " - mpg123 support: "
-#ifdef USE_MPG123_INPUT
- "ON"
-#else
- "OFF"
-#endif
- " - \nenhanced scheduling: "
-#ifdef USE_SCHEDULER
- "ON"
-#else
- "OFF"
-#endif
- " - keep device open: "
-#ifdef KEEP_DEV_OPEN
- "ON"
-#else
- "OFF"
-#endif
- " - for a "
-#ifdef BIG_ENDIAN_MACHINE
- "big"
-
-#else
- "little"
-#endif
- " endian machine.\n"
- );
- gtk_misc_set_alignment (GTK_MISC(label), 0.5 ,0.5);
- add_about_wid(label);
-
- sep=gtk_hseparator_new();
- add_about_wid(sep);
-
- label=gtk_label_new("License (GPL V2):");
- gtk_misc_set_alignment (GTK_MISC(label), 0.5 ,0.5);
- add_about_wid(label);
-
- hbox=gtk_hbox_new(FALSE, 5);
-
- text=gtk_text_new(NULL,NULL);
- scroll=gtk_vscrollbar_new(GTK_TEXT(text)->vadj);
- gtk_text_set_editable(GTK_TEXT(text),0);
- gtk_text_set_word_wrap( GTK_TEXT(text), 0);
-
- if (!GPL_font)
- {
- GPL_font=gdk_font_load ("-misc-fixed-medium-r-*-*-*-120-*-*-*-*-*-*");
- }
- gtk_text_insert(GTK_TEXT(text), GPL_font, NULL, NULL, license, strlen(license));
-
- gtk_box_pack_start(GTK_BOX(hbox), text, WID_DYN);
- gtk_widget_show(text);
-
- gtk_box_pack_start(GTK_BOX(hbox), scroll, WID_FIX);
- gtk_widget_show(scroll);
-
- add_about_wid(hbox);
-
- sep=gtk_hseparator_new();
- add_about_wid(sep);
-
- btn=gtk_button_new_with_label("Close");
- add_about_wid(btn);
-
- gtk_container_add(GTK_CONTAINER(window), box);
- gtk_widget_show(box);
-
- gtk_signal_connect(GTK_OBJECT(btn), "clicked", (GtkSignalFunc) destroy_about, NULL);
- gtk_signal_connect(GTK_OBJECT(window), "delete-event", (GtkSignalFunc) destroy_about, NULL);
- }
- gtk_widget_show(window);
-
- about=window;
-}
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_dialog.h
-
- Description: Header to tX_dialog.c
-*/
-
-#ifndef _H_TX_DIALOG_
-#define _H_TX_DIALOG_
-
-extern void display_options();
-extern void show_about(int nag);
-extern void destroy_about();
-#endif
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_engine.c
-
- Description: Contains the code that does the real "Scratching
- business": XInput, DGA, Mouse and Keyboardgrabbing
- etc.
-
- 02 Jun 1999: Implemented high-priority/rt-FIFO-Scheduling use for
- engine-thread.
-
- 04 Jun 1999: Changed warp-feature behaviour: still connected to
- mouse-speed (should be changed to maybe) but now
- depends on sample size -> you can warp through all
- samples with the same mouse-distance.
-*/
-
-#include "tX_types.h"
-#include "tX_engine.h"
-#include "tX_audiodevice.h"
-#include "tX_mouse.h"
-#include "tX_vtt.h"
-#include <pthread.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkprivate.h>
-#include "tX_mastergui.h"
-#include "tX_global.h"
-#include "tX_tape.h"
-#include "tX_widget.h"
-#include <config.h>
-
-pthread_t engine_thread=0;
-
-pthread_mutex_t stat_lock=PTHREAD_MUTEX_INITIALIZER;
-pthread_mutex_t thread_lock=PTHREAD_MUTEX_INITIALIZER;
-pthread_mutex_t pos_lock=PTHREAD_MUTEX_INITIALIZER;
-pthread_mutex_t run_lock=PTHREAD_MUTEX_INITIALIZER;
-
-tx_mouse *mouse=new tx_mouse();
-audiodevice *device=new audiodevice();
-tx_tapedeck *tape=new tx_tapedeck();
-
-int engine_quit=0;
-
-int engine_status=ENG_STOPPED;
-
-int realpos=0;
-
-int do_grab_mouse=0;
-int new_grab_mouse=0;
-
-int want_recording=0;
-int is_recording=0;
-
-int grab_mouse(int newstate)
-{
- new_grab_mouse=newstate;
-}
-
-int get_engine_status()
-{
- int tmp;
- pthread_mutex_lock(&stat_lock);
- tmp=engine_status;
- pthread_mutex_unlock(&stat_lock);
- return(tmp);
-}
-
-void set_engine_status(int status)
-{
- pthread_mutex_lock(&stat_lock);
- engine_status=status;
- pthread_mutex_unlock(&stat_lock);
-}
-
-void *engine(void *nil)
-{
- int scratch=0;
- int stop_sense=globals.sense_cycles;
- f_prec warp=1.0;
- int16_t *temp;
-
-/* want_recording=0;
- is_recording=0; */
-
-#ifdef ENABLE_DEBUG_OUTPUT
- fprintf(stderr, "[engine()] Engine thread up, PID: %i\n", getpid());
-#endif
- pthread_mutex_lock(&run_lock);
-
- set_engine_status(ENG_RUNNING);
-
- while (!engine_quit)
- {
- if (new_grab_mouse!=do_grab_mouse)
- {
-
- do_grab_mouse=new_grab_mouse;
-
- if (do_grab_mouse) mouse->grab();
- else
- {
- mouse->ungrab();
- grab_off();
- }
- }
-
- if (do_grab_mouse)
- if (mouse->check_event())
- {
- new_grab_mouse=0;
- }
-
- if (is_recording)
- {
- temp=vtt_class::render_all_turntables();
- device->eat(temp);
- tape->eat(temp);
- }
- else
- {
- device->eat(vtt_class::render_all_turntables());
- }
- }
-
-// device->dev_close();
-
- if (engine_quit==1) set_engine_status(ENG_STOPPED);
- else set_engine_status(ENG_FINISHED);
-
- pthread_mutex_unlock(&run_lock);
-
- pthread_exit(NULL);
-}
-
-int run_engine()
-{
-#ifdef USE_SCHEDULER
- pthread_attr_t pattr;
- struct sched_param sparm;
-#endif
- char buffer[PATH_MAX];
- list <vtt_class *> :: iterator vtt;
-
- pthread_mutex_lock(&run_lock);
-
- pthread_mutex_lock(&thread_lock);
-
- device->dev_open(0);
-
- is_recording=0;
-
- if (want_recording)
- {
- if (!tape->start_record(globals.record_filename, device->getblocksize()))
- is_recording=1;
- }
-
- vtt_class::set_mix_buffer_size(device->getblocksize()/sizeof(int16_t));
-
- if (engine_thread)
- {
- pthread_mutex_unlock(&thread_lock);
- return(ENG_ERR_BUSY);
- }
-
- engine_quit=0;
-#ifdef USE_SCHEDULER
- if (!geteuid())
- {
-#ifdef ENABLE_DEBUG_OUTPUT
- fprintf(stderr, "[run_engine()] enabling fifo scheduling.\n");
-#endif
- pthread_attr_init(&pattr);
- pthread_attr_setdetachstate(&pattr, PTHREAD_CREATE_JOINABLE);
- pthread_attr_setschedpolicy(&pattr, SCHED_FIFO);
-
- sched_getparam(getpid(), &sparm);
- sparm.sched_priority=sched_get_priority_max(SCHED_FIFO);
-
- pthread_attr_setschedparam(&pattr, &sparm);
- pthread_attr_setinheritsched(&pattr, PTHREAD_EXPLICIT_SCHED);
- pthread_attr_setscope(&pattr, PTHREAD_SCOPE_SYSTEM);
-
- pthread_create(&engine_thread, &pattr, engine, NULL);
- }
- else
- {
-#ifdef ENABLE_DEBUG_OUTPUT
- fprintf(stderr, "[run_engine()] NO fifo scheduling.\n");
-#endif
- pthread_create(&engine_thread, NULL, engine, NULL);
- }
-#else
- pthread_create(&engine_thread, NULL, engine, NULL);
-#endif
-
- if (!engine_thread)
- {
- pthread_mutex_unlock(&thread_lock);
- return(ENG_ERR_THREAD);
- }
-
-// gtk_label_set(GTK_LABEL(GTK_BUTTON(action_btn)->child), "Stop");
-
- for (vtt=vtt_class::main_list.begin(); vtt!=vtt_class::main_list.end(); vtt++)
- {
- if ((*vtt)->autotrigger) (*vtt)->trigger();
- }
-
- pthread_detach(engine_thread);
-
- set_engine_status(ENG_INIT);
-
- pthread_mutex_unlock(&thread_lock);
-
- pthread_mutex_unlock(&run_lock);
-
- return (ENG_RUNNING);
-}
-
-int stop_engine()
-{
- list <vtt_class *> :: iterator vtt;
- void *ret;
-
- pthread_mutex_lock(&thread_lock);
- if (!engine_thread)
- {
- pthread_mutex_unlock(&thread_lock);
- return(1);
- }
-
- engine_quit=1;
-
- pthread_join(engine_thread, &ret);
-
- engine_thread=0;
-
- pthread_mutex_unlock(&thread_lock);
- device->dev_close();
-
- for (vtt=vtt_class::main_list.begin(); vtt!=vtt_class::main_list.end(); vtt++)
- {
- (*vtt)->stop();
- (*vtt)->ec_clear_buffer();
- }
-
- if (is_recording) tape->stop_record();
- is_recording=0;
- return (0);
-}
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_engine.h
-
- Description: Header to tX_engine.cc
-*/
-
-#ifndef _TX_ENGINE_H_
-#define _TX_ENGINE_H_
-
-extern int run_engine();
-extern int stop_engine();
-
-extern int grab_mouse(int);
-
-#define ENG_ERR 4
-
-#define ENG_RUNNING 0
-#define ENG_INIT 1
-#define ENG_STOPPED 2
-#define ENG_FINISHED 3
-#define ENG_ERR_XOPEN 4
-#define ENG_ERR_XINPUT 5
-#define ENG_ERR_DGA 6
-#define ENG_ERR_SOUND 7
-#define ENG_ERR_THREAD 8
-#define ENG_ERR_GRABMOUSE 9
-#define ENG_ERR_GRABKEY 10
-#define ENG_ERR_BUSY 11
-
-extern int get_engine_status();
-extern void set_engine_status(int );
-
-extern int want_recording;
-
-#endif
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_flash.c
-
- Description: This contains the implementation of the tx_flash_flash widget.
-*/
-
-#include <math.h>
-
-#include <gtk/gtkwindow.h>
-#define IS_TX_FLASH 1
-#include "tX_flash.h"
-#include "tX_types.h"
-#include <malloc.h>
-
-#ifndef WIN32
-#include <unistd.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#define MAX_VALUE 32767
-#define RED_BORDER 25000
-#define TX_FLASH_DEFAULT_SIZE_X 17
-#define TX_FLASH_DEFAULT_SIZE_Y 30
-#define DY 5
-#define DX 5
-#define DMINIX 2
-#define S_MINIX 2
-#define L_MINIX 3
-#define DLEVEL 3
-#define MAX_MAX_CYCLES 20;
-
-/* pre dec */
-static void gtk_tx_flash_class_init (GtkTxFlashClass *);
-static void gtk_tx_flash_init (GtkTxFlash *tx_flash);
-GtkWidget* gtk_tx_flash_new ();
-static void gtk_tx_flash_destroy (GtkObject *object);
-static void gtk_tx_flash_realize (GtkWidget *widget);
-static void gtk_tx_flash_size_request (GtkWidget *widget, GtkRequisition *requisition);
-static void gtk_tx_flash_size_allocate (GtkWidget *widget, GtkAllocation *allocation);
-static gint gtk_tx_flash_expose (GtkWidget *widget, GdkEventExpose *event);
-//static void gtk_tx_flash_prepare (GtkWidget *widget);
-//static void gtk_tx_flash_set_level(GtkWidget *widget, f_prec new_value);
-
-/* Local data */
-
-static GtkWidgetClass *parent_class = NULL;
-
-guint
-gtk_tx_flash_get_type ()
-{
- static guint tx_flash_type = 0;
-
- if (!tx_flash_type)
- {
- GtkTypeInfo tx_flash_info =
- {
- "GtkTxFlash",
- sizeof (GtkTxFlash),
- sizeof (GtkTxFlashClass),
- (GtkClassInitFunc) gtk_tx_flash_class_init,
- (GtkObjectInitFunc) gtk_tx_flash_init,
- (GtkArgSetFunc) NULL,
- (GtkArgGetFunc) NULL,
- };
-
- tx_flash_type = gtk_type_unique (gtk_widget_get_type (), &tx_flash_info);
- }
-
- return tx_flash_type;
-}
-
-static void
-gtk_tx_flash_class_init (GtkTxFlashClass *gclass)
-{
- GtkObjectClass *object_class;
- GtkWidgetClass *widget_class;
-
- object_class = (GtkObjectClass*) gclass;
- widget_class = (GtkWidgetClass*) gclass;
-
- parent_class = gtk_type_class (gtk_widget_get_type ());
-
- object_class->destroy = gtk_tx_flash_destroy;
-
- widget_class->realize = gtk_tx_flash_realize;
- widget_class->expose_event = gtk_tx_flash_expose;
- widget_class->size_request = gtk_tx_flash_size_request;
- widget_class->size_allocate = gtk_tx_flash_size_allocate;
-// widget_class->button_press_event = gtk_tx_flash_button_press;
-// widget_class->button_release_event = gtk_tx_flash_button_release;
-// widget_class->motion_notify_event = gtk_tx_flash_motion_notify;
-}
-
-void gtk_tx_flash_mk_col(GtkTxFlash *tx_flash, GdkColor *col, float r, float g, float b)
-{
- float max=65535.0;
-
- col->red=(gint) (r*max);
- col->green=(gint) (g*max);
- col->blue=(gint) (b*max);
- gdk_colormap_alloc_color (gtk_widget_get_colormap (GTK_WIDGET(tx_flash)), col, 1, 1);
-}
-
-static void
-gtk_tx_flash_init (GtkTxFlash *tx_flash)
-{
- GdkColormap *priv;
-
- priv=gdk_colormap_new(gtk_widget_get_visual(GTK_WIDGET(tx_flash)), 6);
-
- gtk_widget_set_colormap(GTK_WIDGET(tx_flash), priv);
-
- gtk_tx_flash_mk_col(tx_flash, &tx_flash->black, 0, 0, 0);
- gtk_tx_flash_mk_col(tx_flash, &tx_flash->red, 1, 0.5, 0.5);
- gtk_tx_flash_mk_col(tx_flash, &tx_flash->green, 0.5, 1, 0.5);
- gtk_tx_flash_mk_col(tx_flash, &tx_flash->lightgreen, 0, 0.7, 0);
- gtk_tx_flash_mk_col(tx_flash, &tx_flash->redgreen, 0.7, 0, 0);
-}
-
-GtkWidget*
-gtk_tx_flash_new ()
-{
- GtkTxFlash *tx_flash;
-
- tx_flash = gtk_type_new (gtk_tx_flash_get_type ());
-
- return GTK_WIDGET (tx_flash);
-}
-
-static void
-gtk_tx_flash_destroy (GtkObject *object)
-{
- g_return_if_fail (object != NULL);
- g_return_if_fail (GTK_IS_TX_FLASH (object));
-
- if (GTK_OBJECT_CLASS (parent_class)->destroy)
- (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
-}
-
-static void
-gtk_tx_flash_realize (GtkWidget *widget)
-{
- GtkTxFlash *tx_flash;
- GdkWindowAttr attributes;
- gint attributes_mask;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GTK_IS_TX_FLASH (widget));
-
- GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED);
- tx_flash = GTK_TX_FLASH (widget);
-
- attributes.x = widget->allocation.x;
- attributes.y = widget->allocation.y;
- attributes.width = widget->allocation.width;
- attributes.height = widget->allocation.height;
- attributes.wclass = GDK_INPUT_OUTPUT;
- attributes.window_type = GDK_WINDOW_CHILD;
- attributes.event_mask = gtk_widget_get_events (widget) |
- GDK_EXPOSURE_MASK;
- attributes.visual = gtk_widget_get_visual (widget);
- attributes.colormap = gtk_widget_get_colormap (widget);
-
- attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP;
-
- widget->window = gdk_window_new (widget->parent->window, &attributes, attributes_mask);
-
- widget->style = gtk_style_attach (widget->style, widget->window);
-
- gdk_window_set_user_data (widget->window, widget);
-
- gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL);
-}
-
-static void
-gtk_tx_flash_size_request (GtkWidget *widget, GtkRequisition *requisition)
-{
- requisition->width = TX_FLASH_DEFAULT_SIZE_X;
- requisition->height = TX_FLASH_DEFAULT_SIZE_Y;
-}
-
-static void
-gtk_tx_flash_prepare (GtkWidget *widget)
-{
- GtkTxFlash *tx_flash;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GTK_IS_TX_FLASH (widget));
-
- tx_flash=GTK_TX_FLASH(widget);
-
- tx_flash->levels=(widget->allocation.height-(2*DY))/DLEVEL;
- tx_flash->last_level=0;
- tx_flash->level_value=MAX_VALUE/(f_prec) tx_flash->levels;
- tx_flash->red_level=(RED_BORDER/tx_flash->level_value);
-
- tx_flash->x1=DMINIX+S_MINIX+2;
- tx_flash->x2=widget->allocation.width-tx_flash->x1-1;
- tx_flash->max=0;
-}
-
-static void
-gtk_tx_flash_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
-{
- GtkTxFlash *tx_flash;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GTK_IS_TX_FLASH (widget));
- g_return_if_fail (allocation != NULL);
-
- widget->allocation = *allocation;
-
- gtk_tx_flash_prepare(widget);
-
- if (GTK_WIDGET_REALIZED (widget))
- {
- tx_flash = GTK_TX_FLASH (widget);
-
- gdk_window_move_resize (widget->window,
- allocation->x, allocation->y,
- allocation->width, allocation->height);
-
- }
-}
-
-static void gtk_tx_flash_paint_yourself(GtkWidget *widget)
-{
- GtkTxFlash *tx_flash;
- gint i, x11, x12,x21, x22, y;
- int long_level;
-
- tx_flash = GTK_TX_FLASH (widget);
-
- gdk_gc_set_foreground(widget->style->fg_gc[widget->state], &tx_flash->black);
-
- gdk_draw_rectangle(widget->window, widget->style->fg_gc[widget->state], 1, 0, 0, widget->allocation.width,widget->allocation.height);
-
- gdk_gc_set_foreground(widget->style->fg_gc[widget->state], &tx_flash->lightgreen);
-
- x12=DMINIX+S_MINIX;
- x21=widget->allocation.width-1-x12;
-
- for (i=0, y=widget->allocation.height-DY; i<=tx_flash->levels; y-=DLEVEL, i++)
- {
- if (i==0)
- {
- long_level=1;
- }
- else if (i==tx_flash->red_level-1)
- {
- long_level=1;
- }
- else if (i==tx_flash->red_level)
- {
- long_level=1;
- gdk_gc_set_foreground(widget->style->fg_gc[widget->state], &tx_flash->redgreen);
- }
- else if (i==tx_flash->levels)
- {
- long_level=1;
- }
- else long_level=0;
-
- if (long_level)
- {
- x11=x12-L_MINIX;
- x22=x21+L_MINIX;
- }
- else
- {
- x11=x12-S_MINIX;
- x22=x21+S_MINIX;
- }
-
- gdk_draw_line(widget->window, widget->style->fg_gc[widget->state], x11, y, x12, y);
- gdk_draw_line(widget->window, widget->style->fg_gc[widget->state], x21, y, x22, y);
- }
-}
-
-static gint gtk_tx_flash_expose (GtkWidget *widget, GdkEventExpose *event)
-{
-
- g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_TX_FLASH (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
-
- if (event->count > 0)
- return FALSE;
-
- gtk_tx_flash_prepare(widget);
- gtk_tx_flash_paint_yourself(widget);
-
- return FALSE;
-}
-
-static void
-gtk_tx_flash_update (GtkTxFlash *tx_flash)
-{
- g_return_if_fail (tx_flash != NULL);
- g_return_if_fail (GTK_IS_TX_FLASH (tx_flash));
-
- gtk_widget_draw (GTK_WIDGET(tx_flash), NULL);
-}
-
-void
-gtk_tx_flash_set_level(GtkWidget *widget, f_prec new_value)
-{
- GtkTxFlash *tx_flash;
- gint i, y;
- int new_level, end_level;
- int red=0;
-
- g_return_if_fail (widget != NULL);
- g_return_if_fail (GTK_IS_TX_FLASH (widget));
-
- tx_flash = GTK_TX_FLASH (widget);
-
- new_level=(int) (new_value/tx_flash->level_value);
-
- if (new_level>tx_flash->levels) new_level=tx_flash->levels;
-
-// printf ("%f, %i, %i\n", tx_flash->level_value,new_level, tx_flash->last_level);
-
-
- if (new_level>tx_flash->max)
- {
- tx_flash->max=new_level;
- tx_flash->max_cycles=MAX_MAX_CYCLES;
- }
- else
- {
- tx_flash->max_cycles--;
- }
-
- if (tx_flash->max_cycles <= 0)
- {
- y=widget->allocation.height-(DY+(tx_flash->max)*DLEVEL);
- gdk_gc_set_foreground(widget->style->fg_gc[widget->state], &tx_flash->black);
- gdk_draw_line(widget->window, widget->style->fg_gc[widget->state], tx_flash->x1, y, tx_flash->x2, y);
-
- if (tx_flash->max>0)
- {
- tx_flash->max--;
- y+=DLEVEL;
- if (tx_flash->max>tx_flash->red_level)
- {
- gdk_gc_set_foreground(widget->style->fg_gc[widget->state], &tx_flash->red);
- }
- else
- {
- gdk_gc_set_foreground(widget->style->fg_gc[widget->state], &tx_flash->green);
- }
- gdk_draw_line(widget->window, widget->style->fg_gc[widget->state], tx_flash->x1, y, tx_flash->x2, y);
- }
- }
-
- if (new_level==tx_flash->last_level) return;
-
- if (new_level<tx_flash->last_level) // make it look more realistic
- {
- new_level=tx_flash->last_level*0.95;
- }
-
- if (new_level>tx_flash->last_level)
- {
- gdk_gc_set_foreground(widget->style->fg_gc[widget->state], &tx_flash->green);
-
- for (i=tx_flash->last_level, y=widget->allocation.height-(DY+tx_flash->last_level*DLEVEL); i<=new_level; y-=DLEVEL, i++)
- {
- if (!red)
- {
- if (i>=tx_flash->red_level)
- {
- gdk_gc_set_foreground(widget->style->fg_gc[widget->state], &tx_flash->red);
- red=1;
- }
- }
- gdk_draw_line(widget->window, widget->style->fg_gc[widget->state], tx_flash->x1, y, tx_flash->x2, y);
- }
- }
- else
- {
- gdk_gc_set_foreground(widget->style->fg_gc[widget->state], &tx_flash->black);
-
- if (tx_flash->last_level==tx_flash->max)
- {
- i=tx_flash->last_level-1;
- }
- else
- {
- i=tx_flash->last_level;
- }
-
- for (y=widget->allocation.height-(DY+i*DLEVEL); i>new_level; y+=DLEVEL, i--)
- {
- gdk_draw_line(widget->window, widget->style->fg_gc[widget->state], tx_flash->x1, y, tx_flash->x2, y);
- }
- }
- tx_flash->last_level=new_level;
-}
-
-void
-gtk_tx_flash_clear (GtkWidget *widget)
-{
- GtkTxFlash *tx_flash;
-
- tx_flash = GTK_TX_FLASH (widget);
-
- tx_flash->max=0;
- tx_flash->max_cycles=0;
- tx_flash->last_level=0;
-
- gtk_tx_flash_paint_yourself(widget);
-}
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_flash.h
-
- Description: Header to tX_flash.c
-*/
-
-
-#ifndef __GTK_TX_FLASH_H__
-#define __GTK_TX_FLASH_H__
-#include <gdk/gdk.h>
-#include <gtk/gtkwidget.h>
-
-#include "tX_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#define GTK_TX_FLASH(obj) GTK_CHECK_CAST (obj, gtk_tx_flash_get_type (), GtkTxFlash)
-#define GTK_TX_FLASH_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_tx_flash_get_type (), GtkTxFlashClass)
-#define GTK_IS_TX_FLASH(obj) GTK_CHECK_TYPE (obj, gtk_tx_flash_get_type ())
-
-typedef struct _GtkTxFlash GtkTxFlash;
-typedef struct _GtkTxFlashClass GtkTxFlashClass;
-
-struct _GtkTxFlash
-{
- GtkWidget widget;
-
- GdkColor black;
- GdkColor red;
- GdkColor green;
- GdkColor lightgreen;
- GdkColor redgreen;
-
- int levels;
- int last_level;
- int red_level;
- f_prec level_value;
-
- int x1, x2;
-
- int max, max_cycles;
-};
-
-struct _GtkTxFlashClass
-{
- GtkWidgetClass parent_class;
-};
-
-GtkWidget* gtk_tx_flash_new ();
-guint gtk_tx_flash_get_type (void);
-static void gtk_tx_flash_prepare (GtkWidget *widget);
-void gtk_tx_flash_set_level (GtkWidget *widget, f_prec new_value);
-void gtk_tx_flash_clear (GtkWidget *widget);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_global.c
-
- Description: This file contains the routines for handling the
- "globals" block. Intializing, reading setup from
- disk and storing it.
-
- Changes:
-
- 21 Jul 1999: introduced the lowpass globals.
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "tX_types.h"
-#include "tX_global.h"
-#include "string.h"
-
-tx_global globals;
-
-void get_rc_name(char *buffer)
-{
- strcpy(buffer,"");
-
- if (getenv("HOME"))
- {
- strcpy(buffer, getenv("HOME"));
- if (buffer[strlen(buffer)-1]!='/')
- strcat(buffer, "/");
- }
- strcat(buffer, ".terminatorXrc.bin");
-}
-
-void load_globals()
-{
- char rc_name[PATH_MAX]="";
- FILE *rc;
-
- strcpy(globals.scratch_name, "scratch.wav");
- strcpy(globals.loop_name, "");
-
- strcpy(globals.prefix, "tX_scratch");
- strcpy(globals.audio_device, "/dev/dsp");
-
- strcpy(globals.xinput_device, "");
- globals.xinput_enable=0;
-
- globals.update_idle=18;
-
- globals.buff_no=2;
- globals.buff_size=9;
-
- globals.rec_size=1024000;
-
- globals.do_mix=1;
- globals.scratch_vol=0.5;
-
- globals.sense_cycles=12;
-
- globals.mouse_speed=0.8;
-
- globals.width=800;
- globals.height=440;
-
- globals.vtt_default_speed=1.0;
- globals.tooltips=1;
-
- globals.time_update=15;
- globals.time_enable=1;
-
- globals.filectr=0;
- globals.reset_filectr=1;
-
- globals.use_y=0;
- globals.use_stdout=0;
-
- globals.show_nag=1;
- globals.prelis=1;
-
- globals.lowpass_enable=0;
- globals.lowpass_reso=0.9;
-
- strcpy(globals.last_fn,"");
-
- globals.pitch=1.0;
- globals.volume=1.0;
- globals.gui_wrap=3;
-
- strcpy(globals.tables_filename, "");
- strcpy(globals.record_filename, "");
- globals.autoname=0;
-
- get_rc_name(rc_name);
-
- rc=fopen(rc_name, "r");
- if (rc)
- {
- fread(&globals, sizeof(tx_global), 1, rc);
- fclose(rc);
- }
-
- globals.scratch_size=0;
- globals.scratch_len=0;
- globals.scratch_data=NULL;
-
- globals.loop_size=0;
- globals.loop_len=0;
- globals.loop_data=NULL;
-
- globals.rec_buffer=NULL;
- globals.rec_len=0;
- if (globals.reset_filectr) globals.filectr=0;
-}
-
-void store_globals()
-{
- char rc_name[PATH_MAX]="";
- FILE *rc;
-
- get_rc_name(rc_name);
-
- rc=fopen(rc_name, "w");
- if (rc)
- {
- fwrite(&globals, sizeof(tx_global), 1, rc);
- fclose(rc);
- }
-}
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_global.h
-
- Description: Header to tX_global.c / defines the heavily used
- tX_global struct.
-
- Changes:
-
- 21 Jul 1999: Introduced the lowpass globals.
-*/
-
-#ifndef _TX_GLOBAL_H
-#define _TX_GLOBAL_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#include <limits.h>
-#include <stdio.h>
-#include "tX_types.h"
-
-#ifndef PATH_MAX
-#define PATH_MAX 1024
-#endif
-
-typedef struct {
- char scratch_name[PATH_MAX];
- unsigned int scratch_size; // In Bytes
- unsigned int scratch_len; // In samples
- int16_t *scratch_data;
-
- char loop_name[PATH_MAX];
- unsigned int loop_len;
- unsigned int loop_size;
- int16_t *loop_data;
-
- char prefix[PATH_MAX];
- char audio_device[PATH_MAX];
-
- int xinput_enable;
- char xinput_device[256]; // If your device's name is longer than that
- // you are insane and you simply don't deserve
- // running terminatorX ;) (said the guy who invented 8+3)
-
- int do_mix;
- f_prec scratch_vol;
-
- int update_idle;
-
- int buff_no;
- int buff_size;
-
- int rec_size; // In Bytes
- int16_t *rec_buffer;
-
- int sense_cycles;
-
- int width;
- int height;
-
- f_prec vtt_default_speed;
-
- int tooltips;
-
- f_prec mouse_speed;
-
- int time_enable;
- int time_update;
-
- int rec_len;
-
- int filectr;
- int reset_filectr;
-
- char last_fn[PATH_MAX];
- int use_y;
- int use_stdout;
- int show_nag;
-
- int prelis;
-
- int lowpass_enable;
- f_prec lowpass_reso;
-
- f_prec pitch;
- f_prec volume;
-
- int gui_wrap;
-
- char tables_filename[PATH_MAX];
- char record_filename[PATH_MAX];
- int autoname;
-
-} tx_global;
-
-extern tx_global globals;
-
-extern void load_globals();
-extern void store_globals();
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_logo.c
-
- Description: Contians terminatorX-logo.
-*/
-
-/* XPM */
-char * logo_xpm[] = {
-"590 110 256 2",
-" c None",
-". c #020204",
-"+ c #9B832B",
-"@ c #823E0C",
-"# c #51420D",
-"$ c #CDC58B",
-"% c #C98227",
-"& c #84450A",
-"* c #7D6305",
-"= c #C75A64",
-"- c #452411",
-"; c #826607",
-"> c #68441B",
-", c #AAA284",
-"' c #A56428",
-") c #A7842D",
-"! c #E8E4BE",
-"~ c #6B5404",
-"{ c #8E7214",
-"] c #483606",
-"^ c #272420",
-"/ c #C7A560",
-"( c #653512",
-"_ c #A38A87",
-": c #E5C377",
-"< c #675454",
-"[ c #867460",
-"} c #EAAE6C",
-"| c #555453",
-"1 c #583418",
-"2 c #C2AAB5",
-"3 c #251111",
-"4 c #757474",
-"5 c #A24E0C",
-"6 c #353433",
-"7 c #856557",
-"8 c #634538",
-"9 c #454444",
-"0 c #646464",
-"a c #858484",
-"b c #735508",
-"c c #88541B",
-"d c #A99358",
-"e c #BAB58A",
-"f c #FBF3CB",
-"g c #97632F",
-"h c #372413",
-"i c #DAD398",
-"j c #774416",
-"k c #E7D49B",
-"l c #A8997F",
-"m c #9C957B",
-"n c #E5841E",
-"o c #776464",
-"p c #A4A4A4",
-"q c #937512",
-"r c #A87333",
-"s c #473435",
-"t c #967563",
-"u c #2B1818",
-"v c #C36D1C",
-"w c #652E0A",
-"x c #392C0F",
-"y c #C7C4C6",
-"z c #574443",
-"A c #CAB678",
-"B c #E8E3E5",
-"C c #C7BA9D",
-"D c #96848B",
-"E c #E9D4E4",
-"F c #725448",
-"G c #845664",
-"H c #765C05",
-"I c #945417",
-"J c #B6843B",
-"K c #321E1E",
-"L c #886D0E",
-"M c #432E2B",
-"N c #533E3C",
-"O c #7B6C67",
-"P c #B59C78",
-"Q c #99733D",
-"R c #743407",
-"S c #8B7C7E",
-"T c #E96872",
-"U c #FCD4E2",
-"V c #F8E4F3",
-"W c #C79445",
-"X c #6B5B56",
-"Y c #171412",
-"Z c #5C4B49",
-"` c #9C8C92",
-" . c #654D08",
-".. c #875C23",
-"+. c #B8A4B1",
-"@. c #784C1B",
-"#. c #A57C5F",
-"$. c #563C0B",
-"%. c #5D4B11",
-"&. c #D6BBA1",
-"*. c #D8A34C",
-"=. c #291E18",
-"-. c #6B5A31",
-";. c #B79551",
-">. c #BA741F",
-",. c #4C3B3C",
-"'. c #AA99A3",
-"). c #D9C4D3",
-"!. c #562C12",
-"~. c #FDECF9",
-"{. c #8E424C",
-"]. c #4A3A05",
-"^. c #AA844C",
-"/. c #673C17",
-"(. c #976C2D",
-"_. c #3D2A2C",
-":. c #FE849C",
-"<. c #B2635C",
-"[. c #685433",
-"}. c #FDF4FA",
-"|. c #B9A36E",
-"1. c #977C40",
-"2. c #B28674",
-"3. c #785430",
-"4. c #382425",
-"5. c #886434",
-"6. c #B86B1B",
-"7. c #775B34",
-"8. c #BDAAB6",
-"9. c #FE062A",
-"0. c #FE284A",
-"a. c #FE4A6A",
-"b. c #E2BE68",
-"c. c #C7741C",
-"d. c #FD9224",
-"e. c #FD758C",
-"f. c #A35915",
-"g. c #E3CAB1",
-"h. c #FEB9CD",
-"i. c #FD94AD",
-"j. c #FE193B",
-"k. c #FE3858",
-"l. c #FE5674",
-"m. c #C9955E",
-"n. c #AC5A5C",
-"o. c #CA625C",
-"p. c #FEA4B9",
-"q. c #D9841E",
-"r. c #FEC4D6",
-"s. c #D9D4D3",
-"t. c #A64D55",
-"u. c #D6C597",
-"v. c #FAE4C1",
-"w. c #D8B569",
-"x. c #D8943C",
-"y. c #966A68",
-"z. c #F2DA7C",
-"A. c #E6CC96",
-"B. c #FE6482",
-"C. c #D77D1D",
-"D. c #190B12",
-"E. c #99454F",
-"F. c #998451",
-"G. c #C58C4B",
-"H. c #8A7343",
-"I. c #B4B4B4",
-"J. c #949494",
-"K. c #954D17",
-"L. c #764D3B",
-"M. c #C8AC6A",
-"N. c #987C5C",
-"O. c #B68C48",
-"P. c #783D11",
-"Q. c #D7AB5E",
-"R. c #7B6B38",
-"S. c #F58D20",
-"T. c #A49199",
-"U. c #5C5C5C",
-"V. c #C5B0BD",
-"W. c #7C7C7C",
-"X. c #3C3C3C",
-"Y. c #846D69",
-"Z. c #E7DCA4",
-"`. c #A77C3D",
-" + c #F3DDEC",
-".+ c #B89C59",
-"++ c #B57D39",
-"@+ c #B29EAA",
-"#+ c #A76C1E",
-"$+ c #6C6C6C",
-"%+ c #8C8C8C",
-"&+ c #EDDAEB",
-"*+ c #735E5A",
-"=+ c #BBAB76",
-"-+ c #D7CC98",
-";+ c #F4EEC0",
-">+ c #D7BC75",
-",+ c #BC575F",
-"'+ c #4F2511",
-")+ c #CCB8C6",
-"!+ c #D3BDCC",
-"~+ c #F69E4C",
-"{+ c #DA636C",
-"]+ c #854C16",
-"^+ c #2C2C2B",
-"/+ c #634E4B",
-"(+ c #A79B5C",
-"_+ c #975C24",
-":+ c #C89C4E",
-"<+ c #DDCAD9",
-"[+ c #C49D61",
-"}+ c #DDDDD6",
-"|+ c #632D37",
-"1+ c #B6525C",
-"2+ c #C98D35",
-"3+ c #AE8E3C",
-"4+ c #EBEBC9",
-"5+ c #4C4C4C",
-"6+ c #ACACAC",
-"7+ c #987A15",
-"8+ c #CCCCCA",
-"9+ c #AB8C53",
-"0+ c #FEFEFC",
-"a+ c #CC7A20",
-"b+ c #9C8D56",
-"c+ c #8C7B48",
-"d+ c #BCBBB9",
-"e+ c #9C9C9C",
-"f+ c #B69179",
-"g+ c #E3CDDB",
-"h+ c #ECECEA",
-"i+ c #1D1C1A",
-"j+ c #8A4C44",
-"k+ c #D89D3A",
-"l+ c #FC6D88",
-"m+ c #FEFDC1",
-"n+ c #FE7D98",
-"o+ c #896C3D",
-"p+ c #937D8B",
-"q+ c #796437",
-"r+ c #FE9BB0",
-"s+ c #9A4D4C",
-"t+ c #F8D6AC",
-"u+ c #F6B654",
-"v+ c #0E0C09",
-"w+ c #E98B1C",
-"x+ c #C9C5A2",
-"y+ c #893E46",
-"z+ c #D05E66",
-"A+ c #5A4417",
-"B+ c #7A363F",
-"C+ c #FE8CA3",
-"D+ c #FEACC2",
-"E+ c #FECCDD",
-"F+ c #66332F",
-"G+ c #87747D",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i+h ]. .H H H H H H H H H H H H H H H H H H H H H H H ~ H b H ~ H b H ~ H ~ b b ~ H ~ ~ H ~ ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ .~ .~ .~ .A+] h Y v+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ].L L h ] 7+7+7+Q o.T z+j+q 7+7+7+7+7+7+7+7+7+7+7+7+7+# . . . . . . . . K = T {+|+v+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v+Y x ]. .H H H H H H H H H H H H H H b H b H ~ H b H ~ b ~ b ~ b H b H b H ~ H b H ~ H H ~ H b H H ~ H H ~ H H b H b H b H b b b b b b b b b b b ~ b b ~ b ~ b ~ b ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ .~ .~ .~ . . . . . . . . .~ .~ .~ .~ . .~ ~ ~ .%.$.] =.Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A+L ; =.x 7+7+7+7+q <.T T s+o+7+7+7+7+7+7+7+7+7+7+7+{ ] . . . . . . . . . v+y+T T t.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v+i+x $.~ H H H H H H H H H H H H H H H H H b H H H H H H H ~ H H H H H H H H ~ H ~ H ~ H ~ H b ~ H ~ H ~ ~ H H H H H H ~ b ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ b ~ ~ ~ ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ .~ .b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ ~ ~ .~ .~ ~ . . .~ ~ ~ .~ . .%.].x u v+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .; * =.] 7+7+7+7+7+q ' {+T t...7+7+c+q q q q q q 7+{ =.. . . . . . . . . . . '+= l+= |+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v+=.] # ~ H H H * H H H * H H H H H H H H H H H H H ~ * ~ H H ~ H H H H H H H H ~ H ~ H H ~ H H H H ~ H ~ H H ~ H 5.H P.( /...O.1.; R.~ H ~ H ~ H ~ H H ~ H ~ H ~ ~ b ~ ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ ~ ~ ~ ~ ~ ~ .~ ~ . .~ ~ .~ . .~ ~ ~ . . . . .~ ~ .~ ~ ~ .%.].x i+v+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ~ L * i+x 7+c+7+7+7+7+7+(.z+T ,+j+q q 7+7+1.7+c+7+7+q =.. . . . . . . . . . . . 3 E.T {+E.D.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y =.] A+H H H H H H * * H H * H H * H H H H H H H H H H H H H H H H H H H H H ~ H -.H ~ H H H H ~ H H ~ H ~ H H H ~ H ~ H A+& L._.=.s 5+X =+H.) ) H b H ~ H ~ ~ H ~ ~ ~ ~ ~ H ~ ~ H ~ ~ b ~ b ~ b ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ .~ .~ ~ .~ . . .~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ . . .~ ~ ~ ~ ~ . .~ . . .~ . . . . . .A+] h Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i+A+A+$.$.A+A+$.$.A+/.$./.A+$././././././.].# - . . . . v+1 /./.P.> > P.> j /./.j /./.j /.> $.] /.D.. . . . . . . . . . . . . . . . . . . . . . . . . * ; H Y ] q 7+7+7+7+7+7+7+q o.T {+j+{ 7+7+7+7+7+q 7+{ Y . . . . . . . . . . . . . . |+{+l+,+'+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . . . x x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y h ].%.H H * H * H * * * * * H H H * H * H H * H * H H H H H H H H H H H H H H H H H H H H H H H H ~ H H H -.H H H H b ~ H H b H & f.M 6 $+0 U.| | 5+9 D :+*.H ~ H ~ H ~ ~ H -.H H ~ ~ ~ ~ ~ ~ -.~ b ~ ~ b ~ ~ ~ b b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ b ~ ~ ~ b ~ ~ ~ ~ ~ b ~ ~ ~ . .~ ~ .~ .~ .~ ~ ~ ~ ~ .~ . .~ ~ .~ ~ ~ .~ ~ ~ ~ . .~ .~ .~ $.] h Y . . . . . . . . . . . . . . . . h u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Z.[ M - M M M !.M '+M M M '+h - x h - h _.F._+9+@.D.. . (.=.3 x u u u u u u u u u u u u u - P c+r ..v+. . . . . . . . . . . . . . . . . . . . . . . . ; ; ~ Y M 7+{ { { H.{ L H.{ { <.T T s+q+7+q 7+q 7+q L v+. . . . . . . . . . . . . . . 3 1+l+{+y+D.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . . v+z 2+|.Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y x ].~ H * * H * * * * H * H H H H H * * * H H H * H H * H * H H H H H H H H H H H H H H H H H H H H H H H H H b H H H ~ H -.H H H ~ H H ]+c ^+$+U.U.%+%+a W.W.a $+%+(.3+ .~ ~ H ~ b ~ ~ ~ H -.H ~ H ~ ~ H ~ ~ ~ b ~ ~ b ~ ~ ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .b ~ ~ .~ ~ ~ .~ ~ ~ ~ . .~ ~ ~ ~ . .~ . . .~ . . . .~ ~ .~ .~ .~ . . .~ %.$.x =.v+. . . . . . . . . . v+@._+D.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . s ~.8+a W.X 0 0 0 0 0 0 0 0 0 U.0 0 0 U.0 0 U.$+e+C %.. Y q+[.| %+0 $+0 0 0 X 0 U.0 0 0 U.0 0 4 5+X 3.D.. . . . . . . . . . . . . . . . . . . . i+z o G+G+G+G+Y.O O $+o *+*+X /+,._.s /+L.{+T 1+..q c+7+7+{ ; . . . . . . . . . . . . . . . . . . B+{+T 1+- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . . v+u c+6+`.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v+i+x # ~ * * * * * * * H ; H * H * * * * * * * * H H H H * * H * H H H H H H q+H H H H H H H H H H H H H H H H H H H H H H H ~ H H H H H ~ H H -.H /.c ^ 4 5+%+4 0 U.| U.| | U.a 6 3.7.%.~ ~ ~ H ~ H ~ ~ ~ b ~ ~ H ~ ~ H ~ H ~ -.~ b ~ ~ b ~ b b b ~ b ~ b ~ ~ ~ ~ ~ ~ ~ .~ ~ ~ ~ ~ .~ ~ ~ ~ ~ ~ ~ .~ ~ ~ . .~ ~ ~ ~ . . .~ ~ .~ ~ ~ .~ ~ ~ ~ . .~ .~ .~ . . .~ . .~ ~ . . .].x i+v+. . . . v+q+c.z (.Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y e 0+8+| %+W.W.W.W.W.W.W.W.W.W.W.W.W.a W.W.a $+e+0+C Y Y > Z.I.$+, J.a W.W.a W.a a W.a a W.4 0 0 q+7.. . . . . . . . . . . . . . . . . . ^ /+G+` T.'.@+@+@+'.'.T.T.T.` ` D D D p+o K K *+G z+T = c { { 7+7+H . . . . . . . . . . . v+v+v+v+v+v+D.D.!.,+z+1+|+Y D.v+D.Y D.Y D.Y Y Y Y Y Y v+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . . 3 3 $.0 o @.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v+=.] # ~ * * * * * * * * * * * * * * * * H * H * * H * H * * * * H H * H * * H * * * H H * H H q+H * H H H H -.H H H H H H H H -.H H H H H H H ~ H H ~ H H * ]+6 0 5+%+0 U.U.U.| | | 5+| a 5+-+~ # %.~ ~ H ~ H H ~ H ~ H ~ H ~ b ~ ~ H ~ H ~ b ~ b ~ ~ ~ ~ b ~ ~ b ~ ~ b ~ ~ ~ ~ b ~ ~ ~ ~ ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ ~ ~ .~ ~ ~ .~ ~ . . . .~ ~ . . .~ .~ ~ ~ . .~ . .~ ~ . . . . . .A+] h x - 3.4 | > D.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . q+0+0+W.U.^+^ ^ ^ ^ ^ ^ ^ ^+^+^+^+^ ^+^+^+^+| J.0+Z.z . z g.}.I.%+9 9 X.6 6 6 6 X.X.6 X.0 | 0 i+u x . . . . . . . . . . . . . . v+6 o D '.@++.8.2 8.8.8.8.+.+.@+@+T.T.'.T.` ` D D ,.u N G+Y.,+T {+{.z [.* .. . . . . . . . . . ~ * A+$.$.$.# # $.# # # # ].# # # $.# $.# $.$.$.$.$.$.$.].h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . . v+D.3 $+0 $+A v+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v+=.] A+H * * * * ; * ; * * * * * * * H * * * * * * * * * * H ; H * * H * H * * H H H H * H H H H * H H * H * H * H * H H H H H H H H H H H H H H H ~ H H H H H H H H /.z 6 U.%+U.5+| | | | 5+5+5+9 $+| S w.x ] %.~ ~ H ~ ~ H ~ H b ~ b ~ H ~ b ~ ~ ~ ~ H ~ ~ b ~ b ~ ~ ~ ~ ~ ~ ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ .~ ~ ~ .~ ~ .~ .~ ~ ~ ~ ~ ~ .~ .~ ~ .~ ~ ~ ~ . .~ ~ ~ .~ . . . .~ . .~ . . .~ ~ .~ .~ .* ( 3 0 X.0 w.Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 ;+0+p %+^ i+i+i+i+i+i+i+i+i+i+i+^ i+i+i+i+^+J.p 0+, X.| 0+0+s.s.| ^+^+^+^+^+^+^ ^+^+X.a 0 ^ =.'+v+. . . . . . . . . . . Y ,.O T.@+8.V.V.V.V.V.V.V.V.V.V.2 2 +.+.+.@+'.'.T.T.T.` p+u u o G+G+n.{+T t./+/+z 4.u . . . . . . . . ; q { ~ # # # $.# $.$.$.# # $.# $.# $.# $.# # # # # # # # $.] Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . . Y - u | $+6 F.++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y h ]. .* ; ; ; * ; ; ; ; ; * ; * ; * ; * * * ; * * * * * H * * * H ; * * H * * H ; * H * * * * H * H * H H * H H H H H H * H * H H H H H H H H H H H H H H H H H H H ~ H H H * 1 _.$+| $+| 5+5+| | | 9 9 X.6 | | W.H.h h ]. .~ H ~ b ~ H ~ H ~ H ~ -.H ~ H ~ H ~ ~ H ~ H ~ ~ b ~ b ~ ~ ~ ~ b ~ b ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ b ~ ~ ~ ~ ~ ~ ~ .~ ~ ~ ~ ~ .~ .~ ~ ~ ~ ~ .~ ~ . .~ ~ ~ .~ .~ .~ .~ ~ .~ ~ .~ ~ ~ . .~ . . .~ ~ 1 3 i+0 0 $+]+%.x =.i+D.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , 0+}+W.6 i+i+i+i+i+Y i+Y i+i+Y i+i+i+i+^ ^ 0 4 f e+6 9 4+0+0+d+U.^ ^ i+^ ^ ^ ^ ^ ^+| U.4 Y u x . . . . . . . . . v+5+S +.8.)+!+)+!+!+!+!+!+)+!+)+)+)+V.V.V.V.2 2 8.+.+.@+@+'.T.T./+u M D D G+y.{+T 1+j+0 X < /+,.Y . . . . v+L L q 7+L * * * * * * ; ; ; ; ; ; ; ; ; ; ; L ; L ; L L L ; L ; =.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . . h j M 0 $+9 $+4 G.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y x ]. .* ; ; ; ; ; ; ; ; ; ; ; ; * * ; ; ; * * ; ; * * * * * * * * ; * H * ; * H * ; H * * * H * * H H H * H * H * * H * * * H H H H H H H * H * H H H H H H H H H H H H H H H H H H H H j i+0 W.| 5+5+5+5+5+5+9 6 ^ ^ 5+U.$+j %.i+x %.~ ~ H -.H ~ H ~ H ~ H ~ ~ H ~ b ~ ~ H ~ -.~ ~ H ~ H ~ b ~ b ~ ~ b ~ ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ b .~ ~ ~ ~ ~ ~ ~ ~ .~ ~ ~ ~ .~ ~ .~ ~ ~ ~ ~ ~ ~ .~ ~ .~ ~ .~ .~ ~ ~ . .~ . . . .~ . .~ .H ] 3 i+W.U.$+X.!.# =.h ] %.%.].x u v+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N }.0+4 0 i+i+i+i+i+i+i+i+Y i+i+i+i+^ i+i+i+6 4 J.v.M ^ %+0+0+p e+X.^ ^ i+i+i+i+^ ^ 4 U.X.i+'+Y . . . . . . . . _.T.V.!+!+).!+).).).).).!+).).!+!+!+!+!+!+)+)+V.V.2 2 2 +.+.+.@+@+T.K 3 *+D D p+y.z+T z+{.o o *+*+X z i+. . Y L L L + 7+7+7++ 7++ 7+7+7+7+7+7+7+7++ 7+7+7+7+7+7+7+7+7+7+7+q q ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . . z f.%.4 $+$+^+0 S :+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i+x # H * ; L ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; * ; ; * ; ; ..; ; ; * * * * * * * ; * * * * * H ; * ..* * H * * * * H * H * H H * H H H * * q+H H * H H * -.H H * H H H H H H H H H H H H H H H H H H 1.i+0 %+5+| 5+5+5+| 5+9 6 ^ i+$+U.| P.| Y =.].~ ~ H ~ H ~ H ~ H ~ H ~ b ~ H -.H ~ b ~ ~ H ~ -.~ -.~ H ~ b ~ b ~ ~ ~ ~ b ~ ~ ~ b ~ ~ ~ ~ ~ ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ ~ .~ .~ ~ .~ ~ .~ ~ .~ .~ ~ . .~ ~ .~ ~ ~ ~ . .~ .~ H - K Y 4 5+W.$+^ '+].Y =.] A+ .~ ~ . .A+].x Y v+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v+(+0+%+W.6 ^+^ ^ ^ ^+^+^+^+^ ^ i+i+i+i+^ ^ ^ $+| ;+c+^ ^ Z.0+}+p 5+^ i+^ ^ i+i+i+X.$+4 Y 3 $.. . . . . . . . o +.!+).g+<+g+<+<+<+<+<+<+).).<+<+<+).).).!+!+!+)+)+)+V.V.2 2 2 +.+.@+o 3 K T.` ` D p+= T {+t.o Y.Y.o o *+Z ^ =.L { L 7+7+q { q q q 7+{ 7+q { 7+{ { { q { { q { q { { { { { q L =.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . . [.c.F a 0 0 ^ X.U.F./ v+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v+=.x A+H L ; ; ; ; L ; ; L ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; * ; ; * * ; * * * ; * ; * ; * * * * * * * * * * * * H * * * ..H * * * * * * * H * H * H H H * * H * H H * H * H H H * H H H H H H H H H H H H H H * O.^ 0 %+U.U.U.U.0 U.U.| X.^+X.$+4 ^ P.6 . =.]. .~ ~ H ~ -.H ~ ~ H ~ H ~ H ~ ~ ~ ~ H ~ H ~ ~ ~ ~ ~ H ~ ~ -.~ b ~ -.b ~ ~ b b b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ ~ .~ ~ ~ .~ ~ .~ .~ ~ .~ . . . . . . .%.%.b 1 ] i+4 5+a 4 0 ^ K ^+v+i+] %. . . .~ .~ . .~ .# ] h Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ^+: a | 4 5+5+5+5+| | | 5+5+9 X.6 6 ^+^+^+^+5+0 p =+i+v+p 0+0+6+W.^+^ ^ i+i+i+i+0 | | Y - i+. . . . . . ^ T.)+<+<+g+E E E E g+E g+g+E E E g+<+<+<+<+).).!+!+!+)+)+)+)+V.V.2 2 +.8.'.u D.Y.T.T.T.T.` <.{+T 1+G G+G+Y.Y.o o q+{ L L 7+{ 7+{ q { { { { { q { { 7+{ { 7+{ q { { q { { { q { { L Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . . X.v 3.%+| 4 i+^ X.U.D M.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v+=.] %.H ; L L ; ; L L L ; ; L ; ; L L ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; * ; ; ; ; * ; * ; * * * * * * * * * * * * H * ; * * H * * H * H H H * H * H * H * H * H H H H * H H * H H q+H H H * H H H -.H H H H H H H H H H g =+4 4 a W.W.W.W.W.4 $+U.U.W.0 5+v+ .3 . i+] .H ~ H ~ b H ~ H ~ H ~ H ~ H H ~ b ~ b b H ~ H ~ b ~ H ~ H ~ H ~ ~ H ~ ~ ~ ~ ~ b ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ ~ ~ .~ ~ .~ ~ .~ ~ .%.~ ~ .%.%.-.q+`.G.^ $+9 J.0 %+0 ^+- =.. i+] %. . . . . . . . . .~ . . .~ .$.] =.Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y 0 ] $+4 %+a a a a %+a a W.4 0 | 5+5+5+5+9 5+a 0 A # ^ 0 0+0+y p | ^+^+^+^ i+^+W.4 i+3 x . . . . . . X V.).g+E E E E E &+&+E &+&+E E E E E g+g+g+<+<+<+).).!+!+!+)+V.V.V.V.2 8.+.+.N D.s '.T.T.T.T.T.t {+T = G G+G+G+G+G+o+L L q 7+q { 7+{ q q { 7+{ { c+{ { q { { { { q { { q { { { q { L v+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . . ] K.z a | $+i+i+^ 9 U.F.M.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v+h ]. .H L L ; L L L ; L L L ; ; ; L L ; L L ; ; L L L L ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; * * ; ; * ; * 5.* * 5.* * * * * * * ; * * H * * * * ; H * * * H * H * H * H * H * H q+* H H H H H H H H * H H H H * H H H H H H H H H H H { 5.4 5+e+e+J.e+e+e+J.J.J.4 | | i+u 1 . v+Y ] .~ H ~ H H ~ H b H ~ H ~ H b ~ H H ~ H ~ ~ H ~ H ~ ~ b ~ ~ ~ b ~ ~ ~ b ~ b ~ ~ ~ b ~ b ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ b ~ ~ ~ ~ ~ .~ ~ ~ ~ ~ .~ ~ .~ ~ ~ .~ ~ .~ .~ .~ %.~ .%.%.q+;+0+0+W.0 5+%+a 4 %+U.^+!.^ v+3 ] A+ .~ .~ .~ ~ . . . . .~ . . . .~ . .].x =.v+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - j 5+9 J.e+e+e+e+e+e+e+e+e+J.%+a W.W.4 4 4 J.5+N.`.v+6 , 0+}+$+W.| 9 X.X.X.$+| | ^ u u . . . . i+` !+<+E E E &+ + +V + +V &+&+&+&+E E E E E g+g+g+<+<+).).!+!+!+)+)+V.V.2 2 2 2 G+D.3 '.Z K K K 4.K - 1+T z+{.4._.M s ..L L { 7+q { { q { c+{ { { q { { q { q q q { { { { { { { q { { * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . . [.P.x 4 U.4 ^ Y i+Y | U.o :+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y h ].~ ; L L L L L L L L L ; L L ; L L L L ; ; L ; ; ; L ; ; ; ; L ; L L ; ; ; ; ; ; ; ; * ; ; ; ; ; * ; * ; ; * ; * * * ; * * 5.* * * * * * * * * * H ; * * * * * * * * H * H * H * H H * * * H * * H * H H q+H * H H * H H H H H H H H H H * r '+0 4 $+W.p e+e+a $+9 $+5+6 z u i+. v+=.]. .~ H H ~ H ~ H ~ H ~ H ~ H ~ H ~ ~ H ~ H ~ H ~ H ~ H ~ H ~ b ~ H ~ H ~ ~ ~ -.~ b ~ ~ ~ ~ ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ ~ .~ ~ .~ ~ .~ ~ .~ ~ ~ ~ ~ ~ ~ %. .~ .%.%.~ %.-.$ 0+0+0+p U.a J.%+a %+U.6 R i+v+i+] %. .~ .~ . .~ . .~ ~ . .~ . . . . .~ . .~ .A+].x i+v+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v+R.^+0 | %+%+%+%+%+%+%+J.e+e+p e+e+e+e+e+J.e+| 4 [.^+v+x e+Q W.W.W.$+0 0 $+4 $+^+L.u . . . . X.@+).E E E + + +V V V V V V + +&+ +&+E E E E E g+<+<+<+<+).!+!+!+!+)+)+V.V.V.2 2 2 u D.G ,.D.D.D.D.D.D.D.E.T T E.u D.D. .L L q 7+q q q { { { 7+{ q { q { { q { { { q { q { q { q { { { b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . . x u 3 U.$+4 6 Y v+v+Y $+U.9 Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Y x # ~ L L L { L L L L L L L L L L L L L L L ; L L ; L L L ; L L ; ; ; L ; ; L ; ; ; ; * L * ; ; ; ; ; ; ; ; ; ; ; * ; * ; * ; ; ..; * * * * * * * * * * * H * ; H H * H * H * H H * q+* H * * H * H H H * H H * H H * H * H H H H * -.* H H H H H H H H q k+J 6 p %+W.0 $+4 $+| 6 | 7.'+h . . Y h # ~ H H ~ H H H ~ -.H ~ b H ~ H ~ -.H ~ H ~ b ~ b ~ -.~ ~ ~ ~ ~ H ~ ~ ~ ~ H ~ ~ H ~ b ~ H ~ b ~ b b ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ b ~ ~ ~ .~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ .~ ~ .%. .%.%. .; d }.0+0+}+%+4 e+e+%+%+%+U.6 w i+. i+] A+ . . . . . . .~ . . . . . . .~ . . . .~ . . .~ . . . .A+] h Y v+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.s | 6 0 W.W.W.W.W.W.a %+%+J.J.e+e+e+e+e+e+4 0 u 3.v+. 4.c+U.5+e+J.%+%+e+5+5+4 #+3 . . . Z @+<+&+&+ +V V V ~.V V V V V V V V + +&+&+&+E E E E E g+<+<+<+).).!+)+!+)+)+)+V.V.2 2 Z D.,.G D.D.D.D.D.D.D.D.B+{+B.1+'+D.H L L 7+{ q { q { q { { { 7+{ q q q { q q { q { { { { { q { { { .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . . 3 @ x 6 $+$+| ^+^+6 6 6 a 0 i+7.v+. . . . . . . . . . . . . . . . . . . . . . . i+x A+H L L L L L L { L L L L L L L L L ; L L ; L ; L L ; ; L ; ; ; L ; ; L L L ; L ; ; ; L ; ; ; H * * ; * ; ; ; ; ; ; ; ; ; ; * ; * * * ; * * ; * * * * * * * * * * * * * ; * * * * * * * H H H * H H * H * * q+H * H H H * H H H H H * H H H H H H H H H H H H H H ; r @.0+s.J.e+$+5+5+0 *+> '+] . . v+i+] %.~ ~ ~ H ~ H H H ~ H H ~ H ~ H H ~ ~ H ~ H ~ H ~ H H H ~ H -.~ ~ ~ ~ -.~ ~ ~ ~ ~ H ~ ~ ~ H ~ ~ ~ b ~ b ~ ~ b ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ b ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ ~ ~ ~ ~ ~ ~ . .%.%.q+-.e m+0+B 8+6+U.e+e+e+e+J.%+U.X.R i+v+3 ].%. .~ ~ ~ ~ . .~ .~ .~ .~ . . .~ . .~ . . . . . . . .~ . . .%.# ] =.Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u b 6 $+5+W.W.W.a W.a a %+%+%+J.%+J.J.e+e+J.%+9 5+1 x . v+1.Y $+$+e+e+e+0 $+| $ j v+. v+9 ` ).E +V V V V ~.~.~.~.V V V V V V +V +&+&+E E E E g+g+<+<+<+).).).!+!+!+)+)+V.V.V.2 _ D.D.p+D.D.D.D.D.D.D.D.D.'+= B.= |+> L L 7+{ q q q q q q { { { q { { { q H.{ { { q { q { { { { { { ].. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . . ] A.b+^+$+0 $+9 9 | U.U.$+a 0 9 9+D.. . . . . . . . . . . . . . . . . v+=.] .H L { { { L { { { { { L { L { { L L L L L (.L L L L L { ; ; ; ; ; L L L ; L L ; ; ; L ; L L L ; ; * H H H * H * ; ; ; ; ; ; * ; ; ; ; ; ; ; ; ; ; * * ; * * * * * * * * * H * * H * * ..* H * * * * * * * * H * H H H * H * * * H H H * H * H * H H H * H H * H H H H H ~ H H `.i <+m+0+e o /+P.%.M ^ . . . Y h ] # A+# z A+z A+z A+%.A+Z %.Z %.z %.%.%.A+Z %.%.%.%.%.%. . .[. .~ [.~ %. .~ %. .[.~ ~ H -.~ ~ ~ ~ ~ ~ ~ ~ b b ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ .~ .~ ~ ~ ~ ~ ~ . .~ . .%.$+=+-+0+m+}+$+%+| %+e+e+p e+J.%+0 ^ - i+. i+] %. . . . . .~ . . . . . . . . .~ . . . . . .~ .~ . . . .%. .~ . . . .~ . .$.x =.D.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .._.0 X.a %+%+%+%+%+%+%+J.J.J.J.J.e+J.J.J.J.5+$+3 .. . s $.U.X.e+e+J.5+$+s.m+x . . ^+O 8.E V V V ~.~.~.~.~.~.~.~.~.~.V V V V + + +&+ +&+E E E E g+g+<+<+).).).!+)+!+)+)+)+V.V.2 u D.G 3 D.D.D.D.D.D.D.D.D.u 1+T {+y+] ; 7+q { q { q { q { q { c+q { { { q { q { { { q { { { { { L ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . . - ;+0+9 4 U.W.5+| U.$+$+4 W.J.9 m v.- v+v+Y v+. . . . . . . . v+=.] .* L L L L q ; L { { { L { { L L { L L L L L { L (.L L L (.L L ; { >.J 2+J #+' L (.g L L (.L L L ; { ; L ; * ; + u.u./ + r ; ; * ; ; ; ; ; ; * ; ; L L L L ; L 5.L L (.(.L 5.; ; ..* * * ; H * * ; ; 5.* ; ; ; * * 5.; * H H H H * H H 7.q+-.H [.-. .z A+Z A+z N z z z N ,.,.,.s s s s ,.s N q+6+f F.3.1 3 v+. . v+v+D.=._.s s 7.f+o+< N z z N z N z z 8 z z ,.z z s s ,.,.z N z z z 8 z s z ,.s ,.s s ,.,.,.,.,.N z N z z z z z A+z 8 %./+ ./+%. . .%.[.~ ~ ~ ~ [.H ~ ~ .~ ~ ~ ~ ~ .~ %.~ .~ ~ %.%. .%.-.C 0+0+0+}.J.J.W.6+p e+e+e+e+e+e+X.$+o+x Y h ].~ ~ ~ ~ .~ .~ .~ .~ . . . .~ ~ ~ ~ * ~ . . .~ ~ b ~ b ~ .%. . . . . . .~ . . . .A+].x i+v+. v+Y Y D.3 3 Y 3 3 3 3 Y D.3 v+v+v+. . . . ^ 6 ^+].s X.$.3 D.. . . . . . . . . . . M $.X.5+a J.e+e+e+e+e+e+e+e+e+e+e+e+e+e+e+J.a | 6 8 D.. . (.^ 0 W.p $+%+e+0+k 6 v+i+5+T.). +~.~.~.}.}.~.~.~.~.~.~.~.~.V V V V V V V +&+&+&+E E E g+g+<+<+<+).).).!+!+!+)+)+)+V.V./+D.s s D.D.D.D.D.D.D.D.D.D.3 E.T l+{+t.g ..q+* q+H q+H 7.H H H 7.H 7.* 7.H 7.7...7.H 7...H 3.c c P.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . . u Q.l 5+4 | a 5+5+| U.U.$+$+$+W.%+%+u+g ..b+c g u . . Y h ].~ ; { q { { L 7+J 2+Q.6.]+/.; { { 2+k+:+) 7+r ; L { (.L L L L L L L L L L L L m+0+0+m+A.Q.:+;.;.3+3+3+^.q c g w.+ ; ; * ;.;+0+0+0+;+(.3.O.@.; ; ; ; ; ; ; ; 3+& /./.& I I ..I K.& ]+j K.Q `.:+$.H * H L 2+} } t+2 9+F.`.1.Q Q (.Q j J ( c N s ,.L.1 & g 1.F.H.c 7.5.8 s s ,.N ,.s s ,.s s s s N /.j [.-.*+[ T.5.( R w ( /.7.1 %.=._.s s < u.0+0+A d 5.c @.& @ P.@ & & w O.7 l z ,.,.1 P.P.1 1 1 j o+5.7.[ O o X ,.,.,.s ,.N ,.s N ,.,.,.,.N N z z z 8 Z Z N s ,.s N < L./././.F+P.5.(.q+3.~ [. .%. .~ %.~ ~ ~ %.~ %. .e }.0+0+0+}+a W.e+e+e+e+e+e+J.%+%+m W.: o+c c L w.`.~ ~ .~ . .~ .~ .~ * H > > $.] F.Q.7+ .~ ~ /.1 c d / =+|.; . . . . . .%.~ .~ . .~ . . .; ( R b o+c+1.1.H.L q+....H /.o+R (+^+. . 9 -+0+0+;+-+r h .+A+] Y . . . . . . . . . D.(.i+0 4 e+e+p e+e+p e+p e+p p p e+e+p e+p e+9 $+u [.. . z K $+5+6+5+p h+0+d+6 v+_.$+V.&+~.~.~.}.~.~.}.}.}.}.~.~.~.~.~.~.V V V V + + +&+&+&+E E E g+g+g+<+<+).).).!+!+)+)+)+)+)+p+D.D.y+D.D.D.D.D.D.D.D.D.D.D.D.B+{+e.e.e.T {+= = = = z+z+z+= z+= z+z+= z+z+z+z+z+{+z+z+z+z+z+z+1+t.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . . D.f.R.6 $+0 W.| 9 9 9 5+5+| | | | U.| m 5+S S 0 F.W H L { q { { q { { q 7+..'+u h c+q+9 3+L (.7+1 h F.h+Z.c r ++* L L (.L L L L L L (.L L 9+;+0+h+s.6+a 4 4 q+0 X U.[.Z [.%.@.(.L * ) 0+0+0+0+I.W.0 $+m !.2+L ; ; ; ; ; (.g ^ h ,.9 9 A+A+N $.,.,.6 x X.o c+^.(.8 8 9+x [ x+d+6+S 4 X U.[.Z Z Z ,.*+Z 1 s s z !.6 M 5+/+[.U.[.> ^ ^.s.7.,.s ,.,.s s s s ,.,...9+j - h s h 9 ] 6 h _._.] N.o+*+@.s ,.s < ;+}.0+I.4 [.Z N ,.] 6 s s s s *+W.q+7.,.N ..J.Z _.6 6 6 _.,.g z.u.g.B a O Z ,.,.N N ,.,.,.,.,.s ,.N P.]+( R J ^.o+T.X 8 ^./.>.(.L.$._.^+_.4.1 J ;.3.F < ,.,.N N # A+%.%.%.4 v.E 0+0+B 8+y J.$+$+$+$+0 0 0 0 0 0 $+m | S [ *+m 3+H ~ .~ ~ .~ .~ ~ /.#+c.c 1 ^+U.U.W.H.H .b $.X.^+W.g.0+~.' + H . .~ . . . . .~ %. . . .b & o+[.N %./+| [.Z 8 z N A+z 9 $+$+7.[.v+] C 0+0+0+, $+0 0 a < (.(+^ . . . . . . . . . Z - $+9 p e+p e+p e+p p e+p e+p p e+e+e+e+e+a U.^ q+. . D.c+6 | J.J.d+0+0+%+Y Y 5+` <+h+}.}.}.}.}.}.~.}.~.}.}.~.~.~.~.~.~.V V V V V +&+&+&+E E E E g+<+<+<+).).).!+!+!+)+)+V.)+)+3 D.,.D.D.D.D.D.D.D.D.D.D.D.D.- ..]+E.1+1+1+= = ,+= = ,+= = ,+= ,+,+= ,+,+,+,+1+,+,+,+,+,+1+t.y+4.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . . 3 & N ^+$+0 4 5+9 X.X.X.X.X.X.X.9 9 X.X.0 W.U.U.U.O + ; L L { { q q { 7+/.- =.i+U.4 U.0 U.c+; L 7+u | 0 | | 9 ^ `.*.b ; { L { L (.L L L L L O.l e+4 J.a $+$+0 0 0 0 0 U.U.X.| 0 L H 9+f h+h+I.s.J.| 5+X.6 $+( 1 ..* * ; ; ; 3+^+W.0 $+$+$+$+$+$+0 0 U.0 U.U.0 ++8 s N @.Y a 9 $+4 $+$+$+$+0 0 U.U.| 9 U...,.M N (.5+4 0 $+$+0 0 U.$+I.0+&.j > s s ,.s ,.s s N Q | U.$+0 0 0 $+0 $+0 0 0 0 0 0 U.#+z ,.s 8 M.J.e+W.4 $+0 0 U.U.| | | | | $+U.[ 3.s N Q 4 5+U.Z | | U.4 a p }+}.0+0+s.U.,.,.,.s ,.N s N N N c k+d [.^+9 U.C [+0+}+e+N.S X.0 U.| U.| | | | 0 m i [+;.x+a 5+z ,.9 ,.Z R.}.f h+h+0+}+$+U.| X.^+i+Y Y Y Y i+i+^ ^ 5+4 U.| 4 0 W .%. . . . . .H > % G.Z ^+0 0 U.| W.$+F.%.%. .( ^ W.5+$+J.6+%.- ;.q . . . . . . . . . . . .~ j Z 5+$+U.0 U.U.U.0 U.U.U.U.U.4 U.(+N . q+0+0+}.h+J.U.5+U.U.$+e+Q @.v+. . . . . . . . Y c+6 | J.e+p e+p e+p e+p e+p e+e+e+p p e+p J.X.$+'+].. . 7.i+$+W.8+0+0+0+U.i+^ o I.B ~.}.}.}.0+}.}.}.}.}.}.}.}.}.~.~.~.V ~.~.V V +V + +&+&+E E E E g+g+<+<+).).).!+!+)+)+)+)+)+N D.4.D.D.D.D.D.D.D.D.D.D.D.D.] ; L L H .@.N $./.$.L. .L.%.@.> .> > .> .> .> A+> 8 . .3.H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . . D.'+x X.0 $+$+9 6 X.6 6 6 6 6 X.6 6 6 9 9 9 5+U.W.0 ^+Q b b * L { { q ; 1 x i+0 $+| $+$+U.$+j * ~ { 3 0 | 4 | $+W.%+=+P.] H L (.L L L L L L L 2+o+0 4 i+i+i+i+^ ^ ^ ^+6 X.5+9 5+X (..+0+8+J.W.$+U.a e+J.e+m 4 6 w.@.%. .8 %.Z b.%+| | ^+6 X.9 | U.0 4 4 W.a | U.=.]+h s @ Y 0 a X.^ i+v+Y Y i+^+6 5+| U.0 A 4.4.M |.J.| | 9 U.W.a %+a W.W.4 ^.P.N ,.,.M s s s N G.X.0 4 J.J.%+a a W.W.W.4 $+5+U.a 1.,.s M z (.0 4 0 v+i+i+^+9 U.$+a %+e+p | 9 r z 4.1 1.0 | 4 I.6+I.d+d+d+s.h+0+0+0+0+I.N s ,.s s N ,.s ( ++/ < X.0 | U.0 a 6+0+0+&+C Q =+9 $+p 6+I.I.6+p %+$+U.0 !+0+}.J.z ,.,.z I.h+0+0+0+h+h+%+B p $+$+$+$+| | 5+X.6 ^ i+v+Y Y ^ 5+0 | ]+%.].# %. .~ ~ _+*.R.6 $+U.5+W.J.J.U.6 !.# ].%.1 ^+U.J.%+J.e+a U.g k #+ .~ . . . .~ . . . .b /.,.$+5+J.e+e+e+J.e+e+J.e+m J.| $+..A+x b.8+%+8+W.e+p e+J.e+J.J.^+H.=.. . . . . . . . v+5.Y $+U.e+p p p e+p e+p p e+p e+e+e+e+e+e+e+0 $+3 3.. . =.@.$+W.}.0+0+h+5+i+X.` <+~.}.}.}.}.0+}.0+}.0+}.}.~.}.}.~.~.~.~.V ~.V V V V +&+&+&+E E E E g+g+<+<+).).).!+!+!+)+)+)+)+y.D.3 3 D.D.D.D.D.D.D.D.D.D.D./.L L L 7+{ { q { { { { { { q q { q q { q { q { { q { q { { { { H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . x F.$+| U.4 0 X.X.6 6 ^+6 ^+6 ^+^+6 6 | a $+0 0 U.9 W.Y b ] ] A+H { { c !.h 6 4 5+W.$+9 U.U.5+h %.] ; u 0 | | ^+^+6 9 9 ^+++#+* ; L L (.L L L L 3+z 0 $+Y i+i+i+i+^ ^+^+^+^+^+| 9 Z q+w.0+I.| | ^+W.$+W.4 W.W.0 6 | g M 4.M s N $ e+U.^ X.6 ^+^ i+i+i+Y Y Y 6 | $+u [.u h 7.^ U.W.^ Y Y v+v+i+i+^+6 X.i+| J.=+=.Y h A J.| i+i+Y Y i+^+9 4 %+p 4 1 L.s M s ,.s s N M.5+0 %+%+W.4 0 | | 9 X.X.^+0 U.| - 6 =.4.,.P.9 $+5+v+Y ^ 6 9 0 W.J.6+I.p | X.w.x u M (.| 5+J.6+6+6+p 6+I.B 0+0+0+0+h+s.,.,.1 ,.,.s N z ++P 9 | | 0 6+6+I.8+0+0+0+C P *+^.W.| I.6+p 6+6+6+6+I.s.0+0+0+0+}.X ,.z O ! }.0+0+0+h+0+0+0+8+I.6+6+6+p p e+J.a 0 i+5+U.0 $+W.| U.(.x ^+x # %. .& J 9 5+0 5+%+J.%+%+J.0 6 @.- =.1 $.6 U.J.4 4 W.W.J.e+, *./ ~ . . .~ . . .~ .~ /.8 0 0 J.J.J.%+J.%+a a a %+J.5+0 , 5.[ m | %+$+I.p e+J.e+J.e+e+X., ^.v+. . . . . . . . u > 5+5+%+e+e+e+e+e+e+e+e+e+e+e+e+J.J.J.J.J.%+9 5+$.h . . 1.` I.}+0+0+y 5+^ 0 6+B }.0+0+0+0+0+0+}.}.}.}.}.0+~.}.}.}.~.~.~.V V V V + + + +&+&+E E g+E g+g+<+<+).).).!+!+!+)+)+)+@+D.D.D.D.D.D.D.D.D.D.D.D.D.D. .L L q q q { { q { { { { { { { q { { { { { { { { { { { { { { { %.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . Y q+0 $+e+a 5+X.6 X.6 6 6 6 ^+^+^+^+^+6 W.5+4 $+$+4 0 ^+i+> K =.] b L H 1 ^ 9 0 $+4 9 6 6 $+U.X.u 6 3 c 3 0 | U.6 ^+^+^+^+9 e+:+) H ; L L L L L L ) ^ 0 4 Y v+v+Y v+Y v+Y Y Y v+4 5+Z f.c+%+$+4 Y i+^+^ ^+^+6 6 6 ^+| c+j =.4.M ,.>+e+U.^ | U.U.| 5+5+9 9 X.6 i+U.W._+| v+3 1.9 U.4 Y Y Y Y v+v+Y Y i+i+i+| %+(.=.v+K |.J.| ^ 5+9 9 ^+^ Y i+^ 9 J.$+0+_ M M s s s N u.0 U.W.e+e+J.a 4 $+U.5+X.X.0 U.5+K ^ D.i+$.P.X.0 5+v+v+Y i+^+5+$+a e+6+J.| 9 M.4.v+h g | | e+6+p p p I.s.}+h+0+0+0+m+9+o ,.s ,.N ,.N & M.5+U.9 e+6+p 6+d+I.s.}.d+u.o+o o+9+| %+6+p p p p 6+6+y h+0+0+0+}+x+< | f 0+0+0+0+0+0+0+0+}.h+}+8+I.d+I.d+I.d+I.W.U.X.9 9 9 | e+%+>+v+v+i+M %.M !.^ 0 | W.%+%+%+J.J.%+U.X.o+3 v+h ]+6 U.J.a a %+%+%+J.J.e+3+) .%.%. .~ . . . .b j q+$+0 J.J.%+%+a %+%+a a %+e+5+W.q+q+H.5+$+| 6+e+e+e+e+e+e+e+p X.$+'+$.. . . . . . . . v+(.Y $+| J.e+J.e+e+e+e+e+e+e+J.e+J.J.J.e+J.J.9 $+D.A+. . x =+%+y 0+}.W.i+X.p+8+h+0+}.0+}.0+0+0+0+0+0+}.}.}.}.~.~.}.~.~.~.~.V V V V + +&+&+&+E E E E g+g+<+<+).).).!+!+!+!+)+!+)+K D.D.D.D.D.D.D.D.D.D.D.D.D.b L L q { q q { { q q { { q { { { { { { { { { { { { { { { { { L $.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-". . . . & Q o+K b+a 4 5+6 ^+6 ^+6 6 ^+^+^+^+X.a U.^ i+3 K - h !.o+v+D.x ~ ..1 ^ X.0 4 U.X.6 6 6 $+U.9 3 ^ Y b Y 0 | U.6 6 6 6 ^+X.a 9 ( ; H ; L L L L L + Y $+4 ^+i+i+Y i+Y Y Y Y Y ^ 4 U.[.9+$+J.| U.i+Y Y Y Y Y Y Y Y 6 | , b+=.u 4.s ;.W.0 ^ ^+X.X.9 5+| | | | | ^ U.W./ %.. Y / [ U.U.v+v+Y v+Y v+Y Y Y Y ^+U.W.j =.. h ++%+| ^ U.$+$+$+0 | 6 ^ Y X.W.h+&.M 4.s s s N Q.0 0 $+p e+e+e+%+W.0 | 5+X.4 U.Z 3 ^ v+D.s P.9 $+5+v+Y v+i+i+^+5+$+%+p %+| X.M.^ . ^ 5.5+5+e+6+6+6+p I.I.6+}+}.}.y s.z.N _.s s ,.s 8 q.$+9 5+p 6+p p p p p 8+d+I.%+w.$.z 5.| 9 I.6+p p p p 6+y y 0+0+}.x+^.l s.0+0+0+0+0+0+0+0+0+}.s.}+y 6+6+I.6+I.I.I.%+| U.x+|.y.[ N.G.;.D.v+i+Z :+N 5+4 U.$+5+| 0 W.a J.%+0 X.^.v+. =.Q X.0 J.e+J.J.J.e+J.J.e+5+h q+%.A+%.%.~ ~ .~ ~ ]+$+0 0 e+%+%+a a a a %+%+J.e+9 e+X H.0 X.5+J.e+e+p p e+p p p e+| U./+# . . . . . . . . . ,.h U.X.a J.J.J.J.J.e+e+e+e+e+J.J.e+J.J.J.J.W.| 6 > D.. D.!.$+p [+4 ^ ^+U.p }+}.0+0+0+0+0+0+0+0+0+}.0+}.0+}.}.}.~.~.~.~.~.~.V V +V + +&+&+E E E g+E g+<+<+<+).).).!+!+!+!+!+!+G D.D.D.D.D.D.D.D.D.D.D.D.D.H L L 7+q { { { q { { { { { { { { { { { { { { { { { { { { { { { ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"x A+H L { J ;.) >.H.| a X.6 6 ^+6 6 ^+^+^+^+6 a 0 3 u [.| [.[.| h v+Y ] ~ !.x ^+$+4 | 6 ^+6 ^+6 $+U.9 3 i+v+b 3 0 | U.^+^+6 6 ^+^+5+4 8 I ~ b ; L L L ; 7+Y $+4 6 ^+^ ^+^ ^ ^ ^ ^ ^+6 W.$+/+k+4 a $+5+6 6 X.6 6 6 ^+^+6 0 | U.5.Y 3 K s & 9 $+5+v+Y i+i+i+^ ^+^+6 6 i+U.a ;.| v+D.w.N.U.5+Y v+Y v+v+Y i+^ ^+i+i+U.W.j ^ . x 5.%+U.^ 0 W.%+J.J.%+W.U.9 i+4 a i 1 u _.s s N (.9 0 a e+e+e+J.%+W.0 | 5+X.4 U.5+u i+. Y s & 5+0 5+v+v+Y v+Y i+6 5+0 W.$+U.9 >+h . h (.5+5+J.6+p 6+6+p p 6+s.y y 8+4 X 7.=.4.s s ,./.;.6 U.a 6+p p e+e+p 6+I.p 8+| N 5.h [.h U.J.6+p p p p p p d+s.s.h+a g.o+*+B 0+0+0+0+0+0+0+h+h+I.6+p 6+6+6+6+6+6+I.J.| | :+h !.!.!.'+h . v+^+-+0+8+4 0 6 i+Y Y ^ 6 | 4 J.0 9 J v+v+u :+5+0 W.p p e+e+e+e+e+e+a < >+9+| A+%. .~ .~ ~ & -.0 0 J.%+a a W.W.W.a %+%+e+9 J.U.H.0 4 5+p e+e+e+p e+e+p e+p 0 U.$+j i+. . . . . . . . D.q+^ 0 $+J.e+J.e+J.e+J.e+e+e+e+J.J.J.J.J.J.J.X.$+u %.. v+1.9+/ b+0 6 X.W.y }.0+0+0+0+0+0+0+0+0+0+}.0+}.}.}.}.}.}.}.~.~.V ~.V V V V + +&+&+&+E E E g+g+<+<+<+).).).!+!+!+!+!+!+!+8 D.D.D.D.D.D.D.D.D.D.D.D.5.L L 7+{ { q { { { { { { { { { { { { { { { { { { { { { L { L L =.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"7+7+7+7+7+q 7+{ 7+s W.0 5+6 6 ^+6 6 6 ^+^+^+X.a 0 i+w i+. v+Y i+Y i+^ # $.1 i+4 0 0 6 6 6 6 6 6 4 U.9 3 ^ v+b 3 0 | U.6 6 ^+^+6 ^+X.W.U.}.b+A+ .@.> > ,.F Y $+4 9 6 6 6 ^+^+6 ^+^+6 9 4 W.o z.4 U.a 5+9 5+9 5+| 9 5+5+9 W.U.X.u 6 v+u ,.- ^ 0 4 ^+i+i+Y Y v+Y v+Y v+i+U.S /.[.. v+W $+| U.v+Y v+Y v+i+^ 6 9 9 i+| %+Q Y . h Q a | ^ U.W.J.e+p p e+a 0 X.5+U..+| Y =._.M N !.^+U.J.%+%+W.W.$+U.| 5+X.X.4 U.5+3 ^ . v+] @.9 $+9 Y v+v+Y v+Y i+^+X.U.9 U.| -+h . u (.| | J.6+6+6+p 6+p 6+d+p I.}+| ^+o+Y ^ _.s N j N.9 | 6+p p p p p e+p p p y | 6 3.i+s @.U.U.6+p p p p p p I.I.6+}+| a Q.< W.B 0+s.h+0+0+0+I.0+h+I.6+6+p 6+6+p 6+6+J.5+5+g 3 . . v+v+v+D.i+X 0+0+p $+X.W.4 U.9 ^+i+Y ^+4 0 X.c D.. Y M.U.0 $+e+e+p e+e+e+J.J.I.%+}.0+-+%.A+%. . . .~ /./+0 4 %+a W.4 4 W.W.a a %+e+5+4 Y.c+a $+W.e+e+e+e+e+p p e+p e+0 U.$+5.=.i+h ] x i+v+. . v+..Y $+X.e+e+e+e+e+e+e+e+e+e+e+e+e+e+e+e+e+e+W.0 ^ q+. . $+Z.2.)+` < 0 p }+}.0+0+0+0+0+0+0+0+0+0+0+}.0+}.}.}.}.~.~.~.~.~.V ~.V V V V +&+&+E E E E E g+g+<+<+).).).).!+!+!+!+).!+!++.D.D.D.D.D.D.D.D.D.D.3 L L L 7+{ q { { { { { { { { { { { { { { { { { { { { { { { L { L i+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"7+7+7+7+7+7+7+q q u $+U.5+6 6 6 ^+6 ^+6 6 6 X.W.0 Y /.3 v+Y x ] ].].# b !.^ 0 5+W.X.6 6 ^+6 6 X.4 U.X.3 =.v+]+3 0 | 0 6 6 6 6 6 X.X.U.0 s.=+h ^ M M s s [.Y $+4 5+X.X.X.X.X.6 X.6 X.5+4 W.m / 0 | %+| | | | | | | 5+5+5+%+0 ^ u %.v+Y ,.- ^ 0 a 5+X.X.^+^+i+i+i+i+i+9 U.4 u [.. Y H.,.0 $+Y Y Y v+Y Y ^ 6 5+| ^+U.%+|.D.. K ^.%+| i+| $+a %+e+J.e+a 4 5+6 0 9+c+D.Y 4._.N h X.U.W.| 5+5+9 X.X.^+6 6 6 $+U.9 3 i+v+v+s P.9 0 5+v+Y v+Y Y Y Y i+^+X.^+0 U.i x . u 1.U.| J.I.6+6+6+6+6+I.6+p 6+s.| ^+!.^ 3 ^ s z & | U.0 6+p p e+e+p p e+p p I.| 6 !.# K c | | 6+p p p p p p 6+p 6+y 0 $+h H.$+9 0 X e+C 0+8+p d+y 8+I.p p p 6+6+p 6+e+| 9 ]+Y . D.3 i+=.=.4.1.0+}+%+5+6+I.6+p J.a 0 9 ^ 6 0 5+u u . 3 .+U.0 U.J.J.e+e+e+e+e+J.p 8+}+0+}+[.]. . . .~ ~ /.] U.W.W.W.4 4 4 W.W.a a %+e+5+$+x+.+e+0 %+J.J.J.J.J.J.e+e+e+e+| 0 $+o+u Y =.].A+ . .A+] x x ..9 5+%+e+e+e+e+p e+e+e+e+p e+e+e+e+p e+e+e+X.$+1 x i+T.<+ +E I.%+J.y h+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.}.}.}.}.}.~.~.~.V ~.V V +V V + +&+E E E E g+g+<+g+<+).).).).).!+!+!+!+).!+K D.D.D.D.D.D.D.D.D.K L L L 7+{ { { { { { { { { { { { { { { { { { { { { { { { { { L ; v+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"7+7+7+7+7+7+7+q + ^ $+U.| X.X.X.X.6 6 6 6 6 X.a 0 i+$.3 v+h # ~ H H * $.1 ^ 0 W.| 9 X.X.X.X.X.9 W.U.X.u i+v+@.=.| | $+5+9 5+5+5+9 9 | a 4 *.s i+4._.s M [.=.$+$+U.5+9 5+9 9 X.9 X.9 | $+4 o+& U.0 a 0 U.U.U.0 0 | | 5+U.4 $+i+u ^ . v+X.- i+0 %+U.| 5+9 X.^+^+^+^+6 U.| U.Y /.v+u 7.i+U.a ^+^ ^ i+i+v+Y i+^+X.i+| J.=+D.. K ^.J.U.i+6 9 | 0 $+4 $+$+| 9 ^ 0 _ :+v+Y =._.N h | U.0 ^+^ ^ ^ ^ i+i+^ ^+^+$+| 9 u i+. D.X.!.6 $+5+Y v+Y Y Y i+i+^ ^+6 i+0 $+B $.. u `.U.5+%+I.6+I.6+6+6+6+6+p 6+y | X.!.x D.^ M 8 /.9 | J.6+p e+p p e+e+p p p 6+| 6 1 R.K 7.| | 6+p p p p p p p p p 6+U.U.s /+^ 4.z | /+b+t+$+p I.p p p p p p p p p 6+e+| 9 ]+u . v+^ M 6 s s w.I.$+U.p I.I.d+d+I.I.6+e+W.^+| W.1 i+v+h 5.9 0 U.%+J.J.e+p e+e+e+e+d+p B m+# ].# . . .b /.x 0 W.W.4 4 4 4 4 W.W.a a J.5+| N..+m $+a J.%+%+%+%+%+J.J.e+e+5+| a ; Y v+=.] A+ .%. . . .~ O.i+$+$+p e+p p e+p e+p p e+e+p e+p e+p p e+4 0 K 5.s D ).B ~.s.y y B 0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.0+0+}.}.}.~.~.~.~.~.V V V V + + +&+&+&+E E g+E g+<+<+<+<+).).!+).).<+).).).!+|+D.D.D.D.D.D.D.D.D.- L L L 7+{ { { { { { { { { { { { { { { { { { { { { L L { { { { ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"7+) 7+7+7+7+7+7++ x $+U.U.5+9 9 9 9 9 9 9 X.5+a U.3 ( Y Y x ~ ; { { { > 6 $+| W.| 5+5+5+X.5+9 | a U.6 =.i+v+P.h 5+| W.U.| U.U.0 U.U.U.%+U./+(.Y =.4.M s /+x $+$+$+U.| | | 5+9 9 9 9 U.$+$+^ b+m.J.0 4 0 $+$+0 0 U.| | W.5+U.^ K i+. D.6 - ^ 0 %+$+0 U.5+9 X.6 6 X.9 $+U.| K ( . =.( ^ 0 W.| 5+9 X.^+^+i+v+Y Y i+U.J.) 3 . h ..W.U.^+Y i+i+^+6 6 6 6 ^ i+^ 0 W.`.v+v+u _.N - | U.| i+i+i+i+i+i+Y Y i+i+0 U.9 3 ^ . D.,.- X.$+9 Y i+^+^+6 6 X.X.9 9 ^ 0 $+}.H.. u ^.0 | %+I.I.6+6+6+6+6+6+p 6+I.| 5+N !.v+u _.N j 9 U.e+I.d+e+e+p p e+e+p 6+e+| X.8 q+u 3.5+| 6+p p p p p p p p 6+6+U.U.7.,.v+Y z X.,.F.Q.9 W.s.p p p p p p p p p 6+e+5+9 ]+i+. 3 4.s N z /.>+| 0 0 I.I.6+6+I.I.I.I.I.6+0 | a |.D.. x _.^+0 W.J.J.%+%+J.e+e+p e+p 6+a l F.^ ] # ~ .~ /.6 0 W.4 $+$+$+$+$+$+4 4 W.J.| | x M.q+a 0 J.a a a %+%+%+J.e+4 0 6 , ]+Y v+i+] A+ . . .%. . .7. .0 X.e+e+e+p e+p e+e+p p e+p e+e+e+p p p e+9 U.5.,.o I.B }.h+B h+}.0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.}.}.}.}.}.}.}.~.~.~.~.V V V V + +&+&+E E E E g+E <+<+<+).).).).).).).!+).).!+< D.D.D.D.D.D.D.D.D.!.L L { 7+{ { { { { { { { { { { { { { { { { L { { { q { { { { { H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"7+7+7+) 7+7+7+q + s 0 | $+U.| | U.| | U.5+| | a 0 i+( 3 v+x ~ L { q ]+c ^ 0 a 0 U.U.U.| | 5+5+| %+U.6 K Y . 1 x 5+| %+$+4 4 4 4 4 4 $+%+| 0 o+3 Y ^ _._.[.6 $+0 4 $+$+0 0 U.5+5+9 9 U.$+$+Y /._+%+9 %+$+4 4 4 $+0 0 W.U.4 ^ !.K v+. v+,._.^+U.%+4 $+$+U.| 5+5+5+| U.a | 9 1 M . ^ !.6 0 W.4 0 0 U.| 5+9 6 ^+^ 5+| $+1 i+. ^+'+U.U.5+i+Y Y v+Y v+Y v+Y Y 9 | 0 /.3 . i+^ N K 5+U.U.^+i+i+i+Y Y i+Y i+i+| U.5+u i+. Y ,./.9 $+6 ^ 9 | U.$+$+$+$+$+4 5+U.U.! ] . u Q U.5+%+I.I.I.I.6+I.6+6+6+6+I.5+5+@.h . Y _.s H.^+%+e+8+I.p 6+p p p p p 6+0 U.| ..5+u F | | I.p p p p p p p p p 6+| U.(.K . Y X.s s t m.X.| 8+6+p p p p p p p p 6+e+| 9 ]+u . i+_.N N z g (+X.| 6+6+6+6+I.I.I.I.I.I.d+a | 0 e v+. h @.5+5+e+e+e+J.%+a a %+J.e+p e+5+o Q h ^ 6 N z [./.s 0 4 4 $+U.U.U.U.0 0 $+4 a 5+| 8 1 ^.p 9 J.W.W.W.a a %+J.%+5+| 4 A - . . 3 ] A+%. . . .%. .@.O.^+U.a p p e+p e+p e+e+e+e+e+e+p p e+e+p e+0 4 h q+| '.s.}.0+}.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.}.}.}.~.~.~.~.V ~.V V +V V +&+&+E E E E g+g+g+<+<+<+).).<+).).<+).).<+y.D.D.D.D.D.D.D.D.D.$.L L L 7+{ { { { { { { { { { { { { { { { { { { { { { { { L { { -.=.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"7+7+7+7+7+7+7+7++ /.0 | 4 0 0 0 $+0 0 U.U.| | a 0 Y ( 3 Y x ~ L q 7+& [.| 5+J.$+4 $+0 U.U.| U.0 %+0 ^+- i+. 1 /.9 | e+a a %+%+%+a a a a | $+- ,.v+u 4._./.8 0 U.a W.W.4 4 $+U.| | | 0 $+$+=.x 5.A+^+J.$+4 4 4 4 W.%+U.4 ^+X.- u . . D.s '+^ 0 %+4 4 $+$+0 U.U.U.0 4 J.U.9 > x . ^+w z 0 4 a 4 4 $+0 0 U.| 5+5+W.U.X.u =.. ^+u X.U.W.9 X.X.6 6 ^+6 ^+^+6 $+U.X.u ^ . u 4.N u X.0 $+6 ^+^+^+i+i+i+i+Y Y 5+U.U.u ^ . Y M c 0 0 ^+5+$+a %+J.e+p p p e+W.| 5+$ h . =.(.U.| %+I.I.I.I.I.I.I.I.6+6+I.| 5+g ^ . Y 4.Z Q ( I.e+B d+I.y I.p p p 6+p | X.W.]+=.u c 5+5+6+p p p p p p p p 6+6+U.U...K v+D.^ s ,.O `.9 | I.p p p p p p p p p 6+e+5+X.& i+. Y ^+s N < x.0 U.| I.6+6+6+6+6+6+I.I.I.I.J.U.| |.v+. u .+J.5+4 $+%+e+J.%+a a a %+J.e+5+$+u .u 4.s ,.Z ( s 0 W.4 0 U.| | U.U.U.0 $+a | U.L.x 5.N 6 J.4 4 4 a %+e+W.9 0 | 6+J D.. v+=.].A+ . . . . . . .* 1 4 5+e+p e+p e+p e+p p p p e+e+p p e+p p J.5+9 7 6 S y h+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.}.0+}.}.}.}.}.~.~.~.V ~.V V V + +&+&+&+&+E E E E <+g+<+<+<+).<+).).<+).).).<+D D.D.D.D.D.D.D.D.D.> L L q 7+{ { { { { { { { { { { { { { L { { { L { L L { { { L { 7.X ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"7+7+7+7+r 7+7+q 1.z U.| W.$+$+4 W.4 $+$+U.| U.a 0 i+!.i+v+x ~ L q q 6.X.$+0 %+W.a W.W.W.$+$+$+$+J.U.6 !.3 . M ..X.| e+J.e+J.J.J.e+J.J.J.U.0 u $.v+Y 4._./.3.0 | %+%+a a a W.4 0 U.0 4 0 0 x =.^+W , a J.J.J.%+a | U.$+^+X.$.K Y . v+Y X.x ^+U.J.$+$+$+0 0 0 0 $+$+4 J.| 9 @.x . ^+1 ,.U.W.W.$+$+$+0 0 0 0 0 0 %+U.6 u i+. h h 6 U.%+0 U.U.U.U.U.| | | | %+U.6 K i+. Y ^ N h 6 U.a 5+9 9 X.6 6 ^+i+i+i+5+U.0 - i+. v+s Q 4 0 ^ U.4 %+e+p 6+I.I.I.I.J.| 9 A h . u F.$+| 4 I.I.d+I.d+I.I.I.I.I.I.5+5+r h . v+=.s _ -+0+d+0+h+B d+p p p 6+6+9 U.| |.!.v+K r 5+| I.6+p p p p p p p p I.| U...u . v+u M ,.*+g X.| I.p p p p p p p p p 6+e+| 9 & 3 v+i+4.N N /./ X.U.%+6+6+6+6+6+6+6+6+6+6+I.p | X.++v+. Y C J.0 ^ i+5+W.e+e+%+a W.a a a U.0 4.[.Y ^ s N Z $.,.0 4 4 0 U.| U.| U.U.0 $+a 5+| 3.h ^+3+m %+J.J.J.%+$+9 0 | 5+m Q.K v+. v+=.].%. . . . . . . .> 9+5+5+e+e+e+e+p e+p p e+e+e+p p e+p p e+e+e+5+4 '+X U.6+B 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.}.}.}.}.~.}.~.~.~.V ~.V +V + + +&+E E E E g+g+g+<+<+<+).<+).<+).<+).).).+.D.D.D.D.D.D.D.D.D.~ L L { q { { { { { { { { { { { { { L { { { { { { { { L { L { L o+p+*+4.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"7+7+) 7+7+7+7+7+7+%.0 | %+W.W.W.a a W.4 $+0 $+W.0 =.'+=.v+x A+ .A+/.[+6 0 %+J.J.J.J.J.%+%+%+a %+J.0 6 c D.. x G.X.| e+e+p p p e+p e+e+e+$+0 $.s v+D.^ _.( 7 0 | J.a %+a %+a W.4 $+$+W.0 0 M =.. /.c.=+X.X.| U.0 $+6 ^+5+( K u . . v+u ,.'+^+U.%+$+0 0 $+0 0 $+0 $+$+J.| 9 /.M . ^ !.^+0 W.$+U.U.U.U.0 0 0 $+0 J.U.6 - Y . h '+6 U.J.W.4 4 $+0 U.U.U.U.U.%+U.6 - i+. D.h ,.M 6 U.%+0 U.U.U.| 9 9 6 ^+^+U.| U.- ^ . v+- 1.4 0 ^+9 U.4 a e+e+6+6+I.I.J.| 5+-+x . 3 M.e+| 9 J.J.e+p p I.I.d+I.I.d+5+| `.h . Y =.s O t+0+0+0+0+h+d+I.I.6+J.5+U.9 %+2+D.. ^ `.5+5+I.p p p p p p 6+p 6+I.U.U.5.u . v+i+M s *+_+9 5+I.6+p p p p p p p p 6+e+5+X.]+Y . Y _.,.z j l X.| I.6+6+6+6+6+6+6+6+I.6+I.p U.X.(.v+. 3 [+0 U.^+6 Y ^ | W.e+e+%+a W.W.0 0 X./.h i+_.,.8 /.z 0 4 W.$+$+0 $+$+$+$+4 4 %+| | _+^ . A+w., ^+| 0 0 0 | X.4 m G.- v+. v+Y x # %. . . . . . .# ] q+h $+$+p e+e+e+e+e+p p p e+e+p e+e+p p p p a U.^+(.9 %+s.}.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.}.}.}.}.~.}.~.~.~.V V V V V + +&+ +&+E E E E g+<+g+<+).<+).<+<+).<+<+).g+V.D.D.D.D.D.D.D.D.D.c L L q q { { { { { { { { { { { L { { { { L { L { { { { { { L L D @+p+*+_.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"7+7+7+7+7+7+7+q + /+U.5+%+a %+%+%+%+%+%+W.W.W.W.0 M '+i+v+Y 4.M s c m 5+5+e+e+e+e+e+e+e+e+e+e+e+%+U.9 (.v+. ^+w.9 U.%+p p e+e+p e+p p p $+U.[.P.3 v+u 4.1 7.0 | %+a W.W.W.W.W.W.W.W.a U.$+] =.. v+!.:+(.4 %+6 i+^+9 1 - x D.. . . 3 =.,.M ^+0 %+4 $+0 $+0 $+0 $+$+$+%+| 9 $.M . h !.^ U.a U.5+5+5+| U.U.0 0 $+%+0 ^+- u . =./.6 U.J.J.%+a W.$+U.| 5+5+| %+U.6 K u . Y =.1 1 ^+0 J.W.$+4 $+$+U.| 5+9 X.$+U.| K i+. Y M Q 0 0 ^+^+X.5+| $+W.a J.J.e+0 U.U.Z.> . Y |.%+0 ^+^+9 5+$+W.e+6+I.I.I.I.5+5+++K . Y ^+s $+h+0+0+0+0+h+y d+W.| U.5+5+J.w.!.D.. 4.`.5+| I.6+6+6+p 6+6+p 6+p 6+| U.g K . v+i+_.N *+5.9 5+I.6+p p p p p p p p 6+p | X.& =.. Y _.s 8 g 4 U.5+I.6+6+p 6+6+6+6+6+6+6+6+p | X.g D.. i+^.5+U.0 a 0 6 Y ^+| a e+e+%+a $+9 9 r x v+^ s Z P.-.0 $+%+a W.a a a a %+a %+e+5+| `.x . Y R.>+1 x+$+^ 5+W.d r /.u D.. . v+=.].A+ . . . . .~ .] x $.o+0 9 e+e+e+e+e+e+e+e+e+e+e+e+p p e+e+e+e+e+9 4 > 5+0 I.h+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.}.}.~.}.~.~.~.~.~.~.V V +V + +&+E E E E E E g+g+<+).<+<+<+g+).g+).<+).r.3 D.D.D.D.D.D.D.D.; L L 7+{ { { { { { { { { L { { { { { L L { { { { { { L { { { L G+8.+.S o M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"7+7+7+7+7+7+7+q 7+c U.5+e+%+J.J.J.J.J.J.%+a %+$+0 %.!.i+. Y ^ M s `.4 0 9 p e+e+e+e+e+e+e+e+e+p %+U.9 r v+. x A 9 U.%+e+p p e+p e+e+e+e+W.U.| R ^ v+u 4./.z $+U.W.0 $+$+$+$+4 $+4 4 %+U.0 ,.K . . 3 M o+Q 5.1.X [.A+M x v+. . v+Y u 4.,.!.^+U.J.W.4 $+4 $+$+$+4 4 W.%+| 9 /.M . ^ !.^ 0 a U.| | | | U.U.$+$+W.J.U.6 /.3 . u o+X.0 a e+e+e+%+4 U.X.X.6 X.W.U.X.u =.. D.^ s 1 ^+0 J.W.W.W.4 4 $+0 U.5+5+W.U.5+K ^ . D.M (.0 0 ^+Y ^ ^ ^+6 X.5+| U.U.^+U.W.#+| v+K ( ^+0 $+i+Y i+6 U.%+p I.d+I.d+5+5+^.h . v+=.M ,.J.0+0+0+h+d+$+U.U.5+6 $+p >+1 . . . '+;.5+5+I.6+6+6+p p 6+6+6+6+I.U.U.5.K . v+=.M s *+_+9 5+I.p p p p p p p p p 6+e+5+9 & i+v+Y _.s z r | U.4 6+6+6+p p 6+6+6+6+6+6+6+6+| 6 ..D.. u Q 9 | J.I.p %+U.^+Y ^+U.a e+e+%+X.U./ _.v+i+M z ]+$+0 0 e+J.J.J.e+e+J.e+e+e+e+| U.A $.. v+x %.q (.f R.j /.> x =.. . v+Y =.] # %. .~ . .%. .A+x x ] ++i+0 4 p p p p e+e+e+p p e+e+e+p p p p p e+4 $+u R.5+e+s.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.}.}.}.}.}.~.~.V V ~.V V + + + + +&+E E E g+g+g+<+g+<+<+<+<+<+<+<+g+).<+<+4.D.D.D.D.D.D.D.D.L L L 7+{ { { { { { { { { { { { { { { { { { { { { { { { L { L L p+T.@+V.p+o s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"7+7+7+7+7+7+7+7++ #+| 5+J.J.J.J.J.J.J.J.J.J.J.$+0 Z !.i+v+D.K _.Z r X.0 W.J.e+e+e+e+e+e+e+e+e+e+%+0 X.o+D.. 4./ 9 U.J.p e+e+p e+p p e+p W.U.5+]+i+. Y 4.$._.0 $+0 5+| 5+| | U.0 $+$+W.U.$+1 u . v+Y K M M s h Y Y v+. . . . v+D.u ^ M ,.M ^+U.%+W.W.W.W.4 W.4 W.W.a e+| 9 3.x . ^+!.6 U.W.4 0 0 $+$+$+4 W.a %+%+0 X.Q v+. 3 ;.U.0 0 J.e+p J.W.| X.^+^ ^ 0 U.9 3 i+. v+K ,._.6 U.J.W.W.4 4 4 $+$+0 U.| W.U.5+K i+. Y _.o+U.0 X.v+Y Y Y i+i+^ ^ ^ ^ Y U.W.K .. ^+!.^+U.a X.Y Y 6 0 J.6+d+I.I.I.5+5+^.h . v+^ s N U.y 0+0+x+i e+6 ^ ^+,.@.K.h v+. . v+M P 5+| I.6+6+6+6+6+6+p p 6+6+| U.(.K . v+i+M ,.*+5.X.| I.6+p p p p p p p p 6+p | X.& 3 . 3 ^+,./+% X.U.e+6+6+6+6+6+p 6+6+6+6+6+6+p U.X...D.. u o+X.| e+I.I.I.p a | ^ Y 6 U.W.J.| U.F./.D.3 ^+Z P.X 0 0 e+J.e+e+e+e+p e+e+p J.| $+}...Y v+=.6 N z # x K =.3 v+. v+D.Y =.x $.A+ . . . . . .~ $.x x x [.- 0 X.J.e+e+e+p p p e+e+p p p e+e+e+p e+p J.9 | > X.4 y h+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.}.}.~.~.~.~.~.~.V V V V V +&+&+&+&+E E E E g+g+<+g+<+<+<+g+<+<+g+<+<+<+|+D.D.D.D.D.D.D.u L L L 7+{ { { { L { { L { { { { { { { { { L { L L L { L { L { * V.'.` '.V.p+O s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"7+7+7+7+7+7+7+q 7+r U.5+J.J.%+J.J.J.J.%+%+J.J.$+0 N !.i+. 3 K 4.< @.^+U.J.W.a a a %+%+J.J.J.J.J.J.U.6 3.D.. > 1 U.| J.%+a a a a W.a a W.5+$+5+]+^ . 3 =.z x $+$+U.9 9 9 9 5+5+| | 0 4 0 $+M =.. . Y K 4._.4.h u u Y Y D.Y 3 u =.4.4._.,.'+^ 0 %+W.W.4 W.W.W.W.a a %+e+| X.6.4.. ^+w /+0 $+%+a a a a %+%+J.J.e+a 0 | .+v+. Y M.0 0 U.%+J.e+e+a U.6 ^ i+i+| U.| u =.. D.=.N - 6 U.J.$+$+$+$+$+0 0 U.| 5+4 U.5+K =.. D.- 5.U.0 9 v+Y v+Y v+v+Y Y v+Y i+U.4 3 @.. x P.6 U.W.^+v+^+0 %+6+I.I.I.I.I.5+5+^.h . v+^ 6 s z | S T.&.m.8 $.P.( - - - D.=.Y v+3 1 =+5+5+I.6+6+6+6+6+6+6+6+6+I.| U.o+K . D.i+_.,.7.g X.| 6+6+p p p p p p p p p e+5+9 & i+. Y _.,.[.G.6 | 6+6+p p 6+6+p p 6+p 6+6+6+p | 6 c D.. u 5.X.| p I.I.I.I.I.e+W.5+^ i+^ X.a 0 6 /.3 D.4.z /.].0 4 %+%+%+J.J.e+e+e+e+p e+$+e+0+d+^+Y =.s ,.N s s x =.i+i+u =.^ x ].A+ . . . . . . . .%.] x x x ] H.^ U.W.e+p e+e+e+p p p e+p p , p e+e+e+p e+U.4 u 7.| p }+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.}.}.}.}.}.}.~.~.~.~.V V V V V +&+&+&+&+E E E g+g+g+<+<+g+g+g+<+g+<+g+).g+g+Z D.D.D.D.D.D.D.- ; L L 7+{ { { { { { { { { L { L L { { L { L { { { L { { { L L * 2 !+@+T.T.)+D o _.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-") 7+) 7+7+7+; 7.q+r | 5+J.%+%+%+%+%+%+%+%+%+%+4 0 x '+i+. Y =._./+1 9 | %+$+$+$+4 4 W.a %+%+J.%+J.0 x ( 3 . ] m 0 4 0 0 0 0 0 0 0 0 0 0 $+9 0 @ i+. Y K $.^ 0 $+U.5+X.9 9 9 9 5+5+| 0 $+0 h =.. v+3 ^ _._._._.^+4.u K =.u ^ 4.4._._._.s x ^ U.J.4 $+4 4 4 W.W.a a %+e+| 9 #+h . ^ R 0 0 0 e+J.J.J.J.J.e+e+e+p 4 0 U.=+. . 3 =+U.0 $+e+p e+J.W.U.X.^ i+i+| U.| u ^ . v+^ ,.=.6 U.%+U.U.U.U.U.| | 5+9 9 4 | | K i+. Y M ..5+0 5+v+v+Y v+Y v+v+Y v+v+i+U.W.u [.. ^+h ^+0 | i+9 W.e+I.I.I.I.I.6+I.| 5+^.K . D.=.M s ,.s O 7.l [ O [ F.[ R.O [.g > $.^ 4./.x+5+| I.I.6+I.6+6+6+I.6+6+I.5+U.Q K . . u x ,.*+..9 5+I.6+p p p p p p p p 6+e+| X.& i+v+Y _.s 3.J X.| I.p 6+6+6+p 6+6+p 6+6+p 6+6+| 6 c D.. u 5.X.U.p I.I.I.I.I.I.6+e+W.U.X.^ X.$+z 5.v+v+^ N ..i+0 W.U.U.$+$+W.a %+J.e+e+e+U.a 0+|.^ D.^ s N N N s s M x h x x ].A+%.%. . . .~ . .~ .# x $.] x ] 5.=.4 5+p e+p p p e+e+e+e+e+e+e+J.J.J.J.J.e+%+| ^+[.X.a 8+}.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+0+}.}.}.}.~.~.~.~.V ~.V V + +V +&+&+E E E E E g+g+g+<+g+<+g+g+g+<+g+g+<+g+G D.D.D.D.D.D.D.- L L L 7+{ { L { { L { { L { { { { { L { { { { L { { L L L { { 5.+.8.).+.T.` )+T.O i+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"7+q ; b > s _.M 8 ^.| 5+e+J.%+J.J.J.J.J.%+%+%+4 0 ^+'+i+. Y K _.[.4.0 | 4 U.U.0 0 0 $+4 W.W.W.W.J.U.^+h u . > [+W.0 ^+Y Y Y i+i+i+i+i+i+^ X.| '+i+. D.^ N 4.$+$+0 5+5+9 9 9 9 5+5+5+0 $+$+i+K . . 3 K 4._.4._.4.M _.4._.4._._._._.M M s '+i+0 %+0 0 $+$+4 4 4 4 W.a e+| X..._.. ^+R -.0 0 J.J.J.J.J.J.e+e+e+e+W.0 | .+v+. Y J 9 0 a e+J.J.W.0 5+6 ^ i+i+| U.5+3 ^ . D.=.N u X.U.a 5+5+9 9 9 9 X.X.6 ^+0 | U.- ^ . D.s c 5+0 5+Y v+Y Y v+Y v+v+Y Y Y U.a @.| . u (.$+$+^+0 J.6+I.I.I.I.6+6+I.I.| 5+;.h . v+=.s s ,.s l Q.^.Q Z X W.%+J.W.5+5+5+g M M j x+5+5+I.I.I.I.I.I.I.6+I.I.I.5+U.N.- . v+=._.s *+' 9 | 6+6+p p p p p p p p 6+e+5+X.& Y v+Y _.,.F J 9 | I.p 6+p 6+6+p 6+p 6+6+6+6+6+| 6 c v+. u 5.X.| p I.I.I.I.I.d+I.I.6+6+J.a 6 | e+=+v+v+u M .+| 0 $+i+i+^ ^+6 9 5+U.$+4 J.| $+C 8 v+v+=.s ,.z N N ,.,.s ,.,.,.,.N A+%.~ . . .~ %. . .] H 3.b+] x $.:+4 | e+%+J.J.J.J.J.J.%+%+%+%+a W.4 4 W.%+e+| $+u -.U.6+B 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.}.~.}.}.~.~.~.V ~.V V V + + +&+ +&+E E E g+g+g+g+<+g+g+g+g+g+g+g+g+g+g+_ D.D.D.D.D.D.D.1 L L { 7+{ { { { { { { { { L { { L { { L L L { L { { { { L L { o++.+.+.!+8.T.D V.@+o v+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"/.s M M _._.M _.@.=+| 5+e+e+e+e+e+e+e+e+J.J.J.4 $+x !.3 v+D.u _.7.Y $+U.U.9 9 5+| | 0 $+4 W.4 4 J.U.6 u ^ . u P.M.7.;.[ q+0 X -.U.-.U.-.| -.-.].. . Y u A+^ $+$+0 | 5+5+9 9 5+5+| 5+0 $+$+u ^ . v+Y K _._._._._._._.M M M _._.M _._.4.,._.i+0 %+U.| U.0 0 $+0 $+0 $+%+| 9 /.x . ^ !.z 0 4 %+a %+%+%+J.J.e+J.e+J.U.X.(.D.. u L.X.U.J.W.W.$+U.5+X.^+^+^ ^ U.U.5+3 i+. v+=.,.h X.U.4 X.6 6 ^+^+^+^+^ i+i+5+U.X K i+. v+s @.5+0 5+Y v+v+v+Y v+Y i+^ ^+i+0 W.>+> . 3 $ e+5+| 6+I.I.I.I.I.6+6+6+6+I.5+5+e '+. v+i+_.s /+y.j ^+6 a a U.5+9 5+$+W.U.W.Q s s 3.}+5+| I.d+I.I.I.I.I.I.I.I.d+5+| F.K . v+i+6 N X g X.| 6+6+p p p p p p p p 6+p | 9 & i+. Y _.s X r 5+5+I.6+p 6+p p 6+6+6+6+p 6+6+p U.X...D.. u (.X.U.p I.I.I.I.I.I.d+I.I.I.I.6+U.| %+: v+. i+s w.d+| 6 6 ^+^+i+Y Y Y Y i+^+5+U.$+1 6 v+v+=.s s N ,.N ,.,.z ,.,.,.,.,.z 9 N z %.%.~ .~ A+].@.q+-+q+x A+l 8+J.e+4 $+4 4 W.4 4 4 4 4 4 4 $+U.U.U.$+a %+U.4.[.9 %+s.}.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.}.}.}.}.~.~.~.~.~.~.V V V V V +&+&+&+E E E E E g+g+g+g+g+g+g+g+g+g+g+g+g+2.D.D.D.D.D.D.D.A+L L { q L { { { L { L { { { { { { { L { { { { { L { L { { { L [ +.+.+.+.!+2 T.D +.2 < . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"_.M M M s _.M _.P.x+| 5+J.p p p p e+e+e+e+e+e+0 0 ,.!.i+. Y =._._+Y $+0 X.6 6 6 X.9 5+U.0 $+$+$+J.U.6 u =.. v+K M s h =.D.v+v+v+v+v+v+v+. v+v+. v+. 3 u z u $+$+0 5+5+9 9 9 9 5+| | 0 $+$+Y h . . 3 =._._.4.M 4.4._._._.M M _.M _.M _.s '+^ 0 a 5+5+5+| | U.| | | U.a U.5+1 M . ^+!.N 0 4 %+W.a a %+J.J.J.%+%+J.0 6 /.3 . h - 6 U.%+U.| 5+5+X.X.^+^+^+^+$+U.9 3 ^ . D.=.,.K 9 U.$+^+i+i+i+i+Y Y Y Y i+9 U.0 K =.. v+s ..U.0 X.Y Y i+i+i+^ 6 X.| U.9 U.U.! $.. 3 .+a 5+a I.I.I.6+6+6+I.I.I.I.I.| < }.o+. v+=.s z /.u i+0 $+9 $+%+J.e+%+$+W.U.0 m.^ ^+N.0+0 5+I.I.I.I.I.I.I.I.I.I.I.5+U.b+- . D.u M ,.7.#+X.| I.6+p p p p p p p p 6+e+5+9 ]+i+v+Y _.s X g | | I.6+6+6+6+6+6+6+6+6+6+6+6+p | 6 5.D.. u (.X.| e+I.I.I.d+d+I.I.I.I.I.I.6+| U.%+*.Y v+u ,.+.8+U.^+%+a a 4 $+U.| 9 6 ^+i+0 4 h > . v+=.s ,.,.N N N ,.N N N N z N N z N N 9 N N A+%.].] K U.F./.] ] -+0+h+J.$+| U.U.U.U.0 U.U.U.U.U.U.5+| | U.$+a U.4 c 9 $+d+h+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.}.}.}.}.}.}.~.~.~.~.~.V V V + + +&+&+&+E E E E g+g+g+g+g+g+g+g+g+g+g+g+g+g+2 D.D.D.D.D.D.D.> L L q q { { L { { { { L { L L { L { { { { L L { L { L { { { L F.8.+.+.+.+.!+2 T.D '.+.z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"M _.M M M M _.M /.}+5+5+J.e+p e+e+p p p e+e+e+0 $+%.!.i+. Y K 4.7.u 4 0 X.^+^ ^+6 X.5+| U.$+0 $+%+0 6 - i+. v+u 4.4.4.=.Y v+D.v+v+D.v+D.D.v+v+D.v+Y u ^ # ^ $+$+0 | 5+9 9 9 5+| | | 0 $+4 3 ^ . v+Y K 4.4.M 4.M M _._._._.M M _._._._.,._.^ 0 W.X.X.9 9 5+| | | | U.a | 9 /.M . ^ 1 ,.0 $+%+a %+a %+%+%+%+%+a J.U.^+K i+. ^ u X.U.W.X.X.X.X.X.X.6 6 6 X.4 U.X.u i+. v+=.,.u 9 U.U.i+Y Y Y v+v+Y v+v+Y 5+U.| u ^ . D.M `.W.0 ^ X.9 5+| U.$+4 %+J.p a U.9 A ^ . =.Q | | %+I.I.6+I.6+I.I.I.I.I.p 5+U.! a v+v+i+,.!.3 i+$+| 4 W.0 0 U.| 9 6 0 U.a W 3 i+b+0+$+| I.I.I.I.I.I.I.I.I.I.d+9 | m - . v+u 6 ,.*+' X.| 6+6+p p p p p p p p p e+| 9 & u . Y _.,.7.3.5+5+I.6+6+6+6+6+6+6+6+6+6+6+I.p U.X.Q v+. Y J 5+| J.I.d+I.I.I.6+p e+%+J.%+%+6 U.d+f D.. Y $.F.p U.9 p 6+6+6+p p e+e+%+a 0 | U.M.U.. v+=.M ,.N N N N N N N N z N N N N ,.z s N ,.N N N - - 5+4 f # h b+0+0+e+%+9 9 5+5+| 5+5+| | | 5+5+5+5+5+| | $+%+U.7.c+| e+}+}.0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+0+}.}.}.~.~.~.~.~.V V ~.V V V V + +&+&+&+E E g+E g+g+g+E g+E g+E g+E g+g+E !+D.D.D.D.D.D.D.H L ; q { L { { { L { { { L { { { { { L L L { { L { { { L L L L _ 8.2 +.+.+.@+!+2 T.D T.'._.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"M _._._._.M M s P.x+| 5+e+e+e+J.J.J.J.J.J.J.e+0 0 X ( ^ . D.^ _./+u $+U.5+6 6 X.X.9 5+U.U.$+4 4 J.U.6 !.3 . v+i+h 4.4.4.h u u u u =.=.=.u K =.u u u K 4.z M $+0 $+| 5+5+9 9 5+5+| | 0 $+$+Y h . . Y 4._._._.4.4._._._._.4._._.M _._.M s !.^+0 W.6 6 9 9 5+5+U.U.0 $+%+U.9 ..x . ^+P.-.0 0 J.%+%+%+%+a W.W.4 $+%+U.X.3 =.. ^+u 9 U.4 X.X.6 6 6 X.X.X.X.X.4 U.X.u i+. v+^ N K | U.5+Y v+v+v+Y Y v+Y v+Y | U.5+3 ^ . Y _.A.6+U.6 W.%+J.e+e+p I.I.I.I.p | X.W h . h ..5+| J.I.6+I.I.I.I.I.6+6+J.4 | U.|.| . v+K 8 u ^+4 U.U.^ i+Y i+Y i+Y Y 6 $+I.i 3 i+@.h+U.5+I.I.I.I.6+I.I.6+I.I.d+5+| l '+. v+i+M ,.X 6.X.| I.6+p p p p p p 6+6+6+e+5+9 ]+i+. i+_.,.L.@.9 5+I.6+I.I.6+6+I.I.I.I.d+I.I.J.U.5+O.v+. u =+U.U.4 6+6+6+p e+a $+U.5+5+5+9 9 | 6+k v+. Y 1 A y U.X.p 6+6+I.I.I.I.I.I.6+e+| 5+}+7.. v+^ s ,.z N z N z N z ,.N ,.N ,.N N N z ,.N ,.N Z '+^ U.5+m+H.x 9 ! 0+d+J.5+9 9 9 9 9 9 X.X.9 5+5+5+5+5+| | | $+U.D *.^+4 y h+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.}.}.}.}.~.~.~.~.V V V V +V +&+&+&+&+E E E E E E g+E g+E g+E g+E g+E g+E 3 D.D.D.D.D.D...L L 7+{ { L { L { L { { { { L L L { { { L { { L L L { { { L ; T.2 2 8.+.+.+.+.!+V.'.D '.` =.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"_.M _._._._._._./.x+| 5+e+J.a a a a a a %+%+J.0 0 *+R i+. Y K 4.z !.| | W.U.U.U.U.0 $+$+4 W.W.a J.0 6 @.D.. v+u 4._.4.4.4.4.4.4.^+4.4.4._.4.4.4.^+4.4.x /.,.$+U.W.U.U.| 5+| | | U.U.0 $+$+u ^ . v+3 ^ _._._.M _._._.4._._._._.M _.M 4.,.M ^ 0 W.9 X.5+U.U.0 4 W.a %+e+U.X.G.^ . ^ @.W.0 U.e+J.a a W.4 $+U.5+5+4 U.9 u i+. x u 9 U.4 X.6 X.X.X.X.9 9 X.X.4 U.9 3 ^ . D.=.,.h 0 U.6 v+v+Y v+v+v+v+Y Y i+$+U.X.u i+. 3 X.0+}+0 U.6+I.I.I.d+I.I.I.I.I.6+| X.a+^ . ^ ..5+| %+I.I.I.6+p %+a 4 0 U.6 0 $+r | . v+# ' | a U.6 6 X.9 5+5+| | U.U.^+4 h+f 9 v+1 $ 5+| I.I.6+I.I.I.I.I.I.I.I.9 | m '+. v+i+M ,.*+>.X.| I.p 6+6+p p 6+6+p p p e+| 9 ]+3 v+Y _.,.L./.X.5+I.I.6+I.d+I.I.d+I.d+I.I.I.4 | 0 e . v+Y C W.| X.a a W.4 U.5+^+i+Y Y Y Y 0 4 /+J . v+Y M A.d+U.^+4 %+%+e+p 6+I.I.I.d+6+5+5+x+'+. D.=.s ,.N N N N N ,.,.N ,.z ,.N ,.N N ,.,.N N N !.^ X.$+U., v.] 6 F.}.0+W.$+X.6 6 6 6 6 X.6 6 X.X.9 9 9 5+| 5+| a 0 A [.U.p B 0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.}.}.}.}.~.}.~.~.~.~.~.V V V + + +&+&+E &+E E g+g+g+E g+E g+E g+E g+E g+E+g+'+D.D.D.D.D.D.; L L 7+{ { L { { { { L { L L { { { { L L { L { { { { L L L L ; +.2 8.8.8.+.@+@+@+V.2 T.D @+D v+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"_._._._._._._._.> |.| | J.a W.W.W.W.W.a a a J.0 0 q+R ^ . D.=.h M c ^+U.J.W.W.W.W.W.W.a a a %+%+J.U.6 5.D.. v+u ^ M _._.4._.4.4.4.4._.4.^+M M _._.4._.4./.A+$+U.W.$+0 U.U.U.U.| U.U.$+$+$+=.=.. . 3 u 4.M _._._._._._._.4._._.4.M M _.s '+^ 0 %+| U.0 $+W.a %+J.J.e+J.U.9 Q.^ . h ..W.0 U.J.a 4 $+U.| 9 X.6 6 0 U.5+u ^ . ^+u 9 U.W.9 X.9 9 9 5+9 9 X.9 4 U.9 3 ^ . v+=.N 1 4 U.6 v+Y v+Y v+Y v+Y ^ 6 W.0 6 u ^ . Y 9 0+}+$+$+I.d+I.I.I.d+I.I.I.I.6+| X.J h . h o+U.| 4 6+e+a 0 9 6 ^ i+^ i+i+0 $+^.| . v+[ W m | 6 U.4 W.a %+%+%+J.J.J.5+W.h+0+< Y !.C 5+5+I.d+I.I.I.I.I.I.I.I.d+5+| , !.. v+u _.,.*+% X.| I.6+p 6+6+p 6+6+6+6+6+e+| 9 ]+Y v+Y _.,.Z ( 6 | p I.I.I.d+I.I.I.p p J.%+a 9 | a A v+. h |.J.U.i+X.9 X.^+i+i+v+Y Y Y i+X.U.4 Y $.. . u _..+X 0 9 ^+9 | U.4 a e+p 6+I.6+5+5+x+!.. v+=.s N N N ,.N ,.N ,.N ,.,.N ,.,.,.N N ,.N N 5.K Y 4 0 4 e+0+=+$+Z g.0+6+%+^+i+^ i+i+i+i+^ i+i+^ ^+6 6 6 6 6 6 U.0 -+i U.W.y }.0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.}.}.}.~.~.~.~.V V V V V V V + +&+&+&+&+E E E E g+E E E E E E E g+E E g+E M D.D.D.D.D.u L L ; 7+{ L { L { L { L { { L { { L { { { { L L L L { { { { L * V.V.2 2 8.8.+.+.+.@+)+8.` p+8.G+. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"_._._._._._._.4.8 9+| 5+J.%+W.W.W.a a %+%+%+J.$+0 X R i+. Y K ^ M H.Y 0 %+a %+W.W.W.%+%+J.J.J.e+%+0 X.5.D.. v+u 4._._._._._._.M 4._.4.4._.X q+s _._._._./.8 0 U.a W.$+$+0 U.U.| U.U.0 $+$+h h . . Y ^ 4.4._._.M 4._._.4.M - 4._._.4.M ,.x ^ U.J.W.W.%+%+%+J.e+J.e+e+J.U.9 A h . ^+@.4 U.$+a $+| 5+X.6 ^+^ ^ ^ U.U.| u i+. ^+u X.U.W.5+9 9 5+5+5+5+5+X.X.4 U.5+u i+. D.=.N & 4 U.^+v+Y v+Y v+Y i+^+6 5+a U.6 u i+. 3 ^+0+s.U.0 I.I.d+d+I.I.I.I.I.I.6+| X./ ^ . u 9+a | X.0 5+^+Y v+Y i+Y v+v+v+$+$+;.[.. D.=+, 0 0 X.$+4 4 W.W.a %+%+%+%+5+$+}+m+9 Y 1 x+5+5+I.I.I.I.I.I.I.I.I.d+6+X.U.=+1 . v+i+M ,.*+G.X.| I.6+6+6+6+6+p 6+p 6+6+e+| 9 c 3 . u ^+,.8 3.6 | a d+I.I.I.6+p J.a $+U.5+9 i+U.%+Q u . ^+..W.U.^+v+Y v+Y v+Y Y i+^ ^+^+4 U.6 u s . v+Y s o+^+0 0 Y Y i+^+6 5+$+a e+p e+| U.}+> v+v+=._.,.,.N N ,.N ,.N N N ,.,.N N N ,.N N N ,.Q K U.U.W.U.}+0+0+}+| (+B s.W.i+Y v+Y Y Y v+Y v+Y Y v+v+Y Y Y Y Y i+%+I.0+s.U.6+B 0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.}.}.}.~.}.}.~.~.~.~.~.V V V + + +&+&+&+E E E E E E E E E E g+E E E E E E E 8 D.D.D.D.D.K L L L 7+{ { { L { { { { L L { L L { { L L L { { { { L L L { L R.V.V.V.2 2 8.8.+.@+@+@+V.'.` p++.o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"_.M M 4._.4.M _./+`.U.5+J.a W.a a %+a a a a %+$+0 /+w i+. D.^ 4._.7.i+$+$+%+W.W.W.W.a %+J.e+J.e+%+0 X.(.v+. v+u ^ 4._.M _._._._._.4._.,., |.4+F._._._._.8 ,.$+U.a 4 $+$+U.| 5+| 5+| 0 $+$+^ =.. v+D.K 4._.4._.M M _._._._._.4.4._._._.s !.^+U.%+J.J.J.J.J.J.%+J.J.J.e+| 9 ++^ . ^ ( A+0 4 0 5+X.6 ^+^+i+i+i+i+U.U.5+u =.. ^+u X.U.W.5+5+5+5+5+5+9 9 9 X.$+| 5+u ^ . v+=.,...W.U.^+v+Y v+v+Y i+^+X.5+| %+U.6 u ^ . D.h i 6+U.X.J.p 6+6+I.I.I.d+I.I.%+U.5+k x . 3 $ I.U.i+i+v+Y i+^ ^ i+i+v+Y Y $+$+l | . ].w.J.| 9 ^+X.X.X.9 5+| 0 $+4 4 6 W.h+0+| Y j s.| 5+p I.I.d+I.I.d+I.I.I.6+X.| I.A+. v+=.6 ,.7.W X.| 6+6+6+6+6+6+6+6+6+p 6+J.| 5+..i+. 3 _.,.z Q ,.U.U.I.6+p p J.a $+| 6 ^+i+Y ^ U.W.1 =.. x M U.U.9 i+Y i+i+i+^ ^ ^ ^+^+X.W.$+i+u '+. v+u ,.c Y 0 W.^ Y v+Y Y i+6 | $+a W.U.a 0+d i+Y i+s ,.N ,.N ,.N ,.N N N z ,.N ,.N N ,.,.,./+' ,.W.0 ^ 6 8+0+0+0+0 s 1.-+U.6 i+^+^+^+^+^+^+6 ^+^+^ i+i+i+i+i+i+Y X.y 0+s.U.%+8+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.}.}.}.~.}.~.~.~.V V V V V V + +&+&+&+&+E E g+E E E g+E E E E E E E g+E g+/+D.D.D.D.D.'+L L L q { L { L { L { { { { { { L L { L { L L L L L L L L { L H.)+V.V.V.2 8.8.8.+.@+@+@+V.T.D p++.Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"_._.M _._._._.- [.r | 5+J.W.W.a W.a a W.W.W.a 4 U.,.!.^ v+D.u 4._./.1.$+| a $+$+$+$+W.W.%+%+J.e+%+U.X...D.. v+u 4.4.4.4._.4._._.4.4.6 9+0+B 4+o+_.4.4.4.%.^ 0 $+$+0 U.| | 9 9 X.X.5+U.$+0 x u . . Y K _.4._._.4._.M M _._.M _._.M 4.4.s j X.U.a J.J.%+%+%+W.4 $+$+$+%+| 9 /.M . h '+^+U.a 9 6 ^+^+^ i+^ i+i+^ 0 U.5+3 i+. x u X.U.W.5+5+5+5+5+5+9 X.X.6 $+U.| K i+. Y u ,.g W.U.^+v+v+Y Y i+^+9 5+U.0 %+U.^+u i+. Y h d a U.^ | 0 4 a %+J.J.J.%+a | U.0 ! ... Y ;.4 U.| i+^ ^+^+^+^+i+Y v+v+Y 0 $+++| . < ++J.| 6 Y v+v+v+i+^ X.9 U.$+$+9 a 0+0+0 6 9+0+4 | p I.I.I.I.I.I.I.6+I.p X.| d+$.. v+=.M ,.*+W X.| I.I.6+6+6+6+6+6+6+6+I.J.| $+Q u v+Y _.,.z 7.x | X.J.e+%+a 4 0 5+6 i+Y v+v+6 U.$+- ^ . x u | U.U.i+^ ^ ^+^+6 ^+^+^+6 0 | 0 ^+K ^ . v+=.,.P.i+U.a 9 6 ^+i+i+Y Y ^ X.| | 0 e+0+I.^+v+^ M ,.N N N N N N N ,.N ,.N ,.N N ,.N ,.,.N.K.a 5+U.Y 6 4 }.0+4+X ^ L...9 U.6 5+| U.U.| U.| 5+5+5+5+9 9 X.X.6 6 ^+%+6+g.-.0 d+h+0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.}.}.}.~.}.~.~.~.~.~.~.V V V +V + +&+&+E E E E E E E E E E E E E E E E E E G D.D.D.D.D.M L L L 7+{ { { { L L L L { L L L { L L { L L L { { { { { L L L N.)+)+V.V.V.2 2 +.8.+.@+@+@+2 ` D p+T._.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"4._._._._.4.M 4./+r U.5+%+W.W.W.W.W.W.W.4 4 W.W.0 x '+i+. Y =.4._.z [+` $+J.0 U.U.0 $+$+W.W.a a e+U.6 @.D.. v+u 4.4._.4._.4._._._.4.F _ 0+}.V.> _.4.4._.[.Y $+4 5+X.9 X.X.6 6 X.X.5+0 $+0 $.K . D.Y K 4._._._.4._.4.M _._._._._._._._.s & X.U.%+W.W.$+0 U.5+9 X.X.9 $+| U.u ( . =.( i+0 a X.^+^+^+^ ^+^ ^ ^+^+$+U.X.u =.. ^+u 6 U.a | 5+5+5+5+9 9 X.6 ^+0 U.U.- ^ . v+=.,.g a U.^+Y v+Y i+^+X.5+U.U.$+J.U.6 u ^ . v+M ..U.0 6 i+^+6 9 5+5+5+| 5+9 i+U.W.r | . =.@.6 0 W.X.^+^+^+i+i+Y v+Y v+Y 0 4 c | v+| ]+%+U.6 Y i+i+Y v+i+^+5+0 W.W.9 W.h+0+Z ^+P 0+4 | p I.I.I.I.I.I.I.I.I.6+X.| e $.. v+i+s ,.q+:+X.| 6+I.6+I.I.I.I.I.I.I.I.%+0 e+A x v+i+_.,.z z @.^+U.U.a 4 0 U.5+X.^+i+i+Y v+^+U.$+- ^ . 6 K 5+U.$+^+^+6 6 X.X.X.X.9 9 a 0 ^+$.K v+. v+^ z ( ^+0 W.0 U.| 5+X.^+i+v+Y i+i+$+%+g.J.Y D.=.s s N ,.N ,.N ,.N ,.N N N N ,.N ,.,.N z Q.o+a 0 i+i+i+5+I.s.0+Z Y h 7.5.U.^ U.U.0 0 U.U.U.| | 5+9 9 X.X.6 6 ^+^ X.%+0+e | J.}+0+0+0+0+0+0+0+0+0+0+0+0+0+}.}.}.}.}.}.~.}.~.~.~.V ~.V V V + +&+ +&+&+E E E E E E E E E E E E E E E E E E Y.D.D.D.D.D./.; L { q L { L { { { { L { { { L { { L { { { L L L L L { { L L _ !+)+V.V.V.V.2 2 8.+.+.@+'.2 '.D D S o i+i+Y Y v+. . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"_.4._.4._._._._./+' | | a $+4 W.W.W.W.4 4 $+W.W.0 ^+'+i+v+D.u 4._.s |.0+6+a 0 | | | | U.0 0 0 $+%+0 6 P.D.. v+Y 4._._._.4._._.4._.s $.y.y f e 9+4.4.4.4.F Y $+4 ^+^ ^+^+^+6 X.9 5+| 4 U.0 c u . . 3 ^ 4._._.4._.4.M 4._._.M _._.4._._.s !.^+U.%+| 9 9 X.X.^+^+^ ^ ^ 5+U.$+D.@.. 3 @.i+0 W.6 ^+^+^+^+^+^+6 6 X.W.0 6 u i+. h h 6 U.%+| 5+| 5+5+9 X.6 ^+^+| U.U.- i+. Y u ,.5.W.| 6 Y Y i+^+X.5+| U.0 U.%+U.6 u i+. Y s R X.0 5+Y v+Y Y i+i+i+i+i+Y i+U.a 1 [.. x h i+U.a X.6 ^ ^ i+Y v+Y v+v+Y $+4 M [.. U./.W.0 6 ^+^+^+i+v+i+X.U.4 %+J.5+0 s.m+6 Y c f 0 5+p I.d+I.d+I.I.I.I.I.p X.| I./.. v+=.M ,.*+Q.9 | 6+I.I.I.I.I.I.I.d+I.d+W.$+}+0+| i+Y _.,.z N r _.U.^+| 5+5+9 X.^+^+i+i+i+i+^ U.4 !.i+. ^+u X.U.4 9 9 9 5+| | | U.U.W.U.0 X.K.=.. . Y h z /.6 0 W.W.4 $+0 U.5+X.^+i+Y i+$+a A+q+Y v+=.M N N N ,.N ,.N N ,.,.,.,.,.N s N ,.s t Q.e+5+9 ^+6 ^+6 X.%+i L.3 3 L.L.X.5+X.5+| 5+5+X.X.X.^+^+^+i+i+i+Y Y Y Y i+e+h+~.U.4 y h+0+0+0+0+0+0+0+0+0+0+0+}.0+0+}.}.}.~.}.~.~.~.~.~.V V V V V + + +&+&+&+E E E E E E E E E E E E E E &+E E 2.D.D.D.D.D. .L L { q L { L L { L { { L L L L L L { L L L L L { { L L L L L l <+).)+V.V.V.2 8.2 +.+.+.@+'.V.` D p+G+<+~.~.h+V B <+!+V.@+` D G+0 < 9 s ^+^ Y v+. . . . . . . . . . . ",
-"4._._.4._.4.4.4.[.c U.| a $+$+4 W.W.W.W.4 $+W.W.0 ] - i+. Y u 4._.M m B h+0 W.| | 5+5+9 9 9 5+| %+0 6 P.D.. D.u ^ 4._._.4.4._.4.s M j | %+J.2.5.4.i+=.4.*+^ $+W.^ i+^ ^+6 9 5+U.$+4 %+| 0 t - . . 3 ^ _._._.M _.4.M 4._.4._.M M _.M 4.s - ^+0 4 ^+^ ^ i+^ i+i+i+i+i+X.| 4 3 [.. 3 .i+0 a 6 6 ^+6 ^+X.6 6 9 9 W.0 6 u i+. ^ h 6 U.%+U.U.| | | 9 9 6 ^+^+| U.U.'+i+. v+u ,.I W.U.X.Y i+^ 6 X.5+5+| | U.%+U.6 u =.. v+,.1 6 $+U.Y Y Y v+v+Y v+Y v+v+^+U.4 u [.. ^+- ^ 0 W.X.^+i+i+Y Y Y Y Y Y i+0 W.3 /.v+[.& W.0 9 ^+^+i+i+v+i+6 | $+a %+X.U.8+0+i+v+/.}+| 5+p 6+I.I.I.I.6+6+p 6+e+X.| d+A+. v+i+M N 7.i 9 | J.I.I.I.I.I.6+6+6+p e+5+$+B 0+X.Y i+_.,.z z q+1 6 U.^ ^+^ i+^ i+i+Y Y Y v+^+U.$+- ^ . 6 =.X.U.W.| 5+| | U.U.0 0 $+%+U.6 o w 3 . v+Y M z ( _.0 W.4 $+0 0 U.U.5+9 6 ^+X.0 4 u /.. v+=.s s N ,.N ,.N ,.,.N ,.N ,.,.,.,.,.N 8 $ d a 0 ^ | | 5+5+^+$+U...x Y h 3.X $+i+X.6 ^+^ i+i+Y v+v+Y v+v+Y v+Y Y Y i+%+p 0+q+| 6+B 0+0+0+0+0+0+0+0+0+0+0+}.}.}.}.}.}.~.}.~.~.~.V ~.V V V V V + +&+ +&+&+E E E E &+&+&+E &+E &+&+E E E E &+T.D.D.D.D.D.b L L q { { { { L L L L { { { { { { L L { { { { L L { { L { L ; @+!+).).V.V.2 2 8.8.+.+.+.@+@+@+@+D D G+p+}.0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.}.~.B &+).V.'.D O < 9 _.^ v+. ",
-"_.4._.4._.4._.4./+3.U.| a $+W.W.a a a a W.W.a 4 0 N !.i+v+v+=.4.4.h z / 0+4 a 0 U.| 5+5+9 9 9 | %+U.6 c D.. v+u 4._._.4.4._.- N ( v /+U.a 4 _.L.i+3 u h F i+0 W.^+^+6 9 | 0 4 W.%+%+e+5+0 b+- . v+Y K 4._._._._._._._._._.4._._.M 4._.N @.X.0 | Y Y i+i+i+i+i+i+Y Y X.U.4 u [.v+3 [.Y 0 W.X.^+6 6 X.X.9 9 9 5+%+U.6 u u . ^ u 6 U.%+U.| U.| 5+5+X.X.^+^+U.| 0 - ^ . v+=.,.c 4 U.5+^ ^+X.X.9 9 5+9 5+5+W.U.X.3 i+. Y s !.^+0 $+i+i+Y Y Y Y v+Y Y Y 6 | $+3 > v+^+K ^ 0 W.^+^ ^ i+i+i+i+Y i+i+6 0 4 D.( . ] N.W.| 5+^+^+i+Y v+Y ^ X.| U.0 ^+U.d+0+v+v+R.0+| 5+W.e+e+J.J.%+%+a a 4 0 X.| d+U.. v+=.s N 5.0+$+U.U.%+%+%+a a a W.4 $+U.^ $+p w.=.v+Y M N z z N ^.^+U.6 v+Y v+v+v+v+v+v+v+v+X.U.0 u ^ . x u X.U.W.9 5+5+5+5+5+| | a 5+$+^+> u . . v+^ M z j i+0 a 5+9 X.X.X.6 6 ^+^+^ X.0 4 D.( . v+i+M ,.,.N ,.N N ,.,.,.,.,.N N N ,.,.,.*+q.a 5+| 6 | | | 5+5+^ | ' _.v+u > [.9 5+i+^ i+Y v+v+Y Y i+i+i+^ i+i+i+i+^ ^ U.$+s.d 9 a 8+}.0+0+0+0+0+0+0+0+0+0+0+0+0+}.}.}.}.~.}.~.~.~.~.~.V V V +V + +&+&+E &+&+E &+E E E &+E &+E E &+&+&+E E+V.D.D.D.D.D.H L ; q { L L { { { { { L L L { L L L { L L L L L L L L { L L * V.!+)+).).V.V.8.2 2 2 2 +.8.@+@+8.'.D p+G+'.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+}.}.V B E ",
-"_.4._.4._.4._.4.[.3.| 5+%+W.a a %+%+J.%+%+%+J.$+0 [.w i+. D.u 4._.4.4.*+o+6+X.%+$+0 U.| | | U.$+J.0 9 r v+. v+u ^ 4._._._.< N W b.0 | $+0 9 ] ,.Y v+Y 4./+Y $+4 5+5+| 0 W.a J.J.e+e+e+9 U.e+'+. . 3 K 4._._._._._.4._._._._.- 4.M _._.$.(.U.0 | Y Y Y i+i+^ i+i+i+Y 6 U.W.h [.. 3 7.i+0 a 6 6 6 6 X.X.9 9 5+5+a U.X.u =.. x u X.U.a U.| | | 9 9 X.X.^+^+0 | 0 - i+. D.=.,.P.0 | U.6 X.9 5+9 9 9 X.X.5+W.U.X.u i+. v+X.!.^+0 4 ^+^ i+i+i+i+Y Y Y Y X.U.$+D.> . x - ^+0 4 ^+^ i+i+Y Y Y i+Y i+6 0 4 Y ( . h M.e+| | i+i+Y v+Y Y i+^+6 X.6 ^ U.e+/ . v+0 k 0 U.X.U.U.| | 9 X.6 6 ^+i+0 U.5.7.. v+i+s z o w.W.U.i+6 X.6 6 6 ^+^+^ i+i+X.$+| @.u . Y _.N z z z 7 > ^ W.^ Y Y Y Y Y i+Y i+i+| U.| u =.. 6 K 9 U.4 X.6 ^+6 ^+6 6 9 W.0 ^+i+u =.. . D.^ s z H.^+0 4 i+Y Y Y Y v+Y v+Y v+i+0 W.i+j . v+=.s ,.,.,.,.,.,.,.F+,.,.,.,.,.N ,.N N `.N J.| ^ ^ ^+6 X.X.X.i+$+[.P.u Y _.& U.$+Y i+Y v+Y Y Y i+i+i+^ i+^+^ i+i+i+i+^+W.4 -+6 0 6+h+0+0+0+0+0+0+0+0+0+}.}.}.}.}.}.}.}.~.}.~.~.~.V ~.V V V + + +&+&+ +E E &+E &+&+&+E &+E &+&+E &+E &+E &+V.D.D.D.D.D.; L L q { { L L { L L L { { L { L { L L L { { { { L L L L L L * !+!+!+)+).).)+V.2 8.2 +.2 +.@+@+@+2 T.D p+G+)+}.}.}.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+",
-"_._._.4._.4.4.4./+3.U.5+J.a %+J.J.J.J.e+J.J.e+U.0 R.]+i+. Y =.4._.4._.x ..3.5+0 J.%+a W.W.a %+J.%+0 6 _+v+. v+u 4.4.M 0 s.}+0+Z.U.5+4 0 9 | j h v+v+u ^ A+^ 0 $+4 $+4 W.%+J.e+p e+e+e+9 U., '+v+. Y =._.4._._._.M M _._.4.M _._._._._.1 c+| U.U.i+i+i+^ ^ ^ ^ i+i+Y ^ 0 W.1 | v+Y q+^ 0 4 ^+^ ^+^+^+6 X.X.X.9 4 U.X.3 i+. ^ i+X.U.a 5+9 5+9 9 X.X.6 ^+^+U.U.| K i+. v+i+,.s | U.$+9 5+| | 5+5+9 5+9 5+W.U.X.3 ^ . D.s 4.^+0 W.^+^ ^ i+i+Y Y Y Y Y X.U.4 u %.v+^ ( X.0 0 i+Y Y Y v+Y v+Y v+Y ^ 0 4 Y /.. u R.8+| 0 Y v+Y Y Y i+^ ^ ^ ^ ^ ^ 0 W.J v+v+X g $+0 i+i+i+Y Y Y Y Y Y Y ^ 4 $+i+M . v+=.s z 7 h 4 U.6 Y Y Y Y Y Y i+i+i+^ 4 0 ^ K ^ v+i+6 N N z z z O.7.W.5+Y v+Y Y Y Y Y v+Y X.U.$+- ^ . x h U.| | i+i+Y Y Y Y Y 4 5+W.i+- %.. . v+i+M s N ;.U.U.| Y Y i+Y i+i+i+i+i+i+v+$+$+N [.. v+u _.,.N ,.N ,.N ,.N ,.F+,.,.,.,.,.s 7.( X.4 $+Y Y i+i+i+i+i+i+9 9 J ] D.u 7.9+9 5+v+Y v+v+v+Y Y i+Y i+Y Y Y i+i+Y i+i+5+| }+d 5+%+s.}.0+0+0+0+0+0+0+0+0+0+}.0+}.}.}.~.}.~.~.~.~.~.V V V V V + + +&+&+&+&+E &+E E E &+E &+&+E &+&+&+&+&+U V.D.D.D.D.3 L L ; 7+L L L { L { { { L L L L { L { { { L L L L { { L L { L R.!+).!+!+)+).).!+V.2 2 8.8.+.8.@+@+2 @+` D p+O D T.@++.V.)+).<+E E +B V ~.}.}.}.0+0+0+0+0+0+0+0+0+0+0+0+",
-"4._._._._._._.4.< L.U.5+J.a %+%+J.e+e+e+e+e+p 5+0 %+5.^ . D.u 4._.4.4.4.s > ] ^ a e+e+e+e+e+p e+%+X.4 O =.. D.i+_.N b+}.0+0+0+J.0 0 $+X.$+% - u . . 3 4./.z $+U.a W.W.a %+J.J.e+e+p e+9 U.F.- . v+D.K _.4._.4._.4._._._._.M _._._.4._.1 t | 0 U.i+i+^ i+i+^ i+i+Y v+i+U.a j 5+. Y H.^+0 4 i+i+i+i+^+^ ^+^+^+6 $+U.5+3 ^ . ^+u 9 U.4 9 X.9 X.X.6 ^+^+i+^ U.U.U.K ^ . D.u s - 5+U.W.| | U.U.U.U.| | 5+| a U.X.3 i+. Y ].!.^+0 $+^ Y Y Y v+Y Y v+Y v+i+U.a /.| . u (.0 0 X.Y Y i+i+^ ^ ^+i+i+Y Y 0 4 =.@.. v+[.3.X.W.Y Y i+^ ^+^+^+^+^+^+^ ^ 0 W.r v+. q+z 4 $+Y v+Y Y i+i+^+^+X.9 U.$+$+h =.. v+=.s z 5.h | | $+9 X.9 9 9 5+5+5+| | %+U.^ - i+. u _.z z z z z N ;.C 0 Y Y Y Y v+Y Y Y Y i+U.a @.i+v+^+c W.U.^+v+Y Y Y Y v+9 U.a 9 M Q Y . . 3 ^ s N 8 w.S U.9 ^ ^ ^+^+^+6 ^+6 ^+^+i+0 $+_+U.. v+u M ,.s N ,.F+,.N ,.,.,.,.F+,.,.,.,.t - 4 | | v+v+v+Y Y i+Y Y i+0 b+j Y 3 N ..$+$+Y Y Y Y Y v+v+v+v+Y v+Y v+v+v+v+v+Y ^ W.I.0+0 0 I.h+0+0+0+0+0+0+0+0+}.0+}.}.}.}.}.~.}.~.~.~.~.~.~.V V V V V +&+&+&+E &+&+&+&+&+&+&+&+&+&+&+&+&+&+&+E &+U D.D.D.D.u ; L L 7+{ { L { L L L L { { L L { L L L L L L L L L L L { L L H.!+).!+!+!+!+).).).V.V.2 2 2 8.+.@++.8.T.` p+G+s . D.v+u i+4._.,.z < *+O G+D '.+.V.!+).E E B V }.}.}.0+0+",
-"4.4.4.4.4._.4._./+$.U.| a W.a %+J.e+e+p p e+e+X.0 e+c+i+. Y =.4.4._._._.4.N @.=.U.e+e+p p e+e+e+e+4 9 5.K.%.- ( 3.>+0+0+0+0+}+%+$+| X.W.2+'+=.. . v+i+K 1 @.0 | a W.4 W.W.a %+a %+%+J.| 0 3.K . . Y K _.4._._._.M _._.M _._.4._._._.M s o+5+0 | Y Y Y Y Y Y Y Y v+v+i+0 a ' | . v+#.5+U.$+Y v+Y Y Y i+i+i+i+^ U.U.5+u i+. h u 9 U.4 6 X.6 6 6 ^+^+^+i+^ | | | u i+. v+=.,.^ X.| a U.0 $+$+$+$+0 0 U.5+W.U.9 u ^ . v+s j 9 0 5+Y Y i+i+^ ^ ^ ^+^+^+i+U.a ;.%.. Y M.J.U.^ X.9 5+| U.U.| 5+X.^+Y 0 4 x @.. v+h 9+^+W.^ i+^ ^+6 X.X.9 X.9 6 ^ 0 a G.v+v+-.L.4 $+Y v+v+i+i+6 X.5+U.$+W.U.0 A+u . v+i+s z o+$.9 | %+0 0 0 0 0 0 0 $+0 $+%+0 ^ - i+. Y _.N z 8 z z 8 s ( 6 Y i+i+i+i+i+i+^ ^ i+| %+`.3 . h 1.%+U.i+^ i+^ i+Y 9 U.W.$+$.W M . . v+i+_.,.N z >+%+| X.6 6 X.X.X.X.X.X.6 6 ^ 0 $+#+< . v+=.M ,.,.,.,.,.s ,.,.,.,.,.,.s N s /+& X.W.$+i+v+Y Y Y i+Y i+i+Y U.5+O.h D.u 7.l | 6 i+Y i+Y Y Y Y v+Y v+Y v+Y v+Y v+Y Y 0 %+0+C U.J.}+0+0+0+0+0+0+0+0+0+}.0+0+}.}.}.}.~.}.~.~.~.V V V V V + + + +&+&+&+&+E &+&+&+&+&+&+&+&+&+E &+&+&+&+&+U 3 D.D.D.- L L L 7+L L { L { { { { L L { { L L L L L L L { L L { L L L L N.).!+!+!+)+)+)+).).).)+V.8.8.8.+.+.@+@+@+T.` p+*+v+. . . . . . . . . . . . . . D.u ^ 6 N < o G+D '.+.V.!+",
-"_.4._.4.- _.4.4./+z U.| W.W.a J.e+e+e+p e+e+J.X.0 6+c+=.. v+u 4.4._.4._._.4.F x.|.a $+a e+p p e+e+e+e+m /+F j c+b+m e+s.}+B J.W.| 5+c+6.- Y . . D.D.=.4./.,.0 0 4 U.0 U.U.U.0 0 $+$+4 0 $+h =.. D.Y K _._._._.4._.4.4._._.M _._._._._.1 1.0 0 X.Y v+Y Y v+Y v+v+Y v+Y U.a ++[.. D.:+*+U.U.v+v+v+v+Y v+Y i+i+i+| U.| u ^ . ^+u 9 U.$+X.X.X.6 X.6 ^+^+^ ^+U.U.| u ^ . v+=.,.K X.U.a 0 $+4 W.a W.$+0 5+9 $+| U.- ^ . v+4.O.W.0 ^+X.9 5+U.U.U.0 0 0 0 9 U.$+}+@.. Y $ 6+| X.a W.W.W.W.4 4 0 | X.i+0 4 ] [.. v+u 1 / e+^+Y ^ 6 X.X.9 5+5+| 5+i+0 J.:+. v+U.#+4 0 v+Y v+i+^ 6 5+| 0 $+a U.0 L.u . v+^ s N Y.1 5+| a U.0 U.U.U.U.U.U.U.U.%+0 ^ - i+v+i+_.9 z z Z z z z s u Y ^ ^+i+Y i+^ ^ ^ i+U.%+`.3 . h ^.J.U.i+^+^ i+^ $+| W.$+/+2+[.. . v+3 ^+s ,.N z >+, | 6 X.X.X.X.X.6 6 6 ^+^+i+0 4 _+U.. v+=._.s ,.,.,.,.,.s ,.,.s ,.,.,.,.1 t /.4 U.5+Y i+i+i+Y i+i+i+^ i+^ U.|.$.i+u o+(.5+0 i+^ i+i+i+i+Y Y Y Y Y Y v+Y v+v+v+Y X.p }.0+p $+d+h+0+0+0+0+0+0+0+0+}.}.}.}.}.}.}.~.~.~.~.~.~.~.V V V V + + +&+&+E +&+&+&+&+&+&+&+&+ +&+&+&+&+&+&+&+&+_.D.D.D.!.L L L 7+{ L L L L L L L { L L L L { { { { L { L { L L L { L L b+).).!+!+!+!+!+)+!+).).!+V.2 2 8.+.@+@+T.'.T.D G+s . . . . . . . . . . . . . . . . . . . . . . . D.D.u ^+",
-"4._.4._._.4._.4.[.h $+U.J.J.J.J.%+%+a W.W.$+0 ^+U., c+i+. Y =.4._.4.4._.4._._.R.$ ^.^ ^+| a e+p p e+e+e+$+| U.5+5+U.p W.W.J.4 ^+| 7 w h 3 . . . v+Y K _.[.^ 0 $+4 W.4 4 $+$+$+4 4 4 a 0 4 Y x . . Y K 4._._._._.M _.M _.4._._._._._.M s M.%+U.i+i+^ ^ ^ ^ ^ ^ ^ i+i+6 U.%+J | . Y / 6+U.^+^ ^ ^+6 6 X.X.9 5+| a | | u i+. x $.$+U.U.4 W.4 4 4 $+$+0 0 0 %+| 5+3 i+. D.u ,.x 5+U.a %+J.e+J.J.e+%+4 U.9 0 | W...Y . Y ^ |.a 5+9 X.9 5+5+| 5+| | | | 6 0 | Z.] . u (.0 5+4 0 U.| 5+5+X.X.^+^+i+i+$+4 > [.. v+=.6 M M Y ^+^+i+i+^+6 X.X.X.X.^ U.J.[+v+v+O 4+U.U.Y ^ 6 X.5+0 4 a %+J.e+9 $+1 u . D.=.s z o+_.$+U.$+W.W.W.4 4 4 $+$+$+$+%+U.^ - i+. Y s N Z Z z z z z z ,.K o+p a $+X.i+Y Y ^ | a ..i+. x (.a | Y i+9 $+| 0 %+U.3.++,.. . . v+=._.s ,.N 8 .+p U.^ ^ i+i+i+i+i+i+i+i+i+^ $+4 _+X . v+=.M s s ,.,.,.,.s s ,.,.s ,.,.,.z :+4 4 U.i+Y Y Y Y Y Y Y i+Y Y Y 4 4 / X Y Y.9+| 0 Y i+i+i+i+i+i+i+i+i+i+i+i+^ ^ ^ ^+^+X.d+s.0+0+0 e+B 0+0+0+0+0+0+0+}.0+}.}.}.~.}.~.}.~.~.~.~.V V V V V +V + +&+&+&+&+&+&+&+&+ +&+ +&+&+&+U &+&+ +&+&+U '+D.D.D.$.; L L { L { { L L { L { L L L { { L L L L L L L L (.L L L L L T.).!+).!+).!+!+!+)+!+).).!+)+8.2 +.+.@+T.'.T.` p+o v+. . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"4._.4.4.4._._.4.3.^.U.$+0 U.U.0 U.0 0 0 0 $+$+W.6 e+H i+v+D.=.4._.4.4.4._.4._._.N b+g ^ X.6 X.U.a J.e+e+J.e+e+J.$+| 4 0 0 ^+^+s !.x h v+. . v+D.u ^ 4.4.8 $+U.U.| | 5+| | | | | | | | U.$+D.M . v+3 =.4.4._._._._.4._.M _._._._.M 4.M ,.f.U.5+U.U.U.| U.U.U.U.| U.U.| | a #+%.. h g *+9 U.| U.| U.U.| U.U.U.| | W.^+u ^ . u $+U.U.U.U.| U.| U.U.U.| U.| | a ^ u =.. Y u _.^.0 W.| | 5+5+| 5+U.| U.0 0 U.5+%+9+D.. D.x H.| 5+U.U.U.U.U.U.U.U.U.U.U.0 5+W.-+h . u Q U.| U.| U.| U.U.| U.U.U.U.U.9 J._+U.v+v+u s s s u [ J.4 $+U.5+X.X.6 X.$+| a W v+. .[+U.9 U.U.| | U.| | 5+| | | $+9 x ^ . v+^ ,.Z 3.a U.4 | 5+| | 5+| | | | 5+| 9 a ^+@.3 v+Y M ,.z z Z 8 z z z z N N M.1.^+5+U.$+$+W.| 4 j ^ . h |.W.| | U.U.$+a | X._+;.M . . . Y =._.s ,.,.N 8 H.U.X.| | U.| U.| U.| U.U.U.| 5+J.c U.. v+u M ,.s N s ,.s N N s F+,.s ,.,.j t $+| 5+U.0 0 0 0 0 0 U.U.0 U.0 0 p 0+C ^ S [+m | | U.U.| U.U.U.| U.U.U.U.| U.U.| U.| 0 $+s.0+0+W.W.8+}.0+0+0+0+0+0+}.0+}.}.}.}.}.~.}.~.~.~.~.~.~.V V V +V + +&+&+&+&+&+&+ +&+ +&+ +&+ + +&+&+ +&+U &+&+_.D.D.D.> ; L { q L L { { L { L L { L L L L L L L { L { L L { L L L L L @+).!+).!+!+!+!+!+)+)+)+).).!+)+2 8.+.@+` D '.T.D G+N . . . . . . . . . . . . . . . . . . . . . . . . . . ",
-"_.4._._._.4.h _.L.q+U.$+6 6 6 ^+^+^+^ ^ ^+i+^ ^ | c+'+i+. v+=.4.4._._._._.4._.4.4.M .9+/.R.e+a $+U.| | | U.0 0 $+$+6 Y i+3 u > > Y . . . v+D.u K 4.4._.o+m U.W.0 0 4 W.a %+a W.4 $+0 9 i+3 ] . . Y K 4._._._._._.M _._.4.M 4._._._._.M 7.^+| a J.J.J.J.%+J.%+%+%+%+%+W.9 (.| v+v+@.6 U.$+%+%+a a W.W.4 $+0 0 U.^+Y 3 i+. =.;.$+U.$+9 9 9 9 5+| 5+| | | 5+^ Y u i+. v+i+N ^.%+U.$+9 9 5+| 4 6+y I.e+J.J.p %+=+v+. v+M [.$+| 6 5+| | | | | | | U.U.U.a 6+-+h . i+@.0 U.6 U.U.0 $+4 W.W.a %+J.J.p %+(+Z . v+^ M N N N M |.| i+6 9 5+| | | 5+%+$+G.v+v+- z X.| e+J.%+%+a 4 $+0 | | 9 6 Y i+x . D.^ ,.8 o+9+0 | %+4 $+4 4 W.W.W.a %+%+a U.^+(.D.. Y M z z z z Z Z Z Z z z N s F.^.x U.0 | U.a X.( i+. ^ 5.| | 0 a U.X.6 3.^.[.Y . . v+D.i+_.s N N ,.,.,.( ^ U.0 J.%+J.%+%+%+%+%+%+%+J.%+0 (.Z . D.i+M s ,.F+s N s ,.s ,.s ,.s s s b 0 6 | U.a a a a a %+a %+a %+a a e+y B +.6 o T.L.i+U.a J.e+e+e+J.e+J.J.e+J.J.J.J.J.J.J.%+e+e+d+m+5+0 I.h+0+0+0+0+0+}.0+}.0+}.}.}.~.}.~.~.~.~.~.V V V V V V + + + +&+&+&+ +&+ +&+ +&+ +&+&+&+ +&+&+&+ +&+&+|+D.D.D. .L L q { L { L L L L L L L { L L L L { L L L L L L L L L L L * V.).).!+!+).!+!+).!+!+!+)+!+!+!+V.2 +.'._ G+'.T.D p+o ] =.Y . . . . . . . . . . . . . . . . . . . . . . . ",
-"_.4.4.4._.4.4._.Z =+j b+$.1 1 !.w ( ( $.$.> A+/.> 8 ].v+. D.u 4.4._.4.4.4.4.4._.4.4.4.M [.3...9+x+W.U.5+9 6 ^ i+Y Y Y K > 3.].Y . . . v+D.Y =.^ 4.4._._.> ++R.d F.F.F.d d .+(+9+^.1.[ H.[ 7.x . v+Y 4.4._.4.M 4.4._._._._._._._._.4._.4.K h [ N.|.(+|.|.(+(+|.(+|.(+.+d ;.F.3 . v+3 K 1.1.=+|.(+(+9+^.N.c+[ R.R.q+q+# . . D.1 |.[.d 4 R.$+R.o R.R.$+R.q+q+q+-.%.v+. D.u M #+A R.c+3.q+H.b+6+h+0+! -+w.*.G.9+3.v+. D.6 m 9+[ 1 8 ./+%.[.[.[.-.-.q+7.q+R.> 3 . Y o+5.H.1 -.X -.X q+0 R.$+R.4 [ [ [ R.Y . v+=.6 N N N 8 1 3.Q [.Z F.6+I.d+d+p , d . . u h R.L.;.|.|..+(+d ;.1.N.H.O R.o F ^ . v+^ N Z z M d 3.=+;.d ;.d d .+;.d .+.+;.;.3+-.. v+i+_.z z Z z z N z z z z 8 N s ,.Q R.3.t x+m 5+g i+. u /.6 $+e+X.]+1.++[.Y . . . v+Y =._.s ,.,.,.,.,.s _.K ^.Q e =+, (+, (+(+.+|.(+|.|..+b+i+. v+u M s ,.s ,.s s ,.s s ,.s s s F+P.1 W.$.A $ $ x+x+$ x+x+$ x+$ $ $ -+i Z.O.^ Z '.+.< / N.M.|.|.|.|.|., =+=+=+=+=+=+, |.|.(+;./ / ` i+9 J.s.}.0+0+0+0+}.0+}.}.}.}.}.~.}.}.~.~.~.~.~.V V V V V + +&+&+ +&+ +&+ +&+ +&+ + + + +&+ + + + + +&+ +/+D.D.D.b L L { { L { L L L L { L L L L L (.L L L { L L { L L L L L L q+!+).y ).!+y ).!+!+!+!+)+)+!+)+!+)+V.+.D D G D '.` p+Y.< %. .A+].x =.v+. . . . . . . . . . . . . . . . . . ",
-"4.4._._.4._.4.4.x s ,.M M x =.i+3 D.3 D.D.D.D.D.v+D.. . v+Y =.4.4.4._._._._._._.4._.4.4.K h s A+3.1.d + o -.[.[.-.7.c # =.. . . . v+D.3 i+h 4.4._.M 4.4.4.s z _.=.u D.v+v+v+v+v+v+v+v+v+. v+. . v+3 K 4._.4._._._.M 4._._.M _._.M _._._.4.4.s 1 h u v+D.v+v+v+v+v+v+v+v+v+v+. v+v+=.K s 1 ^ 3 D.v+v+. v+v+. v+v+. v+v+. v+Y =.s s x =.Y v+. v+. v+v+. . v+v+v+v+. . v+=._.M ..q+@.> ].x 6 # 6+}+7.1 !.'+( 1 =.v+. Y =.s z s ,.,.x ^ ^ u ^ =.=.i+u i+i+u Y . v+Y 4.s s 9 ,.x ^ ^ i+^ i+=.^ i+^ i+^ Y v+. D.^ s ,.N z N N ,._.,.[.] [...5 f.f.@.3 . v+i+s N < A+M i+3 D.D.D.v+v+v+v+v+v+v+v+v+Y ^ s z /+Z /+F z 6 u D.v+v+v+Y D.v+v+v+v+D.v+v+D.i+s z Z 8 8 Z z z N z z z 8 z N s M N @.%.r H.%.. . Y u 3.r t+t | - . . . . v+D.u ^ _.s ,.s ,.,.,.,.N s s A+N x u Y D.v+v+v+. v+v+v+v+D.v+v+. D.i+M s ,.s F+s s ,.s ,.s s ,.s ,.,.1 /.../+$.6 x x ^+x ^ ^ x ^ h ^+^ x ^ Y i+9 S !+E s.s.m < ^+i+^ ^ i+i+i+i+Y i+Y i+Y i+Y i+Y Y Y ^ X.a 8+h+0+0+0+0+0+}.}.0+}.}.}.}.~.~.~.~.~.~.V ~.V V + +V + +&+&+ +&+ + + +&+ +&+ + + + + + +&+&+&+ +&+/+D.D.D.* ; L 7+L L L L { { { L L L L { { { L { L L L { L L { L L L L R.).).).!+).!+!+!+!+!+)+!+)+)+)+V.)+2 @+D D *+G+'.T.D G+o /+ . . . .%. .A+].h i+v+. . . . . . . . . . . . . ",
-"_.4.4.4.4.4.4.4.4.4.4.4.K u D.v+v+v+v+v+v+v+v+v+v+v+D.v+D.u =.4.4.4.4.4.4.4.4._._._.4._._.4.4.u =.x h Y v+v+v+D.v+. . . v+. v+D.D.Y u u K 4.4.4.4._._.M 4._._._.K Y D.D.v+v+v+v+v+D.v+D.v+D.v+v+D.i+4.4._.M _._.4._._._._.4.M _._._.- M _._.4._.^ i+D.v+D.v+v+D.v+D.v+D.v+v+v+D.Y =.4.4._.^ i+D.D.D.v+D.v+D.v+D.v+D.v+v+D.3 =._._.4.=.Y Y v+D.v+D.v+D.v+v+v+D.v+D.Y 3 K _.M M s M K u D.Y Y i+^+i+v+v+v+v+v+v+v+D.3 ^ M M s s 4.=.Y Y v+Y v+D.Y D.D.Y v+Y D.Y i+4.M s s x i+Y Y v+Y D.Y Y v+Y v+Y D.Y Y u _.s z z z z z z ,.s _.^ i+Y u =.3 Y v+v+D.^ ,.z /+z s ^ Y Y Y i+Y Y i+Y Y Y Y Y u =.s z /+Z 8 < /+z ,.^ i+3 Y Y Y Y i+Y i+Y Y Y Y i+^ s N Z z z z Z 8 z z z z z z z N ,.s ^+^ h ^ i+v+D.i+4.s Z 8 M i+v+v+v+Y Y =.^ 4.M s ,.,.,.N ,.,.s ,.,.,.s s _.=.Y D.D.D.Y D.D.v+D.v+D.D.D.Y i+4.M s s ,.s ,.s s s s s ,.s s s ,.s s s _.K Y v+v+v+v+v+. v+. v+. v+v+v+Y s | a !+V }.B y %+0 5+5+5+9 9 5+5+5+5+9 5+9 5+9 5+5+5+5+| U.%+8+h+0+0+0+}.0+0+}.}.}.~.}.}.}.~.~.~.V ~.V ~.V V V + + + +&+ +&+ +&+ + + + + + + + + + + + + + +&+ +/+D.D.3 ; L ; 7+{ L { L L L L L { L L L L L L L L L L L L o+L L L L L H.).).).).!+).!+!+!+!+)+!+)+)+)+V.V.2 '._ p+Z p+'.T.` p+G+o '.D q+[. . .%. . .> %.# ] h Y v+. . . . . . . . ",
-"4.4.4.4._.4._.4._.4.4.4.4.K u i+u 3 u u i+3 u i+u u u 3 i+u 4.4.4._.4._.4._._.4.4._.4._.4._.4.4.4.u u 3 3 D.D.v+D.v+D.D.D.Y 3 u =.K 4.4.4.4._._._.4.4.4._._.4._.4.^ =.u u 3 u 3 u u u Y u u u u =.K 4._.4._._._._.M _.4.M 4._._._._._.M 4._.M h 4.K =.u i+u u 3 u u u i+u u =.u u 4.4._._.4.K =.i+=.u u u u u i+u u u u u ^ 4._.M 4.4.K u ^ i+u u =.=.=.u u u ^ u u =.4._.M M M M 4.^ =.u i+u ^ u =.=.u u =.u u =.^ _.M M s s _.4.=.=.u =.^ ^ =.=.^ K ^ K ^ ^ _._.s s s s _.4.^ h h ^ h ^ h ^ _.4.^+_._._.s z z z Z Z 8 Z 8 z N s M M ^+^ ^ =.=.=.^+_.N /+< | z ,.s 6 M M M s s s s s s M 6 s 9 Z < < < Z z Z N s s 6 _.M x M _.M M _._._._._.s z z z Z Z Z z z z z z z N ,.N N z N s s _.4.^ =.=.^ _.s ,.s x K i+Y u =.4._.M s ,.s s s ,.,.,.1 ,.N ,.,.,.,.s _.4.h ^ ^ K ^ ^ h ^ h ^ ^ ^ ^ 4._.s s s s ,.s F+s s ,.s ,.s s s s s s M s 4.4.=.u =.=.D.3 Y 3 D.3 D.D.D.,.W.D +.<+V }.0+}+y 6+e+e+e+e+e+e+e+e+e+e+e+e+e+e+e+e+e+e+e+6+d+}+0+}.0+0+0+}.}.}.}.}.}.~.~.~.~.~.~.~.V ~.V V V V V V + +&+ + + +&+ + + +V + + + + + + + + + + +U L.D.D.u L L L q L { L L L L L L L { L L L L L L { L L L L L L L L L L N.).).).).).!+!+y !+)+)+)+)+)+)+)+V.2 @+T.p+4._ +.T.` p+G+*+).!+)+@+` Y.[. .%. .%. .%. . .A+].] h Y . . . . ",
-"_._._.4.4.4.4.4.4._.4.4.4.^ 4.K ^ h ^ K h ^ K h K ^ 4.4.4.4.4.4._.4._.4.4.4._.4.- _.4.4.4._.4.4.4.4.4.^ K =.u i+u i+u u u =.K ^ 4.4._._._.4._.4._._._.4.4._.4.4.4.4.4.^ 4.K 4.K K ^ 4.4.K ^ 4.4.4.4.4._.4._._._._._.M 4._.- _._._._.4.M _.4._.4.4._.h 4.4.4.^+h 4.4.h 4.4.4._.4.4._._._._._.4._.h 4._.4.^ 4.4.4.4.^ _._.4.4._.M s 4._.4.4._.4.4.4._.s ,.N z Z /+< X O G+D T.T.'.@+'.` ` p+S S D D S D S G+[ o o < < < /+z Z z ,.M _._.M M M _.M _.M M M _.M s s s ,.,.s s s s s s s s s ,.s s ,.s s ,.,.,.z z z z Z Z Z /+/+/+/+/+z z z ,.,.,.,.,.9 Z /+< /+/+/+/+/+< Z Z Z z z z z Z Z Z /+Z Z Z /+< < < < Z Z N z Z z 5+z z N ,.9 z 9 N 9 N N z z z Z 8 z z z z N z z z z N ,.,.z N z ,.s s _.M 6 ,.s N ,.M _._._._.6 s s ,.s N N ,.N ,.s ,.,.,.,.s s s s s s 6 s M M M M M M M M M M M M M M s ,.s s s ,.s s ,.|+s M ,.s ,.M s s s s _.M _._._._.h u u =.u =.K K =.p+V.y <+ +~.}.0+}.h+B B }+}+B }+}+}+}+}+}+}+}+B }+}+B }+}+}+B B h+0+0+0+}.0+0+}.}.}.}.}.}.}.}.~.~.~.~.V ~.V V V + + + +&+&+ +&+ + +V + + +V + + + +V + + + + +&+< D.D.- ; L L q L L L L L L { L L L L L L L { L L L L L L L L L L L L b+).).).).).).!+!+).!+)+)+)+)+V.)+V.V.V.2 T.@+2 @+'.T.D p+Y.+.&+E <+).)+8.T.[ 7. .%. .%. . .%.%.%. .A+].x =.",
-"4.4.4.4._._._.4._.4.4._.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4._._.4._.4.M 4.4.4._.4.4._._._.4._.4._._.4.4.4.4.4.h 4.h ^ 4.4.4.4.4.4.4.4._.4._.4._._._.4.M 4._.4._.4._.4.4._._.4._.4._.4.4.4.4.4.4._._._._.M 4._._.4._._._._.M 4._.4._.M 4._.M M M _.M 4.4._._._._._._.4.4._._._._.4._._._._.M _.4._._._._.M 4._.M _._._.M 4.M ,./+*+o o O p+'.@++.V.).<+E E E E E E &+E E g+g+g+<+).).).!+!+!+!+!+!+!+).).).<+g+g+g+<+g+g+g+<+).V.+.+.'.T.D o X Z z N s s s s s s ,.,.,.,.,.,.,.N ,.,.,.N N N z N z z z z z z Z /+/+Z /+< /+< < < < < < < < < /+Z /+Z < X X *+X X < < < X X X < X < < /+< < < < < < < Z /+< < < < < Z z z Z Z Z /+Z z z 8 z Z z Z z z z N z z z z N z N z N N z N z ,.N ,.N ,.,.,.s s ,.N ,.s ,.s s s ,.,.,.,.,.,.,.s ,.,.,.s ,.s M ,.s ,.s s s s s s s s s s s s s s s s s s s s s s s s s s M s s s M s M s s s s s s M s 6 s M 6 s _.=.4.K h K K K u +.<+E +~.~.}.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+}.}.}.}.~.~.~.~.~.~.~.~.V ~.V V V B V &+ + + + + + + + + + + +B V B V + +V + + + +y.D.D.- L L L 7+L L L L L { L L L L L L { L L L (.L L L L L L L L L L '.<+).).).).).).).!+!+!+!+)+)+)+V.)+V.V.2 2 2 2 +.'.T.D p+G+T.E &+ +&+E g+).!+V.+._ [ q+[. . . . .%. . . . .",
-"4.4._.4.4.4.4.4.4._.4._._.4._.4.4.4.4.4.4.4.4.4.4._.4._.4.4.4._.4._.4._._.4._._.4._.4.4.4.4._._.4._.4._.h 4.4.4.4.4.4.4._.4._.4._.4.4.4._.4._.4._.4._._._._._.4._.4._.4._.4._._._._.M 4.M 4._.4._._.4._._._._.- _._.4.M _._._.M _.4.M _.4.4.4._.4.M _._.M _.4._._.M _._._._._.M _._.M _.4.M M M M 4._._.M M s Z /+X o X |.f v.f ~.}.<++.o !+<+g+E ~.V }+s.g+s.&+V ~.}.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+~.B B E s.s.E &+&+ +<+).)+).g+E g+g+g+).)++.@+_ G+X /+N s ,.N ,.,.,.N N z N N z z z z Z Z Z /+Z Z Z Z Z /+/+< < < < < X X < F X X *+X *+< < < < *+*+*+*+X X < < *+X *+X X < < /+< < < < F < < Z Z Z /+/+/+/+Z Z z z /+/+Z Z Z z 8 z z z z z z N z z z z z N z z N z N N N ,.,.,.,.N N ,.,.s N N ,.,.,.,.s s s ,.s ,.s s ,.s 1 s ,.s ,.s 1 s ,.,.s s s s s s s s s s s s s s s s s s s s s s s M s s s s s s s s M s s s s s M s s s s s s M K K K K 4.K 4.u )+E &+V ~.}.}.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+}.}.}.}.~.}.}.~.~.~.~.V V ~.V V V + + + + +&+ + + + + +V +V + + + + + +B +V + + + +G+D.D.1 ; L L q { { { { L L L L { L { L L L L L L L L L L L L L L L ; +.<+).).).).).!+!+!+!+)+!+)+!+)+V.V.V.V.2 8.8.+.+.@+'.` p+G+Y.).<+g+&+&+ +&+E g+<+).)+V.+.T.S o [. . .%.%. .",
-"4._.4.4.4.4._.4.4.4.4.4.4.4.4.4.4.4.4._.4._.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4._.4.4.4.- 4._._._.4.4.4.4.4.4._._._.4._.4._._.4._._._._._.4._.4._.4._.4._.4.4.4.4._._.4._._._.4._.4._.4.4.4.M 4.M _._.4._.4._._._._._._._._._._.4._._._.M 4._._.M _._.M _.M 4._._._._._._.M _._._._._.M _.M _._._._.M s < X O D D D D ` D D G+X M._ k v.}.V ).V 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+~.B <+E E E )+).).g+<+g+).V.+.T.o *+z N z N z z z z z z z Z z /+/+/+< < < < < < < < X *+*+*+*+o o *+o *+o *+o o *+*+< < X *+o o o *+X < < < X X X < < /+/+< < /+< /+< /+Z /+/+< /+Z /+z z z Z z 8 z z z z z z z z z N N N z N z ,.N ,.,.,.N ,.N ,.,.,.,.,.N ,.N ,.s ,.,.s ,.s ,.s ,.,.s ,.s s ,.s s ,.s s ,.s s s s s ,.s s ,.s s s s s s s s s s s s s s M s M s s s M M s s s M s s M s M s M s s M s M s M s 4.K 4.K K u K 4.<+E +V ~.~.}.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+}.}.}.}.~.~.}.~.~.~.~.~.V V V V V V V +&+ +&+ + +B + +B + + + + + +V + + + +V + +T.D.D.A+L L L { L L L L L L { L L L L o+L L L L L L (.L L L L L L L * )+).<+<+).).).).).).!+!+!+!+)+)+)+)+V.V.2 2 2 2 +.@+'.T.D p+o ` +.)+!+).g+E &+ +&+&+E E <+).!+V.8.'.D t O -.",
-"4.4._.4._.4.4._.4._.4.4.4._.4._.4.4.4.4.4._._._.4._.4._.4._.4._.4._._.4.4.4._.4._.4.4.4.4._.4._._._._.4.4.4.4.4._.4.4.4.4.4.4.4.4._._.4._.4._.4._.4._._._.4._._.4.4.4._._._.4._._.4._._.4.4._._._._._._._.4._.4._._._._._._.4._.4.M _._._.4.M 4._.4._._._._._._._.4._._._._._.4.M 4.s N /+X O D p+` ` D ` ` ` %+` ` ` %+O Y.2 P f v.0+g+E 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+0+0+0+0+0+0+B s.g+E !+!+E <+<+).!++.'.Y.< /+z Z /+/+/+< < < < < < F *+*+*+*+*+*+X X < X o o o o o o o o o o o o o o X < < X *+*+*+o X < < < *+< *+< < /+Z /+< < /+< /+Z z Z /+Z /+z Z z N z z Z z z z z z z N z N N ,.,.,.N N N N N ,.N ,.N ,.N ,.s ,.s s ,.,.,.s s s ,.,.,.,.M s s ,.s ,.s s s s ,.s ,.M ,.s s M s ,.M s s M ,.M s s s s M s s M s s s s M s s s s s s M s s s s M s M s s M s _.s M s s M s u u 4.K K u s g+E +V ~.}.}.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+}.}.}.}.}.}.}.~.~.}.~.~.~.V ~.~.V V V V + + + + + +V &+ + + +V V V V V V + +V +B + + + +'.D.D.> L L q L L L L L L L L L o+L L L L L L L L L L L L L L L L L H ).<+).).).).).).!+).!+!+)+)+!+)+)+)+V.V.V.8.2 +.+.+.'.T.` p+G+/+o p+'.+.V.)+).g+g+E E &+&+&+&+E <+<+).)+V.2 ",
-"4.4.4.4.4.4.4.4.4.4.4.4.4.4._.4._.4.4._.4.4.4.4.4.4.4.4._.4.4.4._.4.4._.4.4.4._.4._.4.4.4.4._.4.4.4.4._.4._._._.4.4._.4._.4.4._.4.4.4._.4._.- _.4._._.- 4._.4.- _._._._.4.4._._._._.4.4._._.4.4.4._._._._._._._.4._.4._._._._._.M 4._.4._._._._._.M _._._._.M 4._.M 4.M _.s z < o D S D ` ` ` %+` %+` ` ` ` ` D ` %+` D D $+[ P P v.f ~.<+}.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+0+0+0+0+0+0+0+0+0+0+0+ +g+g+<+)+g+g+).).+.+.p+X /+/+< < < < *+*+*+*+X *+*+o o O o o *+X X o O o O O o 7 o o o o o o o *+< < *+*+*+*+*+*+< /+< < < < < < /+z Z /+/+Z Z /+z z 8 z Z Z 8 z z z z z z z N N N N N ,.N N N ,.,.N N N ,.,.,.,.,.,.s ,.N s ,.s ,.s ,.s ,.s s s s ,.,.,.s s s F+s s s s s M s s s s M s M s s s s s M s s M s M s s M s M s M s s M s M s M M M M s M s M M s _.s M M s M M _.s M s 4.4.u K K K s g+E +V ~.}.}.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+}.}.}.~.}.}.~.~.~.~.~.~.V V V V V +V + + + + + + + +V + + + + + + +V V +V + +V + +T.D.D.b ; L { { L L L L L L L L L L L L L L L L L L L L L L L L L L R.<+).<+<+).).).).).!+).!+!+!+)+)+)+V.V.V.V.2 2 2 +.+.@+'.` D G+Z M s z *+G+T.+.+.)+!+).<+g+E E E &+E E E E g+",
-"4.4.4.4.4._.4.4.4._._.4.4.4.4.4.4.4.4.4.4.4.4.4._.4._.4.4._.4.4.4.4.4.4._.4.4.4.4.4._.4._.4._.4.4._.4._.4.4.4.4._._._.4._._.4._._.4.4.4._.4._.4.4.4._._.4._._.4.4.4.4.4._.4.4.4._._._._._._._.4._.- _.4._.4._.4._.4.M 4._._.4._._._._._._._._.4._._._.4._.4._.M _.s z X G+S 4 G+` ` ` ` ` ` T.` T.` J.T.` ` W.D ` D ` U.Y.D X D f+).v.0+E V 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+r.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+~.E !+<+!+).<+).!++.@+S X < *+*+o o o o o o o o Y.Y.Y.Y.Y.o o *+*+7 Y.O Y.O 7 o o o o o o o *+< < < *+*+*+*+*+< < < < < < /+/+Z z z /+Z Z Z Z z z z Z z z z N ,.N N z N N z N ,.N N N N ,.,.s ,.,.,.,.s ,.s s ,.s ,.s ,.M s ,.s s ,.,.M s 1 s M s M s s M ,.M s M s M M s M ,.M s M M s M s s s M s M s s M s s s M M M M s M M M M s M s M M M M s M s _.M s M M M s M M M M M K 4.u 4.K M g+E +V ~.}.}.}.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+}.}.}.}.}.}.~.~.}.~.~.~.V V ~.V V V V V +V +&+ + + +V V +V +V V V V + + +V +V V + + + +'.D.D...L L q L L L L { L L L L L L L L L L L L L L L L L L L L ; L H.g+<+<+<+).).).).).!+).!+!+!+!+)+)+)+V.V.V.2 2 8.+.+.@+T.T.D p+*+] ] ] M s N < o p+T.@+8.V.)+).).E E E E &+&+",
-"4.4.4.4.4.4.4.4.4.4.4._.4.4.4.4._.4.4._.4.4._.4.4._.4.4.4.4.4.4.4.4.4.4.4.4.4.4._._.4._.4.4.4.4.4.4.4.4.4.4._.4.4.4.4.4.4.4._.4.4._._._.4._.4._.4._.4.4.4.4.4._._._._._.4._.4._.4.4._.4.4.4._._._._.4._._.- 4._._._.4.M 4._.4._._.4._._._.4._._.M 4._.M _.s N < O W.G+4 4 S D ` ` ` T.J.D T.` ` D D ` ` '.+.V.).V.+.@+'.S S D < P f+v.~.}.g+0+0+~.U 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+p.h.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+s.!+!+g+g+!+).).V.p+*+*+o Y.G+G+G+Y.Y.o O Y.Y.G+G+G+Y.O *+*+o O Y.O Y.Y.o o o o *+o *+X < Z < < < < < /+/+Z Z /+/+/+/+z Z z 8 Z z 8 z z N N z N z N N N ,.,.N N N ,.N ,.s ,.,.,.s ,.s s s ,.s ,.s s ,.1 s s ,.1 M s s s M ,.s s M s s M s M s M s s s s M s M s M s s s s M s M s _.s s M s _.s M s _.M M M s M M M M M _.s M M M M M M M M M M M M _.s _.s M M M _.s K K K K u u )+E +~.~.}.}.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+}.~.}.}.~.~.~.~.~.~.~.V ~.V V V +V + + + + + +&+ + + +B + + + +V V + +V + + + + + +f+D.D.; ; L q L L L o+L L L L L L L L L L L L L L L L L L 5.L L L L N.<+<+).<+<+).).).).).!+).!+)+)+)+)+)+)+V.V.V.2 2 +.+.@+'.T.D p+o u Y Y =.=.h h x M ,.Z o G+_ '.+.8.)+)+).).<+",
-"4.4.4.4.4.4.4._.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4._.4.4._.4.4._._.4.4._.4.4.4.4.4.4.4.4._._._.4._.4.4.4._.4.4._.4._.4.4.4._.4.4.4.4.4.4._._.4._._.4._.4.4.4.4.4.4._._._.4._._.4._._._.4._.4._.4._._._.4._.4._.4._._._._._.4._._.4._._._._._._._.N < [ a G+a p+4 D ` ` T.J.D J.T.` ` ` J.` +.V.).)+V.8.T.T.D T.@+8.V.V.S %+S 0 M.2 v.0+ +~.0+0+h.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+~.D+n+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+~.~.V 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+ +E ).<+g+).!+!+T.Y.o o Y.G+G+S G+G+G+O Y.Y.G+G+G+G+O *+*+*+o o o o *+o *+*+*+*+*+< < /+Z /+/+< < /+/+Z Z 8 Z /+Z z z N z z z z z z N ,.N N N N ,.N ,.,.,.,.N ,.,.s ,.M ,.s N s ,.s s F+s ,.s s s s s s s M s M s M M s M s M ,.M s M s s M M M s M ,.M s M M s M s M M M M s _.M _.s M _.M M s _.M M M M M s M M M M s _.s M M M M s M M M s _.M M _.s _.s _.M M u K K 4.u D &+V ~.~.}.}.}.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.}.}.0+}.}.}.}.}.~.~.}.~.~.~.~.V ~.V V V V V V + + +&+&+ + + + + + + +V +V + + +V V + +V V V + + +'.D.u L ; L 7+L L L L L L L L L L L L L L L L L L L L L L L L L L L b+<+<+<+).<+).).).).y !+!+).!+!+)+)+)+)+V.V.8.2 8.+.+.@+T.T._ D Y.M u u Y u i+3 i+3 3 i+u =._.z *+G+p+` '.@+8.",
-"4._.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4._.4._.4.4._.4.4.4.4.4.4.4.4.4.4.4.4._.4.4.4.4.4.4.4._.4.4._.4.4._.4._._.4.4.4.4.4._.4.4.4.4._.4.4._.4._._.4._.4._.4.4.4._.4.4._.4._.4._.4._.4._.4._.4.M 4._._._.4._.4._.4._._._._.4._.4.s z *+S a 4 W.G+W.` ` ` D ` '.T.T.p+` T.+.)+!+<+V.8.'.T.` @+V.).!+V.V.8.'.'.'.` T.e+G+D 9+2 v.}.E ~.r.h.~.0+0+0+0+0+0+0+0+0+0+0+0+0+0+~.e.l. +0+~.}.0+0+0+0+0+0+0+0+0+0+0+0+0+ +D+E+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+ +).V.!+<+).<++.T.Y.*+G+G+S p+G+G+Y.Y.o O Y.O Y.Y.o *+< o o o o *+*+< < < G < < < /+/+z Z /+8 /+8 z z z z z Z z z N N ,.z N N N N s ,.,.N ,.,.,.s s M ,.s ,.M N s s ,.M ,.M ,.M s M s s M s M s M s s s s M M M s s M M s M M s M s M M M M M M s _.s _.M M _.s _.s _.M M M M _.s M M _.M s _.s _.s _.M M M s _.M M M M _.s _.M _.M _._.s _.M _._.s 4.M 4.M 4.K K u K s E V ~.}.}.}.}.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+0+0+0+}.}.}.}.}.}.}.}.~.~.~.V ~.~.V ~.V V V V + + + + + + +&+B +V V V +V +V V V + +B V + + +V + +T.D.K ; L L q L L L L L L L L L L L L L L L L L L L L L L L ; L L ; '.<+g+).<+).<+).).).!+).).!+!+)+!+)+)+V.V.V.V.2 +.+.+.@+'.` ` p+G+N D.Y Y Y D.Y Y 3 Y u i+u u u u =._.M z /+o ",
-"4.4._.4.4._.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4._.4.4._.4.4.4._.4.4.4.4.4.4.4.4.4.4.4.4._.4.4.4.4.4._.4.4._.4.4.4.4.4.4.4.4._.4.4.4.4._.4._.4._.4._.4.4._.4._.4.4._.4._.4._.4._.4._.4._.4._._._.4._._._._.4._._.s X O S %+D O G+` ` T.D D D ` T.T.T.` D '.V.)+)+@+T.` +.V.!+).V.V.@+e+@+T.@+@+@+'.'.D D p+D S _ F.t+0+~.U e.p.D+~.~.V ~.U 0+0+0+0+0+0+0+0+}.B.9.i.0+U D+0+0+0+0+0+0+0+0+0+0+0+0+ +C+:.V 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+&+).)+E <+!+!+'.o *+o G+t S G+G+Y.o o o o Y.Y.o o *+< F *+< *+*+< < < < < < /+/+8 z z Z z /+z z z N N z N z ,.N ,.,.,.,.N ,.N s ,.s ,.s F+s N M s s ,.,.M ,.M s M s s M s M s M s M s s s s M s M s M ,.M M s M s _.s M M M M M M M M M M M M M s _.M M _.M _.M _.s _.M _._.s _.M _.s _.M M _.M _.M _._._._.M _.s _._.M _.M _.M M _.M _.M 4.M M M M _._.u K K K K 8.V ~.~.}.}.}.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.}.}.}.}.0+}.}.~.}.~.~.}.~.~.~.V ~.V ~.V V V V V + +&+ +&+ + + + + + + + +V + + +V V + +V B + +V + +'.D.- L ; L q L L L L L L L L L L L L L L L L L L L 5.L L L L L L ; +.<+g+<+<+).).).).).).!+!+!+!+)+)+)+)+)+V.V.2 2 2 +.+.@+'.T._ p+G+< D.D.D.Y Y D.Y Y D.D.Y Y D.v+Y D.Y D.D.Y 3 ",
-"4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4._.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4._.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4._.4._.4._.4.4.4.4.4._.4.4.4.4.4.4.4.4._.4.4.4._.4._.4._.4.4._.4._.4.4._.4.4.4._._.4._._.4.N Z S ` G+O $+S ` J.T.@+'.` '.T.T.` D ` )+).)+T.%+` ` +.!+)+)+V.'.'.@+'.@+'.'.T.D ` ` ` @+8.)+V.D T.O D |.f }. +B.9.l.r.}.D+D+h.U +}.0+0+0+0+0+i.9.0.D+C+a.h.h.0+0+0+0+0+0+0+0+0+}.e.0.C+}.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+~.!+8.E+g+!+).2 o *+O Y.G+Y.G+Y.7 o o *+o *+*+X < < /+< < < < < /+/+8 /+z Z Z z z ,.z z z z N z ,.N N ,.N ,.N M ,.s ,.s N M ,.M ,.s s ,.M ,.M s M s s M s M s M s M s s M M M s M s M M _.M M _.s _.M _.M M M M _.s 4.M M M M M M _.M _.M _.M M M M _.M _.s _._.M _.s _.M _._.M _.M _.s M _._._.M _.M M _._.4.M _.M _._.M _.M _.M _._.M 4.s _.M _._.M u K u K M <+~.}.}.}.}.}.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.0+}.}.}.}.~.}.~.~.~.~.~.~.V ~.V V V V + + + + + +&+&+ + + +B + + + +V +V B V + + +V + +V V + + +'.D.!.; L L q L L L L L L L L L L L L o+; L L 5.L L L L L L L L L * )+<+<+<+<+<+<+).).).!+).).!+!+!+!+)+)+V.V.V.V.2 2 +.@+@+'.T.D D G+X h =.Y D.D.Y D.D.Y Y D.D.Y Y D.Y D.D.Y D.Y ",
-"4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4._.4.4._.4.4.4.4.4.4.4.4._.4.4.4._.4._.4.4.4.4.4._._.4.4.4._.4._.4._.4._.4.4._.4.4.4._.4.4.4._.4._.4._.4._.4._._._.4._.4.M F O ` G+O 0 S ` T.T.@+'.D T.` D D G++.y ).p '.S J.'.)+)+)++.@+@+` @+@+'.` T.` S ` J.8.).)+V.'.'.` D S $+` o l t+}.~.C+9.j.B.a.a.a.k.B.9.9.0.j.k.i.r+j.9.j.0.9.j.k.D+n+n+p.r+U ~.0+}.e.j.9.k.E+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+}.!+8.E g+!+<+@+o < o O O O o o X < < *+*+*+< < < Z z Z Z /+Z Z z Z z z z z N N ,.,.N ,.N ,.N s ,.s ,.,.,.s s s M ,.s ,._.,.M s M M s M s M s M ,._.s M M M M s M s M M M M M _.s _.s _.M M M s _.M _.M _.M M _.M _.M _.M _.M M _.M _.M _.M _._.M _.M 4.M M 4.M 4.M 4.M _._._._._.4.M _._.M _.M 4.M _.M M _.M _.M _._._._.s 4.s _.M _.4.M 4.s 4.M K u 4.u K 4.!+~.}.}.}.}.}.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.}.}.}.}.}.}.}.}.~.~.~.V ~.V V V V V V V V + + +&+ +&+ +&+ + + +V B + + + + +V V V +V + + + +V + +'.D.$.L ; { q L L L L L o+L L L 5.L L L L L L L L L L L ; L L ; L H ).<+<+).).).).).).).!+!+y !+!+)+)+)+)+)+V.V.V.2 2 +.+.@+'.T.` D G+*+,.].] ] x x h =.u Y Y D.D.Y D.Y Y D.Y D.D.",
-"4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4._.4._.4._.4.4.4.4._.4.4.4.4.4._.4._.4.4.4._.4.4.4.- _.4.8 o D %+` ` J.` T.T.T.T.` T.D '.'.V.V.)+<++.` D '.'.!+!+V.'.+.+.8.@+'.` ` ` D ` '.V.!++.+.T.` '.+.V.)+).V.V.'.p+D D P v.0+E+0.9.B.h.:.r+p.r.r.}.0+0+0+0+i.9.a.h.k.i.C+U U r.r.E+h.p.p.a.9.9.9.l.i.~.U ~.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+~.)+2 E <+!+!+@+*+/+< *+*+*+*+X < /+Z < Z < Z Z z z z z z z z N N ,.z ,.z ,.N s ,.s N s ,.,.s s M ,.M N M ,.M M s M s M s M s M ,.M s M M s _.s _.s _.M M _.M _.s _.M 4.M M M M _.M _.M _.M M _.M _.M 4.M _._.M _.M 4.M 4.M _.4.M _.M 4.M _._.M 4.s 4.M _._.M 4.s 4.M _._._._.M 4.M _._._._.M _.M 4.M 4.4.M 4.M _.M _.4.M 4.M 4.M _.4.s 4.M 4._.K u K u K u 8.~.~.}.}.0+}.0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.}.0+}.}.}.}.}.}.~.~.~.~.~.~.~.~.~.V ~.V V V V + + + +&+&+&+&+&+ +&+ + + + + +B +V V + + + + +V + +V + + +'.D.> L ; { L L L L L L L L L L L L L L L L L L L ; L L L L L L L 5.<+<+<+<+<+<+).).).).).!+!+!+)+!+)+)+)+V.V.V.8.2 +.2 @+@+'.T.` D G+o N ] ] ] ] ] ] ] ] ] ] ] ] x x =.u =.u Y i+",
-"4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4._.4.4._.4._.4._.4.4.4._.4._.4.4.4._.4._.< O ` ` ` ` T.T.'.'.'.'.T.` D @+)+g+ +).+.J.` '.@+g+).+.@+2 +.+.'.@+` D S 8.+.!+)+)+` D %+2 )+).!+V.8.` G+D T.+.V.8.` T.D +.f }.C+9.l.V U V E+0+0+0+0+0+0+0+k.a.}. +U ~.0+0+0+0+0+0+0+0+n+9.j.l+h.D+B.a.k.0.0.e.D+~.0+0+}.h.E+E+~.~.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+V V.!+E ).).+.G+z Z < < < /+/+/+8 z 8 z Z N 8 ,.N s z ,.z N N ,.N ,.,.N s N M ,.M N M ,.M s M M ,._.s M s M s M s M M s _.M 4.M 4.M M _.M 4.M - s 4.M _.M M 4.s _.M 4.M _._.M _.M 4.M 4.M _.4.s K M 4.M 4._._.4.M 4.M _._._.4._.4.M 4._._._._.4.M 4._._._._._.M 4.M _.M _._.M 4.M 4.M _.4.M 4.M 4.M _.4.M 4.M K s 4.4.M 4._.4.M 4.4.M K s K _.K u K 3 K u '.~.}.}.0+}.0+0+0+0+0+0+0+0+0+0+0+0+0+}.0+}.}.}.}.}.}.}.~.}.}.~.~.~.~.V V V V V V V V +V +V &+ +&+E &+&+&+ + + + + + + +V + + +V +V + +V V + + + + +'.D.@.L L q L L L 5.L L L ; L L L L ; L L ; L L L L L ; L ; L L L o+<+).<+).).<+).).).).).!+).!+!+!+)+)+)+)+V.V.2 2 2 +.+.@+T.T._ D G+*+N ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ",
-"K 4.4.4.4.K 4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4._.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4._.4.4.4.4.4.4._.4.M X S ` ` ` ` T.'.T.'.T.'.T.D @+V.g+V E V.` +.).!+V.).+.@++.@+` '.'.` D G+'.).!+)+'.@+@+8.@+<+)+)+@+` G+D @+!+V.V.)+'.'.` S D D N.&.~. +l+r+V }.0+}.0+0+0+0+0+0+~.a. +}.~.0+0+0+0+0+0+0+0+V a.l+h.V 0+0+0+0+E+i.n+C+l.k.0.C+C+l.C+:.p.~.i.U 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+!+V.U g+!+<+D Z z z /+z /+z /+,.z N N N z ,.N ,.s N s N s N M ,.M s s M s M M _.,.M s _.,._.M M M s 4.s 4.s 4.M M _.M 4.s _.M _.s _._.M _.M 4.M _.M 4._._._.M 4.s K M _.4.M 4.M K _._.4.M 4.s 4.M K M _.4.M _.M 4._._._._.4.M 4._.4.M _._._.4.s 4.M 4._._.4.M K M 4._.4.4.M 4.M K _._.4.M 4.M 4._._.K M 4.M K _._.4._.4._.4.M 4.4.M 4.M 4.M 4.K K u K 3 G+V ~.}.}.}.}.}.}.0+0+0+0+0+}.0+}.}.0+}.0+}.}.}.}.}.~.}.~.~.~.~.~.V ~.~.~.V V V V +V + +&+ +&+&+&+&+&+&+&+&+ + + + + + + + +V +B +V V + + + + + + +T.D.H ; ; q L L L L ; L L L L ; L L L L L L ; L L L L L L L L L ; 1.<+<+<+<+<+).).).).!+!+!+!+!+)+)+)+)+)+V.V.V.8.2 +.+.@+@+'.T.` D p+O N ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ",
-"4.K 4.K 4.4.K 4.4.4.4.4.4.K 4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4._.4.4._.M O D T.J.T.T.'.T.T.'.` T.T.D +.).&+~.).` T.!+E +&+V.@+'.'.T.@+'.'.D ` V.E E V.e+` '.@+y ).)+'.p+'.'.+.)+)+V.+.'.` '.8.)+!+!+V.+.@+S l t+~.r.r.V 0+0+0+0+0+0+0+0+0+U D+0+0+0+0+0+0+0+0+0+0+D+i. +0+0+0+0+0+0+0+0+0+0+0+U i.a.a.k.0.k.k.p.D+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+&++.g+g+!+<+'.Z ,.,.Z ,.z ,.z ,.N s N s ,.M ,.M M ,.M ,._.,._.s M s M M s _.s 4.s 4.,.4.M M _.M 4.M _.M 4.M 4.M M _.M 4.M 4.M 4.M _.4._.K M K M 4.M _.K M K M K M 4._._.4.M 4.M 4._._.K M K M K M 4._._.4.M K M 4.M 4._._.K s K M K _.4.4._.K M K _._.K M K M K M _.4._.K M 4._.4._._.4.M K M 4._._.4.M 4.M 4.4._.4.M K M 4._.4.4.M 4._.K M 4.K K u 4.u /+2 ~.}.}.0+}.}.}.0+}.}.0+}.0+}.}.}.}.}.}.}.}.~.}.~.~.~.~.~.~.~.V V V V V V V V + + + +&+&+&+&+&+&+&+&+ +&+&+ + + + + + + + + + + + + + + + + + + + +'.D.; L L q L ; L L L L L L L L L ; L L L L L L ; L 5.L ; L ; L L F.<+<+).).).).).).y ).).!+!+!+!+)+)+)+)+V.V.V.8.2 8.+.+.@+T.T.D p+p+G+z ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ",
-"K 4.4.4.4.K 4.4.4.4.4.K K 4.4.4.K 4.4.4.4.4.4.K 4.K 4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.K 4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4._.4.4._.4.4.4.4.4.4.M < S ` T.T.T.T.'.T.'.'.T.T.'.+.g+V +)+T.+.g+ +V g+@+'.+.'.@+'.` '.G+8.g+g+V.+.S ` @+<+).@+'.G+` @+V.).)+@+` S J.+.!+!+!+!+8.8.8.8.6++.+.T.=+~.}.0+~.0+0+0+0+0+0+0+0+0+E+0+0+0+0+0+0+0+0+0+~.U }.0+0+0+0+0+0+0+0+0+0+0+~.r+U r.n+e.l+p.l+0.k.D+h.U U ~.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+V 2 <+U !+!+@+< _.s ,.,.,.M N _.,.M N _.,.M s _.M M _.s _.s 4.s _.M M _.M 4.s 4.s 4.s 4.M _._.s 4.M 4.M K M _.4.M 4.M K M K _._.4.M K s K s K M 4.4._.K M 4.M 4._.4.4.M K M K M 4.4.M K s K M u M K 4.M K M K M K 4._.K M K M K _._.4._.K M K _._.4.M K M K M K _._.4.M K _.K _.4.4._.4.M K M K _.4.4._.K M _.4.4.4.s K M 4.M 4.4._.4.s K M 4.K K 3 4.3 4.z )+}.}.0+}.0+}.}.0+}.0+}.}.0+}.}.}.}.}.~.}.~.~.}.~.~.~.~.V ~.V V V V + + + + + + +&+&+E E E &+&+&+&+&+ +&+ +&+ + + + + + + + + + + + + + + + + +'.3 L ; ; q L L L L L ; L L L L L L ; L L L ; L L L L L L L L L ; '.<+<+<+<+<+).).).!+!+!+!+!+!+)+)+)+V.V.V.V.V.2 2 +.+.@+@+T.T._ D p+Y.].] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ",
-"4.4.K 4.4.K 4.K 4.4.4.4.4.K K 4.4.4.K K K K 4.4.4.K 4.K 4.K 4.K K 4.K 4.K 4.K 4.4.4.4.4.K 4.4.K 4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.M o ` ` ` T.T.T.'.T.'.` T.'.` 8.E V V )+'.V.E V V !+'.@+'.@++.e+T.T.` )+E ).@++.)+).)+<+8.` 8.8.V.).).V.'.` +.8.V.).<+V.8.V.8.+.8.+.2 +.T.'._ D D &.~.0+}.0+~.B B }.0+0+0+~.0+0+0+0+0+0+0+0+0+~.V 0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.~. +r.}.0+0+ +D+a.j.9.k. +U 0+0+0+0+0+0+0+0+0+0+0+ +U }.h.h.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+~.+.g+E ).).2 X 4.M M s s M ,.4.,.K ,.4.s 4.M _._.M 4.s 4.M 4.M _._.M 4.M 4.M K M 4.M 4.4.M K s K M 4._.4.4.M K s K M K M 4.4.M K M K M K _.4.4._.K M K M 4._.4.4._.K M K _.K _.4.K M K M K _._.K _.K M K _.K 4.M K M K _.K _.4.K M K M K _.4.4._.K M K _.4._.4.K M K M K M 4.4.4.K M u M 4._.4.4._.4.M K M 4.4.4.K M K _.4.4._.K M K _.K _.4.K 4.3 K 3 K u z V.}.}.}.0+}.}.}.}.}.}.}.}.}.}.}.}.~.}.~.~.~.~.~.V ~.V V V V V V V +V + +&+&+E &+&+E &+E &+&+ +&+&+&+ + + +&+ + + + + + + + + + + +&+ +&+ +T.u L L ; 7+L L L L L L L 5.L L L L L L 5.L L ; L ; L L ; L L L ; +.<+).).).).).).).).).!+!+!+!+!+)+)+)+)+V.V.8.8.8.+.+.@+@+T.T._ p+S Z ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ",
-"K 4.4.4.4.4.4.4.K K 4.K 4.4.4.K K 4.4.4.4.4.4.K 4.4.4.4.4.4.4.4.4.K 4.4.4.4.4.4.4.K K K 4.4.4.4.4.4.K K K 4.K 4.4.K 4.4.4.4.4.4.4.4.4.4.K 4.4.4.4.K 4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.K 4.z G++.+.@+'.'.T.'.T.T.T.'.+.y B ~.}.y ` V.E ~.V )+@+p 8.@+@+'.'.8.E V V V.T.8.<+&+V E @+T.'.8.E E 8.'.D @+)+<+g+!+V.2 2 +.@+V.2 T.T.T.'.+.V.)+!+@+'.f+E +.o 9 ,.,.,.,.| ` B 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+}. +U }.D+p.0.a. +U r.r+i.i.i.:.n+B.e.E+ +U 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+V 2 U E+!+g+T.z K _.M _.M 4.s K s 4.M 4.M _._.M 4.M K s K M 4.4.M 4.M K s u _.4.4.M K M K M K M 4._._.K M K M K M K _.4.4.M K M K M K _.4.K M u M K _.K 4.4.K M K M K _.4.4._.K _.K M K 4._.K _.K M K M K 4._.K _.K _.K _.4.4._.K M K _.K _.4.K _.K M K _.4.K _.K M K _.K _.4.K M u M u _.4.4._.K _.u _.4.4._.K M K _.4.4._.K _.K M K _._.K _.K _.u 4.u u K u < )+}.}.}.}.}.}.}.}.}.}.}.~.~.~.}.~.~.~.~.V V ~.V V V V V + + + +&+ +&+&+&+&+E E E E E &+&+&+&+ + +&+&+ +&+ +&+ + +&+ +&+ + + + +&+ + + +T.K ; ; L q L L 5.L L L L L ; L L L ; L L L L L L L ; L L L ; L * V.<+<+).).).).).).!+!+y !+)+)+)+)+)+)+V.V.8.V.2 +.+.+.@+@+T.T.D D [.] ] ] ] ] ] ] ] ] x ] ] ] ] ] ] ] ] ] ] ] ] ",
-"K K K K K 4.K 4.4.K 4.K 4.4.4.4.K 4.4.K 4.K 4.K K K K 4.K 4.K 4.4.K K 4.K 4.K K 4.4.4.K 4.K K 4.K 4.4.4.K 4.K 4.4.4.4.K K K 4.K K K 4.4.K 4.K 4.4.4.K 4.K 4.K 4.4.4.4.4.K 4.K K 4.4.K 4.4.N O D ` ` D ` T.'.+.'.'.p +.8.+.@+@+8.@+V.g+E V y @+@++.'.@+e+T.)+E V &+V.'.!+E V V !+'.D T.V.&+)+@+@+8.8.<+E ).V.+.@++.2 2 @+T.D D V.<+g+!+).V.8.'.@+8.T.O 5+9 ,.9 X.,.,.X.,.9 V.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+}.E+D+l+j.j.9.9.9.k.:.p.V 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+E V. +g+!+g+D M _.K s K s K s K M _.4.M K M K s K M 4._.4.4._.K M K M 4._.4.4.M K M u M K _.4.K M K M u M u _.4.4.4.u M u M K _.K K _.K M K M K 4.4.K M u M u _.K 4.4.K M u M K _.4.4._.K M u M K _.4.4._.u M K _.K _.4.K _.u M u _.K 4._.u M u M K _.4.K M u M u _.K K _.K M K _.K 4._.K _.u M K 4.4.K _.u M u _.K 4._.K _.K _.K _.4.4._.K M K _.K 4.u 3 K 3 4.z )+~.}.}.}.}.}.~.}.}.}.~.~.~.~.~.~.~.~.V V V V V +V V + + +&+&+&+E E E E E &+E &+E &+E &+&+&+ + +&+ +&+ + +&+ + +&+ +&+ + +&+ +&+U T.4.; L ; q L L L L ; L L L L ; L L L L L ; L ; L L L ; L L L ; H !+).<+).).).).!+y !+!+!+!+!+)+)+)+V.)+V.V.2 2 2 2 +.@+@+T.T.T.G+Z ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ",
-"4.4.4.4.4.K 4.K 4.4.K 4.K K 4.4.4.K K 4.K 4.K 4.4.4.4.K 4.K 4.K K 4.4.4.4.K 4.4.K 4.K 4.K 4.4.K 4.4.K 4.4.4.4.K K 4.K 4.4.4.K 4.4.K 4.K 4.4.K 4.K 4.4.K 4.4.K 4.4.K 4.K 4.4.4.4.4.K 4.4.< _ V.g+<+8.8.<+y !+V.@+'.T.J.` J.'.+.@+@++.'.8.8.+.+., @+@+, !+ +~.~.).+.V.E ~.~.V.T.)+E &+&+)++.8.<+ +V <+V.2 V.2 V.V.@+'.@+'.+.!+g+<+V.@+D '.T.'.+.8.6+0+B p+Z 9 ,.9 X.9 ,.X.,.,.J.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+ +C+k.j.0.B.:.n+l.h.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+V.<+U ).).V.Y.u M K s K M K _._.K M K M K M K _.4.K M K M u M 4.4.4.K _.u M 3 M K _.K K _.u M u M K 4.4.K _.u M u M K _.4.K _.K M u M u _.4.K _.K M u M K _.4.K _.K M u M u 4.K K M 3 M u _.K K _.u M u _.u 4.4.K _.u M u _.K 4._.K M u _.K 4.4.K _.u _.K _.K _._.K _.K _.u _.4.4._.u _.K M u _.4.4.M u M u M 4.4._.K _.K M K _.4.K _.K M K _.K _.4.4._.3 K 3 K u M o V.~.~.~.}.~.~.~.~.~.~.~.~.V V V V V V V +V + + + +&+&+&+E &+&+E E E E &+E &+&+&+&+&+&+&+ + +B &+&+ + +&+ +&+ + +&+&+&+&+&+&+G+- L L L { L L ; L L L L L L L 5.L ; L ; L L L L L 5.L L ; L L 5.).<+).).).).).).!+).!+!+!+)+)+)+)+)+V.V.V.V.2 +.+.+.@+@+'.G+%.] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ",
-"K 4.K K 4.4.4.K K 4.K 4.4.K K K 4.4.4.4.K 4.4.K K K 4.K 4.4.4.4.K K K K 4.K K 4.K 4.K 4.K K 4.K K 4.K K 4.K 4.4.K 4.K 4.K 4.K 4.4.K 4.K K 4.K K 4.K 4.K K 4.K K 4.K 4.4.K K 4.K 4.K s G+@+@++.V.` !+0+0+0+0+0+0+0+0+0+}. +s.s.<+).!+8.+.@+J.@+'.+.+.@++.+.8.V.8.<+s.s.).)+<+B ~.~.<++.+.E V ~.).V.V.2 8.V.8.+.+.!+g+&+E <+V.T.T.` 8.2 )+)+V.T.S 0+0+0+d+$+9 ,.9 ,.9 9 ,.X.,.,.y 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+~.V h.r+D+r.V 0+0+0+0+0+~.n+k.i.V 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+ ++. +g+).g+_ s u 4.4.K M K M 3 M u _.K K 4.u M u M u _.K 4.4.u M u M u _.K 4.4.K M u M u _.K 4.4.K M u M u M K 4.4.K 4.u M 3 M K 4.K K _.u M u _.K K 4.u _.3 M 3 _.K 4.4.K _.u _.K 4.4.K _.u M u M K _.4.K _.u M u _.K 4._.K _.u _.u _.K K _.K M u _.K _.K K _.K _.u _.K 4.4.K _.K M u _.4.4.4.K 4.K M K _.4.4.4.K M u _.K _.K 4._.K _.K _.K _.4.K _.K _.u 4.3 u u u K 4.Y.8.V ~.~.~.~.~.V ~.~.~.V V V V V V + + + + + +&+&+&+E E E E g+E E E E &+&+&+&+ +&+&+&+&+ + + +&+&+B + +&+&+ +&+ +&+&+&+Y.u ; L { L L L L ; L ; L ; L L L L L L L ; L ; L L ; L L L ; L o+).<+<+).).!+!+).!+!+!+)+!+)+)+)+V.)+V.V.8.8.8.8.+.@+'.y.z ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ",
-"4.K 4.4.K K K 4.4.4.K 4.K K 4.4.K K K K 4.K K 4.4.4.K 4.K K K K 4.K 4.4.K 4.4.K 4.K 4.K 4.4.K 4.4.K 4.K K K K K 4.K 4.K 4.K 4.K K 4.K 4.4.K 4.K 4.K K 4.4.K 4.4.K 4.K K 4.4.K K K z _ +.'.8.8.` &+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+~.B E s.s.<+)+8.+.+.+.8.8.@+8.2 V.V.V.<+&+ +E V.V.8.V.V.V.@+V.). +V E )+V.D T.+.)+)+)+V.@+D T.G+).0+0+0+'.< Z | o 0 X /+5+9 ,.9 G+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+V }. +0+0+0+0+0+0+0+0+0+0+0+ + +r+e.n+h.E+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+2 ).U <+).@+X 3 4.3 M u _.K 4.4.u M u M u M u 4.4.K _.u _.u _.K 4.4.K _.u M u _.u 4.4.K 4.u M 3 _.K 4.K K 4.u M 3 _.K 4.K K 4.u M u _.u _.K K _.u M u M u _.4.K _.u _.u M u 4.4.u M 3 M u _.K 4.K K _.u _.u _.K 4.4.K _.u M u M K 4.4.K _.u _.u _.4.K 4.K _.u _.u _.K 4._.u M u _.u _.K 4._.u M u 4.K 4.4.u _.u _.u _.K 4.4.K _.u M u _.K K 4.K M u _.u _.K 4._.u 4.3 K D.K 4.o 8.V V V ~.V V V V V V V V +V + +&+&+&+&+&+E E E E g+E E E E &+E E &+E &+&+&+&+&+&+&+ + + +&+&+&+ + +&+&+&+&+&+&+< K L ; { L L ; L L 5.L L L L L ; L ; L ; L L L ; L L L ; L L ; c+<+).).).).).).!+!+!+!+!+)+)+)+)+)+V.V.V.V.8.+.T.G+F ].].] ] ] ] ] ] ] ] ] ] ] ] ].] ] ] ] ] ] ] ] ] ] ] ] ] ].] ",
-"4.K K 4.4.K K K K 4.K 4.4.K K 4.K 4.K K K 4.K K K 4.K K 4.4.4.K 4.K K 4.K K 4.K 4.K 4.K K K K K K K 4.4.K 4.K K K K 4.K K K 4.K 4.K K K 4.K K K K 4.K K 4.K K K K K 4.K K 4.4.K < ` +.@+V.+.'.h+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+E+r+C+i.).}+E s.g+)+V.V.8.V.8.V.V.V.V.+.E ~.}.&+)+'.` '.'.V.)+2 ` D @+V.!++.p+6+0+h+8.U.| W.+.<+s.d+D X 9 X.,.9 V 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+ +U h.n+l.j.j.a.B.r+r.V }.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+).2 U g+!+!+[ u K K _.u _.u _.u _.K K _.u _.u _.3 _.K 4.4.u 4.u _.u 4.K 4.K u _.u _.u _.u K 4.K 4.3 M u _.u 4.K K _.3 M u _.K 4.K K _.u _.3 M u 4.K K _.u _.u _.u _.K K 4.K _.3 _.K 4.K K 4.u _.3 M u _.K K 4.u _.u _.3 _.K K _.u _.3 _.u 4.K K _.u _.3 _.u _.K K _.u _.u _.K _.K K _.u _.u _.K _.K K _.u M u _.K 4._.K _.u _.u _.K 4._.K M u _.K _.4.4._.K _.u M u _.K K u 3 K 3 M < @+). +V V V V + +V &+ + + +&+&+&+E E E E g+E E g+E E E E &+E &+E &+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+U &+&+&+/+K ; ; q L L L L L L ; L ; L L L L ; L L ; L L L ; L L ; ; L L F.).).).).).!+).).!+!+y )+)+)+)+V.V.)+V.@+p+X N ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ].] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ",
-"K 4.K K K 4.4.K K K 4.K K 4.K K K K K 4.4.K 4.K K K K 4.K K K K K 4.K K K 4.u 4.K K K K K 4.4.K 4.4.K K 4.K K 4.K 4.K K 4.K K K K 4.4.K K K 4.4.4.K K K K 4.K 4.4.4.K K K K K X T.+.@+V.@+@+}.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+}.i.k.B.C+0+0+0+0+0+0+0+0+0+0+}.V }+}+s.s.<+!+)+)+V.+.)+V.)+)+@+V.@+)+)+)+8.p+G+< D W.| z O 6+}.0+0+0+8+G+Z 9 ,.,.)+ +E }.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+}.~.U D+:.a.j.9.9.k.e.i.:.:.n+:.n+C+h.r+n+i.r+r+p.D+E+ +~.0+0+0+0+0+0+0+0+0+0+0+0+0+0+&++. +E+!+<+D 4.3 4.K K 4.u M 3 _.3 _.u 4.K K - u _.u _.u 4.u K - u _.3 M u 4.K K 4.u _.3 M u _.K 4.4.u _.u _.u _.K 4.K K _.3 _.u _.u 4.K K 4.u _.3 M u 4.K K 4.u _.3 M 3 _.K 4.K u _.3 _.u 4.K K 4.3 M 3 M 3 _.K K 4.u M 3 M 3 _.K 4.4.u _.u _.3 _.K 4.4.u _.u M 3 _.K K 4.u M 3 M 3 _.K 4.4.u _.u _.u _.K 4.4.K _.3 M u _.K K 4.K _.u _.u 4.K 4.4.K _.u _.u _.u 4.4.K _.u _.3 K 3 K u 3 K z G+@+<+V V + + +&+&+E E E E E E E E g+g+E E E E E E &+&+&+&+&+&+&+&+ +&+&+&+&+&+&+&+&+&+&+&+&+&+&+E /+=.L L q L L ; L ; L L L L ; L ; L L ; L L ; L ; L ; L L L L ; T.).).).!+).y !+!+!+!+)+)+)+)+V.@+D O Z ].] ] ].] ] ].] ] ] ] ] ] ].] ] ] ] ].].] ] ].].].] ] ] ] ] ] ] ].].] ] ].",
-"K 4.4.K K K K 4.K K K K K 4.K 4.4.4.K K K K 4.4.K 4.K K K 4.4.K K 4.K K K 4.K K K K 4.K K K K K K K K K K 4.K K K K 4.K K K 4.K u K K 4.K K K K K K 4.K K K K K K K 4.4.K 4.< '.+.@+)+8.T.}.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+ +U r.r+B.j.a.r.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.V &+}+&+s.E g.!++.'.+.D ,.5+9 9 5+O d+0+0+0+0+).4 5+9 X.,.` '.).g+}.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+E+r.U + +U U r.i.:.e.a.a.a.B.l+n+0.k.:.:.:.:.C+D+ +}.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+B +. +E !+g+T._.u K u _.u K 4.u _.u 4.u _.u K K K 4.u 4.u - u K K K 4.u _.3 _.u 4.K 4.4.u 4.3 _.3 _.K 4.K u 4.u _.3 _.u 4.K K 4.u 4.3 _.u 4.K K 4.u _.3 _.u 4.K 4.K K _.3 _.3 _.u 4.K K _.3 M u _.K 4.K K _.u _.3 M u _.K K 4.u _.3 M u _.u K _.u _.3 M 3 _.K 4.4.K _.u _.u _.K 4.4.K 4.u _.u _.u 4.K K _.u _.u _.K _.K K 4.K _.u M u _.K 4.4.K _.u M 3 M K _.4.4._.u _.K _.K _.K 4.4.u 4.3 u D.D.D.K Z p++.<+&+&+&+&+E E E g+g+E E g+E g+E E E E E E &+E E &+E &+&+&+&+&+&+&+&+&+&+&+&+&+&+&+E &+/+K ; ; q L L L L ; L ; L L L L L ; L L ; L L L ; L ; ; R.; ; ; @+).).).).!+!+!+!+)+V.'.S < ,.x x ] ] ] ].] ] ] ] ] ].] ] ].] ].] ].].] ].] ] ] ] ] ] ] ].] ] ].] ].] ] ] ] ] ] ] ",
-"4.K K 4.4.K 4.K K 4.K 4.4.K K K K K K K 4.K K K 4.K K K 4.K K K K K K 4.K K K K K K K K 4.K 4.K K K K K 4.K K K K 4.K K K K K K 4.K K K K K K K 4.K K K K K K K K K K K K [.T.8.@+V.+.` }.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+h.n+j.k.D+}.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+V )+'.o 9 ,.,.,.N U.D 8+}.}.}+J.< 9 ,.9 ,._ T.D @+!+}.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+}.i.0.a.D+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+ +V.U g+).E T.s u K u _.u 4.K K 4.u 4.u _.3 _.u 4.4.u 4.3 _.u _.u 4.4.u 4.u 4.u 4.3 4.K K 4.u _.u 4.u 4.u 4.K K _.3 _.3 _.3 4.K K 4.K 4.u _.u _.u 4.u K 4.u _.3 _.u _.u 4.4.u _.3 _.u 4.K K 4.u _.u _.3 _.u 4.K K 4.u _.3 M 3 M u 4.4.u _.u _.u _.K 4.K K _.u _.3 M 3 _.K K 4.u _.u _.u _.K _.4.4._.u _.3 _.K 4.K K 4.K _.u M 3 _.K 4.4.K _.u M 3 M u _.K K 4.u _.u _.u _.K 4.K K _.u M u _.u 4.3 3 D.D.D.D.3 _.< p+'.V.).g+E g+<+g+E g+E E E E E E &+E &+E &+&+E &+&+&+&+&+&+&+&+&+&+&+E E &+&+E s h ; L q ; L ; L L L L L ; R.; L L ; L L L 5.; L L L L L L L ; 8.).).!+V.@+` O Z X.h x x ] ].].].].].] ] ] ] ] ].] ] ].].] ].] ] ] ] ].] ] ] ].] ] ] ] ] ].].] ] ] ] ] ] ] ].] ].",
-"K K K K K K K K K K K u K K K K 4.K K K K K u K K 4.K K K K K K K K K K K K K 4.K K K K u K K K K K K K K K K K K K K K 4.K K K K 4.K K K K K K K K K K 4.K K K K K K K z ` V., 8.V.m B 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+~.E+e.0.9.9.9.9.j.l+E+ +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+}.<+V.S ` ,.X.9 X.,.5+0 p+p 8.e+4 Z 9 ,.X.z p+@+2 f+2 E+&+~.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+p.0.9.9.e.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+&+@+ +g+!+)._ _.u K u 4.u 4.K K K u 4.u 4.u 4.u 4.K K 4.u 4.u 4.K 4.u K 4.u 4.u _.u 4.u 4.K K 4.3 _.u _.u 4.u K 4.K 4.3 _.3 _.u 4.K K 4.u 4.u 4.u _.3 4.K K 4.u _.3 _.u 4.K 4.4.K K u _.3 _.u 4.K K K u _.u _.3 _.u 4.K K _.3 _.3 M 3 _.u 4.K u _.3 M 3 _.3 4.K K _.u _.3 _.u _.u 4.K K 4.u _.3 _.u _.K K 4.u _.3 M 3 _.u 4.K K 4.u _.3 _.u _.K K K K _.u _.u _.u _.K K 4.u _.u _.u _.u _.K K 4.u _.3 u D.D.D.D.D.D.D.D.D.u s z *+p+T.8.!+E E E E E E &+E &+E &+&+E &+E &+&+E &+E &+E &+E &+E E &+_.h ; ; q L L L ; L ; L L ; L L L L ; R.L ; L L ; ; ; ; ; L ; * Z ,.6 i+=.h x x ] ] ] ] ].] ] ] ] ] ] ] ].] ].] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ].] ] ] ] ] ] ] ].] ] ] ] ].] ] ] ] ",
-"K 4.K u 4.K 4.K K 4.K 4.K K 4.K K K 4.K K K 4.K K K K K K K 4.K K K K 4.K K K K K K K K 4.K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K K _.D V.@++.)+T.y 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+}.U V ~.V D+:.e.l.9.9.9.a.r+D+E+V V V ~.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+).8.` @+o ,.,.,.9 ,.< $+D %+G+0 5+N X.< G+D p+_ _ T.@+2 &.!+g+~.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.h.h.r+:.l+a.j.B.i.h.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+).)+ +g+!+g.p+4.u 4.u 4.u K K K 4.u 4.u 4.u 4.u K 4.u K u 4.u 4.u 4.K K 4.u 4.u 4.u 4.u 4.u K 4.u 4.u 4.u 4.u K K K 4.u 4.u 4.u 4.u 4.K K K u 4.3 _.3 4.u 4.K u 4.u 4.u _.u 4.u K K u 4.u _.3 4.u 4.K K K K 4.u _.3 4.K 4.K K K K 4.u M 3 _.u 4.K K 4.K _.u _.3 _.u 4.K K 4.u _.3 _.3 _.u 4.K K 4.3 _.3 _.3 _.K K 4.K 4.u M 3 _.u 4.K K 4.u 4.u M 3 M 3 _.K M !.- 4.u M u _.u !.M !.4.K _.u M 3 M u _.K - K K 3 3 3 3 3 3 3 D.D.D.D.D.D.D.u M z *+G+D T.'.+.@+G.~+)+E &+E &+&+E &+E &+E &+&+E &+E M =.L L { H #+n L L L ; L L ; L ; L L ; L L L ; L L L L L L L ~ x ] ] ].] ] $...6.] ] ].] ] ].] ] ] ].] ] ].] ] ].] ] ] ] ] ] ].] ] ].].].] ] ] ].].].] ] ] ] $.].].].].] ] ].] ].",
-"K K 4.K K K K K K K K K 4.u 4.K K K u K K K K K K K K K K K K K K K K K K K K K K K K K K 4.K K K K K K K K K K K K K K K K K K u K K K K K K K u K K u K K K K K K K O '.+.+.)++.'.}.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+~. +r.B.a.C+E+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+}.<+V.+.V.a U.N 9 ,.5+U.O 4 o < /+X o G+p+D p+G+p+p+p+p+p+Y.G+G+` V.u.E v.}.}.0+}.}.~. +}.0+0+}.}. + +E+E+E+h.h.E+r.p.n+0.a.B.D+U r.D+h.U V 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+}.V.E +g.<++.O K u K K K K K 4.u K u 4.u 4.K K K K 4.u 4.u K u 4.u 4.K u 4.u 4.u 4.u 4.K 4.u K 4.u 4.u 4.u _.K K K K K u 4.u 4.u _.u 4.u 4.u K 4.u 4.u 4.u 4.u 4.K u 4.3 4.u _.u 4.u 4.K u _.u 4.u _.u 4.K K K u _.u 4.3 _.u 4.u 4.K u 4.u 4.u 4.u 4.K K K K _.u 4.3 _.3 _.u 4.K K _.u _.3 _.u _.K 4.K K _.3 _.3 M 3 _.u 4.K K 4.K _.3 _.u _.K 4.K K _.u M ' C.- M u _.K K 4.K 1 j d.3 M 3 _.K K '+j n ' M 3 M - c.v C.!.3 3 - v v C.!.3 3 K c.v C.'+D.D.D.D.D.& d.D.3 3 4.M ,.N /+< < < < < < /+| u S.#+L { * w+w+L ; o+L L L ; L ; ; L ; ; L ; L ; L ; ; ; ; L ~ ] ] ] ] ] ] $.n I ].] ] ].] ].].] ] ].] ] ].] ] $.C.q.' ].>.C.g ] 6.C.].d.$.] ] ] ] ].] ] ].] d.6.] ] ] ] ] ] ] ] ",
-"u 4.K K K K K K u K K 4.u 4.K u 4.K 4.K K K K K K K K K K K K K K K K K K 4.u K K K K K K u K K K K K K K K K K K K K K K K K u 4.K K K K K K K K K K K K K K K K u ,.D )+'.8.V.` g+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+}.r.l.k.0.k.i.r.V h.h.V }.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+~. +).2 T.8.D o *+< /+| o p+D D D D G+O o O p+p+p+y.G+G+p+p+S +.8.@+@+T.'.l @+P V.&.C ). +V ~. +E+D+:.n+l.k.0.j.0.9.9.k.k.l.e.C+h.U U }.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+ +2 +E+).g+T.8 K u K K K K u 4.u 4.K K K K K K K u 4.u 4.u 4.u K K u 4.u 4.u 4.u 4.u 4.u K K u K u 4.u 4.u 4.u K K K 4.u 4.u 4.u _.u 4.u 4.K u 4.u 4.u 4.u 4.u 4.K K 4.u 4.u 4.u 4.u 4.K K 4.u 4.u 4.u 4.u _.u K K K 4.u 4.u _.3 _.u 4.u 4.K K 4.3 _.3 _.u 4.u 4.K K _.u _.3 _.u 4.K K K K 4.u _.3 _.3 _.u 4.K K _.u _.3 _.3 _.u 4.K 4.4.u _.3 _.u _.u 4.K C.F+K 4.u _.3 _.u _.u ]+C.4.4.K 4.u _.- 1 d.F+K 4.'+S.K K ]+S.K K S.u 3 j S.3 K S.3 3 & S.3 3 3 3 3 & C.3 3 3 3 3 3 3 3 3 3 3 3 Y D.Y D.]+w+q.{ L L w+% ; L ; ; L ; L ; L L ; L L ; L ; R.; L L L L ; .] ] ] ] ].] ] d.$.] ] ].] ] ] ] ].] ] ] ] ] ].] ].C.a+].] C.].] ] ].] ].].] ].] ] ] ] ].].] ] ] ] ] ] ] ].] ].] ].",
-"K u K K K K K K K u K K K K K u K K K K u 4.K K K K K K u K K K K u K K K K K K K u K K K K K K K u K K K K K K K K K u K u K K K K K K K K K K K K K K K K K K K K o l 8.+.V.+.` }.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+}.h.D+h.D+h.l+0.j.k.B.i.U 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+B &+s.<+s.<+g+).y +._ *+Y.G+G+p+p+D p+G+*+o G+p+p+p+T.S e++.)+).!++.T.o '.+.'.p+_ P T._ P u.&.)+g.~.V +v.U E+D+C+e.l+l+e.n+r.r.p.h.E+E+E+V 0+0+~.U r.0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.V.g+ +<+).)+[ s K u K 4.u 4.K K K K u K 4.u 4.u K K K u 4.u K K K 4.u 4.u 4.u 4.u 4.u 4.K K 4.u 4.u 4.u 4.u 4.K K K K K K 4.u 4.u 4.u K K K u K u u 4.3 4.u 4.u K u K 4.K K u K u 4.u K u K K K 4.u 4.u 4.u 4.u 4.u 4.K K 4.3 _.3 - 3 _.u 4.u 4.K u _.u 4.u _.3 _.3 4.K K K K K 3 _.3 _.u _.u 4.K K 4.K 4.u _.3 _.u 4.K 4.K K 4.u _.3 _.3 _.u 4.K K 4.u _.u d.- _.u _./.a+v K 4.K c.6._.3 M u _.u 4.4.d.M K 4.6.a+u _.- d.K v c.K K '+d.K v v u 3 - d.K 3 3 u 3 c.v & C.F+3 & ' 3 3 f.P.3 3 Y D.Y u c.c S.{ L ; d...; L ..q.w+..* q.(.L (.q.* ; #+n w+q.* * #+% * a+>.].].] c a+C.d.$.].] ]+c.c.] $.I > _+c.].] ].] ] S.I ] q.> ] ] ] @.>.C.$.] ].c >.].c.>.] ] c C.] ].$.c.a+6.> ] ] ",
-"K K K K K K K K K 4.K K K K K K K u K K 4.u K u K u K K 4.K K K K K K K u K K K K K K u K u K K K K K u u K u K K K u K u K 4.u K K K u K u K K K K K K u K K K K _.[ 2 '.+.)+` 8.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+}.U E+0+h.j.9.9.9.9.9.0.:.n+C+r.E+V ~.~.V 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+}.V.)+2 +.'.` G+G+p+_ T.T.T.@+` ` @+V.V.).<+V.+.D ` +.2 +.8.+.+.8.)+` '.p+4 D D P D [ G+|.g.&.C <+f }.~.V +V V V V V h+V B ~.~.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+E )+ +E+).g+T.o 4.K K K K K K K K K K K u 4.u 4.u 4.K K K K K u K u 4.u 4.u 4.u K K K K K K u 4.u 4.u 4.u K K K K K 4.u 4.u 4.u 4.u 4.u K K K 4.u 4.u 4.u 4.u 4.u 4.K u 4.u K u 4.u 4.3 4.K K K u K u 4.u 4.3 4.3 4.u K K K K K 4.u 4.u 4.u 4.u 4.u K K u 4.u 4.u _.3 _.3 4.u 4.K K K u _.3 4.3 _.3 _.u 4.K K K u _.3 _.3 _.3 _.u 4.K K 4.u _.3 M 3 _.u _.3 M d.4.K K j+K._.S.M 3 _.n F+K 4.K K 4.K 4.- d.u _.K C.v 4.K 1 d.K n v M 3 1 d.4.C.c.u K !.d.u 3 3 3 3 S.I K I d.u R d.K 3 C.3 u u u Y D.c.u $.d.L L ; d.* L (.w+* % q.; #+d.L #+w+; w+#+; #+d.; ; w+S.(._+d.$.] >.a+] b d.] ] c.c ].w+$.> d.>.c n ] ].] ] $.d.@.n j ].].] c C.] @.d.] ].q.w+@.c d.].] >.w+] $.d.@.$.d.@.] ] ",
-"K K K u K K K K K u K K K K K K 4.K K u K K K K K K u K u K K K K K K K K u K u K u 4.K K K K K K K K 4.u K u K K K K K K u 4.u K K 4.K K K u K u K K 4.u K K K u Z S V.@+V.)+` <+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+V ~.h.l+k.9.9.9.9.k.e.C+p.~.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+).V.2 '.V.V.V.V.V.V.V.@+p+` +.V.!+g+g+)+2 _ D +.2 2 2 8.+.6+!+).V.@+D S 2 ).2 S O S @+a O O S T._ [ R.F.&.u.V.|.2 v.~.f ~.v. +V B V E E E &+B &+B V ~.}.0+0+V T.<+g+!+g+2 N.N K K K K K K K K K K K 4.K K K K K u K K K K K K K K K K K u K K u 4.u 4.u 4.u 4.u 4.u K K K K K K u K u 4.u 4.u 4.u 4.K K K K K u 4.u 4.u 4.u 4.u K 4.u 4.u 4.u 4.3 _.u 4.u 4.K K 4.u 4.u 4.u 4.u 4.u 4.u K K K 4.u 4.3 4.3 _.u 4.K 4.K K K u 4.u _.3 _.3 _.u 4.K 4.K K K u _.3 _.3 _.3 4.u 4.K K K K 4.u _.u 4.u 4.3 _.u 4.K K K u 4.u _.3 1 d._.3 s d.- u K 4.u _.d.1 3 _.3 M 3 _.u ]+n K 4.u j+d.]+'+n C.4.j d.j 1 n C.4.j d.j 1 C.C.3 _.u 4.K d.- 3 - d.K K d.- j /.3 3 u 3 =.K C.- c d.L ; ..d.; ; d.#+(.S.(.L * d.n ; L ..d.* ; #+w+L ; d.#+* > S.] $.d.$.] > w+].A+d.> I w+] $.d.] ] ] ] ].].].A+d.a+d.c ] ].] d.$.] ] d.$.] S.c ].$.d.] ] a+a+] A+d.] $.d.$.] ].",
-"K u K K 4.u K K u K K K u u K K u K K K K K K K K u 4.u K K u K u K u K K 4.u 4.K 4.u K K K u u K u K u 4.K 4.u K u K K K K u 4.K K u K K K K 4.K K u K K K K K K X p+8.@+8.)+D s.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+ +U ~.}.r+:.:.i.:.i.B.B.0.l.i.E+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+V 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+~.)+!+)+V.V.2 '.@+T.T.+.V.<+g+!+8.p+S D '.8.2 +.8.@++.8.)+<+!+8.'.p+T.<+).V.'.D S 8.).V.'.S o @+8.D O O G+4 [ D _ c+O S f+&.u.V.=+V.t+f }.f ~.v. +B B &+E g+).V.+.T.S '.D < K u 4.K K K K K K K K K K K u 4.u 4.K K K K K K K K K u 4.u 4.u 4.u 4.u 4.u K K K K K 4.u 4.u 4.u 4.u 4.u 4.u K K K K K K u 4.u 4.u K u 4.u 4.K K 4.u 4.u 4.u K u 4.u 4.u 4.u K 4.u K u 4.u K u 4.u 4.u 4.u 4.u K K u 4.u 4.u 4.u 4.u 4.u 4.u K 4.u 4.u 4.u 4.3 4.3 4.u K K K K u _.3 _.3 _.3 _.u 4.u 4.K u 4.u 4.u - 3 _.3 4.u 4.K 4.K K K K & C.4.u 1 d._.u _.u 4.- d.4.K K u _.u _.3 v a+4.u 4.u !.1 > d.- 4.u 1 !.j d.!.u 4.M 1 j d.!.K 4.u _.- d.K _.!.S.u K S.1 c.K 3 u 3 u 3 C.h - > d.; L #+S.L H d.#+H ; ; ; ; S.w+L ; % w+L L q.q.L ; d.H * I C.]./.d.] ].c.a+] v w+> A+] ].> n ].].].].] ] ] I d.] a+S.] ] $.d.$.].$.d.$.] d.$.].I C.].].S.c ] $.d.@.q.I ] ].] ",
-"K K K K K K u K K K u 4.K K u K u K K K u K K K K K K K K 4.u 4.u 4.K K K K K u K K K u K K 4.u 4.K K u K u K K K K u 4.K 4.u 4.u 4.K K K 4.u 4.K K K K K K 4.K 4.o m V.@+V.V.D s.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+}.U ~.0+U V }.0+0+0+0+0+0+U U n+j.j.a.D+r.}.0+0+0+0+0+0+0+0+}.r.~.U 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+).8.V.!+T.2 V.)+<+E E &+).8.'.'.` +.2 @+2 '.2 8.+.).<+@+T.'.D '.).g++.D G+G+'.).).8.'.O a V.).8.@+D G+T.T.` e+T.T.` a S o O [ _ S [ t F.D =+&.e |.&.v.v.}.v.~.;+V U f+*+_.K 4.K K K 4.K K K K K K K 4.K K K K K K K K K K K K 4.K K K K K K K K K u 4.u 4.u 4.u K K K u 4.K K K K K K K K 4.u 4.u 4.u 4.u 4.u K K u K K K u K u 4.u 4.u 4.u K u 4.u K K K K u 4.u 4.u 4.u 4.u 4.u 4.u 4.K K 4.u 4.u 4.3 4.u 4.u 4.u 4.u 4.K K 4.u 4.u 4.u _.3 _.u 4.u 4.K K K K 4.u 4.3 _.3 4.u 4.u 4.u K K K 4.u _.3 _.3 _.3 _.u 4.u 4.c.6.K K 1 d.M 3 M 3 _.'+S.3 _.u 4.K K 4.K n ]+4.u _.u 4.u C.@._.u 4.K 4.C.@.4.3 _.3 _.C.]+3 _.u 4.K !.S.K K C.K.u _.c.n P._.u _.u 4./.K.=.D.h S.#+L q.n L * d...L L ; ; #+a+d.* L q.S.; ; S.c ; * d.* * C.c ].> d.] ] w+6.].6.w+] ] ] ] >.a+] ] ] ].].] ].a+q.] $.d.c ].$.d.$.].I n ] $.d.].].C.c ] $.d.$.] ].A+c.$.].] ].].",
-"K u 4.u K u K K K K K u K K K K K K K K K K u K K K u K K u K u K u K u K K K K K K K K K K K K u K K 4.K 4.K K u K K 4.u K K K K 4.u 4.K K K K K K 4.K 4.K 4.u 4.O T.V.@+V.!+T.).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+U r+:.k.j.i.E+h. +D+U U E+D+E+i.U 0+0+0+0+0+0+0+0+0+V 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+~.2 !+).&+ +V +g+).V.'.8.D +.2 +.'.@+V.2 2 !+).)+@+` [ ` '.).!+'.Y.S D @+).g+V.@+p+S +.).)++.'.O D '.T.T.'.T.` +.).@+G+U.*+T.S o O S G+*+X O D G+[ S _ F.f+g.;+0+Z.G+s K K K K 4.K K 4.K 4.K 4.K K K 4.K 4.K 4.K 4.K K K K K K K K 4.u 4.u 4.u 4.u 4.u 4.u 4.K K K K K K K K K u 4.u 4.u 4.u K u 4.u K K K K K 4.u 4.u 4.u - u 4.u 4.u - u 4.K K K u 4.u 4.u 4.u 4.3 4.u 4.u 4.u K K K u K K u K u 4.u 4.u 4.3 4.u 4.u K K K u K 4.u 4.3 4.u 4.u _.u 4.3 4.u 4.K K K K 4.3 4.u 4.u _.u _.3 4.u 4.K K 4.u 4.u 4.3 _.3 _.n 1 u 4.u S.n a+& K 4.]+a+u _.3 _.3 _.u ]+d._+'+K K u 1 C.j 3 _.3 _.- C.( _.u _.K !.C./.4.K 4.u _.3 ' n 1 c.v u 4.K j S.K K K - u 1 S.@.x i+h S.w+b w+w+#+L w+S.a+q.#+S.#+; S.#+H * d.w+% S.w+{ c d.L ~ w+q.@.].d.n 6.S.n b $.d.C.>.I ] n I ].].].] ] ].$.S.q.] ] c.S.c ] C.f.@.w+] ].> d.] ].w+q.@.$.d.q._+] C.d.a+$.].] ] ",
-"K K K K K K K K K K K K K K K K K K K K K K K u K K K u 4.K 4.K 4.K K K u K u K u K K K u K K 4.K K u K u 4.u 4.K K u 4.K K K K K 4.K K 4.K 4.K 4.K 4.K 4.u _.K 4.o D 8.@+8.)+` 8.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+}.p. +B.9.l.n+:.a.B.l.:.h.0+0+0+0+0+0+0+0+0+ +U V 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+).@+)+U V.2 V.@+'.2 8.8.V.+.V.2 2 2 <+g+<+T.2 D ` T.V.).).D 4 D ` '.).<+)++.` D @+<+!+'.D S O T.T.T.D T.` T.)+!+2 '.S O @+).V.'.G+U.a D D ` ` D D S 4 X < *+[ |.@+N K K 4.K 4.K K K 4.K K 4.K K 4.K K 4.u 4.u 4.u 4.u 4.u 4.K 4.K K K 4.K K 4.K K K K K K K K K K K K K K K K K K u 4.u K K K K K K K K K K u - u 4.u 4.u 4.u 4.u K u K K K K u 4.u 4.u 4.u 4.u 4.u 4.u K u 4.u K K K K u 4.u 4.u 4.u 4.3 4.u 4.u 4.K K K K K u K u 4.u 4.3 _.3 _.3 _.u 4.u 4.u 4.K K K K K u 4.u 4.u _.3 _.3 _.u 4.u 4.u K 4.u _.u 4.d.M u _.3 _.- _.3 4.u a+]+K K K 4.u _.u M K M K _.u c P.4.u 4.K K c j 4.K 4.3 4.j L.3 _.u _.3 4.K 4.4.4.!.4.4.u _.3 j /.M 3 _.u 4.K M - 4.] u =.$.# # A+$.# # A+$.].].$.].].] $.] ] ].].] ] ] x x ] $.].$.$.] ] ] $.] $.$.] ] ] $.] ].].$.] ].] ].].] ].$.$.] ] ].].$.$.] ].$.$.] ] ] $.$.] ].] $.] ].$.] $.d.] $.a+d.$.].].",
-"K K K K K K K K K K K u K u K u K K K u K K K K K K u 4.u K u K u K K K K K K 4.K 4.u K K 4.u K u 4.K 4.K K K K K K 4.K 4.K 4.K 4.K 4.K 4.K 4.K 4.u 4.K 4.4.4.K x Z D V.@+8.)++.'.}.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+V +E+h.n+l+a.j.j.9.j.n+0+0+0+0+0+0+0+0+0+r.D+h.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+~.8.8.V.V.2 +.2 2 +.V.8.2 2 !+g+!+g+2 T.T.@+'.+.).E +.S T.p+D !+!+!+'.D ` D @+).)+` ` D p+T.'.T.T.` T.J.8.).V.+.T.$+G+V.!+8.'.G+4 D D a T.%+D D D D p+D D G+T.f+F+4.K 4.K K K 4.K 4.K K K 4.K K 4.K K 4.K 4.K K K 4.K 4.K K K u 4.K K K K K K K 4.K K K K K K K K K K K K K K K K K K 4.u 4.K K K 4.u K K 4.u 4.u 4.u K u K K K 4.K K K 4.u K u 4.u 4.u 4.u 4.u 4.u 4.u K K K K u 4.u 4.u 4.3 4.u 4.u 4.u 4.u 4.u K K K 4.u K u 4.u 4.u 4.u 4.u 4.3 4.u 4.u 4.u K K K K K u u 4.u K u 4.u 4.u _.3 4.u 4.u 4.K K K K M C.v ' 4.u _.3 4.3 ' 6.C.- _.u _.u 4.K K K K 4.u 4.u 4.u _.u _.3 _.3 _.3 _.u 4.K K 4.K _.3 _.u _.3 _.3 _.u 4.u M a+/.v 4.K K 4.u _.u 4.u _.x ].x x x ] x ] x ] x ] x ] x ] x ] x x ] x ] ] ] ] $.].] ].].] ].].].].].].] ] ] $.].] ].] ] ] ] ] ].] $.].] ] ] ].] ].] ] ] ].].].] ].].].] ] ].] ].].].] ] ]./.d.$.].$.S.$.] ] ",
-"K K K K K K K K K K K K K K K 4.u K K K u K K K K 4.u 4.K 4.K 4.K K u K K K u K u K K K u K K 4.K K K K 4.K K K K K 4.K 4.K 4.K 4.K 4.K 4.K 4.K _.K _.4.4.4.4.4.4.Z F.+.p +.V.V.D s.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+~.D+C+B.l.a.:.l.j.9.9.k.p.}.}.0+0+ +r+n+:.D+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+!+'.V.V.V.V.2 2 V.E g+ + +g+)+@+_ '.` ).).)+@++.S S ` 8.).E !+D T.` S V.).)+'.O G+p+` '.T.T.+.T.J.+.).!+8.'.G+O +.!+V.+.` 4 G+D D D D D D D a D D D D W._ 2.,.4.K 4.4.4.K 4.K 4.K 4.K 4.K 4.K K 4.K K K K 4.K 4.K K K 4.K 4.4.K K K 4.K K K 4.u 4.K 4.K K K 4.u 4.K 4.K 4.K K K 4.K K K K K 4.u K K K K K K u 4.u 4.K 4.u 4.u 4.u 4.u 4.u 4.u K u K K K u K K K K K K K K u 4.u 4.u 4.u 4.u 4.3 4.u 4.u 4.u K u 4.K u K u 4.u 4.u 4.u K u 4.u 4.u 4.u 4.u 4.u 4.u K K K K u 4.u 4.u 4.u 4.u 4.u 4.3 4.u 4.3 4.u K K K K K K K K K 4.u 4.3 _.3 _.3 _.3 _.3 _.3 _.3 4.u 4.u K K K 4.u 4.u _.u _.3 _.3 _.3 _.u 4.u 4.K K 4.K 4.K 4.u 4.a+c 3 M 3 _.u 4.u _.u 4.K x $.].$.] ].] ].].~ ].].] ].] ].] ].].] ].].] ] ].] ] ].] ].].] ] ] ] ] ] ].].].] ] ].] ].].].].].] ] ] ] ].] ].] ].] ].].].] ] ] ].].].].].].] ].] ] ] ].].].].] c C.c.>.] ].].].",
-"K 4.K K K K K K u 4.K K K 4.u K K 4.K 4.K 4.u 4.u K K K K K u K K 4.K K K K K 4.4.K K K 4.4.K K K 4.K K K K K K 4.u 4.K 4.K 4.K 4.4.4.4.4._.4._.K _.4._.4.M 4.s 4.,.o ` )+@+8.)+@+T.}.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+h.h.i.r+h.r+U 0+0+0+V ~.D+0.9.9.0.B.a.a.l+n+h.~. +0+0+0+0+0+0+0+0+0+}.E+~.0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+h+8.@+V.)+ +V V +E ).V.'.@+'.!+<+E ).+.8.+.T.` +.<+E )+T.` T.` '.!+<+@+D S ` D '.'.T.'.T.'.` @+!+).V.@+` G+@+).!+2 '.G+G+D D a S a D D D %+D D D p+D T.p+_.4.K 4.K 4.4.4.K 4.K 4.4.K 4.K 4.4.K 4.K 4.K 4.K K K 4.K K K K K 4.K K K 4.K K K 4.K K K K K K K 4.u 4.u K K K K K K u 4.u 4.u 4.u 4.K 4.u 4.u 4.u 4.u 4.u 4.u 4.K 4.u 4.u K K K K K 4.u K K 4.u K u 4.u 4.u 4.u 4.u 4.u 4.u 4.u 4.u 4.u 4.u K 4.u 4.u 4.u K u 4.u K u 4.u 4.3 4.u 4.u 4.u 4.u 4.u 4.u K K u 4.u 4.u 4.u 4.u 4.u 4.u _.3 4.3 4.u 4.u 4.K 4.u K K K K K K u K u 4.u 4.3 _.3 4.3 _.3 _.u 4.3 4.u 4.u 4.u 4.K K K K K K K K 4.u _.3 M 3 _.3 _.3 _.3 4.u 4.u 4.K 4.K 4.K K 4.u 4.u _.u - x ] ] ].] $.] ].A+~ $.].] ].] ].].].].].] ].].] ].].].].].].].].].].].].] ] ].].].].].].] ] $.] ].].].].] $.] ].].].] ] ].].].].] ] ] ] ] ] $.] ].].].].] ] ].].] ] ].] $.] ] ] "};
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_mastergui.cc
-
- Description: This implements the main (aka master) gtk+ GUI of terminatorX
- It serves as a container for the vtt-guis.
-*/
-
-#include <gtk/gtk.h>
-#include <gdk/gdkx.h>
-#include <X11/Xlib.h>
-#include <math.h>
-#include <string.h>
-#include "version.h"
-#include "tX_global.h"
-#include "tX_engine.h"
-#include "tX_vttgui.h"
-#include "tX_vtt.h"
-#include "tX_flash.h"
-#include "tX_smlog.c"
-#include "tX_dialog.h"
-#define MAX_ROWS 5
-
-GtkWidget *tt_box[MAX_ROWS];
-GtkWidget *tt_parent;
-GtkWidget *main_window;
-GtkWidget *wav_progress;
-GtkWidget *grab_button;
-GtkWidget *main_flash;
-GtkWidget *rec_btn;
-GtkAdjustment *volume_adj;
-GtkAdjustment *pitch_adj;
-int rec_dont_care=0;
-
-#define connect_entry(wid, func, ptr); gtk_signal_connect(GTK_OBJECT(wid), "activate", (GtkSignalFunc) func, (void *) ptr);
-#define connect_adj(wid, func, ptr); gtk_signal_connect(GTK_OBJECT(wid), "value_changed", (GtkSignalFunc) func, (void *) ptr);
-#define connect_button(wid, func, ptr); gtk_signal_connect(GTK_OBJECT(wid), "clicked", (GtkSignalFunc) func, (void *) ptr);
-
-Window xwindow;
-#define WID_DYN TRUE, TRUE, 0
-#define WID_FIX FALSE, FALSE, 0
-extern int add_vtt(GtkWidget *);
-extern void recreate_gui(vtt_class *vtt, GtkWidget *daddy);
-extern void destroy_gui(vtt_class *vtt);
-extern void gui_show_frame(vtt_class *vtt, int show);
-
-GdkWindow *save_dialog_win=NULL;
-GdkWindow *load_dialog_win=NULL;
-GtkWidget *save_dialog=NULL;
-GtkWidget *load_dialog=NULL;
-
-GdkWindow *rec_dialog_win=NULL;
-GtkWidget *rec_dialog=NULL;
-
-int stop_update=0;
-
-vtt_class *old_focus=NULL;
-
-int grab_status=0;
-int last_grab_status=0;
-
-void tx_note(char *message);
-
-gint pos_update(gpointer data)
-{
- f_prec temp;
-
- if (stop_update)
- {
- cleanup_all_vtts();
- if (old_focus) gui_show_frame(old_focus, 0);
- old_focus=NULL;
- gtk_tx_flash_clear(main_flash);
- gdk_flush();
- return(FALSE);
- }
- else
- {
- update_all_vtts();
- temp=vtt_class::mix_max;
- vtt_class::mix_max=0;
- gtk_tx_flash_set_level(main_flash, temp);
- if (vtt_class::focused_vtt!=old_focus)
- {
- if (old_focus) gui_show_frame(old_focus, 0);
- old_focus=vtt_class::focused_vtt;
- if (old_focus) gui_show_frame(old_focus, 1);
- }
- if (grab_status!=last_grab_status)
- {
- last_grab_status=grab_status;
- if (!grab_status)
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(grab_button), 0);
- // gtk_widget_draw_default(grab_button);
- }
- gdk_flush();
- return(TRUE);
- }
-}
-
-void rebuild_vtts(int need_delete)
-{
- int i,box;
- list <vtt_class *> :: iterator vtt;
-
- int vtts, vtt_per_box, boxes, maxboxes;
-
- if (need_delete)
- for (vtt=vtt_class::main_list.begin(); vtt!=vtt_class::main_list.end(); vtt++)
- {
- destroy_gui((*vtt));
- }
-
-
- for (i=0; i<MAX_ROWS; i++)
- {
- if (tt_box[i])
- {
- //gtk_container_remove(GTK_CONTAINER(tt_parent), tt_box[i]);
- gtk_widget_destroy(tt_box[i]);
- tt_box[i]=NULL;
- }
- }
-
- vtt_per_box=globals.gui_wrap;
- vtts=vtt_class::main_list.size();
- if (vtts>1)
- {
- maxboxes=vtts/globals.gui_wrap;
- if (vtts%globals.gui_wrap) maxboxes++;
- boxes=maxboxes;
-
- while (boxes<=maxboxes)
- {
- vtt_per_box--;
- boxes=vtts/vtt_per_box;
- if (vtts%vtt_per_box) boxes++;
- }
-
- vtt_per_box++;
- }
-
- for (i=0, vtt=vtt_class::main_list.begin(); vtt!=vtt_class::main_list.end(); i++, vtt++)
- {
- box=i/vtt_per_box;
-
- if (!tt_box[box])
- {
- tt_box[box]=gtk_vbox_new(FALSE, 0);
- gtk_box_pack_start(GTK_BOX(tt_parent), tt_box[box], WID_DYN);
- gtk_widget_show(tt_box[box]);
- }
- recreate_gui((*vtt), tt_box[box]);
- }
-}
-
-GtkSignalFunc new_table()
-{
- int i;
-
- i=vtt_class::main_list.size()/globals.gui_wrap;
-
- if (i<MAX_ROWS)
- {
- if (!tt_box[i])
- {
- tt_box[i]=gtk_vbox_new(FALSE, 0);
- gtk_box_pack_start(GTK_BOX(tt_parent), tt_box[i], WID_DYN);
- gtk_widget_show(tt_box[i]);
- }
- add_vtt(tt_box[i]);
- }
- rebuild_vtts(1);
-}
-
-/* Loading saved setups */
-
-GtkSignalFunc cancel_load_tables(GtkWidget *wid)
-{
- gtk_widget_destroy(load_dialog);
- load_dialog=NULL;
- load_dialog_win=NULL;
- return(0);
-}
-
-void do_load_tables(GtkWidget *wid)
-{
- FILE *in;
- char buffer[PATH_MAX];
-
- strcpy(buffer, gtk_file_selection_get_filename(GTK_FILE_SELECTION(load_dialog)));
- strcpy(globals.tables_filename, buffer);
-
- gtk_widget_destroy(load_dialog);
-
- load_dialog=NULL;
- load_dialog_win=NULL;
-
- in=fopen(buffer, "r");
-
- if (in)
- {
- if (vtt_class::load_all(in)) tx_note("Error while reading file.");
- fclose(in);
- gtk_adjustment_set_value(volume_adj, globals.volume);
- gtk_adjustment_set_value(pitch_adj, globals.pitch);
- }
- else
- {
- tx_note("Failed to access file.");
- }
- rebuild_vtts(0);
-}
-
-GtkSignalFunc load_tables()
-{
- if (load_dialog_win)
- {
- gdk_window_raise(load_dialog_win);
- return 0;
- }
-
- load_dialog=gtk_file_selection_new("Load Turntables");
-
- if (strlen(globals.tables_filename))
- {
- gtk_file_selection_set_filename(GTK_FILE_SELECTION(load_dialog), globals.tables_filename);
- }
-
- gtk_widget_show(load_dialog);
-
- load_dialog_win=load_dialog->window;
-
- gtk_signal_connect (GTK_OBJECT(GTK_FILE_SELECTION(load_dialog)->ok_button), "clicked", GTK_SIGNAL_FUNC(do_load_tables), NULL);
- gtk_signal_connect (GTK_OBJECT(GTK_FILE_SELECTION(load_dialog)->cancel_button), "clicked", GTK_SIGNAL_FUNC (cancel_load_tables), NULL);
- gtk_signal_connect (GTK_OBJECT(load_dialog), "delete-event", GTK_SIGNAL_FUNC(cancel_load_tables), NULL);
-}
-
-/* save tables */
-
-GtkSignalFunc cancel_save_tables(GtkWidget *wid)
-{
- gtk_widget_destroy(save_dialog);
- save_dialog=NULL;
- save_dialog_win=NULL;
- return(0);
-}
-
-void do_save_tables(GtkWidget *wid)
-{
- FILE *out;
- char buffer[PATH_MAX];
- char *ext;
-
- strcpy(buffer, gtk_file_selection_get_filename(GTK_FILE_SELECTION(save_dialog)));
- strcpy(globals.tables_filename, buffer);
-
- gtk_widget_destroy(save_dialog);
-
- save_dialog=NULL;
- save_dialog_win=NULL;
-
- ext=strrchr(buffer, '.');
-
- if (ext)
- {
- if (strcmp(ext, ".tX")) strcat(buffer, ".tX");
- }
- else
- {
- strcat(buffer, ".tX");
- }
-
- out=fopen(buffer, "w");
-
- if (out)
- {
- if (vtt_class::save_all(out)) tx_note("Error while writing file.");
- fclose(out);
- }
- else
- {
- tx_note("Failed to access file.");
- }
- rebuild_vtts(0);
-}
-
-GtkSignalFunc save_tables()
-{
- if (save_dialog_win)
- {
- gdk_window_raise(save_dialog_win);
- return 0;
- }
-
- save_dialog=gtk_file_selection_new("Save Turntables");
-
- if (strlen(globals.tables_filename))
- {
- gtk_file_selection_set_filename(GTK_FILE_SELECTION(save_dialog), globals.tables_filename);
- }
-
- gtk_widget_show(save_dialog);
-
- save_dialog_win=save_dialog->window;
-
- gtk_signal_connect (GTK_OBJECT(GTK_FILE_SELECTION(save_dialog)->ok_button), "clicked", GTK_SIGNAL_FUNC(do_save_tables), NULL);
- gtk_signal_connect (GTK_OBJECT(GTK_FILE_SELECTION(save_dialog)->cancel_button), "clicked", GTK_SIGNAL_FUNC (cancel_save_tables), NULL);
- gtk_signal_connect (GTK_OBJECT(save_dialog), "delete-event", GTK_SIGNAL_FUNC(cancel_save_tables), NULL);
-}
-
-GtkSignalFunc master_volume_changed (GtkWidget *wid, void *d)
-{
- vtt_class::set_master_volume(GTK_ADJUSTMENT(wid)->value);
-}
-
-GtkSignalFunc master_pitch_changed(GtkWidget *wid, void *d)
-{
- vtt_class::set_master_pitch (GTK_ADJUSTMENT(wid)->value);
-}
-
-GtkSignalFunc saturate_changed(GtkWidget *w, void *d)
-{
- vtt_class::enable_saturate (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)));
-}
-
-GtkSignalFunc audio_on(GtkWidget *w, void *d)
-{
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)))
- {
- stop_update=0;
- run_engine();
- gtk_timeout_add(globals.update_idle, (GtkFunction) pos_update, NULL);
- }
- else
- {
- stop_engine();
- stop_update=1;
-
- if ((want_recording) && (!globals.autoname))
- {
- want_recording=0;
- rec_dont_care=1;
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rec_btn), 0);
- rec_dont_care=0;
- }
- }
-}
-
-GtkSignalFunc cancel_rec(GtkWidget *wid)
-{
- gtk_widget_destroy(rec_dialog);
- rec_dialog=NULL;
- rec_dialog_win=NULL;
- rec_dont_care=0;
- return(0);
-}
-
-void do_rec(GtkWidget *wid)
-{
- char buffer[PATH_MAX];
-
- strcpy(buffer, gtk_file_selection_get_filename(GTK_FILE_SELECTION(rec_dialog)));
-
- if (strlen(buffer))
- {
- strcpy(globals.record_filename, buffer);
- want_recording=1;
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rec_btn), 1);
- }
-
- rec_dont_care=0;
-
- gtk_widget_destroy(rec_dialog);
-
- rec_dialog=NULL;
- rec_dialog_win=NULL;
-}
-
-GtkSignalFunc select_rec_file()
-{
- if (rec_dialog_win)
- {
- gdk_window_raise(rec_dialog_win);
- return 0;
- }
-
- rec_dialog=gtk_file_selection_new("Record To Disk");
-
- if (strlen(globals.record_filename))
- {
- gtk_file_selection_set_filename(GTK_FILE_SELECTION(rec_dialog), globals.record_filename);
- }
-
- gtk_widget_show(rec_dialog);
-
- rec_dialog_win=rec_dialog->window;
-
- gtk_signal_connect (GTK_OBJECT(GTK_FILE_SELECTION(rec_dialog)->ok_button), "clicked", GTK_SIGNAL_FUNC(do_rec), NULL);
- gtk_signal_connect (GTK_OBJECT(GTK_FILE_SELECTION(rec_dialog)->cancel_button), "clicked", GTK_SIGNAL_FUNC (cancel_rec), NULL);
- gtk_signal_connect (GTK_OBJECT(rec_dialog), "delete-event", GTK_SIGNAL_FUNC(cancel_rec), NULL);
-}
-
-GtkSignalFunc tape_on(GtkWidget *w, void *d)
-{
- if (rec_dont_care) return 0;
-
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)))
- {
- if (globals.autoname)
- {
- globals.filectr++;
- sprintf(globals.record_filename, "%s%04i.wav", globals.prefix, globals.filectr);
- want_recording=1;
- }
- else
- {
- rec_dont_care=1;
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), 0);
- select_rec_file();
- }
- }
- else
- {
- want_recording=0;
- }
-}
-
-GtkSignalFunc grab_on(GtkWidget *w, void *d)
-{
- grab_mouse(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)));
- grab_status=1;
-}
-
-void grab_off()
-{
- grab_status=0;
-}
-
-GtkSignalFunc hide_clicked(GtkWidget *w, void *d)
-{
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w)))
- {
- show_all_guis(0);
- }
- else
- {
- show_all_guis(1);
- }
-}
-
-void quit()
-{
- globals.width=main_window->allocation.width;
- globals.height=main_window->allocation.height;
-
- gtk_main_quit();
-}
-
-void mplcfitx()
-/* Most Proabably Least Called Function In Terminator X :) */
-{
- show_about(0);
-}
-
-
-
-#define add_sep(); dummy=gtk_hseparator_new ();\
- gtk_box_pack_start(GTK_BOX(right_hbox), dummy, WID_FIX);\
- gtk_widget_show(dummy);\
-
-#define add_sep2(); dummy=gtk_hseparator_new ();\
- gtk_box_pack_end(GTK_BOX(smaller_box), dummy, WID_FIX);\
- gtk_widget_show(dummy);\
-
-
-int create_mastergui(int x, int y)
-{
- GtkWidget *main_vbox;
- GtkWidget *right_hbox;
- GtkWidget *left_hbox;
- GtkWidget *control_box;
- GtkAdjustment *dumadj;
- GtkWidget *dummy;
- GtkWidget *small_box;
- GtkWidget *smaller_box;
- int i;
-
- main_window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(main_window), VERSIONSTRING);
-
- gtk_container_set_border_width(GTK_CONTAINER(main_window), 5);
-
- main_vbox=gtk_hbox_new(FALSE, 5);
-
- gtk_container_add(GTK_CONTAINER(main_window), main_vbox);
- gtk_widget_show(main_vbox);
-
- left_hbox=gtk_vbox_new(FALSE, 5);
- gtk_box_pack_start(GTK_BOX(main_vbox), left_hbox, WID_DYN);
- gtk_widget_show(left_hbox);
-
- control_box=gtk_hbox_new(FALSE, 5);
- gtk_box_pack_start(GTK_BOX(left_hbox), control_box, WID_FIX);
- gtk_widget_show(control_box);
-
- dummy=gtk_hseparator_new();
- gtk_box_pack_start(GTK_BOX(left_hbox), dummy, WID_FIX);
- gtk_widget_show(dummy);
-
- dummy=gtk_toggle_button_new_with_label(" Audio Engine ");
- connect_button(dummy,audio_on, NULL);
- gtk_box_pack_start(GTK_BOX(control_box), dummy, WID_FIX);
- gtk_widget_show(dummy);
-
- grab_button=gtk_toggle_button_new_with_label(" Mouse Grab ");
- gtk_box_pack_start(GTK_BOX(control_box), grab_button, WID_FIX);
- connect_button(grab_button, grab_on, NULL);
- gtk_widget_show(grab_button);
-
- dummy=gtk_check_button_new_with_label("Record");
- rec_btn=dummy;
- connect_button(dummy,tape_on, NULL);
- gtk_box_pack_start(GTK_BOX(control_box), dummy, WID_FIX);
- gtk_widget_show(dummy);
-
-
- dummy=gtk_label_new("Master Volume:");
- gtk_box_pack_start(GTK_BOX(control_box), dummy, WID_FIX);
- gtk_widget_show(dummy);
-
- dumadj=(GtkAdjustment*) gtk_adjustment_new(globals.volume, 0, 1.5, 0.001, 0.001, 0.01);
- volume_adj=dumadj;
- connect_adj(dumadj, master_volume_changed, NULL);
- dummy=gtk_hscale_new(dumadj);
- gtk_scale_set_digits(GTK_SCALE(dummy), 2);
- gtk_scale_set_value_pos(GTK_SCALE(dummy), GTK_POS_LEFT);
- gtk_box_pack_start(GTK_BOX(control_box), dummy, WID_DYN);
- gtk_widget_show(dummy);
-
- dummy=gtk_label_new("Master Pitch:");
- gtk_box_pack_start(GTK_BOX(control_box), dummy, WID_FIX);
- gtk_widget_show(dummy);
-
- dumadj=(GtkAdjustment*) gtk_adjustment_new(globals.pitch, -3, 3, 0.001, 0.001, 0.01);
- pitch_adj=dumadj;
- connect_adj(dumadj, master_pitch_changed, NULL);
- dummy=gtk_hscale_new(dumadj);
- gtk_scale_set_digits(GTK_SCALE(dummy), 2);
- gtk_scale_set_value_pos(GTK_SCALE(dummy), GTK_POS_LEFT);
- gtk_box_pack_start(GTK_BOX(control_box), dummy, WID_DYN);
- gtk_widget_show(dummy);
-
- dummy=gtk_hbox_new(FALSE,0);
- gtk_box_pack_start(GTK_BOX(left_hbox), dummy, WID_DYN);
- gtk_widget_show(dummy);
-
- tt_parent=dummy;
-
- tt_box[0]=gtk_vbox_new(FALSE, 0);
- gtk_box_pack_start(GTK_BOX(dummy), tt_box[0], WID_DYN);
- gtk_widget_show(tt_box[0]);
-
- tt_box[1]=NULL;
- tt_box[2]=NULL;
-
- dummy=gtk_hseparator_new();
- gtk_box_pack_start(GTK_BOX(left_hbox), dummy, WID_FIX);
- gtk_widget_show(dummy);
-
- wav_progress = gtk_progress_bar_new();
- gtk_box_pack_start (GTK_BOX(left_hbox), wav_progress, WID_FIX);
- gtk_widget_show(wav_progress);
-
- dummy=gtk_vseparator_new();
- gtk_box_pack_start(GTK_BOX(main_vbox), dummy, WID_FIX);
- gtk_widget_show(dummy);
-
- right_hbox=gtk_vbox_new(FALSE, 5);
- gtk_box_pack_start(GTK_BOX(main_vbox), right_hbox, WID_FIX);
- gtk_widget_show(right_hbox);
-
- dummy=gtk_button_new_with_label("Add Turntable");
- gtk_box_pack_start(GTK_BOX(right_hbox), dummy, WID_FIX);
- gtk_widget_show(dummy);
-
- gtk_signal_connect(GTK_OBJECT(dummy), "clicked", GtkSignalFunc(new_table), NULL);
-
- dummy=gtk_button_new_with_label("Load Turntables");
- gtk_box_pack_start(GTK_BOX(right_hbox), dummy, WID_FIX);
- gtk_widget_show(dummy);
- gtk_signal_connect(GTK_OBJECT(dummy), "clicked", GtkSignalFunc(load_tables), NULL);
-
- dummy=gtk_button_new_with_label("Save Turntables");
- gtk_box_pack_start(GTK_BOX(right_hbox), dummy, WID_FIX);
- gtk_widget_show(dummy);
- gtk_signal_connect(GTK_OBJECT(dummy), "clicked", GtkSignalFunc(save_tables), NULL);
-
- add_sep();
-
- dummy=gtk_check_button_new_with_label("Saturate");
- gtk_box_pack_start(GTK_BOX(right_hbox), dummy, WID_FIX);
- gtk_widget_show(dummy);
- connect_button(dummy, saturate_changed, NULL);
-
- dummy=gtk_check_button_new_with_label("Hide Gui");
- gtk_box_pack_start(GTK_BOX(right_hbox), dummy, WID_FIX);
- gtk_widget_show(dummy);
- connect_button(dummy, hide_clicked, NULL);
-
- add_sep();
-
- dummy=gtk_button_new_with_label("Options");
- gtk_box_pack_start(GTK_BOX(right_hbox), dummy, WID_FIX);
- gtk_widget_show(dummy);
- gtk_signal_connect (GTK_OBJECT(dummy), "clicked", (GtkSignalFunc) display_options, NULL);
-
- dummy=gtk_button_new_with_label("About");
- gtk_box_pack_start(GTK_BOX(right_hbox), dummy, WID_FIX);
- gtk_widget_show(dummy);
- gtk_signal_connect (GTK_OBJECT(dummy), "clicked", (GtkSignalFunc) mplcfitx, NULL);
-
- add_sep();
-
- small_box=gtk_hbox_new(FALSE, 5);
- gtk_box_pack_start(GTK_BOX(right_hbox), small_box, WID_DYN);
- gtk_widget_show(small_box);
-
- smaller_box=gtk_vbox_new(FALSE, 0);
- gtk_box_pack_start(GTK_BOX(small_box), smaller_box, WID_FIX);
- gtk_widget_show(smaller_box);
-
- GdkBitmap *mask;
- GtkStyle *style;
- GdkPixmap *pmap=NULL;
- GtkWidget *pwid;
-
- gtk_widget_realize(main_window);
- style = gtk_widget_get_style( main_window );
- pmap=gdk_pixmap_create_from_xpm_d(main_window->window, &mask, &style->bg[GTK_STATE_NORMAL], (gchar **) tx_smlog_xpm );
- pwid = gtk_pixmap_new( pmap, mask );
- gtk_box_pack_start(GTK_BOX(smaller_box), pwid, WID_FIX);
- gtk_widget_show( pwid );
-
-
- dummy=gtk_label_new("14628");
- gtk_misc_set_alignment(GTK_MISC(dummy), 1, 0.5);
- gtk_box_pack_end(GTK_BOX(smaller_box), dummy, WID_FIX);
- gtk_widget_show(dummy);
-
- dummy=gtk_label_new("Memory/kB:");
- gtk_misc_set_alignment(GTK_MISC(dummy), 0, 0.5);
- gtk_box_pack_end(GTK_BOX(smaller_box), dummy, WID_FIX);
- gtk_widget_show(dummy);
-
- add_sep2();
-
- dummy=gtk_label_new("4");
- gtk_misc_set_alignment(GTK_MISC(dummy), 1, 0.5);
- gtk_box_pack_end(GTK_BOX(smaller_box), dummy, WID_FIX);
- gtk_widget_show(dummy);
-
- dummy=gtk_label_new("Vtts:");
- gtk_misc_set_alignment(GTK_MISC(dummy), 0, 0.5);
- gtk_box_pack_end(GTK_BOX(smaller_box), dummy, WID_FIX);
- gtk_widget_show(dummy);
-
- add_sep2();
-
- dummy=gtk_label_new("3.5");
- gtk_misc_set_alignment(GTK_MISC(dummy), 1, 0.5);
- gtk_box_pack_end(GTK_BOX(smaller_box), dummy, WID_FIX);
- gtk_widget_show(dummy);
-
- dummy=gtk_label_new("Release:");
- gtk_misc_set_alignment(GTK_MISC(dummy), 0, 0.5);
- gtk_box_pack_end(GTK_BOX(smaller_box), dummy, WID_FIX);
- gtk_widget_show(dummy);
-
- add_sep2();
-
- dummy=gtk_label_new("Status:");
- gtk_misc_set_alignment(GTK_MISC(dummy), 0.5, 0.5);
- gtk_box_pack_end(GTK_BOX(smaller_box), dummy, WID_FIX);
- gtk_widget_show(dummy);
-
- main_flash=gtk_tx_flash_new();
- gtk_box_pack_end(GTK_BOX(small_box), main_flash, WID_DYN);
- gtk_widget_show(main_flash);
-
- gtk_window_set_default_size(GTK_WINDOW(main_window), x, y);
-
- gtk_signal_connect (GTK_OBJECT(main_window), "destroy", (GtkSignalFunc) quit, NULL);
-}
-
-gfloat old_percent=-1;
-
-void wav_progress_update(gfloat percent)
-{
- percent=floor(percent*10.0)/10.0; //Updateing statusbars with gtk-themes eats up hell of a lot CPU-time
- // which is why we update every 10% only.
-
- if (wav_progress)
- {
- if (old_percent != percent)
- {
- old_percent = percent;
- gtk_progress_bar_update(GTK_PROGRESS_BAR(wav_progress), percent);
- while (gtk_events_pending()) gtk_main_iteration();
- }
- }
-
-}
-
-void note_destroy(GtkWidget *widget, GtkWidget *mbox)
-{
- gtk_widget_destroy(GTK_WIDGET(mbox));
-}
-
-void tx_note(char *message)
-{
- char buffer[4096]="\n [ terminatorX Message: ] \n\n";
-
- GtkWidget *mbox;
- GtkWidget *label;
- GtkWidget *btn;
-
- mbox=gtk_dialog_new();
-
- strcat(buffer, " ");
- strcat(buffer, message);
- strcat(buffer, " ");
- label=gtk_label_new(buffer);
- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(mbox)->vbox), label, TRUE, TRUE, 0);
- gtk_widget_show(label);
-
- btn = gtk_button_new_with_label("Ok");
- gtk_box_pack_start(GTK_BOX(GTK_DIALOG(mbox)->action_area), btn, TRUE, TRUE, 0);
- gtk_widget_show(btn);
-
- gtk_signal_connect(GTK_OBJECT(btn), "clicked", GtkSignalFunc(note_destroy), mbox);
-
- gtk_widget_show(mbox);
-}
-
-void display_mastergui()
-{
- GtkWidget *top;
-
- gtk_widget_show(main_window);
- top=gtk_widget_get_toplevel(main_window);
- xwindow=GDK_WINDOW_XWINDOW(top->window);
-}
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_mastergui.h
-
- Description: Header to tX_mastergui.cc
-*/
-
-#ifndef _h_tx_mastergui
-#define _h_tx_mastergui 1
-
-#include <gtk/gtk.h>
-#include <X11/Xlib.h>
-
-extern Window xwindow;
-
-extern int create_mastergui(int x, int y);
-extern void wav_progress_update(gfloat percent);
-extern void note_destroy(GtkWidget *widget, GtkWidget *mbox);
-extern void tx_note(char *message);
-extern void display_mastergui();
-extern void grab_off();
-extern void rebuild_vtts(int);
-
-#endif
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_mouse.cc
-
- Description: This implements the mouse AND keyboard Input handling in
- Grab-Mode.
-*/
-
-#include "tX_mouse.h"
-#include "tX_mastergui.h"
-#include "tX_global.h"
-#include "tX_engine.h"
-#include "tX_vtt.h"
-
-tx_mouse :: tx_mouse()
-{
- mask=PointerMotionMask | KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask;
- xmot=(XMotionEvent *) &xev;
- xkey=(XKeyEvent *) &xev;
- xbut=(XButtonEvent *) &xev;
- grabbed=0;
-}
-
-int tx_mouse :: grab()
-{
- if (grabbed) return(0);
-
- dpy=XOpenDisplay(NULL); // FIXME: use correct display
- if (!dpy)
- {
- return(ENG_ERR_XOPEN);
- }
-
- if (globals.xinput_enable)
- {
- if (set_xinput())
- {
- XCloseDisplay(dpy);
- return(ENG_ERR_XINPUT);
- }
- }
-
- XSelectInput(dpy, xwindow, mask);
-
- XSetInputFocus(dpy, xwindow, None, CurrentTime);
-
- if (GrabSuccess != XGrabPointer(dpy, xwindow, False, ButtonPressMask|ButtonReleaseMask|PointerMotionMask, GrabModeAsync,GrabModeAsync,None,None,CurrentTime))
- {
- reset_xinput();
- XCloseDisplay(dpy);
- return(ENG_ERR_GRABMOUSE);
- }
-
- if (GrabSuccess != XGrabKeyboard(dpy, xwindow, False, GrabModeAsync,GrabModeAsync,CurrentTime))
- {
- XUngrabPointer (dpy, CurrentTime);
- reset_xinput();
- XCloseDisplay(dpy);
-
- return(ENG_ERR_GRABKEY);
- }
-
-
- if (!XF86DGADirectVideo(dpy,DefaultScreen(dpy),XF86DGADirectMouse))
- {
- XUngrabKeyboard(dpy, CurrentTime);
- XUngrabPointer (dpy, CurrentTime);
- reset_xinput();
- XCloseDisplay(dpy);
- return(ENG_ERR_DGA);
- }
-
- XAutoRepeatOff(dpy);
- otime=CurrentTime;
-
- grabbed=1;
- vtt_class::focus_no(0);
-
- return(0);
-}
-
-void tx_mouse :: ungrab()
-{
- if (!grabbed) return;
-
- XF86DGADirectVideo(dpy,DefaultScreen(dpy),0);
-
- XUngrabKeyboard(dpy, CurrentTime);
- XUngrabPointer (dpy, CurrentTime);
- XAutoRepeatOn(dpy);
-
- reset_xinput();
-
- XCloseDisplay(dpy);
-
- vtt_class::unfocus();
-
- grabbed=0;
-}
-
-
-
-int tx_mouse :: set_xinput()
-{
- XDeviceInfo *devlist;
- int listmax, i;
- int match=-1;
-
- if (globals.xinput_enable)
- {
- devlist=XListInputDevices(dpy, &listmax);
-
- for (i=0; i<listmax; i++)
- {
- if(!strcmp(globals.xinput_device,devlist[i].name))
- {
- match=i;
- }
-
- if(devlist[i].use == IsXPointer)
- {
- OrgXPointer=devlist[i].id;
- }
- }
-
- if (match>=0)
- {
- input_device=NULL;
- input_device=XOpenDevice(dpy,devlist[match].id);
-/* if (XChangePointerDevice(dpy,input_device, 0, 1)!=Success)
- {
- match=-1;
- }*/
- XCloseDevice(dpy, input_device);
- }
-
- XFreeDeviceList(devlist);
-
- if (match>=0) return(0);
- else return(1);
- }
-
- return(0);
-}
-
-#define vtt vtt_class::focused_vtt
-
-int tx_mouse :: check_event()
-{
- if (XCheckWindowEvent(dpy, xwindow, mask, &xev))
- {
- if (vtt)
- switch(xev.type)
- {
- case MotionNotify:
- ntime=xmot->time;
- dtime=(f_prec) ntime-otime;
- if (dtime<=0) dtime=1.0;
- otime=ntime;
-
- vtt->xy_input(((f_prec) xmot->x_root)/dtime,((f_prec) xmot->y_root)/dtime);
- break;
-
- case ButtonPress:
- switch(xbut->button)
- {
- case 1: if (vtt->is_playing)
- vtt->set_scratch(1);
- else
- vtt->trigger();
- break;
- case 2: vtt->set_mute(1); break;
- case 3: vtt_class::focus_next(); break;
- }
- break;
-
- case ButtonRelease:
- switch (xbut->button)
- {
- case 1: vtt->set_scratch(0); break;
- case 2: vtt->set_mute(0); break;
- }
- break;
-
- case KeyPress:
- {
- key=XKeycodeToKeysym(dpy, xkey->keycode, 0);
-
- switch(key)
- {
- case XK_space: vtt->set_scratch(1); break;
- case XK_Escape: return(1);
-
- case XK_Return: vtt->trigger(); break;
- case XK_BackSpace : vtt->stop(); break;
-
- case XK_Tab: vtt_class::focus_next(); break;
-
- case XK_s: vtt->set_sync_client(!vtt->is_sync_client, vtt->sync_cycles); break;
-
- case XK_m:
- case XK_Control_L:
- case XK_Control_R:
- vtt->set_mute(1);
- break;
-
- case XK_Alt_L:
- case XK_Alt_R:
- vtt->set_mute(0);
- break;
-
- case XK_F1: vtt_class::focus_no(0); break;
- case XK_F2: vtt_class::focus_no(1); break;
- case XK_F3: vtt_class::focus_no(2); break;
- case XK_F4: vtt_class::focus_no(3); break;
- case XK_F5: vtt_class::focus_no(4); break;
- case XK_F6: vtt_class::focus_no(5); break;
- case XK_F7: vtt_class::focus_no(6); break;
- case XK_F8: vtt_class::focus_no(7); break;
- case XK_F9: vtt_class::focus_no(8); break;
- case XK_F10: vtt_class::focus_no(9); break;
- case XK_F11: vtt_class::focus_no(10); break;
- case XK_F12: vtt_class::focus_no(11); break;
- /*
- case XK_f:
- warp=((float) globals.scratch_size)/50000.0;
- */
- }
- } break;
-
- case KeyRelease:
- {
- key=XKeycodeToKeysym (dpy, xkey->keycode, 0);
-
- switch(key)
- {
- case XK_space: vtt->set_scratch(0); break;
-
- case XK_m:
- case XK_Control_L:
- case XK_Control_R:
- vtt->set_mute(0);
- break;
-
- case XK_Alt_L:
- case XK_Alt_R:
- vtt->set_mute(1);
- break;
- }
- }
- }
- else { puts("no vtt"); return(1); }
- }
- return(0);
-}
-
-void tx_mouse :: reset_xinput()
-{
-
-/* if (globals.xinput_enable)
- {
- input_device=XOpenDevice(dpy, OrgXPointer);
- XChangePointerDevice(dpy, input_device, 0, 1);
- XCloseDevice(dpy,input_device);
- }*/
-}
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_mouse.h
-
- Description: Header to tX_mouse.cc
-*/
-
-#ifndef _h_tx_mouse
-#define _h_tx_mouse
-
-#include <tX_types.h>
-#include <unistd.h>
-#include <X11/Xlib.h>
-#include <X11/extensions/XInput.h>
-#include <X11/extensions/xf86dga.h>
-#include <X11/keysym.h>
-
-class tx_mouse
-{
- XID OrgXPointer;
- XDevice *input_device;
- XEvent xev;
- long mask;
- XMotionEvent *xmot;
- XKeyEvent *xkey;
- XButtonEvent *xbut;
- Time otime, ntime;
- f_prec dtime;
- Display *dpy;
- KeySym key;
-
- public:
-
- int grabbed;
-
- int set_xinput();
- void reset_xinput();
- int grab();
- int check_event();
- void ungrab();
- tx_mouse();
-};
-
-
-#endif
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_smlog.c
-
- Description: Small terminatorX-logo
-*/
-
-/* XPM */
-static char * tx_smlog_xpm[] = {
-"40 280 256 2",
-" c None",
-". c #030304",
-"+ c #908357",
-"@ c #454444",
-"# c #86461C",
-"$ c #C5C4C2",
-"% c #646464",
-"& c #252213",
-"* c #A9A488",
-"= c #67431F",
-"- c #512709",
-"; c #88693E",
-"> c #AD854D",
-", c #A86828",
-"' c #343434",
-") c #695338",
-"! c #88764C",
-"~ c #78725C",
-"{ c #E6E2C4",
-"] c #979282",
-"^ c #CEA258",
-"/ c #595242",
-"( c #3B2412",
-"_ c #220E04",
-": c #AD925E",
-"< c #7A633E",
-"[ c #785523",
-"} c #51371B",
-"| c #9B8454",
-"1 c #58432A",
-"2 c #B3B299",
-"3 c #966932",
-"4 c #D5D4D0",
-"5 c #7E4417",
-"6 c #633D1A",
-"7 c #987949",
-"8 c #2C2C2B",
-"9 c #49341A",
-"0 c #F4F4EF",
-"a c #C29249",
-"b c #B6A26C",
-"c c #5B391B",
-"d c #766A34",
-"e c #9A8A54",
-"f c #574A2E",
-"g c #141413",
-"h c #694C26",
-"i c #8B6F3D",
-"j c #695A3F",
-"k c #3F2C14",
-"l c #8A581F",
-"m c #CEB274",
-"n c #241C0F",
-"o c #AF9A6F",
-"p c #785B31",
-"q c #9E5E1C",
-"r c #6C6C6C",
-"s c #E2C26C",
-"t c #7F7A68",
-"u c #A59B7A",
-"v c #433A24",
-"w c #A87838",
-"x c #5C5C5C",
-"y c #88602D",
-"z c #BE8234",
-"A c #877962",
-"B c #8E8B79",
-"C c #302316",
-"D c #523E28",
-"E c #D4C294",
-"F c #B1AD94",
-"G c #E3E3E3",
-"H c #331D0A",
-"I c #524A39",
-"J c #472C19",
-"K c #E2D2A4",
-"L c #987E53",
-"M c #C7B59C",
-"N c #F3E9D3",
-"O c #716346",
-"P c #AC8C4F",
-"Q c #747474",
-"R c #816440",
-"S c #594D42",
-"T c #B77629",
-"U c #BFBB9F",
-"V c #976F35",
-"W c #988B79",
-"X c #704C24",
-"Y c #785D40",
-"Z c #615337",
-"` c #352B1F",
-" . c #685D54",
-".. c #120A04",
-"+. c #B0A488",
-"@. c #906836",
-"#. c #A19474",
-"$. c #B89456",
-"%. c #FDFDFA",
-"&. c #1C1C1A",
-"*. c #897052",
-"=. c #2B1D12",
-"-. c #6F5432",
-";. c #A38554",
-">. c #786D56",
-",. c #3D2C1F",
-"'. c #70451C",
-"). c #513926",
-"!. c #604322",
-"~. c #463D37",
-"{. c #95612A",
-"]. c #362516",
-"^. c #4F3012",
-"/. c #3C3C3C",
-"(. c #774D24",
-"_. c #AC9D7F",
-":. c #89826F",
-"<. c #4F422B",
-"[. c #CDCCC9",
-"}. c #473427",
-"|. c #C0AC7A",
-"1. c #A48D65",
-"2. c #A97E47",
-"3. c #867E71",
-"4. c #7F7468",
-"5. c #8E7E54",
-"6. c #5C3E1F",
-"7. c #935922",
-"8. c #7F5C2F",
-"9. c #D8B26C",
-"0. c #E2BE94",
-"a. c #E3DCCB",
-"b. c #E2CA98",
-"c. c #D2CAB4",
-"d. c #CBAA64",
-"e. c #C09C5C",
-"f. c #DDDCD9",
-"g. c #BA8A4C",
-"h. c #ECECE9",
-"i. c #C8BCA6",
-"j. c #A86F2E",
-"k. c #0D0C08",
-"l. c #CABE8C",
-"m. c #E2BA64",
-"n. c #89511F",
-"o. c #2F1607",
-"p. c #B87E38",
-"q. c #B0621C",
-"r. c #CE9644",
-"s. c #5C300C",
-"t. c #D6AC60",
-"u. c #F5EEE1",
-"v. c #79542E",
-"w. c #B4B4B4",
-"x. c #B6A68C",
-"y. c #9C9C9C",
-"z. c #E2D6CC",
-"A. c #AA8A5F",
-"B. c #966E48",
-"C. c #B7AB94",
-"D. c #160E06",
-"E. c #B89D67",
-"F. c #F0C478",
-"G. c #918470",
-"H. c #D6BA84",
-"I. c #6F3E17",
-"J. c #B38446",
-"K. c #EFE3B4",
-"L. c #DCD2B4",
-"M. c #A17841",
-"N. c #ECDEC0",
-"O. c #D0BA94",
-"P. c #A3A3A4",
-"Q. c #CAA571",
-"R. c #A2968C",
-"S. c #251608",
-"T. c #70655B",
-"U. c #5F5449",
-"V. c #CCC6B7",
-"W. c #90774E",
-"X. c #807256",
-"Y. c #442512",
-"Z. c #FCF4E4",
-"`. c #EBE5D4",
-" + c #804D1C",
-".+ c #AF966E",
-"++ c #BF965E",
-"@+ c #866240",
-"#+ c #ACACAC",
-"$+ c #BCBCBB",
-"%+ c #4F321D",
-"&+ c #D4CDC1",
-"*+ c #3C342B",
-"=+ c #7F551C",
-"-+ c #BBB597",
-";+ c #A06829",
-">+ c #C1A46A",
-",+ c #826B40",
-"'+ c #614A2E",
-")+ c #1B150B",
-"!+ c #715B3F",
-"~+ c #AF792F",
-"{+ c #B48C4A",
-"]+ c #604D3E",
-"^+ c #BF792C",
-"/+ c #9F7135",
-"(+ c #6F5D4C",
-"_+ c #8F6F4C",
-":+ c #806B4F",
-"<+ c #C58D41",
-"[+ c #B0702A",
-"}+ c #A69A8C",
-"|+ c #B48E64",
-"1+ c #A17E50",
-"2+ c #AF7E3F",
-"3+ c #917E5F",
-"4+ c #67452E",
-"5+ c #77654E",
-"6+ c #684D36",
-"7+ c #D6C6A8",
-"8+ c #504640",
-"9+ c #A27A5C",
-"0+ c #0B0604",
-"a+ c #242424",
-"b+ c #949494",
-"c+ c #545454",
-"d+ c #998466",
-"e+ c #9C8C6A",
-"f+ c #87592D",
-"g+ c #C9B588",
-"h+ c #7C7C7B",
-"i+ c #8C8C8C",
-"j+ c #4C4C4C",
-"k+ c #848484",
-"l+ c #C9AE77",
-"m+ c #EED6BC",
-"n+ c #6A655F",
-"o+ c #B2935C",
-"p+ c #563716",
-"q+ c #6A3E19",
-"r+ c #92713D",
-"s+ c #726C65",
-"t+ c #4A3B27",
-"u+ c #625D56",
-"v+ c #8E5E24",
-"w+ c #C68434",
-"x+ c #8E7962",
-"y+ c #3A1E07",
-"z+ c #EAD6B0",
-"A+ c #7A746A",
-"B+ c #9E8E74",
-"C+ c #7E5E3C",
-"D+ c #A6966C",
-"E+ c #56310F",
-"F+ c #DACDAC",
-"G+ c #9E7254",
-" ",
-" ",
-" ",
-" . . . ",
-" V ].. . . . ' u+8 . ",
-" {+ .H ( & 0+. . . . k./ 4 %.7+g ",
-" | r j+a+S.H S.0+. . . . g n W h.G [.o &. ",
-" v.% % r c+*+n 6 J &.&.k.0+. &.' 3.i.U k+h+r Q #.&. ",
-" X r /.@ % % x j++.{ $ b+r ' 0+. . C V.L.4 $+s+@ &.g c+D+&. ",
-" X n+/.a+&.8 x n+x P.h.%.%.$ *+ . ].< l+[.#+c+' 8 g D.k.x D+&. ",
-" X % /.a+&.&.' Q k+Q k+f.%.`.L k.k 9 ) T.r x 8 a+g &.g g k.c+_.&. ",
-" X r ' a+a+&.' Q b+y.i+h+P.B 1. . )+).} t+c+s+Q c+&.a+8 g a+&.k.g c+u n ",
-" (.r /.a+a+a+@ k+k+% c+8+; r+ . ( 1 1 S c+r i+Q c+j+&.8 ' g &.&.k.k.c+* )+ ",
-" v.n+/.a+8 @ h+r j+).< 8. k.9 !.]+/ % Q y.y.h+x c+@ &.8 ' g &.g k.g j+* n ",
-" (.Q c+x i+w.$+;.,+ . n 9 } <.c+% k+y.y.y.b+r j+j+@ &.' @ &.&.&.k.g j++.S. ",
-" v.Q w.4 G %.u.!+ . ` 6.9 @ c+% i+P.y.P.P.P.b+Q c+j+/.g ' @ &.&.g g &.j+* S. ",
-" 6 B 0 %.{ y./ &.} 9 v I c+% i+y.y.P.y.y.y.y.y.k+x j+' g @ j+&.g g k.&.j++.S. ",
-" <+++o i+~.& ) '+v c+x h+b+b+b+y.P.y.P.P.P.P.y.k+x @ ' g /.x 8 k.k.g &.j++.y+ ",
-" @ u+#.C.x+x x h+y.y.y.b+b+y.P.y.y.y.y.y.y.k+% @ ' g @ x ' g g g a+j+>. ",
-" l.z.G B r h+y.b+y.y.P.b+b+b+y.y.P.P.y.P.P.P.i+% @ ' g /.x /.&.g ' @ j+). ",
-" J.w.F Q j+' % y.b+y.y.P.y.y.b+y.y.y.P.y.y.y.y.k+% @ ' g /.x ' /.c+s+; V ",
-" P s+j+a+a+8 r y.b+y.y.y.y.b+y.y.y.P.y.P.y.P.P.i+x @ ' &.a+@ j+U.; V 0+. ",
-" _+% 8 &.&.8 r y.b+y.P.P.P.y.y.y.y.P.y.P.y.y.P.i+c+j+% r % 6+@+v. & :.d+&.. ",
-" p r 8 &.&.' h+y.i+b+P.y.y.y.y.y.P.y.P.y.y.P.y.i+i+b+$+f.|+[ . S.p+r+4 L.v . ",
-" 7.r 8 &.&./.k+y.i+b+P.P.y.y.y.y.P.y.y.y.y.k+% h+4 %.N C.1 &.n 6 ; 4.c+% F v . ",
-" Y % 8 &.a+j+b+i+k+y.y.y.P.b+b+y.y.P.P.i+% c+@ o 0 2 u+y.$ M 7 j j+' &.j+* *+. ",
-" y % a+g a+c+y.i+h+b+P.y.P.b+b+y.b+r x c+8+C+ L %.%.$ x 8 &.&.&.j+* *+. ",
-" R % 8 &.a+c+b+k+k+b+y.P.y.b+Q % c+S !+M. $.F+-+[.w.c+/.j+a+g &.@ * v . ",
-" ; % a+&.a+c+b+k+h+b+y.y.Q x j+~.!+~+ d.>.c+% x a+&.@ j+a+g &.j+* *+. ",
-" R % a+&.&.c+y.k+h+Q r x @ }.8. 9 *+@ r c+' /.@ g g &.@ * v . ",
-" ; % a+&.a+j+b+c+c+j+@ -.3 - ` r r j+/.g k.&.j+* v . ",
-" ; r 8 a+/.r x j+).f+w <+$.] Q % j+&.j+* D ",
-" R r % h+b+:.8.@. s J.S % % j+W [ ",
-" !+i+$ h.Z.9. J.v.j % S ",
-" M G Z.K . . . . . o+4+ ",
-" D.g D.0+. . . ",
-" h 8.! x+i ^.. . . ",
-" P L j+j+j+/ % +.'.0+. ",
-" o r k+i+b+h+x c+e+( . ",
-" | % y.y.P.y.b+b+% x v... ",
-" !.Q y.y.P.P.b+i+h+c+< S. ",
-" L r y.y.y.y.i+k+i+x <.=. ",
-" { b+y.P.y.y.i+3.h+r +. ",
-" %.0 y.y.y.b+b+k+k+x r+ ",
-" { %.i+% k+b+b+k+Q |.+ ",
-" e.o j+j+r r A+) d D.. 0+. . . . . 0+. . . . . . . . . ",
-" ,+! >.G.E.r+).)+n 1 T.].C ` S.( n+/ k H ` ` 8 ` &.. ",
-" m.5+(+>.>.:.O *+).6.:+V.G >.f -+] F u.V.t+` j 1+7 B.L D. ",
-" R r Q r r r n+r r r % % r s+u+@ c+c+x x s+Q x j+c+% #.&. ",
-" {.c+b+b+b+b+b+k+h+k+b+y.y.Q 8 b+#+P.r &.8 a+g 8 &.c+#.n ",
-" /+c+i+i+i+k+h+r x Q b+P.b+c+' P.w.y.x &.8 a+&.' 8 j+#.&. ",
-" w j+b+k+h+k+h+r x r i+y.b+/.j+#+#+h+8 &.@ a+&.' 8 j+e+&. ",
-" J.j+b+i+h+h+Q % c+% i+y.i+8 x w.P.c+g ' c+8 &.' ' j+1.&. ",
-" $.j+b+i+k+Q Q % x % i+y.h+8 % #+b+' g j+% 8 g ' ' @ #.&. ",
-" e.j+b+i+i+h+r % x r i+b+r a+h+#+h+a+&.c+r ' g ' ' j+u n ",
-" > j+b+y.b+i+k+k+h+k+b+y.Q a+r b+x &.@ Q k+@ &.a+8 @ +. ",
-" {.j+c+c+c+x x % x x c+x % r @ @ j+r r % % r r x c+@ :+ ",
-" f+4+6.y 3 !.} } 6.4+@.f+k 1.4 V.O.D C k }.,.@+>+l.L H ",
-" } %+t+ ",
-" . . . . . . . . . . ",
-" . ..=.k ` Y.<.& D.. . . . . ",
-" D.9 6.; Y v * 2 $ p =.Y.=.D.. . . . ",
-" k+#.W.v / j+c+n+@ j+j+r c+/.t+(.y+n . . . ",
-" A %.4 Q % x Q k+8 i+#+x 8 c+r x j+` k '+0+. . ",
-" ; R $ $+P.b+h+b+x /.P.w.% &.a+/.% r x j+6+; . . . ",
-" T D+h+P.P.y.k+k+i+' r w.#+Q g &.8 /.r Q % Q p -.. . ",
-" H.b+y.b+y.y.k+b+x ' y.w.w.k+a+g 8 /.u+j+8 c+A+y C . ",
-" w 3.b+b+y.y.i+k+i+8 r #+$+w.y.j+g a+/.x @ g a+x u+p . . ",
-" R k+i+y.P.y.i+y.x /.P.w.w.$+#+% g a+/.c+@ g &./.% -.)+. ",
-" N.$+k+i+y.y.b+b+i+8 Q w.w.w.w.#+Q &.&.' j+/.&.&.a+r ]+1 . ",
-" Q.i+k+i+y.i+k+b+x 8 b+w.w.w.w.#+% &.a+/.x j+8 &.&.j+s+;. ",
-" X x % % c+c+c+% % j+c+c+x x c+j+j+x r r r r % x x j+% a ",
-" !.} }.'+W.#.O }.u o *.Y !+< :+e+F :+*+C C ].*+*.d+d+-.H ",
-" _ )+)+_ n n )+D.D.D...D._ )+C =.n &.&.=.C ].=.S.. . ",
-" n ..0+..)+D.0+....0+..0+....k.g g g g g g )+)+)+)+. . ",
-" F. .p+Y W.!.f * d+R p -.6+-.!+*._.d+D ).).` 9 *.W.X D Z . ",
-" 5.s+% c+x % x c+c+c+c+c+c+c+x c+j+c+r % n+r r % x n+3.; ",
-" c x i+b+k+*+c+y.#+#+w.#+#+#+#+#+b+/.g &.&.a+&.&.&.c+3.!. ",
-" =+j+k+b+% a+b+w.w.#+#+#+#+#+#+w.#+x g g g g g &.&.j+5+k ",
-" q.U.r k+/.@ #+w.#+#+#+#+#+P.#+w.w.Q 8 &.&.g g &.&.j+C+ ",
-" 3 c+h+a+r w.w.w.#+#+P.#+#+#+w.w.b+j+' &.k.g &.8 T.v+ ",
-" , u+% ' i+w.#+#+#+#+#+P.P.#+#+$+P.Q j+8 g k.g j+++ ",
-" p.j+c+h+w.#+#+#+P.#+#+P.#+#+w.w.i+% 8 g g g n ",
-" Y.h+r h+#+#+#+#+#+#+#+#+#+w.w.y.Q ' a+% !+_ ",
-" m+h.k+c+h+y.#+#+P.#+#+#+w.w.P.% @ j+; v. ",
-" u+M l.t c+j+c+r h+k+k+k+Q r j+@ }.; ",
-" . . g 2.{+! O c+c+c+/ '+~.1 C+ ",
-" j.=+W.k . ~+~+/+7. ",
-" $.r % y.I.. ",
-" . . . . . ..[ r c+r I.. . . . . . . . . . . . . . . . . . . . . . . ",
-" )+k.k.k.k.)+@+% ' n+'...k.....k...k.....k...k.....& ` g k.k.k.... . ",
-" 6 5.3 ( ].} 6 6.'+u j+8 % b 8.-.v.X (.X X X (.X v.v.v.i M 0 W.( k C %+C+.. ",
-" w+n+x % c+j+j+j+/ k+8 &.j+j+@ @ @ @ @ @ @ @ @ @ @ @ @ j+% i+h+x j+c+% ,+&. ",
-" !.j+n+Q h+i+b+b+k+' j+b+P.P.P.P.P.P.P.P.#+P.P.P.P.P.P.P.h+' j+h+Q r e+n ",
-" =.~.% k+k+y.y.i+8 % w.#+#+#+P.P.P.P.P.P.P.P.#+#+#+#+w.#+j+a+x c+r e+&. ",
-" o./.x b+y.y.b+a+Q w.#+#+P.P.P.P.P.P.P.P.P.P.#+P.#+w.w.x &.x x r e n ",
-" %+c+Q k+y.b+8 h+w.#+#+P.P.P.P.P.P.P.P.P.P.#+#+#+w.w.% &.c+x r + &. ",
-" z+G y.k+y./.i+$+#+P.#+P.P.P.P.P.P.P.P.P.P.#+#+#+w.r &.x x r x+n ",
-" f.%.4 k+i+c+i+[.w.w.#+P.P.P.P.P.P.P.P.P.P.#+#+w.w.Q &.c+% r x+n ",
-" a.0 $+P.h+$ 0 $ f.#+2 #+#+#+#+#+#+#+#+#+#+w.w.w.r &.x % r L ",
-" N.%.0 $+4 %.0 $ #+i+Q Q Q Q Q Q Q Q Q Q Q r % j+c+% % r 4. ",
-" 0 %.%.h.%.%.0 }+5+) ]+]+Z ]+]+) ) !+(+O >.3.* c+8+<.s+,+ ",
-" w.u.N %.%.%.u.|.: W. ++ ",
-" b+u.%.%.%.4 ",
-" Z.%.%.$ 8 k.. . . . . . . . . . . . . . . . . . . ",
-" 0 0 i+a+. . . . . . . . . . . . . . . . . . . . . ",
-" W *.4+4+6 6 6 = 4+X -.C+@+i A W.5.5.k Y.^.].k k. ",
-" i.m s+@ j+8+j+j+j+j+j+j+j+j+c+x c+x r % c+j+@ *+&. ",
-" %.0 $+#+y.y.y.y.y.b+y.y.b+b+b+i+k+h+Q /.@ Q k+% I &. ",
-" 4 0 %.G #+#+P.P.P.P.#+#+w.w.w.w.w.w.w.#+% &.x Q r ) &. ",
-" {+w.h.$ #+P.P.P.#+#+#+#+w.w.w.w.w.w.w.#+r g @ x r R &. ",
-" g+b+$+#+P.P.P.P.P.P.P.#+w.w.#+w.w.w.w.w.Q &.8 @ r x+n ",
-" (+y.#+P.P.P.P.P.P.#+#+#+w.w.w.w.w.w.w.w.h+a+&.a+r e n ",
-" v+/ #+P.P.P.P.P.P.P.#+#+#+w.w.w.w.w.w.w.w.k+a+g g x #.n ",
-" X c+#+#+P.P.#+P.#+#+#+w.w.w.w.w.w.w.#+#+#+h+a+g k.c++. ",
-" '.j+#+#+b+h+Q Q r r r r % % % % r % x % x j+j+c+j+j+*. ",
-" 7.@ i+% @ !.f f ) !+O 4.:.] w.w.B B #+$ P.$+A T.d+W }. ",
-" q.c+s+{+1 ,.Y.( o.C ( k c ! Y %+} p + !.Z f 1 / 1 _ . ",
-" < P :+-.} ) < q+S.. . 0+ &.~.@ S j+` g g D.g k.... . ",
-" O.N >+~ j+j+S r P !.. 9 Y A.>+Z.0 %.%.0 &+7 7 D+P e 9 . ",
-" %.%.V.P.y.b+h+x c+_.^.!.c+Q Q Q r h+Q x x % n+% n+b+l . ",
-" O.`.f.w.P.P.P.P.x x (.6+r r 8 x h+% r Q @ a+a+' @ h+7.. ",
-" E.P.w.P.P.P.P.P.y.j+).]+r k+a+% i+r Q h+c+8 /.j+/.h+-.. ",
-" ~.k+#+P.y.y.P.P.#+r } < r Q ' % i+x c+x ' a+' @ /.s+} ",
-" v.r #+P.P.P.P.$+w.i+T.O s+r ' c+k+@ a+8 &.a+' /.@ I 9 ",
-" ~+j+i+P.P.y.P.$+G [.F+|+:+r @ c+h+8 g k.g g ' ' j+1 ",
-" [+>.c+k+#+#+$ G %.%.0 Q.7 x c+@ Q a+&.a+g g a+a+Q @. ",
-" <+>.j+x Q h+#+0 %.0 ++a+x @ x a+&.8 a+k.&.g D ",
-" [+2.Y U./ d+N f.k+ [ 8 r j+/./.j+c+j+x :+o. ",
-" c @+] Q r r % i+-.=+ ",
-" k.g k.0+. . k.D + $._+; B.d }.. . . ",
-" . . . . . . . . . . . . k.0+..D.. . . . . . ",
-" H 9 k %+6 X X X X 8.+.D+; ! r+p } Y.- 6.h 8.O 0+ ",
-" [.g+1.~.@ 8+j+j+j+S j+j+r Q Q Q Q r u+c+x u+r Q ] g ",
-" h.%.0 #+b+] i+b+b+b+b+b+b+i+% /.' 8 ' /.c+j+' ' c+u g ",
-" %.%.%.4 #+#+#+#+w.w.w.#+#+w.#+j+g g k.g &.g & /.@ ] )+ ",
-" a.%.h.4 w.#+#+#+w.w.$+w.#+#+w.x g g k.g g g ' x @ B )+ ",
-" Q.R.$ &+#+#+#+#+w.w.y.y.w.#+#+w.Q g a+g g &.g @ r @ + g ",
-" @.~ w.w.P.#+#+w.w.#+Q % P.w.#+w.i+&.8 a+g g g /.Q @ A g ",
-" = x #+P.P.#+#+w.w.P./.a+r w.w.w.#+' &.8 a+a+g ' Q j+X.)+ ",
-" p+x #+#+#+#+#+w.w.y.a+& 8 b+w.#+w.% g 8 8 8 &.8 h+j+>.n ",
-" 6 j+k+i+i+i+i+i+k+% @ % j+c+k+i+k+x /.% % x j+/.x c+Z ",
-" 3 x c+c+j+c+c+x c+r % j+j+r % c+j+% Q c+j+j+c+Q Q c+O ",
-" z M.8.y y i ; y | !+c } ; | 8.8.W.| 6.,.,.c ; 1.(.8. ",
-" 0+. . . 0+. . 0+0+0+. 0+. . 0+. . 0+0+0+0+. . 0+. ",
-" l < p O ,+e+#.< ,+5.6.} ,+| [ '.[ e i D ^.D < 1.X.'+0+ ",
-" E.x % % r A+k+:.Q r A+x / r h+% U.% h+~ c+j+S s+h+t u D. ",
-" l x A+r x /././.u+r j+/.@ /.@ r h+Q x /.j+c+c+/.@ j+4.)+ ",
-" l j+P.#+k+j+' x P.w.h+a+D.&.x #+w.w.y.@ g g &.&.r j+:+g ",
-" n.@ b+k+x 8 a+x P.#+h+8 k.g @ P.w.w.#+j+g g g &.% j+O )+ ",
-" n.@ r c+8 &.&.c+P.P.% a+k.g 8 b+w.w.P.j+g g &.&.x j+O g ",
-" {.@ @ ' g g g c+b+y.c+&.k.k.a+k+w.w.P.@ g g g g % j+Y )+ ",
-" /+j+a+&.k.g g @ k+h+/.&.g k.&.h+w.$+y.' g &.&.g c+j+j )+ ",
-" : j+g k.k.k.k.8 % x a+g k.g g r w.w.k+8 k.&.8 g @ 8+(+n ",
-" F+Q @ @ /./././././.' ' /.@ ' @ Q h+j+/.@ c+x j+/.j+f ",
-" %.$+r x x x x x % r % r x x % h+y.b+Q % c+c+j+c+Q c+>. ",
-" 7+Q.3 +(. +6.!.v+@.y v+f+=+l P [.V..+f+q+1 ).'.;.; e ",
-" . . . . 0+. . 0+. 0+0+0+. . . 0+g g 0+. 0+. 0+. . . . . ",
-" 0+g k.. . . 0+0+0+. 0+0+. 0+0+0+0+0+k.. . 0+. 0+. 0+0+0+. . . . ",
-" ; ,+(.6 k D.. . D.w -.C =.=.n n C k C C C ].].=.=.=.=.& =.n n n 9 ,+! )+. ",
-" 8.t r n+c+n k n . [ x % x x x c+x % % x x x % % % x c+c+c+c+c+c+c+% Q _.- . ",
-" ^ Q r c+@ % x ~.c ..X r c+x % x x 8+/.j+% r % j+/././ r Q h+Q r r s+x u++.s.. ",
-"g. .% j+/.a+' Q j+6+].- % c+/.j+/.8 g g 8 j+c+j+8 g g &./.c+% x j+@ c+j+n+F 6.. ",
-"{+r % j+j+/.j+k+% c+E+- x x c+x @ &.&.&.' c+% x ' &.k.k.&./.c+c+@ j+x r Q &+i+g ",
-"X % r c+j+j+x i+r r C+c % % r h+c+a+g a+j+% r x /.&.g k.g a+/.@ @ j+% h+h+$+W k.",
-"J % Q c+c+j+% i+3.y.a._+% Q h+b+% a+&.8 j+Q Q x /.&.k.g k.g a+' @ c+% k+r s+I . ",
-"I.j+Q x j+j+% b+h+w.c.5+c+k+i+y.Q a+&.' c+Q Q x /.a+k.g k.k.g &.' c+% Q r 8+D ",
-" 1 % Q c+j+x i+r `.: Y c+i+y.y.Q ' a+/.% h+h+r j+8 g k.g k.g &.8 @ c+r r D (. ",
-" 5 @ % r r Q h+r [+ q j+r % % r % x r Q Q Q Q r r x c+j+j+j+c+x r Q r r s+ ",
-" # ~.j+c+u+A+;+ ~ A+B A+@ /.~./.~.<.@ *+/.' ~.@ x .n+ .c+@ /.v T.P ",
-" l p+4+7 g. ",
-" . . . . . . . . . . . . . . . ",
-" . . . . . . . . . . . . . . . . . . . . . . ",
-" S.*+) p+=.=.=.n =.=.n n n =.C ].( ( C C =.=.].0+ ",
-" +.7+#.! c+j+S j+j+j+8+8+j+8+j+j+c+c+j+j+j+j+@ ` &. ",
-" I.] Q /.8+j+% r n+x c+x % % % % % u+x % u+x % % I n ",
-" G+G.% 8 c+j+g ' x @ 8 &.&.8 /./././.8 8 8 a+a+8 r S &. ",
-" `.i+8 j+i+% a+' x @ 8 a+a+8 ' @ j+@ /.' /.' a+' r / &. ",
-" M.n+Q a+Q y.Q &./.x c+j+j+@ ' ' @ j+j+@ @ @ /.' ' r S &. ",
-" [+j+u+8 k+P.r &./.% Q k+k+% @ /./.@ j+j+j+j+@ ' @ ~ S &. ",
-" D+c+@ /.k+i+x g @ r b+y.y.k+j+/./.@ j+j+c+x @ /.@ r 8+&. ",
-" o+c+' j+r r /.g @ Q b+y.y.i+x /./.j+@ c+x x j+/./.Q I C ",
-" r+c+j+/.@ @ @ j+r Q r x x r r % % r r % r r r % % % t ",
-" +j+r Q r r % c+j+c+x r Q % j+j+j+j+j+j+j+j+j+j+j+x ! ",
-" M.| W.8.y y 6.].J c R X.[ J ].].].` ].k ].` ].` Z h ",
-" . . . . . . . . . . . . . . . . . . . . . . . . . ",
-" =+:+h p+) !+6.n =.( 6.j '+J =.n =.n n =.=.n =.=.=.C 0+ ",
-" v+/ Q % x s+Q u+j+S / r h+s+x j+j+j+8+8+j+j+8+j+j+j+` &. ",
-" l j+@ @ j+@ @ j+r r r r % n+r s+% % x % % r % % u+% S &. ",
-" > @ @ &.&.j+' &.j+r r i+y.y.i+Q j+a+&.8 /.j+/.a+& r .n ",
-" > @ 8 &.&.' & 8 c+% % h+b+y.b+k+x 8 &.a+' @ /.a+&.% 5+&. ",
-" : @ &.k.g a+g ' % % x Q b+b+b+k+% ' a+a+' @ ' a+g % ! &. ",
-" E.j+g k.k.k.&.@ % x c+r b+b+i+i+h+@ 8 a+' /.8 &.g x 3+&. ",
-" |.c+g g k.g a+c+Q x j+r i+i+k+i+k+x ' 8 8 ' 8 g k.x B+n ",
-" z+r a+g k.k.8 x h+% c+r b+i+k+i+b+h+j+' 8 ' 8 g k.c+u C ",
-" F.r x c+@ j+x r Q Q r Q Q Q Q Q Q Q r x % x c+c+@ j+x+ ",
-" r./.@ % 4.T.j+8+S 8+@ 8+x U.I U.% % S @ @ j+j+x ~ s+1 ",
-" ;+5 p W.< !.^.} J ^.E+c c %+p+X X %+s.c D !.-.; f+H . ",
-" 0+. 0+0+0+..0+k.0+....k.0+0+k.k.k.0+0+. 0+. . . . ",
-" M.6 ; | h ^.J } } %+6.'.p+J c p ,+6 J } <.) y 7 r+,+0+ ",
-" j.x j+r Q U.j+8+j+j+j+S x S j+j+u+r / @ j+c+x n+s+s+,+&. ",
-" W.n+n+/.' j+% Q h+t h+h+Q h+Q A+Q r h+r u+c+j+/./.x #.n ",
-" 5 c+@ /./.g 8 j+r r r k+i+Q x % i+y.k+/.&.&.g k.g c+e+&. ",
-" +x /.@ /.g 8 @ % r r h+h+Q x x h+b+h+@ &.&.a+g k.c+#.n ",
-" n.c+/.j+' g 8 @ x r % h+h+r x c+Q b+k+j+& &.a+&.k.c+#.&. ",
-" {.x ' j+8 &.' j+% % r Q h+r c+j+x i+i+x a+&.a+&.g c+D+n ",
-" {.x 8 c+a+a+j+% r % r Q Q % c+@ j+k+b+r 8 g &.&.g c+u n ",
-" =+x ' j+&.8 c+r Q r Q h+Q % j+' @ Q b+Q 8 g &.g k.c+_.( ",
-" 6 x j+@ @ x % r r r Q Q r r % x % r Q Q x j+j+j+@ j+3. ",
-" '.@ Q Q x c+j+j+j+j+j+j+j+j+j+j+j+j+c+c+j+c+% x % x f ",
-" M.b E.;+6+1 D 1 6+Y R R :+,+; i R r+w ; T J.^+w+<+ ",
-" . . . ",
-" . &.g 0+. . . ",
-" 8.< H C H S.0+. . ",
-" 1+ .r x c+' }.( . . ",
-" 8.@ 8 /.n+r % @ ).( . ",
-" w c+i+' a+j+j+r r /.9 0+ ",
-" h r i+' a+j+x x Q j+}.&. ",
-" i.Q i+' a+j+x r h+% }.n ",
-" %.$ r 8 8 j+% r h+Q + ",
-" %.4 x &.8 j+x r Q x 7 ",
-" |.0 k+c+x x r h+k+: /+ ",
-" g+h.b+r r r r -.;+0+. . . . . . . . . . . . . . . . . ",
-" A.W.e+#._+3 Z )+D.D.D.g g g g D.D...0+0+0+..g g D.. ",
-" t.!+>.-.@+e+O t+C ].,.,.C =.n =.n C ].}.-.i *.'+C n } g ",
-" {.j+j+x r r r r % % % % % % r % r r r n+u+c+c+x % % 8+&. ",
-" 1+@ /.&.' j+c+x r h+k+h+r % n+% % r % % k+b+y.b+A+r O &. ",
-" E.@ ' g a+' /.@ c+r Q r c+j+c+c+x c+@ @ % b+y.b+r r *.&. ",
-" E.@ 8 g &.' @ @ x Q Q x j+j+j+j+x x @ /.j+k+y.i+% r d+&. ",
-" >+j+a+g &.' @ c+r k+Q x @ @ @ j+c+x j+' /.Q b+i+x r e+n ",
-" d.j+a+g a+' @ x Q i+Q c+/.j+@ @ c+% x /.8 c+k+k+x r d+&. ",
-" 0.x &.g a+' j+% h+k+Q j+@ j+j+j+x Q r /.a+/.r h+x r :+n ",
-" Z.i+&.g ' j+x Q k+i+k+% x % % % Q h+h+j+8 /.r k+r r >. ",
-" Z.y.x r r r r r % % % r % r r r % % % r r r r % % x t ",
-" N 7+7 D ].C C ,.} 6+6.,.].C C ` }.).,.].).,.].6.,.5+^ ",
-" ",
-" . . . . . . . ",
-" . ..)+g g D.. . . . ",
-" n D } %+(.v.p } &. K.e.t.1 ^.)+. . ",
-" * E.j j+j+c+c+j+*+8 L.0 #+r U.7.D.. . ",
-" = ] r Q i+b+y.y.% & a+ M >.n+c+5+'.... ",
-" c .+n+x c+r k+y.P.y.r ].8 (.v.r x R ( . . ",
-" 6.j+' ' @ r i+y.P.y.% a+C T A+r c+).C . ",
-" e.Q 8 8 ' @ r i+P.y.y.r C 8 { $ k+*+J . . ",
-" D x ' 8 ' @ % i+P.P.y.r & 8 a.%.$ c+k )+. ",
-" <+t /.' ' ' @ r k+y.y.P.r ,.*+ F %.$+r =.k . ",
-" l+h+% % % % r Q h+Q % Q r :+ F+P.% 8 c . ",
-" J.@ j+@ @ @ @ @ j+u+r u+% L e+c+@ D . ",
-" 8.= c p+E+s.s.p+(.< [ ) [ 0+. . . . . . . . o.i r j+v . ",
-" . 0+0+. . 0+. 0+. 0+0+. . . . . . . . . k j h+c+<.. ",
-" #.1 =.n =.=.C k 6.p h p+( C J 6 h h 6 s.h 4+< k+i+c+-.0+",
-" q x u+c+c+c+c+j+j+c+c+c+j+j+j+j+j+c+c+j+j+c+c+U.y.b+r ! ",
-" <+% % x x % r Q Q k+k+k+k+k+h+h+k+k+k+k+Q Q k+i+y.3.B p ",
-" ~+@ n+' ' ' /.j+x k+y.y.b+h+s+r h+b+b+h+c+c+k+P.y.% e+6. ",
-" =.r c+' ' /.j+x k+y.y.i+h+r % h+b+b+h+j+j+h+P.y.@ @+ ",
-" k @ % /.' /.j+% k+y.b+i+Q % x r i+i+r j+j+h+y.Q ` /+ ",
-" ( x % @ @ c+Q i+y.b+h+% j+@ % k+h+% j+c+k+y.s+$. ",
-" ].c+% % x Q i+y.y.h+x /./.% h+Q x c+x k+x m ",
-" 6 k @ x Q k+b+y.b+Q c+' ' % k+Q % r Q j+c ",
-" ( ,.j+x r h+i+h+x ' ' r i+h+h+y.F /+ ",
-" . . n ^.6 6+c+x c+% r r r % x c+x.u.b. ",
-" 0+. . j.> R }.*+` *+%+) V ",
-" [+P !.} 1 . ",
-" 1+x x 8 1 . ",
-" . . . . . 0+i r % j+1 . . . . . . . . . . . . . . . . . . . . . . . ",
-" *+8 ` 8 ` 1 7 r % c+9 ( ( y+y+o.)+)+S.=.n )+)+)+)+S.n )+)+)+)+)+)+. ",
-" 9.7 ;.> o+.+; k B+1.j+x c+=.S.=.n =.C c !.J ].} 6+f+f+4+k J !.@.+.F o '+)+ ",
-" r+ .x / x x % Q r h+@ c+r s+Q r s+r r % x % % x x c+x x % r x x j+j+j+t+S. ",
-" H 8+x 8 & g @ Q r @ ' @ @ @ j+x % r i+b+b+i+y.y.b+b+i+h+k+i+b+b+k+c+,.S. ",
-" p+% % 8 g 8 r % /.' 8 8 ' ' j+c+% k+i+i+b+b+b+i+k+k+Q Q h+b+y.y.x ` S. ",
-" ;+s+x 8 8 x % /.8 8 8 ' ' j+% Q i+b+i+b+P.b+i+k+k+Q h+k+b+y.P.x ` S. ",
-" ^+A+% j+j+c+/.' ' 8 8 ' j+% h+b+b+i+b+y.y.k+k+k+h+h+i+b+y.y.% ( o. ",
-" , % % % j+/.' ' ' ' /.c+r h+i+b+i+y.y.y.k+h+k+h+h+k+b+b+b+r ,.S. ",
-" 6 /.% r @ ' 8 ' 8 /.j+% h+i+b+i+b+P.y.k+k+h+h+r h+k+k+i+% }.o. ",
-" q+u+% r /.' ' @ j+x r k+i+y.b+b+y.y.b+i+i+k+h+h+i+i+k+r t+ ",
-" N % % x /.r r Q Q Q r r % % % c+c+x % % % r r r r r % O ",
-" ^ 8+% c+3+D =.].,.,.p+'.v.R #.+.e+,+v.(.= c c }.,.Y E. ",
-" +j+Q /+ ",
-" D h+e. ",
-" J. "};
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_tape.cc
-
- Description: This implements a "harddisk recording tapedeck" - simply dumps
- the generated audio into a plain mono wav-file.
-*/
-
-#include "tX_tape.h"
-
-tx_tapedeck :: tx_tapedeck()
-{
- is_recording=0;
- written_bytes=0;
-}
-
-int tx_tapedeck :: start_record (char *name, int bs)
-{
- if (is_recording) return 1;
-
- strcpy(file.name, name);
- file.srate=44100;
- file.chans=1;
- file.depth=16;
- file.bps=88200;
- file.blkalign=2;
- file.len=0;
- file.sofar=0;
-
- blocksize=bs;
-
- written_bytes=0;
-
- if (!open_wav_rec(&file))
- {
- return 1;
- }
-
- is_recording=1;
-
- return 0;
-}
-
-void tx_tapedeck :: eat(int16_t *buffer)
-{
- written_bytes+=fwrite((void *) buffer, blocksize, 1, file.handle);
-}
-
-void tx_tapedeck :: stop_record()
-{
- if (!is_recording) return;
-
- written_bytes*=blocksize;
-
- file.len=written_bytes;
- file.sofar=written_bytes;
-
- rewrite_head(&file);
- fclose(file.handle);
-
- is_recording=0;
-}
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_tape.h
-
- Description: Header to tX_tape.cc
-*/
-
-#ifndef _h_tx_tapedeck_
-#define _h_tx_tapedeck_ 1
-
-#include "wav_file.h"
-#include "tX_types.h"
-
-class tx_tapedeck
-{
- wav_sig file;
- int is_recording;
- unsigned int written_bytes;
- int blocksize;
-
- public:
- int start_record(char *, int);
- void stop_record();
- void eat(int16_t *);
-
- tx_tapedeck();
-};
-
-#endif
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_types.h
-
- Description: Use correct type sizes. If <sys/types.h> is not
- available define USE_X86_TYPES on i386 machines
-*/
-
-#ifndef _H_TX_TYPES
-#define _H_TX_TYPES
-
-#define f_prec float
-#define d_prec double
-
-#ifndef USE_X86_TYPES
-
-#include <sys/types.h>
-
-#else
-
-#define int8_t char
-#define int16_t short
-#define int32_t long
-
-#endif
-
-#endif
+++ /dev/null
-/*
- terminatorX - realtime audio scratching software
- Copyright (C) 1999 Alexander König
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- File: tX_vtt.cc
-
- Description: This implements the new virtual turntable class. It replaces
- the old turntable.c from terminatorX 3.2 and earlier. The lowpass
- filter is based on some sample code by Paul Kellett
- <paul.kellett@maxim.abel.co.uk>
-*/
-
-#include "tX_vtt.h"
-#include "tX_global.h"
-#include <stdio.h>
-#include "malloc.h"
-#include <math.h>
-#include "tX_wavfunc.h"
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#ifdef USE_3DNOW
-#include "3dnow.h"
-#endif
-
-extern void build_vtt_gui(vtt_class *);
-extern void gui_set_name(vtt_class *vtt, char *newname);
-extern void gui_set_filename(vtt_class *vtt, char *newname);
-extern void delete_gui(vtt_class *vtt);
-extern void gui_update_display(vtt_class *vtt);
-extern void gui_clear_master_button(vtt_class *vtt);
-extern void cleanup_vtt(vtt_class *vtt);
-
-int vtt_class::vtt_amount=0;
-list <vtt_class *> vtt_class::main_list;
-list <vtt_class *> vtt_class::render_list;
-int16_t* vtt_class::mix_out_buffer=NULL;
-f_prec * vtt_class::mix_buffer=NULL;
-int vtt_class::samples_in_mix_buffer=0;
-pthread_mutex_t vtt_class::render_lock=PTHREAD_MUTEX_INITIALIZER;
-pthread_mutex_t vtt_class::main_lock=PTHREAD_MUTEX_INITIALIZER;
-f_prec vtt_class::master_volume=1.0;
-f_prec vtt_class::res_master_volume=1.0;
-//f_prec vtt_class::saturate_fac=((f_prec) SAMPLE_MAX-SAMPLE_BORDER)*1.0/FLT_MAX;
-f_prec vtt_class::saturate_fac=0.1;
-int vtt_class::do_saturate=0;
-vtt_class * vtt_class::sync_master=NULL;
-int vtt_class::master_triggered=0;
-int vtt_class::master_triggered_at=0;
-vtt_class * vtt_class::focused_vtt=NULL;
-f_prec vtt_class::mix_max=0;
-f_prec vtt_class::vol_channel_adjust=1.0;
-
-#define GAIN_AUTO_ADJUST 0.8
-
-vtt_class :: vtt_class (int do_create_gui)
-{
- vtt_amount++;
- sprintf (name, "Turntable %i", vtt_amount);
- strcpy(filename, "NONE");
- buffer=NULL;
- samples_in_buffer=0;
-
- set_volume(1);
- set_pitch(1);
-
- autotrigger=1;
- loop=1;
-
- is_playing=0;
- is_sync_master=0;
- is_sync_client=0;
- sync_cycles=0,
- sync_countdown=0;
-
- x_control=CONTROL_SCRATCH;
- y_control=CONTROL_CUTOFF;
-
- lp_enable=0;
- lp_reso=0.8;
- lp_freq=0.3;
- lp_gain=1;
- lp_setup(lp_gain, lp_reso, lp_freq);
-
- ec_enable=0;
- ec_length=0.5;
- ec_feedback=0.3;
- ec_clear_buffer();
- ec_set_length(0.5);
-
-// pthread_mutex_lock(&main_lock);
- main_list.push_back(this);
-// pthread_mutex_unlock(&main_lock);
-
- if (do_create_gui)
- {
- build_vtt_gui(this);
- }
- else have_gui=0;
-
- set_master_volume(globals.volume);
- set_output_buffer_size(samples_in_mix_buffer);
-}
-
-vtt_class :: ~vtt_class()
-{
- stop();
-// pthread_mutex_lock(&main_lock);
- main_list.remove(this);
-// pthread_mutex_unlock(&main_lock);
- if (buffer) free(buffer);
- if (output_buffer) free(output_buffer);
-
- delete_gui(this);
- vtt_amount--;
-}
-
-void vtt_class :: set_name(char *newname)
-{
- strcpy(name, newname);
- gui_set_name(this, name);
-}
-
-void vtt_class :: set_file_data(char *newfilename, int16_t *newbuffer, int samples)
-{
- if (is_playing) stop();
-
- if (buffer) free(buffer);
- buffer=newbuffer;
- samples_in_buffer=samples;
- maxpos=samples;
-
- strcpy(filename, newfilename);
- if (have_gui)
- {
- gui_set_filename(this, newfilename);
- gui_update_display(this);
- }
- ec_set_length(ec_length);
-}
-
-int vtt_class :: set_output_buffer_size(int newsize)
-{
- if (output_buffer) free(output_buffer);
- output_buffer = (float *) malloc (sizeof(float)*newsize);
- end_of_outputbuffer = output_buffer + newsize; //size_t(sizeof(float)*(newsize));
-
- samples_in_outputbuffer=newsize;
- inv_samples_in_outputbuffer=1.0/samples_in_outputbuffer;
-
- if (output_buffer) return(0);
- else return(0);
-}
-
-void vtt_class :: set_volume(f_prec newvol)
-{
- rel_volume=newvol;
- res_volume=rel_volume*res_master_volume;
-}
-
-void vtt_class :: recalc_volume()
-{
- res_volume=rel_volume*res_master_volume;
-}
-
-void vtt_class :: set_pitch(f_prec newpitch)
-{
- rel_pitch=newpitch;
-// res_pitch=fabs(globals.pitch)*rel_pitch;
- res_pitch=globals.pitch*rel_pitch;
- speed=res_pitch;
- ec_set_length(ec_length);
-}
-
-void vtt_class :: recalc_pitch()
-{
-// res_pitch=fabs(globals.pitch)*rel_pitch;
- res_pitch=globals.pitch*rel_pitch;
- speed=res_pitch;
- ec_set_length(ec_length);
-}
-
-void vtt_class :: set_autotrigger(int newstate)
-{
- autotrigger=newstate;
-}
-
-void vtt_class :: set_loop(int newstate)
-{
- loop=newstate;
-}
-
-void vtt_class :: set_controls (int x, int y)
-{
- x_control=x;
- y_control=y;
-}
-
-void vtt_class :: set_mute(int newstate)
-{
- mute=newstate;
-}
-
-void vtt_class :: lp_set_enable (int newstate)
-{
- lp_enable=newstate;
-}
-
-void vtt_class :: lp_set_gain (f_prec gain)
-{
- lp_gain=gain;
- lp_resgain=lp_gain*lp_au