OOP, 0, 0, 0}
  };
  #endif /* SPARC */
! 
! #ifdef SUN386
  struct device devices[] = {
! 	{'A', "/dev/rfdl0c", 0L, 12, 0, INIT_NOOP, 80, 2, 9},
! 	{'A', "/dev/rfd0c", 0L, 12, 0, INIT_NOOP, 80, 2, 18},
! 	{'\0', (char *) NULL, 0L, 0, 0, INIT_NOOP, 0, 0, 0}
  };
! #endif /* SUN386 */
! 
! #ifdef XENIX
! struct device devices[] = {
! 	{'A', "/dev/fd096ds15", 0L, 12, 0, INIT_NOOP, 80, 2, 15},
! 	{'A', "/dev/fd048ds9", 0L, 12, 0, INIT_NOOP, 40, 2, 9},
! 	{'B', "/dev/fd1135ds18", 0L, 12, 0, INIT_NOOP, 80, 2, 18},
! 	{'B', "/dev/fd1135ds9", 0L, 12, 0, INIT_NOOP, 80, 2, 9},
! 	{'C', "/dev/hd0d", 0L, 16, 0, INIT_NOOP, 0, 0, 0},
! 	{'\0', (char *) NULL, 0L, 0, 0, INIT_NOOP, 0, 0, 0}
! };
! #endif /* XENIX */
! 
! #endif /* LOADDEVS */
  
  
  #ifdef UNIXPC
***************
*** 55,62 ****
  
  struct device devices[] = {
  	{'A', "/dev/rfp020", 0L, 12, O_NDELAY, init_unixpc, 40, 2, 9},
! 	{'C', "/usr/bin/DOS/dvd000", 0L, 12, 0, (int (*) ()) 0, 0, 0, 0},
! 	{'\0', (char *) NULL, 0L, 0, 0, (int (*) ()) 0, 0, 0, 0}
  };
  
  int
--- 166,173 ----
  
  struct device devices[] = {
  	{'A', "/dev/rfp020", 0L, 12, O_NDELAY, init_unixpc, 40, 2, 9},
! 	{'C', "/usr/bin/DOS/dvd000", 0L, 12, 0, INIT_NOOP, 0, 0, 0},
! 	{'\0', (char *) NULL, 0L, 0, 0, INIT_NOOP, 0, 0, 0}
  };
  
  int
***************
*** 86,108 ****
  	return(0);
  }
  #endif /* UNIXPC */
- 
- #ifdef RT_ACIS
- struct device devices[] = {
- 	{'A', "/dev/rfd0", 0L, 12, 0, (int (*) ()) 0, 80, 2, 15},
- 	{'A', "/dev/rfd0", 0L, 12, 0, (int (*) ()) 0, 40, 2, 9},
- 	{'\0', (char *) NULL, 0L, 0, 0, (int (*) ()) 0, 0, 0, 0}
- };
- #endif /* RT_ACIS */
- 
- #ifdef SUN386
- struct device devices[] = {
- 	{'A', "/dev/rfdl0c", 0L, 12, 0, (int (*) ()) 0, 80, 2, 9},
- 	{'A', "/dev/rfd0c", 0L, 12, 0, (int (*) ()) 0, 80, 2, 18},
- 	{'\0', (char *) NULL, 0L, 0, 0, (int (*) ()) 0, 0, 0, 0}
- };
- #endif /* SUN386 */
- 
    
  #ifdef SPARC_ODD
  #include <sys/types.h>
--- 197,202 ----
***************
*** 113,119 ****
  
  struct device devices[] = {
  	{'A', "/dev/rfd0c", 0L, 12, 0, init_sparc, 80, 2, 0},
! 	{'\0', (char *) NULL, 0L, 0, 0, (int (*) ()) 0, 0, 0, 0}
  };
  
  /*
--- 207,213 ----
  
  struct device devices[] = {
  	{'A', "/dev/rfd0c", 0L, 12, 0, init_sparc, 80, 2, 0},
! 	{'\0', (char *) NULL, 0L, 0, 0, INIT_NOOP, 0, 0, 0}
  };
  
  /*
***************
*** 162,175 ****
  	return(0);
  }
  #endif /* SPARC_ODD */
-   
- #ifdef XENIX
- struct device devices[] = {
- 	{'A', "/dev/fd096ds15", 0L, 12, 0, (int (*) ()) 0, 80, 2, 15},
- 	{'A', "/dev/fd048ds9", 0L, 12, 0, (int (*) ()) 0, 40, 2, 9},
- 	{'B', "/dev/fd1135ds18", 0L, 12, 0, (int (*) ()) 0, 80, 2, 18},
- 	{'B', "/dev/fd1135ds9", 0L, 12, 0, (int (*) ()) 0, 80, 2, 9},
- 	{'C', "/dev/hd0d", 0L, 16, 0, (int (*) ()) 0, 0, 0, 0},
- 	{'\0', (char *) NULL, 0L, 0, 0, (int (*) ()) 0, 0, 0, 0}
- };
- #endif /* XENIX */
--- 256,258 ----
diff -rc --new-file orig/mtools-2.0.7/init.c mtools-2.0.7/init.c
*** orig/mtools-2.0.7/init.c	Thu Sep 10 15:59:47 1992
--- mtools-2.0.7/init.c	Sun Sep 26 19:24:09 1993
***************
*** 26,31 ****
--- 26,32 ----
  extern unsigned char *fat_buf, *disk_buf, *dir_buf;
  extern struct device devices[];
  static struct bootsector *read_boot();
+ static int lock_dev();
  
  int
  init(drive, mode)
***************
*** 214,219 ****
--- 215,227 ----
  #else /* FULL_CYL */
  	disk_size = (dev->tracks) ? sectors : 1;
  #endif /* FULL_CYL */
+   
+ #ifdef DELL201
+ 	/*
+ 	 * The driver in Dell's SVR4 v2.01 is unreliable with large writes.
+ 	 */
+         disk_size = 1;
+ #endif /* DELL201 */
  
  	disk_buf = (unsigned char *) malloc((unsigned int) disk_size * MSECTOR_SIZE);
  	if (disk_buf == NULL) {
***************
*** 225,230 ****
--- 233,245 ----
  	disk_dirty = 0;
  	fat_error = 0;
  	fat_bits = dev->fat_bits;
+ 	if (fat_bits < 0) fat_bits = -fat_bits;
+ 	else if (fat_bits == 12 && num_clus > FAT12 || fat_bits == 16 &&
+ 	      num_clus <= FAT12 || (fat_bits != 12 && fat_bits != 16)) {
+ 		fprintf(stderr,"%d bit FAT on %c: sure ? (Use -%d in \
+ the device config file to bypass.)\n",fat_bits,drive,fat_bits);
+ 		exit(1);
+ 	    }
  	fat_read(fat_start);
  					/* set dir_chain[] to root directory */
  	dir_dirty = 0;
diff -rc --new-file orig/mtools-2.0.7/mattrib.1 mtools-2.0.7/mattrib.1
*** orig/mtools-2.0.7/mattrib.1	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mattrib.1	Thu Sep 10 15:59:46 1992
***************
*** 0 ****
--- 1,59 ----
+ .TH MATTRIB 1 local
+ .SH NAME
+ mattrib \- change MSDOS file attribute flags
+ .SH SYNOPSIS
+ .B mattrib
+ [
+ .B -a|+a
+ ]
+ [
+ .B -h|+h
+ ]
+ [
+ .B -r|+r
+ ]
+ [
+ .B -s|+s
+ ] msdosfile [ msdosfiles... ]
+ .SH DESCRIPTION
+ .I Mattrib
+ will add attribute flags to an MSDOS file (with the '+' operator) or
+ remove attribute flags (with the '-' operator).
+ .PP
+ .I Mattrib
+ will allow the following command line options:
+ .TP
+ .B a
+ Archive bit.  Used by some backup programs to indicate a new file.
+ .TP
+ .B r
+ Read-only bit.  Used to indicate a read-only file.  Files with this bit
+ set cannot be erased by DEL.  However, 
+ .I
+ mdel
+ is more cunning.
+ .TP
+ .B s
+ System bit.  Used by MSDOS to indicate a operating system file.
+ .TP
+ .B h
+ Hidden bit.  Used to make files hidden from DIR.  However,
+ .I
+ mdir
+ is more cunning.
+ .PP
+ MSDOS subdirectory names are supported with either the '/' or '\e'
+ separator.  The use of the '\e' separator or wildcards will require the
+ names to be enclosed in quotes to protect them from the shell.
+ .PP
+ The
+ .I mcd
+ command may be used to establish the device and the current working
+ directory (relative to MSDOS), otherwise the default is A:/.
+ .PP
+ .I Mattrib
+ returns 0 on success, 1 on utter failure, or 2 on partial failure.
+ .SH SEE ALSO
+ mcd(1)
+ .SH BUGS
+ Most MSDOS versions of ATTRIB don't allow this many options.
diff -rc --new-file orig/mtools-2.0.7/mattrib.c mtools-2.0.7/mattrib.c
*** orig/mtools-2.0.7/mattrib.c	Thu Sep 10 15:59:47 1992
--- mtools-2.0.7/mattrib.c	Sun Oct 17 22:13:01 1993
***************
*** 10,30 ****
  
  #include <stdio.h>
  #include "msdos.h"
- #include "patchlevel.h"
  
- int fd = -1;				/* the file descriptor for the device */
- int dir_start;				/* starting sector for directory */
- int dir_len;				/* length of directory (in sectors) */
- int dir_entries;			/* number of directory entries */
- int clus_size;				/* cluster size (in sectors) */
- char *mcwd;				/* the Current Working Directory */
- int fat_error;				/* FAT error detected? */
- 
  #define ADD	1
  #define REMOVE	(-1)
  #define LEAVE	0
  
! main(argc, argv)
  int argc;
  char *argv[];
  {
--- 10,21 ----
  
  #include <stdio.h>
  #include "msdos.h"
  
  #define ADD	1
  #define REMOVE	(-1)
  #define LEAVE	0
  
! mattrib(argc, argv)
  int argc;
  char *argv[];
  {
***************
*** 84,90 ****
  			break;
  	}
  	if (argc < 3 || argv[fargn][0] == '\0' || oops) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", VERSION, DATE);
  		fprintf(stderr, "Usage: %s [-a|+a] [-h|+h] [-r|+r] [-s|+s] msdosfile [msdosfiles...]\n", argv[0]);
  		exit(1);
  	}
--- 75,81 ----
  			break;
  	}
  	if (argc < 3 || argv[fargn][0] == '\0' || oops) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", mversion, mdate);
  		fprintf(stderr, "Usage: %s [-a|+a] [-h|+h] [-r|+r] [-s|+s] msdosfile [msdosfiles...]\n", argv[0]);
  		exit(1);
  	}
diff -rc --new-file orig/mtools-2.0.7/mcd.1 mtools-2.0.7/mcd.1
*** orig/mtools-2.0.7/mcd.1	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mcd.1	Thu Sep 10 15:59:46 1992
***************
*** 0 ****
--- 1,33 ----
+ .TH MCD 1 local
+ .SH NAME
+ mcd \- change MSDOS directory
+ .SH SYNOPSIS
+ .B mcd
+ [ msdosdirectory ]
+ .SH DESCRIPTION
+ Without arguments,
+ .I mcd
+ will report the current device and working directory.  Otherwise,
+ .I mcd
+ changes the current device and current working directory relative to an
+ MSDOS filesystem.
+ .PP
+ The environmental variable MCWD may be used to locate the file where the
+ device and current working directory information is stored.  The default
+ is '$HOME/.mcwd'.  Information in this file is ignored if the file is
+ more than 6 hours old.
+ .PP
+ MSDOS subdirectory names are supported with either the '/' or '\e'
+ separator.  The use of the '\e' separator or wildcards will require the
+ directory name to be enclosed in quotes to protect it from the shell.
+ .PP
+ .I Mcd
+ returns 0 on success or 1 on failure.
+ .SH SEE ALSO
+ mdir(1)
+ .SH BUGS
+ Unlike MSDOS versions of CD,
+ .I mcd
+ can be used to change to another device.
+ .PP
+ It may be wise to remove old .mcwd files at logout.
diff -rc --new-file orig/mtools-2.0.7/mcd.c mtools-2.0.7/mcd.c
*** orig/mtools-2.0.7/mcd.c	Thu Sep 10 15:59:15 1992
--- mtools-2.0.7/mcd.c	Sun Oct 17 22:13:27 1993
***************
*** 10,26 ****
  
  #include <stdio.h>
  #include "msdos.h"
- #include "patchlevel.h"
  
! int fd = -1;				/* the file descriptor for the device */
! int dir_start;				/* starting sector for directory */
! int dir_len;				/* length of directory (in sectors) */
! int dir_entries;			/* number of directory entries */
! int clus_size;				/* cluster size (in sectors) */
! char *mcwd;				/* the Current Working Directory */
! int fat_error;				/* FAT error detected? */
! 
! main(argc, argv)
  int argc;
  char *argv[];
  {
--- 10,17 ----
  
  #include <stdio.h>
  #include "msdos.h"
  
! mcd(argc, argv)
  int argc;
  char *argv[];
  {
***************
*** 31,37 ****
  	void exit();
  
  	if (argc > 2) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", VERSION, DATE);
  		fprintf(stderr, "Usage: %s: msdosdirectory\n", argv[0]);
  		exit(1);
  	}
--- 22,28 ----
  	void exit();
  
  	if (argc > 2) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", mversion, mdate);
  		fprintf(stderr, "Usage: %s: msdosdirectory\n", argv[0]);
  		exit(1);
  	}
***************
*** 90,115 ****
  	fprintf(fp, "%c:%s\n", drive, newpath);
  	fclose(fp);
  	exit(0);
- }
- 
- /*
-  * stubs for read-only programs
-  */
- 
- void
- disk_flush()
- {
- 	extern int disk_dirty;
- 
- 	disk_dirty = 0;
- 	return;
- }
- 
- void
- dir_flush()
- {
- 	extern int dir_dirty;
- 
- 	dir_dirty = 0;
- 	return;
  }
--- 81,84 ----
diff -rc --new-file orig/mtools-2.0.7/mcopy.1 mtools-2.0.7/mcopy.1
*** orig/mtools-2.0.7/mcopy.1	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mcopy.1	Thu Sep 10 15:59:46 1992
***************
*** 0 ****
--- 1,74 ----
+ .TH MCOPY 1 local
+ .SH NAME
+ mcopy \- copy MSDOS files to/from Unix
+ .SH SYNOPSIS
+ .B mcopy
+ [
+ .B -tnvm
+ ] sourcefile targetfile
+ .PP
+ .B mcopy
+ [
+ .B -tnvm
+ ] sourcefile [ sourcefiles... ] targetdirectory
+ .SH DESCRIPTION
+ .I Mcopy
+ copies the specified file to the named file, or copies multiple files to
+ the named directory.  The source and target can be either MSDOS or Unix
+ files.
+ .PP
+ The use of a drive letter designation on the MSDOS files, 'a:' for
+ example, determines the direction of the transfer.  A missing drive
+ designation implies a Unix file whose path starts in the current
+ directory
+ .PP
+ .I Mcopy
+ will allow the following command line options:
+ .TP
+ .B t
+ Text file transfer.
+ .I Mcopy
+ will translate incoming carriage return/line feeds to line feeds.
+ .TP
+ .B n
+ No warning.
+ .I Mcopy
+ will not warn the user when overwriting an existing file.
+ .TP
+ .B v
+ Verbose mode.
+ .TP
+ .B m
+ Preserve the file modification time.
+ .PP
+ If the target file already exists, and the
+ .I -n
+ option is not in effect,
+ .I mcopy
+ asks whether or not to overwrite the file.
+ .PP
+ MSDOS subdirectory names are supported with either the '/' or '\e'
+ separator.  The use of the '\e' separator or wildcards will require the
+ names to be enclosed in quotes to protect them from the shell.
+ .PP
+ The
+ .I mcd
+ command may be used to establish the device and the current working
+ directory (relative to MSDOS), otherwise the default is A:/.
+ .PP
+ .I Mcopy
+ returns 0 on success, 1 on utter failure, or 2 on partial failure.
+ .SH SEE ALSO
+ mcd(1), mread(1), mwrite(1)
+ .SH BUGS
+ Unlike MSDOS, the destination directory may
+ .B not
+ be omitted.
+ .PP
+ The '+' operator (append) from MSDOS is not supported.
+ .PP
+ No other
+ .I Mtools
+ command
+ .B requires
+ the use of a drive letter designation on MSDOS files.
diff -rc --new-file orig/mtools-2.0.7/mcopy.c mtools-2.0.7/mcopy.c
*** orig/mtools-2.0.7/mcopy.c	Thu Sep 10 15:59:47 1992
--- mtools-2.0.7/mcopy.c	Sun Oct 17 22:18:13 1993
***************
*** 12,18 ****
  #include <ctype.h>
  #include <sys/types.h>
  #include <sys/wait.h>
! #include "patchlevel.h"
  
  #define NONE	0
  #define MREAD	1
--- 12,18 ----
  #include <ctype.h>
  #include <sys/types.h>
  #include <sys/wait.h>
! #include "msdos.h"
  
  #define NONE	0
  #define MREAD	1
***************
*** 23,29 ****
  #define WEXITSTATUS(x) (((x)>>8)&0xff)
  #endif /* WEXITSTATUS */
  
! main(argc, argv)
  int argc;
  char *argv[];
  {
--- 23,29 ----
  #define WEXITSTATUS(x) (((x)>>8)&0xff)
  #endif /* WEXITSTATUS */
  
! mcopy(argc, argv)
  int argc;
  char *argv[];
  {
***************
*** 50,56 ****
  	}
  
  	if (oops || (argc - optind) < 2) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", VERSION, DATE);
  		fprintf(stderr, "Usage: %s [-tnvm] sourcefile targetfile\n", argv[0]);
  		fprintf(stderr, "       %s [-tnvm] sourcefile [sourcefiles...] targetdirectory\n", argv[0]);
  		exit(1);
--- 50,56 ----
  	}
  
  	if (oops || (argc - optind) < 2) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", mversion, mdate);
  		fprintf(stderr, "Usage: %s [-tnvm] sourcefile targetfile\n", argv[0]);
  		fprintf(stderr, "       %s [-tnvm] sourcefile [sourcefiles...] targetdirectory\n", argv[0]);
  		exit(1);
***************
*** 82,88 ****
  	 * with a null when it passes it to main()
  	 */
  	nargv = (char **) malloc((unsigned int) (argc + 1) * sizeof(*argv));
! 	nargv[0] = "mcopy";
  	for (i = 1; i < argc; i++)
  		nargv[i] = argv[i];
  	nargv[argc] = NULL;
--- 82,88 ----
  	 * with a null when it passes it to main()
  	 */
  	nargv = (char **) malloc((unsigned int) (argc + 1) * sizeof(*argv));
! 	nargv[0] = destination == MWRITE ? "mwrite" : "mread";
  	for (i = 1; i < argc; i++)
  		nargv[i] = argv[i];
  	nargv[argc] = NULL;
diff -rc --new-file orig/mtools-2.0.7/mdel.1 mtools-2.0.7/mdel.1
*** orig/mtools-2.0.7/mdel.1	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mdel.1	Thu Sep 10 15:59:46 1992
***************
*** 0 ****
--- 1,36 ----
+ .TH MDEL 1 local
+ .SH NAME
+ mdel \- delete an MSDOS file
+ .SH SYNOPSIS
+ .B mdel
+ [
+ .B -v
+ ] msdosfile [ msdosfiles...  ]
+ .SH DESCRIPTION
+ .I Mdel
+ deletes a file on an MSDOS filesystem.
+ .PP
+ .I Mdel
+ will allow the following command line option:
+ .TP
+ .B v
+ Verbose mode.  Echo the filenames as they are processed.
+ .PP
+ .I Mdel
+ will ask for verification prior to removing a read\-only file.
+ .PP
+ MSDOS subdirectory names are supported with either the '/' or '\e'
+ separator.  The use of the '\e' separator or wildcards will require the
+ names to be enclosed in quotes to protect them from the shell.
+ .PP
+ The
+ .I mcd
+ command may be used to establish the device and the current working
+ directory (relative to MSDOS), otherwise the default is A:/.
+ .PP
+ .I Mdel
+ returns 0 on success, 1 on utter failure, or 2 on partial failure.
+ .SH SEE ALSO
+ mcd(1)
+ .SH BUGS
+ Allows multiple arguments, which does not follow the MSDOS convention.
diff -rc --new-file orig/mtools-2.0.7/mdel.c mtools-2.0.7/mdel.c
*** orig/mtools-2.0.7/mdel.c	Thu Sep 10 15:59:47 1992
--- mtools-2.0.7/mdel.c	Sun Oct 17 22:14:00 1993
***************
*** 11,29 ****
  #include <stdio.h>
  #include <signal.h>
  #include "msdos.h"
- #include "patchlevel.h"
  
! int fd = -1;				/* the file descriptor for the device */
! int dir_start;				/* starting sector for directory */
! int dir_len;				/* length of directory (in sectors) */
! int dir_entries;			/* number of directory entries */
! int clus_size;				/* cluster size (in sectors) */
! char *mcwd;				/* the Current Working Directory */
! int fat_error;				/* FAT error detected? */
  
! static int got_signal();
! 
! main(argc, argv)
  int argc;
  char *argv[];
  {
--- 11,20 ----
  #include <stdio.h>
  #include <signal.h>
  #include "msdos.h"
  
! extern int got_signal();
  
! mdel(argc, argv)
  int argc;
  char *argv[];
  {
***************
*** 50,56 ****
  		fargn = 1;
  	}
  	if (argc < 2 || (argv[1][0] == '-' && !verbose)) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", VERSION, DATE);
  		fprintf(stderr, "Usage: %s [-v] msdosfile [msdosfiles...]\n", argv[0]);
  		exit(1);
  	}
--- 41,47 ----
  		fargn = 1;
  	}
  	if (argc < 2 || (argv[1][0] == '-' && !verbose)) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", mversion, mdate);
  		fprintf(stderr, "Usage: %s [-v] msdosfile [msdosfiles...]\n", argv[0]);
  		exit(1);
  	}
***************
*** 103,108 ****
--- 94,100 ----
  				if (dir->attr & 0x01) {
  					while (!nogo) {
  						printf("%s: \"%s\" is read only, erase anyway (y/n) ? ", argv[0], newfile);
+ 						fflush(stdout);
  						gets(ans);
  						if (ans[0] == 'y' || ans[0] == 'Y')
  							break;
***************
*** 140,163 ****
  	if (missed_one)
  		exit(1);
  	exit(0);
- }
- 
- /*
-  * Do a graceful exit if the program is interrupted.  This will reduce
-  * (but not eliminate) the risk of generating a corrupted disk on
-  * a user abort.
-  */
- 
- static int
- got_signal()
- {
- 	void exit(), disk_flush(), fat_write(), dir_flush();
- 
- 	if (fd < 0)
- 		exit(1);
- 	fat_write();
- 	dir_flush();
- 	disk_flush();
- 	close(fd);
- 	exit(1);
  }
--- 132,135 ----
diff -rc --new-file orig/mtools-2.0.7/mdir.1 mtools-2.0.7/mdir.1
*** orig/mtools-2.0.7/mdir.1	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mdir.1	Thu Sep 10 15:59:46 1992
***************
*** 0 ****
--- 1,43 ----
+ .TH MDIR 1 local
+ .SH NAME
+ mdir \- display an MSDOS directory
+ .SH SYNOPSIS
+ .B mdir
+ [
+ .B -w
+ ] msdosdirectory
+ .PP
+ .B mdir
+ [
+ .B -w
+ ] msdosfile [ msdosfiles...  ] 
+ .SH DESCRIPTION
+ .I Mdir
+ displays the contents of an MSDOS directory.
+ .PP
+ .I Mdir
+ will allow the following command line option:
+ .TP
+ .B w
+ Wide output.  This option will print the filenames across the page
+ without displaying the file size or creation date.
+ .PP
+ An error occurs if a component of the path is not a directory.
+ .PP
+ MSDOS subdirectory names are supported with either the '/' or '\e'
+ separator.  The use of the '\e' separator or wildcards will require the
+ names to be enclosed in quotes to protect them from the shell.
+ .PP
+ The
+ .I mcd
+ command may be used to establish the device and the current working
+ directory (relative to MSDOS), otherwise the default is A:/.
+ .PP
+ .I Mdir
+ returns 0 on success, 1 on utter failure, or 2 on partial failure.
+ .SH SEE ALSO
+ mcd(1)
+ .SH BUGS
+ Allows multiple arguments, which does not follow the MSDOS convention.
+ .PP
+ There is no /P (pause) option.
diff -rc --new-file orig/mtools-2.0.7/mdir.c mtools-2.0.7/mdir.c
*** orig/mtools-2.0.7/mdir.c	Thu Sep 10 15:59:17 1992
--- mtools-2.0.7/mdir.c	Sun Oct 17 22:14:34 1993
***************
*** 10,29 ****
  
  #include <stdio.h>
  #include "msdos.h"
- #include "patchlevel.h"
  
- int fd = -1;				/* the file descriptor for the device */
- int dir_start;				/* starting sector for directory */
- int dir_len;				/* length of directory (in sectors) */
- int dir_entries;			/* number of directory entries */
- int clus_size;				/* cluster size (in sectors) */
- char *mcwd;				/* the Current Working Directory */
- int fat_error;				/* FAT error detected? */
- 
  static long getfree();
  static char *conv_date(), *conv_time();
  
! main(argc, argv)
  int argc;
  char *argv[];
  {
--- 10,20 ----
  
  #include <stdio.h>
  #include "msdos.h"
  
  static long getfree();
  static char *conv_date(), *conv_time();
  
! mdir(argc, argv)
  int argc;
  char *argv[];
  {
***************
*** 47,53 ****
  		}
  		if (argv[1][0] == '-' && !wide) {
  			fprintf(stderr, "%s: illegal option -- %c\n", argv[0], argv[1][1]);
! 			fprintf(stderr, "Mtools version %s, dated %s\n", VERSION, DATE);
  			fprintf(stderr, "Usage: %s: [-w] msdosdirectory\n", argv[0]);
  			fprintf(stderr, "       %s: [-w] msdosfile [msdosfiles...]\n", argv[0]);
  			exit(1);
--- 38,44 ----
  		}
  		if (argv[1][0] == '-' && !wide) {
  			fprintf(stderr, "%s: illegal option -- %c\n", argv[0], argv[1][1]);
! 			fprintf(stderr, "Mtools version %s, dated %s\n", mversion, mdate);
  			fprintf(stderr, "Usage: %s: [-w] msdosdirectory\n", argv[0]);
  			fprintf(stderr, "       %s: [-w] msdosfile [msdosfiles...]\n", argv[0]);
  			exit(1);
***************
*** 279,304 ****
  	min_low = time_low >> 5;
  	sprintf(ans, "%2d:%02d%c", hour, min_hi + min_low, am_pm);
  	return(ans);
- }
- 
- /*
-  * stubs for read-only programs
-  */
- 
- void
- disk_flush()
- {
- 	extern int disk_dirty;
- 
- 	disk_dirty = 0;
- 	return;
- }
- 
- void
- dir_flush()
- {
- 	extern int dir_dirty;
- 
- 	dir_dirty = 0;
- 	return;
  }
--- 270,273 ----
diff -rc --new-file orig/mtools-2.0.7/mformat.1 mtools-2.0.7/mformat.1
*** orig/mtools-2.0.7/mformat.1	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mformat.1	Thu Sep 10 15:59:46 1992
***************
*** 0 ****
--- 1,45 ----
+ .TH MFORMAT 1 local
+ .SH NAME
+ mformat \- add an MSDOS filesystem to a low-level formatted diskette.
+ .SH SYNOPSIS
+ .B mformat
+ [
+ .B -t
+ tracks ] [
+ .B -h
+ heads ] [
+ .B -s
+ sectors ] [
+ .B -l
+ volume label ] drive:
+ .SH DESCRIPTION
+ .I Mformat
+ adds a minimal MSDOS filesystem (boot sector, FAT, and root directory) to
+ a diskette that has already been formatted by a Unix low-level format.
+ .PP
+ The follow options are supported:
+ .TP
+ .B t
+ The number of tracks (not cylinders).
+ .TP
+ .B h
+ The number of heads (sides).
+ .TP
+ .B s
+ The number of sectors per track.
+ .TP
+ .B l
+ An optional volume label.
+ .PP
+ To format a diskette at a density other than the default, you must supply
+ (at least) those command line parameters that are different from the
+ default.
+ .PP
+ .I Mformat
+ returns 0 on success or 1 on failure.
+ .SH SEE ALSO
+ mlabel(1)
+ .SH BUGS
+ Requires a low-level format utility from Unix.
+ .PP
+ Doesn't detect (or record) bad block information.
diff -rc --new-file orig/mtools-2.0.7/mformat.c mtools-2.0.7/mformat.c
*** orig/mtools-2.0.7/mformat.c	Thu Sep 10 15:59:16 1992
--- mtools-2.0.7/mformat.c	Sun Oct 17 22:14:51 1993
***************
*** 11,23 ****
  #include <stdio.h>
  #include <ctype.h>
  #include "msdos.h"
- #include "patchlevel.h"
  
! int fd, dir_dirty, dir_entries;
! long dir_chain[MAX_DIR_SECS];
! unsigned char *dir_buf;
! 
! main(argc, argv)
  int argc;
  char *argv[];
  {
--- 11,18 ----
  #include <stdio.h>
  #include <ctype.h>
  #include "msdos.h"
  
! mformat(argc, argv)
  int argc;
  char *argv[];
  {
***************
*** 62,68 ****
  	}
  
  	if (oops || (argc - optind) != 1) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", VERSION, DATE);
  		fprintf(stderr, "Usage: %s [-t tracks] [-h heads] [-s sectors] [-l label] device\n", argv[0]);
  		exit(1);
  	}
--- 57,63 ----
  	}
  
  	if (oops || (argc - optind) != 1) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", mversion, mdate);
  		fprintf(stderr, "Usage: %s [-t tracks] [-h heads] [-s sectors] [-l label] device\n", argv[0]);
  		exit(1);
  	}
***************
*** 243,248 ****
  	close(fd);
  	exit(0);
  }
- 
- /* hooks for the missing parts */
- void disk_write() {}
--- 238,240 ----
diff -rc --new-file orig/mtools-2.0.7/mkmanifest.1 mtools-2.0.7/mkmanifest.1
*** orig/mtools-2.0.7/mkmanifest.1	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mkmanifest.1	Thu Sep 10 15:59:09 1992
***************
*** 0 ****
--- 1,74 ----
+ .TH MKMANIFEST 1 local
+ .SH NAME
+ mkmanifest \- create a shell script to restore Unix filenames
+ .SH SYNOPSIS
+ .B mkmanifest
+ [ files ]
+ .SH DESCRIPTION
+ .I Mkmanifest
+ creates a shell script that will aid in the restoration of Unix filenames
+ that got clobbered by the MSDOS filename restrictions.  MSDOS filenames
+ are restricted to 8 character names, 3 character extensions, upper case
+ only, no device names, and no illegal characters.
+ .PP
+ The mkmanifest program is compatible with the methods used in
+ .I pcomm, arc,
+ and
+ .I mtools
+ to change perfectly good Unix filenames to fit the MSDOS restrictions.
+ .SH EXAMPLE
+ I want to copy the following Unix files to a MSDOS diskette (using the
+ .I mcopy
+ command).
+ .PP
+ .in +0.5i
+ .nf
+ very_long_name
+ 2.many.dots
+ illegal:
+ good.c
+ prn.dev
+ Capital
+ .fi
+ .in
+ .PP
+ .I Mcopy
+ will convert the names to:
+ .PP
+ .in +0.5i
+ .nf
+ very_lon
+ 2xmany.dot
+ illegalx
+ good.c
+ xprn.dev
+ capital
+ .fi
+ .in
+ .PP
+ The command:
+ .PP
+ mkmanifest very_long_name 2.many.dots illegal: good.c prn.dev Capital >
+ manifest
+ .PP
+ would produce the following:
+ .PP
+ .in +0.5i
+ .nf
+ mv very_lon very_long_name
+ mv 2xmany.dot 2.many.dots
+ mv illegalx illegal:
+ mv xprn.dev prn.dev
+ mv capital Capital
+ .fi
+ .in
+ .PP
+ Notice that "good.c" did not require any conversion, so it did not appear
+ in the output.
+ .PP
+ Suppose I've copied these files from the diskette to another Unix
+ system, and I now want the files back to their original names.  If the
+ file "manifest" (the output captured above) was sent along with those
+ files, it could be used to convert the filenames.
+ .SH SEE ALSO
+ arc(1), pcomm(1), mtools(1)
diff -rc --new-file orig/mtools-2.0.7/mlabel.1 mtools-2.0.7/mlabel.1
*** orig/mtools-2.0.7/mlabel.1	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mlabel.1	Thu Sep 10 15:59:46 1992
***************
*** 0 ****
--- 1,31 ----
+ .TH MLABEL 1 local
+ .SH NAME
+ mlabel \- make an MSDOS volume label
+ .SH SYNOPSIS
+ .B mlabel
+ [
+ .B -v
+ ] drive:
+ .SH DESCRIPTION
+ .I Mlabel
+ displays the current volume label, if present, and prompts the user
+ for a new volume label.  To delete an existing volume label, press
+ return at the prompt.
+ .PP
+ .I Mlabel
+ will allow the following command line option:
+ .TP
+ .B v
+ Verbose mode.  Display the new volume label if the label supplied is
+ invalid.
+ .PP
+ Reasonable care is taken to create a valid MSDOS volume label.  If an
+ invalid label is specified,
+ .I mlabel
+ will change the label (and display the new label if the verbose mode is
+ set).
+ .PP
+ .I Mlabel
+ returns 0 on success or 1 on failure.
+ .SH SEE ALSO
+ mformat(1)
diff -rc --new-file orig/mtools-2.0.7/mlabel.c mtools-2.0.7/mlabel.c
*** orig/mtools-2.0.7/mlabel.c	Thu Sep 10 15:59:16 1992
--- mtools-2.0.7/mlabel.c	Sun Oct 17 22:15:17 1993
***************
*** 11,27 ****
  #include <stdio.h>
  #include <ctype.h>
  #include "msdos.h"
- #include "patchlevel.h"
  
! int fd = -1;				/* the file descriptor for the device */
! int dir_start;				/* starting sector for directory */
! int dir_len;				/* length of directory (in sectors) */
! int dir_entries;			/* number of directory entries */
! int clus_size;				/* cluster size (in sectors) */
! char *mcwd;				/* the Current Working Directory */
! int fat_error;				/* FAT error detected? */
! 
! main(argc, argv)
  int argc;
  char *argv[];
  {
--- 11,18 ----
  #include <stdio.h>
  #include <ctype.h>
  #include "msdos.h"
  
! mlabel(argc, argv)
  int argc;
  char *argv[];
  {
***************
*** 45,51 ****
  			oops++;
  	}
  	if (argc < 2 || argv[fargn][1] != ':' || oops) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", VERSION, DATE);
  		fprintf(stderr, "Usage: %s [-v] drive:\n", argv[0]);
  		exit(1);
  	}
--- 36,42 ----
  			oops++;
  	}
  	if (argc < 2 || argv[fargn][1] != ':' || oops) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", mversion, mdate);
  		fprintf(stderr, "Usage: %s [-v] drive:\n", argv[0]);
  		exit(1);
  	}
***************
*** 98,103 ****
--- 89,95 ----
  
  					/* ask for new label */
  	printf("Enter the new volume label (11 characters): ");
+ 	fflush(stdout);
  	gets(filename);
  	if (filename[0] != '\0') {
  		sprintf((char *) fixed, "%-11.11s", filename);
***************
*** 109,114 ****
--- 101,107 ----
  			exit(0);
  
  		printf("Delete volume label (y/n): ");
+ 		fflush(stdout);
  		gets(ans);
  		if (ans[0] == 'y' || ans[0] == 'Y') {
  			strcpy((char *) fixed, (char *) vol);
diff -rc --new-file orig/mtools-2.0.7/mmd.1 mtools-2.0.7/mmd.1
*** orig/mtools-2.0.7/mmd.1	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mmd.1	Thu Sep 10 15:59:46 1992
***************
*** 0 ****
--- 1,42 ----
+ .TH MMD 1 local
+ .SH NAME
+ mmd \- make an MSDOS subdirectory
+ .SH SYNOPSIS
+ .B mmd
+ [
+ .B -v
+ ] msdosdirectory [ msdosdirectories... ]
+ .SH DESCRIPTION
+ .I Mmd
+ makes a new directory on an MSDOS filesystem.
+ .PP
+ .I Mmd
+ will allow the following command line option:
+ .TP
+ .B v
+ Verbose mode.  Display the new directory name if the name supplied is
+ invalid.
+ .PP
+ Reasonable care is taken to create a valid MSDOS directory name.  If an
+ invalid name is specified,
+ .I mmd
+ will change the name (and display the new name if the verbose mode is
+ set).
+ .PP
+ An error occurs if the directory already exists.
+ .PP
+ MSDOS subdirectory names are supported with either the '/' or '\e'
+ separator.  The use of the '\e' separator or wildcards will require the
+ directory name to be enclosed in quotes to protect it from the shell.
+ .PP
+ The
+ .I mcd
+ command may be used to establish the device and the current working
+ directory (relative to MSDOS), otherwise the default is A:/.
+ .PP
+ .I Mmd
+ returns 0 on success, 1 on utter failure, or 2 on partial failure.
+ .SH SEE ALSO
+ mcd(1), mrd(1)
+ .SH BUGS
+ Allows multiple arguments, which does not follow the MSDOS convention.
diff -rc --new-file orig/mtools-2.0.7/mmd.c mtools-2.0.7/mmd.c
*** orig/mtools-2.0.7/mmd.c	Thu Sep 10 15:59:48 1992
--- mtools-2.0.7/mmd.c	Sun Oct 17 22:15:30 1993
***************
*** 11,30 ****
  #include <stdio.h>
  #include <signal.h>
  #include "msdos.h"
- #include "patchlevel.h"
  
! int fd = -1;				/* the file descriptor for the device */
! int dir_start;				/* starting sector for directory */
! int dir_len;				/* length of directory (in sectors) */
! int dir_entries;			/* number of directory entries */
! int clus_size;				/* cluster size (in sectors) */
! char *mcwd;				/* the Current Working Directory */
! int fat_error;				/* FAT error detected? */
  
- static int got_signal();
  static void empty_dir();
  
! main(argc, argv)
  int argc;
  char *argv[];
  {
--- 11,22 ----
  #include <stdio.h>
  #include <signal.h>
  #include "msdos.h"
  
! extern int got_signal();
  
  static void empty_dir();
  
! mmd(argc, argv)
  int argc;
  char *argv[];
  {
***************
*** 56,62 ****
  			oops++;
  	}
  	if (argc == 1 || oops) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", VERSION, DATE);
  		fprintf(stderr, "Usage: %s [-v] msdosdirectory [msdosdirectories...]\n", argv[0]);
  		exit(1);
  	}
--- 48,54 ----
  			oops++;
  	}
  	if (argc == 1 || oops) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", mversion, mdate);
  		fprintf(stderr, "Usage: %s [-v] msdosdirectory [msdosdirectories...]\n", argv[0]);
  		exit(1);
  	}
***************
*** 201,224 ****
  					/* write the cluster */
  	disk_write(start, (unsigned char *) buf, buflen);
  	return;
- }
- 
- /*
-  * Do a graceful exit if the program is interrupted.  This will reduce
-  * (but not eliminate) the risk of generating a corrupted disk on
-  * a user abort.
-  */
- 
- static int
- got_signal()
- {
- 	void exit(), disk_flush(), fat_write(), dir_flush();
- 
- 	if (fd < 0)
- 		exit(1);
- 	fat_write();
- 	dir_flush();
- 	disk_flush();
- 	close(fd);
- 	exit(1);
  }
--- 193,196 ----
diff -rc --new-file orig/mtools-2.0.7/mrd.1 mtools-2.0.7/mrd.1
*** orig/mtools-2.0.7/mrd.1	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mrd.1	Thu Sep 10 15:59:47 1992
***************
*** 0 ****
--- 1,27 ----
+ .TH MRD 1 local
+ .SH NAME
+ mrd \- remove an MSDOS subdirectory
+ .SH SYNOPSIS
+ .B mrd
+ msdosdirectory [ msdosdirectories... ]
+ .SH DESCRIPTION
+ .I Mrd
+ removes a directory from an MSDOS filesystem.
+ .PP
+ An error occurs if the directory is not empty.
+ .PP
+ MSDOS subdirectory names are supported with either the '/' or '\e'
+ separator.  The use of the '\e' separator or wildcards will require the
+ directory name to be enclosed in quotes to protect it from the shell.
+ .PP
+ The
+ .I mcd
+ command may be used to establish the device and the current working
+ directory (relative to MSDOS), otherwise the default is A:/.
+ .PP
+ .I Mrd
+ returns 0 on success, 1 on utter failure, or 2 on partial failure.
+ .SH SEE ALSO
+ mcd(1), mmd(1)
+ .SH BUGS
+ Allows multiple arguments, which does not follow the MSDOS convention.
diff -rc --new-file orig/mtools-2.0.7/mrd.c mtools-2.0.7/mrd.c
*** orig/mtools-2.0.7/mrd.c	Thu Sep 10 15:59:48 1992
--- mtools-2.0.7/mrd.c	Sun Oct 17 22:15:43 1993
***************
*** 11,29 ****
  #include <stdio.h>
  #include <signal.h>
  #include "msdos.h"
- #include "patchlevel.h"
  
! int fd = -1;				/* the file descriptor for the device */
! int dir_start;				/* starting sector for directory */
! int dir_len;				/* length of directory (in sectors) */
! int dir_entries;			/* number of directory entries */
! int clus_size;				/* cluster size (in sectors) */
! char *mcwd;				/* the Current Working Directory */
! int fat_error;				/* FAT error detected? */
  
! static int got_signal(), is_empty();
  
! main(argc, argv)
  int argc;
  char *argv[];
  {
--- 11,22 ----
  #include <stdio.h>
  #include <signal.h>
  #include "msdos.h"
  
! extern int got_signal();
  
! static int is_empty();
  
! mrd(argc, argv)
  int argc;
  char *argv[];
  {
***************
*** 39,45 ****
  	signal(SIGQUIT, (SIG_TYPE(*) ()) got_signal);
  
  	if (argc == 1) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", VERSION, DATE);
  		fprintf(stderr, "Usage: %s mdsosdirectory [msdosdirectories...]\n", argv[0]);
  		exit(1);
  	}
--- 32,38 ----
  	signal(SIGQUIT, (SIG_TYPE(*) ()) got_signal);
  
  	if (argc == 1) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", mversion, mdate);
  		fprintf(stderr, "Usage: %s mdsosdirectory [msdosdirectories...]\n", argv[0]);
  		exit(1);
  	}
***************
*** 178,201 ****
  		fat = next;
  	}
  	return(1);
- }
- 
- /*
-  * Do a graceful exit if the program is interrupted.  This will reduce
-  * (but not eliminate) the risk of generating a corrupted disk on
-  * a user abort.
-  */
- 
- static int
- got_signal()
- {
- 	void exit(), disk_flush(), fat_write(), dir_flush();
- 
- 	if (fd < 0)
- 		exit(1);
- 	fat_write();
- 	dir_flush();
- 	disk_flush();
- 	close(fd);
- 	exit(1);
  }
--- 171,174 ----
diff -rc --new-file orig/mtools-2.0.7/mread.1 mtools-2.0.7/mread.1
*** orig/mtools-2.0.7/mread.1	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mread.1	Thu Sep 10 15:59:47 1992
***************
*** 0 ****
--- 1,58 ----
+ .TH MREAD 1 local
+ .SH NAME
+ mread \- low level read (copy) an MSDOS file to Unix
+ .SH SYNOPSIS
+ .B mread
+ [
+ .B -tnm
+ ] msdosfile unixfile
+ .PP
+ .B mread
+ [
+ .B -tnm
+ ] msdosfile [ msdosfiles... ] unixdirectory
+ .SH DESCRIPTION
+ In the first form,
+ .I mread
+ copies the specified MSDOS file to the named Unix file.  The second form
+ of the command copies multiple MSDOS files to the named Unix directory.
+ .PP
+ .I Mread
+ will allow the following command line options:
+ .TP
+ .B t
+ Text file transfer.
+ .I Mread
+ will translate incoming carriage return/line feeds to line feeds.
+ .TP
+ .B n
+ No warning.
+ .I Mread
+ will not warn the user when overwriting an existing file.
+ .TP
+ .B m
+ Preserve the file modification times.
+ .PP
+ If the target file already exists, and the
+ .I -n
+ option is not in effect,
+ .I mread
+ asks whether or not to overwrite the file.
+ .PP
+ MSDOS subdirectory names are supported with either the '/' or '\e'
+ separator.  The use of the '\e' separator or wildcards will require the
+ names to be enclosed in quotes to protect them from the shell.
+ .PP
+ The
+ .I mcd
+ command may be used to establish the device and the current working
+ directory (relative to MSDOS), otherwise the default is A:/.
+ .PP
+ .I Mread
+ returns 0 on success, 1 on utter failure, or 2 on partial failure.
+ .SH SEE ALSO
+ mcd(1), mcopy(1), mtype(1), mwrite(1)
+ .SH BUGS
+ Unlike MSDOS, the destination directory may
+ .B not
+ be omitted.
diff -rc --new-file orig/mtools-2.0.7/mread.c mtools-2.0.7/mread.c
*** orig/mtools-2.0.7/mread.c	Thu Sep 10 15:59:48 1992
--- mtools-2.0.7/mread.c	Sun Oct 17 22:15:59 1993
***************
*** 20,40 ****
  #include <time.h>
  #endif /* BSD */
  #include "msdos.h"
- #include "patchlevel.h"
  
- int fd = -1;				/* the file descriptor for the device */
- int dir_start;				/* starting sector for directory */
- int dir_len;				/* length of directory (in sectors) */
- int dir_entries;			/* number of directory entries */
- int clus_size;				/* cluster size (in sectors) */
- char *mcwd;				/* the Current Working Directory */
- int fat_error;				/* FAT error detected? */
- 
  static void set_mtime();
  static FILE *open_file();
  static long conv_stamp();
  
! main(argc, argv)
  int argc;
  char *argv[];
  {
--- 20,31 ----
  #include <time.h>
  #endif /* BSD */
  #include "msdos.h"
  
  static void set_mtime();
  static FILE *open_file();
  static long conv_stamp();
  
! mread(argc, argv)
  int argc;
  char *argv[];
  {
***************
*** 79,85 ****
  	}
  
  	if (oops || (argc - optind) < 2) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", VERSION, DATE);
  		fprintf(stderr, "Usage: %s [-tnm] msdosfile unixfile\n", argv[0]);
  		fprintf(stderr, "       %s [-tnm] msdosfile [msdosfiles...] unixdirectory\n", argv[0]);
  		exit(1);
--- 70,76 ----
  	}
  
  	if (oops || (argc - optind) < 2) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", mversion, mdate);
  		fprintf(stderr, "Usage: %s [-tnm] msdosfile unixfile\n", argv[0]);
  		fprintf(stderr, "       %s [-tnm] msdosfile [msdosfiles...] unixdirectory\n", argv[0]);
  		exit(1);
***************
*** 230,235 ****
--- 221,227 ----
  			/* CONSTCOND */
  			while (1) {
  				printf("File \"%s\" exists, overwrite (y/n) ? ", target);
+ 				fflush(stdout);
  				gets(ans);
  				if (ans[0] == 'n' || ans[0] == 'N')
  					return(NULL);
***************
*** 341,367 ****
  		utime(target, &utbuf);
  	}
  #endif /* BSD */
- 	return;
- }
- 
- /*
-  * stubs for read-only programs
-  */
- 
- void
- disk_flush()
- {
- 	extern int disk_dirty;
- 
- 	disk_dirty = 0;
- 	return;
- }
- 
- void
- dir_flush()
- {
- 	extern int dir_dirty;
- 
- 	dir_dirty = 0;
  	return;
  }
--- 333,337 ----
diff -rc --new-file orig/mtools-2.0.7/mren.1 mtools-2.0.7/mren.1
*** orig/mtools-2.0.7/mren.1	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mren.1	Thu Sep 10 15:59:47 1992
***************
*** 0 ****
--- 1,50 ----
+ .TH MREN 1 local
+ .SH NAME
+ mren \- rename an existing MSDOS file
+ .SH SYNOPSIS
+ .B mren
+ [
+ .B -v
+ ] sourcefile targetfile
+ .SH DESCRIPTION
+ .I Mren
+ renames an existing file on an MSDOS filesystem.
+ .PP
+ .I Mren
+ will allow the following command line option:
+ .TP
+ .B v
+ Verbose mode.  Display the new filename if the name supplied is
+ invalid.
+ .PP
+ Reasonable care is taken to create a valid MSDOS filename.  If an invalid
+ MSDOS target name is specified,
+ .I mren
+ will change the name (and prompt the user to accept or reject the new name
+ if the verbose mode is set).
+ .PP
+ The path component of the target filename (if supplied) is ignored.  In
+ other words, you may not use
+ .I mren
+ to move a file from one subdirectory to another.
+ .PP 
+ .I Mren
+ may be used to rename directories.
+ .PP
+ MSDOS subdirectory names are supported with either the '/' or '\e'
+ separator.  The use of the '\e' separator or wildcards will require the
+ names to be enclosed in quotes to protect them from the shell.
+ .PP
+ The
+ .I mcd
+ command may be used to establish the device and the current working
+ directory (relative to MSDOS), otherwise the default is A:/.
+ .PP
+ .I Mread
+ returns 0 on success or 1 on failure.
+ .SH SEE ALSO
+ mcd(1)
+ .SH BUGS
+ Unlike the MSDOS version of REN,
+ .I mren
+ can be used to rename directories.
diff -rc --new-file orig/mtools-2.0.7/mren.c mtools-2.0.7/mren.c
*** orig/mtools-2.0.7/mren.c	Thu Sep 10 15:59:16 1992
--- mtools-2.0.7/mren.c	Sun Oct 17 22:16:12 1993
***************
*** 10,26 ****
  
  #include <stdio.h>
  #include "msdos.h"
- #include "patchlevel.h"
  
! int fd = -1;				/* the file descriptor for the device */
! int dir_start;				/* starting sector for directory */
! int dir_len;				/* length of directory (in sectors) */
! int dir_entries;			/* number of directory entries */
! int clus_size;				/* cluster size (in sectors) */
! char *mcwd;				/* the Current Working Directory */
! int fat_error;				/* FAT error detected? */
! 
! main(argc, argv)
  int argc;
  char *argv[];
  {
--- 10,17 ----
  
  #include <stdio.h>
  #include "msdos.h"
  
! mren(argc, argv)
  int argc;
  char *argv[];
  {
***************
*** 41,47 ****
  		}
  	}
  	if (argc != fargn + 2) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", VERSION, DATE);
  		fprintf(stderr, "Usage: %s [-v] sourcefile targetfile\n", argv[0]);
  		exit(1);
  	}
--- 32,38 ----
  		}
  	}
  	if (argc != fargn + 2) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", mversion, mdate);
  		fprintf(stderr, "Usage: %s [-v] sourcefile targetfile\n", argv[0]);
  		exit(1);
  	}
***************
*** 66,71 ****
--- 57,63 ----
  	if (strcmp(temp, new) && verbose) {
  		while (!nogo) {
  			printf("Do you accept \"%s\" as the new filename (y/n) ? ", new);
+ 			fflush(stdout);
  			gets(ans);
  			if (ans[0] == 'y' || ans[0] == 'Y')
  				break;
diff -rc --new-file orig/mtools-2.0.7/msdos.h mtools-2.0.7/msdos.h
*** orig/mtools-2.0.7/msdos.h	Thu Sep 10 15:59:13 1992
--- mtools-2.0.7/msdos.h	Sun Oct 17 22:17:20 1993
***************
*** 59,61 ****
--- 59,74 ----
  #define strchr index
  #define strrchr rindex
  #endif /* BSD */
+ 
+ #define FAT12 4086 /* max. number of clusters described by a 12 bit FAT */
+ 
+ extern int fd;				/* the file descriptor for the device */
+ extern int dir_start;			/* starting sector for directory */
+ extern int dir_len;			/* length of directory (in sectors) */
+ extern int dir_entries;			/* number of directory entries */
+ extern int clus_size;			/* cluster size (in sectors) */
+ extern char *mcwd;			/* the Current Working Directory */
+ extern int fat_error;			/* FAT error detected? */
+ 
+ extern char *mversion;
+ extern char *mdate;
diff -rc --new-file orig/mtools-2.0.7/mtools.1 mtools-2.0.7/mtools.1
*** orig/mtools-2.0.7/mtools.1	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mtools.1	Sun Sep 26 19:24:05 1993
***************
*** 0 ****
--- 1,84 ----
+ .TH MTOOLS 1 local
+ .SH NAME
+ Mtools \- a collection of tools for manipulating MSDOS files
+ .SH SYNOPSIS
+ .nf
+ \fBmattrib\fR \- change MSDOS file attribute flags
+ \fBmcd\fR \- change MSDOS directory
+ \fBmcopy\fR \- copy MSDOS files to/from Unix
+ \fBmdel\fR \- delete an MSDOS file
+ \fBmdir\fR \- display an MSDOS directory
+ \fBmformat\fR \- add an MSDOS filesystem to a low-level formatted diskette
+ \fBmlabel\fR \- make an MSDOS volume label
+ \fBmmd\fR \- make an MSDOS subdirectory
+ \fBmrd\fR \- remove an MSDOS subdirectory
+ \fBmread\fR \- low level read (copy) an MSDOS file to Unix
+ \fBmren\fR \- rename an existing MSDOS file
+ \fBmtype\fR \- display contents of an MSDOS file
+ \fBmwrite\fR \- low level write (copy) a Unix file to MSDOS
+ .fi
+ .SH DESCRIPTION
+ Mtools is a public domain collection of programs to allow Unix systems
+ to read, write, and manipulate files on an MSDOS filesystem (typically a
+ diskette).  Each program attempts to emulate the MSDOS equivalent
+ command as closely as practical.
+ .PP
+ MSDOS filenames are optionally composed of a drive letter followed by a
+ colon, a subdirectory, and a filename.  Subdirectory names can use either
+ the '/' or '\e' separator.  The use of the '\e' separator or wildcards
+ will require the names to be enclosed in quotes to protect them from the
+ shell.
+ .PP
+ The regular expression "pattern matching" routines follow the Unix-style
+ rules.  For example, '*' matches all MSDOS files in lieu of '*.*'.  The
+ archive, hidden, read-only and system attribute bits are ignored during
+ pattern matching.
+ .PP
+ Not all Unix filenames are appropriate in the MSDOS world.  The Mtools
+ commands may have to alter Unix names to fit the MSDOS filename
+ restrictions.  Most commands have a -v (verbose) option that will
+ display the new names if they have been changed.  The following table
+ shows some examples of filename conversions:
+ .PP
+ .in +0.5i
+ .(b L
+ .TS
+ l l l.
+ Unix name	MSDOS name	Reason for the change
+ _	_	_
+ thisisatest	THISISAT	filename too long
+ emmet.gray	EMMET.GRA	extension too long
+ prn.txt	XRN.TXT	PRN is a device name
+ \.abc	X.ABC	null filename
+ hot+cold	HOTXCOLD	illegal character
+ .TE
+ .)b
+ .in
+ .PP
+ All options use the '-' (minus) flag, not '/' as you'd expect in MSDOS.
+ .PP
+ The
+ .I mcd
+ command is used to establish the device and the current working
+ directory (relative to the MSDOS filesystem), otherwise the default is
+ assumed to be A:/.
+ .PP
+ All the Mtools commands return 0 on success, 1 on utter failure, or 2
+ on partial failure.
+ .PP
+ Unless the host operating requires hardwired device setup,
+ the description of the devices on which to operate is loaded from
+ .I /etc/mtools 
+ where each line describes one device. The first word is the device
+ letter name, the second the type of FAT (12 or 16 bits), the third the
+ number of cylinder, the fourth is the number of heads, and the fifth
+ word is the number of sector per track. If zero is specified for any of
+ the last three a guess will be attempted; if using any one line fails,
+ the next lines that apply to that device are tried in turn.
+ .SH SEE ALSO
+ mattrib(1), mcd(1), mdel(1), mformat(1), mrd(1), mren(1), mtype(1),
+ mcopy(1), mdir(1), mlabel(1), mmd(1), mread(1), mwrite(1)
+ .SH BUGS
+ An unfortunate side effect of not guessing the proper device (when
+ multiple disk capacities are supported) is an occasional error message
+ from the device driver.  These can be safely ignored.
diff -rc --new-file orig/mtools-2.0.7/mtools.5 mtools-2.0.7/mtools.5
*** orig/mtools-2.0.7/mtools.5	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mtools.5	Thu Oct 28 08:55:58 1993
***************
*** 0 ****
--- 1,42 ----
+ .TH MTOOLS 5 "Oct 20, 1993" "" "Linux Programmer's Manual"
+ .SH NAME
+ mtools \- table of DOS devices
+ .SH DESCRIPTION
+ .B /etc/mtools
+ is a text file which contains the description of valid DOS
+ drive letters for
+ .IR mtools (1).
+ .PP
+ There are six columns in each line, and each line describes
+ a device.
+ .PP
+ The first is the drive letter, the second the pathname of
+ drive aliased to that letter; the third column is the number of
+ bits, 12 or 16, in the FAT. The last three columns are the
+ geometry of the drive, cuylinders, tracks per cylinder,
+ sectors per track.
+ .PP
+ .B Mtools
+ will attempt to query the drive for its geometry if the files
+ contains zeroes for those three parameters.
+ .PP
+ There can be several lines for the same drice letter; if IO fails
+ with the parameters specified in the first such line, the other
+ lines are tried in sequence.
+ .SH EXAMPLES
+ .B /etc/mtools may contain the following paths:
+ .sp
+ .RS
+ .nf
+ A /dev/fd0 12 80 2 18
+ A /dev/fd0 12 0 0 0
+ A /dev/fd0 12 40 2 9
+ B /dev/fd1 12 0 0 0
+ B /dev/fd1 12 40 2 9
+ C /dev/hda2 16 32 64 300
+ .fi
+ .RE
+ .SH FILES
+ /etc/mtools
+ .SH "SEE ALSO"
+ .IR mtools (1)
diff -rc --new-file orig/mtools-2.0.7/mtools.c mtools-2.0.7/mtools.c
*** orig/mtools-2.0.7/mtools.c	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mtools.c	Sun Oct 17 22:16:36 1993
***************
*** 0 ****
--- 1,71 ----
+ #include <stdio.h>
+ #include <string.h>
+ #include "msdos.h"
+ #include "patchlevel.h"
+ 
+ int fd = -1;				/* the file descriptor for the device */
+ int dir_start;				/* starting sector for directory */
+ int dir_len;				/* length of directory (in sectors) */
+ int dir_entries;			/* number of directory entries */
+ int clus_size;				/* cluster size (in sectors) */
+ char *mcwd;				/* the Current Working Directory */
+ int fat_error;				/* FAT error detected? */
+ 
+ char *mversion = VERSION;
+ char *mdate = DATE;
+ 
+ #define DISPATCH(cmd,fn) if (!strcmp(name,cmd)) { extern fn(); \
+   return fn(argc,argv); }
+ 
+ main(int argc,char **argv)
+ {
+     char *name;
+ 
+ #ifdef LOADDEVS
+     load_devices();
+ #endif
+ 
+     if (name = strrchr(argv[0],'/'))
+          name++;
+     else name = argv[0];
+ 
+     DISPATCH("mattrib",mattrib)
+     DISPATCH("mcd",mcd)
+     DISPATCH("mcopy",mcopy)
+     DISPATCH("mdel",mdel)
+     DISPATCH("mdir",mdir)
+     DISPATCH("mformat",mformat)
+     DISPATCH("mlabel",mlabel)
+     DISPATCH("mmd",mmd)
+     DISPATCH("mrd",mrd)
+     DISPATCH("mread",mread)
+     DISPATCH("mren",mren)
+     DISPATCH("mtype",mtype)
+     DISPATCH("mwrite",mwrite)
+ 
+     fprintf(stderr,"Unknown mtools command '%s'\n",name);
+ 
+     return 1;
+ }
+ 
+ /*
+  * Do a graceful exit if the program is interrupted.  This will reduce
+  * (but not eliminate) the risk of generating a corrupted disk on
+  * a user abort.
+  */
+ 
+ extern int fd;
+ 
+ int
+ got_signal()
+ {
+ 	void exit(), disk_flush(), fat_write(), dir_flush();
+ 
+ 	if (fd < 0)
+ 		exit(1);
+ 	fat_write();
+ 	dir_flush();
+ 	disk_flush();
+ 	close(fd);
+ 	exit(1);
+ }
diff -rc --new-file orig/mtools-2.0.7/mtools.etc mtools-2.0.7/mtools.etc
*** orig/mtools-2.0.7/mtools.etc	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mtools.etc	Thu Oct 28 08:46:42 1993
***************
*** 0 ****
--- 1,6 ----
+ A /dev/fd0 12 80 2 18
+ A /dev/fd0 12 0 0 0
+ A /dev/fd0 12 40 2 9
+ B /dev/fd1 12 0 0 0
+ B /dev/fd1 12 40 2 9
+ C /etc/dosemu/hdimage 16 80 2 18
diff -rc --new-file orig/mtools-2.0.7/mtype.1 mtools-2.0.7/mtype.1
*** orig/mtools-2.0.7/mtype.1	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mtype.1	Thu Sep 10 15:59:47 1992
***************
*** 0 ****
--- 1,40 ----
+ .TH MTYPE 1 local
+ .SH NAME
+ mtype \- display contents of an MSDOS file
+ .SH SYNOPSIS
+ .B mtype
+ [
+ .B -ts
+ ] msdosfile [ msdosfiles... ]
+ .SH DESCRIPTION
+ .I Mtype
+ displays the specified MSDOS file on the screen.
+ .PP
+ .I Mtype
+ will allow the following command line options:
+ .TP
+ .B t
+ Text file viewing.
+ .I Mtype
+ will translate incoming carriage return/line feeds to line feeds.
+ .TP
+ .B s
+ Strip high bit.
+ .I Mtype
+ will strip the high bit from the data.
+ .PP
+ MSDOS subdirectory names are supported with either the '/' or '\e'
+ separator.  The use of the '\e' separator or wildcards will require the
+ names to be enclosed in quotes to protect them from the shell.
+ .PP
+ The
+ .I mcd
+ command may be used to establish the device and the current working
+ directory (relative to MSDOS), otherwise the default is A:/.
+ .PP
+ .I Mtype
+ returns 0 on success, 1 on utter failure, or 2 on partial failure.
+ .SH SEE ALSO
+ mcd(1), mread(1)
+ .SH BUGS
+ Allows multiple arguments, which does not follow the MSDOS convention.
diff -rc --new-file orig/mtools-2.0.7/mtype.c mtools-2.0.7/mtype.c
*** orig/mtools-2.0.7/mtype.c	Thu Sep 10 15:59:48 1992
--- mtools-2.0.7/mtype.c	Sun Oct 17 22:16:48 1993
***************
*** 10,26 ****
  
  #include <stdio.h>
  #include "msdos.h"
- #include "patchlevel.h"
  
! int fd = -1;				/* the file descriptor for the device */
! int dir_start;				/* starting sector for directory */
! int dir_len;				/* length of directory (in sectors) */
! int dir_entries;			/* number of directory entries */
! int clus_size;				/* cluster size (in sectors) */
! char *mcwd;				/* the Current Working Directory */
! int fat_error;				/* FAT error detected? */
! 
! main(argc, argv)
  int argc;
  char *argv[];
  {
--- 10,17 ----
  
  #include <stdio.h>
  #include "msdos.h"
  
! mtype(argc, argv)
  int argc;
  char *argv[];
  {
***************
*** 56,62 ****
  	}
  
  	if (oops || (argc - optind) < 1) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", VERSION, DATE);
  		fprintf(stderr, "Usage: %s [-st] msdosfile [msdosfiles...]\n", argv[0]);
  		exit(1);
  	}
--- 47,53 ----
  	}
  
  	if (oops || (argc - optind) < 1) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", mversion, mdate);
  		fprintf(stderr, "Usage: %s [-st] msdosfile [msdosfiles...]\n", argv[0]);
  		exit(1);
  	}
***************
*** 121,146 ****
  	if (missed_one)
  		exit(1);
  	exit(0);
- }
- 
- /*
-  * stubs for read-only programs
-  */
- 
- void
- disk_flush()
- {
- 	extern int disk_dirty;
- 
- 	disk_dirty = 0;
- 	return;
- }
- 
- void
- dir_flush()
- {
- 	extern int dir_dirty;
- 
- 	dir_dirty = 0;
- 	return;
  }
--- 112,115 ----
diff -rc --new-file orig/mtools-2.0.7/mwrite.1 mtools-2.0.7/mwrite.1
*** orig/mtools-2.0.7/mwrite.1	Thu Jan  1 01:00:00 1970
--- mtools-2.0.7/mwrite.1	Thu Sep 10 15:59:47 1992
***************
*** 0 ****
--- 1,68 ----
+ .TH MWRITE 1 local
+ .SH NAME
+ mwrite \- low level write (copy) a Unix file to MSDOS
+ .SH SYNOPSIS
+ .B mwrite
+ [
+ .B -tnvm
+ ] unixfile msdosfile
+ .PP
+ .B mwrite
+ [
+ .B -tnvm
+ ] unixfile [ unixfiles... ] msdosdirectory
+ .SH DESCRIPTION
+ In the first form,
+ .I mwrite
+ copies the specified Unix file to the named MSDOS file.  The second form
+ of the command copies multiple Unix files to the named MSDOS directory.
+ .PP
+ .I Mwrite
+ will allow the following command line options:
+ .TP
+ .B t
+ Text file transfer.
+ .I Mwrite
+ will translate incoming line feeds to carriage return/line feeds.
+ .TP
+ .B n
+ No warning.
+ .I Mwrite
+ will not warn the user when overwriting an existing file.
+ .TP
+ .B v
+ Verbose mode.  Display the new filename if the Unix filename requires
+ conversion.
+ .TP
+ .B m
+ Preserve the file modification times.
+ .PP
+ If the target file already exists, and the
+ .I -n
+ option is not in effect,
+ .I mwrite
+ asks whether or not to overwrite the file.
+ .PP
+ Reasonable care is taken to create a valid MSDOS filename.  If an
+ invalid name is specified,
+ .I mwrite
+ will change the name (and display the new name if the verbose mode is
+ set).
+ .PP
+ MSDOS subdirectory names are are supported with either the '/' or '\e'
+ separator.  The use of the '\e' separator or wildcards will require the
+ names to be enclosed in quotes to protect them from the shell.
+ .PP
+ The
+ .I mcd
+ command may be used to establish the device and the current working
+ directory (relative to MSDOS), otherwise the default is A:/.
+ .PP
+ .I Mwrite
+ returns 0 on success, 1 on utter failure, or 2 on partial failure.
+ .SH SEE ALSO
+ mcd(1), mcopy(1), mread(1)
+ .SH BUGS
+ Unlike MSDOS, the destination directory may
+ .B not
+ be omitted.
diff -rc --new-file orig/mtools-2.0.7/mwrite.c mtools-2.0.7/mwrite.c
*** orig/mtools-2.0.7/mwrite.c	Thu Sep 10 15:59:48 1992
--- mtools-2.0.7/mwrite.c	Sun Oct 17 22:17:01 1993
***************
*** 13,36 ****
  #include <sys/types.h>
  #include <sys/stat.h>
  #include "msdos.h"
- #include "patchlevel.h"
  
! int fd = -1;				/* the file descriptor for the device */
! int dir_start;				/* starting sector for directory */
! int dir_len;				/* length of directory (in sectors) */
! int dir_entries;			/* number of directory entries */
! int clus_size;				/* cluster size (in sectors) */
! char *mcwd;				/* the Current Working Directory */
! int fat_error;				/* FAT error detected? */
  
  int full = 0;
  int textmode = 0;
  int nowarn = 0;
- static int got_signal();
  static struct directory *writeit();
  static long free_space();
  
! main(argc, argv)
  int argc;
  char *argv[];
  {
--- 13,28 ----
  #include <sys/types.h>
  #include <sys/stat.h>
  #include "msdos.h"
  
! extern int got_signal();
  
  int full = 0;
  int textmode = 0;
  int nowarn = 0;
  static struct directory *writeit();
  static long free_space();
  
! mwrite(argc, argv)
  int argc;
  char *argv[];
  {
***************
*** 76,82 ****
  	}
  
  	if (oops || (argc - optind) < 2) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", VERSION, DATE);
  		fprintf(stderr, "Usage: %s [-tnvm] unixfile msdosfile\n", argv[0]);
  		fprintf(stderr, "       %s [-tnvm] unixfile [unixfiles...] msdosdirectory\n", argv[0]);
  		exit(1);
--- 68,74 ----
  	}
  
  	if (oops || (argc - optind) < 2) {
! 		fprintf(stderr, "Mtools version %s, dated %s\n", mversion, mdate);
  		fprintf(stderr, "Usage: %s [-tnvm] unixfile msdosfile\n", argv[0]);
  		fprintf(stderr, "       %s [-tnvm] unixfile [unixfiles...] msdosdirectory\n", argv[0]);
  		exit(1);
***************
*** 177,182 ****
--- 169,175 ----
  					/* CONSTCOND */
  					while (1) {
  						printf("File \"%s\" exists, overwrite (y/n) ? ", target);
+ 						fflush(stdout);
  						gets(ans);
  						if (ans[0] == 'n' || ans[0] == 'N') {
  							nogo = 1;
***************
*** 322,348 ****
  	dir = mk_entry(fixed, 0x20, fat, size, now);
  	return(dir);
  }
- 
- /*
-  * Do a graceful exit if the program is interrupted.  This will reduce
-  * (but not eliminate) the risk of generating a corrupted disk on
-  * a user abort.
-  */
- 
- static int
- got_signal()
- {
- 	void exit(), disk_flush(), fat_write(), dir_flush();
- 
- 	if (fd < 0)
- 		exit(1);
- 	fat_write();
- 	dir_flush();
- 	disk_flush();
- 	close(fd);
- 	exit(1);
- }
- 
  
  /*
   * Get the amount of remaining free space
--- 315,320 ----
diff -rc --new-file orig/mtools-2.0.7/patchlevel.h mtools-2.0.7/patchlevel.h
*** orig/mtools-2.0.7/patchlevel.h	Thu Sep 10 16:00:31 1992
--- mtools-2.0.7/patchlevel.h	Fri Nov  5 19:41:30 1993
***************
*** 1,2 ****
  #define VERSION	"2.0.7"
! #define DATE	"6 Sep 92"
--- 1,2 ----
  #define VERSION	"2.0.7"
! #define DATE	"17 Oct 93"
‹ŸR90ì<is·’þ:ó+P’+&µ¼)J²\Ù<Š”l®%Q+Ò‰S›-ˆÉ‰æ`CÉt*ï·ow˜R”�ø¨Úª0Ïš@£Ñw=/Lã8PÕV­Sò­~l¿qØé°'��«y`�æA«Ólµk6šOXçÉwø-UÊÆž$qœ~¨ßÇÚÿŸþÂœÿ½8šú³e"¿öÍFã`ÿ1þ7[‡MÆ:ÀûÖá~î›­ƒNû	küÃÿoþ{ß³4fÂòž]�@à»U¼L˜Z©T†µZÍu›e6žûÑLaË³ `‘”v¼�â{hwÆsÉ¦KhXðtŽ
)¼ðä�/$�a÷<JñýRIÛ?Z†™°xÊÒ„‹[UasÉ=¸ðÈcJŠ4NSËÅ"NR˜m²b’‹¹�Š@œN­ÕÙaÍƒÆ-û,M§I�4 #*ïô¡þÏôo·6û·Š˜>œ }ðÁghÖZ!8zd@³SÑ®Áv¨q:ú„)h@³¶¿ÿÁ)Ž6G´jGGÑ>(ŒÀ!�€CïRyÀ­iœ„<Uì~îƒ@„1ˆ—eé pp0%áó8VÒˆãlÎ�y¾ºqJR?õãˆqÅâH¢´�pÙª¸HZDPB¾‚‘wGÌy4“$…	à\¿OüT²…LB_)‡À •§®“M"ÕB9Eà·rê’*/Vµ9ÃÊŠzñ=([$²ºHb@EÅ	»ã‰Ï'Ð�qX0,Æc~dôªÆöÊuÔ<^ ÏH‘”Ý#}vª};tGôÎÎ»/Gx—Ð!™?õ ®ÑNEããeÊFôÌ~f*]æ*MH_§ËHàâ”ËÇ�qý–©ÊR™@.ÇÍç”Ì�¤†ÊÅ&~
˜¤r&IA�oO/oYëèG^ùâÖrnÄÐJ@ÒS¬äk†›Âe�ú‹@ºŽmæ©a®¯±âA…-,dCŠnœx2)QS×áfæ+Å)
”’Qx/ á€cî}4]Ð>!Y@•-ý|Ø{}æÐ¢ÚÄõÑÏ×íZ«ˆ=v;Ã~Î‰Lne WZ{—ãs§¤2‰8ˆÛ¶~¬„bŠ8ÜÇÉ­‹<‰¬0—-)÷"Xò3ÄBQ‚Nç~´|ÇªÕÍEÁ’UŠãÈ)×™ü¤ì�¤"+­Ä%J›ì)¶Œ@Veº\èfì/á>àw¨ÆÀë7‘ÿ8°É~ø§d8ä:´/E•Žä=“Qš¬,'Íšk‚ÑFõœuôÔðþ™2,Á~£«îõöž£e4±ýZ)Æu/�€¯Ç7ÝÞ`´uè~­
ºEã"68¹`×cÒ?=?ßÚ¿/ƒ@cµOs!“™Ä$E[‡¼•@0«¹$w£7—í£ƒÇ–à}hËF*ù±Ò0!`GÍA!pÞ6WÛ©Õÿ0&&²«;l7õöI3#ðÍ°ß§nhAIå<¯:á ihš•¡0˜OC ˜�wàÍ�ÌÂl€0;vûýÓŸÑ’Áš¹Gœ·qZ´«@9¤ m³Ù4‰CöïzMÇ©‰Ð~&àPî´¢;Ôe*êº+‘ä1×æŒ(&€ŸS»Gx`ðQ%Ò\Á”ÀÂIi@Q@©x¦(²ÖX?
^ÞŒ½:Eÿ13é ñ6œòl´3á
Ìzª”€ì¯¤(ÊŸE<(•_E•Ñ�ŸÄQ+Ë'¾‡ç£›³îø¦7¼¸êŽ'ƒóÁøW³¦=x@˜AÇS­SX—ŒDLLs	Ú	TÃ�
­�s,E~ðH€–¦sX+šMj†õ€7µoÖ[ÃnÍ&ˆÄ�Màâ0ž:eš ×míF­¨íx<åš~”SþK÷úrpùò˜û“PA7Sƒ#›,aZáÅÞåpÏvt-fØ _Aèö.ÞŒÆ{@“"
-«$ßñp�¶–�€/‚ÆÑ¢H LQ=aî¥°2Âþù!÷”øwò˜îúž6eøÌ	ÄIØ^ÝvÛ‹xh»­ÅÆõE�!ã€‘¦«ºõš+QMV) G}Á	#ooÀÌ+Ó$#gµ^‡2ïÆž�!©…>X¼�Q©Œv|V\Ú›ù±Hƒ2™¤1úzfÂ“÷Öœ¥=ä�%š6ºÏ›Lh—j"Blþ�(é< i	Äò™àP™â¶µ¤‚ƒ7ƒ¥¥ÀOR$^ž& œG’�œÑ9HÇ‚GŠŒ%±‰´„Ðx¦,FT�+ÙÓWÃ‹ÓúÝÂWïë¸ý9N§™éc4‰¼Å¦¨Ö0é%#²®dYt´»ã‡|&ÕLjã¬#öóUŒ4Ä“ä5¬0m7Ö¹o=ùÆ¯]pþBÛÙ±™¹·L°1ÁŠ&¡ä
My°‚Ô[§:âÉÂ�õ•
ÅL¿ã·B4`l¡[­ FËÆ5 Ó…ò2‡Õ€hŒfvï��ä3òD�V…¶wQÊ"A–²QGv4sy§ÂªæEA¸lÇLë×¸^>BñõQò0Z†áS_ÍW;@FTg‹bà{£%Ô"4|fá`…ä;!)É3:s¢a|è¤Iñ´ÖŸµ¬F¡Q`fÿXúè(ø¥§GFæÒ	“<Žûðüx?s~”Š€äcÆ�ƒf2†x¢1c‘m„HaµV#rÂÿ=�Éò¹úÔ�€ÂQä<dñ†°Ú�o¦øëé|AO‘kïe³prlÈ%�üt¥ý˜‰w‘&–x £ý˜]ÇF.iìÔ—å y*IvMË`d7P±¦ÍõÁZ¼
ÊÄÊ:ÌàØð	·Œ(vX\›²p«ÕVï,�’6š3nÝ/ùZsR¢Î-¤ÌjPVÆ8"7K´|ÁB+Ñžˆ‡ëàvH
“§›`‰HÂÆ
Ý5ÌG†I3ÄBsç'*5.“§È0Ì)“­'d2ÀMíísÍÑþ#¡pÆu¬„çèy±TÑ3p‘<;›�«0ˆ5tcTÎ§°‚x-ÖäØ/ƒ×ý±!E�dá¯Y<RSÿbÌJû¸¬‰<ÆÐ»Ëê®>õhÌŽ¬ÅšGëïÍ:ïcçç¸G`_7ñµí¼þ6ëÜÓè€’á²>÷H;Ð„Ú¹!Þ£ E¦�""Ï!ØM9F`"ëð€iÓ„²„r¹ª¸´GDž›dÃ_½M¤ÛÚ¶Ý T^�Ö¸¸›èC^?Ñ)4‘E6#´ë ÿLÔ‡©[…ÕjµÊÆÞ¦Â ý>˜aœ
Á"í)‡ŠÀs‘bô©xÝV­QkÑfÈ1:k½k‡vá˜•2uÀ¦
mþ™²È=
Á½7ÚTƒ!“õ!ÐT¡Ý<ìùÈ¾—À‰1ÖÐmšAã{P–²¾-ÍZžþ|Ö}Va;ÄúÄS·õiã�fÇKÁ…6€:Í\+aaX.•Ëøxÿ ¡Ùù«²„÷ü#ö5„ç�8ú4GÀÉ€f{þiKxÀ§ÑÀ® ·>¾±hÚÑÛF›ÿ™Á}¼T‰�
)ˆÈÑacÿQ,Öáœ"œµØóóÆÿÖ%��”ÙåÔ\CãCC]£Û�L/hÏ{»^¬kD…öß+´k�2ßŽÛ’+JîtÑh5
üÞ\‚zwÅ ÅOo–„Ö±ëetŸøQ¦ª{w^£Ñø ã¿"ÉFËHï�ŒôTÁŒm`ˆ\Ú,< „×Ÿ%ùcìó/[¼ã\Æ©ÔÖž6ïãÌ|£íûªS	lT˜^-æ+…æ†ZGœùJN¶G;GøÓ©Ä¤¦fÈ^Üš³ÏOZ´�ÎR3`í D[dm­>äg›ù³-+ûrÓÊ¾Ø¶²/5®ì‹­+û$ó
$ßn^Ù×TR'?r;¦…àÅe!^”"’G„iò@:@ívŠ‘É¢js!'…1ÍOóáÅ.ã›Ëáðê1µIŸ=~CM[[¦^.0£
¦Ñ6!¤%xø—ð<Æ6=tèoãòÂ9.�Âà¹nLä©:F€¤ñxäQÒšØ�cô ãOþù}åú{Âøä;×4Û�‰èúŸýv§ÝÆú�ýöþ?õßã·ëîšs’ì¼í¡>­v±UŸ æeB,ë§
0mÿk
¯Ò^×ÔLŸ˜ìtãèÐîø‘–�åUûxve¶µô¸9] ¼xŠ
9“>�jŸÎn+pC§³xîˆ÷xKVkA	=O†>_Ÿ7²$˜¢€
Yv³£=wW·;?²êb2i'3ÝôÙ×F?Ú
3K1(™îtúg»3Ýý¢…Ë¦ƒw¸êCõl’ó~ÖU™®>«NY"X×íõ4ó~d3!Ü"3aNÞª¿à¶,ác—w®½È_t_zì?€q“åŒ•ì�²±ÔTï@%Ùq5Xâ¦V?•?6_¸+ú%Š«Ë÷sÖVs	-A¥úÄû¾ØÀêôüLW@jÏòˆ�9gr×‰ýÑY×IøKàYW�=�•èvíÈ‹Ù3¯ò&sóùú7WÃÑàíÍhøæºwÊªàù<ŠgKòüµÚ¿ÞŒÆ×§××Ãk¶›É…AÁ_º€,Ü<-õze÷D@6Swôê|pâü×î5¼Sèè«Ü=\öøâéŸýÓÑø/›æ¸§ãÞzƒL…{Ñ½lÂ+<ÁKü	'Ü› Ã…ÿâÅŠ…žà�Ÿ°Pûn|‚ïBèÆK<SJ<ö:prÊð×îûÀ÷C]iÞ†<ò§R¥4óé[\M“î"
]ñßÓ’éZÆ~ÄV›"|Ò:tÿa‚puz}�;
bžÀ¹ƒËÑ¸{~OtŠŒî›’í¼û’n§A¼X¬È>rP¹¯©´~HX5Ixâã	ÍîèÕðä¿J^ÖE’6T-Öjk>êrYì¹Èí×£¿o´UXãOÎ×ÌP e€Õp¯MÍá¼Õ3bcßIºzø0ÀM‹7]¼žIˆà«l
¦e²Ä­–å�xg7±¿¯\ô¡¸BGrÏ»¦‰”úÿbÅ]R‚‰øšw8Ce� À%�~+lRË‰^4¬YÈ?Æ¶€û‘¾Å‘ï¼©~0{™1»Ëg¼Áƒ@„“mCÁÁ;ÚeßÞàb°¼%k¯Å®;ºîe´,#¶ÐÄbClAÄšØÂ[dÄDlQ$¶([‰-
'ê9±…&¶°ÄEb‹œØtkËs„%¶È‰-rbClaˆ-,±ENl‘[‰-,±…&¶([¬[< ¶mÇbw×ŠvQö2Y6ÒkÄ^‹Ûoî®c¥;“Ü„Q}ô5"qÂ+)‘¹]¦oBˆ¦Ì­�‚·k#?]´‰
5Âí«³”Ï•òÝmb®ÒåäÓ¤}wCÜ�îVÌ‹b¨Å4n#ÎZ$ŒüeÔQNè‘,4õ…¡¾°ÔkÔßrM}‘S_¨/Ö¨ÿ	²žSßÜ¯Á1¢oXñ7t`w›+>I6X:pñ]èà#2$sÂÈ&puÇŽñÕOKärÊE?íê¶cçi	©ìÂÍy¿Œ}u”‚·ÔWòpeVµ"D¯ L)»®…m'Ó»,TD�·m}�ºìAnbDûô)µÿð²xB¿{AÅ€\†("XXçv<‹ÖÑÍàP�äÑ±›úÞêØuª§½³½Zœø3¼0^Ã"[�'ž­ÿ¤
šh`8¹ËFY=ïÚqÕ"N!xZ"Hˆ–ÈÇ©¿ÔD&¸Rå•íi¡i©Â¸ì‚D0(+tÏ!ÛnJ$þ"UÈ u Ç6Îr4–l³RØ„MDÃ§%ˆ—Ê÷?-½¤»î0Æ*çKÜánÃí¸H;ý¶ŽŸ…A‘Ã[@&:BÞ\?ž\ºŽX27ûf¼ÑT?ÞB+Ù²—(Ñ_CúAÊvÞïØØµÊ;L¦wfïw^è-ršH±ßqm@ía’�¤î†lCü_ˆéït’«ÿðî�,ß³Ù{öNG¡"ˆ‰›ÅþwFëqò€ºÈ3cûå“æ£¤˜Ç
T�cÆRÈÇûÂ}ðÞu€z�å-7^»�9.®RçåÍå”L’B¨Ôò¤ä…Q±\CÝY/;7½¾ØÇ:™…[ …µo ÝÙŠvgf§0ññî|txŽ÷ÖN�âízr!#<¨F¿¬°†²\c«é#ˆ2ææý!•òôOÏOÇ§lüj0b 1§Ø0A_¨\ð?Â_ºÿ{-ÁqAÌÅ©Tßoÿ·Õltìþoë°yÀX³½ß>øgÿ÷{üª_óç‚9­&ë.g¬ùüyÇuÏ°l‹-–“À¬,æœ�Ñ)'ZÖlåa$ïƒ¼ÄÈ:•ÙÇRîh†</P¤Zè�ÿVPòcÅÎÛþ™­F«°îåh0õuµkÅtM¤.á^â¾¯>R¦íÄnõ•º‹³×ŸNËîÏXJ�ÃÏU	8»T)�…¼û«PúüÎ÷Ø¥/CLØ×%ê•§íòàë˜Ø>ëKÁžï».w.¨™{žÚ(pšJkÖUMÍrqG	5KxˆÇj@Þ[6ÁOjr�V™JŒ)-¢=#]F‰u¹1~4Eð)¦‡xä§ëäÌ¡<–=ÓwXw[s�v™Êxñ†46'�Û>ëS¬‰pIzÈï—ñÐ@±p×7Xjy8„ÐÀØWã¡ÿÍ‰¡ýü­’‚©;eMê««ÇtÅwa0+é’¶4á‘šâwmØHÅ·±.Ô¸ba�
"]¢ˆÕçªB‡	Ï•/\¬À¢RtUûpß}¾¼}#rõuæÌ”ÿ^R�$a/b¥|Ã/Üëç	¤äãXQGG&úœœ„2MÙÿùé§Ÿþ—§J�àðZU&øç)÷ñƒ™b‘)‰Çµã;,ºž²“áË7#†'Òºò[ñ�%ž+'ø1ëß¢äðæômïœÊÃõ·2«¶‘‚2RxXæ§¶š–68ðÛ Õ¨@úÜšßÅ`B8}–‡°¢8*| Ü“ÏC"ì?PR`~Hm°ò5Ov
}Ï)5(ÝÊ-d’&qT¸9Àƒš'Ëß–®œÈÚdC‘~>YI.A�°HÞ”ù[\#’™ŒSd”Ù•QÐo¹.½¨ÉÅß°»Æði´ùÜ�YŽÞ°ç8NåF$Åm<…eM`Fô~<™-ñ“0½Iæ:gt8aªÚ±ž*Š~GŒ˜¡Päuº¬N¯ë]{sÉ6d·ß”p?¬?‚L4ø|Â�4ï³ïNÉ‘Ó�fKi2»í´Â[r¢P±Õ|¼F'|Uü&�Q°F~ç‘Î§}CæÒx.ý$/nÁT<Ža•Úe@0«?]Ï¿xÑÓX¬EÑ&8šè)�[cw=Cß	£m;ž^óÂ78åìcFðk˜„¹ì·m`#ô—RhE"]†£¥
ÿ�Xi�ÚO?ô,˜žÿ{oÞÖÆ±%¿ÿýéS”•$�„$6g0à„‰
~g›Ñm¤´-ukÔ˜ØžÏþž­–^8±É�{ÉÌ5êîÚëÔ©³Ÿáû‰?±û&`šš¶Áõø·DhÎ{}úå!±)Ð&ffüXoXg¹¥`âÖÁªXÈÕíÖõ‰–],qe¯@h‡
JÙ��Uú¹} åôv# PÃ^®2O†�T„&Oˆ’q}mØžÔÚ@ñR±5kRhôä]ÀuI›áXÆ#0¿d½ªž??Å“‘a:gD|ynhlMy’�x¿$u ÖôÐåÅëB×žèl7DYÈÅU�H(Yo¬1A­¦ZVq4£'t‡.èªÅ°§'X·Þ¯D…o(rÝHúð’'„ãÁô´^la8BŠ¡¸R•ÉÅ
ÍG¹%DvÐ…Ñ´ã†k•ü©{l\BU¥îxóD°i9¼“‰.¾vk·»Gg 	B(»¶wô;&›rG¶ÖÇètµVQÏ€\êÄÅºÆn˜äËûB1%H§ÓC_Ü.ÜÔÈˆ�e
a7&Aád�[ë‡½ZÔ¯Q4õƒ$ª“¼XºÑµ{°~ÂE!ZXO¥Ä»À)9#¹\Rå}X$Ò�^™Dle…S˜°#qÞàÒ»Š˜jcæíÃ$éÏ]WÏ|èÌ¯jA&™a ;™wŠøvLÏ—ÈiØ¦£`0?–‘¢øQô¤ÅÂ# ¸Føþ5¾tÊÂîa.!ûÖ<×©ß-${=v‰6NDºF#†¡:»´
µ›óÐø9+íælÊeND�yb
dYÆþ;ØàbÔ1Ü
Wt�C§5Ó©`,¸x¿ÄÑp_#q‘ÜŒÙ‘g×9¿¾§í¥mOzM€–3ã‡¡V‘(ÕîOD£í4Ïu(˜r‰@U_4Kè78�÷KŒoÐ!l{ëõñÞÁþ†Úól¦EÉé‡š:2'D0òÖµ³s¨1ðûõ]Ð‡£‰»¦{ëàhž÷ß(ô˜×²ÎZèæÉ6«š¦b']¸J©ò7#háâÂ˜:@.'.®!}ˆµEÙ�‚˜ ™‡�zc®¤Çe	Ž�‘ëÉ3‚°¨%<)¼›åNa²UèŠþ‡ÈÐÞÎïNÅb–YX¸Š§nYc
OÊÇŽÞáPÐF/E:ÙÙŠ‘/yÁágºzWÐZçÃFçÆ\P�ü´y>Et;½I‹{\¯òÍö«ªÖ˜bo%v‹ü´�Ð@’…l'ˆ8¹€q›ëZ_çêÜØ%ŠæK˜cü˜`4ÀyE½i—éqBñ»5"9BQ1n�ïÅ®+,&9nÍ)¤#Olÿô3¢	
†pê£Wa¯gcM è†õÕEé�×òéDÉ–	–ƒ§ÊõµÆÃh||«ÝYæ›…yÛÓ¹%¨O
bE¢½{,GÛ!*’
K�€(dIñ2DÖNŽ¼PvŽØì‘#Ÿ‰Ëéi(1ÂÚÊR”)òTLD>rã¡ÇÀuö©pÃùþ,[r¯À„»™Üþ�úÜÒn¯¯×IS)9ð aÚˆÆ1'ZÄ� ]dú3gÕ%¢‰ÿ!`A›CU™ÝÃàN+\‹†ÚÄR¸
èOSÂB~À»¼£»ð”„‚Kòv£HeÇìà)
•õðrƒ«q,Ò_B_naix›½	“À2=Ä­HU�,G&0Õ‚ˆk¨ƒa¥°UÌ›uD,Œ‘À±oª¶tnè,FéÃ`ÂÛ›Qœpô%Fÿø&ÄÕk+ïqk~x69¯Ýƒh�â*ÅU>ŠÍü£èÁñ»$¤‘%¤Ö%Û#&ñÇâÄ^áqr$½z–ÅÂE…óL—[/º÷ø•º¢‚š¤ëBÛ®•ÜhAªìz3ÉÌ®‘õa÷²GpLRhë¦¾¦Î1ºÒtUwÅBÇSdß/½1ÝDÚ“Ã·Ö¸»]Ë™ TOzq9v5è-[PŸú“K<—-Y’ptø¶²ôÁ
•¼�…’:ÝøêW£Ýó eýŽÆ´ç…ô¦#yÍGB5Ãž�GÒû §„ðŽaú\�!P$@m €ŸpS­!¢R{€X™EþßÓ Æ�Â ˆhD¢F±èZ£8|20:Ààë~vµ–á„<bQqãÚÕâ¥ Bß¬+@g£
Qü	²à*Œá]stÂØD¦ÁB¼Lƒ«o7³]Ã·˜™
½×“
°€Œ[“t	ö	)@/’3Õmi—?ŒQ¡éQ¹ÇH�äqœ$qóúFón¢K"K©gÏ»Ïú?ÀÎCb2È…å=†�Hù°H`S•Vjy#$BÏC×‚'!{ÑtÓÐ}aCçØË†ntË‘2;A¢oDI°ÅBÙJ,™Ð$Çf©P¼‡[ÅØæ[ ”‡	€\Ç£µ»u
›åêˆ�†ÚP.k«= 7È?PJö]Ywyk£ªžÁÿ€ÿßq÷‚!‰¦Q2ÊwíE]Q	.Ÿ_ƒA¯uùž¶aT¼ðŠ�vR$§É9¡7ŠËóŽHC™~IŸ‡�‰<AIR)ŠÂ¥„,æ¸ÇˆÝ\Ïh\‡R÷
¸9ÜhVÔù½†à@ÒÎ’ê8ê•ŠúÅ	¿¶½SUÏ_nWÕ‹­g»/ø nî=sÀ‰D¬¿
¥Ö·7QÃ>õ0FÖ™!&{BL[’ü"€
G c½¡È‹.Bkv§o‹$IJávD€‹
Î9OB?¬A²	´óÁ([}Ÿx#	â‚‡�ÔtÄ~ò¡(®(‘ì¢ÓS\/<Gñ}D¦ÇBÅa¯ëa÷úV+.WU©tc�Ü’1XÐ‘µŽ¦€­^ýdiìSL9ÎFŠEb¬ã,�o–Güßˆ*<÷#ÑËóˆ˜\>¨.[Ù†Ï,¼D	$s˜ùù%x�z‡�éûóè"Tù‚^üé¼0vý	P2~oZa)9YXÈ=˜±>×Hüéc}ojõ/iÿe énýWÖV–×”Z]_]_[k®¯¯Qü÷åæ½ý×]ü·´PTjGlˆÅpˆ³iP@²a'2ë%fã7¿úª¬•/¬1ûôI%^p€¸ï�ˆé«„ÿdñ;?ìýbqiá;‰�Õé¼>Úí<;ÚYX¢X‘d¾ÂAçXn…œ1Î'tþ�ö ~„Îê´âúùS÷õ¤DéW¨ìL¾úCdLïºä|’xEL|²‡’Ä‡-%;Eg¿DÕiÀëä»ÑeêN®o˜}MêR=óM]Y¦n¤­E½–úî†9žtt´2^skkÄ³¸‘¦–‰¡ÊÉè•d‘�Ýç[¯_Ûòf è3mÊÙ/Ð`F�Œ¯*oßœ¨MŒµšT$^å s¸s°ÿâ÷D”`¥Ú¨6>´0HFNS©(+¹-é8+×7ôèÖ
=rÊDmIÆ\¹vj74të5JÌìÚ,¹­èX*N#×Ä"¹EÅÏm*Éã^PBÓÞÑö_¦›âìÜnús{¨¼)rÏ­�é†>·¦âøüY`JFK»-0Ý6jÚmÛ»)zÚßäÔ.ŒKx÷¯ç6ìÐŸË[4‘wF¾æ
É’¸«DÔÄW[£î_E»_ÐÆ7[%¦¸Ü5¢Ì_k‘n†_c¡¿ê*Ñ¢¸ËD!W¾Ê*Á¯õâæê_<sÐÎÊ£^üø¯Q'ý^³¹¼
ÃyôïÝÐã¿v
œ÷½¿™žàè:îÙ>¸nç-åÝï†DuÓ
-é®±±ëàJóÎÚ­Ín
ŒWþ»vSfµ…ûr«¶œ�Éi«dj^Û¾äÿ%Úzæ¶%€·zÛ9®ÞØÖŸžc²­¿6ÇmÛ–³ÓÖ5 �×VXë¶†oW
µmûÆÀÍi_RìãYÏ0�¨Àv­‰Åë÷ª*	Ðð×¼ÃL:jÿÅ´%ÂÈ»<`>cèôRüJÒ—EƒÍ¢¤kCÂÞrú‹›Pühr”œõ`_áßÓii 0†ƒÙck?îü¸{¼UUsô½¢67U­Y¡„&n¡�½£—ûÇ¦X�‹ÙÄ£	¿?c«å2¥ötû�ÖPÍ©Æ‡uhïÓ'Åïcò)’×•d}2¬íÀËÜ~�Dq½{5ˆ«T;ä$Øq~QN?Çeé÷ì¢#4Ã¿—Âø€eÝn0pZz¦ðO•à¼&º¶™.!½ê2²L›°�ú%¯½káVe€�ÌhW-ä(ñ’3WlÂš“ÜŒ´ÉìÍ‡>K˜j%Q<žø#
—¦§±6C‹q4HZ›d=ÁûÔ]m¶Ú6�û•!*Ê@áQ
Ÿ¨ÆÀ`¹Ya ”Ç<~vðã»—€2Çb
âÙÉŠÖòÄ†Óp©÷>-9ÔÔÀ,Ñœ=Ôg~è�ƒ§:¾·~j•nŠß„#Ò¡g¥zñµht�Y}4™öû¨ã;õ$ê¤(	â|òŽ	B­ÿâüâA…Àzæcl†òó4	 Év6H—‰mÚ
pkâ�utl“²Aø¿—”æCuÏ§ƒ?ª¨s¤x$úV/£Ú«j¿þ¬^UÛ^èõ¼*Öéž«&<~ÜÔrqÙ“w÷w÷¶;¸
E½²¨žh‡ß‘p”ýÞûçœzO˜Ý|€÷Coàß6-¢îèZv^nýçÁ!Ð%æõöO[‡òvuàMLÔ@á/@Ï�Ú•NÃlîHÕ?ÒE”<ì;?ïlÿ'Ïr™‹ÕžÒp+õ`SŸýÙ3–K¶|‰½méùÎÏ»ÿ¹»
í \åa„tßÏ±±qÂØ·²�#FÉëüË»”{­�8È,ññáÖöÏG2ÙŠô[§në!`uSð§Ý­�Yå§›‚G0ˆƒÃEÀGt•¥‹w^ív‘þœ­Ëÿ:áéÀV{¾ÓÁšG{ÿµ;³§bõd�ãt­ê,k~MÀ3mõÙ4À€HNúy°ÿyX¬bŽ§B!�Vqß³ J`r¤Ád6”\Iº0ËjJâ˜R…ÉÑÍ‡äÏ� 	§IiE&uY†�W¿51´ìŸ½F á7$€?œlè&ÉÖ�Ù°Áép
p?|hÙ·¾_õO‰ÈHˆB¨ð-ãéëûçç¤Uæ6Ÿ}Q›i¾AÙ6)Ú;·¹ýgÚ4×fÁ6Ù2Mî|q“Mg˜¶IJqÍMîþ™&sFÙ´¿]´ýT¤þ¬zG@Ã¡Øžýó¿þºÀw›6¿ø¾ ÍÛßm›üàû‚&ïøÒ¨�Š	?¼Xê÷Òš~;öÏò>Ð}–[C‹¾²ØõåÞþÁaùÿAžÃÐ$.HþŠÿ>}ª)]JU´½D>_S,òòÐÅÐÆgoZ­“Í�ÅÒË€ãKìxOmõ`qŒTëûRµXzæõ”¶<Äç#ö5†+nç¸ø=óÖÿ´<&øæ×1¦gtknn‹›
:óa_Á…>1GI�Â¹íùhM‚_Õ¢_zh¿’ãì«q„ÆÂøb?â9ÔàBEjJœN�”€N?œ†ùã@#n[Jï†=uÐWÛvôøšÿz™��ö6¶û?Ó`DN›Š‚¦ñý÷èž[RH…Z‰˜°×é{š|Ñ$=S-cï?ªùQU¼iâ¹Y§¬—8ÚÚWˆ1 æ²ú®-?Ñï†ÙÓow:&²ƒž7aHŠØ£ò»ÍF[½{¢[ƒß‹‹•�‰%Ã¨=•º›¶�¹9EÑà¿eSŽåsHnýÚùõpïx—d>J¥Ëlªÿ•Rû»»H:îþÜ63q£˜º�2Û/wªº(%”NÍ« €�#ðî³×G¿siüV«µùWÍ'ýr<�-WKÏw¶�$Œ�TŒ¾?"32oj5
{oC&¥ &}gbŠFÐçÙçÎ?ç
aïÀ Ý-æ“dÏr+Wqú
ú	Úôp(lÀÚE‚’�LÕ*MíQcR^£–ççÙÃ•úeþ$T"­*Ìš¶^uº÷@¶#¾&Ýót™7�ÂR]»mh;Ûø°ÒØ�Q¥·‘çþ®"SI-½…×%q|£P^ÆÄ˜ýaƒ(L,dfäoš8ª£ãfç×WÊ¬å¬žŽµ:3ê1êñ-l¤VÍYušËŒ.Jp„lt,<–Á;`ø‡^Ã	Õ£J·ô°Uo}P%aw°â™ŠÛÌ›àDÙÎRõÝ™äÄÙóÛ
eÆHxn;rÎßTå,X=yÒ\«¨E¥‡QÎîñ“'ê‘-âb".Ò:q¦¬gÜjñô>ê†€Ê4Ž9Unb£A…B¹Ú58©˜>2Ë¿
ÍbàÙtkéþ?Z”AÊ(–×£`Ü³bÏtÞ¡–Ãõ(ÿpòQ^xƒÀzu�¾{€r»è^w~óN@ºwÊ™‹;¢jcyI¸«F€á0ßÐó†=Õ³îs«hâŒ1y¯I?@FLP:¹að$ü£üt^Ì[¾}ôQ"xb"\'<¬Ë;ú·1[ó8Š8�!�D\Å•g§Ý€ƒS0‰ ßþ^�°PGDîF‚yåƒ�5Æ�$û<_ÕXj�Ä¤ÕÄ;”î'ßÄ@ÁÐê$_ó+¥3ºW•Mà.¿ƒ?|…ÐTnïLÌ ÑUU‰V)Ÿ}²#öuCÇÝä@]²'Ÿx’¿Ž\”ä=ø+Ânx-Á/ûXŠ.Û9)Ÿ 6ôE‹ßJ3îIøG·öà¨³wôìÅÏei«O:ø¥âROLÔ;%ÆÀ‘ çù‹ƒW¯~gùl%§/üŸÌbS8•j‡Ð«SJÏzN-#J,ÛgÄÄR¬
Ð
¢¬™¼IÔrÛyÍÞ–ð�¶¯íÖ mÑ&�•[C«¡äˆîíªO™›z…BËDãæ2„–·adG
È Ñõò¸s¸»µSa‹·.^<øÞN|åñ}2Ô%ääÏnŠÝëÛ2E>§æ‚wTjg>©2ž.¼eZ•ôÜáÂ‚ò‚¹’_–ñÖLXÁ|LÓŸVéœÚL?k'¤L½]§·š§é�øC¿ŸhH£\ƒOø+²á†àÄÍiž§ô¡×7ø
h}ä	ûÝN�öÏ©EËÍøèªÐÒ¶7$~¼®ê—ætí¾¾æ­Õü‹š7'*oBïöŸQì�ÎÕó8¶ð|ì…˜'v?ºð)`$J•š�/‹â-_ó¦_æë’z¸<�Zë&ÝNþ�PRi“«ÊÓÍTë$T3˜eìxû§L™	œ-Œ?#ÅÐ¹¦õÒ”*Ë/ÆæDXµ^VÔ,oÚ +CYéÔQBWT.§«7>,?¢fYáÝLìC ÌÓšŠzŠz$HÞX•N@±²Sß¨qèI[š`ztzÞä�ÃEˆHÜy�´�Ö¯È…UN<Ï‘ˆçü‰{j‹b¢ÃæUø’‘ëá”Ëvë¸BkŠ—¯�e´
¹i°¼Âz¬…ì(oV£ÝZ}¶àêÏàÿ˜þ€—µ§†ö�­€´éiÓyp°‚¯_VeŒò¿T+=[�Óá�9Z‰0»–9Êˆ¤Â^ÒeÂç&uŒèx6]”À#ydÈè'[�Ž€sÜéD|¨ÂÑ2T`n¥T$gTý‹ªkmv
öl£GüDÂláæ§½ÒP¬”êGðA]h_]b(Sôê#7uOçßÃRµJ2Ÿtµv.ƒáT_Sœ8žÃ­ôIÜ‹±Ã»>Ö_b°}P.»:A®¡Ï-]n šŒäÄ_ÑÓ°všªGë7l{û§Ã/hÛ¶SQz‡
×h®Ñžá¢WÀ%¤µùÕ—À˜ýTârÒ:I�ì5Nw/yï�CP§f(†\èSço›uÓbz×ª«ø}0Ò]¸U¥åšA?ùA²½KxÕ¨þ¾.;Â{’:ÛŠszÌB"*Ø±7�D6è•Ž	ÅßhøŒu»áçÔ'1ú³{¡òNc\
€ŒihCeèè¿Ð·³7QÃàì\DQKnC§ÁÞxì+“ùšâPs\%aç&¢XVÍ¥u‚q7¸ƒ~š«6ú³dÃía$_ÌQ6ºÁD†î÷Fã¡„” `p¸â:w�™Ã–æQótN‰–­ù‚˜¶é’46våë�€ëgGbº®u9÷ÈÆ< Ë¦ÉŽ ^¯ãöÀ¡ú=U1¸ÂÈõÊ†>á@‚U<òF`7†“Ï-P<6Ý4
Š Ež™r�D\å˜ƒ|Q HÉ¾EÁ4Z0rýåûKoÜ#nšöB*ZÄ¸‡±ŽÀ)=pÈ!
æ¬TŽ�OÐ?¬õP%^9†N`ÃR¯2ô9¦å…CHÁ€>ãâ
GÌñŸóZ:7ÁBDèÃ‘ R-™ÐñÔ¦ÕóÝé€×MB9¢®yö$‡Cš@Cr %("JA¿L¡rÇ¾Xõòªi’·B¢’4ŒZ=[	'¦q2#VBš¹¥à[ª6bNŽƒÍ“3�!ICË´uìuýk;ßD(GÉöÎ›[MÑôÜŠÎ—p�F`Œ‘“m�¦‡ÀöÄÕñ®·áØ¾«*§|å†+åd³mFÓ)P`™_‚þ·ý»¯eTá¦h“èD³¸ž\a$„EÕPîÙn´­õ¯Ã4ÑÒ™W3`Î’@å•n¹±d»	þìšfõƒ†M˜^˜�#D…è“£¸RŒväã]ã¶¤÷J.NÜ�È[Ö<û±é `69·³Þ["UÒÛ%˜q|(­ËD$È±¢f)�±XƒÕç?vžï½Øm"�U²!ÄK™-.aƒÒ–ŠŽÅoÊ Fâ×ß^mÿôbwq¥‘(cÛÛÞ=RML¬.cîtŽŽw¶;�âwÅBm½þ
m1¾û`_ÁRâ+þk�œþXúP²0diõr¿:©žWã
ålþh¤Ið÷¤Žq\1•±~˜ëÍýhPFyB©ÖTò³ÆiåótE‹mËqÍ1g´œ%YlžÀ™¢KfyFVÆ7Äà¨…nÿ¬M·ˆZõF/<4PÅLoœÕÇ6¹ð†Öª"1žã 4ý6l™)‰±~Æ@×$öÝ&ƒDý²šÊ‰4‡œ$ß«ˆP¤)ô¯ð–§rE»Ì(ý�P,NØ]•M‡Uý½êÀ«5óu²‰²¹6··pY9-Yðæúý3TÃ{;ý•Æ¤z°Ú(.†2>3äø®’jÂ�ª‚6”™ •áP\. ž#é,pã²¬ò˜ûMý*K¤"Jõ¡?ÄÓ€TMF©æ×eåcüi$ðð6­A›h
š²q§ÐzÄÏ…‚e¨D�cÖƒJXk	Ôª¢ü‚ñ£…yqyŽúµr€%.3`W5`Wa-+lŸkë-.¶eéÊ4nv÷|¬+Ï7÷%ƒ½ôq]é·a¶8)ëéÀ :†
¶Õ‚¼ØTóðÀ‘:/ÞNæÛŠ+ºÃ\ ’P¹rŸÜeTò·Â(3eý�×±EA-7�gœP§aŸG^-=ìª‡±zØsþŸ,Ä
Z¨æ¨‹™Ñ|.SÎ®*„Û\IÎ®cHÞäë¨ß‡k‘¦&æ/4;~’M´H[=•Óþá�ÞG6fr>ž2õBU—³U-¾æš¹h>ç“¹ ®íp-Û!ÏïšŠƒƒjž»D
u«§§_MókÅüZÝÈ¡]mœÇ)$X›�‡iBL(ìÙbèJ·±íT�¯Â‰÷aCÒ’È¥V¢fJo(ÄÍ£ñêé>Q'ð-4š³¼Œñþä~±1–¹ ¦à©å,À“8¨�}�JÁh:åWjSu†lSÓÈ|8#ù(|rÕa'%ŠRÅM£Ë×ú¦!Š�º(Àµƒ…*‹ÍJÅ½dr6íXwÌˆBñ¶f!Ä…p™8£X\äqh@¶œ8§ÕFUnš}C7M¿;ˆb/B–gÙþ­âÿ¡DlœÞuü?µÚ\nPü?øÿV³ÕÂø«ëË÷ñÿî.þŸÙz|ØfÝ‰�Ê_§vŽu¬¿›gáuž›l^¾l�¼¼Ð|y�ó²¡ùrÂð9ññì;ä¢½!Åá¦ÀyØÂ‚.¶Æg�	b.Br^¯§Y�1&­DRI
Q;ÛØTˆ»€Q¸rÒœ‘Hú2W�Ò;ÈG$[Xˆ»¬2Ä¤�¬Èâ±,xã³Í²üÆœêµ§ð©zü	Iû ÆÎ}žÃ‚hüˆÃFu!=ò„ P‡ì.Ê8ê°:§¤:bJ‘üxpÜ9ØßedéL
#wxf_<)¹Jb
7ljØ�­Þ}£é¾<¿5_±óVÑÛ><ÇÔX•3Íjs%ÑäÑ5MæŽ(Qû§/¬ÝLÔ>¼¦¶]øïawã!â£öðvç¤>ø¨cQëù
N|AÓ²¦Jô¼}eCK†ea¹t#²áË´ÕÄòr E!€NW;) 8^ð¦âÑq• ²€&™¢�3	T/v·~Ù­*¸`«êp÷åÁ/»Ÿ¥„0êQ4z»
„U.Ëï£‹Ëª0Fý^‡€~óË³×ÏQrh¤
zþ$„@feì@›`/"Š„ŸuÌtÁ_ð‰�‹±p*PÌk*Lâ8`cæ)­"Ê¢Ñ¤¼\A	ÒÇlHMeU žÐš±q1ÑAž˜¬ñb´É•ø’xi¬Pˆ-%3ªŒËý&8yÓ8‚ŠˆêùÚ<‘Õ¶]^X¶16ä¹^L†­H—tÉ{³H—:‹&‘¢¢-C¡Éð4-ª‡Ù<Æ˜{ÞâžÅ²�v;Ë?À�J•Ê+t˜*ÔÌ+t”*´’-4ÿ—A˜`žÝ~ÿ,ô/~«$¾ 4þ�WÓ2€°¨Ô°†ªO›~ÓÃä½2…èÐWfFš$çõ¹€\
ZòÆl°”ÁN=ÙäÃ„ÒÚz:!;F”
4HN@“¤½JÑèª$¡ù/8Ä<°ëU4õ�S'w5”/ðßÝžiä5º™l ¯ÿ¦æ}ZôNàïù§Åsü;þ´8Æ¿ñ§Åø„ÍñÆüŒá`�Pg4ƒÆIŽø†2vËs¸ŠqW°!ní
¿­£Òñ”Í�‹«m ØLÛ¬ê˜Vô–ß’s¯_ÓÒ¯‡2Rý�1.ÊêƒµÍ7øƒ—8á¸çç�ÊÇA½ŸŽtÓ[ÛÛ»¯Ž;¯^lííÃÍ.�;{‡¶‚ÉV°iP"£ùML?×�öFzÙÌ
óµ¨11ÁR�Ÿè²…õŽÏSN;2&ÉÈçûñÿ÷ø?ÿÃ3Ù~uöï&þoy¹%üßJcymuù¿•æ}ü÷»Œÿ4¤Ù›Dnñ¹?Ô•:$Ú“4QRNVîaÂxp¥BÞìþöjk§ÔY¡ÕXyT¼m@öl'L&…Ö|@ŽX~S±zYqv&±T}«‰U˜’£©ê�´bÈ‹'ŽÎêMkuíÄ„NÃúF†eÃjè äTb
á]ê*ig6$9)‡$ä1þ`�Ò`Î£Óñû²Œ·ôýÂÇÏoNÞ¾ýáKBA‰æ€äöˆyÝÎŒ¥`ÒÛï2êžGÔM,2ÌÚ§×ÄOè¶�{Âë�´F\ˆuN¬ó ~í>}>"…7�ìT�ýÀ!}ÉÈ�)Û–:�ÆcJ¿ýâS)mQ†{å¤=¦|ÎÀk�¬Xõ}¿WÕ64lÙÒ�Ï)¾÷FY|Ä\_¡é´“ºàrÿÃqz.²a—µ©uMŠ==¸
›ðøœ £EÚš/Ù4aÿl#J¸¤‰²Ÿµ�þË îÂqôB3V›üÔ˜¨Ê;Åœââ?OF~Ïü?0iÕàª˜±q´#�ñ‰V£	e6#$›·±vÅrîÊYtjô­±?™Ç$=Œ-Á'XýƒÿÎ·éôà†˜‚‘ÌÏbA|2‹þ¹FUqë•âØ?bÉ(;F]^àïm6ðM¹€ˆ£Úö�n®à�+ô"¦w‘WCØ—F¡
ÞE ŒçæäIºn«ÅÅñZ8nW¬öRæ!Û+ÊCi‚uo‰àu²ÛyE$×2XÞ`(y¢xNqbñDò�ZV(\‘×øØ&Sß�ÖIÞb²MôÛÒ£
ÕS]¨V#µë0BP¨›ˆ²7S#½"…¡�©ë�_•éºE}x~1OÔÀ¡c}¥ž2Œ¸YUqË4¼Xˆ[î¸O1á_KáÇÐY<“ÌãhçßCbÿÍè?ÔQöÇ¾ÿÕ)Àè¿æòŠäÿYY[^k5‘þ[o®ÝÓwñßuÔXž ½¿"a¹¾>H^áiÜØ€Ó³#{™C»˜¤ I�
<ã”¢¨ä2†ŸO“‡¡´!6nH	* M}¾éÑ`$èùc›c”R9DE¶âÅÎ%kñt4Š@]’±,\’‘·ƒº#±æ_ÕDh6,G4ãŽße‹æåçq‡.òDÁHS‡Úss“Ò@-±‡êçMé–¼ŽH¤¸}°tÿÓ(Z"ôrËh‰�})ØºöÄN…Ä„ôa“ìàkOqŠ=eHe|Qí{L~,¡®güÞøè†€Lò‡£É7…#µíP²hÛN¯¸X¹¿MÕÌWïbþ<^æ
ÚI¤iô¼NûH“‰üMÖ¤æXŽÀX¨«§znH&uho\)­¬Þ‰t„Ø{<ý/Ÿö¯ßÇõø¿¹ÒhÎ_k4Z«Ë­Õñÿ­µ•{ü7øŸ=É^¼8ê�Ò·ó“µ‹M¾¾�Ò7'´²¾[äÞ P£Ð#QHV8>kr’¢TÜ°YuáQó1ø\|†FS‘¦M­�½Ãj‚
Ë-*ÏŠl“rš5�\-9–�[:Ý~ñúèx—{Mt©Ñe¦OQ1š­G‰
:ÿ9\r¤jÑ`w·�
k+‰Šv¸å Ô&J•Dm^š*ž£!â­¦Ôþî¯…BÓ<¼Ø)ösç×ƒÃµ‹üK‡Ñ±Þ¾��Šêç=s”z±L/Z+•Š556³ûè\¥Ä�ÊîÑ	G"·™[ñ^JLM;ål²ñlaÒsQkË€;ŸStÛ‹}.J
 GâsÊ]¬dÙ*‡k|á÷Þ<>¡è?ü�Sù8Œ=DMã
Í†£œ’¨H1%ñafI²£4Eé‰ceÉƒT=€‘7+º³P]´�PÞ�%½ûÛñöÖº­6­Áü3x#oÙ¢(]#€ÄØ¥Ê5ôX{Jn ŽùñÖá1—,wåÈ*5ßU=z—ÑXKù8ºÌ�Ù¬‹5¾äàâaýô) „NlK�V²‚l²@3Y�<Y ‘*Ð°>Ï}fð_©ÑÿÅ¾Ñ’™ÞyÀ NnªøºÈá,ðiýÓÚ§ÕO+Ÿ–?µ>5?52Ïˆ®¥ê
ÿgJ¾…ÿ­+2wÅT9oWè÷Ò[µÊ/—LIøïÊ‡…X|Ôà'¸Gâ=�eV,…ßw·V4˜Ð9�uÂ½ClÓ|üÈ¦¥,¼<Ø?þÉÔH×akò´gDå|nœp\ª…�­ßuSÉ‚ÔN¿òw¯·^Yø¹&+?c½Ï£éXÖ:§˜‚ÿƒ»c¡•XïŸ^&§LŒ—{ÙYæ½ý×Ç»™uÖ…)"@v�ésÎ:RIm².)�îÇ•bÚgE‹¸È8¦ÍÌ’	S7ïd"h��é@Å´ãxÑý<‰Œï;J|#bEÑZJŠË3z£L”èæë„¥Äµ–²ÌÛD»î¹/×E;Ü¶ÕÄ#¿xE²÷
Ø™²å6Î­|qØÃ2rðhx²ÍŠb}¿'Ns&Æ—º˜FëoìþÆŸÄgM¾hßNYíÞ&_ÙŸP´,1‡âÐ¨4ÖS ¦…~ËPï¦Ã‘¹Ù/ü'<ãî`ŽhvòÔCÌä–Þá`÷%SsÆh!çþó»0$º8¡°Ïh7GäÆN£:‡ý@Ø¸ÂÄ&9-tÐ±¹¬¶]ºÐÒk9õÂq|�_Mß+jß8üj:B•q®•ëš€“Þ×œî8‰³3�¼á#Nb3Šu§KœÅØ¥œÚ#3ªüXGa=\XrŠœ™Ó-©ãZ­¦z‰®áNàºMÖ?ò”Éd›€‰¦Þj©#é–=¿F˜mkE×XâPU9ÐMkê'øé‚±¡¢Z�\Ïí ×ó¯ƒÓàŒFµÂ},·ð
¹»Œ9ë~~ŠÃJkô]éÑýp
mÊ£\^·@–³=Q¼"åáú’Ö´™ˆBsÒ�NC®ªüXÞ»(x§þàM³©ÏëÊ2C
½·Å›"oiø€Õm´"¤¤B™9"²¡¢k-;ÃSþ—y$>o>šêËXŠ:ÇÓ¡*£¬£SVò o8�žúRq*>—P×`›K9ªk«ªI±(œ,CŸ×'µ7‘³{@ft$-ÓÚÇ¯†ŠaÜ÷ù#¹ñSK�YÕá–‘Ö¯kàÉÓ¼ž"zeÏÚ#¹
>�£³±7Ì©¹öG
Ss½¡Ž›pHyª¿Ðìì¡cõßlõ–:nÍ¨ž?p¨<´õWÔñò†t§akB—9õßMÃ÷o€�W5µ¾Æ§t}
m¿½€ÄÔ´’Â)ŽÆ°ÈÌÎà
Õž~pXËDg”-rðü9:sÔwÐmÎ„™÷eýïÌ
REm&!íÁ ·ÅlÈîÜõÉ+Ü½êÉáŸãqvÑê@>|Áuø"7$²‘9š¾Gƒ^pÇ´£°Fõ/kïÇÎñï¯vÛE$4äV6ÒZj½(ì©0>û÷%½Ëë´.Ð²¥[Çp‰¯4­)€¨;¸Z¦ËEtÊxÃSMÄÉ}§èe%¯U¥]Ž|;÷c�baŠÀë¹¦¾0~}Dr3«�ðâ÷r~Ð–ÝÕ¦+ú/PuüÃõZ&ìvŽµ�"k›³˜LsýàCgØ½Ôßá=É Eê~ hFí¢3¤³fë%Œ4ö-ÊbQºÌe+N–Ä²¥ôÙø\�k†ºÙƒÑ)ÜI¿xp5!‰Tt÷uFPÇvŽÉ›>¨Ó1`‚ZÃvMÃÚR ,îäTÐ8�¨ß;G[%²\b%I¥jâãO1gª2PUÃ÷â‘Î’#±¬®`°ö”Öt=cU•HŠ¦;ö|® f–¶‹ï‰µA¶Jêôñé´¯ûº =`8#»‰Èkñã…'š#ëéå›pü0Õ¥h`–YÈg@¥æ.ßŸX¯?½(ß`¦îëêR»:Àø¨¦ñhü?b û‹óÐå«×PŒá-ŒÇŸÔL{“ÉUÙ=aƒè,+mdø×V5Ý7�VµŠ¦ô½*ìß]ÿ‡ÈõXÿÞ¨ÿ[m®¶Øþc½Õ\_&ý_³µ~¯ÿ»;ûß=Øzà×�öB£0c®�ì~=<D$¿ŽþN�ÉØù‡£cKÀ Eâ÷s'wª‰�FzfxœdÐÍ‘?AÛâS •Î±- ÎÎøÎ¾Ðw¶c„ÜÀÚÿ)Ž«Ö�Bî™ €iÕÛy�^ëa
–Æ XÆA3
(9ÍÕ�Š˜î¹8@iÌÎîvò¦«’�u4�HÎ‡vã!kásH|N<
±’¤û¾9£-e¤¹Ù­+S�§›RÜæ±íÍÞ¶b8d_Œ0Äs7Å}û¡×Ï¼ãø&dväØ€Óä,}¶ÐÁ�V‡‡‡BXLGL£‰¦�kêBÓìl{x£Êv‰>‡Ã`Z¹1åúpbpY>ãõ‹�íß_‹Ió é°ƒ\†–°’”'Ã€Àj³ªìyÈÿÕ‡óà{öÌäÄôt<>Ž«.R l0Çì)+•] RGÁ�Çz@,¡Ó B/Ë1Eq&ÖÆ)wý<º}ÃÇb£€<šÁvL)/9¨êì"6ÖeFHä·tfÜ�;L{§'<Ëª}B'â�ï+éÆ·^ŒÌôó˜~qÈwZØ}8GÓ³sJ‡AKF†\”¶#ó�…@ä/*ÃÄ¨Ë
Nè1öù?¢¼åÌ†í(72IÞÄK´ZLeÃBÄ”“(-±¹nöÛáæ1²Êh7‹X~K¾uüá	j91³*þpôfµÉ)v0Á
E�Ã§¾Úzœ¡
9m£“OWVÞàÒ»Š9.'tP£’®¨4{UM
ãÿ(	þåU<«rBæSáá7hðb—oŠ6Ü€…ür‘œO
%Z‚’»à€4OšË¼f´:p`y›	eÆvUS™VØ-œr¾ÐH*ÆöÐæzDsKÊÀQ+áæógkÌø‘pkUUÚ!±óüÃîÆ<g	F5S2?%ah
FEn)„º¬š�ìïáyS8î6‡2$�¢`/l]øüpw·<'§×‰R%þðh†Ïý±Ï¯�f¥×&Á³BÏQ’†˜Žt }“`ÌßvžcŒD=ÿßzýd5IÝÆ«ÌÇ+AL—„UÔU–“`[2z2–4ÅŽŒüœÈ%êBï}~7ƒ)éÄîÄàëmî¯¬tÉá“5Î¹`ì!JßU¾xä)(!×€
¸M,h÷>½ŸeleÏÍ|¥»CçeÄ.ê†Ž§áû0º”ÃGbÅF (5ô/Q}“ŠQ'†3ýq÷à¥˜ÙžÀu£JÛ"{ÊÜÕ°Ú8rrÂ¢ó!ÁÐDÜTòÆoM^ÙoŠ%$Ú±)>KL£àÆ• Q›:½QæLåç0s`O°œ`›YZ£‘ÏI´wfËëM5hk¡sü^Ë˜$ÐL+­¶†bVÞ©C=ê¤º™Œ`�â¥dð)þlXÂ�ÎEyŽÞÂ	Bú@- I€µ)Ô8\üÖD¿br…H	íø€¨ˆôÊÅøy‡­½òÛ}¶ãN¼ûýX"Uð‹gDËµÄ¯4E2'Ä‰ù ƒ…±æ0Û»{=É61Ö™#PçEÐøhŽ/¦¸-e¦YÐ=9†‰Ð©=X/ÍdK=ul?+9q	ìáw�@1.äip–8ýi�àq„£óÖ�h¼uf¼…BèÌ©ÿ]'0Ò#FøÐß–±+ž†«)�ZœÔS:”‚Óèr•Ö‚[Ñ†�¶Fó:öc3ùzà‡ÉN�–F—½N²”UöH)dYØ¢¾e_&÷h)÷Ó˜å:„Š3&‰{HÅ�H
K*c23Ä™¬ù
D»þÈ2PØ½|ytÏÑÑ£ŠúÆ†xO®«¨ÙXßÎAáÒ`*Ï9«–dØÀh7w7é(ÔÙöCQlÀìŽPCÚÌ£’·=T‚í*yCßÅB
žŒE³ZR™�ÈÛ3&Ùˆäï@u?ƒtëqº`Ç„@](—Ic°Paec£Î%*DÛ}.äŸ¨D¸ëºV-Ú™êÕJ¯ß¢JNfA%VÏ8xº›\apî—ÓDáƒø��æDso,¹Ð[-Âæc¿8žÑ…©I†s ïg )òÀ)=ƒE•Ü=N;šÜñ…ì®ÁNÒ½ß2¯Ã5Œòì</
T‡çègý0sçrRq–~å BL�Ð „rªò" ÄéaO
É²�â­`=·ßü‰4­ù£Ý¹íÒ±M
¿–YÅZr+j)÷Ê­ƒz