petera@utcsri.UUCP (Smith) (04/27/86)
;; MATCH.L for PC-LISP.EXE (V2.10)
;; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;; A DEDUCTIVE DATA BASE RETRIEVER AS PER LISPcraft CHAPTERS 21&22
;; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;; This file called match.l implements all of the functions in
;; chapters 21 and 22 of LISPcraft by R.Wilensky. Together they form
;; a deductive data base retriever with two access functions. One is
;; called (insert) and the other (retrieve). Insert takes implications
;; and base cases and inserts them into the given data base. (retrieve)
;; returns a list of matches made with the data base and any bindings
;; neccssary to make the match true. Hence an output like (nil) means
;; one match requiring no bindings. The functions have been slightly
;; modified to run with PC-LISP. Note that they require the PC-LISP.L
;; file to be loaded specificially for the let macro and a few other
;; goodies. If you put PC-LISP.L in the current directory it will be
;; automatically loaded. Or you can put it in a library directory, see
;; the (load) function.
;;
;; March 15 1986
;; Peter Ashwood-Smith
;;
;; Example queries:
;; (mammal Fido) gives (nil) meaning Yes he is a mammal
;; (dog ?x) gives (?x Fido) meaning Yes if (?x is Fido)
;; (mammal ?x) etc.. you get the idea.
;; (? Fido)
;;
;; You really cannot get much out of this example unless you get
;; the LISPcraft book. Have Fun!
;;
;; Main processing Loop - input a data base query, expand the variables
;; ?x to (*var* x) as the read macro in LISPcraft page 295 would do then
;; pass the request to the (retrieve) function.
;;
(defun ProcessQueries (data-base)
(prog (InputQuery)
loop (patom '|query?|)
(setq InputQuery (read))
(cond ((null InputQuery) (return)))
(setq InputQuery (ExpandVariables InputQuery))
(patom '|ans=|)
(print (CompressVariables (retrieve InputQuery data-base)))
(patom (ascii 10))
(go loop)
)
)
;;
;; Function (ExpandVariables List)
;; Make atoms like ?a become lists like (*var* a) this replaces the
;; read macro in LISPcraft that PC-LISP does not have. Operate recursively
;; as follows. A null list has no expansion. An atom of the form ?xyz is
;; turned into (*var* xyz) by the (cons '*var* ...) expression. If the
;; atom is of the form xyz then it is returned untouched. A list expansion
;; is just the expansion of the car cons'ed with the expansion of the cdr.
;;
(defun ExpandVariables (List)
(cond ((null List) ())
((atom List)
(cond ((eq '? (car (explode List)))
(cons '*var* (list(implode(cdr(explode List)))))
)
(t List)
)
)
(t (cons(ExpandVariables(car List))(ExpandVariables (cdr List))))
)
)
;;
;; Opposite of Expand Variables - turn list elements like (*var* x) into
;; ?x
;;
(defun CompressVariables (List)
(cond ((null List) ())
((atom List) List)
((eq (car List) '*var*)
(implode (list '? (cadr List)))
)
(t (cons(CompressVariables(car List))(CompressVariables (cdr List))))
)
)
;;
;; top level matcher function, just drives the recursive next level
;; by setting bindings to nil.
;;
(defun match (pattern1 pattern2)
(match-with-bindings pattern1 pattern2 nil)
)
(defun match-with-bindings (pattern1 pattern2 bindings)
(cond ((pattern-var-p pattern1)
(variable-match pattern1 pattern2 bindings)
)
((pattern-var-p pattern2)
(variable-match pattern2 pattern1 bindings)
)
((atom pattern1)
(cond ((eq pattern1 pattern2)
(list bindings)
)
)
)
((atom pattern2) nil)
(t (let ((car-result
(match-with-bindings
(car pattern1)(car pattern2) bindings)))
(and car-result
(match-with-bindings
(cdr pattern1)
(cdr pattern2)
(car car-result)
)
)
)
)
)
)
(defun variable-match (pattern-var item bindings)
(cond ((equal pattern-var item) (list bindings))
(t (let ((var-binding (get-binding pattern-var bindings)))
(cond (var-binding
(match-with-bindings var-binding item bindings))
((not (contained-in pattern-var item bindings))
(list (add-binding pattern-var item bindings)))
)
)
)
)
)
(defun contained-in (pattern-var item bindings)
(cond ((atom item) nil)
((pattern-var-p item)
(or (equal pattern-var item)
(contained-in pattern-var
(get-binding item bindings)
bindings)
)
)
(t (or (contained-in pattern-var (car item) bindings)
(contained-in pattern-var (cdr item) bindings)
)
)
)
)
(defun add-binding (pattern-var item bindings)
(cons (list pattern-var item) bindings)
)
(defun get-binding (pattern-var bindings)
(cadr (assoc pattern-var bindings))
)
(defun pattern-var-p (item)
(and (listp item) (eq '*var* (car item)))
)
;;
;; Fast Data Base Manager Operations. Using matcher function above to perform
;; deductive retreival. Indexing as per LISPcraft chapter 22.
;;
(defun replace-variables(item)
(let ((!bindings ()))
(replace-variables-with-bindings item)))
(defun replace-variables-with-bindings(item)
(cond ((atom item) item)
((pattern-var-p item)
(let ((var-binding (get-binding item !bindings)))
(cond (var-binding)
(t (let ((newvar (makevar (gensym 'var))))
(setq !bindings
(add-binding item newvar !bindings))
newvar))
)
)
)
(t (cons (replace-variables-with-bindings (car item))
(replace-variables-with-bindings (cdr item))
)
)
)
)
(defun makevar (atom)
(list '*var* atom)
)
(defun query (request data-base)
(apply 'append (mapcar '(lambda(item)(match item request))
data-base
)
)
)
(defun index (item data-base)
(let ((place (cond ((atom (car item)) (car item))
((pattern-var-p (car item)) '*var*)
(t '*list*)
)
)
)
(putprop place (cons (replace-variables item)(get place data-base))
data-base)
(putprop data-base
(enter place (get data-base '*keys*))
'*keys*)
)
)
(defun enter (e l)
(cond ((not (memq e l)) (cons e l))
(t l)
)
)
(defun fast-query (request data-base)
(cond ((pattern-var-p (car request))
(apply 'append
(mapcar '(lambda(key)(query request (get key data-base)))
(get data-base '*keys*)
)
)
)
(t (append
(query request (get (cond ((atom (car request))
(car request)
)
(t '*list*)
)
data-base
)
)
(query request (get '*var* data-base))
)
)
)
)
;;
;; deductive retreiver (LISPcraft page 314) use backward chaining to establish
;; bindings.
;;
(defun retrieve (request data-base)
(append
(fast-query request data-base)
(apply 'append
(mapcar '(lambda(bindings)
(retrieve
(substitute-vars
(get-binding '(*var* antecedent) bindings)
bindings)
data-base))
(fast-query (list '<- request '(*var* antecedent))
data-base)
)
)
)
)
;;
;; substitute variables for bindings recursively. LISPcraft page 315.
;;
(defun substitute-vars (item bindings)
(cond ((atom item) item)
((pattern-var-p item)
(let ((binding (get-binding item bindings)))
(cond (binding (substitute-vars binding bindings))
(t item)
)
)
)
(t (cons (substitute-vars (car item) bindings)
(substitute-vars (cdr item) bindings)
)
)
)
)
;; insert item into database - just expand the ?x forms to (*var* x) in the
;; same manner that the read macro in LISPcraft page 305 would do then call
;; the index function to put the actual item into the data base.
(defun insert (item db) (index (ExpandVariables item) db))
;;
;; page 315 of LISPcraft add too !d-b1!
;; by calling index to insert the implications and base cases.
;;
(insert '(<- (scales ?x) (fish ?x)) '!d-b1!) ; fishes have scales
(insert '(<- (fins ?x) (fish ?x)) '!d-b1!) ; fishes have fins
(insert '(<- (legs ?x) (mammal ?x)) '!d-b1!) ; some mammals have legs
(insert '(<- (mammal ?x) (dog ?x)) '!d-b1!) ; a dog is a mammal
(insert '(<- (dog ?x) (poodle ?x)) '!d-b1!) ; a poodle is a dog
(insert '(poodle Fido) '!d-b1!) ; fido is a poodle
(insert '(horse Terry) '!d-b1!) ; terry is a horse
(insert '(fish Eric) '!d-b1!) ; Eric is a fish
;;
;; start processing queries from data base #1 which was entered above
;; some good things to try are (mammal Fido) which will return (nil)
;; meaning that one match was found needing no bindings to make it true.
;; this was established via the chain (poodle Fido)-->(dog Fido)-->
;; (mammal Fido).
;;
(ProcessQueries '!d-b1!)petera@utcsri.UUCP (Smith) (04/27/86)
;; HANOI.L for PC-LISP.EXE (V2.10)
;; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;; Another program that was found with some XLISP stuff and modified to
;; run under PC-LISP. Again I do not know who the author is.
;;
;; Peter Ashwood-Smith
;; April 2nd, 1986
;; Good ol towers of hanoi
;;
;; Usage:
;; (hanoi <n>)
;; <n> - an integer the number of discs
(defun hanoi(n)
( transfer 'A 'B 'C n ))
(defun print-move ( from to )
(patom '|Move Disk From |)
(patom from)
(patom '| To |)
(patom to)
(patom (ascii 10))
)
(defun transfer ( from to via n )
(cond ((equal n 1) (print-move from to ))
(t (prog () (transfer from via to (- n 1))
(print-move from to)
(transfer via to from (- n 1))))))
(hanoi 4) ; start things goingpetera@utcsri.UUCP (Smith) (04/27/86)
;
; Place n queens on a board (graphical version)
; See Winston and Horn Ch. 11
;
; Usage:
; (queens <n>)
; where <n> is an integer -- the size of the board - try (queens 4)
;
; I do not know who the original Author of this is but it was found with some
; XLISP example lisp programs. This has been slightly modified to run on
; PC-LISP V2.10.
;
; Peter Ashwood-Smith
; April 2nd, 1986
; Do two queens threaten each other ?
(defun threat (i j a b)
(or (= i a) ;Same row
(= j b) ;Same column
(= (- i j) (- a b)) ;One diag.
(= (+ i j) (+ a b)))) ;the other diagonal
; Is poistion (n,m) on the board safe for a queen ?
(defun conflict (n m board)
(cond ((null board) nil)
((threat n m (caar board) (cadar board)) t)
(t (conflict n m (cdr board)))))
; Place queens on a board of size SIZE
(defun queens (size)
(prog (n m board soln)
(setq soln 0) ;Solution #
(setq board ())
(setq n 1) ;Try the first row
loop-n
(setq m 1) ;Column 1
loop-m
(cond ((conflict n m board) (go un-do-m))) ;Check for conflict
(setq board (cons (list n m) board)) ; Add queen to board
(cond ((> (setq n (1+ n)) size) ; Placed N queens ?
(print-board (reverse board) (setq soln (1+ soln))))) ; Print it
(go loop-n) ; Next row which column?
un-do-n
(cond ((null board) (return 'Done))) ; Tried all possibilities
(setq m (cadar board)) ; No, Undo last queen placed
(setq n (caar board))
(setq board (cdr board))
un-do-m
(cond ((> (setq m (1+ m)) size) ; Go try next column
(go un-do-n))
(t (go loop-m)))))
;Print a board
(defun print-board (board soln)
(prog (size)
(setq size (length board)) ;we can find our own size
(#scrmde# 2) ;clear the screen
(patom(ascii 10))
(patom (ascii 9)) (patom(ascii 9))
(patom '|Solution: |)
(print soln)
(patom (ascii 10)) (patom(ascii 10))
(patom (ascii 9))
(print-header size 1)
(patom (ascii 10))
(print-board-aux board size 1)
(patom (ascii 10))
)
)
; Put Column #'s on top
(defun print-header (size n)
(cond ((> n size) (patom (ascii 10)))
(t (prog () (patom n)
(patom '| |)
(print-header size (1+ n))))))
(defun print-board-aux (board size row)
(patom (ascii 10))
(cond ((null board) ())
(t (prog ()
(patom row) ;print the row #
(patom (ascii 9))
(print-board-row (cadar board) size 1) ;Print the row
(print-board-aux (cdr board) size (1+ row)))))) ;Next row
(defun print-board-row (column size n)
(cond ((> n size)())
(t (prog ()
(cond ((equal column n) (patom 'Q))
(t (patom '|.|)))
(patom '| |)
(print-board-row column size (1+ n))))))petera@utcsri.UUCP (Smith) (04/27/86)
;; DRAGON.L FOR PC-LISP V2.10
;; ~~~~~~~~~~~~~~~~~~~~~~~~~~
;; Draw an Nth order Dragon Curve requires Turtle.l routines to run.
;; Taken From Byte April 1986. Try (DragonCurve 16) then put on supper,
;; watch the news and come back in an hour and see the results. It takes
;; about 1/2 hour on my machine so on a normal IBM-PC it should take about
;; an 1.5 hours.
;;
;; Peter Ashwood-Smith.
;; April 1986
;;
;; P.S - This dragon is nicknamed "spot"
(load 'turtle)
(defun Dragon(sign level)
(cond ((zerop level) (TurtleForward Global_Step_Size))
(t (setq level (1- level))
(TurtleRight (times 45 sign))
(Dragon -1 level)
(TurtleLeft (times 90 sign))
(Dragon 1 level)
(TurtleRight (times 45 sign))
)
)
)
(defun DragonCurve (n)
(setq Global_Step_Size 1) ; StepSize is global variable
(TurtleGraphicsUp)
(TurtleCenter)
(TurtleGoTo 330 50)
(TurtleRight 30) ; angle the serpent a bit
(Dragon 1 n)
(gc)
)
petera@utcsri.UUCP (Smith) (04/27/86)
;; TURTLE.L for PC-LISP.EXE V2.10
;; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;; A set of turtle graphics primitives to demonstrate PC-LISP's BIOS
;; graphics routines. These routines are pretty self explanitory. The first
;; 5 defun's define the primitives, next are a set of routines to draw things
;; like squares, triangles etc. Try the function (GraphicsDemo). It will
;; draw Squirals, Trianglerals, etc. Note that the BIOS line drawing is really
;; slow. This is because the BIOS 'set dot/pixel' routine is used for every
;; point in a line. Using the BIOS has the advantage however of portability,
;; these routines work on virtually every MS-DOS machine. The global variable
;; !Mode controls the graphics resolution that will be used. It is set by
;; default to 6 I set it to 8 or 9 for my 2000 but these routines will not
;; support the lower resolution modes.
;;
;; Peter Ashwood-Smith
;; April 2nd, 1986
;;
(setq !Mode 6) ; default setting
(defun TurtleGraphicsUp()
(#scrmde# !Mode)(#scrsap# 0)
(cond ((= !Mode 6) ; 640x200 B&W mode
(setq CenterX 100 CenterY 100 Scale 3.2 Lfactor 1)
(TurtleCenter))
((= !Mode 7)
(patom '|mode 7 not allowed|))
((or (= !Mode 8) (= !Mode 9)) ; 640x400 modes
(setq CenterX 266 CenterY 200 Scale 1.2 Lfactor 2)
(TurtleCenter))
(t (patom '|unsupported mode|))
)
)
(defun TurtleGraphicsDown() (#scrmde# 2))
(defun TurtleCenter() (setq Lastx CenterX Lasty CenterY Heading 1.570796372))
(defun TurtleRight(n) (setq Heading (plus Heading (times n 0.01745329))))
(defun TurtleLeft(n) (setq Heading (diff Heading (times n 0.01745329))))
(defun TurtleGoTo(x y) (setq Lastx (quotient x Scale) Lasty (times y Lfactor) ))
(defun TurtleForward(n)
(setq n (times n Lfactor) Newx(plus Lastx(times(cos Heading)n))Newy(plus Lasty(times(sin Heading)n)))
(#scrline#(times Lastx Scale) Lasty (times Newx Scale) Newy 1)
(setq Lastx Newx Lasty Newy)
)
;
; end of Turtle Graphics primitives, start of Graphics demonstration code
; you can cut this out if you like and leave the Turtle primitives intact.
;
(defun Line_T(n)
(TurtleForward n) (TurtleRight 180)
(TurtleForward (quotient n 4))
)
(defun Square(n)
(TurtleForward n) (TurtleRight 90)
(TurtleForward n) (TurtleRight 90)
(TurtleForward n) (TurtleRight 90)
(TurtleForward n)
)
(defun Triangle(n)
(TurtleForward n) (TurtleRight 120)
(TurtleForward n) (TurtleRight 120)
(TurtleForward n)
)
(defun Make(ObjectFunc Size times skew)
(prog()
TOP:(cond ((zerop times) (return)))
(ObjectFunc Size)
(TurtleRight skew)
(setq times (1- times))
(go TOP:)
)
)
(defun GraphicsDemo()
(TurtleGraphicsUp)
(Make Square 40 18 5) (Make Square 60 18 5)
(gc) ; idle work
(TurtleGraphicsUp)
(Make Triangle 40 18 5) (Make Triangle 60 18 5)
(gc) ; idle work
(TurtleGraphicsUp)
(Make Line_T 80 50 10)
(gc) ; idle work
(TurtleGraphicsDown)
)petera@utcsri.UUCP (Smith) (04/27/86)
;; PC-LISP.L for PC-LISP.EXE V2.10
;; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;; A small library of functions to help fill in the gap between PC and
;; Franz Lisp. These functions are for learning purposes only are not very
;; effectient or very robust.
;;
;; This file is automatically loaded by PC-LISP.EXE. It should either
;; be located in the current working directory, or in a library directory
;; whose path is set in the LISP%LIB environment variable. All load files
;; should be put in your LISP%LIB directory. You may also want to strip
;; the comments out to make it load faster, especially off floppies.
;;
;; Peter Ashwood-Smith
;; April 1986
;;
(setq poport (fileopen 'con: 'w)) ; LISP standard output port
(setq piport (fileopen 'con: 'r)) ; LISP standard input port
(setq errport (fileopen 'con: 'w)) ; LISP standard error port
;; Pretty Print: (pp [(F file) (E expr) (P port)] symbol)
;; ~~~~~~~~~~~~
;; Print in a readable way the function associated with 'symbol'. If
;; the parameter (F file) is specified the output goes to file 'file. If
;; the parameter (P port) is specified the output goes to the open port
;; 'port'. If the parameter (E expr) is specified the expression 'expr'
;; is evaluated before the function is pretty printed.
(defun pp fexpr(l)
(prog (expr name port alt)
(setq port poport)
(cond ((= (length l) 1) (setq name (car l)))
((= (length l) 2) (setq name (cadr l) alt (car l)))
(t (return nil))
)
(cond ((null (getd name)) (return nil)))
(setq expr (cons 'def (cons name (list (getd name)))))
(cond ((null alt) (go SKIP)))
(cond ((eq (car alt) 'F) (setq port (fileopen (cadr alt) 'w)))
((eq (car alt) 'P) (setq port (cadr alt)))
((eq (car alt) 'E) (eval (cadr alt)))
(t (return nil)))
(cond ((null port) (patom '|cannot open port|)
(patom (ascii 10))
(return nil)))
SKIP (pp-form expr port 0)
(cond ((not (equal port poport)) (close port)))
(return t)
)
)
;; macro : (let ((p1 v1)(p2 v2)...(pn vn)) e1 e2 ... en)
;; ~~~~~
;; Let macro introduces local variables. Much used in Franz code it
;; basically creates a lambda expression of the form:
;;
;; ((lambda(p1 p2 ... pn) e1 e2 ... en) v1 v2 ...vn)
;;
(defun let macro(x)
(cons (append (cons 'lambda ; ((lambda ..rest..
(list (mapcar 'car (cadr x)))) ; ((p1 p2...pn))
(cddr x)) ; (e1 e1...en)
(mapcar 'cadr (cadr x)) ; (v1 v2...vn)
)
)
;; ----------- ASSORTED PREDICATES ETC ------------
(defun tailp(l1 l2)(cond ((null l2) nil)((eq l1 l2) l1)(t(tailp l1(cdr l2]
(defun arrayp(x) nil)
(defun bcdp(x) nil)
(defun bigp(x) nil)
(defun dtpr(x) (and (listp x) (not (null x))))
(defun consp(x) (and (listp x) (not (null x))))
(defun litatom(n) (and(atom n)(not(floatp n]
(defun purep(n)(or(eq n t)(eq n nil)(eq n 'lambda)(eq n 'nlambda)(eq n 'macro]
(defun symbolp(n) (litatom n))
(defun valuep(n) nil)
(defun vectorp(n) nil)
(defun typep(n)(type n))
(defun eqstr(a b)(equal a b))
(defun neq(a b)(not(eq a b)))
(defun nequal(a b)(not(equal a b)))
(defun append1(a b)(append a (list b)))
(defun ncons(a)(cons a nil))
(defun xcons(a b)(cons b a))
(defun nthelem(n l) (nth (- n 1) l))
(defun minus(n)(- 0 n))
(defun onep(n)(= 1 n))
(defun infile(f)(fileopen f 'r)) petera@utcsri.UUCP (Smith) (04/27/86)
[ line eater ]
[ PC-LISP.DOC (part 2 of 2) ]
---------------------------- CUT HERE ---------------------------
given and end of file is read the read function will return nil.
(readc [p1 [s1]])
~~~~~~~~~~~~~~~~~
Reads the next character from p1 or from the standard input
if p1 is not given and returns it as an atom with a single
character name. If s1 is given and end of file is read the readc
function will return s1. If s1 is not given and end of file is
read the readc function will return nil.
(sys:unlink h1)
~~~~~~~~~~~~~~~
Will erase the file whose name is the print name of atom h1.
If the erase is successful a value of 0 is returned. If the erase
is unsuccessful a value of -1 is returned.
20
FILE I/O FUNCTIONS (CONT'D)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
(truename p1)
~~~~~~~~~~~~~
Will return an atom whose print name is the same as the name
of the file associated with port p1. This is just the same as the
value printed between the % and @ signs when a port is printed.
(flatsize s1 [x1])
~~~~~~~~~~~~~~~~~~
Returns the number of character positions necessary to print
s1 using the call (print s1). If x1 is present then flatsize will
stop computing the output size of s1 as soon as it determines
that the size is larger than x1. This feature is useful if you
want to see if something will fit in some small given amount of
space but not knowing if the list is very big or not.
(flatc s1 [x1])
~~~~~~~~~~~~~~~
Returns the number of character positions necessary to print
s1 using the call (patom s1). x1 is the same as in flatsize.
(pp-form s1 [ p1 [x1] ] )
~~~~~~~~~~~~~~~~~~~~~~~~~
Causes the expression s1 to be pretty-printed on port p1
indented by x1 spaces. If p1 is absent the standard output is
assumed. If x1 is absent an indent of 0 is assumed. If s1
contains a list such as (prog .... label1 ... label2...) the
normal indenting will be ignored for label1 & label2 etc. This
causes the labels to stand out. For example IF the following
function were present in PC-LISP then I could run pp-form:
-->(pp-form (getd 'character-index-written-in-lisp))
(lambda (a c)
(prog (n)
(setq n 1 a (explode a))
(cond ((fixp c) (setq c (ascii c))))
nxt:
(cond ((null a) (return nil)))
(cond ((eq (car a) c) (return n)))
(setq n (1+ n) a (cdr a))
(go nxt:)))
Note that the PC-LISP.L file contains a definition of pp,
the LISP general function pretty printer. It makes use of pp-
form to get its work done. I will not describe it here but it is
fully described in LISPcraft.
21
FUNCTIONS WITH SIDE EFFECTS OR THAT ARE EFFECTED BY SYSTEM
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
These functions will either have an effect on the way the
system behaves in the future or will give you a result about the
way the system has behaved in the past and future calls will not
necessarily give the same results.
(def *a1* *l1*)
~~~~~~~~~~~~~~~
a1 is a function name and l1 is a lambda, nlambda or macro
body. The body is associated with the atom a1 from now on and can
be used as a user defined function. Def returns a1.
-->(def first (lambda(x)(car x)))
-->(def second (lambda(x)(first(cdr x))))
-->(def sideff (lambda(x)(print x)(caddar x))))
-->(def ADDEM (nlambda(l)(eval(cons '+ l))))
-->(def firstm (macro(l)(cons 'car (cdr l))))
(defun *a1* [*a2*] *l1* *s1* *s2* ....*sN*)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Defun will do the same job as "def" except that it will
build the lambda or nlambda expression for you. a1 is the name of
the function. a2 if present must be one of expr or fexpr. If it
is not present it defaults to expr. l1 is the list of formal
parameters which for an fexpr (nlambda) should contain one atom
formal parameter name. s1...sn are bodies for the lambda or
nlambda expression. The following example produces the same
effects as the above "def" calls. Defun returns the atom name of
the function that it defines. See MACROS for (defun x macro...)
-->(defun first(x)(car x))
-->(defun second(x)(first(cdr x)))
-->(defun sideff(x)(print x)(caddar x)))
-->(defun ADDEM fexpr(l)(eval(cons '+ l)))
-->(defun firstm macro(l)(cons 'car (cdr l)))
(exit)
~~~~~~
The LISP interpreter will exit to MSDOS. Depending on how
big you set LISP%MEM MSDOS may ask for a system disk to reload
COMMAND.COM. Note that the video mode will be left alone if you
call exit. But if you leave via CONTROL-Z the video mode will be
set to 80x25B&W. (Only if you have made a call to (#scrmde#)).
(gc)
~~~~
Starts garbage collection of alpha and cell space. Returns t
(gensym [h1])
~~~~~~~~~~~~~
Returns and interns a guaranteed new alpha atom whose print
name is Xnnnn where nnnn is some base 10 integer and X is: 'g' if
h1 is not present, the print name of h1 if h1 is a symbol, or the
string h1 if h1 is a string.
22
FUNCTIONS WITH SIDE EFFECTS OR THAT ARE EFFECTED BY SYSTEM
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CONT'D
~~~~~~
(get a1 a2)
~~~~~~~~~~~
Will return the value associated with property key a2 in
a1's property list. This value will have been set by a previous
call to (putprop a1 s1 a2). Example:
-->(get 'frank 'lastname)
(getd a1)
~~~~~~~~~
Will return the lambda, nlambda or macro expression that is
associated with a1 or nil if no such expression is associated
with a1.
(getenv h1)
~~~~~~~~~~~
Will return an atom whose print name is the string set by
environment variable h1. For example we can get the PATH variable
setting by evaluating (getenv 'PATH). Note that these must be in
upper case because MS-DOS converts the variable names to upper.
(hashtabstat)
~~~~~~~~~~~~~
Will return a list containing 503 fixnums. Each of these
represents the number of elements in the bucket for that hash
location in the heap hash table. 503 is the size of the hash
table. This is not especially useful for you but it gives me a
way of checking how the hashing function is distributing the
heap using cells. Heap using cells are symbol, string and hunk.
The cell itself is allocated from the alpha or other memory
blocks while its variable length space is allocated from the
heap. Hence this table contains the oblist plus strings and
hunks. Note however that unlike symbols, strings and hunks are
not unique objects.
(memstat) { not present in Franz }
~~~~~~~~~
Returns three fixnums. The first is the percentage of cell
space that is in use. The second is the percentage of alpha cell
space and the third is the percentage of heap space in use. When
any of these reach 100%, garbage collection will occur. Alpha and
cell space is collected together. Heap space is only collected
when you run out. After garbage collection you will see these
three percentages drop. The alpha and cell percentages should
drop to tell you how much memory is actually in use at that
moment. The heap space when compacted and gathered will not
necessarily drop to indicate how much you really have left. This
is because heap space is gathered in blocks of 16K, not all at
once as with atoms and cells. So, there will almost certainly be
more than 20% free heap space in other non compacted blocks even
if memstat reports 80% of the heap space is in use.
23
FUNCTIONS WITH SIDE EFFECTS OR THAT ARE EFFECTED BY SYSTEM
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CONT'D
~~~~~~
(oblist)
~~~~~~~~
Returns a list of most known symbols in the system at the
current moment. Note that if you call oblist and assign the
result somewhere you will cause every one of those objects to be
kept by the system. If there are lots of large alpha atoms the
heap and alpha space will be tied up until you set the assigned
variable to some other value. Several special internal atoms are
not placed in the returned list to keep them out of user code.
(plist a1)
~~~~~~~~~~
Will return the property list for atom a1. The property list
is of the form ((ke1 . value1)(key2 . value2)...(keyn . valuen)).
Note that plist returns a top level copy of the property list
because remprop destroys this lists top level structure.
(putd a1 l1)
~~~~~~~~~~~~
Identical to "def" except that the parameters a1 and l1 are
evaluated. This allows you to write functions that create
functions and add them to the LISP interpreter.
(putprop a1 s1 a2)
~~~~~~~~~~~~~~~~~~
Adds to the property list of a1 the value s1 associated with
the property indicator a2. It returns the value of a1. For
example: (putprop 'Peter 'AshwoodSmith 'lastname)
(remprop a1 a2)
~~~~~~~~~~~~~~~
Removes the property associated with key a2 from the
property list of atom a1. The top level structure of the property
list is actually destroyed. It returns the old property list
starting at the point where the deletion was made.
(set a1 s1)
~~~~~~~~~~~
Will bind a1 to s1 at current scope level or globally if no
scope exists for a1 yet. Set returns s1.
(setplist a1 l1)
~~~~~~~~~~~~~~~~
Will set the property list of atom a1 to the list l1 where
the list must be ((keyn.valn)..). It returns this new list l1.
(setq *a1* s1 *a2* s2 ..... *an* sn)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Allows an infinite number of variable and value pairs and it
does not evaluate the variables a1...an. So (setq a 'val1 b
'val2) binds val1 to a and val2 to b. Setq will return sn.
24
FUNCTIONS WITH SIDE EFFECTS OR THAT ARE EFFECTED BY SYSTEM
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CONT'D
~~~~~~
(trace [*a1* *a2* *a3* ..... *an*])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Will turn on tracing of the user defined functions a1...an.
Note that you cannot trace built in functions. If you call trace
with no parameters it will return a list of all user defined
functions that have been set for tracing by a previous call to
trace, otherwise trace returns exactly the list (a1 a2...an)
after enabling tracing of each of these user defined functions.
If any of the atoms is not a user defined function trace stops
and returns an error. All atoms up to the point of error will be
traced.
(untrace [*a1* *a2* *a3* ..... *an*])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Will disable tracing of the listed functions which must all
be user defined. If no parameters are given it disables tracing
of all functions. Untrace returns a list of all functions whose
tracing has been disabled. Here is a demonstration of how you can
use them. The --> is the LISP prompt. This is the sort of
sequence that you should see on the console. The comments ;...
were added to tell you what is going on.
-->(defun factorial(n) ; define n! = n * (n-1)!
(cond ((zerop n) 1)
(t (* n (factorial (1- n]
factorial
-->(trace factorial) ; ask LISP to trace n!
(factorial)
-->(factorial 5) ; ask LISP for 5!
<enter> factorial( 5 ) ; entered with parm=5
<enter> factorial( 4 ) ; " " " 4
<enter> factorial( 3 ) ; " " " 3
<enter> factorial( 2 ) ; " " " 2
<enter> factorial( 1 ) ; " " " 1
<enter> factorial( 0 ) ; " " " 0
<EXIT> factorial 1 ; exit 0! = 1
<EXIT> factorial 1 ; exit 1! = 1
<EXIT> factorial 2 ; exit 2! = 1
<EXIT> factorial 6 ; exit 3! = 6
<EXIT> factorial 24 ; exit 4! = 24
<EXIT> factorial 120 ; exit 5! = 120
120
-->(untrace factorial) ; ask LISP to shut up
(factorial)
-->(factorial 5) ; now it is quiet again.
120
-->
25
FUNCTIONS WITH SIDE EFFECTS OR THAT ARE EFFECTED BY SYSTEM
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CONT'D
~~~~~~
(showstack)
~~~~~~~~~~~
This function will display a copy of the last 20 eval
and apply evaluations from the internal stack. The top of the
internal stack is copied whenever LISP is about to enter the
break level (prompt 'er>'). This means that if you execute some
function and it aborts prematurely you can call showstack from
the break level and see exactly what lead to the error. Whenever
a new error occurs the old copy of the top 20 elements on the
internal stack is lost and a new trace is copied for you to
display via (showstack). This is unlike Franz which allows
lots of break levels. For example consider this example session
with PC-LISP which is similar to an example in LISPcraft.
-->(defun foobar(y)(prog(x)(setq x (cons (car 8) y]
foobar
-->(foobar '(a b c))
--- error evaluating built in function [car] ---
er>x
()
er>y
(a b c)
er>(showstack)
[] (car 8)
[] (car 8)
[] (cons <**> y)
[] (setq x <**>)
[] (prog(x) <**>)
[] (foobar '(a b c))
t
In this example I declared a function called 'foobar' which
runs a prog and does a single assignment to x. When I execute it
with parameter '(a b c). PC-LISP correctly tells me that there
was an error evaluating the built in function 'car'. I can
examine the values of x and y and see that x is still set to the
empty list () that the prog call set it to. y is bound to the
parameter passed to foobar as expected. Next I called (showstack)
to see the trace of execution. I see that the top evaluation (car
8) is the culprit. The evaluation previous to that is also (car
8) but this evaluation was before the arguments had been
evaluated. Remember that fixnums eval to themselves. The <**>
symbols in the show stack are just a short hand way of saying
look at the entry above to see what the <**> should be replaced
with. This greatly reduces the amount of information that you
have to look at when you read a stack dump. It also allows you to
follow the stream of partial evaluations by looking at each <**>
in turn. Note that infinite recursion leaves a stream of <**>'s.
26
LIST EVALUATION CONTROL FUNCTIONS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
These functions are the control flow functions for LISP they
effect which lists are evaluated and how. They operate on the
basic LISP function type which is a lambda expression. Labeled
lambda expressions are also allowed.
(lambda l1 s1....sn)
~~~~~~~~~~~~~~~~~~~~
This is not a function but it is a list construct which
can act as a function in any context where a function is legal. A
lambda expression is a function body. The S-expressions s1..sn
are expressions that are evaluated in the order s1...sn. The
result is the evaluation of sn. The atoms in the list l1 are
called bound variables. They will be bound to values that occur
on the right of the lambda expression before the S-expressions
s1..sn are evaluated and unbound after the value of sn is
returned.
(nlambda l1 s1....sn)
~~~~~~~~~~~~~~~~~~~~~
This is a function body construct similar to lambda but with
a few major differences. The first is that the list l1 must only
specify one formal parameter. This will be set to a list of the
UNEVALUATED parameters that fall on the right of the nlambda
expression when it is being evaluated. This function allows you
to write functions with a variable number of parameters and to
control the evaluation of these parameters. For example we can
write a function called 'ADDEM that behaves the same way as '+ in
nearly all contexts as follows:
-->(def ADDEM (nlambda(l)(eval(cons '+ l))))
or
-->(defun ADDEM fexpr(l)(eval(cons '+ l)))
Both of which create the same nlambda expression. This
function will behave as follows when spotted on the left of a
sequence of parameters 1 2 3 4. First it will not evaluate the
sequence of parameters 1 2 3 4. Second it makes these into a list
(1 2 3 4). It then binds 'l to this list and evaluates the
expression (eval(cons( '+ l))). This expression results in (eval
(+ 1 2 3 4)). Which is just the desired result 10.
(label a1 (lambda|nlambda l1 s1..sn)) {not in Franz}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This acts just like a lambda expression except that the body
is temporarily bound to the name a1 for evaluation of the body
s1. This allows recursive calls to the same body. The binding of
the body to the name a1 will be forgotten as soon as the
expression s1 terminates the recursion. For example:
(label LastElement (lambda(List)
(cond ((null (cdr List))(car List))
(t (LastElement (cdr List))))))
27
LIST EVALUATION CONTROL FUNCTIONS CONT'D
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(apply s1 l1)
~~~~~~~~~~~~~
The function s1 is evaluated in the context resulting from
binding its formal parameters to the values in l1. The result of
this evaluation is returned. Example:
-->(apply '(lambda(x y z)(* (+ x y) z)) '(2 3 4))
20
(cond l1 l2 ... ln)
~~~~~~~~~~~~~~~~~~~
The lists l1 ... ln are checked on by one. They are of the
form (s1 s2 .. sn). Cond evaluates the s1's one by one until it
finds one that does not eval to nil. It then evaluates the s2..sn
expressions one by one and returns the result of evaluating sn.
If all of the s1's (called guards) evaluate to nil, it returns
'nil. For example:
-->(cond ((equal '(a b c) (cdr '(x a b c))) 'yes)
(t 'opps))
yes
(eval s1)
~~~~~~~~~
Runs the LISP interpreter on the S-expression s1. It just
removes a quote from the expression s1. For example:
-->(eval '(+ 2 4))
6
(mapcar s1 l1 l2 l3 .... ln)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This function will map the function s1 onto the parameter
list made by taking the car of each of l1...ln. It forms a list
of the results of the repeated application of s1 to the next
elements in the lists l1...ln. It stops when the list l1 runs out
of elements. Note that each of l1...ln should have the same
number of elements, although this condition is not checked for
and nil will be substituted if a list runs out of elements before
the others. Extra elements in any list are ignored. For example:
-->(mapcar '< '(10 20 30) '(11 19 30))
(t nil nil)
Which returns the results of (< 10 11) (< 20 19) and (< 30
30) as the list (t nil nil). Note that s1 could be any built in
function, user defined function or lambda expression. For
example:
-->(mapcar 'putprop '(John Fred Bill)
'(Mary Sue Linda)
'(mother sister daughter))
(Mary Sue Linda)
28
LIST EVALUATION CONTROL FUNCTIONS CONT'D
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(defun a1 macro l1 s1 s2 ... sn)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Macro is a special body, similar to nlambda except that it
causes code replacement when it is evaluated. An example is the
best explanation I can give you: (Read LISPcraft example)
-->(defun first-element macro(l)(cons 'car (cdr l)))
first-element
-->(setq x '(first-element '(a b c)))
(first-element '(a b c))
-->(eval x)
a
-->x
(car '(a b c))
-->(eval x)
a
In the example above I have first declared a macro called
'first-element' which when run given a list parameter should
return the first element in the list. I could have done this
using a lambda expression but this would require parameter
binding etc every time I execute 'first-element'. Rather, what I
have chosen to do is to cause (first-element x) to be replaced by
the code (car x) everywhere it is encountered. Then future
execution of (first-element x) is just as costly as an execution
of (car x). This is accomplished as follows: When a macro is
encountered, eval passes the entire expression (first-element
(quote a b c)) to the macro body. This body is (cons 'car (cdr
l)) and is evaluated in the context where the entire expression
is bound to the macro parameter l. This results in the code
fragment (car (quote a b c)) which is substituted in the code for
the original (first-element (quote (a b c))) expression and
evaluated giving 'a. The above example demonstrates this by
showing what happens to the value of a variable 'x before and
after evaluation of the macro. Note the change in the value of x
but that the result of (eval x) remains the same. That is the
whole purpose of macros.
PC-LISP macros have two limitations that Franz macros do not
have. A PC-LISP macro MUST return a piece of code that is a list.
YOU CANNOT RETURN AN ATOM FROM A MACRO. Secondly a PC-LISP macro
must have been def'ined, defun'ed, or putd'ed, otherwise it
will not function correctly. Ie YOU CANNOT USE IT LIKE A LAMBDA
OR NLAMBDA BODY WITHOUT A NAME.
(macroexpand s1)
~~~~~~~~~~~~~~~~
This function lets you see at what the macro expansion of s1
looks like prior to evaluation and substitution. For example:
-->(macroexpand '(first-element '(a b c)))
(car '(a b c))
29
LIST EVALUATION CONTROL FUNCTIONS CONT'D
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(prog l1 s1.....sn)
~~~~~~~~~~~~~~~~~~~
Prog is a way of escaping the pure LISP applicative
programming environment. It allows you to evaluate a sequence of
S-expressions one after the other in true imperative style. It
allows you to use the functions (go..) and (return ..) to perform
the goto and return functions that imperative languages permit.
Prog operates as follows: The list l1 which is a list of atom
names is scanned and each atom is bound to nil at this scope
level. Next the S-expressions s1..sn are scanned once. If any of
s1..sn are atoms they are bound to the S-expression that follows
them. Next we start evaluating lists s1...sn ignoring the atoms
which are assumed to be labels. If after evaluation an S-
expression is of the form ($[|return|]$ Z) we unbind all the
atoms and labels and return the S-expression Z. If after
evaluation a list is of the form ($[|go|]$ Z) we alter our
evaluation to start next at Z. The functions (go) and (return)
will return the above mentioned special forms. If at any time we
reach sn, and it is not a go or a return, we simply unbind all of
l1 and the labels in s1...sn and return the result of evaluating
sn. Note that prog labels must be alpha or literal alpha atoms.
Also note that the (return) and (go) mechanisms are not the same
as Franz and will only operate if the special form works its way
back to the prog. Because of this you are advised to keep the
calls to go and return within the lexical scope of the prog body
and to insure that the special form returned is not absorbed by
some higher level function. The mechanism is usually invisible.
For example:
-->(prog (List SumOfAtoms)
(setq List (hashtabstat))
(setq SumOfAtoms 0)
LOOP (cond ((null List) (return SumOfAtoms)))
(setq SumOfAtoms (+ (car List) SumOfAtoms))
(setq List (cdr List))
(go LOOP)
)
306
This peice of code operates as follows. First it creates two
local variables. Next it binds the variable List to the list of
hash bucket totals from the alpha hash table. It then sets a sum
counter to 0. Next it checks the List variable to see if it is
nil. If so it returns the Sum Of all the Atoms. Otherwise it adds
the first fixnum in the list List to the running SumOfAtoms,
winds in the list List by one, and jumps to LOOP. Note also that
we can accomplish the same thing as the above prog with the much
simpler example which follows:
-->(eval (cons '+ (hashtabstat)))
306
30
HUNKS
~~~~~
A hunk is just an array of 1 to 126 elements. The elements
may be any other type including hunks. With hunks it is possible
to create self referential structures (see DANGEROUS FUNCTIONS).
A Hunks element storage space comes from the heap. Hunks like
strings and alpha print names are subject to compaction
relocation and reclamation.
(hunk s1 s2 .... sN)
~~~~~~~~~~~~~~~~~~~~
Returns a newly created hunk of size N whose elements are
s1, s2 ... sN in that order. The hunk will print as {s1 s2
(cxr n1 H)
~~~~~~~~~~
Returns the n1'th element of hunk H indexed from 0. Hence n1
must be in the range 0 .. (hunksize H)-1.
(hunkp s1)
~~~~~~~~~~
Returns true if s1 is of type hunk, otherwise it returns
nil. Note this function has also been mentioned with the other
predicates.
(hunksize H)
~~~~~~~~~~~~
Returns a fixnum whose value is the size of the hunk. This
value is one larger than the largest index allowed into the hunk
by both cxr and rplacx. The size of a hunk is fixed at the time
of its creation and can never change throughout its life.
(makhunk n1) or (makhunk (s1 s2 ...sN))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The first form returns a nil filled hunk of n1 elements.
Needless to say, n1 must be between 1 and 126 inclusive. The
second form is just identical to (hunk s1.....sN).
(rplacx n1 H s1)
~~~~~~~~~~~~~~~~
Returns the hunk H, however as a side effect element n1 of H
has been made (eq) to s1. In other words H[n1] = s1. Note that
this function like rplaca and rplacd allows you to create self
referential structures.
31
DANGEROUS FUNCTIONS
~~~~~~~~~~~~~~~~~~~
The following two functions have potentially disastrous
results if used by unwary or inexperienced LISP programmers. The
third function is provided to make their use less dangerous.
(rplaca l1 s1)
~~~~~~~~~~~~~~
The cons cell l1 is physically altered so that its car is
(eq) to s1. That is the car pointer of l1 is set to point to s1.
The list l1 is returned. (l1 must not be nil).
(rplacd l1 s1)
~~~~~~~~~~~~~~
The cons cell l1 is physically altered so tha its cdr is
(eq) to s1. That is the cdr pointer of l1 is set to point to s1.
The list l1 is returned. (l1 must not be nil).
(copy s1)
~~~~~~~~~
Returns a structure (equal) to s1 but made with new cons
cells. Note that only cons cells are copied, strings, atoms,
hunks etc are not copied.
Warning #1 - altering a cons cell allows you to create
structures that point (refer) to themselves. While this does not
cause a problem for the LISP interpreter or garbage collector it
does mean that many built in functions will either loop around
the structure infinitely or recurse until a stack overflows when
they encounter the abnormal structure. For example:
-->(setq x '(a b c d))
(a b c d)
-->(rplaca x x)
((((((((((((((((((((((((((((((((((((((((...............
-- stack overflow --
er>
Warning #2 - altering a cons cell can cause a million little
side effects that you did not count on. Consider carefully the
following example.
-->(defun FooBar(x) (append x '(temp1 temp2)))
FooBar
-->(setq z (FooBar nil))
(temp1 temp2)
-->(rplaca z 'GOTCHA!)
(GOTCAH! temp2)
-->(FooBar '(a b c))
(a b c GOTCHA! temp2)
What happened? Well the list (temp1 temp2) is only stored
once and when FooBar is computed the returned list is actually
the list (temp1 temp2), hence when we alter it's car, FooBar now
appends the list (GOTCHA! temp2) instead of (temp1 temp2).
32
MSDOS BIOS CALLS FOR GRAPHICS OUTPUT
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
These functions are still experimental. They do however
allow you to play with drawing recursive curves etc. They
all result in an INT 10H. This means that the graphics
should be portable to most MSDOS machines and should run under
any windowing environment like topview or mswindows. This is why
they are so slow. Note that they all return 't. They do not check
to see if the INT call was successful or if you have a graphics
capability. You can crash your system if you abuse these
functions.
(#scrline# n1 n2 n3 n4 n5)
~~~~~~~~~~~~~~~~~~~~~~~~~~
Draws a line on the screen connecting (n1,n2) with the point
(n3,n4) using attribute n5. This function calls the BIOS set dot
function for each point. Hence it is not very fast. n5 is not
very useful, colors are not allowed yet so make n5 odd.
(#scrmde# n1)
~~~~~~~~~~~~~
Sets the video mode to n1. Modes are positive numbers 0.....
Where (8 and 9) are high resolution for the Tandy2000 and I
suppose are high resolution modes on other machines that support
the (640 x 400) or greater graphics resolutions. These are all
listed in your hardware reference manual but basically they are:
0 = 40x25B&W, 1=40x25COL, 2=80x25B&W 3=80x25COL, 4 =320x200COL,
5=320x200B&W, 6=640x200B&W, 7=reserved, 8=640x400COL,
9=640x400B&W etc...? This is as of DOS 2.11.
(#scrsap# n1)
~~~~~~~~~~~~~
Sets the active video page to n1. n1 should be between 0 and
8. This is valid for text modes only. Versions of MSDOS other
than 2.11 may not support this call.
(#scrscp# n1 n2 n3)
~~~~~~~~~~~~~~~~~~~
Sets the cursor position to be in page n1 at row n2 and in
column n3. Where 0 is the top row and 0 is leftmost col.
(#scrsct# n1 n2)
~~~~~~~~~~~~~~~~
Sets the cursor type to agree with the following: n1 bit
5 (0 = blink 1 = steady), bit 6 (0 = visible, 1 = invisible),
bits 4-0 = start line for cursor within character cell. n2 bits
4-0 = end line for cursor within character cell.
(#scrwdot# n1 n2 n3)
~~~~~~~~~~~~~~~~~~~~
Write a dot (pixel). The pixel at row n1 and column n2 has
its color value XORed with the color attribute n3. Since the
color attributes vary from machine to machine you will have to
look up the correct values for this parameter.
33
MSDOS BIOS CALLS FOR DATE AND TIME
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Rather than try to implement the (sys:time) function or the
(status localtime) call in PC-LISP I have provided access to the
MS-DOS get date and get time BIOS calls. These are INT 21H
function numbers 2A and 2C hex respectively. Here is how you get
at them from PC-LISP.
(#date#)
~~~~~~~~
Returns a list of four fixnums. The first element in this
list represents the year 1980 means 1980 etc. The second element
is the month of the year where 1 means January etc. The next
element in the list represents the day of the month where 1 means
the first day, etc. The last element in the list represents the
day of the week where 0 means Sunday etc.
(#time#)
~~~~~~~~
Returns a list of four fixnums. The first element in this
list represents the hour of the day where 1 means 1AM and 24
means 12 PM. The next element represents the minutes these are 0
through 59. The next element represents the seconds, these
represent hundredths of a second, 0-99.
For example:
-->(append (#date#) (#time#))
(1986 4 6 0 20 23 22 15)
Means that the date is Sunday April 6th, 1986 and the local
time is 8:23:22 and 15/100 of a second.
34
MEMORY EXHAUSTION
~~~~~~~~~~~~~~~~~
The memory is all used up when you get a message such as
"LISP cons cells exhausted". Usually when this happens it is
because you are tying up memory somewhere but do not realize it.
The most common way to tie up memory is to execute an infinite
recursion such as (defun looper(n)(looper (+ n 1))). The stack
will of course overflow and YOUR BINDINGS WILL BE HELD FOR YOU!!
This means that ALL bindings are held. If you execute the above
program several times from the break level, 'er>', you will
eventually run out of CONS cells. They are all in use to hold the
values n, n+1, n+2,...... to the point of the first stack
overflow. Then n, n+1,.... to the point of the second overflow
and so on and so on. Eventually there is no more space left to
evaluate the function (looper). The solution is simple: If you
run an infinite recursion by mistake and are placed in the break
level, use the showstack to figure out where you are. Then use
the break level to examine variables etc. But before retrying
anything return to the top level. This will cause the held
bindings to be dropped and the cells will become reclaimable
garbage (ie free). Consider the following session with PC-LISP
V2.10:
-->(defun looper(n)(looper (+ n 1))) ; infinite function
looper
-->(looper 0) ; run it from 0
-- Stack Overflow -- ; all n's saved!
er>n ; last value of n
588
er>(looper 0) ; another run will
-- Stack Overflow -- ; save more n's
er>(looper 0)
-- Stack Overflow --
er>(looper 0) ; another run will
LISP out of cons cells! ; save more n's
B>
Note that in last (looper 0) call we made from the break
level was unable to complete because we ran out of memory. When
this happens PC-LISP gives up and returns to DOS, hence the B>
prompt. We could have avoided this problem if we had entered a
CONTROL-Z ENTER sequence at the 'er>' prompt before any further
calls to (looper 0) were made. This would have freed up all the
held intermediate bindings of n.
If you find that you are running out of heap space it may be
because you are keeping too many unused strings,symbols or hunks.
The easiest way to do this by mistake is the following: (setq x
(oblist)). The variable x is globally set to the oblist contents.
Now, all objects that were in the oblist at the time of the call
will never be freed. The heap space associated with their print
names will also be unreclaimable. The solution is to be careful
what you do with copies of the oblist if heap space is in demand.
Usually heap space is not critical and you need not worry.
35
TECHNICAL INFORMATION
~~~~~~~~~~~~~~~~~~~~~
The interpreter is written using the Lattice C compiler
version 2.03. It consists of 7 separate modules totaling nearly
11,000 lines of C. The modules are: A scanner, parser, memory
manager, list evaluator and critical functions module, a built in
functions module, a library of extra Unix libc functions not
provided by Lattice C consisting of assembly language routines
for setjmp(), longjmp() and getenv(), and finally a modified C
start up assembly language module to provide signal trapping for
stack overflow and control-break.
Memory is organized as follows. Alpha cells have fields for
a shallow stack of bindings, a pointer to heap space for the
print names, a pointer to any built in or user defined functions,
and a pointer to any property lists. Alpha cells are the largest
of all the cells and have their own fixed storage area. Heap
space which is just the space used for the print names of the
alpha cells and strings, and the element array for hunks may be
variable sized blocks of up to 254 bytes long. This is why a hunk
can have only 126 elements in PC-LISP. The rest of the cells used
by PC-LISP are all considered as one. This consists of the
flonum, fixnum, list, string, hunk and port cells. They have
their own contiguous slice of memory. This means that three
different contiguous types of memory are required. It is managed
in the following way. At start up time the percentages of memory
are read from the default settings or the environment variables
LISP%HEAP and LISP%ALPH. Next memory is allocated in 16K chunks
these are the largest contiguous pieces handled by the memory
manager. If the environment variable LISP%MEM has an integer
value, this is used as the upper limit on the number of 16K
chunks to allocate. These are all kept track of in a large vector
of pointers. After all chunks have been allocated 8K are given
back for use by the I/O functions. If the environment variable
LISP%KEEP is set to an integer value that many bytes are given
back instead of 8K. If file I/O seems to stop working it is
probably because the standard I/O functions have run out of
memory, in this case either set LISP%KEEP a bit bigger, or set
LISP%MEM to a value that does not cause all free memory to be
allocated. Next groups of these blocks are primed for use by
alpha,cell, or heap managers. These managers handle the
distribution and reclamation of memory in their block. The heap
manager will perform compaction and relocation to get free space.
The alpha and cell managers will perform mark and gather garbage
collection to get space. The heap manager may request mark and
gather collection if there is a real shortage of heap space.
Stack overflow detection is done by intercepting the call to
the Lattice C stack overflow routine, temporarily resetting the
stack, and them making a call to my own C stack overflow routine.
This then longjmps out of the error condition. The Unix version
handles the error in the same way except that the overflow
results in a SIGSEGV which then calls the same routine.
36
TECHNICAL INFORMATION (CONT'D)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Control-BREAK detection is done via periodic testing of the
status in the evaluator main loop, and the read main loop. When a
break is detected control is transferred to the break handler
which prints a message and longjmps back to the mainline code.
The Unix version will have made a signal call asking that the
break handler be executed when a user break key is hit. Hence the
results are the same. CONTROL-C checking is done in the same way
except that a CONTROL-C will only be spotted on I/O so a looping
non printing function can only be stopped with CONTROL-BREAK.
Note that CONTROL-BREAK is INT 1BH and CONTROL-C is INT 23H.
If your machine does not support int 1BH, you can easily
patch PC-LISP to trap whatever vector you want. To do this just
start disassembling PC-LISP with DEBUG. The procedures that set
and reset the int 1BH vector are pretty near the start of the
program and are very easy to spot. Note that there are a couple
of other set/reset interrupt vector routines here so do not get
the wrong one. Look for calls to the MS-DOS set interrupt vector
routine. If you have trouble doing this drop me a line and I will
try to help you get it done. There should not be many machines
for which this patch is necessary because most MS-DOS machines,
even partially PC compatible, seem to generate an interrupt 1BH
when CONTROL BREAK is hit.
37
KNOWN BUGS OR LACKING FEATURES OF V2.10
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-It is possible to run out of stack space while garbage
collecting. When this happens the garbage collection is retried
once but the error is unrecoverable. You should treat this as a
stack overflow caused by your program. This can be fixed with a
link inversion marking phase in the next release of PC-LISP. See
also the section MEMORY EXHAUSTION for more details on this
problem. Note that if the stack overflows on the second garbage
collection retry it gives up and advises you of a probable memory
corruption.
-You cannot input floats in exponential notation. This is
because the LISP lexical analyzer does not yet recognize them.
-Line drawing is not too quick, or too clean. The lines take
time to draw because they go through the BIOS, they are not very
clean at certain slopes due to some bugs. But the video graphics
routines are still experimental so do not rely on them too much.
You will also note that several other video INT calls are
missing.
-If too many (load 'file) calls fail you will run out of
available ports. This is because they are left open. PC-LISP does
not close open load ports if an error occurs while reading from
them.
-Two special atoms with rather obscure names should never be
directly returned manipulated in a prog. These are $[|return|]$
and $[|go|]$. If you attempt say print these from within a prog,
the print function will return them and this will confuse the
heck out of prog which uses them for internal purposes. Because
of this the (oblist) call does not return them. Thus the only way
they can get into your code is for you to enter them directly.
Since this is unlikely and I have warned you the problem should
not occur.
-You are not prevented from altering the binding of t. This
means that if you use t as a parameter or set/setq it to
something other than t you may cause some strange behavior ,
especially if you bind t to nil by accident.
-Macros must return a peice of code which is a list. Atoms
cannot be returned. Franz allows either but to alter PC-LISP
would require some medium scale surgery that I do not want to
undertake unless the feature is really missed.
-Explode and Exploden only work on atoms or strings. In Franz
you can explode anything. For PC-LISP I decided to leave out this
feature because it complicates the print functions which are
already pretty messy.
38
KNOWN BUGS OR LACKING FEATURES OF V2.10 (CONT'D)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-It is possible for the I/O functions to stop working if they
run out of memory. Since they get their memory separately from
the other functions in PC-LISP the only solution is to run PC-
LISP with a little less memory either by setting the environment
variable LISP%MEM to a value that leaves one or more 16K blocks
free, or to set LISP%KEEP a little larger than 8K so that more
memory is free for use by the I/O functions.
-The interpreter is slow. I am planning on introducing a
compiler which should speed things up significantly.
-Car and cdr will not access the first and second element of
a hunk as they do in Franz.
-Read does not recognize the escape '\x' notation.
-Character-index will not take a fixnum second parameter as
per Franz. Sorry I spotted this too late to fix it in V2.10.
-Showstack does not print lists in compressed form
horizontally. The vertical compression <**> is however done. It
also occasionally gets confused and does not print the last
evaluation this sometimes happens on macro expansion. Showstack
may also get confused and print a list one element at a time
rather than as a complete list. This is because showstack is
trying to trace backwards through an internal stack which has a
lot of intermediate stuff on it and can get confused by the
extra stacked info.
RE BUGS OR DESIRED ENHANCEMENTS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I have tried to think of everything that a user could do to
crash the system and protect him/her from it but I'm sure my
imagination has only covered half of the possibilities. If you
find any other bugs or if you think some features would be nice
to add to PC-LISP, I will consider them for the next major
release. Please don't hesitate to let me know what you think,
good or bad. I'd appreciate the feed back as I have put a lot of
work into this program and want to know what you people out there
think of it.
Note - I am planning on releasing the source code some time
in the future but not until the program reaches a reasonably
mature level. I also want to write a programmers manual so that
you can add functions easily and fix bugs without too much
trouble. Please be patient for the source.
Regards
Peter Ashwood-Smith.
39
petera@utcsri.UUCP (Smith) (04/27/86)
*** REPLACE THIS LINE WITH YOUR MESSAGE ***
[ line eater ]
PC-LISP.DOC (part 1 of 2)
---------------------------- CUT HERE -------------------
A GUIDE TO THE PC-LISP INTERPRETER (V2.10)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
By Peter Ashwood-Smith
~~~~~~~~~~~~~~~~~~~~~~
University of Toronto,
~~~~~~~~~~~~~~~~~~~~~
Ontario, Canada.
~~~~~~~~~~~~~~~
With thanks to Brian Robertson for the math functions
April 15 1986,
for Guylaine
email: petera!utcsri or br!utcsri
mail: Peter Ashwood-Smith
#811, 120 St. Patrick St.
Toronto, Ontario,
Canada,
M5T-2X7.
phone: (416) 593-7574.
1
INTRODUCTION
~~~~~~~~~~~~
PC-LISP is a small implementation of LISP for ANY MS-DOS
machine. While small, it is capable of running a pretty good
subset of Franz LISP. The functions are supposed to perform in
the same way as Franz with a few exceptions made for efficiencies
sake. Version 2.10 has the following features.
- Types fixnum, flonum, list, port, symbol, string and
hunk. Function bodies lambda, nlambda and macro.
- Full garbage collection of ALL types.
- Compacting relocating heap management.
- Shallow binding techniques for O(1) symbol value
lookup. (Dynamic scoping).
- Access to some MSDOS BIOS graphics routines.
- Over 150 built in functions, sufficient to allow you
to implement many other Franz functions in PC-LISP.
- Stack overflow detection & full error checking
on all calls, tracing of user defined functions,
and dumping of stack via (showstack).
- One level of break from which bindings at point
of error can be seen.
- Access to as much (non extended) memory as you've
got and control over how this memory is spread
among the various data types.
- Will run in 256K PC/AT/XT or nearly any other MS-DOS
machine. (It has run on every machine I have tried.)
This program is Shareware. This means that it you are free
to distribute it or post it to any BBS that you want. The more
the better. The idea is that if you feel you like the program and
are pleased with it then send us $15 to help cover development
costs. Source code for this program is available upon request.
You must however send me 3 blank diskettes and about $1.50 to
cover first class postage. The program can be compiled with any
good C compiler that has a pretty complete libc. In particular
the program will compile with almost no changes on most Unix
systems. A source code guide will probably be included with the
source if it is finished at the time I receive your source
request. Please do not request source unless you plan to use it.
Thanks to Brian Robertson also of the University of Toronto
Department of Computer Science for the math functions that he
wrote for my otherwise excellent Lattice C V2.03 compiler which
did not originally come with any.
2
A WARNING
~~~~~~~~~
As I mentioned previously this program was compiled with the
Lattice C compiler, as such the program contains code to which
Lattice Inc. holds a copyright. If you sell it I can only get
angry but Lattice could take you to court. And, as with all
software you use it at your own risk. I will not be held
responsible for loss of any kind as a result of the correct or
incorrect use of this program.
A NOTE
~~~~~~
The rest of this manual assumes some knowledge of LISP,
MSDOS and a little programming experience. If you are new to LISP
or programming in general you should work your way through a book
on LISP such as LISPcraft by Robert Wilensky. You can use the
interpreter to run almost all of the examples in the earlier
chapters. I obviously cannot attempt to teach you LISP here
because it would require many hundreds of pages and there are
much better books on the subject than I could write. Also, there
are other good books on Franz LISP besides LISPcraft. I recommend
LISPcraft because it is the book I happen to use.
IF YOU WANT TO TRY PC-LISP RIGHT NOW
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Make sure that PC-LISP.EXE and PC-LISP.L are in the same
directory. Then type PC-LISP from the DOS prompt. Wait until you
get the "-->" prompt. If your machine has some sort of graphics
capability you can try the graphics demo as follows. Type "(load
'turtle)" without the "'s. Wait until you see the "t" and the
prompt "-->" again, then type "(GraphicsDemo)". You should see
some Logo like squirals etc. If you do not have any graphics
capability try "(load 'queens)" or "(load 'hanoi)" and then
(queens 5) or (hanoi 5) respectively. For a more extensive
example turn to the last couple of chapters in LISPcraft and look
at the deductive data base retriever. Type (load 'match) and look
at the match.l documentation. You can then play with all the
functions mentioned in LISPcraft.
3
EXAMPLE LOAD FILES AND THE PC-LISP.L FILE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Included with PC-LISP (V2.10) are a number of .L files.
These include: PC-LISP.L, MATCH.L, TURTLE.L, DRAGON.L and perhaps
a few others. These are as follows.
PC-LISP.L
~~~~~~~~~
A file of extra functions to help fill the gap between PC
and Franz LISP. This file defines the pretty print function and a
number of macros etc. It will be automatically loaded from the
current directory or from the directory whose path is set in
LISP%LIB when PC-LISP is executed. The functions in this file are
NOT documented in this manual, look instead at a Franz manual.
MATCH.L
~~~~~~~
A small programming example taken from the last 2 chapters
of LISPcraft. It is a deductive data base retriever. This is
along the lines of PROLOG. Very few changes were necessary to get
this to run under PC-LISP.
TURTLE.L
~~~~~~~~
Turtle Graphics primitives and a small demonstration
program. To run the demo you call the function "GraphicsDemo"
without any parameters. This should run albeit slowly on just
about every MS-DOS machine. Note that the video functions that
are still experimental so use them for fun but don't rely on
them. These primitives look at the global variable !Mode to
decide what resolution to use. If you have mode 8 (640X400) you
should use it as the lines are much sharper.
DRAGON.L
~~~~~~~~
A very slow example of a dragon curve. This one was
translated from a FORTH example in the April/86 BYTE. It takes a
long time on my 8Mhz 80186 machine so it will probably run for a
few hours on a PC or AT. I usually let it run for about 1/2 hour
before getting tired of waiting. To run it you just type (load
'dragon) then type (DragonCurve 16). If you have a higher
resolution machine like a Tandy 2000 then type (setq !Mode 8)
before you run it it will look sharper at this (640x400)
resolution.
4
USERS GUIDE
~~~~~~~~~~~
The PC-LISP program is self contained. To run it just type
the command PC-LISP or whatever you called it. When it starts it
will start grabbing memory in chunks of 16K each. By default PC-
LISP will grab as much memory as possible but by setting the
LISP%MEM environment variable to an integer >= 3, PC-LISP will
stop when this many 16K blocks have been allocated. These will be
distributed to the three basic data types in percentages that you
can specify via 2 environment variables. The default is that 5%
of the memory will be allocated for alpha atoms. 5% will be
allocated for heap space, and the rest for cons,port, fixnum,
string, flonum and hunk cell types.If you set the environment
variables LISP%HEAP and LISP%ALPH to an integer between 1 and 85
these will become the new percentages for the heap and alpha
respectively, the rest going to cons, port,flonum, fixnum, hunk
and string cells. Note that the percentages are only accurate to
the nearest 16K boundary. In other words the set of 16K blocks
are divided among the three types as closely to the percentages
that you specify as possible. If the percentages that you specify
are unreasonable PC-LISP will stop with an error message,
otherwise PC-LISP will continue by giving back a very small
amount of memory for use by the standard I/O routines. You can
alter the amount given back by setting the environment variale
LISP%KEEP to the amount you want to give back (See memory
management). PC-LISP will then print the banner message, the
total memory available and the actual percentages that are
allocated to each object. Before processing the command line PC-
LISP will look for a file called PC-LISP.L it will look first in
the current directory, next in the library directories specified
in the LISP%LIB environment variable as per the (load) function.
If it finds PC-LISP.L it will be loaded. Next PC-LISP will read
the parameters on the command line. The usage is as follows.
*
PC-LISP [=nnnn] [file]
The optional parameter =nnnn is the Lattice set stack size
option. It is preset to 32K and cannot be set smaller. You may
set it larger up to 64K if you wish. A 32K stack gives you about
466 recursive calls, 50K = 731 calls, 60K = 878 calls, and 64K =
936 calls. 8086 machines do not allow efficient stacks > 64K.
The files on the command line are processed one by one. This
consists of loading each file as per the (load) function. This
means that PC-LISP will look in the current directory for file,
then in file.l, then in the directories given in the LISP%LIB
environment variable, when found the file is read and every list
is evaluated. The results are NOT echoed to the console. Finally
when all the files have been processed you will find yourself
with the LISP top level prompt '-->'. Typing control-Z and ENTER
(MS-DOS end of file) when you see the '-->' prompt will cause PC-
LISP to exit to whatever program called it. If an error occurs
you will see the prompt 'er>'. For more info see the 'TERMINATION
OF EVALUATION' section of this manual and the commands
(showstack), (trace), and (untrace).
5
SYNTAX
~~~~~~
You will now be in the LISP interpreter and can start to
play with it. Basically it is expecting you to type an S-
expression. Where an S-expression is an atom, or a list and:
An atom may be one of four kinds. It may be an alpha atom ,
a number atom, a literal alpha atom or a string atom. An alpha
atom is just a letter followed by letters/digits and certain
special symbols. There may be no more than 254 characters in the
alpha atom. To allow you to enter any text as an atom you may
delimit the atom with |'s. These will define a literal alpha
atom in which you may place any character between the delimiters
(except | itself). A number atom is just as you might think an
optional plus or minus sign followed by a sequence of digits,
followed optionally by a radix point and more digits. Sorry,
exponential notation is not supported. It should get into the
next version. String atoms are delimited by double quotes like
this "this is one string atom" they may not contain | or " in
V2.10.
A list is just a left ( followed by a of sequence of atoms
or lists followed by a right ). A list may also be a sequence of
atoms or lists followed by a '.' followed by an S-expression
followed by a right parenthesis ). This is called a dotted pair
and it means that the CAR and CDR of a list lie on either side of
the dot. Note that a space on either side of the dot is essential
syntactically. You may optionally place [ and ] in the list to
represent meta-parenthesis. Basically the ] just closes all open
lists up to the nearest [, or to the beginning of the list if no
[ is present. Unlike Franz you may not nest [ ]. Here are some
example legal lists. (But NOT legal Lisp commands!)
(now is (the . time)) ; dotted pair (the . time)
(1 now16 (is (the (time ] ; the ] closes all 4 ('s
(car [quote(a b c d]) ; the ] closes 2 ('s to ]
(ThisIsBiggerAtom012345678) ; Upper case is ok
() ; empty list is equiv to 'nil
nil ; is a list and an atom!
(1 (-2.2 +3.333)) ; some numbers all floats!
((((((|all one atom|] ; spaces are part of lit atom!
("now" is "the" time) ; "'ed objects are strings!
(a . (b . (c . (e)))) ; same thing as (a b c d e)
(pc-lisp.l queens.l) ; two atoms, not dotted pairs!
(pc-lisp . l) ; dotted because of spaces.
Note that you are allowed to mix any number of spaces, line-
feeds, carriage returns, form feeds, tabs etc. as long as they do
not alter the delimitation of an atom/string/fixnum/flonum or
dot. Comments may start at any point in a line and will continue
until the end of the line as shown in the above example lists.
Any number of comment starters ';' may harmlessly follow the
first comment starter ';'. PC-LISP is insensitive to line length
and will handle lines as long as MS-DOS will give it.
6
READ MACRO QUOTE
~~~~~~~~~~~~~~~~
PC-LISP supplies one read macro called 'quote' and written
using the little ' symbol. (User read macros in later versions)
This read macro is just a short hand way of writing the list
(quote XX). Where XX is what follows the '. Here are some
examples of what the read macro will do to your input before
passing it to the evaluator.
'apples -- goes to --> (quote apples)
'|too late| (quote |too late|)
'(1 2 3) (quote (1 2 3))
''a (quote (quote a))
'"hi" (quote "hi")
If you are new to LISP you will see just how useful this
little read macro is when you start typing expressions. It
reduces the amount of typing you must do, reduces the amount of
list nesting required, and draws attention to 'data' in your
expressions.
User defined read macros will be added to a future version
of PC-LISP. And backquote, splice etc. will be predefined.
SIDEKICK AND OTHER CO-RESIDENT PROGRAMS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sidekick and others, should all work without any problem
with PC-LISP. I highly recommend using one of these programs as
it provides a way of editing your lists and then resubmitting
them for evaluation. This is much more convenient than retyping
the expression, or leaving the interpreter and reediting a load
file. The existence of these programs is one reason why there is
no editing facility provided in PC-LISP. Note also that the
normal MS-DOS command line editing functions all work within PC-
LISP. (See your DOS manual for details on command line editing).
7
SYNTAX ERRORS
~~~~~~~~~~~~~
When you enter a list which is not correctly nested the
interpreter will return the wonderfully informative 'syntax
error' message. You will have to figure out where it is in the
input list. Note that if you do not finish entering a list, ie
you put one too few closing )'s on the end, the interpreter will
wait until you enter it before continuing. If you are not sure
what has happened just type "]]" and all lists will be closed and
the interpreter will try to do something with the list. If you
are running input from a file the interpreter will detect the end
of file and give you a 'syntax error' because the list was
unclosed. Try also (showstack), it can help pinpoint the error.
EVALUATING S-EXPRESSIONS
~~~~~~~~~~~~~~~~~~~~~~~~
An S-expression may be an atom or a list. If it is an atom
the evaluation of it is its current binding. Strings, integers,
hunks and floating point numbers all evaluate to themselves. Most
atoms are not bound to begin with so just entering an atom will
result in the error 'unbound atom'. Evaluating a list consists of
calling the function named or given by the first element in the
list with parameters given by the rest of the list. For example
there is a function called '+' which takes any number of fixnum
values and returns their sum. So:
-->(+ 2 4 6 8)
Would return the result of 2+4+6+8 ie 20. We can also
compose these function calls by using list nesting. For example
we can subtract 2+4 from 6+8 as follows:
-->(- (+ 6 8) (+ 2 4))
We can also perform operations on other types of atoms.
Suppose that we wanted to reverse the list (time flies like
arrows). There is a built in function called 'reverse' that does
just what we want. So we could try typing.
-->(reverse (time flies like arrows))
But the interpreter will be confused! It does not know that
'time' is data and not a function taking arguments 'flies',
'like' and 'arrows'. We must use the function 'quote' which
returns its arguments unevaluated, hence its name "quote".
-->(reverse (quote (time flies like arrows)))
Will give us the desired result (arrows like flies time). We
can do the same thing without using the (quote) function
directly. Remember the read macro ' above? Well it will replace
the entry '(time flies like arrows) with (quote(time flies like
arrows)). So more concisely we can ask PC-LISP to evaluate:
-->(reverse '(now is the time))
8
EVALUATING S-EXPRESSIONS CONT'D
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This gives us the correct result without as much typing. You
will note that the subtraction of 2+4 from 6+8 could also have
been entered as:
-->(- (+ '6 '8) (+ '2 '4))
However, the extra 's are redundant because a fixnum
evaluates to itself. In general a LISP expression is evaluated by
first evaluating each of its arguments, and then applying the
function to the arguments, where the function is the first thing
in the list. Remember that evaluation of the function (quote s1)
returns s1 unevaluated. LISP will also allow the function name
to be replaced by a function body called a lambda expression. So
a legal input to the interpreter could be:
-->((lambda(x)(+ x 10)) 14)
Which would be processed as follows. First the parameters to
the lambda expression are evaluated. That's just 14. Next the
body of the lambda expression is evaluated but with the value 14
bound to the formal parameter given in the lambda expression. So
the body evaluated is (+ x 10) where x is bound to 14. The result
is just 24. Note that lambda expressions can be passed as
parameters as can built in functions or user defined functions.
So I can evaluate the following expression.
-->((lambda(f x)(f (car x))) '(lambda(l)(car l)) '((hi)))
Which evaluates as follows. The parameters to the call which
are the expressions '(lambda(l)(cdr l)) and '((hi)) are
evaluated. This results in the expressions being returned because
they are quoted. These are then bound to 'f and 'x respectively
and the body of the first lambda expression is evaluated. This
means that the expression ((lambda(l)(car l))(car ((hi)))) is
evaluated. So again the parameters to the function are evaluated.
Since the only parameter is (car ((hi))) it is evaluated
resulting in (hi). This is then bound to l and (car l) is
evaluated giving "hi".
PC-LISP is also capable of handling lambda expressions with
multiple bodies, nlambda expressions with multiple bodies and
labeled lambda and nlambda expressions. See the Built In
Functions Section which follows for more details on lambda and
nlambda. A slightly restricted macro form is also permitted. For
information on macros see the MACRO section of the manual.
9
TERMINATION OF EXPRESSION EVALUATION
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There are three distinct ways that evaluation can terminate.
First, evaluation can end naturally when there is no more work to
do. In this case the resulting S-expression is printed on the
console and you are presented with the prompt "-->". Second, you
can request premature termination by hitting the CONTROL-BREAK or
CONTROL-C keys simultaneously (hereafter referred to as CONTROL-
BREAK). Note that this will only interrupt list evaluation, it
will not interrupt garbage collection which continues to
completion. So, if you hit CONTROL-BREAK or CONTROL-C and you
don't get any response, wait a second or two because it will
respond after garbage collection ends. Finally, execution can
terminate when PC-LISP detects a bad parameter to a built in
function, a stack overflows, a division by zero is attempted, or
an atom is unbound etc. In all cases but a normal termination you
will be returned to a break error level. This is when the prompt
looks like 'er>'. This means that variable bindings are being
held for you to examine. So if the evaluation aborts with the
message "error in built in function [car]", you can examine the
atom bindings that were in effect when this error occurred by
typing the name of the atom desired. This causes its binding to
be displayed. When you are finished with the break level just hit
CONTROL-Z plus ENTER and you will be placed back in the normal
top level and all bindings that were non global will be gone.
Note you can do anything at the break level that you can do at
the top level. If further errors occur you will stay in the break
level and any bindings at the time of the second error will be in
effect as well as any bindings that were in effect at the
previous break level. If bindings effecting atoms whose values
are being held in the first break level are rebound at the second
break level these first bindings will be hidden by the secondary
bindings.
An error in built in functions 'eval' or 'apply' can mean
two things. First, your expression could contain a bad direct
call to eval or apply. Or, your code may be trying to apply a
function that does not exist to a list of parameters, or trying
to apply a bad lambda form. The interpreter does not distinguish
an error made in a direct call by you to eval/apply or an
indirect call to eval/apply, made by the interpreter on your
behalf to get the expression evaluated.
It is also useful to know what the circumstances of the
failure were. You can display the last 20 evaluations with the
command (showstack). This will print the stack from the top to
the 20th element of the stack. This gives you the path of
evaluation that lead to the error. For more information on the
(showstack) command look in the section FUNCTIONS WITH SIDE
EFFECTS OR THAT ARE EFFECTED BY SYSTEM.
It is possible but hopefully pretty unlikely that the
interpreter will stop on an internal error. If this happens try
to duplicate it and let me know so I can fix it.
10
DATA TYPES IN PC-LISP
~~~~~~~~~~~~~~~~~~~~~
PC-LISP has the following data types, 32 bit integers,
single precision floating point numbers, lists, ports for file
I/O, alpha atoms, strings and hunks (up to 126 in length just one
short of Franz!). The (type) function returns these atoms:
fixnum - a 32 bit integer.
flonum - a single precision floating point number.
list - a list of cons cells.
symbol - an alpha atom, with print name up to 254 chars
which may include spaces tabs etc, but which
should not include an (ascii 0) character.
Symbols may have property, bindings and functions
associated with them. Symbols with same print
name are the same object.
string - A string of characters up to 254 in length. It
has nothing else associated with it. Strings
with same print name are not necessarily the
same object.
port - A stream that is open for read or write. This
type can only be created by (fileopen).
hunk - An array of 1 to 126 elements. The elements may
be of any other type including hunks. Franz
allows 127, the missing element is due to a space
saving decision. This type can only be created
by a call to (hunk) or (makhunk).
Fixnums and flonums are together known as numbers. The read
function will always read a number as a flonum and then see if it
can represent it as a fixnum without loss of precision. Hence if
the number 50000000000 is entered it will be represented as a
flonum because it exceeds the precision of a fixnum. If a number
has a decimal point in it, it is assumed to be a flonum
even if there are no non zero digits following the radix point.
Fixnums and flonums may appear the same when printed. The
print function will output a flonum with no radix point if none
is necessary, hence two numbers may look the same when printed
but may be un (equal) because they have different types and hence
different structures.
Hunks when printed appear as { e0 e1 e2 .... eN }. They are
indexed from zero. They cannot be entered, ie there is no read
mechanism for creating them you must create them with a function
call. See HUNKS.
11
THE BUILT IN FUNCTIONS AND VARIABLES
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Following is a list of each built in function. I will denote
the allowed arguments as follows:
- a1...aN are alpha atom parameters, type symbol.
- h1...hN are string or alpha atoms, type string or symbol.
- x1...xN are integer atom parameters, type fixnum (32bits).
- f1...fN are float atom parameters, type flonun.
- n1...nN are number atom parameters, type flonum or fixnum.
- z1...zN are numbers but all are of the same type.
- l1...lN are lists, must be nil or of type list.
- p1...pN are port atom parameters, type port.
- s1...sN are S-expressions (any atom type or list)
- H is a hunk.
Additional Definitions:
~~~~~~~~~~~~~~~~~~~~~~~
"{a|d}+" means any sequence of characters of length greater
than 0 consisting of a's and d's in any combination. This
defines the car,cdr,cadr,caar,cadar... function class as
follows: "c{a|d}+r".
"[ -stuff- ]" indicates that -stuff- is/are optional and if
not provided a default will be provided for you.
"*-stuff-*" indicates that -stuff- is not evaluated. An
example of this is the function (quote *s1*) whose single S-
expression parameter s1 is enclosed in *'s to indicate that quote
is passed the argument s1 unevaluated.
For the simpler functions I will describe the functions
using a sort of "if (condition) result1 else result2" notation
which should be pretty obvious to most people. For functions that
are a little more complex I will give a short English description
and perhaps an example. If the example code shows the '-->'
prompt you should be able to type exactly what follows each
prompt and get the same responses from PC-LISP. If the example
does not show a '-->' prompt the example is a code fragment and
will not necessarily produce the same results shown.
12
PREDEFINED GLOBAL VARIABLES (ATOMS)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A number of atoms are globally prebound by PC-LISP. These
variables are testable and settable by you but in some cases
altering the bindings is highly inadvisable. Note that a binding
can be inadvertently altered by defining one of these atoms as a
local or parameter atom to a function or a prog, or directly by
using 'set' or 'setq'.
"t" - This atom means 'true', it is bound to itself.
Various predicates return this to indicate a true condition. You
should NOT change the binding of this atom, to do so will cause
PC-LISP to produce incorrect answers.
"nil" - This is not really an atom, it represents the empty
list (). It is not bound to () but rather equivalent to () in all
contexts. Any attempt to create a symbol with print name "nil"
will result in ().
"$ldprint" - Is initially bound to "t". When not bound to
"nil" this atom causes the printing of the -- [file loaded] --
message when the function (load file) is executed. When "nil"
this atom prevents the printing of the above message. This is
useful when you want to load files silently under program
control.
"$gcprint" - Is initially bound to "nil". When bound to
"nil" garbage collection proceeds silently. If bound non "nil"
then at the end of a garbage collection cycle 4 numbers are
printed. The first is the number of collection cycles that have
occurred since PC-LISP was started, the second is the percentage
of cons cells that are in use, the third the percentage of alpha
cells, and the third the percentage of heap space that is in use.
These last three numbers are exactly what you get back with a
call to (memstat).
"$gccount$ - Is initially bound to 0. It increases by one
every time garbage collection occurs. This number is the same as
the first number printed when $gcprint is bound non "nil" and
garbage collection occurs. While you can set $gccount$ to any
value you want, its global binding will be reset to the correct
garbage collection cycle count whenever collection finishes.
13
THE MATH FUNCTIONS
~~~~~~~~~~~~~~~~~~
Functions that operate on numbers, fixnums or flonums. Note
that the arrow --X--> may indicate what type is returned. If X is
's' then the same type as the parameter(s) selected is returned.
If X is 'f' then a flonum type is returned. If X is 'x' then a
fixnum is returned. If X is 'b' then the best type is returned,
this means that a fixnum is returned if possible. Note that you
should use fixnums together with "1+, 1- zerop" when ever
possible because doing so gives nearly a 50% decrease in run time
for many expressions, especially counted loops or recursion.
TRIG AND MIXED FUNCTIONS
~~~~~~~~~~~~~~~~~~~~~~~~
(abs n1) --s-> absolute value of n1 is returned.
(acos n1) --f-> arc cosine of n1 is returned.
(asin n1) --f-> arc sine of n1 is returned.
(atan n1 n2) --f-> arc tangent of (quotient n1 n2).
(cos n1) --f-> cosine of n1, n1 is radians
(exp n1) --f-> returns e to the power n1.
(expt n1 n2) - b-> n1^n2 via exp&log if n1 or n2 flonum.
(fact x1) --x-> returns x1! ie x1*(x1-1)*(x1-2)*....1
(fix n1) --x-> returns nearest fixnum to number n1.
(float n1) --f-> returns nearest flonum to number n1.
(log n1) --f-> natural logarithm of n1 (ie base e).
(log10 n1) --f-> log base 10 of n1 {not present in Franz}
(lsh x1 x2) --x-> x1 left shifted x2 bits (x2 may be < 0).
(max n1..nN) --s-> largest of n1...nN or (0 if N = 0)
(min n1..nN) --s-> smallest of n1..nN or (0 if N = 0)
(mod x1 x2) --x-> remainder of x1 divided by x2.
(random [x1])--x-> random fixnum, or random in 0...x1-1.
(sin n1) --f-> sine of n1, n1 is radians.
(sqrt n1) --f-> square root of n1.
(1+ x1) --x-> x1+1.
(add1 n1) --b-> n1+1 (done with fixnums if n1 is fixnum).
(1- x1) --x-> x1-1.
(sub1 n1) --b-> n1-1 (done with fixnums if n1 is fixnum).
BASIC MATH FUNCTIONS
~~~~~~~~~~~~~~~~~~~~
(* x1 ...... ..xN) --x-> x1*x2*x3*.....nN (or 1 if N = 0)
(times n1 .. ..nN) --b-> n1*n2*n3......nN (or 1 if N = 0)
(product n1....nN) --b-> Ditto
(+ x1....... ..xN) --x-> x1+x2+x3+.....xN (or 0 if N = 0)
(add n1 .......nN) --b-> n1+n2+n3+.....nN (or 0 if N = 0)
(sum n1 .......nN) --b-> Ditto
(plus n1.......nN) --b-> Ditto
(- x1....... ..xN) --x-> x1-x2-x3-.....xN (or 0 if N = 0)
(diff n1.......nN) --b-> n1-n2-n3-.....nN (or 0 if N = 0)
(difference....nN) --b-> Ditto
(/ x1....... ..xN) --x-> x1/x2/x3/.....xN (or 1 if N = 0)
(quotient n1...nN) --b-> n1/n2/n3/.....xN (or 1 if N = 0)
Note that the Basic functions that operate on numbers will
return a fixnum if the result can be stored in one.
14
THE BOOLEAN FUNCTIONS
~~~~~~~~~~~~~~~~~~~~~
These functions all return boolean values. The objects t and
nil represent true and false respectively. Note however that most
functions treat a non nil value as being t. t is a predefined
atom whose binding is t while nil is not a real atom but rather
a lexical item that is EQUIVALENT to () in all contexts. Hence
nil and () are legal as both an atom and a list in all functions.
Note when comparing flonums and fixnums you cannot use (eq)
because they are not identical objects. In Franz (eq 1 1) returns
t because of a space saving trick. You should not rely on this
working in other LISPS including PC-LISP.
(alphalessp h1 h2) ---> if (h1 ASCII before h2) t else nil;
(atom s1) ---> if (s1 not type list) t else nil;
(and s1 s2 .. sN) ---> if (a1...aN all != nil) t else nil;
(boundp a1) ---> if (a1 bound) (a1.eval(a1)) else nil;
(eq s1 s2) ---> if (s1 & s2 same object) t else nil;
(equal s1 s2) ---> if (s1 has s2's structure) t else nil;
(evenp n1) ---> if (n1 mod 2 is zero) t else nil;
(fixp s1) ---> if (s1 of type fixnum) t else nil;
(floatp s1) ---> if (s1 of type flonum) t else nil;
(greaterp n1...nN) ---> if (n1>n2>n3...>nN) t else nil;
(hunkp s1) ---> if (s1 of type hunk) t else nil;
(lessp n1...nN) ---> if (n1<n2<n3...<nN) t else nil;
(listp s1) ---> if (s1 of type list) t else nil;
(minusp n1) ---> if (n1 < 0 or 0.0) t else nil;
(not s1) ---> if (s1 != nil) nil else t;
(null s1) ---> Ditto
(numberp s1) ---> if (s1 is fix of float) t else nil;
(numbp s1) ---> Ditto.
(or s1 s2 .. sN) ---> if (any si != nil) t else nil;
(oddp n1) ---> if (n1 mod2 is non zero) t else nil;
(plusp n1) ---> if (n1 > 0 or 0.0) t else nil;
(portp s1) ---> if (s1 of type port) t else nil;
(zerop n1) ---> if (n1 = 0 or 0.0) t else nil;
(< z1 z2) ---> if (z1 < z2) t else nil;
(= z1 z2) ---> if (z1 = z2) t else nil;
(> z1 z2) ---> if (z1 > z2) t else nil;
Note carefully the difference between (eq) and (equal). One
checks for identical objects, ie the same object, while the other
checks for two objects that have the same "structure" and
identical leaves.
Note that the (and) and (or) functions evaluate their
arguments one by one until the result is known. Ie, short circuit
evaluation is performed.
Note that proper choice of fixnums over flonums and proper
choice of fixnum functions can yield large performance
improvements. For example (zerop n) is faster than (= 0 n)
because (zerop) like all functions that take number parameters is
biased towards fixnums.
15
LIST & ATOM CREATORS AND SELECTORS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
These functions will take lists and atoms as parameters and
return larger or smaller lists or atoms. They have no side
effects on the LISP system nor are their results affected by
anything other than the values of the parameters given to them.
These functions are all nondestructive they do not alter their
parameters in any way.
(append l1..ln) ---> list made by joining all of l1..ln.
If any of l1..ln is nil they are
ignored.
(ascii n1) ---> atom with name 'char' where 'char'
has ordinal value n1:(0 < n1 < 256).
(assoc s1 s2) ---> if s2 is a list of (key.value) pairs
then assoc --> (key.value) from s2,
where (equal key a1) is t else nil.
(car l1) ---> first element in l1. If l1 is nil
car returns nil.
(cdr l1) ---> Everything but the car of l1. If
l1 is nil cdr returns nil.
(c{a|d}+r l1) ---> performs repeated car or cdr's on
l1 as given by reverse of {a|d}+.
Returns nil if it cars or cdrs off
the end of a list.
(character-index h1 h2) -x-> Returns the position (from 1) of
first char in h2 in h1 or nil if
this char does not occur in h1.
(concat h1 .. hN) ---> Forms a new atom by concatenating
all the strings or atoms. Or nil if
if N = 0.
(cons s1 s2) ---> list with s1 as 1st elem s2 is rest.
If s2 is nil the list has one
element. If s2 is an atom the pair
print with a dot. (cons 'a 'b) will
print as (a . b).
(explode h1) ---> list of chars in print name of h1.
If h1 is nil returns (n i l)
(exploden h1) ---> list of ascii values of chars in h1.
If h1 is nil returns (110 105 108).
(get_pname h1) ---> String equal to print name of atom
h1 or same as string h1.
16
LIST & ATOM CREATORS AND SELECTORS (CONT'D)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(hunk-to-list H) ---> Returns a list whose elements are
(eq) to those of hunk H and in the
same order.
(implode l1) ---> atom with name formed by compressing
all atom elements of l1. If l1 is
(equal) to (n i l) implode returns
nil.
(last l1) ---> returns the last element in l1. If
l1 is nil it returns nil.
(length l1) -x-> fixnum = to length of list l1.
The length of nil is 0.
(list s1 s2...sN) ---> a list with elements (s1 s2 ...sN)
If N = 0 list returns nil.
(member s1 l1) ---> If (s1 (equal) to a top level sub
list of l1) this sublist, else nil.
(memq s1 l1) ---> If (s1 (eq) to a top level sub list
of l1) this sublist, else nil.
(nth n1 l1) ---> n1'th element of l1 (indexed from 0)
like (cad...dr l1) with n1 d's.
(nthcdr n1 l1) ---> returns result of cdr'ing down the
list n1 times. If n1 < 0 it returns
(nil l1).
(nthchar h1 n1) ---> n1'th char in the print name of h1
indexed from 1.
(pairlis l1 l2 l3) ---> l1 is list of atoms. l2 is a list
of S-expressions. l3 is a list of
((a1.s1)....) The result is the
pairing of atoms in l1 with values
in l2 with l3 appended (see assoc).
(quote *s1*) ---> exactly s1 unevaled without changes.
(reverse l1) ---> the list l1, reversed at top level.
(type s1) ---> list,flonum,port,symbol, fixnum or
hunk as determined by the type of
the parameter s1.
17
LIST & ATOM CREATORS AND SELECTORS (CONT'D)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(sizeof h1)
~~~~~~~~~~~
Will return the number of bytes necessary to store an object
of type h1. Legal values for h1 are 'list,'symbol,'flonum,
'fixnum, 'string , 'hunk and 'port. The size returned is the
amount of memory used to store the cell, incidental heap space,
property list space, binding stack space and function body space
is not counted for types 'symbol, 'string or 'hunk.
(stringp s1)
~~~~~~~~~~~~
Will return t if the S-expression s1 is of type string,
otherwise it returns nil.
(substring h1 n1 [n2])
~~~~~~~~~~~~~~~~~~~~~~
If n1 positive substring will return the substring in string
h1 starting at position n1 (indexed from 1) for n2 characters or
until the end of the string if n2 is not present. If n1 is
negative the substring starts at |n1| chars from the end of the
string and continues for n2 characters or to the end of the
string if n2 is not present. If the range specified is not
contained within the bounds of the string, nil is returned.
(memusage s1) { not in Franz }
~~~~~~~~~~~~~
Will return the approximate amount of storage that the S-
expression s1 is occupying in bytes. The printname heap space is
included in this computation as are file true name atoms. This
function is not smart, it will count an atom twice if it is
referenced more than once in the list. The space count does not
include storage needed for binding stacks, property lists, or
function bodies that are associated with a particular atom. Hunk
and string space include the heap space owned by the cell.
18
FILE I/O FUNCTIONS
~~~~~~~~~~~~~~~~~~
These functions perform simple list/atom and character I/O
you must be careful when writing lists to files to terminate with
a new line before closing the file. Otherwise they may cause
problems for some MS-DOS editors etc. These functions operate on
type 'port' which is returned by 'fileopen' and which when
printed is just %file@nn% where 'file' is the name of associated
port and nn is the file number 0..(20?). You cannot have more
than 5 ports open to the same file at any one time, nor more than
20 ports open in total.
(close p1)
~~~~~~~~~~
Closes the port p1 and returns t. Note that you must be
careful to write a line feed (ascii 10) to the file before
closing it in some cases. Certain MS-DOS text editors do not like
files with very large line lengths.
(fileopen h1 h2)
~~~~~~~~~~~~~~~~
Opens file whose name is h1 for mode h2 access. h1 should be
a file name optionally including a path. h2 should be one of 'r,
'w, or'a meaning read, write or append respectively. The function
if successful returns a port atom which will print as %file@nn%.
If the function is not successful nil is returned. Fileopen does
not look in any but the current directory for a relative path or
file. Note devices like "con:" are allowed in place of file
names.
(filepos p1 [x1])
~~~~~~~~~~~~~~~~~
If fixnum parameter x1 is not provided filepos will return
the current file position where the next read/write operation
will take place for port p1. If x1 is provided it is interpreted
as a new position where the next read/write should take place.
The read/write pointer is seeked accordingly and the value x1 is
returned if the seek completes successfully. Otherwise nil.
(load h1)
~~~~~~~~~
Will try to find the file whose name is h1 and load it into
PC-LISP. Loading means reading every list, and evaluating it. The
results of the evaluation are NOT printed on the console. In
trying to find the file h1, load uses the following strategy.
First it looks for file h1 in the current directory, then it
looks for h1.l in the current directory. Then it gets the value
of the environment variable LISP%LIB which should be a comma
separated sequence of MS-DOS paths (exactly the same syntax as
for PATH). It then repeats the above searching strategy for every
directory in the path list. For example if I entered this from
the COMMAND shell:
19
FILE I/O FUNCTIONS (CONT'D)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
"set LISP%LIB= c:\usr\libs\lisp\bootup ; c:\lisp\work\;"
then ran PC-LISP, it would try to load the file PC-LISP.L first
from the current directory, then from the two directories on the
C drive that are specified in the above assignment. Future calls
to (load h1) will also look for files in the same way. When a
file has been successfully loaded PC-LISP examines the value of
atom $ldprint. If this value is non-nil (default is t) PC-LISP
will print a message saying that the file was loaded
successfully. If this value is nil then no message is printed. In
either case if the load is successful a value of t is returned
and if the load fails a value of nil is returned.
(patom s1 [p1]) & (princ s1 [p1])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Will cause the S-expression s1 to be printed without
delimiters on the output port p1, or on the standard output if no
p1 parameter is given. Without delimiters means that if an atom
has a print name that is not legal without the | | delimiters
they will not be added when printing the list with patom. patom
returns s1 while princ returns t. Strings print w/o quotes.
(print s1 [p1])
~~~~~~~~~~~~~~~
Will cause the S-expression s1 to be printed with delimiters
if necessary on the output port p1, or on the standard output if
no p1 parameter is given. All atoms that would require | |
delimiting to be input, will be printed with | | delimiters
around them. The expression s1 is returned.
(read [p1 [s1]])
~~~~~~~~~~~~~~~~
Reads the next S-expression from p1 or from the standard
input if p1 is not given and returns it. If s1 is given and end
of file is read the read function will return s1. If s1 is not petera@utcsri.UUCP (Smith) (04/27/86)
[ line eater ]
[ PC-LISP.EXE (part 4 of 4)
----------------- CUT HERE ------------------------------
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M M+2T@97)R;W(@979A;'5A=&EN9R!B=6EL="!I;B!F=6YC=&EO
M;B!;)7-=("TM+0H
M !C>V%\9'TK<@!A<'!E;F0 <75O=&4 8V%R &-D<@!C;VYS &%T
M;VT 97$ ;G5L; !N;W0 <'5T<')O< !G970 9F5X<'( 97AP<@!M86-R;P!D
M969U;@!D968 <'5T9 !G971D &%S<V]C '!A:7)L:7, 97AP;&]D90 M+2T@
M8W)E871E9"!A=&]M('1O;R!B:6<@+2TM"@!I;7!L;V1E &5X<&QO9&5N "L
M+0 J "TM+2!D:79I9&4@8GD@>F5R;R M+2T* "\ ;6%X &UI;@!M;V0 / ^
M #T <')O9P!S970 <V5T<0!R971U<FX 9V\ <F5V97)S90!E=F%L &%P<&QY
M &5X:70 <&QI<W0 9V, 9V5T96YV "TM+2!787)N:6YG(&UA8W)O(&1I9"!N
M;W0@<F5T=7)N(&$@;F]N(&5M<'1Y(&QI<W0@+2TM"@!M86-R;V5X<&%N9 !M
M87!C87( :'5N:W :'5N:P!M86MH=6YK &AU;FMS:7IE &-X<@!R<&QA8W@
M:'5N:RUT;RUL:7-T /&5N=&5R/B /$58250^(" +2TM('5N8F]U;F0@
M871O;2!;)7-=("TM+0H +2TM(&UA8W)O("5S(&1I9"!N;W0@<F5T=7)N(&QI
M<W0@+2TM"@
M
M
M
M
M
M !+
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M 3$E34" H:6YT97)N86PI
M($9I;F12969E<F5N= H ;FEL "TM+2!B860@9F]R;6%L('!A<F%M971E<B!I
M;B!U<V5R(&9U;F-T:6]N("TM+0H 87!P;'D +2TM(&%C='5A;"!P87)A;65T
M97)S(&1O;B=T(&%G<F5E('=I=&@@9F]R;6%L('!A<F%M971E<G,@+2TM"@ M
M+2T@871T96UP="!T;R!R961E9FEN92!B=6EL="!I;B!F=6YC=&EO;B!;)7-=
M("TM+0H <'5T9'QD969\9&5F=6X +2TM(&)A9"!L;V-A;"!V87)I86)L92 M
M+2T* '!R;V<@;W(@87!P;'D 3&ES<"!I;G1E<FYA;"!E<G)O<B!I;B!3971,
M;VYG5F%R"@
M
M $Q)4U @+2 H26YT97)N86PI($AO;&13=&%C:T]P97)A=&EO;B$* %M=( !)
M;G1E<FYA;" M($AO;&13=&%C:T]P97)A=&EO;@!3>6YT87@@17)R;W(@+2 E
M<PH 8F%D('5S92!O9B!D;W0 8F%D(&QI<W0@;F5S=&EN9R$ ;&ES="!D:60@
M;F]T('-T87)T('=I=&@@)R@G 'L ( !] "5S 'PE<WP )24E<T E,#)D)24
M)68 )2XP9@ E;&0 (B5S(@!,:7-P(&EN=&5R;F%L("AP<FEN=&%T;VTI"@ @
M/"HJ/@!Q=6]T90 G "@ ("X@ "D "@!P<F]G HM+2T@4W1A8VL@3W9E<D9L
M;W< (&EN(&=C+"!W:6QL(')E<W1A<G0@=&AE(&=C(2 H<VAO=W-T86-K(&YO
M="!C=7)R96YT*0 @86=A:6XA(%)E;6]V:6YG(&YO;B!G;&]B86P@8FEN9&EN
M9W,@86YD(')E=')Y:6YG(0 @86=A:6XA($U%34]262!#3U)255!4(2!93U4@
M35535"!154E4(%))1TA4($Y/5R$* $Q)4U @*&EN=&5R;F%L*2!U;FMN;W=N
M(&UA<FMI;F<@=F%L=64_/PH ("TM+0H "BTM+2!);G1E<G)U<'1E9" M+2T*
M '( +FP 3$E34"5,24( 7 D;&1P<FEN= M+2!;)7-=(&5M<'1Y("TM"@ M
M+2T@6R5S72!L;V%D960@+2TM"@ M+2T@26YT97)N86PZ($)A9"!-87)K(%-T
M86-K(%1O<" H;6ES<VEN9R!P;W _*2 M+2T* %!#+4Q)4U @5C(N,3 @*%-H
M87)E5V%R92D@07!R:6P@,3DX-B!B>2!0971E<B!!<VAW;V]D+5-M:71H"@!,
M25-0)4%,4$@ 3$E34"5(14%0 $Q)4U E345- $Q)4U E2T5%4 !P8RUL:7-P
M+FP +2TM(&-A;B=T(&9I;F0@)7,@+2TM"@!E<CX +2T^ "1
M
M
M
M
M
M 4V5T("4E)W,@=&]T
M86P@;6]R92!T:&%N(#DP)24A"@!786ET+BX " @(" @( %-O<G)Y($D@;F5E
M9" ^("5L9"!B>71E<R!T;R!R=6X@8G5T(&]N;'D@)6QD(&%R92!A=F%I;&%B
M;&4A"@!3970@)24G<R!D;VXG="!L96%V92!M96UO<GD@9F]R(&%T(&QE87-T
M(#$@8V5L;"!B;&]C:R$* %!#+4Q)4U @=7 @=VET:" E;&0@8GET97,@9G)E
M92P@)6QD)24@86QP:&$L("5L9"4E(&AE87 N"@!,25-0("T@8V]N<R!C96QL
M(&UE;6]R>2!E>&AA=7-T960N"@!,25-0("T@86QP:&$@;65M;W)Y(&5X:&%U
M<W1E9"X* $Q)4U M:6YT97)N86PZ:&5A<&=E="@I(0H 3$E34"AI;G1E<FYA
M;"D@26YF;W)M(%)E;&]C871I;F<H*0H 3&ES<" M(&]U="!O9B!H96%P('-P
M86-E"@ D9V-P<FEN= D9V-C;W5N="0 +2TM("-G8STE;&0L(&-O;G,])6QD
M)24L(&%L<&AA/25L9"4E+"!H96%P/25L9"4E("TM+0H
M
M
M
M
M
M = !N:6P ;&%M8F1A &YL86UB9&$ ;6%C
M<F\ ;&%B96P )%M\9V]\720 )%M\<F5T=7)N?%TD "1G8V-O=6YT) D;&1P
M<FEN= D9V-P<FEN= !M96US=&%T '%U;W1E &-A<@!C9'( 8V]N<P!A=&]M
M &5Q &YU;&P <'5T<')O< !G970 9&5F &-O;F0 87-S;V, <&%I<FQI<P K
M "T *@ O #T / ^ &UO9 !M87@ ;6EN '!R;V< <V5T ')E='5R;@!G;P!R
M979E<G-E &%P<&5N9 !E>'!L;V1E &EM<&QO9&4 97AP;&]D96X ;&ES= !A
M<V-I:0!P<FEN= !P871O;0!P<FEN8P!R96%D8P!R96%D &5V86P 87!P;'D
M;6%P8V%R &YT: !N;W0 ;&5N9W1H &9I;&5O<&5N &-L;W-E &%N9 !O<@!E
M>&ET '-E='$ <&QI<W0 9V, 9V5T96YV &1E9G5N '!U=&0 9V5T9 !O8FQI
M<W0 :&%S:'1A8G-T870 97%U86P 86QP:&%L97-S< !N=&AC:&%R &)O=6YD
M< !G96YS>6T ;&ES=' 9FQO871P '!O<G1P '1Y<&4 ;&]A9 !S971P;&ES
M= !R96UP<F]P &%B<P!A8V]S &%S:6X 871A;@!C;W, 97AP &5X<'0 9F%C
M= !L;V< ;&]G,3 <VEN '-Q<G0 <F%N9&]M '1R86-E '5N=')A8V4 ;6%C
M<F]E>'!A;F0 <VAO=W-T86-K &9L871C &9L871S:7IE '!P+69O<FT <WES
M.G5N;&EN:P!F:6QE<&]S '1R=65N86UE '-I>F5O9@!M96UU<V%G90 Q*P!A
M9&0Q #$M '-U8C$ 9FEX &9L;V%T '-U;0!A9&0 <&QU<P!D:69F &1I9F9E
M<F5N8V4 <')O9'5C= !T:6UE<P!Q=6]T:65N= !G<F5A=&5R< !L97-S< !O
M9&1P &5V96YP 'IE<F]P &UI;G5S< !P;'5S< !L<V@ 9FEX< !N=6UB< !N
M=6UB97)P &QA<W0 ;G1H8V1R '-T<FEN9W 8VAA<F%C=&5R+6EN9&5X &=E
M=%]P;F%M90!S=6)S=')I;F< 8V]N8V%T &AU;FL ;6%K:'5N:P!H=6YK<VEZ
M90!C>'( <G!L86-X &AU;FLM=&\M;&ES= !H=6YK< !M96UB97( ;65M<0!R
M<&QA8V$ <G!L86-D &-O<'D 3$E34"!I;G1E<FYA;"P@=6YK;F]W;B!C96QL
M"@!P;W)T &9L;VYU;0!F:7AN=6T <W1R:6YG '-Y;6)O; 9R4P-6QD
M "TM+2!A=&]M('1O;R!B:6<@+2TM"@ E<R4P-6QD &]T:&5R H <W5M?'!L
M=7-\861D &1I9F9\9&EF9F5R96YC90!T:6UE<WQP<F]D=6-T "TM(&1I=FED
M92!B>2!Z97)O("TM"@!N=6UB<'QN=6UB97)P *L1:@IJ&&H*>AAJ"B$9:@KY
M&6H*SQIJ"AL>:@I '6H*A!9J"J,7:@H='&H*IQMJ"GP?:@JU'VH*&")J"JPB
M:@IB(VH*[29J"JPG:@K**&H*/2EJ"J8I:@H1*FH*<R9J"IPD:@HV)6H*9"QJ
M"OTL:@IW+6H*93-J"O$M:@KE+FH*XC!J"L(R:@I?+VH*V2]J"FLN:@I(,FH*
M*31J"HXU:@I!-FH*]#9J"CDW:@H;.&H* 3EJ"D4Z:@J[.FH*\#MJ"MT4:@J%
M%&H*93QJ"N,\:@JS/6H*,3YJ"@$_:@JA/VH*2T!J"FQ!:@KU0FH*%D1J"L%%
M:@JU1FH*-$AJ"JE':@J_2&H*E$EJ"FI*:@I+2VH*-TQJ"JI,:@HU36H*\4UJ
M"C9/:@H#4&H*QU!J"I)3:@HM46H*M%1J"GM5:@K?5FH*0%9J"D58:@H
M / _ X#\ #POP .!!(W-C<FUD92,
M(W-C<G-C<", (W-C<G-C=", (W-C<G-A<", (W-C<G=D;W0C "-S8W)L:6YE
M(P C=&EM92, (V1A=&4C ( NP/S#U %\P^N!/,/0 3S#RP&\P\(!_,//@+S
M#^D \P\
M !@M1%3[(>D_&"U$5/LA^3\8+414^R'I/P
M 97,M.%+!X#\8+414^R'Y/V5S+3A2P? _<W%R= !L;V< ;&]G,3 97AP
M &-O<P!S:6X 86-O<P!A<VEN *&& 0 7"6TYE^+B/_;,D@ UM=H_S#M_9IZ@
MYC\ . _*+U6LQ5$Z;_LKQ8@2F(P0)JULQ+_!U# #LYG
M2X#50<!])A7Z@X!S0'>0#9S^"XC J QA7!#0*[\ #!V0 (!
M#N4F%7O+VS]^48+^0BY60'<H"O2)U57 HXT7]/__CSP #P/_Z"*V5'
M%?<_'I+F*D2+ #^E$BKR2P=_/P - _503E#&,SJ3[?U"A<#*]$/_[9
MWU$H%ZT_&"U$5/LA^3\ >@\6Q08+(R6TP7]0_ B"4"=Y9Y+[Z[B
MOC$QY6&>H$8^E-^3:?^ Z#R;20C<(.1JO2_4:F@\$N8]J\!=2T7F6KYB\"2E
MXQW'/AH^ 1J@ 2J_L! 1$1$1@3]45555557%OV0>YK6]2^:_)SGL9!=.)$"?
MVJ:I+-A#P(K4"C:GFDQ 8@HZJ%5>.\ ?AOENZ-(WP&\<699\WF) 1ZA6_,[=
M=\!"N!X03Q)Z0,R'*S[ AF3 JDQ8Z'JV^S^]A['9>LWJOV-JC5P__2# RKSB
MN7^!-,#A' 91IF KP!#'2N%)#"Y UJ,-,@K*34"D;0L$$HI50*F5Q+Q\B$1
M @%5514$
M
M
M
M
M
M
M
M
M !
M8V]N.@ 4-/3CH )P<FXZ "4%)..@ FQS=#H
M ),4U0Z ";'!T.@ DQ05#H )L<'0Q.@ "
M3%!4,3H V%U>#H -!55@Z #8V]M.@ T-/33H
M -C;VTQ.@ #0T]-,3H W)D<CH -21%(Z #
M<'5N.@ U!53CH 1N=6PZ $3E5,.@ !&YU;&PZ
M 1.54Q,.@
M
M
M @
M
M
M @(" @(" @(" H*"@H*" @(" @(" @(" @(" @(" @($@0
M$! 0$! 0$! 0$! 0$!"$A(2$A(2$A(2$$! 0$! 0$(&!@8&!@0$! 0$! 0$!
M 0$! 0$! 0$! 0$!$! 0$! 0@H*"@H*" @(" @(" @(" @(" @(" @(" @(0
M$! 0(" @(" @(" @("@H*"@H(" @(" @(" @(" @(" @(" @2! 0$! 0$! 0
M$! 0$! 0$(2$A(2$A(2$A(00$! 0$! 0@8&!@8&! 0$! 0$! 0$! 0$! 0$!
M 0$! 0$0$! 0$!""@H*"@H(" @(" @(" @(" @(" @(" @(" A 0$! @
D,#$R,S0U-C<X.4%"0T1%1@ @
endpetera@utcsri.UUCP (Smith) (04/27/86)
[ line eater ]
[ PC-LISP.EXE (part 3 of 4) ]
-------------------- CUT HERE -----------------
M! "R$[[2F8E$!HE<!(E, HD4BT8BF@, D1,>OM*95IH( #(2@\0,7<N#Q Q=
MRU6#[!0[)A <@7J8@$ (OL%HU&$E SP%"+1B"+7AZ+3AR+5AI04U%2#NBR
M 8OEB480B5X.B4X,B58*L0.+1A+3X(S;OOJ9 _"_^ID#^(E>"([#)HM$!B:+
M7 0FBTP")HL4CD8(B_<&5IH$ +(3%HUV"E::! "R$XE&$(E>#HE.#(E6"HM&
M((M>'HM.'(M6&AZ^>YI6F@P YQ-]'8M&$(M>#HM.#(M6"IH) %\2B480B5X.
MB4X,B58*BT80BUX.BTX,BU8*@\047<M5@^P4.R80 '(%ZF(! "+[!:-1A)0
MN $ 4(M&((M>'HM.'(M6&E!345(.Z.< B^6)1A")7@Z)3@R)5@J+1B"+7AZ+
M3AR+5AH>OGN:5IH, .<3?4NQ XM&$M/@C-N^"IH#\+\*F@/XB5X(CL,FBT0&
M)HM<!":+3 (FBQ2.1@B+]P96F@0 LA,6C78*5IH$ +(3B480B5X.B4X,B58*
MZV6Q XM&$M/@C-N^^ID#\(E& ([#)HM$!B:+7 0FBTP")HL4%HUV"E::$@"R
M$XE&$(E>#HE.#(E6"HS8OOJ9 W8 B48"BT80BUX.BTX,BU8*CD8"!E::! "R
M$XE&$(E>#HE.#(E6"HM&$(M>#HM.#(M6"H/$%%W+58/L&#LF$ !R!>IB 0
MB^R+1B2+7B*+3B"+5AZ)1@Z)7@R)3@J)5@@SP(M>#H#G?XE>#HM&#HM>#(M.
M"HM6"!Z^@YI6F@P YQ-_ ^G2 ;@! (M>)BO#Q'8H)HD$BT8.BUX,BTX*BU8(
M'K[SFE::# #G$WX@@WXF '0.'KA5FE":70!\ (OEZPP>N%J:4)I= 'P B^6^
M\YJ+1 :+7 2+3 *+%!:-=@A6FA( LA,>OH.:5IH( #(24%-14HE&%HE>%(E.
M$HE6$ [HR_"+Y9H) %\2B48.B5X,B4X*B58(L02+1@[3Z(#D!T"Q!-/@)?!_
MBTX.@>$/@ O(B4X.BT86BUX4BTX2BU80'KZCFU::" R$AZ^JYM6F@0 LA,6
MC7805IH( #(2'KZSFU::! "R$Q:-=A!6F@@ ,A(>OKN;5IH$ +(3%HUV$%::
M" R$AZ^PYM6F@0 LA,6C7805IH( #(2ONJ9B40&B5P$B4P"B12+1A:+7A2+
M3A*+5A >OLN;5IH$ +(3%HUV$%::" R$AZ^TYM6F@0 LA,6C7805IH( #(2
M'K[;FU::! "R$Q:-=A!6F@@ ,A(>ON.;5IH$ +(3%HUV$%::" R$AZ^ZYM6
MF@0 LA.^\IF)1 :)7 2)3 *)%+[JF8M$!HM<!(M, HL4%HUV"%::" R$AZ^
M\IE6F@< ?!,6C78(5IH$ +(3ON*9B40&B5P$B4P"B13I:@&+1B;$=B@FB02+
M1@Z+7@R+3@J+5@@>OEN;5IH, .<3?1&^XIF)1 :)7 2)3 *)%.DX 8M&#HM>
M#(M."HM6"!:-=@A6F@@ ,A*)1A:)7A2)3A*)5A >OJ.;5IH( #(2'KZKFU::
M! "R$Q:-=A!6F@@ ,A(>OK.;5IH$ +(3%HUV$%::" R$AZ^NYM6F@0 LA,6
MC7805IH( #(2'K[#FU::! "R$Q:-=A!6F@@ ,A*^ZIF)1 :)7 2)3 *)%(M&
M%HM>%(M.$HM6$!Z^RYM6F@0 LA,6C7805IH( #(2'K[3FU::! "R$Q:-=A!6
MF@@ ,A(>OMN;5IH$ +(3%HUV$%::" R$AZ^XYM6F@0 LA,6C7805IH( #(2
M'K[KFU::! "R$[[RF8E$!HE<!(E, HD4ONJ9BT0&BUP$BTP"BQ06C78(5IH(
M #(2'K[RF5::!P!\$Q:-=@A6F@0 LA.^XIF)1 :)7 2)3 *)%+[BF8M$!HM<
M!(M, HL4@\087<M5@^P2.R80 '(%ZF(! "+[(M&'HM>'(M.&HM6&+[2F8E$
M!HE<!(E, HD4,\"+'MB9@.=_B1[8F8M$!HM<!(M, HL4'K[SFE::# #G$WXM
MOO.:BT0&BUP$BTP"BQ0>OM*95IH' 'P3QT80 @"^TIF)1 :)7 2)3 *)%.L%
MQT80 "^TIF+1 :+7 2+3 *+%!Z^\YM6F@P YQ-_ ^E_ !Z^\YM6F@@ ,A(>
MOH.:5IH2 +(3'KZ#FE::$@"R$QZ^TIE6F@0 LA.)1@:)7@2)3@*)5@"^TIF+
M1 :+7 2+3 *+%!Z^\YM6F@0 LA.)1@Z)7@R)3@J)5@B+1@:+7@2+3@*+5@ 6
MC78(5IH' 'P3_T80OM*9B40&B5P$B4P"B12^TIF+1 :+7 2+3 *+%!Z^>YI6
MF@P YQ-]$[[2F8M$!HM<!(M, HL4F@D 7Q(>OEN;5IH, .<3?1^^TIF+1 :+
M7 2+3 *+%+[:F8E$!HE<!(E, HD4Z18!OM*9BT0&BUP$BTP"BQ0>OM*95IH(
M #(2ON*9B40&B5P$B4P"B10>OON;5IH( #(2'KX#G%::! "R$QZ^XIE6F@@
M,A(>O@N<5IH$ +(3'K[BF5::" R$AZ^$YQ6F@0 LA,>ON*95IH( #(2ONJ9
MB40&B5P$B4P"B12^XIF+1 :+7 2+3 *+%!Z^&YQ6F@0 LA,>ON*95IH( #(2
M'KXCG%::! "R$QZ^XIE6F@@ ,A(>OBN<5IH$ +(3'K[BF5::" R$AZ^,YQ6
MF@0 LA.^\IF)1 :)7 2)3 *)%+[JF8M$!HM<!(M, HL4'K[2F5::" R$AZ^
M\IE6F@< ?!,>OM*95IH$ +(3OMJ9B40&B5P$B4P"B12#?A !?AZ^VIF+1 :+
M7 2+3 *+%)H) %\2B40&B5P$B4P"B12Q XM&$-/@C-N^&IH#\([#)HM$!B:+
M7 0FBTP")HL4'K[:F5::! "R$[[:F8E$!HE<!(E, HD4BT8>BUX<BTX:BU88
M'KY[FE::# #G$WT>OMJ9BT0&BUP$BTP"BQ2:"0!?$HE$!HE<!(E, HD4OMJ9
MBT0&BUP$BTP"BQ2#Q!)=RU6#[! [)A <@7J8@$ (OLH6&:BQY?FC/)NGT
MF@$ 0A*Y*@"ZJZJC89J)'E^:F@4 ;A.Y*@"ZJZJ: 0!"$HL.7YHKRXL689H;
MT(O"B]FC89J)#E^:F@8 CA,>OCN<5IH' 'P3B48&B5X$B4X"B58 BT8DBUXB
MBTX@BU8>%HUV%E::$@"R$Q:-=@!6F@@ ,A(6C7865IH$ +(3@\007<M5@^P8
M.R80 '(%ZF(! "+[+[SFHM$!HM<!(M, HL44%-14C/ ,]LSR3/24%-14@[H
M+?^+Y8E&%HE>%(E.$HE6$(M&+(M>*HM.*(M6)A:-=AY6F@< ?!-04U%2#NC4
MZXOE%HUV$%::" R$E!345(.Z.[NB^46C78>5IH( #(2B486B5X4B4X2B580
M@\087<M5@^P,.R80 '(%ZF(! "+[(S8NT2<B48&B5X$BT8$NZR=.\-S%8Y&
M!HOP)HI$###DA<!T!H-&!!+KX8M&!HM>!(S9NJR=.\%U CO:=0DSP#/;@\0,
M7<O_=@;_=@3_=AC_=A;_=A3_=A(.Z < B^6#Q Q=RU6#[ X[)A <@7J8@$
M (OLQ'8<)HI$#(3 ="4PY"4" '0-!E:X__]0FDH!*1.+Y<1V'":*1 TPY%":
M, F.$HOEQ'88)HI$ 3#D/2L = 0SV^L#,]M#)HH$,.2(7@SI!0&A'*$-" ")
M1@""?@P = 6X @#K [@! (M> O8@<L ;BD 5!3_W86_W84FE0 CA*+Y8E&
M!D!U"3/ ,]N#Q Y=R[@" % SP% SVU/_=@::*@B.$HOE@GX, '0%N( ZP.X
M @")1@3ILP""?@P = 6X @#K C/ BQX<H0O84_]V%O]V%)I4 (X2B^6)1@9
M=0DSP#/;@\0.7<N"?@P = 6X@ #K [@! (E&!.MP@GX, '0%N ( ZP.X 0"+
M'ARA"]B!RP !@<L KBD 5!3_W86_W84FE0 CA*+Y8E&!D!U"3/ ,]N#Q Y=
MRX)^# !T!;B .L#N ( B48$ZR SP#/;@\0.7<L]=P!THCUR '4#Z5?_/6$
M=0/IYO[KX(M&!M'@T>"+\(*\K9T =!^!3@0$ (M&'HM>'(/#$([ BW8<)HE$
M"H[ )HE<".L/Q'8<)L=$"@ )L=$" BT8&Q'8<)HA$#2:+1 HFBUP()HE$
M B:)'#/ )HE$!B:)1 2+1@0FB$0,C,"+WH/$#EW+58/L!#LF$ !R!>IB 0
MB^S$=@HFBD0,,.0E @!T#096N/__4)I* 2D3B^7$=@HFBD0,,.0E# !U&B:#
M? X =!,F_W0.)O]T"B;_= B:50.V%(OEQ'8*)L=$"@ )L=$" )L=$#@
M)L9$# FBD0-,.10FC )CA*+Y8/$!%W+55>#[!:+[(Y&(":+? 8S^(E^ B7_
M?W41B_@+^W4+"_EU!POZ=0/IE0 FBWP&@>?_?W41)@M\!'4+)@M\ G4%)@L\
M='J:"@ @%8EV!(E&!HE>"(E."HE6#(MV'B:+1 8FBUP$)HM, B:+%)H* " 5
M 78$B48.B5X0B4X2B584,_8SP#/;,\DSTHM^#.A# (M^"N@] (M^".@W (M^
M!N@Q (7V= W1[M'8T=O1V=':_T8$BW8$BWX"F@P (Q7K"#/ ,]LSR3/2BW8>
M@\067UW*! #'1@ 0 -'NT=C1V]'9T=K1[W,/ U84$TX2$UX0$T8.@]8 _TX
M==[#58/L!(OLB48 "\-T7XE. @O*=%2+1@"+3@*+\(7V>0?WT/?;'?__,_&)
M=@"%R7D']]'WVH/9_[X@ (EV C/V,__1[M'?T=C1VW,$ _H3\?]. G7MT>C1
MVXMV (7V>0WWT/?;'?__ZP0SP#/;@\0$7<M5@^P&.R80 '(%ZF(! "+[,=&
M! BT8$/10 ?1J[$@#WZXS;N42< \A349IG @02B^7_1@3KWL=&! @WX$
M%'T/_W8$FC )CA*+Y?]&!.OK_W80_W8._W8,F@ &12+Y8/$!EW+58/L##LF
M$ !R!>IB 0 B^R#?A( =0DSP#/;@\0,7<N#1A("_W82FED!MA2+Y8E&!@O#
MB5X$=0DSP#/;@\0,7<N+1@:+=@2+7A*.P":)'(O>B5X(B48*@\,"<P2!P 0
MF@( BQ*#Q Q=RU6#[ P[)A <@7J8@$ (OLBT82]V844(E&! [H=_^+Y8E&
M"@O#B5X(=0DSP#/;@\0,7<LSP%#_=@3_=@K_=@B: @"R%(OEBT8*BUX(F@(
MBQ*#Q Q=RU6#[ @[)A <@7J8@$ (OLBT80BUX.@^L"<P2!Z 0CL F_S=0
M4XE&!HE&$(E>!(E>#II5 [84B^6#Q A=RZG_?W4#,\#+-0" RU6![!8!.R80
M '(%ZF(! "+[(S0C9X@ 8E&%(E>$L2V' $FB@0PY(7 =0/I' &+QHE& $ F
MBAPP_X/[)8F&' &)7@IT ^G0 (OP)HH<,/^#^R5U._^&' $FB@0PY(L>7)Q+
MA=N)1@J)'ER<> _$-E:<_P96G":(!##DZZ*,V+M6G%!3_W8*FDH!*1.+Y>N/
M%HU&#% 6C4824!:-1A90_[8> ?^V' &:# H%(OEB480"\.)7@YU ^ED_XM&
M$,=&" B88> 8F>' &+1@B+7@P[V'\#Z4?_BQY<G$N%VXD>7)QX&(LV5IS_
M!E:<B_B*0Q:.!EB<)H@$,.3K%XMV"(I"%C#DC-NY5IQ345":2@$I$XOE_T8(
MZ[*A7)Q(A<"C7)QX$\0V5IS_!E:<BT8*)H@$,.3IZ/Z,V+M6G%!3_W8*FDH!
M*1.+Y>G4_H'$%@%=RU6#[ 8[)A <@7J8@$ (OLQ'8,)HI$###D)0( = \&
M5KC__U":2@$I$XOEZQJ#?A0!=13$=@PFBT0$,]N%P'D!2RE&$!E>$L1V#":+
M1 HFBUP()HE$ B:)'#/ )HE$!B:)1 0FBD0,,.2I@ ")1@!T!R7\_R:(1 S$
M=@PFBD0-,.3_=A3_=A+_=A!0FBH(CA*+Y8/[_W4#/?__=0BX__^#Q 9=R\1V
M#":*1 PPY"7/_R:(1 PSP(/$!EW+58/L"CLF$ !R!>IB 0 B^S$=A FBD0-
M,.2[ 0!3,]M3,\E14)HJ"(X2B^6#^_]U SW__XE&"(E>!G0*Q'80)H-\#@!U
M"XM&"(M>!H/$"EW+Q'80)HI$###D)0( ="$FBP0F*T0(,]N%P'D!2XM.!@/(
MBU8($].+PHO9@\0*7<O$=A FBT0$,]N%P'D!2XM.!BO(BU8(&].+PHO9@\0*
M7<M1L033P(O()0\ @>'P_P/9%0 B\N!X0\ D]'KT=C1Z]'8T>O1V-'KT=B+
MV5G+58/L!#LF$ !R!>IB 0 B^R+1@J%P'@6/10 ?1'1X-'@B_"*A*R=,.0E
M@ !U#\<&])\) #/ ,]N#Q 1=RXM&"M'@T>",V[FLG0/(B\.+V8/$!%W+58/L
M#CLF$ !R!>IB 0 B^S'1@8 (M&!CT4 'T5T>#1X(OPBH2LG3#DA<!T!?]&
M!NOC@WX&%'4.QP;TGQ@ N/__@\0.7<N+1@;1X-'@C-NYK)T#R(OQH?B@)0"
MBTX8,\&)1A@E (")7@R)=@IT!;@0 .L",\ -@ #$=@HFB 2+1A@E P#K9\1V
M"B:*!##D#4 )H@$ZVB+1A@E" !T!;@( .L",\ -( #$=@HFBAPP_PO8)H@<
MZT>+1A@E" !T!;@( .L",\ -8 #$=@HFBAPP_PO8)H@<ZR;$=@HFQ@0 QP;T
MGQ8 N/__@\0.7<L] @!TQ3T! '2?/0 =(KKVL1V%":*!##DA<!U$,1V"B;&
M1 $!BT8&@\0.7<O'1@@ (M&"#T8 'U"NPH ]^N,V[G\G0/(05-1_W86_W84
MF@ SQ.+Y87 =1V+1@B["@#WZXOPBH3\G<1^"B:(10&+1@:#Q Y=R_]&".NV
MQ'8*)L9$ 0"+1A@E )T#?]V%O]V%)JW D4B^6+1A@E P!0_W86_W84FAX
M"12+Y<1V"B:)1 *#/O*? '0[BT88)0 #=!<SP%#_=A;_=A2: @ )%(OEQ'8*
M)HE$ H,^\I\ =$/'!O2? @#$=@HFQ@0 N/__@\0.7<N+1A@E 4] 5U(\1V
M"B;_= *:.@ )%(OEQP;TGQ$ Q'8*)L8$ +C__X/$#EW+BT8&@\0.7<M5@^P&
M.R80 '(%ZF(! "+[(M&$"4 @ T! XM>$('C_W]34/]V#O]V# [HN/V+Y8/$
M!EW+58/L'#LF$ !R!>IB 0 B^R+1BB%P'D.QP;TGQ8 N/__@\0<7<O_=B(.
MZ##]B^6)1AH+PXE>&'4(N/__@\0<7<O$=A@FBD0!,.3I\0*+1B@] 0!_ ^F7
M #V 'X%N( ZP.+1B@>N^R>4Z+LGIH$ +44B^7'1@@ ,=&"@( H.R>,.2+
M7@@[PWY2BT8*_T8*B_"*A.R>B$8&,.0]#0!U$_]&"(M&)HMV) /SCL FQ@0*
MZRF*1@8PY#T: '4'QT8( #K&(M&"/]&"(M>)HMV) /PBD8&CL,FB 3KHK@*
M %":1P :%(OEBT8(@\0<7<NX&A2[!0"Y&A2Z1P")1A*)3A:)5A2)7A#K&+@:
M%+MS +D:%+J4 (E&$HE.%HE6%(E>$,1V&":*!##D)1 =#3'1@@ (M&"#M&
M*'T?BT8(_T8(BUXFBTXD \B)3@")7@+_7A#$=@ FB 3KV8M&"(/$'%W+QT8(
M "+1@@[1BA\ ^GB /]>$(A&!C#DZ<$ N T 4/]>%(OEN H 4/]>%(OEBT8(
MB48 0(M>)HMV) -V ([#)L8$"HE&"(/$'%W+@WX( '2TN @ 4/]>%(OEN"
M4/]>%(OEN @ 4/]>%(OEZY>X#0!0_UX4B^6X"@!0_UX4B^4SP(/$'%W+BT8(
M_T8(BUXFBW8D _"*1@:.PR:(!##D/2 ?1JX7@!0_UX4B^6*1@8PY 5 %#_
M7A2+Y>E'_XI&!C#D4/]>%(OEZ3G_&@!S! @ 4 0- " $"@ @!+X, "X[A-$$
M=04N_Z33!(/N!'GOZY6+1@B#Q!Q=RS/ @\0<7<O_=BC_=B;_=B3$=A@F_W0"
MFE$ "12+Y8E&"(,^\I\ = BX__^#Q!Q=R\1V&":*!##D)1 = B+1@B#Q!Q=
MRS/ B48*B48,BT8*BUX(.]A^8O]&"HM>)HMV) /PCL,FB@2(1@8PY.L_BT8*
M*T8(2#/;A<!Y 4NY 0!14U#_=B(.Z*("B^6+1@R#Q!Q=R^NXBT8,_T8,BUXF
MBW8D _"*1@:.PR:(!.N@/0T =)L]&@!TM^O<@WX, '4)@WX( '0#Z3__BT8,
M@\0<7<NX__^#Q!Q=RP8%\ +_!*P#_P2+\(/^!7,'T>8N_Z37!>O>58/L%CLF
M$ !R!>IB 0 B^R+1B*%P'D.QP;TGQ8 N/__@\067<O_=AP.Z.+YB^6)1A0+
MPXE>$G4(N/__@\067<O$=A(FBD0!,.3IW &X&A2[1P")1@B)7@;K&K@:%+O
M (E&"(E>!NL,N!H4NY0 B48(B5X&QT8* "+1@J+7B([V'X]_T8*BUX@BW8>
M _".PR:*!(A&!##D/0H =1;$=A(FB@0PY"40 '4)N T 4/]>!HOEBD8$,.10
M_UX&B^7KN8M&"H/$%EW+Q'82)HH$,.0E" !T$[@" % SP% SVU/_=AP.Z%(!
MB^7$=A(FB@0PY"40 '0N_W8B_W8@_W8>)O]T IIR D4B^6)1@J#/O*? '0(
MN/__@\067<N+1@J#Q!9=R\9&!0 SP(E&"HE&#(E&#HM&"HM>(CO8?P/IA #_
M1@J+7B"+=AX#\([#)HH$B$8$,.0]"@!U$8I&!3#D/0T = ?&1@0-_TX*BT8,
MB48 0(MV (I>!(B<[)X]@ ")1@R(7@5\K% >N.R>4,1V$B;_= *:<@ )%(OE
MB480@S[RGP!T"+C__X/$%EW+BT80.T8,= <SP(/$%EW+QT8, #I;_^#?@P
M=#?_=@P>N.R>4,1V$B;_= *:<@ )%(OEB480@S[RGP!T"+C__X/$%EW+BT80
M.T8,= <SP(/$%EW+BT8*@\067<N+1B*#Q!9=R\<&])\3 +C__X/$%EW+N@8^
M!DP&6@;Z!XOP@_X%<P?1YB[_I! (Z]A5@^P2.R80 '(%ZF(! "+[/]V& [H
MOO>+Y8E&$ O#B5X.=0NX__^[__^#Q!)=R\1V#B:*1 $PY(7 = DSP#/;@\02
M7<O_=A[_=AS_=AK$=@XF_W0"FI, "12+Y8E&!XE>!8,^\I\ =!''!O2?%@"X
M__^[__^#Q!)=RX-^'@)U>XM&!PM&!71SQ'8.)HH$,.0E$ !U9HM&!2T! (M>
M!X/; (E&"8E>"XM&"PM&"71!,\!0_W8+_W8)_W88#NA!_XOE"\-T*[@! % 6
MC48$4/]V& [HI/F+Y87 = N+1@N+7@F#Q!)=RX-N"0@L Z[>+1@N+7@F#
MQ!)=RXM&!XM>!8/$$EW+58/L"CLF$ !R!>IB 0 B^S_=A .Z+CVB^6)1@@+
MPXE>!G4(N/__@\0*7<LSP,1V!B:*7 $P_X7;B48$=1<F_W0"FCH "12+Y8,^
M\I\ = 7'1@3__\1V!B;&! "+1@2#Q I=RU6+[/]V"/]V!IJW D4B^6#/O*?
M '0%N/__7<LSP%W+58/L"#LF$ !R!>IB 0 B^S$=@XFBD0,,.0E, !T"+C_
M_X/$"%W+Q'8.)H-\#@!U'R:*1 PPY"4$ '44!E8.Z%8#B^6%P'0(N/__@\0(
M7<O$=@XFBD0,,.0E! !T!\=&!@$ ZRW$=@XFBD0,,.0E @!T"+C__X/$"%W+
MQ'8.)HI$###D#0$ )HA$#":+1 Z)1@;$=@XFBD0-,.3_=@8F_W0*)O]T"%":
MHP*.$HOEA<")1@1Y$,1V#B:*1 PPY T@ ":(1 R#?@0 =1#$=@XFBD0,,.0-
M$ FB$0,BT8$A<!^%L1V#B:)1 0FBT0*)HM<"":)1 (FB1S$=@XFBD0,,.0E
M, !T"+C__X/$"%W+Q'8.)HM$!$@FB40$A<!X$R:+1 (FBQPF_P2.P":*#S#M
MZP[_=A#_=@X.Z,7^B^6+R(O!@\0(7<M5@^P..R80 '(%ZF(! "+[(M&%,1V
M%B:*7 PP_X'C, ")1@ET"+C__X/$#EW+Q'86)H-\#@!T ^E_ ":*1 PPY"4$
M '5T@WX4_W4',\"#Q Y=R_]V&/]V%@[H]0&+Y87 = BX__^#Q Y=R\1V%B:*
M1 PPY T" ":(1 PFBT0.)HE$!D@FB40&A<!X%B:+1 (FBQPF_P2+3A2.P":(
M#S#MZQ'_=AC_=A;_=A0.Z%'_B^6+R(O!@\0.7<O$=A8FBD0,,.0E! !T/(-^
M%/]U!S/ @\0.7<N+1A3$=A8FBEP-,/_'1@L! /]V"Q:-3@914XA&!IKQ!8X2
MB^7'1A3__XE&!^F@ ,1V%B:*1 PPY"4! '0(N/__@\0.7<O$=A8FBD0,,.0-
M @ FB$0,@WX4_W1 )H-\!@!^.2:+1 9()HE$!H7 >!8FBT0")HL<)O\$BTX4
MCL FB \P[>L1_W88_W86_W84#NB9_HOEB\C'1A3__\1V%B:+!"8K1 B)1@N%
MP'0>)HI$#3#D_W8+)O]T"B;_= A0FO$%CA*+Y8E&!^L%QT8' "#?@?_=1+$
M=A8FBD0,,.0-( FB$0,ZQB+1@<[1@MT$,1V%B:*1 PPY T0 ":(1 S$=A8F
MBT0.)HE$!B:+1 HFBUP()HE$ B:)'(M&%#W__W0Q)HM<!DLFB5P&A=MX%2:+
M7 (FBPPF_P2.PXOY)H@%,.3K#_]V&/]V%O]V% [HV_V+Y<1V%B:*1 PPY"4P
M '0(N/__@\0.7<N#?@G_=0<SP(/$#EW+BT8)@\0.7<M5@^P$.R80 '(%ZF(!
M "+[,1V"B:#? X =!(FBD0,,.0E" !U!S/ @\0$7<O_-AJAFED!MA2+Y<1V
M"B:)1 (FB1PFB40*)HE<" O#=0['!O2?# "X__^#Q 1=RZ$:H<1V"B:)1 XF
MBD0,,.0E\_\FB$0,,\ FB40&)HE$!(/$!%W+58/L!CLF$ !R!>IB 0 B^S'
M1@0 (M&#HMV# -V!([ )HH<,/^%VW0%_T8$Z^>+1@2#Q 9=RU6#[ 2+[(E.
M O*=0<SP#/;Z9H B48""\-U!S/),]+IC "+3@"+1@*+\(7V>1+WT/?;'?__
M>0DSP#/),]+K;Y S\8EV #/VA<EY!_?1]]J#V?]U'872>!F_( #1X]'0T=8[
M\G(#*_)#3W7P,\F+UNLAOQ T>/1T-'6._%R"W4$.\)R!2O"&_%#3W7HB\Z+
MT#/ ]T8 (!T!_?0]]L=___W1@( @'0']]'WVH/9_X/$!%W+58/L"#LF$ !R
M!>IB 0 B^R+=@[_1@[$?A+_1A(FB@6.1A FB 2$P'7G@\0(7<M55X/L%HOL
MCD8@)HM\!C/XB7X")?]_=1&+^ O[=0L+^74'"_IU ^F< ":+? :!Y_]_=1TF
M"WP$=1<F"WP"=1$F"SQU#+@# %": 0 )%%CK=9H* " 5B78$B48&B5X(B4X*
MB58,BW8>)HM$!B:+7 0FBTP")HL4F@H (!4I=@2)1@Z)7A")3A*)5A0S]HM&
M!HM>"(M."HM6#.@] (E^!N@W (E^".@Q (E^"N@K (O7BTX*BUX(BT8&BW8$
MBWX"F@P (Q7K"#/ ,]LSR3/2BW8>@\067UW*! #'1@ 0 #/_T>>%]G4:.T8.
M<B5U$SM>$'(>=0P[3A)R%W4%.U84=A K5A0;3A(;7A ;1@Z#W@!'T>+1T='3
MT=#1UO]. '7!PU97,\DSTHOXA<!Y!_?0]]L=__^^'P":# C%5]>RU%2F@8
MCA.:# "F$UI9RU97,]LSR3/2B_B%P'D"]]B^#P":# C%5]>RU%2F@, D1.:
M# "F$UI9RU%2F@T K!.:# "H$UI9RU6#[ 8[)A <@7J8@$ (OLQP9PGP
M@SYPGR!\ ^E_ ,1V#":*!##D0(OXBH7VGS#D)0@ = 7_1@SKY<1V#":*!##D
MA<!T6*%PG_\&<)_1X-'@B_"+1@Z+7@R)A'2?B9QRG\1V#":*!##DA<")1@!T
M$T"+^(J%]I\PY"4( '4%_T8,Z][$=@PFB@3_1@PFQ@0 B$8$,.2%P'0#Z7G_
MZP#&!E&< + !LP+&!G2<!L8&K)W QP:RG0$ L:#'!K:= @"Z 0!2HF.<HE"<
MB ZTG8@.L)V('G6<B!YBG)KQ D4B^4E@ !T"Z!BG##D#00 HF*<'KARGU#_
M-G"?FA8^^02+Y3/ 4)H" $D2B^6#Q 9=RU%2F@T K!.: 0"O$UI9RU97B_B!
MY_]_=0<SP#/;7U[+4)H* " 57YH/ !@57U[+5E>+^('G_W]U!S/ ,]M?7LM0
MF@H (!5?1G[O@_X@? BX_W^[___K"[D@ "O.T>C1V^+ZA?]Y!_?0]]L=__]?
M7LM65S/),]*+^('G_W]U!S/ ,]M?7LM0F@L +A5?F@P (Q5?7LM65XOX@>?_
M?W4%,\!?7LM0F@H (!5?1G[Q@_X0? 6X_W_K![D0 "O.T^B%_WD"]]A?7LM5
M5X/L#HOLQT8 #K#%57@^P.B^S'1@ @(E& HY&&"7_?W4CB_@+^W4="_EU
M&0OZ=14FBT0&,T8 )HM<!":+3 (FBQ3I$0$FBWP&@>?_?W47)@M\!'41)@M\
M G4+)@L\=0:+1@+I\ ":"@ @%8EV!(E&!HE>"(E."HE6#(MV%B:+1 8FBUP$
M)HM, B:+%)H* " 5B_XK=@1]+(/^P'\:BW8$BWX"BT8&BUX(BTX*BU8,F@P
M(Q7IGP#1Z-';T=G1VD9U]>L=B7X$@_Y ?!6+?A8FBWT&,WX BW8$F@P (Q7K
M=I"'1@:'7@B'3@J'5@R%]G0+T>C1V]'9T=I.=?6+=A8FBW0&,W8",W8 >!L#
M5@P33@H37@@31@9S,M'8T=O1V=':_T8$ZR4K5@P;3@H;7@@;1@9S%X%V @"
M]]#WT_?1]]KU@]$ @], %0 BWX"BW8$F@P (Q6+=A:#Q Y?7<H$ %!345)6
M,_;1X-'6T>#1UM'@T=;1X-'6 ]B#U@"+QC/VT>'1UM'AT=;1X='6T>'1U@/1
M@]8 B\X[P74".]I>6EE;6,M5B^R:#P"S%)&'VIH/ +,4D8?:*]H;P8M6!C/)
MF@4 ;A-=R@( 58/L!#LF$ !R!>IB 0 B^S$=@XFB@0PY,1V"B:*'##_.]AU
M&":*!##DA<!U!S/ @\0$7<O_1@K_1@[KU,1V#B:*!##DQ'8*)HH<,/\KV(O#
M@\0$7<M1L033P(O(@>'P_R4/ /9%0 60/:$\$E#P"Q!-/(B]/3RH'B_P\+
MPH'C#P#+58'L&@$[)A <@7J8@$ (OLC-"-GB@!BXXB 8N6( &)1AB)3A2)
M5A*)7A;$MB0!)HH$,.2%P'4#Z:T B\:)1@! )HH<,/^#^R6)AB0!B5X*= /I
M@@"+\":*'##_@_LE=1B+OB !_X8@ ?^&) $FB@2.AB(!)H@%Z[(6C48,4!:-
M1A90%HU&&E#_MB8!_[8D 9H, "@4B^6)1A +PXE>#G2*BT80QT8( ")AB8!
MB9XD 8M&"(M>##O8?P/I;?^+MB !_X8@ 8OXBD,:CH8B 2:(!/]&".O:Q+8@
M ?^&( &+1@HFB 3I0__$MB !)L8$ (O&*T82@<0: 5W+4"7_?PO#"\$+PEC+
M5U!5B^R.1@PFBWP&]\?_?W4$@>?_?ZG_?W4#)?]_4#/'6'D%#?]_ZRIT!SO'
MN ZQ,SP"8[7 1U"R8[3 )U!28[%'0.<P-(ZP,-_W^!YP" ,\>%P%U87\H$
M %6![!8!.R80 '(%ZF(! "+[(S0C9XD 8E&%(E>$L2V( $FB@0PY(7 =0/I
M.P&+QHE& $ FBAPP_X/[)8F&( &)7@IT ^GB (OP)HH<,/^#^R5U1O^&( $F
MB@0PY,2V' $FBUP&2R:)7 :%VXE&"G@5)HM< B:+#";_!([#B_DFB 4PY.N8
M_[8> ?^V' '_=@J:2@$I$XOEZX06C48,4!:-1A)0%HU&%E#_MB(!_[8@ 9H,
M "@4B^6)1A +PXE>#G4#Z5G_BT80QT8( ")AB(!B9X@ 8M&"(M>##O8?P/I
M//_$MAP!)HM<!DLFB5P&A=MX&B:+7 (FBPPF_P2+^(I#%H[#B_DFB 4PY.L8
MBW8(BD(6,.3_MAX!_[8< 5":2@$I$XOE_T8(ZZO$MAP!)HM$!D@FB40&A<!X
M%R:+1 (FBQPF_P2+3@J.P":(#S#MZ<S^_[8> ?^V' '_=@J:2@$I$XOEB\CI
MM?Z!Q!8!7<M0,\%84'@/*\%U#C/ .]IT"'<#2.L##?]_A<!8RU&Q!-/ B\B!
MX?#_)0\ ]D5 !9*]H;P24/ +$$T\B+T]/*@>+_#PO"@>,/ ,O+58OLQP;R
MGP 'L56!HM."K0\S2$?<P.C\I]=RU6+[,<&\I\ ![%5@:+1@JT/<TA'W,#
MH_*?7<M5B^S'!O*? "+7@:T/LTA<P.C\I]=RU6+[,<&\I\ (M>!HM.#![%
M5@BT/\TA'W,%H_*?,\!=RU6+[,<&\I\ (M>!HM.#![%5@BT0,TA'W,%H_*?
M,\!=RU6+[,<&\I\ (M&#+1"BUX&BTX*BU8(S2%S Z/RGXO8B\)=RU6+[,<&
M\I\ ![%5@:T0<TA'W,#H_*?7<M5B^S'!O*? >Q58&BT8*M$.+3@S-(1]S
M Z/RGXO!7<M5B^R+7@:X $3-(8O"7<M5B^S_=@K_=@C_=@::@@$ (OE7<M5
M@^P".R80 '(%ZF(! "+[+@( %":!@ P%8OE@\0"7<M5@^P".R80 '(%ZF(!
M "+[+@! %":!@ P%8OE@\0"7<M5@^P".R80 '(%ZF(! "+[(I&"##D4+@"
M %":!@ P%8OEBD8(,.2#Q )=RU6#[ ([)A <@7J8@$ (OLN , 4)H& # 5
MB^6#Q )=RU6#[ ([)A <@7J8@$ (OLBD8(,.10N 0 4)H& # 5B^6*1@@P
MY(/$ EW+58/L CLF$ !R!>IB 0 B^R*1@@PY%"X!0!0F@8 ,!6+Y8I&"##D
M@\0"7<M5@^PZ.R80 '(%ZF(! "+[#/ QT84___'1A8@ ,1V0":*'##_@_LM
MB48.B488B480B482=0FX 0#_1D")1@[$=D FB@0PY(E& $"+\(J$]I\PY"4$
M '1-@WX ,'4%QT86, #$=D#_1D FB@0PY"4/ (E&&,1V0":*!##D0(OXBH7V
MGS#D)00 =!N+1AB["@#WZ_]&0":*'##_@>,/ /#B488Z\_$=D FB@0PY#TN
M '4Y_T9 QT84 #$=D FB@0PY$"+^(J%]I\PY"4$ '0;BT84NPH ]^O_1D F
MBAPP_X'C#P #PXE&%.O/Q'9 )HH$,.0]; !U";@! /]&0(E&$,=&( QT8>
M #$=D FB@0PY.DR X-^$ !T(<1V2":+1 (FBQPF@P0$CL FBT\"CL FBQ>)
M3B2)5B+K(,1V2":+1 (FBQPF@P0"CL FBP\STH7)>0%*B4XBB58DBT8DA<!Y
M4_=6)/=>(H->)/_'1A(! .M"@WX0 '0AQ'9()HM$ B:+'":#! 2.P":+3P*.
MP":+%XE.)(E6(NL;Q'9()HM$ B:+'":#! *.P":+#S/ B48DB4XBQT8("P"+
M1@A(B_")1@B+1B2+7B(SR;H* (EV )H% &X3@\(P@]$ BW8 B%(FBT8DBUXB
M,\FZ"@":!0!N$XE&)(E>(HM&) M&(G6Z@WX2 74-BT8(2(OPQD(F+8E&"(S0
MC5XFBTX( ]FZ"P KT8E&((E6#(E>'NDN H-^$ !T(<1V2":+1 (FBQPF@P0$
MCL FBT\"CL FBQ>)3B2)5B+K&\1V2":+1 (FBQPF@P0"CL FBP\SP(E&)(E.
M(L=&" @ BT8(2(OPBUXDBTXB,]N!X0\ B_F*G?J@B%HFN00 BUXDBU8BT?O1
MVN+ZB5XD@>/_#XE&"(E6(HE>)(M&) M&(G6^C-"-7B:+3@@#V;H( "O1B48@
MB58,B5X>Z8H!@WX0 '0AQ'9()HM$ B:+'":#! 2.P":+3P*.P":+%XE.)(E6
M(NL;Q'9()HM$ B:+'":#! *.P":+#S/ B48DB4XBQT8("P"+1@A(B_"+7B2+
M3B(SVX'A!P"#P3"#TP"(2B:Y P"+7B2+5B+1^]':XOJ)7B2!X_\?B48(B58B
MB5XDBT8D"T8B=;Z,T(U>)HM." /9N@L *]&)1B")5@R)7A[IY@"#?A3_=07'
M1A3( ,=&# BT8,BUX4.]A^*,1V2":+7 (FBSR.PR:+10*.PR:+-0-V#([
M)HH<,/^%VW0%_T8,Z\[$=D@FBT0")HL<)H,$!([ )HM/ H[ )HL7B4X@B58>
MZ8( C-"-7B;'1@P! ,1V2":+3 (FBQ0F@P0"B48@CL&+\B:+!(A&)HE>'NM8
MQT8< @#K4<=&' ZTK'1AP! .M#,\ SVX/$.EW+9@ @!&4 &01G !($8P#H
M W, A -O . "> \ G4 @0%D "(!OB +CN$, 1U!2[_I#($@^X$>>_KO8M&
M( M&'G4#Z= BT88A<!T!3M&#'T&BT8,B488BT8,*488QT8( "#?@X =$R+
M1@Q(A<")1@QX'HM&"/]&"(M>1HMV1 /PQ'X>_T8>)HH%CL,FB 3KUXM&&$B%
MP(E&&'ADBT8(_T8(BUY&BW9$ _"+1A:.PR:(!.O=BT882(7 B488>!B+1@C_
M1@B+7D:+=D0#\(M&%H[#)H@$Z]V+1@Q(A<")1@QX'HM&"/]&"(M>1HMV1 /P
MQ'X>_T8>)HH%CL,FB 3KUXM&",1V3":)!(M&0HM>0$.#Q#I=RX-^%/]U!<=&
M% 8 @WX4%'P%N!, ZP.+1A2)1@Q %HU>)E,6C5X24Q:-7AI3_W8<4,1V2";_
M= (F_S2:!P! %8OEQ'9()H,$"(S3C4XFBU8:A=*)1@R)3AZ)5@B)7B!Y _=>
M"(-^' )U%H-^# !T"H-^" 9\!#/ ZP,SP$")1AR#?@P = /_3AHSP(E&"(-^
M$@!T _]&"(-^' !T(8M&%$"+7@@#PXM>&H7;B48(> ,!7@B#?A0 =#'_1@CK
M+(M&% 4& %&"(M&&H7 >03WV.L#BT8:/6, B48*?@/_1@B!?@KG WX#_T8(
M@WX. '4JBT88.T8(?B*+1@@I1AB+1AA(A<")1AAX$<1V1/]&1(M&%B:(!/]&
M".OD@WX2 '0*Q'9$_T9$)L8$+8-^' !U ^GX (M&&H7 >6W$=D2+QHE& $ F
MQ@0PB_")1D1 )L8$+HE&1(M&%$B%P(E&%'D#Z;<!BT8:0(7 B48:>0S$=D3_
M1D0FQ@0PZ]N+1@Q(A<")1@QX%XMV1/]&1,1^'O]&'B:*!8Y&1B:(!.NYQ'9$
M_T9$)L8$,.NMBT8:_TX:A<!X+HM&#$B%P(E&#'@7BW9$_T9$Q'X>_T8>)HH%
MCD9&)H@$Z]3$=D3_1D0FQ@0PZ\B#?A0 = K$=D3_1D0FQ@0NBT842(7 B484
M>0/I' &+1@Q(A<")1@QX%XMV1/]&1,1^'O]&'B:*!8Y&1B:(!.O0Q'9$_T9$
M)L8$,.O$BT8,2(7 B48,>!>+=D3_1D3$?A[_1AXFB@6.1D8FB 3K"L1V1/]&
M1";&!##$=D3_1D0FQ@0NBT842(7 B484>"Z+1@Q(A<")1@QX%XMV1/]&1,1^
M'O]&'B:*!8Y&1B:(!.O3Q'9$_T9$)L8$,.O'Q'9$B\:)1@! )L8$18M>&H7;
MB49$>0Z+\/]&1";&!"WW7AKK"L1V1/]&1";&!"O'1@P+ (M&#$B+\(E&#(M&
M&KL* )GW^X/",(A2)HM&&IGW^XE&&H-^# E_V8-^&@!UTXM&##T+ 'T6BW9$
M_T9$_T8,B_B*0R:.1D8FB 3KXH-^#@%U*HM&&#M&"'XBBT8(*488BT882(7
MB488>!'$=D3_1D2+1A8FB 3_1@CKY(M&",1V3":)!(M&0HM>0$.#Q#I=RU6+
M[(M>!HM&")H" (L2CL"+^XM."HM&#/SSJEW+4;$$T\"+R('A\/\E#P #V14
M %G+58OL'L56!K0*S2$?7<M5@^P$.R80 '(%ZF(! "+[*$,H8L>"J&+#A"A
MBQ8.H8D.&*$+RJ,4H8D6%J&)'A*A=0BX__^#Q 1=R\0V$J$FQT0" FQP0
M *$8H8L>%J$FB40&)HE<!#/ @\0$7<M5@^P".R80 '(%ZF(! "+[#/ 4 [H
M!P"+Y8/$ EW+58/L"CLF$ !R!>IB 0 B^R+1A"%P'D(N/__@\0*7<LSP#/;
MQT8(@ SR5&Z 12HQ"AHPRAB1X.H8D>"J&:" Q%8OEB48&"\.)7@1U"+C_
M_X/$"EW+BT8&BUX$BTX(,]*%R7D!2J,,H8D.#J&)%A"AB1X*H8M&$$B)1A"%
MP'0F,\!0NP $4YH( #$5B^4+PW04BT8(,]N%P'D!2P$&#J$1'A"AZ\\.Z-;^
M,\"#Q I=RU6#[ 0[)A <@7J8@$ (OLN0, H1BABQX6H='CT=#B^H/$!%W+
M58/L"#LF$ !R!>IB 0 B^R+1@XSVU-0B48$B5X&#N@, (OEF@( BQ*#Q A=
MRU6#[!@[)A <@7J8@$ (OLBT8@BUX>,\DSTIH& 04?PF+P8O:@\087<N+
M1AX%" "+7B"#TP M 0"#VP")1@"+PXM> #/)N@@ F@4 ;A.,V;X2H8[!)HM4
M HE&%HQ&#H[!)HL$B48(B58*B5X4B78,BT8*"T8(=0/II@#$=@@FBT0&)HM<
M!(M.%HM6%)H& 04?&X[P74".]IU$R:+1 (FBQS$=@PFB40")HD<ZS7$=@@F
MBT0$*T84)HM<!AM>%B:)7 8FB40$N0, T>#1T^+ZB\N+T(S B]Z:!@#4$XE&
M"HE>"(M&%"D&%J&+7A89'ABABT8*BUX(F@( BQ*#Q!A=RXM&"HM>"([ )HM/
M H[ )HL7B48.B4X*B58(B5X,Z4__N0, BT86BUX4T>/1T.+Z4%.:" Q%8OE
MB482B5X0"\-U ^E^ *$0H0L&#J%U&HM&$HM.%HM6%*,,H8D.$*&)%@ZAB1X*
MH>M+N0, H1"ABQX.H='CT=#B^HO(B].A#*&+'@JAF@8 U!.+3A*+5A")1@J+
MP8E>"(O:BTX*BU8(F@@ R!-U#HM&% $&#J&+7A81'A"ABT82BUX0F@( BQ*#
MQ!A=RS/ ,]N#Q!A=RU6#[ @[)A <@7J8@$ (OLBT82,]M34/]V$/]V#HE&
M!(E>!@[H!P"+Y8/$"%W+58/L(#LF$ !R!>IB 0 B^R+1BR+7BHSR3/2F@8
M!!1_"+C__X/$(%W+BT8HBUXFBTXJ@\$(BU8L@]( @^D!@]H B486B\*)7A2+
MV3/)N@@ F@4 ;A.Y P")1AZ)7AS1X]'0XOJ+R(O3BT86BUX4F@8 U!.+3AP!
M#A:ABU8>$188H8S9OA*ACL$FBU0"B48:C$8.CL$FBP2)1@2)5@:)7AB)=@R+
M1@:+7@0+PW4#Z<,!N0, CD8&)HM'!B:+5P31XM'0XOJ+R(S F@8 U!.)1@J+
M1AJ)7@B+7AB,P8M6!)H( ,@3<RW$=A0FB4P")HD4BT8>BUX<)HE$!B:)7 2,
MP(O>Q'8,)HE$ B:)'#/ @\0@7<N+1@:+7@2+3AJ+5AB:" #($W5)CL FBT\"
MCL FBQ?$=A0FB4P")HD4BT8<CD8&)@-'!(M>'HM^!"8370:.1A8FB5P&)HE$
M!(S B][$=@PFB40")HD<,\"#Q"!=RXM&%HM>%(M."HM6")H( ,@3<Q:+1API
M!A:ABUX>&1X8H;C__X/$(%W+BT86BUX4BTX*BU8(F@@ R!-T ^F< ,1V!":+
M1 (FBQP+PW0JBT8:BUX8)HM, B:+%)H( ,@3=A:+1API!A:ABUX>&1X8H;C_
M_X/$(%W+BT8<Q'8$)@%$!(M>'B817 8FBT0")HL<"\-T08M&&HM>&":+3 (F
MBQ2:" #($W4MCL FBT\$CD8&)@%,!([ )HM7!HY&!B815 :.P":+1P(FBQ^.
M1@8FB40")HD<,\"#Q"!=RXM&!HM>!(M."HM6"(E&#H[ )HM' HE>#":+'XE&
M!HE.$HE6$(E>!.DP_HM&%HM>%,1V#":)1 (FB1R.P";'1P( ([ )L<' "+
M1AZ+7AR+=A0FB40&)HE<!#/ @\0@7<N!YP" 5X/N"(7 =0V#[A"+PX7 =0)?
MRS/;J0#_=!U&T>C1V]'?J0#_=?2%_WD-@\,!%0 Z^-.T>/1T*F '3V7X/&
M?WX4@?[_ 'T=425_ +$'T^8+]PO&6<NX 0!0F@$ "118,\ SV\NX @!0F@$
M"118N(!_"\<SV\M1B_"!YO!_L033[H'N_P-9BN"*QXK[BMV*Z8K.BO(RTK\#
M -'BT='1T]'03W7U#0" RX'G (!7@^X+A<!U+X/N$(O#A<!U((/N$(O!A<!U
M#X/N$(O"A<!U E_+,]+K#HO:,\DSTNL&B]F+RC/2J>#_="M&T>C1V]'9T=K1
MWZG@_W7PA?]Y%X/" 8/1 (/3 !4 .O93M'BT='1T]'0J1 =/)?@<;_ WX4
M@?[_!WT<424/ +$$T^8+]PO&6<NX 0!0F@$ "118,\#K#[@" %": 0 )%%BX
M\'\+QS/;,\DSTLM1B_"!YH!_L0?3[H/N?UF*X(K'BOLRVPT @,M5B^R*9@:*
M1@J+5@C-(;0 7<M5@^P&.R80 '(%ZF(! "+[(M&#HM>#(L.; "+%FH F@8
M!!1^"3/ ,]N#Q 9=RZ%> (L>7 "+3@Z+5@R)1@2)7@*:!@#4$XM.#"D.:@"+
M5@X9%FP HUX B1Y< (M&!(M> IH" (L2@\0&7<M5@^P,.R80 '(%ZF(! "+
M[(M&$C/;4U .Z'C_B^6)1@J)7@@+PW0-BT8*F@( BQ*#Q Q=R[C__S/;DYH"
M (L2@\0,7<M5@^P$.R80 '(%ZF(! "+[+@! %"A7@"+'EP BPY: (L66 ":
M"P#,$P$>:@ 1!FP B0Y> (D67 "#Q 1=RU6#["B+[,=& QT8, #$=BXF
MBT0&A<!Y!8%. " )?]_=1:+^"8+? 1U#B8+? )U""8+/'4#Z8 L033Z"W^
M XE&#B:+#":+7 (FBT0$)HMT!C/2OP4 T>[1V-';T=G1VD]U\PT @(E&!(E>
M!HE."(E6"L=&# BW8.B\Z%]G1I>1"#Q@-X$[X! .@[ _]&#NOEZ*H"_T8,
MZP^^! !=@[H)0/H! /_3@SW1@0 @'7'_TX.Z+T"Z_$S]H%. ! ,\GW1@
M0'4ABT8$"T8&=0B+1@@+1@IT$>C/ H7)=0J#_@%U!?].#.OO@,$PB$H41H/^
M%'S*QT80 0"+1C2+=C*%P'0+N0$ BT8,2 /P>"VY% "#_A)])8O.BD(5! 4\
M.GP:QD(5,/Y"%(I"%$YY[_]&#/].$(-^- !T 4'$?CZ+=A SVXI"%":(!4-'
M.]E]$D:#_A1\[K P)H@%1T,[7C)\]C/ ]T8 (!T"/=& ! =0%(Q'8Z)HD$
MBT8,Q'8V)HD$]T8 $!T C/)B\&#Q"A=RU6#["B+[#/ B48 B48,B48"B48.
MB48$B48&B48(B48*Z#<"/#!U!X%. @Z_(\+74(@4X (#H( (\,'PX/#E_
M-(%. @B480BT8"*48,]T8$ /!T!?]&#.O;Z+D!BT80)0\ 48*@U8( (-6
M!@"#5@0 Z\$\+G4,BT8"A<!U0O]& NNQ/$5T!#QE=37HR0$\*W0)/"UU"(%.
M 0Z+D!/#!\'CPY?QHD#XE&$(M&#NA. 0-&$(E&#CW_#W+?T>CK]/=& @
M=1 SP,1V-B:)!(M&$H/$*%W+BT8.]T8 !!T O?8 48,BT8$"T8&"T8("T8*
M=0/I@ #'1@X^!/=&! " =0CHV #_3@[K\8M&#(7 =!MX$;X$ %V#N@6 >CU
M /].#.O7Z(( _T8,Z\^+1@Z%P'A!/?\'?S>Q!-/@B48.BT8$BUX&BTX(BU8*
MBM:*\8K-BNN*WXKXBL2_ P#1Z-';T=G1VD]U]24/ M&#NL-N/!_ZP(SP#/;
M,\DSTL1V.O=& " = ,- ( FB40&)HE<!":)3 (FB12X 0#$=C8FB02+1A*#
MQ"A=R[Y #/ BUX$BTX&BU8(BWX*T>?1TM'1T=/1T#T* '($+0H 1TYUZHE>
M!(E.!HE6"(E^"L.+1@K1X(E&"HM&"-'0B48(BT8&T=")1@:+1@31T(E&!,.+
MV#/)T>#1T='@T=$#PX/1 -'@T='#,\F_!@"+0P2)2P3HW/^+6P0#PX/1 (E#
M!$]/>>C#BT8$BUX&BTX(BU8*T>C1V]'9T=I.=?6)1@2)7@:)3@B)5@K#@WXN
M '0)BT8NQT8N ##_UXRB482_TXP=0:!3@ ",/W1@ "'0#N/__PP
M 158@3$E34"!B>2!005,
M
M $EN=F%L:60@<W1A
M8VL@<VEZ90T*)$EN=F%L:60@22]/(')E9&ER96-T:6]N#0HD26YS=69F:6-I
M96YT(&UE;6]R>0T*)"HJ*B!35$%#2R!/5D521DQ/5R J*BH-"B0 + 4
M!0 % 4 !0 % 4 !0 % 4 "@ % 4 "@ % 4 !0 % 4 !0 % 4 !0 %
M 4 !0 % 4 !0 % 4 !0 % @ @ ( @ " ( P ! @ !P % <
M! ( 8 !@ & 8 !@ & 8 !@ & 8 " ) @ " ( @ " ( @ " (
M @ " ( @ " ( @ " ( @ " ( @ " ( @ " ( @ " ( @
M#0 ( , " ( @ " ( @ " ( @ " ( @ " ( @ " ( @ " (
M @ " ( @ " ( @ " ( @ ! @ !0 ( "P / \ #0 - (P
MC@ $ L #P / T #0", (X C@ + \ #P - T C & @ "P / \ #0 -
M (P C@"" L #P"$ T B@", (X @ + \ #P - T C ". (8 A "$ (8
MA@"* (P C@"( L #P"* T B@", (X B@ + \ #P - (H C ". (P "P /
M \ #0 - (P C@" L #P / T #0" (X 0 + \ #P - T @0 & !
M"P / \ #0 - (P C@ : L #P / T #0", (YA;B!A=&]M(&ES('1O;R!B
M:6< <75O=&4
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M
M petera@utcsri.UUCP (Smith) (04/27/86)
[ line eater ]
[ PC-LISP.EXE (part 2 of 4) ]
------------------- CUT HERE -----------------------
MBT8<0%#_=AK_=A@.Z(H B^7$=@XFB40$)HE< NL/#N@T^\1V#B:)1 0FB5P"
MQ'8.)L=$" )L=$!@ 'KA"@E#_=AK_=AB:S0$D (OEBUX>0U/_=AS_=AK_
M=ABC0((.Z(W\B^7$=@8FB40()HE<!H,N]'\#C,"+WIH" (L2@\027<L>N"^-
M4/]V'O]V' [H(OR+Y8/$$EW+58/L#CLF$ !R!>IB 0 B^R!/O1_0!]\! [H
M4PZA]'^)1@! BUX T>/1XXS1C58&B8_V HF7] +'1@@ ,=&!@ /4 ?H_1_
M? 0.Z"(.H?1__P;T?]'@T>"+\(S0C5X*B83V HF<] +'1@P ,=&"@ @SY
M@@%U/1ZX0H)0_W86_W84FLT!) "+Y;L! %/_=AC_=A;_=A2C0((.Z+C[B^6#
M+O1_ HE&"(E>!IH" (L2@\0.7<N#/D"""'0#Z:P N ( 4)KO!?,(B^6)1@B)
M7@8.Z.CYQ'8&)HE$!":)7 *X @!0FN\%\PB+Y<1V!B:)1 @FB5P&'KE"@E'_
M=A;_=A2)1@R)7@J:S0$D (OE/0$ HT""= 4]" !U'HM&&$!0_W86_W84#NC6
M_HOEQ'8*)HE$!":)7 +K#P[H@/G$=@HFB40$)HE< L1V"B;'1 @ ";'1 8
M (,N]'\"BT8(BUX&F@( BQ*#Q Y=RQZX08U0,\!0_W88#NB@^HOE@\0.7<M5
M@^P0.R80 '(%ZF(! "+[(M&(@M&('0(Q'8@)O\$ZQ(>N%V-4/]V&/]V%IH'
M .T3B^6Q!,1V&B:+!-/H,N2)1@#1Z(E& HM& +L" #'2]_.+1@(#PL=&"
MQT8* 0")1@:+1@@[1@9\ ^GB (M&(@M&('0/Q'8@)HL$A<!X!8/$$%W+_W8(
M_W8<_W8:#N@\X(OE@WX( (E&#HE>#'XBBT8B"T8@= C$=B F_P3K$AZX7XU0
M_W88_W86F@< [1.+Y?]V(O]V(#/ 4#/;4_]V'L1V#";_= 0F_W0"_W88_W86
M#NBC!(OEBT8*0+$$Q'8:)HL<T^LR_SO#B48*=TB+1B(+1B!T",1V(";_!.L2
M'KA?C5#_=AC_=A::!P#M$XOE_W8B_W8@,\!0,]M3_W8>Q'8,)O]T"";_= ;_
M=AC_=A8.Z$0$B^7_1@C_1@KI$_^+1B(+1B!T",1V(";_!.L2'KAAC5#_=AC_
M=A::!P#M$XOE@\007<M5@^QH.R80 '(%ZF(! "+[(M&>@M&>'0/Q'9X)HL$
MA<!X!8/$:%W+BT9T"T9R=0/IV@.Q#<1V<B:+!-/H)0< Z;H#@WYV '06Q'9R
M)O]T$";_= Z:% ,D (OEA<!T0XM&>@M&>'4@Q'9R)O]T$";_= X>N&.-4/]V
M</]V;IH' .T3B^7IA@/$=G(F_W00)O]T#IH. &H3B^7$=G@F 03I:P.+1GH+
M1GAU(,1V<B;_=! F_W0.'KAFC5#_=G#_=FZ:!P#M$XOEZ4,#Q'9R)O]T$";_
M= Z:#@!J$XOE0$#$=G@F 03I)@.+1G2+=G*.P":+7 B,1@*.P":+3 8+V8EV
M '4#Z0<#BT9Z"T9X=4(FBT0(B48&N!( 4":+1 0FBUP"B4X$C-FZ1)R:"P#,
M$U!3Q'8$)O]T$";_= X>N&N-4/]V</]V;IH' .T3B^7IO0*+1G2+=G*.P":+
M7 B.P":+? :.PR;_=1",1@*.PR;_=0Z:#@!J$XOE!04 Q'9X)@$$Z8D"BT9T
MBW9RCL FBUP$CL FBTP"B\.)7F:+V8E>9)H- ),3B48"BT9FB5X B]F:#0"L
M$XE&"HE>"(E.!HE6!(M& HM> )H& (X3B482B5X0B4X.B58,BT8*BUX(BTX&
MBU8$%HUV#%::$@"R$YH .<3=%B+1@J+7@B+3@:+5@104U%2'KAWC5 6C484
M4)H$ -<3B^6+1GH+1GAU&A:-1A10'KACC5#_=G#_=FZ:!P#M$XOEZ=4!%HU&
M%%":#@!J$XOEQ'9X)@$$Z< !BT9FBUYDF@T K!-04U%2'KAZC5 6C4844)H$
M -<3B^6+1GH+1GAU&A:-1A10'KACC5#_=G#_=FZ:!P#M$XOEZ7X!%HU&%%":
M#@!J$XOEQ'9X)@$$Z6D!BT9TBW9RCL FBUP$CL FBTP"4U$>N'^-4!:-1A10
MB4YDB5YFF@0 UQ.+Y8M&>@M&>'4:%HU&%% >N&.-4/]V</]V;IH' .T3B^7I
M' $6C4844)H. &H3B^7$=G@F 03I!P&#?G8 =5>+1GH+1GAU*HM&=(MV<H[
M)O]T!(Q& H[ )O]T AZX8XU0_W9P_W9NF@< [1.+Y>G/ (M&=(MV<H[ )O]T
M!(Q& H[ )O]T IH. &H3B^7$=G@F 03IJ@"+1GH+1GAU*8M&=(MV<H[ )O]T
M!(Q& H[ )O]T AZX@XU0_W9P_W9NF@< [1.+Y>MYBT9TBW9RCL F_W0$C$8"
MCL F_W0"F@X :A.+Y4! Q'9X)@$$ZU/_=GK_=GC_=G;_=G3_=G+_=G#_=FX.
MZ+;ZB^7K-AZXB(U0F@4 8!*+Y3/ 4)H" $D2B^7K'DPLC2T4,/ LK2X/+\,O
MB_"#_@=S!]'F+O^D^"_KRH/$:%W+58/L"CLF$ !R!>IB 0 B^PSP(M>( M>
M'HE&!'0/Q'8>)HL$A<!X!8/$"EW+BT8<BUX:"\-T*HM&%HM>%(M.'(M6&IH(
M ,@3=1<>N*.-4/]V$O]V$)H' .T3B^6#Q I=RXM&%@M&%'4HBT8@"T8>=10>
MN&J+4/]V$O]V$)H' .T3B^7K!\1V'B:#! .#Q I=R[$-Q'84)HL$T^@E!P ]
M @!T((S B][_=B#_=A[_=AA04_]V$O]V$ [H,ON+Y8/$"EW+Q'84)HM$!":+
M7 (+PW4#Z;@ )HM$!+$-CL FBQ?3ZH'B!P")1@B)7@9T ^F< !ZXJ8U0)O]W
M$";_=PZ: #/$XOEA<!T ^F! ,1V%":+1 @FBUP&"\-T<B:+1 BQ#8[ )HL7
MT^J!X@< @_H"=5R+1B +1AYU%!ZXKXU0_W82_W80F@< [1.+Y>L&Q'8>)O\$
MQ'84)HM$"":+? ;_=B#_=A[_=AS_=AK_=AB.P";_=02,1@*.P";_=0+_=A+_
M=A .Z'K^B^6#Q I=RXM&( M&'G44'KBQC5#_=A+_=A":!P#M$XOEZP;$=AXF
M_P2+1A8+1A1U ^G< 8,^T = 0.Z(\&BT8@"T8>= _$=AXFBP2%P'@%@\0*
M7<O$=A0FBT0$)HM< @O#=0/ILP FBT0$L0V.P":+%]/J@>(' (/Z G51@WX$
M 'XBBT8@"T8>=10>N%^-4/]V$O]V$)H' .T3B^7K!L1V'B;_!/]V(/]V'O]V
M'/]V&O]V&,1V%";_= 0F_W0"_W82_W80#NBP_8OEZ98 @WX$ 'XBBT8@"T8>
M=10>N%^-4/]V$O]V$)H' .T3B^7K!L1V'B;_!,1V%":+1 0FBUP"_W8@_W8>
M_W884%/_=A+_=A .Z%'YB^7K2H-^! !^(HM&( M&'G44'KA?C5#_=A+_=A":
M!P#M$XOEZP;$=AXF_P2+1B +1AYU%!ZX:HM0_W82_W80F@< [1.+Y>L&Q'8>
M)O\$Q'84)HM$"":+7 8+PW4#Z8( )HM$"+$-CL FBQ?3ZH'B!P"#^@)T;(M&
M( M&'G44'KBSC5#_=A+_=A":!P#M$XOEZP?$=AXF@P0#Q'84)HM$"":+7 ;_
M=B#_=A[_=AA04_]V$O]V$ [HF/B+Y8M&( M&'G44'KBWC5#_=A+_=A":!P#M
M$XOEZP;$=AXF_P2#Q I=R\1V%":+1 @FBUP&_T8$B486B5X4Z1G^BT8@"T8>
M=10>N+>-4/]V$O]V$)H' .T3B^7K!L1V'B;_!(/$"EW+58/L!#LF$ !R!>IB
M 0 B^R+1@[WV!:-7@)3,]M3,\E1NP$ 4_]V#/]V"C/;4U&)1@Z)1@(.Z K\
MB^6+1@(K1@Z#Q 1=RU6#["8[)A <@7J8@$ (OLBT8P*T8RB48B@WXB 'X7
M'KA?C5#_=C;_=C2:!P#M$XOE_TXBZ^.+1BX+1BQT+K$-Q'8L)HL$T^@E!P ]
M @!U'*%N@RM&,/\V;H,&5HE& [H5O^+Y8M> #O8?B,SP% SVU-04[@! %#_
M=B[_=BS_=C;_=C0.Z'3[B^6#Q"9=RQZXL8U0_W8V_W8TF@< [1.+Y8M&+@M&
M+'0-Q'8L)HM$!":+7 +K!#/ ,]N+3BX+3BR)1@Z)7@QT#<1V+":+1 @FBUP&
MZP0SP#/;B482"\.)7A!T#8Y&$B:+1P0FBT\"ZP0SP#/)BUX2"UX0B486B4X4
M= W$=A FBT0()HM<!NL$,\ SVXM.,$'_=C;_=C114?]V#O]V#(E&&HE>& [H
MT/Z+Y8M&$@M&$'4#Z:P!N !4/]V#O]V# [H;_Z+Y8M>#@M>#(E&)'1 L0W$
M=@PFBP33Z"4' #T" '4N'KBYC5#_=C;_=C2:!P#M$XOEBT8P0/]V-O]V-#/;
M4U#_=A;_=A0.Z&S^B^7K88M&)+L# )GW^SL&;H-^+AZXN8U0_W8V_W8TF@<
M[1.+Y8M&,$#_=C;_=C0SVU-0_W86_W84#N@O_HOEZR2+1C! 0(M>) /#BTXP
M00/+_W8V_W8T45#_=A;_=A0.Z G^B^6+1AJ+7AB+3@X+3@R)1@J)7@AT$K$-
MQ'8,)HL$T^@E!P ] @!T-(M&)(M>,$-# ]@>N;N-48E&((E>' [HP<R+Y8M.
M#HM6#)H( ,@3= 0SR>L#,\E!B4X>ZPR+1C! QT8> ")1AR+1@H+1@AU ^E_
M !ZXN8U0_W8V_W8TF@< [1.+Y8-^'@!T,,1V"":+1 0FBUP""\-T%B:+1 2Q
M#8[ )HL7T^J!X@< @_H"= N+1APK1B")1B+K!HM&'(E&(O]V-O]V-#/ 4/]V
M(L1V"";_= 0F_W0"#N@M_8OEQ'8()HM$"":+7 :)1@J)7@CI=O\>N+>-4/]V
M-O]V-)H' .T3B^6#Q"9=RU6#[ 0[)A <@7J8@$ (OL'KA"@E#_=@S_=@J:
MS0$D (OEA<"C0()T+ST& '0*/0< = 4]"@!U!@[H<NSK$+@! %#_=@S_=@H.
MZ*7QB^6: @"+$H/$!%W+,\ SVX/$!%W+58OL'KC C5":!0!@$HOEH>2/Z:<
MN $ 4 [HX=R+Y<<&]'\ .FD !ZXU(U0F@4 8!*+Y<<&]'\ ,<&Y(\" )KV
M#O,(#NA.UIH%$/,(QP;DCP ZW8>N F.4)H% & 2B^7'!O1_ .Z+;:QP;D
MCP, FO8.\P@.Z!S6F@40\PC'!N2/ #K1!ZX/(Y0F@4 8!*+Y<<&]'\ .LP
M'KANCE":!0!@$HOE,\!0F@( 21*+Y>L8E3>H-]8W"#B+\(/^!','T>8N_Z0T
M..O0'KB7CE":!0!@$HOEFK<Z? "X 0!0'KA&@U":#P ]"HOE7<M5B^R#/N2/
M '0"7<L>N)V.4)H% & 2B^6X 0!0#NCOVXOE,\"CT "C]'^:MSI\ +@! % >
MN$:#4)H/ #T*B^5=RU6#[ H[)A <@7J8@$ (OLQT8( #$=A0FBT0")HL\
MCL FBATP_X7;B5X =0/I?P"#^SMT>H[ )HH=,/^#^R!U&#/)N@$ B]^:!@#4
M$XY&%B:)1 (FB1SKO(M&$HM>$#/)N@$ B48"B5X F@8 U!/$=A0FBTP")HL4
MB4X&,\F)5@2Z 0")1A(FBT0"B5X0)HL<F@8 U!,FB40")HD<Q'8$)HH$Q'8
M)H@$_T8(Z6;_@WX( 'YNBT82BW80,\FZ 0"+WHE& HE> )H# 84CD8")L8$
M ,1V%":+3 (FBSR.P2:*%3#V@_H[B482B5X0=1HSR;H! (Y&%B:+1 *+WYH&
M -03)HE$ B:)',1V$":*!##D/5P =00FQ@0 BT8(@\0*7<LSP(/$"EW+58'L
M$ ([)A <@7J8@$ (OL_[88 O^V%@(6C48(4)H( 'D3B^4>N+..4!:-1@A0
MF@4 !!*+Y8E&!@O#B5X$= /I( $6C48(4)H. &H3B^6,TXU." /('KBUCE!3
M49H( 'D3B^4>N+..4!:-1@A0F@4 !!*+Y8E&!@O#B5X$= /IX0 >N+B.4)H(
M %H*B^6)A@H""\.)G@@"=0@SP('$$ )=RQ:-A@@"4!:-1@A0#N@C_HOEA<!U
M ^FA !:-1@A0F@X :A.+Y8S3C4X( \@>N,&.4%-1F@@ >1.+Y1:-1@A0F@X
M:A.+Y8S3C4X( \C_MA@"_[86 E-1F@@ >1.+Y1ZXLXY0%HU&"%":!0 $$HOE
MB48&"\.)7@1U21:-1@A0F@X :A.+Y8S3C4X( \@>N+6.4%-1F@@ >1.+Y1ZX
MLXY0%HU&"%":!0 $$HOEB48&"\.)7@1U ^E)_^L(,\"!Q! "7<N!/O1_0!]\
M! [H-?RA]'__!O1_T>#1X(OPC-"-G@P"B83V HF<] +'A@X" #'A@P" >
MN$*"4/]V!O]V!)K- 20 B^6%P*- @G4]N $ 4!ZXPXY0#NB'V(OEA<!T$1:-
M1@A0'KC,CE":!0!@$HOE_W8&_W8$F@X%) "+Y?\.]'\SP('$$ )=RZ% @H7
M=%4]!@!T"CT' '0%/0H =08.Z.OGZQ"X 0!0_W8&_W8$#N@>[8OE4%.)A@X"
MB9X, IIP0WP B^4>N4*"4?]V!O]V!(F&#@*)G@P"FLT!) "+Y:- @NND_W8&
M_W8$F@X%) "+Y;@! % >N,..4 [HX=>+Y87 =!$6C48(4!ZXWHY0F@4 8!*+
MY?\.]'^X 0"!Q! "7<M5@^P(.R80 '(%ZF(! "+[(-^$@%U$O]V%O]V%!ZX
M8XU0F@4 8!*+Y1ZX0H)0_W80_W8.FLT!) "+Y:- @J% @H7 =0/I[P ]!@!T
M"CT' '0%/0H =08.Z!#GZQ"X 0!0_W80_W8.#NA#[(OEHT2#BT80B1Y"@XM>
M#HS9ND2<F@@ R!-U!L<&T (-^$@%U-O\V1(/_-D*#FG!#? "+Y3/)43/2
M4E%2N0$ 45!3'KA6G% .Z 'SB^4>N+F-4)H% & 2B^7K%O\V1(/_-D*#FG!#
M? "+Y:-$@XD>0H.#/O1_ '0B'KCSCE":!0!@$HOEQP;T?P N $ 4!ZX1H-0
MF@\ /0J+Y8-^$@%U$O]V%O]V%!ZX8XU0F@4 8!*+Y1ZX0H)0_W80_W8.FLT!
M) "+Y:- @ND'_X/$"%W+58/L!CLF$ !R!>IB 0 B^PSP(M>#@M>#(E&!'4%
M@\0&7<O$=@PFB@0PY(7 B48 ="JX"@#W;@2+7@"#ZS")1@0#PS/)N@$ B48$
MC,"+WIH& -03B48.B5X,Z\>+1@2#Q 9=RU6+[)J3 _,/,\!0F@( 21*+Y5W+
M58/L$CLF$ !R!>IB 0 B^S'1@8 !ZX*(]0F@4 8!*+Y1ZX98]0F@@ 6@J+
MY5!3#NA4_XOEA<")1@Q_ [@% !Z[;X]3B48*F@@ 6@J+Y5!3#N@S_XOEA<")
M1@Q_ [@% !Z[>8]3B48(F@@ 6@J+Y5!3#N@2_XOEA<")1@Q_ [@R !Z[@H]3
MB48.F@@ 6@J+Y5!3#NCQ_HOEA<")1@Q_ [A 'U#_=@[_=@K_=@B)1A":>P#S
M"(OE#N@]P9H% &H*'KA&@U":30 ]"HOEA<!U9AZXC(]0#NCL^HOE@WX8 7YR
MBT882(7 B488?F<SR;H$ (M&'(M>&IH& -03CL F_W<"C$8<CL F_S>)7AH.
MZ+3ZB^6%P'48Q'8:)O]T B;_-!ZXEH]0F@4 8!*+Y>NRFKT!) #KJYJ] 20
M'KBMCU"X 0!0'KA$G% .Z/_\B^4.Z#G3,\!0,\!0,]M3'KA$G%":!0!U$HOE
MFKT!) >N+&/4+@! % >N$2<4 [HS?R+Y0[H9_Z#Q!)=RU6#[ 0[)A <@7J
M8@$ (OLN H /08 B48"?06X!@#K XM& CT& (E& GT%N 8 ZP.+1@(]!@")
M1@)]!;@& .L#BT8"B48"@\0$7<M5@^P&.R80 '(%ZF(! "+[ [HG_^[$@#W
MZXE& K@ 0)GW?@*)1@3W;@*#Q 9=RU6#["0[)A <@7J8@$ (OLBT8J T8L
M/5H ?A<>N,*04)H% & 2B^6X__]0F@( 21*+Y<=&#@ #NA)_Z/&CP[HCO\>
MN^*04Z/FCYH% & 2B^4>N%:<4+C__U":2@$I$XOE_W8PF@D 3Q*+Y8E&%@O#
MB5X4=$:+1@X[1BY],:'FCU":"0!/$HOEB482"\.)7A!T'(M&#O]&#M'@T>"+
M\(M&$HM>$(F$ZH^)G.B/Z\?_=A;_=A2:R@!/$HOE@WX. WUX'KCID%":!0!@
M$HOE'KA6G%"X__]0FDH!*1.+Y:'FCS/;A<!Y 4N)1@"+PXE> HM> #/)N@,
MF@$ 0A*+3@XSTH7)>0%*B48&B\*)7@2+V8M. HM6 )H! $(24%/_=@;_=@0>
MN/"04)H% & 2B^4SP%": @!)$HOE,\"CL)"+1@[W;BHM9 "[9 "9]_N%P(E&
M '\",\"+'K"0 ]B!^_X B1ZRD'X#N_X B1ZRD$.+1@[W;BPM9 "Y9 "9]_F%
MP(E& (D>M)!_ C/ BQZTD /8B1ZVD$.+1@Y(.\.CNI")'KB0?3,>N.F04)H%
M & 2B^4>N%:<4+C__U":2@$I$XOE'K@MD5":!0!@$HOEN/__4)H" $D2B^4S
MP#/;BPZTD*/ CZ/$CZ/2CZ/*CZ/.CZ/6CZ/:CZ/>CXE.#(D>OH^)'L*/B1[0
MCXD>R(^)'LR/B1[4CXD>V(^)'MR/BT8,BQZVD#O8?0/ILP#1X-'@B_"+A.J/
MBYSHCXE&$HE>$(M&#-'@T>"+\(N$ZH^+G.B/ Q[FCXM.$HM6$)H( ,@3=G>+
M\C/ CL$FBQR YQ^,1@*.P2:)'#/ @.?OCL$FB1PSP(#G]X[!)HD<H<2/BQ["
MCX[!)HE$!([!)HE< H[!)L=$$ CL$FQT0. "+QH,&V(\!@Q;:CP"CPH^)
M#L2/,\FZ$@"+1A*+7A":!@#4$XE&$HE>$.EG__]&#.D__Z&XD(E&#(M&#(L>
MNI [V'T#Z:4 T>#1X(OPBX3JCXN<Z(^)1A*)7A"+1@S1X-'@B_"+A.J/BYSH
MCP,>YH^+3A*+5A":" #($W9IB_*X $".P2:+'(#G'PO8C$8"CL$FB1PSP(#G
M[X[!)HD<H<"/BQZ^CX[!)HE$!([!)HE< HO&@P;4CP&#%M:/ *.^CXD.P(^A
MQH\SVX7 >0%+B\N+T(M&$HM>$)H& -03B482B5X0Z77__T8,Z4W_H;"0B48,
MBT8,BQZRD#O8?0/IE0#1X-'@B_"+A.J/BYSHCS/)NA B48"B482B5X B5X0
MF@8 U!/$=@ FB40")HD<BT82BW80BQ[FCS/)A=MY 4F+TXO>B48"B5X F@8
MU!..1@(FB40&)HE<!#/)NA BT82B]Z:!@#4$R:)1 HFB5P(H>:/+1 ,]N%
MP'D!2R:)7 XFB40,@P;0CQ"#%M*/ /]&#.E=_Z'FCS/;A<!Y 4N+#K"0BQ:R
MD"O10HE& #/ A=)Y 4B)1@:+PXM> (M.!IH! $(2BPZPD(D.P)#1X='AB_&+
MC.J/BY3HCQZCWH^XZ9!0B0Z^D(D6O)")'MR/F@4 8!*+Y1ZX5IQ0N/__4)I*
M 2D3B^6+1@XSVX7 >0%+BP[FCS/2A<EY 4J)1@"+PXM> (E.!(O*B58&BU8$
MF@$ 0A*+#K:0*PZTD$$STH7)>0%*B48BB\*)7B"+V3/)NF0 F@$ 0A*+3@:+
M5@2: 0!"$HM.(HM6()H% &X3BPZRD"L.L)!!,]*%R7D!2HE&'HO"B5X<B]DS
MR;ID )H! $(2BTX&BU8$F@$ 0A*+3B*+5B":!0!N$U!3_W8>_W8<_W8B_W8@
M'KEED5&)1AJ)7AB:!0!@$HOE@\0D7<M5@^P&.R80 '(%ZF(! "+[*' CXL>
MOH\+PW1MH<"/CL FBT\$CL FBU<"B0[ CXM.#(E. +$-B1:^CXM6 -/B@>(
MX([ )HL/@.4?"\J,1@2.P":)#S/),]*.P":)3P2.P":)5P*.P":)3PB.P":)
M5P:#!LB/ 8,6RH\ B5X"F@( BQ*#Q 9=R\<&Y(\! )H7#OD$#NA^"<<&Y(\
M *' CXL>OH\+PW1MH<"/CL FBT\$CL FBU<"B0[ CXM.#(E. +$-B1:^CXM6
M -/B@>( X([ )HL/@.4?"\J,1@2.P":)#S/),]*.P":)3P2.P":)5P*.P":)
M3PB.P":)5P:#!LB/ 8,6RH\ B5X"F@( BQ*#Q 9=RQZXGY%0F@4 8!*+Y3/
M4)H" $D2B^6#Q 9=RU6#[ @[)A <@7J8@$ (OLH<2/BQ["CPO#=$"AQ(^.
MP":+3P2.P":+5P*)#L2/,\F)%L*/CL FBQ> YA^,1@:.P":)%X,&S(\!@Q;.
MCP")7@2: @"+$H/$"%W+QP;DCP$ FA<.^00.Z'H(QP;DCP H<2/BQ["CPO#
M=$"AQ(^.P":+3P2.P":+5P*)#L2/,\F)%L*/CL FBQ> YA^,1@:.P":)%X,&
MS(\!@Q;.CP")7@2: @"+$H/$"%W+'KC#D5":!0!@$HOE,\!0F@( 21*+Y8/$
M"%W+58/L##LF$ !R!>IB 0 B^R+1A) 0#W^ (E&$GX6'KCCD5":!0!@$HOE
M,\!0F@( 21*+Y;@! %#$-KR0)HM$!B:+7 0FBTP*)HM4")H+ ,P3BTX2,]*%
MR7D!2HE.!(O*BU8$F@8 !!1]"?]V$@[H5 .+Y<0VO) FBT0*)HM<"(M.$C/2
MA<EY 4J)3@"+RHE6 HM6 (E&"HE>")H& -03)HE$"B:)7 B+1@ F*40,BUX"
M)AE<#@$&T(\1'M*/BT8*BW8(,\FZ 0"+WHE& HE> )H& -03BTX2CD8")H@,
M,\FZ 0")1@*)1@J)7@")7@B:!@#4$XL.P)#$=@ FB R)1@J)7@B: @"+$H/$
M#%W+58/L##LF$ !R!>IB 0 B^PSR;H! (M&%(M>$IH# 84CL FB@\P[;+_
MC$84CL FB!>)3@HSR;H! (E>$IH# 84CL FB@\P[8'A_P"+5@K1XM'BB_*+
ME.J/B[SHCXE&%#/ A<EY 4B.PB8!30R.PB8110Z)3@B)7A*#Q Q=RU6#[ 0[
M)A <@7J8@$ (OLBT8,BUX*BTX0BU8.F@@ R!-S.8[ )HI/ 3#M@>'_ ('Y
M_P!U)X[ )HH',.0E_P SVX7 >0%+B\N+T(S BUX*F@8 U!.)1@R)7@KKM(M&
M#(M>"HM.$(M6#IH( ,@3<@0SP#/;F@( BQ*#Q 1=RU6#[ 0[)A <@7J8@$
M (OLBT8,BUX*BTX0BU8.F@@ R!-S.8[ )HI/ 3#M@>'_ ('Y_P!T)X[ )HH'
M,.0E_P SVX7 >0%+B\N+T(S BUX*F@8 U!.)1@R)7@KKM(M&#(M>"HM.$(M6
M#IH( ,@3<@0SP#/;F@( BQ*#Q 1=RU6#[ X[)A <@7J8@$ (OLBT86BUX4
MBTX:BU88F@@ R!-R ^FC ([ )HI/ 3#M@>'_ ('Y_P!U ^F. #/)N@( F@8
MU!.+=A0FB@PP[8'A_P!)25%04YJI ?D$B^6)1@P+PXE>"G46'KC]D5":!0!@
M$HOE,\!0F@( 21*+Y8M&'#/;A<!Y 4N+RXO0Q'8*)HM$ B:+')H# 84)HE$
M B:)',1V%":*!##D)?\ ,]N%P'D!2XO+B]",P(O>F@8 U!.)1A:)7A3I1_^#
MQ Y=RU6#[ @[)A <@7J8@$ (OLBT86_TX6A<!T38M&$(MV#C/)N@$ B]Z)
M1@*)7@":!@#4$XM.%(M^$HE.!C/)N@$ B480BT84B5X.B]^)7@2:!@#4$XY&
M!B:*#8Y& B:(#(E&%(E>$NNI@\0(7<M5@^P*.R80 '(%ZF(! "+[*' D$")
M1@B+1@B+'K*0.]A\-]'@T>"+\(N$ZH^+O.B/BUX0,\F%VWD!28[ )HM%#HE>
M!":+70R+5@2:!@ $%'X#Z0,!_T8(Z[ZAL)")1@B+1@B+'L"0.]A\-]'@T>"+
M\(N$ZH^+O.B/BUX0,\F%VWD!28[ )HM%#HE>!":+70R+5@2:!@ $%'X#Z;L
M_T8(Z[['!N2/ 0":%P[Y! [HF /'!N2/ "AP)! B48(BT8(BQZRD#O8?#31
MX-'@B_"+A.J/B[SHCXM>$#/)A=MY 4F.P":+10Z)7@0FBUT,BU8$F@8 !!1_
M8/]&".O!H;"0B48(BT8(BQ[ D#O8?#31X-'@B_"+A.J/B[SHCXM>$#/)A=MY
M 4F.P":+10Z)7@0FBUT,BU8$F@8 !!1_&_]&".O!'K@ADE":!0!@$HOE,\!0
MF@( 21*+Y8M&"*/ D-'@T>"+\(N$ZH^+O.B/H[Z0N $ 4(X&OI FBT4&)HM=
M!":+30HFBU4(B3Z\D)H+ ,P3BTX0,]*%R7D!2HE.!(O*BU8$F@8 !!1]#O\V
MOI#_-KR0#N@' (OE@\0*7<M5@^P4.R80 '(%ZF(! "+[,1V&B:+1 HFBUP(
M4%,F_W0")O\TB482B5X0#NA;_(OEB48&"\.)7@1U!8/$%%W+_W82_W80_W8&
M_W8$#NB\^XOEB48*B5X(BT8*"T8(=0/IOP#_=A+_=A#_=@K_=@@.Z!?\B^6)
M1@X+PXE>#'4,BT82BUX0B48.B5X,N $ 4(M&"HM>"(M.!HM6!)H+ ,P34%/_
M=@[_=@S_=@K_=@@.Z%;\B^6X 0!0BT8.BUX,BTX*BU8(F@L S!-04_]V"O]V
M"/]V!O]V! [H_/R+Y;@! %"+1@Z+7@R+3@J+5@B:"P#,$XO(B].+1@:+7@2:
M!@#4$_]V$O]V$/]V#O]V#(E&!HE>! [H]?J+Y8E&"HE>".DV_[@! %#$=AHF
MBT0*)HM<"(M.!HM6!)H+ ,P3*1[0CQD&TH^+1@:+7@3$=AHFB40*)HE<"+@!
M % FBT0&)HM<!":+3 HFBU0(F@L S!/$=AHFB40.)HE<#(/$%%W+58/L"CLF
M$ !R!>IB 0 B^RAM)")1@2+1@2+'K:0.]A\9]'@T>"+\(N$ZH^+G.B/B48(
MB5X&BT8$T>#1X(OPBX3JCXN<Z(\#'N:/BTX(BU8&F@@ R!-V+(OR,\".P2:+
M'(#G[XQ& H[!)HD<,\FZ$@"+1@B+7@::!@#4$XE&"(E>!NNR_T8$ZXZAN)")
M1@2+1@2+'KJ0.]A\<-'@T>"+\(N$ZH^+G.B/B48(B5X&BT8$T>#1X(OPBX3J
MCXN<Z(\#'N:/BTX(BU8&F@@ R!-V-8OR,\".P2:+'(#G[XQ& H[!)HD<H<:/
M,]N%P'D!2XO+B]"+1@B+7@::!@#4$XE&"(E>!NNI_T8$ZX6#Q I=RU6#[!([
M)A <@7J8@$ (OL@P;@CP&#%N*/ ,<&P(\ ,<&OH\ *'6CXL>U(^+#KB0
MH\J/B4X0B1[(CXM&$(L>NI [V'T#Z4$!_T80T>#1X(OPBX3JCXN<Z(^+#N:/
M,]*%R7D!2HE. (O*BU8 B48*B5X(F@8 U!.)1@Z)7@R+1@Z+7@R+3@J+5@B:
M" #($W:JB_*)3@*Q#(Y& B:+!-/H)0$ B78 = /IJ@"Q#2:+!-/H)0< ZU3_
M=@K_=@B:4@?Y!(OEBT8*BW8(CL F_W0$C$8"CL F_W0"#N@B^(OEZS3_=@K_
M=@B:VPGY!(OEBT8*BW8(CL F_W0$C$8"CL F_W0"#NCX]XOEZPH]!@!TT3T%
M '2BBT8*BW8(BQ[ CXL.OH^.P":)7 2,1@*.P":)3 *X $ FBQR YQ\+V":)
M'(S B]Z#+LB/ 8,>RH\ H\"/B1Z^CXM&"HMV"#/;CL FBPR Y>^,1@*.P":)
M#(L>QH\SR87;>0%)B].+WIH& -03B48*B5X(Z?3^QP;$CP QP;"CP H=J/
MBQ[8CXL.M)"CSH^)3A")'LR/BT80BQZVD#O8?0/I" '_1A#1X-'@B_"+A.J/
MBYSHCXL.YH\STH7)>0%*B4X B\J+5@")1@J)7@B:!@#4$XE&#HE>#(M&#HM>
M#(M."HM6")H( ,@3=JJ+\HE. K$,CD8")HL$T^@E 0")=@!U?+$+)HL$T^@E
M 0!U<":+1! F"T0.=";_=@I2FH8&^02+Y8M&"HMV"([ )O]T$(Q& H[ )O]T
M#@[HK?:+Y8M&"HMV"(L>Q(^+#L*/CL FB5P$C$8"CL FB4P"B]Z.P";'1!
M ([ )L=$#@ @R[,CP&#'LZ/ */$CXD>PH^+1@J+=@@SVX[ )HL,@.7OC$8"
MCL FB0PSR;H2 (O>F@8 U!.)1@J)7@CI+?\SP% >N#N24)H?%/D$B^6%P'0$
M#N@9 /\VXH__-N"/'KA$DE":AQ/Y!(OE@\027<M5@^P4.R80 '(%ZF(! "+
M[*'*CXL>R(\SR;ID )H! $(2BP[6CXL6U(^:!0!N$Z'.CXE>#HL>S(\SR;ID
M )H! $(2BP[:CXL6V(^:!0!N$Z'2CXE>$(L>T(\SR;ID )H! $(2BP[>CXL6
MW(^:!0!N$XM&#C/)A<!Y 4F)1@"+P8E>$HM> (E. C/)N@$ F@8 !!1_!3/
MNP$ BTX0,]*%R7D!2HE& HO"B5X B]F)3@0SR8E6!KH! )H& 04?P4SP+L!
M (M.$C/2A<EY 4J)1@:+PHE>!(O9B4X(,\F)5@JZ 0":!@ $%'\%,\"[ 0!0
M4_]V!O]V!/]V O]V /\VXH__-N"/'KA.DE":!0!@$HOE@\047<M5@^P$.R80
M '(%ZF(! "+[(M&"NMWH<J/BQ[(CS/)NF0 F@$ 0A*+#M:/BQ;4CYH% &X3
MB\.#Q 1=RZ'.CXL>S(\SR;ID )H! $(2BP[:CXL6V(^:!0!N$XO#@\0$7<NA
MTH^+'M"/,\FZ9 ": 0!"$HL.WH^+%MR/F@4 ;A.+PX/$!%W+N/__@\0$7<L]
M @!TSCT! '2D/0 =0/I=__KY%6+[(M&"([ BWX&^B:+)2:+10*.T/N+[":+
M102)1@(FBT4&B48$)HM%"(E& ":+10J.V":+10R.P+@! %W+58OLC,"+R(M&
M"([ BWX&)HDEC- FB44"BT8")HE%!(M&!":)10:+1@ FB44(C-@FB44*)HE-
M#(O!CL SP%W+58OL'HM^!BZAMK2.V*$L ([8B@4RY!]=RU6+[(I^!HIV"(I6
M"K0"MP#-$%W+5;0#MP#-$(OLBW8&BWX(B#2(%5W+58OLM "*1@;-$%W+58OL
MM &*;@:*3@C-$%W+58OLM 6*1@;-$%W+58OLM :*1@:*;@B*3@J*=@R*5@Z*
M?A#-$%W+58OLM >*1@:*;@B*3@J*=@R*5@Z*?A#-$%W+58OLM F*?@:+3@B*
M1@J*7@S-$%W+58OLM J*?@:+3@B*1@K-$%W+58OLM Z*1@:*7@C-$%W+58OL
MM R+3@:+5@B*1@K-$%W+58OLM!**1@:*;@B*3@J*=@R*5@Z*7A"*?A*+=A3-
M4EW+M"K-(8O!R[0JS2$SP(K&R[0JS2$SP(K"R[0JS2$RY,NT+,TA,\"*Q<NT
M+,TA,\"*P<NT+,TA,\"*QLNT+,TA,N2*PLM5@^P0.R80 '(%ZF(! "+[#/
MQ@:#DP")1@B)1@J!?@@@3GP#Z< BT88BUX6B48.B5X,_W8(FHP /0J+Y<1V
M#":*'##_.]AU&3/)N@$ C,"+WIH& -03_T8(B48.B5X,Z]&+1@C_1@A0FHP
M/0J+Y3T] '5&Q'8,)HH$,.2%P'4ZBT8*_T8*B_"+1@C_1@A0B78 FHP /0J+
MY8MV (B$A)*$P'0'@7X*_P!\U8S8NX22F@( BQ*#Q!!=RXM&"/]&"%":C ]
M"HOEA<!U[O]V")J, #T*B^6%P'0#Z3__,\ SVX/$$%W+,\ SVX/$$%W+58OL
MH8230*.$DUW+58/L"#LF$ !R!>IB 0 B^RX 0!0'KB&DU":\0/Y!(OEN0$
M41ZYB)-1HRJ B1XH@)KQ _D$B^6Y 0!1'KF,DU&C+H")'BR FO$#^02+Y;D!
M %$>N9.34:,R@(D>,(":\0/Y!(OEN0$ 41ZYFY-1HT* B1Y @)KQ _D$B^6Y
M 0!1'KFADU&C1H")'D2 FO$#^02+Y;D! %$>N:>34:,V@(D>-(":\0/Y!(OE
MN0$ 41ZYL)-1HSZ B1X\@)KQ _D$B^7_-BJ _S8H@/\V*H#_-BB HSJ B1XX
M@)I;$?D$B^6X$ #$-BB )HL<"]@FB1PSP% SVU/_-BZ _S8L@)I;$?D$B^6X
M$ #$-BR )HL<"]@FB1RX 0!0'KB]DU":\0/Y!(OEN1 CL FBQ<+T8Q&!H[
M)HD7B5X$,\ SVS/),])04U%2FGL&? "+Y5!3_W8&_W8$FEL1^02+Y;@! % >
MN,>34)KQ _D$B^6Y$ ".P":+%PO1C$8&CL FB1?_-BJ _S8H@%!3B5X$FEL1
M^02+Y;@! % >N-"34)KQ _D$B^6Y$ ".P":+%PO1C$8&CL FB1<SP% SR5$&
M4XE>!)I;$?D$B^4SP% SVU,>N-F34 Z+!O*74+@) %":.Q#Y!(OE,\!0,]M3
M'KCADU"X? !0N_$*4[@+ %":.Q#Y!(OE,\!0,]M3'KCGDU"X? !0NSD+4[@)
M %":.Q#Y!(OE,\!0,]M3'KCKDU"X? !0NZX+4[@) %":.Q#Y!(OE,\!0,]M3
M'KCODU"X? !0NR,,4[@) %":.Q#Y!(OE,\!0,]M3'KCTDU"X? !0N^L,4[@)
M %":.Q#Y!(OE,\!0,]M3'KCYDU"X? !0NV4-4[@) %":.Q#Y!(OE,\!0,]M3
M'KC\DU"X? !0N^P-4[@) %":.Q#Y!(OE,\!0,]M3'K@!E%"X? !0NZ .4[@)
M %":.Q#Y!(OE,\!0,]M3'K@)E%"X? !0NY,/4[@) %":.Q#Y!(OE,\!0,]M3
M'K@-E%"X? !0NS@34[@+ %":.Q#Y!(OE,\!0,]M3'K@1E%"X? !0NWP64[@+
M %":.Q#Y!(OE,\!0,]M3'K@6E%"X? !0NX@74[@) %":.Q#Y!(OE,\!0,]M3
M'K@<E%"X? !0NU(84[@) %":.Q#Y!(OE,\!0,]M3'K@DE%"X? !0N^8=4[@)
M %":.Q#Y!(OE,\!0,]M3'K@FE%"X? !0NZ4>4[@) %":.Q#Y!(OE,\!0,]M3
M'K@HE%"X? !0NY ?4[@) %":.Q#Y!(OE,\!0,]M3'K@JE%"X? !0NUH@4[@)
M %":.Q#Y!(OE,\!0,]M3'K@LE%"X? !0N_HE4[@) %":.Q#Y!(OE,\!0,]M3
M'K@NE%"X? !0NTPD4[@) %":.Q#Y!(OE,\!0,]M3'K@PE%"X? !0NR0E4[@)
M %":.Q#Y!(OE,\!0,]M3'K@RE%"X? !0NU@C4[@) %":.Q#Y!(OE,\!0,]M3
M'K@VE%"X? !0NV8A4[@) %":.Q#Y!(OE,\!0,]M3'K@ZE%"X? !0NUXB4[@)
M %":.Q#Y!(OE,\!0,]M3'K@^E%"X? !0N](F4[@+ %":.Q#Y!(OE,\!0,]M3
M'KA#E%"X? !0NRLI4[@) %":.Q#Y!(OE,\!0,]M3'KA'E%"X? !0N^\K4[@)
M %":.Q#Y!(OE,\!0,]M3'KA.E%"X? !0NXPL4[@) %":.Q#Y!(OE,\!0,]M3
M'KA1E%"X? !0NRXM4[@) %":.Q#Y!(OE,\!0,]M3'KA9E%"X? !0NZ8M4[@)
M %":.Q#Y!(OE,\!0,]M3'KA@E%"X? !0NV(94[@) %":.Q#Y!(OE,\!0,]M3
M'KAHE%"X? !0N^\:4[@) %":.Q#Y!(OE,\!0,]M3'KAPE%"X? !0NX0<4[@)
M %":.Q#Y!(OE,\!0,]M3'KAYE% .BP;VEU"X"0!0FCL0^02+Y3/ 4#/;4QZX
M?I10#HL&^I=0N D 4)H[$/D$B^4SP% SVU,>N(244 Z+!OZ74+@) %":.Q#Y
M!(OE,\!0,]M3'KB*E% .BP8"F%"X"0!0FCL0^02+Y3/ 4#/;4QZXD)10#HL&
M!IA0N D 4)H[$/D$B^4SP% SVU,>N):44 Z+!@J84+@) %":.Q#Y!(OE,\!0
M,]M3'KB<E% .BP8.F%"X"0!0FCL0^02+Y3/ 4#/;4QZXH910N'P 4+O-+5.X
M"0!0FCL0^02+Y3/ 4#/;4QZXII10N'P 4+L1+E.X"0!0FCL0^02+Y3/ 4#/;
M4QZXK)10N'P 4+M5,E.X"0!0FCL0^02+Y3/ 4#/;4QZXLY10#HL&$IA0N D
M4)H[$/D$B^4SP% SVU,>N+>44+A\ %"[1@Y3N D 4)H[$/D$B^4SP% SVU,>
MN+N44 Z+!A:84+@) %":.Q#Y!(OE,\!0,]M3'KC"E% .BP8:F%"X"0!0FCL0
M^02+Y3/ 4#/;4QZXRY10#HL&'IA0N D 4)H[$/D$B^4SP% SVU,>N-&44+A\
M %"[7C!3N L 4)H[$/D$B^4SP% SVU,>N-644+A\ %"[U3!3N L 4)H[$/D$
MB^4SP% SVU,>N-B44+A\ %"[M2Y3N D 4)H[$/D$B^4SP% SVU,>N-V44+A\
M %"[?RI3N L 4)H[$/D$B^4SP% SVU,>N.*44+A\ %"[Z"Y3N D 4)H[$/D$
MB^4SP% SVU,>N.B44+A\ %"[8"]3N D 4)H[$/D$B^4SP% SVU,>N.N44+A\
M %"[L"]3N D 4)H[$/D$B^4SP% SVU,>N/*44+A\ %"[-Q!3N L 4)H[$/D$
MB^4SP% SVU,>N/B44+A\ %"[G!13N D 4)H[$/D$B^4SP% SVU,>N/V44+A\
M %"[ !93N D 4)H[$/D$B^4SP% SVU,>N *54 Z+!B*84+@) %":.Q#Y!(OE
M,\!0,]M3'K@)E5 .BP8FF%"X"0!0FCL0^02+Y3/ 4#/;4QZX%950#HL&*IA0
MN D 4)H[$/D$B^4SP% SVU,>N!N54 Z+!BZ84+@) %":.Q#Y!(OE,\!0,]M3
M'K@FE5 .BP8RF%"X"0!0FCL0^02+Y3/ 4#/;4QZX+I50#HL&-IA0N D 4)H[
M$/D$B^4SP% SVU,>N#654 Z+!CJ84+@) %":.Q#Y!(OE,\!0,]M3'K@\E5 .
MBP8^F%"X"0!0FCL0^02+Y3/ 4#/;4QZX0I50#HL&0IA0N D 4)H[$/D$B^4S
MP% SVU,>N$F54 Z+!D:84+@) %":.Q#Y!(OE,\!0,]M3'KA/E5 .BP9*F%"X
M"0!0FCL0^02+Y3/ 4#/;4QZX5)50#HL&3IA0N D 4)H[$/D$B^4SP% SVU,>
MN%F54 Z+!E*84+@) %":.Q#Y!(OE,\!0,]M3'KABE5 .BP96F%"X"0!0FCL0
M^02+Y3/ 4#/;4QZX:I50#HL&6IA0N D 4)H[$/D$B^4SP% SVU,>N&Z54 Z+
M!EZ84+@) %":.Q#Y!(OE,\!0,]M3'KASE5 .BP9BF%"X"0!0FCL0^02+Y3/
M4#/;4QZX>)50#HL&9IA0N D 4)H[$/D$B^4SP% SVU,>N'V54 Z+!FJ84+@)
M %":.Q#Y!(OE,\!0,]M3'KB!E5 .BP9NF%"X"0!0FCL0^02+Y3/ 4#/;4QZX
MA950#HL&<IA0N D 4)H[$/D$B^4SP% SVU,>N(J54 Z+!G:84+@) %":.Q#Y
M!(OE,\!0,]M3'KB/E5 .BP9ZF%"X"0!0FCL0^02+Y3/ 4#/;4QZXDY50#HL&
M?IA0N D 4)H[$/D$B^4SP% SVU,>N)F54 Z+!H*84+@) %":.Q#Y!(OE,\!0
M,]M3'KB=E5 .BP:&F%"X"0!0FCL0^02+Y3/ 4#/;4QZXHI50#HL&BIA0N D
M4)H[$/D$B^4SP% SVU,>N*F54 Z+!HZ84+@+ %":.Q#Y!(OE,\!0,]M3'KBO
ME5 .BP:2F%"X"P!0FCL0^02+Y3/ 4#/;4QZXMY50N'P 4+M),5.X"0!0FCL0
M^02+Y3/ 4#/;4QZXPY50#HL&EIA0N D 4)H[$/D$B^4SP% SVU,>N,V54 Z+
M!IJ84+@) %":.Q#Y!(OE,\!0,]M3'KC3E5 .BP:>F%"X"0!0FCL0^02+Y3/
M4#/;4QZXW)50#HL&HIA0N D 4)H[$/D$B^4SP% SVU,>N.254 Z+!J:84+@)
M %":.Q#Y!(OE,\!0,]M3'KCOE5 .BP:JF%"X"0!0FCL0^02+Y3/ 4#/;4QZX
M]Y50#HL&KIA0N D 4)H[$/D$B^4SP% SVU,>N "64 Z+!K*84+@) %":.Q#Y
M!(OE,\!0,]M3'K@'EE .BP:VF%"X"0!0FCL0^02+Y3/ 4#/;4QZX$)90#HL&
MNIA0N D 4)H[$/D$B^4SP% SVU,>N!.64 Z+!KZ84+@) %":.Q#Y!(OE,\!0
M,]M3'K@8EE .BP;"F%"X"0!0FCL0^02+Y3/ 4#/;4QZX&Y90#HL&QIA0N D
M4)H[$/D$B^4SP% SVU,>N""64 Z+!LJ84+@) %":.Q#Y!(OE,\!0,]M3'K@D
MEE .BP;.F%"X"0!0FCL0^02+Y3/ 4#/;4QZX*I90#HL&TIA0N D 4)H[$/D$
MB^4SP% SVU,>N"Z64 Z+!M*84+@) %":.Q#Y!(OE,\!0,]M3'K@REE .BP;2
MF%"X"0!0FCL0^02+Y3/ 4#/;4QZX-Y90#HL&UIA0N D 4)H[$/D$B^4SP% S
MVU,>N#R64 Z+!M:84+@) %":.Q#Y!(OE,\!0,]M3'KA'EE .BP;:F%"X"0!0
MFCL0^02+Y3/ 4#/;4QZX3Y90#HL&VIA0N D 4)H[$/D$B^4SP% SVU,>N%66
M4 Z+!MZ84+@) %":.Q#Y!(OE,\!0,]M3'KA>EE .BP;BF%"X"0!0FCL0^02+
MY3/ 4#/;4QZX9Y90#HL&YIA0N D 4)H[$/D$B^4SP% SVU,>N&V64 Z+!NJ8
M4+@) %":.Q#Y!(OE,\!0,]M3'KAREE .BP;NF%"X"0!0FCL0^02+Y3/ 4#/;
M4QZX>)90#HL&\IA0N D 4)H[$/D$B^4SP% SVU,>N'Z64 Z+!O:84+@) %":
M.Q#Y!(OE,\!0,]M3'KB%EE .BP;ZF%"X"0!0FCL0^02+Y3/ 4#/;4QZXBY90
M#HL&_IA0N D 4)H[$/D$B^4SP% SVU,>N(^64 Z+!@*94+@) %":.Q#Y!(OE
M,\!0,]M3'KB4EE .BP8&F5"X"0!0FCL0^02+Y3/ 4#/;4QZXFI90#HL&!IE0
MN D 4)H[$/D$B^4SP% SVU,>N**64 Z+!@J94+@) %":.Q#Y!(OE,\!0,]M3
M'KBGEE .BP8.F5"X"0!0FCL0^02+Y3/ 4#/;4QZXKI90#HL&$IE0N D 4)H[
M$/D$B^4SP% SVU,>N+:64 Z+!A:94+@) %":.Q#Y!(OE,\!0,]M3'KC&EE .
MBP8:F5"X"0!0FCL0^02+Y3/ 4#/;4QZXT)90#HL&'IE0N D 4)H[$/D$B^4S
MP% SVU,>N-J64 Z+!B*94+@) %":.Q#Y!(OE,\!0,]M3'KCAEE"X? !0NPPW
M4[@) %":.Q#Y!(OE,\!0,]M3'KCFEE"X? !0NTLW4[@) %":.Q#Y!(OE,\!0
M,]M3'KCNEE"X? !0N^<W4[@) %":.Q#Y!(OE,\!0,]M3'KCWEE"X? !0NV X
M4[@) %":.Q#Y!(OE,\!0,]M3'KC[EE"X? !0NS4Y4[@) %":.Q#Y!(OE,\!0
M,]M3'K@"EU"X? !0NTLZ4[@) %":.Q#Y!(OE,\!0,]M3'K@/EU"X? !0NQDU
M4[@) %":.Q#Y!(OE,\!0,]M3'K@5EU .BP8FF5"X"0!0FCL0^02+Y3/ 4#/;
M4QZX')=0#HL&*IE0N D 4)H[$/D$B^4SP% SVU,>N"&74 Z+!BZ94+@) %":
M.Q#Y!(OE,\!0,]M3'K@HEU .BP8RF5"X"0!0FCL0^02+Y3/ 4#/;4QZX+Y=0
M#HL&-IE0N D 4)H[$/D$B^6:! #S#X/$"%W+58/L$#LF$ !R!>IB 0 B^R!
M/O1_0!]\!9J -_D$H?1__P;T?]'@T>"+\(S0C5X,B83V HF<] (SP#/VBUX8
M"UX6B48.B78,= /I]@"X @!0FN\%\PB+Y3/)48E&#HE>#)H.%/,(B^4SVX7
M>0%+4U":/09\ (OEQ'8,)HE$!":)7 *X @!0FN\%\PB+Y<1V#":)1 @FB5P&
MN0$ 48E& HE> )H.%/,(B^4SVX7 >0%+4U":/09\ (OEQ'8 )HE$!":)7 +$
M=@PFBT0()HM\!KL" %.)1@*)?@":[P7S"(OEQ'8 )HE$"":)7 ;$=@PFBT0(
M)HM\!H[ )HM="([ )HMU!K@" %")7@*)=@":#A3S"(OE,]N%P'D!2U-0FCT&
M? "+Y<1V ":)1 0FB5P"_P[T?XM&#HM>#)H" (L2@\007<L>N-F34)I= 'P
MB^6#Q!!=RU6#[ @[)A <@7J8@$ (OLBT80"T8.=0DSP#/;@\0(7<N#/M
M '0%FF\X^02Q#<1V#B:+!-/H)0< Z3,!Q'8.)O]T!";_= (.Z+/_B^6#PPH5
M #$=@XF_W0()O]T!HE& HE> [HEO^+Y8M. /+BU8"$]"+PHO9@\0(7<LS
MP+L& (/$"%W+,\"[!@"#Q A=RXM&$(MV#H[ )O]T"(Q& H[ )O]T!@[H5/^+
MY8/#"A4 (/$"%W+BT80BW8.CL F_W00C$8"CL F_W0.F@X :A.+Y3/;A<!Y
M 4L%$@"#TP % 0"#TP"3@\0(7<N+1A"+=@Z.P";_= 2,1@*.P";_= *:#@!J
M$XOE,]N%P'D!2P4& (/3 4! (/3 ).#Q A=RXM&$(MV#K$$CL FBQS3ZS+_
MT>N+P[D* /?A,]L%!@"#TP"3@\0(7<L>N#274)H% & 2B^4SP%": @!)$HOE
MZQZX$X@3/1.2$WX3[1,B%(OP@_X'<P?1YB[_I&(4Z\J#Q A=RU6#[ @[)A
M<@7J8@$ (OLBT80"T8.="[$=@XFBT0()@M$!G4A)O]T!";_= (.Z$C^B^50
M4YH]!GP B^6: @"+$H/$"%W+'K@'EE":70!\ (OE@\0(7<M5@^P(.R80 '(%
MZF(! "+[(M&$ M&#G4#Z7H!Q'8.)HM$!"8+1 )U ^EJ 2:+1 @F"T0&= /I
M70$6C48$4";_= 0F_W0"FD8@^02+Y87 =0/I0@$>N'F44/]V!O]V!)H ,\3
MB^6%P'48,\!0NPH 4YH]!GP B^6: @"+$H/$"%W+'KA1EU#_=@;_=@2: #/
M$XOEA<!U&#/ 4+L* %.:/09\ (OEF@( BQ*#Q A=RQZX5I=0_W8&_W8$F@
MSQ.+Y87 =1@SP%"[!@!3FCT&? "+Y9H" (L2@\0(7<L>N%V74/]V!O]V!)H
M ,\3B^6%P'48,\!0NP8 4YH]!GP B^6: @"+$H/$"%W+'KADEU#_=@;_=@2:
M #/$XOEA<!U&#/ 4+L& %.:/09\ (OEF@( BQ*#Q A=RQZX:Y=0_W8&_W8$
MF@ SQ.+Y87 =1@SP%"[$@!3FCT&? "+Y9H" (L2@\0(7<L>N.&64/]V!O]V
M!)H ,\3B^6%P'48,\!0NP8 4YH]!GP B^6: @"+$H/$"%W+'K@ EE":70!\
M (OE@\0(7<M5@^P(.R80 '(%ZF(! "+[(M&$ M&#G4#Z?( Q'8.)HM$!"8+
M1 )U ^GB !:-1@10)O]T!";_= *:OQ_Y!(OEA<!U ^G' ,1V#B:+1 @FBWP&
MCL FBUT$C$80CL F"UT"B7X.=0DSP#/;@\0(7<O$=@XFBT0$)HM\ K$-CL F
MBQW3ZX'C!P"#^P)T ^E_ (Y&$":+7 @F"UP&=7*+WXM.!H7)B480B5X.>&.+
M1@:+7@2#;@0!@UX& #/),]*:!@ $%'XDBT80"T8.=!/$=@XFBT0()HM<!HE&
M$(E>#NO,,\ SVX/$"%W+BT80"T8.=0DSP#/;@\0(7<O$=@XFBT0$)HM< IH"
M (L2@\0(7<L>N+.44)I= 'P B^6#Q A=RU6#[ @[)A <@7J8@$ (OLBT80
M"T8.=0/IF@#$=@XFBT0$)@M$ G47,\!0,]M3FCT&? "+Y9H" (L2@\0(7<O$
M=@XFBT0$)HM\ K$-CL FBQW3ZX'C!P"#^P)U68Y&$":+7 @F"UP&=4R+W\=&
M!@ QT8$ ")1A")7@Z+1A +1@YT&\1V#B:+1 @FBUP&@T8$ 8-6!@")1A")
M7@[KW?]V!O]V!)H]!GP B^6: @"+$H/$"%W+'KB[E%":70!\ (OE@\0(7<M5
MB^R+1@B+7@:: @"+$EW+58/L#CLF$ !R!>IB 0 B^S&1@D BT86"T84='G$
M=A0FBT0()@M$!G5L%HU&"E F_W0$)O]T IJ_'_D$B^6%P'14BT8,A<!X38M>
M"C/)N@ !F@8 !!1]/A:-1@A0B%X(FA<#^02+Y8E&!@O#B5X$=14SP% 6C48(
M4)KQ _D$B^6)1@:)7@2+1@:+7@2: @"+$H/$#EW+'KA^E%":70!\ (OE@\0.
M7<M5@^P,.R80 '(%ZF(! "+[(M&% M&$G4#Z:L Q'82)HM$!":+7 (FBTP(
M)HM4!HE.% O*B48&B582B5X$=2XSP% SVU-04[@! %#_=@;_=@0>N%:<4)H;
M,/D$B^6+1@:+7@2: @"+$H/$#%W+Q'82)HM$!":+? *Q#8[ )HL=T^N!XP<
M@_L#=3V.P":+702.P":+30(SP% STE)04K@! %#_=@;_=@1348E."(E>"IH;
M,/D$B^6+1@:+7@2: @"+$H/$#%W+'KB$E%":70!\ (OE@\0,7<M5@^P,.R80
M '(%ZF(! "+[(M&% M&$G4#Z:D Q'82)HM$!":+7 (FBTP()HM4!HE.% O*
MB48&B582B5X$=2TSP% SVU-04S/ 4/]V!O]V!!ZX5IQ0FALP^02+Y8M&!HM>
M!)H" (L2@\0,7<O$=A(FBT0$)HM\ K$-CL FBQW3ZX'C!P"#^P-U/([ )HM=
M!([ )HM- C/ 4#/24E!2,\!0_W8&_W8$4U&)3@B)7@J:&S#Y!(OEBT8&BUX$
MF@( BQ*#Q Q=RQZXBI10FET ? "+Y8/$#%W+58/L##LF$ !R!>IB 0 B^R+
M1A0+1A)U ^FK ,1V$B:+1 0FBUP")HM,"":+5 :)3A0+RHE&!HE6$HE>!'4N
M,\!0,]M34%,SP%#_=@;_=@0>N%:<4)H;,/D$B^6A*H"+'BB F@( BQ*#Q Q=
MR\1V$B:+1 0FBWP"L0V.P":+'=/K@>,' (/[ W4]CL FBUT$CL FBTT",\!0
M,])24%(SP%#_=@;_=@1348E."(E>"IH;,/D$B^6A*H"+'BB F@( BQ*#Q Q=
MRQZXD)10FET ? "+Y8/$#%W+58/L!#LF$ !R!>IB 0 B^R+1@P+1@IT3,1V
M"B:+1 0FBUP""\-T/2:+1 2Q#8[ )HL7T^J!X@< @_H#=2>.P";_=P2,1@*.
MP";_=P*:#@4D (OEH2J BQXH@)H" (L2@\0$7<L>N,N44)I= 'P B^6#Q 1=
MRU6#[!@[)A <@7J8@$ (OLBT8@"T8>=0/I]@ 6C48$4,1V'B;_= 0F_W0"
MFD8@^02+Y87 =0/IV #$=AXFBT0()HM\!HE&( O'B7X>=0/IP 6C48(4(Y&
M(";_=00F_W4"FD8@^02+Y87 =0/IH@#$=AXFBT0()@M$!G0#Z9( _W8*_W8(
M_W8&_W8$F@4 !!*+Y8E&#@O#B5X,=0DSP#/;@\087<O_=@;_=@2:%P/Y!(OE
MB486"\.)7A1U%C/ 4/]V!O]V!)KQ _D$B^6)1A:)7A2X P!0FN\%\PB+Y8M.
M#HM6#([ )HE/!(Q&$H[ )HE7 HM.%HM6%([ )HE/"([ )HE7!HE>$)H" (L2
M@\087<L>N,*44)I= 'P B^6#Q!A=RU6#[! [)A <@7J8@$ (OLBT88"T86
M=18>N$2<4)H>-_D$B^6: @"+$H/$$%W+Q'86)HM$!":+7 (+PW4#Z8D )HM$
M!+$-CL FBQ?3ZH'B!P"#^@-U<X[ )HM/!([ )HM7 HE.!HY&&":+3 @FBWP&
MB4X8"\^)5@2)?A9T$XY&&":+100FBUT"B48*B5X(ZPK'1@H ,=&" _W8&
M_W8$FAXW^02+Y8E&#@O#B5X,=0B+1@J+7@CK!HM&#HM>#)H" (L2@\007<L>
MN)R44)I= 'P B^6#Q!!=RU6#[!0[)A <@7J8@$ (OLBT8<"T8:=6 >N$2<
M4)I.!"0 B^6)1A) =0DSP#/;@\047<N+1A+&1@T %HU>#%.(1@R:%P/Y!(OE
MB480"\.)7@YU%3/ 4!:-1@Q0FO$#^02+Y8E&$(E>#HM&$(M>#IH" (L2@\04
M7<O$=AHFBT0$)HM< @O#=0/IQ0 FBT0$L0V.P":+%]/J@>(' (/Z W0#Z:P
MCL FBT\$CL FBU<"B4X&CD8<)HM,"":+? :)3AP+SXE6!(E^&G03CD8<)HM%
M!":+70*)1@J)7@CK"L=&"@ QT8( #_=@;_=@2:3@0D (OEB4820'40BT8*
MBUX(F@( BQ*#Q!1=RXM&$L9� 6C5X,4XA&#)H7 _D$B^6)1A +PXE>#G45
M,\!0%HU&#%":\0/Y!(OEB480B5X.BT80BUX.F@( BQ*#Q!1=RQZXEI10FET
M? "+Y8/$%%W+58/L!#LF$ !R!>IB 0 B^R+1@P+1@IU#YK&%_D$F@( BQ*#
MQ 1=RQZX I50FET ? "+Y8/$!%W+58/L!#LF$ !R!>IB 0 B^R+1@P+1@IU
M#YI6&OD$F@( BQ*#Q 1=RQZX"950FET ? "+Y8/$!%W+58/L%#LF$ !R!>IB
M 0 B^R+1AR+7AJ+3B"+5AZ:" #($W4(N $ @\047<N+1AP+1AIT"(M&( M&
M'G4',\"#Q!1=R[$-Q'8>)HL$T^@E!P"Q#<1V&B:+'-/K@>,' #O8= <SP(/$
M%%W+L0W$=AHFBP33Z"4' .F< <1V'B;_= 0F_W0"Q'8:)O]T!";_= (.Z&W_
MB^6%P'0EQ'8>)O]T"";_= ;$=AHF_W0()O]T!@[H3?^+Y87 = 4SP$#K C/
M@\047<N+1AR+7AJ+3B"+5AZ:" #($W0$,\GK S/)08O!@\047<N+1AR+=AJ+
M7B"+?AZ.P":+3 2.P":+5 *.PR8[301U!H[#)CM5 G0$,\#K S/ 0(/$%%W+
MBT8<BW8:BUX@BTX>CL.+^2;_=02,1@:.PR;_=0*.P";_= 2,1@*.P";_= *:
M #/$XOEA<!T!#/;ZP,SVT.+PX/$%%W+BT8<BUX:BTX@BW8>B48"CL$FBT0$
MB5X CL$FBUP"F@T K!.)1@J)7@B)3@:)5@3$=@ FBT0$)HM< IH- *P3%HUV
M!%::# #G$W0$,\#K S/ 0(/$%%W+BT8<BW8:BUX@BWX>CL FBT0$B5X&)HM<
M HY&!B:+300FBU4"F@@ R!-T!#/)ZP,SR4&+P8/$%%W+_W8@_W8>_W8<_W8:
MFH T? "+Y8/$%%W+LR!-(6<@I"'4( @AW2&+\(/^!W,'T>8N_Z3U(3/ @\04
M7<M5@^P,.R80 '(%ZF(! "+[(M&% M&$G1JQ'82)HM$!":+7 (FBTP()HM\
M!HE.% O/B48&B5X$B7X2=$>.1A0FBT4$)HM= B:+30@F"TT&B48*B5X(=2Q0
M4_]V!O]V! [H<_V+Y87 =!&A*H"+'BB F@( BQ*#Q Q=RS/ ,]N#Q Q=RQZX
M%950FET ? "+Y8/$#%W+58/L##LF$ !R!>IB 0 B^R+1A0+1A)U ^F) !:-
M1@10Q'82)O]T!";_= *:1B#Y!(OEA<!T;L1V$B:+1 @FBWP&B484"\>)?A)T
M61:-1@A0CD84)O]U!";_=0*:1B#Y!(OEA<!T/L1V$B:+1 @F"T0&=3'_=@K_
M=@C_=@;_=@2: #/$XOEA<!Y$:$J@(L>*(": @"+$H/$#%W+,\ SVX/$#%W+
M'K@;E5":70!\ (OE@\0,7<M5@^P2.R80 '(%ZF(! "+[(M&&@M&&'4#Z0T!
M%HU&!%#$=A@F_W0$)O]T II&(/D$B^6%P'4#Z>\ Q'88)HM$"":+? :)1AH+
MQXE^&'4#Z=< CD8:)HM%""8+109T ^G' !:-1@A0)O]U!";_=0*:OQ_Y!(OE
MA<!U ^FL (M&""T! (M>"H/; (7;B48(B5X*>0/IB@#_=@;_=@2:#@!J$XOE
M,]N%P'D!2XE& (M&"HE> HM>"(M. HM6 )H& 04?5TSP(7;>0%(B\B+TXM&
M!HM>!)H& -03CL FB@_&1@T %HU&#%"(3@R:%P/Y!(OEB480"\.)7@YU%3/
M4!:-1@Q0FO$#^02+Y8E&$(E>#HM&$(M>#IH" (L2@\027<LSP#/;@\027<L>
MN":54)I= 'P B^6#Q!)=RU6#[ P[)A <@7J8@$ (OLBT84"T82='#$=A(F
MBT0$)HM< @O#=&$FBT0$L0V.P":+%]/J@>(' '5.CD84)HM,"":+? :)3A0+
MSXE&!HE>!(E^$G0SCD84)HM-!":+50(+RG0D)HM-!([ )HE/"([ )HE7!HE.
M"HE6"(O!B]J: @"+$H/$#%W+'KA9E5":70!\ (OE@\0,7<M5@^P4.R80 '(%
MZF(! "+[(M&' M&&G4#Z1 !Q'8:)HM$!":+7 (+PW4#Z?X )HM$!+$-CL F
MBQ?3ZH'B!P!T ^GH (Y&'":+3 @FBWP&B4X<"\^)1@:)7@2)?AIU ^G* (Y&
M'":+300FBU4""\IU ^FX ":+302)3@HSR8E6"+H& )H& -03CL FBT\"C$8.
MCL FBQ>)3A*)5A")7@R+1A*+7A +PW1ZCD82)HM'!":+3P(+P71!)HM'!(OQ
MCL FBT0$)HM< HM."HM6")H( ,@3=23$=A FBT0()HM<!L1^#":)10(FB1V+
M1A*+WIH" (L2@\047<LSR;H& (M&$HM>$)H& -03Q'80)HM,"":+5 :)1@Z)
M3A*)5A")7@SI?/\SP#/;@\047<L>N&*54)I= 'P B^6#Q!1=RU6#[ @[)A
M<@7J8@$ (OLBT80"T8.=% 6C48$4,1V#B;_= 0F_W0"FD8@^02+Y87 =#7$
M=@XFBT0()@M$!G4H_W8&_W8$FMLY^02+Y87 = FA*H"+'BB ZP0SP#/;F@(
MBQ*#Q A=RQZX5)50FET ? "+Y8/$"%W+58/L##LF$ !R!>IB 0 B^R+1A0+
M1A)U ^F2 ,1V$B:+1 @F"T0&= /I@@ FBT0$)HM\ K$-CL FBQW3ZX'C!P!U
M:X[ )HM=!(Q&!H[ )@M= HE^!'4),\ SVX/$#%W+N ( 4)KO!?,(B^6.P";'
M1P0 (Q&"H[ )L=' @ Q'8$)HM,!":+? *.P2:+502.P2:+30*.P":)5PB.
MP":)3P:)7@B: @"+$H/$#%W+'K@NE5":70!\ (OE@\0,7<M5@>P( 3LF$ !R
M!>IB 0 B^R+AA !"X8. 75.H727BQYREX,&<I<!@Q9TEP!04QZX=I=0%HU&
M!%":! #7$XOE%HU&!%":%P/Y!(OE"\-US#/ 4!:-1@10FO$#^02+Y9H" (L2
M@<0( 5W+Q+8. 2:+1 @F"T0&= /ID0 6C88$ 5 F_W0$)O]T II&(/D$B^6%
MP'1X_[8& ?^V! &:#@!J$XOE/?4 ?@X>N'V74)H% & 2B^7K5J%TEXL><I>#
M!G*7 8,6=)< 4%/_M@8!_[8$ 1ZXDY=0%HU&!%":! #7$XOE%HU&!%":%P/Y
M!(OE"\-UQ#/ 4!:-1@10FO$#^02+Y9H" (L2@<0( 5W+'K@UE5":70!\ (OE
M@<0( 5W+58/L!#LF$ !R!>IB 0 B^R+1@P+1@IT2<1V"B:+1 @F"T0&=3PF
MBT0$)HM< @O#=!8FBT0$L0V.P":+%]/J@>(' (/Z G41H2J BQXH@)H" (L2
M@\0$7<LSP#/;@\0$7<L>N#R54)I= 'P B^6#Q 1=RU6#[ 0[)A <@7J8@$
M (OLBT8,"T8*=#_$=@HFBT0()@M$!G4R)HM$!":+= *Q#8[ )HL<T^N!XP<
M2W41H2J BQXH@)H" (L2@\0$7<LSP#/;@\0$7<L>N$*54)I= 'P B^6#Q 1=
MRU6#[ 0[)A <@7J8@$ (OLBT8,"T8*=$'$=@HFBT0()@M$!G4T)HM$!":+
M= *Q#8[ )HL<T^N!XP< @_L#=1&A*H"+'BB F@( BQ*#Q 1=RS/ ,]N#Q 1=
MRQZX2950FET ? "+Y8/$!%W+58/L"#LF$ !R!>IB 0 B^R+1A +1@YU ^DF
M L1V#B:+1 @F"T0&= /I%@(FBT0$)@M$ G4\'KAYE%":%P/Y!(OEB48&"\.)
M7@1U%K@! % >N'F44)KQ _D$B^6)1@:)7@2+1@:+7@2: @"+$H/$"%W+Q'8.
M)HM$!":+? *Q#8[ )HL=T^N!XP< Z94!'KAYE%":%P/Y!(OEB48&"\.)7@1T
M ^F, ;@! % >N'F44)KQ _D$B^6)1@:)7@3I<P$>N&N74)H7 _D$B^6)1@8+
MPXE>!'0#Z5H!N $ 4!ZX:Y=0FO$#^02+Y8E&!HE>!.E! 1ZX9)=0FA<#^02+
MY8E&!@O#B5X$= /I* &X 0!0'KADEU":\0/Y!(OEB48&B5X$Z0\!'KA=EU":
M%P/Y!(OEB48&"\.)7@1T ^GV +@! % >N%V74)KQ _D$B^6)1@:)7@3IW0 >
MN%:74)H7 _D$B^6)1@8+PXE>!'0#Z<0 N $ 4!ZX5I=0FO$#^02+Y8E&!HE>
M!.FK !ZX49=0FA<#^02+Y8E&!@O#B5X$= /ID@"X 0!0'KA1EU":\0/Y!(OE
MB48&B5X$ZWH>N.&64)H7 _D$B^6)1@8+PXE>!'5DN $ 4!ZXX990FO$#^02+
MY8E&!HE>!.M,'KB;EU":%P/Y!(OEB48&"\.)7@1U-K@! % >N)N74)KQ _D$
MB^6)1@:)7@3K'M J9BN>*I@K-"L"*\DKB_.#_@=S!]'F+O^D)2SKM(M&!HM>
M!)H" (L2@\0(7<L>N$^54)I= 'P B^6#Q A=RU6#[! [)A <@7J8@$ (OL
MBT88"T86=&_$=A8FBT0()@M$!G5B%HU&#% F_W0$)O]T IHX'_D$B^6%P'1*
MBT8.BUX,F@T K!,>OCJ95IH, .<3B48&B5X$B4X"B58 ?0>:"0!?$NL+BT8.
MBUX,F@T K!-04U%2FGL&? "+Y9H" (L2@\007<L>N&J54)I= 'P B^6#Q!!=
MRU6#[!@[)A <@7J8@$ (OLBT8@"T8>=%#$=AXFBT0()@M$!G5#%HU&%% F
M_W0$)O]T IHX'_D$B^6%P'0KBT86BUX4F@T K!-04U%2FF,-G1"+Y5!345*:
M>P9\ (OEF@( BQ*#Q!A=RQZX;I50FET ? "+Y8/$&%W+58/L&#LF$ !R!>IB
M 0 B^R+1B +1AYT4,1V'B:+1 @F"T0&=4,6C4844";_= 0F_W0"FC@?^02+
MY87 ="N+1A:+7A2:#0"L$U!345*:F0R=$(OE4%-14II[!GP B^6: @"+$H/$
M&%W+'KASE5":70!\ (OE@\087<M5@^P8.R80 '(%ZF(! "+[(M&( M&'G10
MQ'8>)HM$""8+1 9U0Q:-1A10)O]T!";_= *:.!_Y!(OEA<!T*XM&%HM>%)H-
M *P34%-14IKP")T0B^504U%2FGL&? "+Y9H" (L2@\087<L>N'V54)I= 'P
MB^6#Q!A=RU6#[!@[)A <@7J8@$ (OLBT8@"T8>=%#$=AXFBT0()@M$!G5#
M%HU&%% F_W0$)O]T IHX'_D$B^6%P'0KBT86BUX4F@T K!-04U%2FEL(G1"+
MY5!345*:>P9\ (OEF@( BQ*#Q!A=RQZXF950FET ? "+Y8/$&%W+58/L&#LF
M$ !R!>IB 0 B^R+1B +1AYT4,1V'B:+1 @F"T0&=4,6C4844";_= 0F_W0"
MFC@?^02+Y87 ="N+1A:+7A2:#0"L$U!345*:1@6=$(OE4%-14II[!GP B^6:
M @"+$H/$&%W+'KB!E5":70!\ (OE@\087<M5@^P8.R80 '(%ZF(! "+[(M&
M( M&'G10Q'8>)HM$""8+1 9U0Q:-1A10)O]T!";_= *:.!_Y!(OEA<!T*XM&
M%HM>%)H- *P34%-14IH8 IT0B^504U%2FGL&? "+Y9H" (L2@\087<L>N(^5
M4)I= 'P B^6#Q!A=RU6#[!@[)A <@7J8@$ (OLBT8@"T8>=%#$=AXFBT0(
M)@M$!G5#%HU&%% F_W0$)O]T IHX'_D$B^6%P'0KBT86BUX4F@T K!-04U%2
MFMD$G1"+Y5!345*:>P9\ (OEF@( BQ*#Q!A=RQZXDY50FET ? "+Y8/$&%W+
M58/L"#LF$ !R!>IB 0 B^R+1A2%P'D),\ SVX/$"%W+QT8& #'1@0! (M&
M%(M>$C/),]*:!@ $%'Y(,\"!XP$ "\-T(8M&!HM>!(M.$(M6#IH! $(2@VX2
M 8->% ")1@:)7@3KQ-%^%-%>$HM&$(M>#HO(B].: 0!"$HE&$(E>#NNGBT8&
MBUX$@\0(7<M5@^PH.R80 '(%ZF(! "+[(M&, M&+G4#Z3D!Q'8N)HM$!":+
M7 (FBTP()HM\!HE., O/B48:B5X8B7XN=0/I$P&.1C FBTT()@M-!G0#Z0,!
M)HM-!":+50(+PXE.'HE6''4#Z>X "\IU ^GG +$-CD8:)HL'T^@E!P ]! !U
M4K$-CD8>B_(FBP33Z"4' #T$ '4^BT8:C,&.P8OR)O]T!(Q&!H[!)O]T H[
M)O]W!(Q& H[ )O]W @[HM/Z+Y5!3FCT&? "+Y9H" (L2@\0H7<L6C48@4/]V
M&O]V&)HX'_D$B^6%P'1M%HU&)%#_=A[_=AR:.!_Y!(OEA<!T5XM&(HM>()H-
M *P34%-14IH8 IT0B^6)1@Z)7@R)3@J)5@B+1B:+7B2:#0"L$Q:-=@A6F@@
M,A)04U%2FD8%G1"+Y5!345*:>P9\ (OEF@( BQ*#Q"A=RQZXA950FET ? "+
MY8/$*%W+58/L&#LF$ !R!>IB 0 B^R+1B +1AYT4,1V'B:+1 @F"T0&=4,6
MC4844";_= 0F_W0"FC@?^02+Y87 ="N+1A:+7A2:#0"L$U!345*:#@"=$(OE
M4%-14II[!GP B^6: @"+$H/$&%W+'KB=E5":70!\ (OE@\087<M5@^P,.R80
M '(%ZF(! "+[,=&!@ QT8$ 0"+1A0+1A)T;\1V$B:+1 @F"T0&=6(6C48(
M4";_= 0F_W0"FK\?^02+Y87 =$J+1@J+7@@SR;H! )H& 04?B&+1@:+7@2+
M3@J+5@B: 0!"$H-N" @H B48&B5X$Z\W_=@;_=@2:/09\ (OEF@( BQ*#
MQ Q=RQZXBI50FET ? "+Y8/$#%W+58/L'#LF$ !R!>IB 0 B^R+1B0+1B)U
M ^F7 !:-1A10Q'8B)O]T!";_= *:.!_Y!(OEA<!T?,1V(B:+1 @FBWP&B48D
M"\>)?B)T9Q:-1AA0CD8D)O]U!";_=0*:.!_Y!(OEA<!T3(M&&HM>&)H- *P3
MB48&B5X$B4X"B58 BT86BUX4F@T K!,6C78 5IH' 'P34%-14IH6$IT0B^50
M4U%2FGL&? "+Y9H" (L2@\0<7<L>N'B54)I= 'P B^6#Q!Q=RU6#[!0[)A
M<@7J8@$ (OLBT8<"T8:=0/IA@#$=AHFBT0$)@M$ G1M)HM$""8+1 9U8R:+
M1 0FBWP"L0V.P":+'=/K@>,' (/[!'5)CL FBT4$)HM= IH$ ) 3B482B5X0
MF@T K!-04U%2,\ SVS/),])04U%2FD45G1"+Y9H, *@34%.:/09\ (OEF@(
MBQ*#Q!1=RQZXHI50FET ? "+Y;Y"F8M$!HM<!(M, HL44%-14C/ ,]LSR3/2
M4%-14II%%9T0B^4>ODJ95IH, .<3?A"^0IF+1 :+7 2+3 *+%.L.OE*9BT0&
MBUP$BTP"BQ2:# "F$XE&$HE>$+Y:F8M$!HM<!(M, HL44%-14C/ ,]LSR3/2
M4%-14II%%9T0B^6)1@:)7@2)3@*)5@"+1A*+7A":#0"L$Q:-=@!6F@@ ,A*:
M# "F$XE&$HE>$)H- ),34%.:/09\ (OEF@( BQ*#Q!1=RU6#[ P[)A <@7J
M8@$ (OLBT84BUX2B48*"\.)7@AU#YH:&?D$F@( BQ*#Q Q=RXM&% M&$G1K
MQ'82)HM$!":+7 (+PW1.)HM$!+$-CL FBQ?3ZH'B!P")1@:)7@1U-;$'CL F
MBP?3Z"4/ "4- #T- '4AN$ )HL?"]B+?@0FB1V.1A0FBT0()HM<!HE&%(E>
M$NN;'KBIE5":70!\ (OEZXV+1@J+7@B: @"+$H/$#%W+58/L##LF$ !R!>IB
M 0 B^R+1A0+1A)U"YH:&?D$B484B5X2BT84BUX2B48*B5X(BT84"T82=&O$
M=A(FBT0$)HM< @O#=$XFBT0$L0V.P":+%]/J@>(' (E&!HE>!'4UL0>.P":+
M!]/H)0\ )0T /0T =2$SP":+'X#COXM^!":)'8Y&%":+1 @FBUP&B484B5X2
MZYL>N*^54)I= 'P B^7KC8M&"HM>")H" (L2@\0,7<M5@^P$.R80 '(%ZF(!
M "+[(M&# M&"G4;,\!0FGX4^02+Y:$J@(L>*(": @"+$H/$!%W+'KC#E5":
M70!\ (OE@\0$7<M5@^P0.R80 '(%ZF(! "+[+@!@(M>& M>%HE&"HE&"'4#
MZ:P Q'86)HM$!":+7 (FBTP()HM\!HE.& O/B48.B5X,B7X6=$J.1A@FBT4(
M)@M%!G5\)HM%!"8+10)T<B:+100FBW4"L0V.P":+'-/K@>,' (/[!'58Q'86
M)HM$!":+? *.P":+70+WVXE>"(E>"A:-1@A0,\!0,]M3,\!0_W8._W8,,\!0
M4YH;,/D$B^6+1@@K1@HSVX7 >0%+4U":/09\ (OEF@( BQ*#Q!!=RQZXS950
MFET ? "+Y8/$$%W+58/L$#LF$ !R!>IB 0 B^RX 8"+7A@+7A:)1@J)1@AU
M ^FP ,1V%B:+1 0FBUP")HM,"":+? :)3A@+SXE&#HE>#(E^%G1-CD88)HM%
M""8+109T ^E] ":+100F"T4"=',FBT4$)HMU K$-CL FBQS3ZX'C!P"#^P1U
M6<1V%B:+1 0FBWP"CL FBUT"]]N)7@B)7@H6C48(4#/ 4#/;4[@! %#_=@[_
M=@PSP%!3FALP^02+Y8M&""M&"C/;A<!Y 4M34)H]!GP B^6: @"+$H/$$%W+
M'KC3E5":70!\ (OE@\007<M5@^P..R80 '(%ZF(! "+[(S8NU:<QT8, "+
M3A8+3A2)1@J)7@AU ^D' <1V%":+1 0FBUP")HM,"":+? :)3A8+SXE&!HE>
M!(E^%'4#Z:4 CD86)HM%!":+70(+PW4#Z<\ )HM%!+$-CL FBQ?3ZH'B!P"#
M^@-T ^FV ,1V%":+1 0FBWP"CL FBUT$CL FBTT"CD86)HM4"(E>"B:+7 :)
M5A8+TXE."(E>%'1(CD86)HM'!":+3P(+P71U)HM'!(OQL0V.P":+'-/K@>,'
M (/[!'5=Q'84)HM$!":+? *.P":+70*.1A8FBT0()@M$!HE>#'4\_W8*_W8(
M,\!0_W8,_W8&_W8$FAXT^02+Y1ZXH9=0_W8*_W8(F@< [1.+Y:$J@(L>*(":
M @"+$H/$#EW+'KC<E5":70!\ (OE@\0.7<M5@^P,.R80 '(%ZF(! "+[(M&
M% M&$G1,Q'82)HM$""8+1 9U/Q:-1@A0)O]T!";_= *:1B#Y!(OEA<!T)_]V
M"O]V")J4"8X2B^4SVX7 >0%+4U":/09\ (OEF@( BQ*#Q Q=RQZXY)50FET
M? "+Y8/$#%W+58/L$#LF$ !R!>IB 0 B^R+1A@+1A9U ^D( <1V%B:+1 0F
M"T0"=0/I^ #$=A8FBT0$)HM\ K$-CL FBQW3ZX'C!P"#^P-T ^G8 ,1V%B:+
M1 0FBWP"CL FBUT$CL FBTT"CD88)HM$""8+1 :)3@B)7@IU'%-1FL$ =1*+
MY5!3FCT&? "+Y9H" (L2@\007<O$=A8FBT0()HM\!H[ )HM="(Q&&([ )@M=
M!HE^%G5SCL FBT4$)@M% G1GQ'86)HM$!":+? *Q#8[ )HL=T^N!XP< @_L$
M=4K$=A8FBT0$)HM\ H[ )HM=!([ )HM- C/ 4%-1_W8*_W8(B4X,B5X.FDH%
M) "+Y87 =1?_=@[_=@R:/09\ (OEF@( BQ*#Q!!=RQZX[Y50FET ? "+Y8/$
M$%W+58/L!#LF$ !R!>IB 0 B^R+1@P+1@IT2\1V"B:+1 0F"T0"=#XFBT0(
M)@M$!G4T)HM$!":+? *Q#8[ )HL=T^N!XP< @_L#=1J.P":+70B.P":+30:+
MPXO9F@( BQ*#Q 1=RQZX]Y50FET ? "+Y8/$!%W+58/L"#LF$ !R!>IB 0
MB^R+1A +1@YT5,1V#B:+1 @F"T0&=4<FBT0$)HM< @O#=#LFBT0$L0V.P":+
M%]/J@>(' (/Z!'4ECL FBT\"@\$!CL FBU<$@]( 4E&:/09\ (OEF@( BQ*#
MQ A=RQZX$)90FET ? "+Y8/$"%W+58/L##LF$ !R!>IB 0 B^R+1A0+1A)U
M ^FC ,1V$B:+1 @F"T0&= /IDP FBT0$)HM< @O#=0/IA FBT0$L0V.P":+
M%]/J@>(' (/Z!'4ECL FBT\"@\$!CL FBU<$@]( 4E&:/09\ (OEF@( BQ*#
MQ Q=R\1V$B:+1 0FBWP"L0V.P":+'=/K@>,' $MU+H[ )HM%!":+70*:#0"L
M$QZ^0IE6F@0 LA-04U%2FGL&? "+Y9H" (L2@\0,7<L>N!.64)I= 'P B^6#
MQ Q=RU6#[ @[)A <@7J8@$ (OLBT80"T8.=%3$=@XFBT0()@M$!G5')HM$
M!":+7 (+PW0[)HM$!+$-CL FBQ?3ZH'B!P"#^@1U)8[ )HM/ H/I 8[ )HM7
M!(/: %)1FCT&? "+Y9H" (L2@\0(7<L>N!B64)I= 'P B^6#Q A=RU6#[ P[
M)A <@7J8@$ (OLBT84"T82=0/IHP#$=A(FBT0()@M$!G0#Z9, )HM$!":+
M7 (+PW4#Z80 )HM$!+$-CL FBQ?3ZH'B!P"#^@1U)8[ )HM/ H/I 8[ )HM7
M!(/: %)1FCT&? "+Y9H" (L2@\0,7<O$=A(FBT0$)HM\ K$-CL FBQW3ZX'C
M!P!+=2Z.P":+100FBUT"F@T K!,>OD*95IH2 +(34%-14II[!GP B^6: @"+
M$H/$#%W+'K@;EE":70!\ (OE@\0,7<M5@^P(.R80 '(%ZF(! "+[(M&$ M&
M#G1VQ'8.)HM$""8+1 9U:2:+1 0FBUP""\-T72:+1 2Q#8[ )HL7T^J!X@<
M@_H$=0J: @"+$H/$"%W+Q'8.)HM$!":+? *Q#8[ )HL=T^N!XP< 2W4BCL F
MBT4$)HM= IH- ),34%.:/09\ (OEF@( BQ*#Q A=RQZX()90FET ? "+Y8/$
M"%W+58/L##LF$ !R!>IB 0 B^R+1A0+1A)U ^E] ,1V$B:+1 @F"T0&=7 F
MBT0$)HM< @O#=&0FBT0$L0V.P":+%]/J@>(' $IU"IH" (L2@\0,7<O$=A(F
MBT0$)HM\ K$-CL FBQW3ZX'C!P"#^P1U*8[ )HM%!":+70*:! "0$YH- *P3
M4%-14II[!GP B^6: @"+$H/$#%W+'K@DEE":70!\ (OE@\0,7<M5@^P@.R80
M '(%ZF(! "+[,=&%@ QT84 "+1B@+1B9T<1:-1AA0Q'8F)O]T!";_= *:
M.!_Y!(OEA<!U#!ZXHY=0FET ? "+Y8M&%HM>%)H- *P3B48&B5X$B4X"B58
MBT8:BUX8F@T K!,6C78 5IH$ +(3F@P IA/$=B8FBTP()HM4!HE&%HE.*(E6
M)HE>%.N'BT86BUX4F@T I1,SVX7 >0%+B48<B\.)7AZ+7AR:! "0$XE& HM&
M%HE> (M>%)H- *P3B48*B5X(B4X&B58$BT8"BUX F@T K!,6C78$5IH, .<3
M=1?_=A[_=AR:/09\ (OEF@( BQ*#Q"!=RXM&%HM>%)H- *P34%-14II[!GP
MB^6: @"+$H/$(%W+58/L(#LF$ !R!>IB 0 B^R+1B@+1B9U%S/ 4#/;4YH]
M!GP B^6: @"+$H/$(%W+%HU&%%#$=B8F_W0$)O]T IHX'_D$B^6%P'4#Z2H!
MQ'8F)HM$"":+7 :)1BB)7B:+1B@+1B9U ^F! !:-1AA0Q'8F)O]T!";_= *:
M.!_Y!(OEA<!U ^GP (M&%HM>%)H- *P3B48&B5X$B4X"B58 BT8:BUX8F@T
MK!.)1@Z)7@R)3@J)5@B+1@:+7@2+3@*+5@ 6C78(5IH2 +(3F@P IA/$=B8F
MBTP()HM4!HE&%HE.*(E6)HE>%.ET_XM&%HM>%)H- *43,]N%P'D!2XE&'(O#
MB5X>BUX<F@0 D!.)1@*+1A:)7@"+7A2:#0"L$XE&"HE>"(E.!HE6!(M& HM>
M )H- *P3%HUV!%::# #G$W47_W8>_W8<FCT&? "+Y9H" (L2@\0@7<N+1A:+
M7A2:#0"L$U!345*:>P9\ (OEF@( BQ*#Q"!=RQZXL)=0FET ? "+Y8/$(%W+
M58/L(#LF$ !R!>IB 0 B^S'1A: /\=&% BT8H"T8F='$6C4884,1V)B;_
M= 0F_W0"FC@?^02+Y87 =0P>N,"74)I= 'P B^6+1A:+7A2:#0"L$XE&!HE>
M!(E. HE6 (M&&HM>&)H- *P3%HUV %::" R$IH, *83Q'8F)HM,"":+5 :)
M1A:)3BB)5B:)7A3KAXM&%HM>%)H- *43,]N%P'D!2XE&'(O#B5X>BUX<F@0
MD!.)1@*+1A:)7@"+7A2:#0"L$XE&"HE>"(E.!HE6!(M& HM> )H- *P3%HUV
M!%::# #G$W47_W8>_W8<FCT&? "+Y9H" (L2@\0@7<N+1A:+7A2:#0"L$U!3
M45*:>P9\ (OEF@( BQ*#Q"!=RU6#[" [)A <@7J8@$ (OLBT8H"T8F=1@S
MP%"[ 0!3FCT&? "+Y9H" (L2@\0@7<L6C4844,1V)B;_= 0F_W0"FC@?^02+
MY87 =0/I2P'$=B8FBT0()HM<!HE&*(E>)HM&* M&)G4#Z98 %HU&&%#$=B8F
M_W0$)O]T IHX'_D$B^6%P'4#Z1$!BT8:BUX8F@T K!.: #G$W4#Z? BT86
MBUX4F@T K!.)1@:)7@2)3@*)5@"+1AJ+7AB:#0"L$XE&#HE>#(E."HE6"(M&
M!HM>!(M. HM6 !:-=@A6F@< ?!.:# "F$\1V)B:+3 @FBU0&B486B4XHB58F
MB5X4Z5__BT86BUX4F@T I1,SVX7 >0%+B48<B\.)7AZ+7AR:! "0$XE& HM&
M%HE> (M>%)H- *P3B48*B5X(B4X&B58$BT8"BUX F@T K!,6C78$5IH, .<3
M=1?_=A[_=AR:/09\ (OEF@( BQ*#Q"!=RXM&%HM>%)H- *P34%-14II[!GP
MB^6: @"+$H/$(%W+'KC.EU":!0!@$HOE'KA5EE":70!\ (OE@\0@7<M5@^P<
M.R80 '(%ZF(! "+[(M&) M&(G41H2J BQXH@)H" (L2@\0<7<L6C4804,1V
M(B;_= 0F_W0"FC@?^02+Y87 =0/IFP#$=B(FBT0()HM<!HE&)(E>(HM&) M&
M(G1Q%HU&%%#$=B(F_W0$)O]T IHX'_D$B^6%P'1GBT82BUX0F@T K!.)1@:)
M7@2)3@*)5@"+1A:+7A2:#0"L$Q:-=@!6F@P YQ-\"3/ ,]N#Q!Q=RXM&%HM>
M%,1V(B:+3 @FBU0&B482B4XDB58BB5X0ZX>A*H"+'BB F@( BQ*#Q!Q=RQZX
M7I90FET ? "+Y8/$'%W+58/L'#LF$ !R!>IB 0 B^R+1B0+1B)U$:$J@(L>
M*(": @"+$H/$'%W+%HU&$%#$=B(F_W0$)O]T IHX'_D$B^6%P'4#Z9L Q'8B
M)HM$"":+7 :)1B2)7B*+1B0+1B)T<1:-1A10Q'8B)O]T!";_= *:.!_Y!(OE
MA<!T9XM&$HM>$)H- *P3B48&B5X$B4X"B58 BT86BUX4F@T K!,6C78 5IH,
M .<3?PDSP#/;@\0<7<N+1A:+7A3$=B(FBTP()HM4!HE&$HE.)(E6(HE>$.N'
MH2J BQXH@)H" (L2@\0<7<L>N&>64)I= 'P B^6#Q!Q=RU6#[ 0[)A <@7J
M8@$ (OLBT8,"T8*=&'$=@HFBT0()@M$!G54)HM$!":+7 (+PW1()HM$!+$-
MCL FBQ?3ZH'B!P"#^@1U,H[ )HM'!":+7P(SR;H" )H% &X3"\IU$:$J@(L>
M*(": @"+$H/$!%W+,\ SVX/$!%W+'KAREE":70!\ (OE@\0$7<M5@^P$.R80
M '(%ZF(! "+[(M&# M&"G1AQ'8*)HM$""8+1 9U5":+1 0FBUP""\-T2":+
M1 2Q#8[ )HL7T^J!X@< @_H$=3*.P":+1P0FBU\",\FZ @":!0!N$PO*=!&A
M*H"+'BB F@( BQ*#Q 1=RS/ ,]N#Q 1=RQZX;990FET ? "+Y8/$!%W+58/L
M"#LF$ !R!>IB 0 B^R+1A +1@YU ^FH ,1V#B:+1 @F"T0&= /IF FBT0$
M)HM< @O#=0/IB0 FBT0$L0V.P":+%]/J@>(' (/Z!'4HCL FBT\$CL F"T\"
M=1&A*H"+'BB F@( BQ*#Q A=RS/ ,]N#Q A=R\1V#B:+1 0FBWP"L0V.P":+
M'=/K@>,' $MU,([ )HM%!":+70*:#0"L$YH .<3=1&A*H"+'BB F@( BQ*#
MQ A=RS/ ,]N#Q A=RQZX>)90FET ? "+Y8/$"%W+58/L"#LF$ !R!>IB 0
MB^R+1A +1@YU ^FI ,1V#B:+1 @F"T0&= /IF0 FBT0$)HM< @O#=0/IB@ F
MBT0$L0V.P":+%]/J@>(' (/Z!'4DCL FBT\$A<EY$:$J@(L>*(": @"+$H/$
M"%W+,\ SVX/$"%W+Q'8.)HM$!":+? *Q#8[ )HL=T^N!XP< 2W4UCL FBT4$
M)HM= IH- *P3'KXZF5::# #G$WT1H2J BQXH@)H" (L2@\0(7<LSP#/;@\0(
M7<L>N'Z64)I= 'P B^6#Q A=RU6#[ @[)A <@7J8@$ (OLBT80"T8.=0/I
MM #$=@XFBT0()@M$!G0#Z:0 )HM$!":+7 (+PW4#Z94 )HM$!+$-CL FBQ?3
MZH'B!P"#^@1U+X[ )HM'!":+7P(SR3/2F@8 !!1^$:$J@(L>*(": @"+$H/$
M"%W+,\ SVX/$"%W+Q'8.)HM$!":+? *Q#8[ )HL=T^N!XP< 2W4UCL FBT4$
M)HM= IH- *P3'KXZF5::# #G$WX1H2J BQXH@)H" (L2@\0(7<LSP#/;@\0(
M7<L>N(664)I= 'P B^6#Q A=RU6#[! [)A <@7J8@$ (OLBT88"T86=0/I
MOP 6C48(4,1V%B;_= 0F_W0"FK\?^02+Y87 =0/IH0#$=A8FBT0()HM\!HE&
M& O'B7X6=0/IB0 6C48,4(Y&&";_=00F_W4"FK\?^02+Y87 =&[$=A8FBT0(
M)@M$!G5ABT8.A<!X)HM&#(O(BUX*BU8(XP;1XM'3XOI34IH]!GP B^6: @"+
M$H/$$%W+BT8.A<!Y+8M>#/?0]]L=__^+RXM&"HM6".,&T?C1VN+Z4%*:/09\
M (OEF@( BQ*#Q!!=RQZXBY90FET ? "+Y8/$$%W+58/L!#LF$ !R!>IB 0
MB^R+1@P+1@IT2<1V"B:+1 @F"T0&=3PFBT0$)HM< @O#="<FBT0$L0V.P":+
M%]/J@>(' (/Z!'41H2J BQXH@)H" (L2@\0$7<LSP#/;@\0$7<L>N(^64)I=
M 'P B^6#Q 1=RU6#[ 0[)A <@7J8@$ (OLBT8,"T8*=&'$=@HFBT0()@M$
M!G54)HM$!":+7 (+PW0_)HM$!+$-CL FBQ?3ZH'B!P#K(J$J@(L>*(": @"+
M$H/$!%W+H2J BQXH@)H" (L2@\0$7<N#^@1TZH/Z 734,\ SVX/$!%W+'KCD
MEU":70!\ (OE@\0$7<M5@^P".R80 '(%ZF(! "+[(M&"@M&"'4#Z8\ Q'8(
M)HM$""8+1 9T ^E_ ":+1 0FBUP"B48*"\.)7@AU"3/ ,]N#Q )=R[$-Q'8(
M)HL$T^@E!P ] @!U4K$-Q'8()HL$T^@E!P ] @!T#HS B]Z: @"+$H/$ EW+
MQ'8()HM$""8+1 9U$B:+1 0FBUP"F@( BQ*#Q )=R\1V"":+1 @FBUP&B48*
MB5X(ZZX>N**64)I= 'P B^6#Q )=RU6#[ P[)A <@7J8@$ (OLBT84"T82
M=0/I& $6C48$4,1V$B;_= 0F_W0"FK\?^02+Y87 =0/I^@#$=A(FBT0()HM\
M!H[ )HM="(Q&%([ )@M=!HE^$G0#Z=@ CL FBUT$CL FBW4"B5X4"]Z)=A)T
M%;$-CD84)HL$T^@E!P ] @!T ^FM (M&!H7 >3VX @!0FN\%\PB+Y8[ )L='
M! C$8*CL FQT<" "+3A2+5A*.P":)3PB.P":)5P:)7@B: @"+$H/$#%W+
MBT84"T82=0DSP#/;@\0,7<N+1@8+1@1U$(M&%(M>$IH" (L2@\0,7<NQ#<1V
M$B:+!-/H)0< /0( =0HFBT0()@M$!G4),\ SVX/$#%W+Q'82)HM$"":+7 :#
M;@0!@UX& (E&%(E>$NNH'KBGEE":70!\ (OE@\0,7<M5@^P$.R80 '(%ZF(!
M "+[(M&# M&"G1)Q'8*)HM$""8+1 9U/":+1 0FBUP""\-T)R:+1 2Q#8[
M)HL7T^J!X@< @_H%=1&A*H"+'BB F@( BQ*#Q 1=RS/ ,]N#Q 1=RQZXKI90
MFET ? "+Y8/$!%W+58/L!CLF$ !R!>IB 0 B^S'1@0! ,1V#":*!##DA<!T
M,8I&$##D)HH<,/\[V'4(BT8$@\0&7<LSR;H! (M&#HM>#)H& -03_T8$B48.
MB5X,Z\,SP(/$!EW+58/L$CLF$ !R!>IB 0 B^R+1AH+1AAU ^F7 !:-1@A0
MQ'88)O]T!";_= *:1B#Y!(OEA<!T?,1V&":+1 @FBWP&B48:"\>)?AAT9Q:-
M1@Q0CD8:)O]U!";_=0*:1B#Y!(OEA<!T3,1V&":+1 @F"T0&=3_$?@PFB@4P
MY%#_=@K_=@@.Z!__B^6%P(E&$'X:,]N%P'D!2U-0FCT&? "+Y9H" (L2@\02
M7<LSP#/;@\027<L>N+:64)I= 'P B^6#Q!)=RU6#[ @[)A <@7J8@$ (OL
MBT80"T8.=#S$=@XFBT0()@M$!G4O%HU&!% F_W0$)O]T II&(/D$B^6%P'07
M_W8&_W8$FH@%^02+Y9H" (L2@\0(7<L>N,:64)I= 'P B^6#Q A=RU6![!8!
M.R80 '(%ZF(! "+[,>&% $ (N&'@$+AAP!=0HSP#/;@<06 5W+C-"-7@B)
MA@H!B9X( 8N&'@$+AAP!=0/IR@ 6C88, 5#$MAP!)O]T!";_= *:1B#Y!(OE
MA<!U ^D! ?^V#@'_M@P!F@X :A.+Y8N>% $#PSW^ (F&% %\ ^G4 (N&"@&+
MM@@!,\FZ 0"+WHE& HE> )H& -03BXX. 8N^# &)3@8SR;H! (F&"@&+A@X!
MB9X( 8O?B5X$F@8 U!..1@8FB@V.1@(FB R)A@X!B9X, 83)=:@SR;H! (N&
M"@&+G@@!F@, !A2)A@H!B9X( <2V' $FBT0()HM<!HF&'@&)GAP!Z2G_Q+8(
M 2;&1 $ %HU&"%":%P/Y!(OEB882 0O#B9X0 747,\!0%HU&"%":\0/Y!(OE
MB882 8F>$ &+AA(!BYX0 9H" (L2@<06 5W+'KA]EU":!0!@$HOE'KC:EE":
M70!\ (OE@<06 5W+58/L"CLF$ !R!>IB 0 B^S_=A;_=A2:#@!J$XOEBUX8
MA=N)1@AY!@/#0(E&&(M&&$@SVX7 >0%+B\N+T(E6&(M&%HM>%)H& -03BTX8
MA<F)1A:)7A1X!3M."'P',\"#Q I=RXM&&H7 >0F+1@@K1AB)1AJ+1A@#1AH[
M1@A^!S/ @\0*7<N+1AK_3AJ%P'1-BT82BW80,\FZ 0"+WHE& HE> )H& -03
MBTX6BWX4B4X&,\FZ 0")1A*+1A:)7A"+WXE>!)H& -03CD8&)HH-CD8")H@,
MB486B5X4ZZG$=A FQ@0 N $ @\0*7<M5@>P2 3LF$ !R!>IB 0 B^R+AAH!
M"X88 74#Z?$ %HU&!E#$MA@!)O]T!";_= *:1B#Y!(OEA<!U ^G2 ,2V& $F
MBT0()HM\!HF&&@$+QXF^& %U ^FW !:-A@H!4(Z&&@$F_W4$)O]U IJ_'_D$
MB^6%P'4#Z9< Q+88 2:+1 @FBWP&QX80 ?__QX8. ?__B88: 0O'B;X8 70S
M%HV&#@%0CH8: 2;_=00F_W4"FK\?^02+Y87 =%:+AA !A<!X3L2V& $FBT0(
M)@M$!G5 BX8* 8N>#@%34/]V"/]V!A:-1@I0#N@K_HOEA<!T%Q:-1@I0FH@%
M^02+Y9H" (L2@<02 5W+,\ SVX'$$@%=RQZXT)90FET ? "+Y8'$$@%=RU6#
M[ H[)A <@7J8@$ (OLBT82"T80=0/IF@#$=A FBT0()@M$!G4#Z8H )HM$
M!":+7 (FBTP()HM\!HE.$@O/B48(B5X&B7X0=&J.1A(FBT4()@M%!G5=)HM%
M!":+70*)1@2)7@*+1@0+1@)T/O]V"/]V!L1V B;_= 0F_W0"#NBVRHOEA<!T
M$(M&!(M> IH" (L2@\0*7<O$=@(FBT0()HM<!HE&!(E> NNZ,\ SVX/$"EW+
M'K@5EU":70!\ (OE@\0*7<M5@^P*.R80 '(%ZF(! "+[(M&$@M&$'4#Z9@
MQ'80)HM$""8+1 9U ^F( ":+1 0FBUP")HM,"":+? :)3A(+SXE&"(E>!HE^
M$'1HCD82)HM%""8+109U6R:+100FBUT"B48$B5X"BT8$BUX""\-T.HY&!":+
M1P0FBU\"BTX(BU8&F@@ R!-U#XS BUX"F@( BQ*#Q I=R\1V B:+1 @FBUP&
MB48$B5X"Z[PSP#/;@\0*7<L>N!R74)I= 'P B^6#Q I=RU6#[ H[)A <@7J
M8@$ (OLBT82"T80='7$=A FBT0()@M$!G1H)HM$!":+7 (FBTP()HM\!HE.
M$@O/B48$B5X"B7X0=$B.1A(FBTT()@M-!G4[)HM-!":+50(+PXE."(E6!G0I
ML0V.1@0FBP?3Z"4' #T" '47BT8()HE'"":)5P:,P)H" (L2@\0*7<L>N"B7
M4)I= 'P B^6#Q I=RU6#[ H[)A <@7J8@$ (OLBT82"T80='7$=A FBT0(
M)@M$!G1H)HM$!":+7 (FBTP()HM\!HE.$@O/B48$B5X"B7X0=$B.1A(FBTT(
M)@M-!G4[)HM-!":+50(+PXE."(E6!G0IL0V.1@0FBP?3Z"4' #T" '47BT8(
M)HE'!":)5P*,P)H" (L2@\0*7<L>N"&74)I= 'P B^6#Q I=RU6#[ @[)A
M<@7J8@$ (OLBT80"T8.=!*Q#<1V#B:+!-/H)0< /0( =!"+1A"+7@Z: @"+
M$H/$"%W+@3[T?T ?? 6:@#?Y!*'T?_\&]'_1X-'@B_",T(U>!(F$]@*)G/0"
MQT8& #'1@0 +@" %":[P7S"(OEQ'8.)O]T!";_= *)1@:)7@0.Z'3_B^7$
M=@0FB40$)HE< L1V#B;_= @F_W0&#NA8_XOEQ'8$)HE$"":)7 ;_#O1_C,"+
MWIH" (L2@\0(7<M5@^P$.R80 '(%ZF(! "+[(M&# M&"G0EQ'8*)HM$""8+
M1 9U&";_= 0F_W0"#N@'_XOEF@( BQ*#Q 1=RQZX+Y=0FET ? "+Y8/$!%W+
M58OL,\!0,]M3'KABF5 .BP:JF5"X"0!0FCL0^02+Y3/ 4#/;4QZX:YE0#HL&
MKIE0N D 4)H[$/D$B^4SP% SVU,>N'294 Z+!K*94+@) %":.Q#Y!(OE,\!0
M,]M3'KA]F5 .BP:VF5"X"0!0FCL0^02+Y3/ 4#/;4QZXAIE0#HL&NIE0N D
M4)H[$/D$B^4SP% SVU,>N)"94 Z+!KZ94+@) %":.Q#Y!(OE,\!0,]M3'KB:
MF5 .BP;"F5"X"0!0FCL0^02+Y3/ 4#/;4QZXH9E0#HL&QIE0N D 4)H[$/D$
MB^5=RU6#[! [)A <@7J8@$ (OLBT88"T86= P>N*&94)I= 'P B^6!/O1_
M0!]\!9J -_D$H?1__P;T?]'@T>"+\(S0C5X(B83V HF<] +'1@H ,=&"
MN ( 4)KO!?,(B^6)1@Z)1@J)7@R)7@B:E $]"C/;A<!Y 4M34)H]!GP B^7$
M=@PFB40$)HE< K@" %":[P7S"(OEQ'8,)HE$"":)7 :)1@Z)7@R:FP$]"C/;
MA<!Y 4M34)H]!GP B^7$=@PFB40$)HE< K@" %":[P7S"(OEQ'8,)HE$"":)
M7 :)1@Z)7@R:I $]"C/;A<!Y 4M34)H]!GP B^7$=@PFB40$)HE< K@" %":
M[P7S"(OEQ'8,)HE$"":)7 :)1@Z)7@R:K0$]"C/;A<!Y 4M34)H]!GP B^7$
M=@PFB40$)HE< O\.]'^+1@J+7@B: @"+$H/$$%W+58/L$#LF$ !R!>IB 0
MB^R+1A@+1A9T#!ZXFIE0FET ? "+Y8$^]'] 'WP%FH W^02A]'__!O1_T>#1
MX(OPC-"-7@B)A/8"B9ST L=&"@ QT8( "X @!0FN\%\PB+Y8E&#HE&"HE>
M#(E>")JT 3T*,]N%P'D!2U-0FCT&? "+Y<1V#":)1 0FB5P"N ( 4)KO!?,(
MB^7$=@PFB40()HE<!HE&#HE>#)J] 3T*,]N%P'D!2U-0FCT&? "+Y<1V#":)
M1 0FB5P"N ( 4)KO!?,(B^7$=@PFB40()HE<!HE&#HE>#)K& 3T*,]N%P'D!
M2U-0FCT&? "+Y<1V#":)1 0FB5P"N ( 4)KO!?,(B^7$=@PFB40()HE<!HE&
M#HE>#)K/ 3T*,]N%P'D!2U-0FCT&? "+Y<1V#":)1 0FB5P"_P[T?XM&"HM>
M")H" (L2@\007<M5@^P".R80 '(%ZF(! "+[(,^J)D"= NX @!0FLX /0J+
MY8/$ EW+58/L"#LF$ !R!>IB 0 B^R+1A +1@YT6Q:-1@10Q'8.)O]T!";_
M= *:OQ_Y!(OEA<!T0,1V#B:+1 @F"T0&=3.+1@:%P'@LBUX$,\FZ"0":!@ $
M%'\=4XD>J)F:S@ ]"HOEH2J BQXH@)H" (L2@\0(7<L>N&*94)I= 'P B^6#
MQ A=RU6#[ @[)A <@7J8@$ (OLBT80"T8.=$06C48$4,1V#B;_= 0F_W0"
MFK\?^02+Y87 ="G$=@XFBT0()@M$!G4<BT8$4)KI #T*B^6A*H"+'BB F@(
MBQ*#Q A=RQZX?9E0FET ? "+Y8/$"%W+58/L##LF$ !R!>IB 0 B^R+1A0+
M1A)T>!:-1@10Q'82)O]T!";_= *:OQ_Y!(OEA<!T7<1V$B:+1 @FBWP&B484
M"\>)?A)T2!:-1@A0CD84)O]U!";_=0*:OQ_Y!(OEA<!T+<1V$B:+1 @F"T0&
M=2"+1@2+7@A34)K: #T*B^6A*H"+'BB F@( BQ*#Q Q=RQZX=)E0FET ? "+
MY8/$#%W+58/L$CLF$ !R!>IB 0 B^R+1AH+1AAU ^FO !:-1@90Q'88)O]T
M!";_= *:OQ_Y!(OEA<!U ^F1 ,1V&":+1 @FBWP&B48:"\>)?AAT?!:-1@I0
MCD8:)O]U!";_=0*:OQ_Y!(OEA<!T8<1V&":+1 @FBWP&B48:"\>)?AAT3!:-
M1@Y0CD8:)O]U!";_=0*:OQ_Y!(OEA<!T,<1V&":+1 @F"T0&=22+1@:+7@J+
M3@Y14U":I0 ]"HOEH2J BQXH@)H" (L2@\027<L>N&N94)I= 'P B^6#Q!)=
MRU6#[!([)A <@7J8@$ (OLBT8:"T88=0/IKP 6C48&4,1V&";_= 0F_W0"
MFK\?^02+Y87 =0/ID0#$=A@FBT0()HM\!HE&&@O'B7X8='P6C48*4(Y&&B;_
M=00F_W4"FK\?^02+Y87 =&'$=A@FBT0()HM\!HE&&@O'B7X8=$P6C48.4(Y&
M&B;_=00F_W4"FK\?^02+Y87 =#'$=A@FBT0()@M$!G4DBT8&BUX*BTX.45-0
MFF$!/0J+Y:$J@(L>*(": @"+$H/$$EW+'KB&F5":70!\ (OE@\027<M5@^P>
M.R80 '(%ZF(! "+[(M&)@M&)'4#Z2H!%HU&"E#$=B0F_W0$)O]T IJ_'_D$
MB^6%P'4#Z0P!Q'8D)HM$"":+? :)1B8+QXE^)'4#Z?0 %HU&#E".1B8F_W4$
M)O]U IJ_'_D$B^6%P'4#Z=8 Q'8D)HM$"":+? :)1B8+QXE^)'4#Z;X %HU&
M$E".1B8F_W4$)O]U IJ_'_D$B^6%P'4#Z: Q'8D)HM$"":+? :)1B8+QXE^
M)'4#Z8@ %HU&%E".1B8F_W4$)O]U IJ_'_D$B^6%P'1MQ'8D)HM$"":+? :)
M1B8+QXE^)'18%HU&&E".1B8F_W4$)O]U IJ_'_D$B^6%P'0]Q'8D)HM$""8+
M1 9U,(M&"HM>#HM.$HM6%HE& (M&&E!245/_=@ .Z"0 B^6A*H"+'BB F@(
MBQ*#Q!Y=RQZXD)E0FET ? "+Y8/$'EW+58/L-#LF$ !R!>IB 0 B^R+1CJ%
MP'D$,\#K XM&.HM>/H7;B48Z>00SP.L#BT8^BUX\A=N)1CYY!#/ ZP.+1CR+
M7D"%VXE&/'D$,\#K XM&0(M>.CM>/HE&0'4\BUX\.\-]"8E&/(E>0(E>$HM&
M.HM>/(E&#(E>#HM&#CM&0'\3_W9"4/]V#)IA 3T*B^7_1@[KY8/$-%W+BT8\
M.T9 =3^+1CJ+7CX[V'T)B48^B482B5XZBT8\BUXZB48.B5X,BT8,.T8^?Q/_
M=D+_=@Y0FF$!/0J+Y?]&#.OE@\0T7<N+1CXK1CHSVX7 >0%+BTY *TX\,]*%
MR7D!2H7;B484B4X8B58:B5X6>0GWT_?8@]O_ZP:+7A:+1A2+3AJ%R8E&'(E>
M'GD,BT88]]'WV(/9_^L&BTX:BT88B48@BT8>BUX<BU8@F@8 !!2)3B)_!HM&
M(HM>(+D) (M&%HM6%-'BT=#B^C/)A=MY 4F)7@2)7A"+VHM6!(E.!IH% &X3
MN0D BU8:B48NBT88T>#1TN+ZB48(B\*)7BR+7@B+3@:+5@2:!0!N$XM..C/2
MA<EY 4J)3@"Y"0")1C*+1@#1X-'2XOJ+3CR)1B0SP(7)>0%(B4X N0D B5XP
MBUX T>/1T.+ZB48JB58FB5XHBT80_TX0A<!X5XM&) 4 8M>)H/3 +D) -'[
MT=CB^HM>*('# &+3BJ#T0")3@2Y"0"+5@31^M';XOK_=D)34)IA 3T*B^6+
M1BP!1B2+7BX17B:+1C !1BB+7C(17BKKGX/$-%W+58/L"CLF$ !R!>IB 0
MB^R+1A:+7A2+3A*+5A": #G$[[2F8E$!HE<!(E, HD4=0TSP#/;,\DSTH/$
M"EW+L0^AV)G3Z"4! $AU#QZX.II0FET ? "+Y>FJ ;$$H=B9T^B Y <M_@.[
MX#^+#MB9@>$/@ O+B48(B0[8F;[2F8M$!HM<!(M, HL4'KYCFE::" R$AZ^
M:YI6F@0 LA.^VIF)1 :)7 2)3 *)%+[2F8M$!HM<!(M, HL4'K[:F5::!P!\
M$QZ^VIE6F@0 LA.^XIF)1 :)7 2)3 *)%+[2F8M$!HM<!(M, HL4'K[BF5::
M!P!\$[[JF8E$!HE<!(E, HD4L02AZ)G3Z(#D!TA(L033X"7P?XL.Z)F!X0^
M"\B)#NB9ON*9BT0&BUP$BTP"BQ0>ONJ95IH$ +(3ONJ9B40&B5P$B4P"B12^
MTIF+1 :+7 2+3 *+%!Z^ZIE6F@< ?!,>ONJ95IH$ +(3OO*9B40&B5P$B4P"
MB12Q!*'XF=/H@.0'2+$$T^ E\'^+#OB9@>$/@ O(BT8(J0$ B0[XF70FBT0&
MBUP$BTP"BQ0>OG.:5IH( #(2_T8(OO*9B40&B5P$B4P"B12+1@C1^+$$BQ[X
MF=/K@.<' ]BQ!-/C@>/P?XL.^)F!X0^ "\N)1@B)#OB9OO*9BT0&BUP$BTP"
MBQ2#Q I=RX/$"EW+58/L&CLF$ !R!>IB 0 B^R+1B:+7B2+3B*+5B >OGN:
M5IH, .<3?P\>N#^:4)I= 'P B^7IA *+1B:+7B2+3B*+5B"^TIF)1 :)7 2)
M3 *)%+$$H=B9T^B Y <M_@.[X#^+#MB9@>$/@ O+B488B0[8F8M$!HM<!(M,
M HL4'KYSFE::# #G$WYB'KZ#FE::$@"R$[[:F8E$!HE<!(E, HD4'KZ#FE::
M$@"R$[[:F8E$!HE<!(E, HD4OM*9BT0&BUP$BTP"BQ0>OH.:5IH( #(2'KZ#
MFE::! "R$[[BF8E$!HE<!(E, HD4ZTN^TIF+1 :+7 2+3 *+%!Z^@YI6FA(
MLA.^VIF)1 :)7 2)3 *)%!Z^@YI6F@@ ,A(>OH.:5IH$ +(3_TX8ON*9B40&
MB5P$B4P"B12^VIF+1 :+7 2+3 *+%!Z^XIE6F@< ?!.^\IF)1 :)7 2)3 *)
M%!Z^\IE6F@@ ,A*^VIF)1 :)7 2)3 *)%!Z^BYI6F@@ ,A(>OI.:5IH$ +(3
M'K[:F5::" R$AZ^FYI6F@0 LA.^XIF)1 :)7 2)3 *)%+[:F8M$!HM<!(M,
M HL4'KZCFE::! "R$QZ^VIE6F@@ ,A(>OJN:5IH$ +(3'K[:F5::" R$AZ^
MLYI6F@0 LA.^ZIF)1 :)7 2)3 *)%+[:F8M$!HM<!(M, HL4'K[BF5::" R
M$AZ^ZIE6F@< ?!.^VIF)1 :)7 2)3 *)%!Z^\IE6F@@ ,A(>OO*95IH$ +(3
MOMJ9B40&B5P$B4P"B12+1AB: P"1$XE&!HE>!(E. HE6 !Z^NYI6F@@ ,A(>
MOMJ95IH$ +(3B48.B5X,B4X*B58(BT8&BUX$BTX"BU8 'K[#FE::" R$AZ^
MRYI6F@< ?!,6C78(5IH$ +(3ON*9B40&B5P$B4P"B12#Q!I=RX/$&EW+58/L
M"#LF$ !R!>IB 0 B^R+1A2+7A*+3A"+5@X>OGN:5IH, .<3?PX>N$.:4)I=
M 'P B^7K,8M&%(M>$HM.$(M6#E!345(.Z/3\B^4>OM.:5IH( #(2B484B5X2
MB4X0B58.@\0(7<N#Q A=RU6#[ H[)A <@7J8@$ (OLBT86BUX4BTX2BU80
M'K[;FE::# #G$WX/'KA)FE":70!\ (OEZ=@"BT86BUX4BTX2BU80'K[CFE::
M# #G$WT/'KA)FE":70!\ (OEZ;$"BT86BUX4BTX2BU80'KY[FE::# #G$WT1
MBT86BUX4BTX2BU80F@D 7Q(>ONN:5IH, .<3?1.^\YJ+1 :+7 2+3 *+%(/$
M"EW+BT86BUX4BTX2BU80'K[[FE::" R$K[:F8E$!HE<!(E, HD4F@$ KQ.Q
M#XL>X)G3ZX'C 0")1@AT()H# )$3'K[:F5::$@"R$QZ^@YI6F@P YQ-^0/].
M".L[BT8(F@, D1.)1@:)7@2)3@*)5@"^VIF+1 :+7 2+3 *+%!:-=@!6FA(
MLA,>OH.:5IH, .<3?@/_1@B+1@B: P"1$[[:F8E$!HE<!(E, HD4'K[#FE::
M" R$AZ^RYI6F@< ?!.)1@:)7@2)3@*)5@"+1A:+7A2+3A*+5A 6C78 5IH2
M +(3ON*9B40&B5P$B4P"B12^VIF+1 :+7 2+3 *+%!Z^NYI6F@@ ,A*)1@:)
M7@2)3@*)5@"^XIF+1 :+7 2+3 *+%!:-=@!6FA( LA.^XIF)1 :)7 2)3 *)
M%!Z^XIE6F@@ ,A*^VIF)1 :)7 2)3 *)%!Z^ YM6F@@ ,A(>O@N;5IH$ +(3
M'K[:F5::" R$AZ^$YM6F@0 LA,>ON*95IH( #(2ONJ9B40&B5P$B4P"B12^
MVIF+1 :+7 2+3 *+%!Z^&YM6F@@ ,A(>OB.;5IH$ +(3'K[:F5::" R$AZ^
M*YM6F@0 LA,>OMJ95IH( #(2'KZ#FE::! "R$[[RF8E$!HE<!(E, HD4'K[J
MF5::$@"R$XE&!HE>!(E. HE6 +[JF8M$!HM<!(M, HL4%HUV %::!P!\$QZ^
M@YI6F@0 LA.^VIF)1 :)7 2)3 *)%(M&"$"Q!(L>X)G3ZX#G!P/8L033XX'C
M\'^+#N"9@>$/@ O+B48(B0[@F8M$!HM<!(M, HL4@\0*7<N#Q I=RU6#[ H[
M)A <@7J8@$ (OLBT86BUX4BTX2BU80'KY[FE::# #G$WT:QT8(__^:"0!?
M$K[:F8E$!HE<!(E, HD4ZQ_'1@@! (M&%HM>%(M.$HM6$+[:F8E$!HE<!(E,
M HD4,\!0_W8(OMJ9BT0&BUP$BTP"BQ104U%2BT86BUX4BTX2BU804%-14@[H
MG0"+Y8/$"EW+58/L"CLF$ !R!>IB 0 B^S'1@@! (M&%HM>%(M.$HM6$!Z^
M>YI6F@P YQ-]$8M&%HM>%(M.$HM6$)H) %\2OMJ9B40&B5P$B4P"B10>OC.;
M5IH$ +(3OMJ9B40&B5P$B4P"B12X 0!0_W8(BT0&BUP$BTP"BQ104U%2BT86
MBUX4BTX2BU804%-14@[H!P"+Y8/$"EW+58/L##LF$ !R!>IB 0 B^R+1B"+
M7AZ+3AR+5AH>OCN;5IH, .<3?B2#?B0 = \>N$V:4)I= 'P B^7IT (>N%&:
M4)I= 'P B^7IP0*+1B"+7AZ+3AR+5AH>OD.;5IH( #(2OMJ9B40&B5P$B4P"
MB12:# "H$XE&"HE>")H& (X3B48&B5X$B4X"B58 BT0&BUP$BTP"BQ06C78
M5IH2 +(3'KZ#FE::# #G$WX(@T8( 8-6"@"+1@J+7@B:!@".$[[:F8E$!HE<
M!(E, HD4BT8*BUX(,\"!XP$ "\-T _=>(H-^) !T)K[:F8M$!HM<!(M, HL4
M'KZ#FE::$@"R$[[:F8E$!HE<!(E, HD4BT88BUX6BTX4BU82OM*9B40&B5P$
MB4P"B10SP(L>V)F YW^)'MB9OMJ9BT0&BUP$BTP"BQ0>ODN;5IH( #(2B48&
MB5X$B4X"B58 OM*9BT0&BUP$BTP"BQ06C78 5IH2 +(3OM*9B40&B5P$B4P"
MB12^VIF+1 :+7 2+3 *+%!Z^4YM6F@@ ,A*)1@:)7@2)3@*)5@"^TIF+1 :+
M7 2+3 *+%!:-=@!6FA( LA,>OGN:5IH, .<3OM*9B40&B5P$B4P"B11]$[[2
MF8M$!HM<!(M, HL4F@D 7Q(>OEN;5IH, .<3?1>+1B*: P"1$QZ^TIE6F@@
M,A*#Q Q=R[[2F8M$!HM<!(M, HL4'K[2F5::" R$K[:F8E$!HE<!(E, HD4
M'KYCFU::" R$AZ^:YM6F@0 LA,>OMJ95IH( #(2'KYSFU::! "R$QZ^VIE6
MF@@ ,A(>OGN;5IH$ +(3'K[:F5::" R$AZ^@YM6F@0 LA,>OMJ95IH( #(2
M'KZ+FU::! "R$QZ^VIE6F@@ ,A(>OI.;5IH$ +(3'K[:F5::" R$AZ^FYM6
MF@0 LA,>OMJ95IH( #(2ON*9B40&B5P$B4P"B10>OM*95IH( #(2'K[2F5::petera@utcsri.UUCP (Smith) (04/27/86)
[line eater]
[ PC-LISP.EXE (part 1 of 4)
-------------------- CUT HERE ---------------------
begin 444 pc-lisp.exe
M35I. 1 !+ E@ A$ __^5'P !@74" ( (PL $$ "0 "T! ^
M 0 0P$ $@! !- 0 4@$ &0! !T 0 AP$ (P! "B 0 R $ .\!
M 5 @ .0( !@ ) . 20 -@$D $@!) !6 20 B0$D )\!) #: 20 =@(D
M (X") "@ B0 T@(D "$#) !2 R0 % 0D #$$) !;!"0 <00D *@$) #$!"0
MZ@0D %) ;!20 ,04D $$%) !7!20 ;04D (8%) < 'P 3P!\ &X ? !Y
M 'P DP!\ *8 ? "Q 'P X !\ /0 ? ^ 7P 5@%\ &8!? #" 7P !P)\ !L"
M? J GP 4@)\ 'H"? "B GP U )\ $#? 2 WP ?0-\ )$#? #6 WP Z -\
M !@$? !'!'P 701\ (T$? "<!'P Q 1\ .P$? 4!7P 3 5\ (H%? V!GP
M2@9\ %4&? !T!GP B 9\ ),&? "L!GP P 9\ -0&? #C!GP "P=\ $ '? ":
M!WP K@=\ ,X'? #V!WP (PA\ 'H(? #="'P \0A\ L)? S"7P 6PE\ (@)
M? #/"7P ,PI\ $@*? !<"GP R@I\ .4*? #^"GP (@M\ $8+? "7"WP NPM\
M P,? P#'P /PQ\ )H,? #4#'P ^ Q\ $X-? !R#7P O@U\ ,P-? #Y#7P
M)@Y\ %,.? " #GP K0Y\ +P.? !\#WP H ]\ " 0? !$$'P 4Q!\ 'L0? "M
M$'P 81%\ 'H1? "5$7P KA%\ ,D1? #B$7P 81)\ (02? #5$GP \!)\ \3
M? A$WP 11-\ / 3? .%'P *Q1\ #@4? !;%'P >!1\ (44? "I%'P 5!5\
M '(5? "/%7P G!5\ +\5? #<%7P Z15\ T6? !<%GP B19\ )@6? )%WP
M8!=\ )47? "D%WP .QA\ %\8? !N&'P 2QE\ &\9? ""&7P M!E\ 4:? S
M&GP ;AI\ (<:? "@&GP V!I\ /T:? !Y&WP G!M\ ,(;? #Q&WP !QQ\ #D<
M? !4''P :QQ\ )$<? "@''P TAQ\ ",=? !.'7P <1U\ ,\=? #S'7P #!Y\
M )X>? "R'GP T!Y\ (D?? "='WP MA]\ !(@? !3('P 9R!\ (4@? #^('P
M&"%\ %\A? !S(7P DR%\ PB? !7(GP :R)\ (LB? $(WP 42-\ &4C? !T
M(WP 'B1\ #4D? !9)'P :"1\ . D? #Z)'P ,25\ $ E? "X)7P T"5\ <F
M? 6)GP CB9\ *@F? #?)GP [B9\ "LG? "$)WP $BA\ &PH? #5*'P "E\
M "0I? X*7P 1RE\ &\I? K*GP :"I\ (PJ? ";*GP PRI\ ($K? #8*WP
M_"M\ LL? !.+'P A2Q\ )DL? "H+'P X"Q\ !<M? [+7P CRU\ +,M? #&
M+7P VBU\ /HM? >+GP GBY\ ,(N? #4+GP ]2Y\ $DO? !M+WP @B]\ (<O
M? "9+WP O2]\ .DO? #Z+WP &C!\ #0P? !','P :S!\ +TP? #.,'P XC!\
M \Q? !",7P 5C%\ &4Q? M,GP /C)\ &(R? ":,GP S#)\ /XR? "\,WP
M:31\ (TT? #--'P XS1\ (U? F-7P :S5\ )@U? #1-7P "S9\ $0V? !8
M-GP 9S9\ *LV? #!-GP !3=\ !DW? T-WP 6#=\ (LW? ":-WP H3=\ - W
M? #T-WP 23A\ &TX? "/.'P !#E\ XY? >.7P 0CE\ &0Y? #N.7P ^CE\
M #0Z? !8.GP H#I\ ,\Z? #.WP )#M\ #<[? !3.WP >3M\ )H[? "Z.WP
MX#M\ $\? =/'P 53Q\ '8\? ")/'P I3Q\ ,L\? #L/'P ##U\ #(]? !3
M/7P :SU\ (L]? "S/7P X#U\ $(^? "P/GP Q#Y\ -,^? [/WP 3S]\ %X_
M? "&/WP "D!\ %) ? "Y0'P Z$!\ ")!? !,07P K4%\ +]!? #;07P ^4%\
M "U"? ".0GP H$)\ ,A"? )0WP 1T-\ %E#? !]0WP BT-\ *E#? #1'P
M/41\ &%$? #61'P -45\ (9%? #E17P #49\ #-&? !F1GP S$9\ !Q'? !/
M1WP A$=\ +%'? #%1WP &P#Y!%< ^02- /D$X #Y!/H ^01 ?D$<P'Y!+8!
M^00P OD$1@+Y!$L"^01N OD$A +Y!(D"^02L OD$OP+Y!,0"^033 OD$W0+Y
M!"0#^00V _D$4 /Y!+@#^03. _D$_@/Y!!8$^01@!/D$?@3Y!(L$^02P!/D$
M-07Y!($%^025!?D$T@7Y!/ %^00!!OD$* ;Y!#,&^01_!OD$DP;Y!*4&^00(
M!_D$& ?Y!%\'^01Q!_D$U ?Y!.0'^00K"/D$F CY!*D(^03_"/D$%@GY!# )
M^015"?D$B GY!-0)^03H"?D$<0KY!($*^03("OD$\0KY!"0+^01%"_D$;0OY
M!)8+^03)"_D$Z@OY! D,^00=#/D$6 SY!%T,^01R#/D$=PSY!(L,^03P#/D$
M) [Y!"L.^01$#_D$B@_Y!)8/^02A#_D$)A#Y!#(0^01($/D$X1#Y!.T0^00#
M$?D$:!'Y!',1^03#$?D$^Q'Y!#82^01"$OD$31+Y!*\2^024$_D$\!/Y! P4
M^006%/D$+!3Y!(L4^02I%/D$LQ3Y!*\5^01/%OD$<!;Y!(\6^03]%OD$'Q?Y
M!$H7^01K%_D$I!?Y!-,7^029&/D$K!CY!+<8^003&?D$)QGY!/,9^01/&OD$
M8QKY!" ;^00S&_D$;AOY!((;^03=&_D$ ASY!'(<^02.'/D$F!SY!,4<^03A
M'/D$ZQSY!!@=^00T'?D$/AWY!($=^02='?D$IQWY!,8=^03B'?D$[!WY! L>
M^00G'OD$,1[Y!'4>^021'OD$FQ[Y!+H>^036'OD$X![Y!/\>^00;'_D$)1_Y
M!$4?^01T'_D$S!_Y!"L@^013(/D$[2#Y!#4A^01@(?D$A2'Y!(\A^02S(?D$
MRR'Y!-4A^03:(?D$ "+Y!"DB^01!(OD$4B+Y!%PB^01A(OD$;"+Y!(,B^02-
M(OD$I"+Y!*XB^02S(OD$QR+Y!-XB^03H(OD$_R+Y! DC^00.(_D$*R/Y!$(C
M^01,(_D$42/Y!%PC^01G(_D$>"/Y!(\C^029(_D$VB/Y!#<D^01<)/D$A23Y
M!/\D^00;)?D$/"7Y!%,E^01A)?D$="7Y!",F^01*)OD$?";Y!)$F^03%)OD$
M]R;Y!!8G^01*)_D$9"?Y!( G^02O)_D$R2?Y! <H^008*/D$0RCY!&8H^03!
M*/D$\RCY!!TI^027*?D$ORGY!-<I^03W*?D$&BKY!'4J^02?*OD$P2KY!% K
M^02O*_D$ "SY!!8L^01@+/D$B2SY!)XL^03,+/D$X2SY!#4M^012+?D$?2WY
M!*PM^02\+?D$TRWY!/4M^03Z+?D$&R[Y!#HN^01)+OD$7R[Y!'(N^021+OD$
MH"[Y!-0N^03S+OD$ B_Y!$ O^01?+_D$ER_Y!+4O^03H+_D$\B_Y!"@P^01A
M,/D$<S#Y!)HP^00<,?D$8C'Y!+XQ^00[,OD$C#+Y!-@R^03Z,OD$1#/Y!(DS
M^03',_D$Y3/Y!"LT^01,-/D$O#3Y!)8U^033-?D$83;Y!)8V^005-_D$*S?Y
M!#TW^01P-_D$BS?Y!+ W^03#-_D$S#?Y!-XW^03U-_D$_C?Y!! X^00D./D$
M+CCY!%0X^01;./D$:3CY!(,X^02<./D$JCCY!+TX^03\./D$'CGY!$4Y^01\
M.?D$LCGY!.DY^03].?D$#CKY!"<Z^00\.OD$33KY!&8Z^02>.OD$LSKY!+\Z
M^037.OD$Z#KY!/XZ^003._D$)#OY!( [^02K._D$N#OY! $\^00;//D$+3SY
M!%$\^01O//D$ASSY!)D\^03D//D$_SSY!"0]^00U/?D$3SWY!&4]^01]/?D$
MCSWY!*L]^03P/?D$"#[Y!! ^^00C/OD$-#[Y!$ ^^01A/OD$@C[Y!*,^^03)
M/OD$U#[Y!-X^^000/_D$/S_Y!$@_^01//_D$>C_Y!($_^00- /,(60#S"(@
M\PB? /,(J@#S",D \PC9 /,(XP#S" !\P@S ?,(10'S"%4!\PAV ?,(E0'S
M"*<!\PBQ ?,(* +S"#@"\PA$ O,(3P+S"-8"\PA& _,(G0/S"/\#\PA&!/,(
M< 3S"(H$\PCF!/,(%07S""4%\PA4!?,(> 7S"(,%\PB.!?,(L@7S"+T%\PC(
M!?,(Y@7S"/P%\PAQ!O,(@0;S"/X&\P@-!_,(%P?S""T'\PAU!_,(A0?S"-4'
M\PCD!_,([@?S" 0(\P@="/,()PCS"$8(\PA="/,(E CS",H(\PCI"/,(_@CS
M"!()\P@D"?,(10GS")$)\PBD"?,(UPGS"/ )\PC["?,(#PKS""(*\PA5"O,(
M;@KS"'D*\PB-"O,(H KS",0*\PC:"O,(\ KS"/H*\P@9"_,(/POS"%P+\PB
M"_,(H0OS",D+\P@*#/,(4@SS"&<,\PBP#/,(]0SS" 8-\P@0#?,(2@WS"&$-
M\PB%#?,(%@[S"#\.\PAH#O,(=P[S"+(.\PCD#O,( P_S"$H/\PAP#_,(P@_S
M"/$/\P@2$/,(?!#S"),0\PC&$/,(\!#S"(41\PCL$?,( Q+S"#L2\PB\$O,(
MTA+S".X2\P@$$_,(%Q/S""03\P@X$_,(11/S"%D3\PAF$_,(B!/S"+,3\PC>
M$_,(!13S"!L4\P@S%/,(0!3S"%@4\PAE%/,(?13S"(H4\P@5 %H*0@!:"EX
M6@IU %H*GP!:"KT 6@K. %H*W !:"A( :@HB &H*.0!J"E :@IG &H*?@!J
M"I4 :@JL &H*PP!J"N$ :@H% 6H*) %J"DP!:@I; 6H*:P%J"I$!:@JA 6H*
MQ0%J"N$!:@KQ 6H*_P%J"@\":@H= FH*+0)J"CL":@I+ FH*60)J"FD":@IW
M FH*AP)J"I4":@JE FH*LP)J"L,":@K1 FH*X0)J"N\":@K_ FH*#0-J"AT#
M:@HK VH*.P-J"DD#:@I9 VH*9P-J"G<#:@J% VH*E0-J"J,#:@JS VH*P0-J
M"M$#:@K? VH*[P-J"OT#:@H-!&H*&P1J"BL$:@HY!&H*201J"E<$:@IG!&H*
M=01J"H4$:@J3!&H*HP1J"K$$:@K!!&H*SP1J"M\$:@KM!&H*_01J"@L%:@H;
M!6H**05J"CD%:@I'!6H*5P5J"F4%:@IU!6H*@P5J"I,%:@JA!6H*O05J"MD%
M:@KU!6H*$09J"BT&:@I)!FH*909J"G4&:@J#!FH*DP9J"J$&:@JQ!FH*OP9J
M"ML&:@KK!FH*^09J"A4':@HQ!VH*30=J"ET':@IK!VH*>P=J"HD':@J9!VH*
MIP=J"K<':@K%!VH*U0=J"N,':@KS!VH* 0AJ"A$(:@H?"&H*+PAJ"CT(:@I-
M"&H*6PAJ"FL(:@IY"&H*E0AJ"K$(:@K-"&H*Z0AJ"@4):@HA"6H*/0EJ"ED)
M:@IU"6H*D0EJ"JT):@K)"6H*Y0EJ"@$*:@H="FH*.0IJ"E4*:@IQ"FH*C0IJ
M"JD*:@K%"FH*X0IJ"OT*:@H9"VH*-0MJ"E$+:@IM"VH*B0MJ"J4+:@JU"VH*
MPPMJ"M\+:@K["VH*%PQJ"C,,:@I/#&H*:PQJ"H<,:@JC#&H*OPQJ"ML,:@KW
M#&H*$PUJ"B\-:@I+#6H*9PUJ"H,-:@J?#6H*NPUJ"M<-:@KS#6H*#PYJ"BL.
M:@I'#FH*8PYJ"G\.:@J;#FH*MPYJ"M,.:@KO#FH*"P]J"B</:@I##VH*7P]J
M"GL/:@J7#VH*LP]J"L\/:@KK#VH*!Q!J"B,0:@H_$&H*3Q!J"ET0:@IM$&H*
M>Q!J"HL0:@J9$&H*J1!J"K<0:@K'$&H*U1!J"N40:@KS$&H* Q%J"A$1:@HM
M$6H*21%J"F41:@J!$6H*G1%J"J01:@JX$6H*QQ%J"O\1:@H/$FH*'Q)J"C42
M:@I1$FH*81)J"H@2:@J[$FH*RQ)J"N<2:@KV$FH*#!-J"BL3:@K0$VH*!11J
M"E(4:@I<%&H*DA1J"KX4:@K%%&H*U!1J"NH4:@HF%6H*/Q5J"E$5:@I8%6H*
M;15J"G\5:@J&%6H*FQ5J"JT5:@JT%6H*R15J"ML5:@KB%6H*]Q5J"@D6:@H0
M%FH*)19J"C<6:@H^%FH*4Q9J"F46:@IL%FH*>Q9J"I$6:@K %FH*1!=J"HL7
M:@J:%VH*L!=J"M47:@K<%VH*2QAJ"E(8:@IA&&H*=AAJ"H<8:@JT&&H*SAAJ
M"MT8:@KV&&H*"1EJ"A@9:@HN&6H*>AEJ"H<9:@K4&6H*X1EJ"O 9:@H&&FH*
M41IJ"EX::@JJ&FH*MQIJ"L8::@K<&FH*)QMJ"C4;:@J!&VH*CQMJ"IX;:@JT
M&VH*]QMJ"@4<:@H4'&H**AQJ"DP<:@J"'&H*K!QJ"LP<:@KF'&H*]QQJ"B@=
M:@HW'6H*31UJ"F$=:@IH'6H*Y!UJ"@,>:@H2'FH**!YJ"CP>:@IA'FH*>AYJ
M"HT>:@H,'VH*'Q]J"C@?:@I1'VH*9!]J"G,?:@J)'VH*F!]J"IT?:@JL'VH*
MPA]J"M$?:@K6'VH*Y1]J"OL?:@H.(&H*PB!J"C<A:@IN(6H*BB%J"I0A:@K+
M(6H*["%J"B4B:@J+(FH*HR)J"KDB:@K;(FH*"R-J"B\C:@I!(VH*62-J"F\C
M:@J1(VH*U"-J"@$D:@HA)&H*.21J"D\D:@IH)&H*>R1J"I,D:@JI)&H*'B5J
M"BTE:@I#)6H*O"5J"@<F:@HH)FH*/29J"FHF:@J )FH*GR9J"KTF:@K5)FH*
MY"9J"OHF:@I4)VH*E"=J"J,G:@JZ)VH*Z"=J"O0G:@H'*&H*#BAJ"C@H:@I+
M*&H*7"AJ"HHH:@J6*&H*J2AJ"K H:@K *&H*URAJ"API:@HT*6H*2BEJ"H4I
M:@J=*6H*LREJ"O I:@H(*FH*'BIJ"D\J:@II*FH*?"IJ"J8J:@K#*FH*V"IJ
M"O4J:@H**VH*)RMJ"CPK:@I9*VH*;BMJ"HLK:@J@*VH*O2MJ"M$K:@KK*VH*
M_RMJ"ADL:@I,+&H*6RQJ"G$L:@J:+&H*JRQJ"K4L:@K(+&H*U2QJ"MXL:@KE
M+&H*]"QJ"@HM:@HS+6H*1"UJ"DTM:@I8+6H*7RUJ"FXM:@J$+6H*K2UJ"KXM
M:@K'+6H*TBUJ"MDM:@KH+6H*_BUJ"B<N:@HX+FH*02YJ"DPN:@I3+FH*8BYJ
M"G@N:@JA+FH*LBYJ"KLN:@K&+FH*S2YJ"MPN:@KR+FH*&R]J"BPO:@HU+VH*
M0"]J"D<O:@I6+VH*;"]J"I4O:@JF+VH*KR]J"KHO:@K!+VH*T"]J"N8O:@H/
M,&H*(#!J"BDP:@HT,&H*.S!J"DHP:@I@,&H*BS!J"J@P:@K-,&H*[S!J"J8Q
M:@JM,6H*PC%J"M@Q:@KI,6H*\C%J"@LR:@H5,FH*'C)J"BDR:@HP,FH*/S)J
M"E4R:@I^,FH*CS)J"I@R:@JC,FH*JC)J"KDR:@K/,FH* C-J"A@S:@HK,VH*
M1C-J"DTS:@I<,VH*<C-J"I0S:@K$,VH*U3-J"NPS:@KV,VH*_S-J"@HT:@H1
M-&H*(#1J"C8T:@J#-&H*CC1J"J,T:@JJ-&H*L31J"K@T:@K'-&H*[#1J"O@T
M:@H=-6H*1C5J"E\U:@II-6H*;C5J"GDU:@J -6H*AS5J"ILU:@JR-6H*MS5J
M"BLV:@HZ-FH*3C9J"ETV:@K>-FH*[39J"@$W:@H3-VH*(3=J"C W:@I&-VH*
MYC=J"OPW:@H#.&H*$CAJ"B@X:@K,.&H*XCAJ"NDX:@KX.&H*#CEJ"@TZ:@H?
M.FH*+3IJ"CPZ:@I2.FH*>SIJ"HPZ:@J<.FH*HSIJ"K(Z:@K(.FH*-CMJ"C\[
M:@I&.VH*P#MJ"M$[:@K8.VH*YSMJ"OT[:@I-/&H*7#QJ"G(\:@K$/&H*RSQJ
M"MH\:@KP/&H*2SUJ"E(]:@J!/6H*BSUJ"I0]:@J;/6H*JCUJ"L ]:@H2/FH*
M&3YJ"B@^:@H^/FH*F3YJ"J ^:@K//FH*V3YJ"N(^:@KI/FH*^#YJ"@X_:@I,
M/VH*>S]J"H(_:@J)/VH*F#]J"JX_:@KM/VH*'D!J"B- :@HL0&H*,T!J"D)
M:@I80&H*@4!J"I% :@J>0&H*M4!J"K] :@K$0&H*Z$!J"O] :@H006H*)T%J
M"C%!:@H^06H*14%J"E5!:@I>06H*94%J"GE!:@J.06H*E4%J"J]!:@KI06H*
M_4%J"A1":@HV0FH*.T)J"F!":@IW0FH*B$)J"I]":@JI0FH*MD)J"KU":@K-
M0FH*UD)J"MU":@KL0FH* D-J"BM#:@H[0VH*2$-J"E]#:@II0VH*;D-J"I)#
M:@JI0VH*ND-J"M%#:@K;0VH*Z$-J"N]#:@K_0VH*"$1J"@]$:@HC1&H*.41J
M"D!$:@I:1&H*E$1J"JA$:@JM1&H*O41J"M1$:@KV1&H*^T1J"B!%:@HW16H*
M2$5J"E]%:@II16H*=D5J"GU%:@J-16H*ED5J"IU%:@JL16H*N$5J"LY%:@KD
M16H*_D5J"C5&:@I&1FH*749J"F=&:@J=1FH*K$9J"L)&:@K81FH*\D9J"BE'
M:@HZ1VH*44=J"EM':@J11VH*H$=J"K9':@H#2&H*$TAJ"BM(:@I!2&H*CDAJ
M"IY(:@JV2&H*S$AJ"BA):@I@26H*94EJ"G-):@J+26H*H4EJ"OE):@HQ2FH*
M.TIJ"DE*:@IA2FH*=TIJ"LQ*:@K:2FH*$DMJ"AQ+:@HJ2VH*0DMJ"EA+:@IZ
M2VH*L$MJ"N1+:@KK2VH*&$QJ"A],:@HN3&H*1$QJ"HE,:@JA3&H*MTQJ"OE,
M:@H*36H*+$UJ"D)-:@JG36H*QDUJ"NA-:@K^36H*($YJ"H9.:@JU3FH*WDYJ
M"BU/:@I#3VH*B$]J"J!/:@JV3VH*[T]J"A!0:@HR4&H*8E!J"I]0:@JF4&H*
MOE!J"M10:@K]4&H*#E%J"A51:@HD46H*.U%J"HA1:@J>46H*S%%J"O)1:@H<
M4FH*3E)J"FE2:@J 4FH*D%)J"IQ2:@JS4FH*P%)J"N]2:@I,4VH*;5-J"J!3
M:@K%4VH* %1J"D14:@J)5&H*D%1J"JI4:@K!5&H*1U5J"G)5:@J(56H* %9J
M"@Q6:@HW5FH*359J"L=6:@K65FH*[%9J"F97:@IU5VH*BU=J"K)7:@K$5VH*
M\5=J"CY8:@I26&H*?%AJ"HM8:@KTEX,5^)>#%?R7@Q4 F(,5!)B#%0B8@Q4,
MF(,5$)B#%128@Q48F(,5')B#%2"8@Q4DF(,5*)B#%2R8@Q4PF(,5-)B#%3B8
M@Q4\F(,50)B#%428@Q5(F(,53)B#%5"8@Q54F(,56)B#%5R8@Q5@F(,59)B#
M%6B8@Q5LF(,5<)B#%728@Q5XF(,5?)B#%8"8@Q6$F(,5B)B#%8R8@Q60F(,5
ME)B#%9B8@Q6<F(,5H)B#%:28@Q6HF(,5K)B#%;"8@Q6TF(,5N)B#%;R8@Q7
MF(,5Q)B#%<B8@Q7,F(,5T)B#%=28@Q78F(,5W)B#%>"8@Q7DF(,5Z)B#%>R8
M@Q7PF(,5])B#%?B8@Q7\F(,5 )F#%029@Q4(F8,5#)F#%1"9@Q44F8,5&)F#
M%1R9@Q4@F8,5))F#%2B9@Q4LF8,5,)F#%329@Q4XF8,5'P#S#SL \P]7 /,/
M<P#S#X\ \P^K /,/QP#S#^, \P_V /,/"@'S#QD!\P]& ?,/60'S#V<!\P]]
M ?,/E0'S#Z,!\P^Y ?,/T0'S#]\!\P_U ?,/#0+S#QL"\P\W O,/2P+S#U\"
M\P]N O,/FP+S#ZX"\P^\ O,/T@+S#^H"\P_X O,/#@/S#R8#\P\T _,/2@/S
M#V(#\P]P _,/C /S#Z #\P^R _,/R /S#^<#\P\.!/,/&@3S#R@$\P\W!/,/
M303S#VP$\P^(!/,/E@3S#Z4$\P^[!/,/V@3S#PH%\P\J!?,/. 7S#T<%\P]=
M!?,/?P7S#[(%\P_B!?,/!@;S#Q0&\P\C!O,/.0;S#UL&\P^.!O,/O@;S#^(&
M\P_P!O,/_P;S#Q4'\P\W!_,/;0?S#Z,'\P_9!_,/"0CS#T<(\P]6"/,/; CS
M#^H(\P\Q"?,/I@GS#]H)\P\""O,/BPKS#ZR9@Q6PF8,5M)F#%;B9@Q6\F8,5
MP)F#%<29@Q7(F8,5&P"=$"X G1!B )T0H "=$*H G1#0 )T0V@"=$ !G1!'
M 9T0;0&=$'<!G1#" 9T0)0*=$#T"G1!) IT0G@*=$*H"G1#" IT0Z *=$/("
MG1 : YT0,@.=$#P#G1!E YT0?0.=$)4#G1"? YT0J0.=$+,#G1#9 YT0XP.=
M$.T#G1#W YT0 02=$"<$G1 Q!)T0202=$%,$G1!I!)T0?P2=$(D$G1"K!)T0
MM02=$+\$G1#F!)T0_@2=$ H%G1 N!9T04P6=$&L%G1!W!9T0D@6=$)X%G1"Y
M!9T0S 6=$-8%G1 !!IT0% :=$"H&G1 T!IT0/@:=$$T&G1!Q!IT0>P:=$(@&
MG1"@!IT0J@:=$,P&G1#R!IT0%@>=$"X'G1!&!YT04 >=$%H'G1!D!YT0;@>=
M$)0'G1">!YT0J >=$+('G1"\!YT0Q@>=$-X'G1 "")T0# B=$&@(G1" ")T0
MC B=$/T(G1 :"9T0+0F=$$4)G1"3"9T0JPF=$+T)G1#,"9T0YPF=$/H)G1 %
M"IT0)@J=$# *G1!%"IT0A J=$-$*G1#U"IT0&PN=$#\+G1!)"YT0; N=$'8+
MG1" "YT0B@N=$*<+G1"_"YT0R0N=$-,+G1#="YT0YPN=$/$+G1#["YT0!0R=
M$ \,G1 9#)T0(PR=$"T,G1 W#)T000R=$$L,G1!C#)T0;0R=$(,,G1"-#)T0
MI@R=$ 4-G1 /#9T0,0V=$$0-G1!P#9T0LPV=$.@-G1#R#9T0+ Z=$%D.G1"%
M#IT0P Z=$.D.G1#[#IT0"0^=$",/G1 M#YT02 ^=$(@/G1"2#YT0G ^=$*8/
MG1"P#YT0N@^=$,0/G1#.#YT0V ^=$/P/G1 &$)T0$!"=$!H0G1 D$)T0+A"=
M$#@0G1!"$)T03!"=$'(0G1!\$)T0AA"=$+80G1#?$)T0]1"=$/\0G1 )$9T0
M$Q&=$!T1G1 G$9T0,1&=$#L1G1!%$9T0:1&=$',1G1!]$9T0AQ&=$)$1G1";
M$9T0I1&=$*\1G1"Y$9T0WQ&=$.D1G1#S$9T0(Q*=$&$2G1![$IT0K1*=$+P2
MG1#&$IT0T!*=$-H2G1#^$IT0(!.=$$D3G1!>$YT0:!.=$*$3G1"Y$YT0PQ.=
M$,T3G1#7$YT0X1.=$.L3G1#U$YT0&Q2=$"44G1 O%)T0.12=$$,4G1!-%)T0
M5Q2=$'T4G1"'%)T0D12=$+@4G1#L%)T0$!6=$"45G1!2%9T0916=$'<5G1""
M%9T0GA6=$*@5G1#*%9T0U!6=$-X5G1#R%9T0.A:=$$X6G1!B%IT0$@ $$H8
M!!*E 02M@ $$@@!!!(K 0028 $$$K !!!)T @02CP($$K<"!!+? @023P R
M$G4 ,A+" #(2#P!)$C$ 21)+ $D28 !)$A8 3Q(S $\2; !/$H 3Q*V $\2
MPP!/$M< 3Q( 4\2$P!@$HX 8!*N & 2% %@$D@!8!(2 '42+0!U$I0 =1+.
M '42Z0!U$@T CA)A (X2E0&.$M@!CA+L 8X2$@*.$DX"CA)\ HX2L *.$A,#
MCA*& XX2DP..$ID#CA*M XX2LP..$AD%CA+^!8X2/P:.$DT&CA);!HX2]P:.
M$H@'CA+-!XX2-PB.$H((CA(]"8X2=0F.$J )CA(1 "D3K@ I$U<!*1,_ BD3
MX (I$ZD#*1/0 RD3&P!J$Q4 >1-2 'P36@!\$X ?!/( 'P3'P".$PD D!,.
M ) 3&0"1$Q, DA,8 )(3$@"3$Q< DQ,9 )03Z@"4$PH!E!,4 903$@"E$Q<
MI1,A *83)P"F$R$ J!,F *P3+ "L$Q0 KQ-P +(3E@"R$[D LA/C +(36P&R
M$Q$ S!,9 ,P3*@#,$PT SQ,2 -<3F #7$Q4 [1.; .T3NP#M$R@![1-G >T3
M#P 9%!( &A0= !H4,P :%#X &A14 !H490 :%( &A2+ !H4H0 :%+( &A3-
M !H4W@ :%!D *!3B 2@4_@$H%((%*!0. +(4#P"V%&\ MA2. +84P@"V% P!
MMA1 ;849@&V%( !MA24 ;84I0&V%-0!MA07 K848P*V%(("MA2] K84#P.V
M%"H#MA1% [848@.V%)$#MA2B [84V .V%/8#MA10!+849@2V%*8$MA0"!;84
M*P6V%% %MA26!;84< 8%7\ &!6> ",5K C%14 ,14J #$530 Q%6T ,16!
M #$5H@ Q%;( ,17& #$5X Q%0
M
M
M
M
M
M
M # /JX@Q6.V+B5'X[0O !^[@@H:,2 (P&5@ FH2P HW OH
M)HH,,NWC%48FB@0\/700/"!T!#P)=05)?^TSR>M$D#/;270N1B:*!#P@="8\
M"70B+#!\*#P)?R0#VW(@B],#VW(: ]MR%@/:<A(RY /8<@SKSPO;= :)'FZ?
MZ[NZ<@#IT@"+'FZ?T>L#VX'[ 'UW![L ?8D>;I\FBQ8" (S0*]#WP@#P=0O1
MXM'BT>+1XNL$D+KP_SO3=P:ZH0#IE@")'A B^.+T:$0 4/ +$$T^B,TP/#
MHUH HUX )HL> @ KV';5L033PXO#)0\ @>/P_XD>:@"C; &,\!0B^R+VHO*
M@\,$@>/^_ROCB_PVQ@5C1^,/-L8%($<FB@0VB 5&1^+V-L8% !ZX@Q6.V(O$
MHV@ 'Q90'@>:E0$ )KB 0 F@P E!.:P@$ )H/ @ N !,S2&T"<TAN %,
MS2'ZN(,5CMBA: MT >+X/N:@#?Y!+JW +0)S2&X 4S-(8OLFL(! ":#P(
M (M&!+1,S2&<4@8>4%.T-; ;S2&X@Q6.V(P&8 ")'F( NB\"L!NT)8S+CMO-
M(5M8'P=:G<N<4E,>4+B#%8[8BQ9B + ;M"6+'F CMO-(5@?6UJ=RYQ2!AY0
M4[0UL"/-(;B#%8[8C 9D (D>9@"Z+P*P([0EC,N.V\TA6U@?!UJ=RYQ24QY0
MN(,5CMB+%F8 L".T)8L>9 ".V\TA6!];6IW+4%-14E565QX&N(,5CMC_!M
M!Q]?7EU:65M8SU6#[!@[)A <@7J8@$ (OLQT8& #'1@S__\=&%OX _W8@
M_W8>#N@9!(OEB$80,.0]_P!U!,9&$""#?@S_= /I' &+1@:%P'0%/08 =1&+
M1B2+7B+'1A;^ (E&"HE>"(I&$##D/?\ =06X___K!8I&$##DB48.T>"+\+$(
MBX34 -/H,N2Q!-/@C-NYU@$#R(M&!M'@ \B+\;$/CL,FBP33Z"4! (E>%(EV
M$NLDL0G$=A(FBP33Z"4_ (E&!NL<L0G$=A(FBP33Z"4_ (E&#.L*/0 =.D]
M 0!TTK$(Q'82)HL$T^@E 0!T ^E-_XM&"HMV"#/)N@$ B]Z)1@*)7@":!@#4
M$XI.$(Y& B:(#(M.%DF%R8E&"HE.%HE>"'D0'KBV E SP%!0FBLE^02+Y8M&
M((M>'HS9ND2<F@@ R!-T#(,^T = 6:;SCY!/]V(/]V'@[H[ *+Y8A&$.G;
M_L1V"";&! "#?@P =2S&1A @BT8@BUX>C-FZ1)R:" #($W46,\!0,\!0,]M3
M_W8@_W8>F@4 =1*+Y8I&$##D_W8@_W8>4 [H*@.+Y8M&#(/$&%W+58OL,\"C
MR0*CRP*CS0)=RU6#[ H[)A <@7J8@$ (OLH<L"A<!^#/\.RP*X @"#Q I=
MR_]V%O]V%/]V$O]V$ [H"OZ+Y8E& NGU /\&R0*+1@*#Q I=R_\.R0*+1@*#
MQ I=R[@! */) H/$"EW+H<D"2,<&R0( */+ K@" (/$"EW+BT86BW84CL F
MBAPP_XE&"(E>!(EV!L1V!B:*!##DA<!T'2:*1 $FB 0SR;H! (S B]Z:!@#4
M$XE&"(E>!NO7,\FZ 0"+1@B+7@:: P &%(OP,\FZ 0")1@B)7@:: P &%([
M)L8' (-^!'R)1@B)7@9U"+@& (/$"EW+N H @\0*7<L>N,\"4/]V%O]V%)H(
M 'D3B^6X" "#Q I=RXM& H/$"EW+" #$ @, 00($ "P"#0 A @( %0(! D"
MOA0 +CN$Y@)U!2[_I.@"@^X$>>_KRE6#[!@[)A <@7J8@$ (OL,\#'1@C_
M_XM>((M.'HOQB4X4,\FZ 0")1@R)1@:+PXE> HE>%HO>B5X F@8 U!..1@(F
MB@R)1A:(3A*)7A2#?@C_= /IO "+1@:%P'0%/08 =07'1@P (I&$C#DB48*
MT>"+\+$(BX34 -/H,N2Q!-/@C-NYU@$#R(M&!M'@ \B+\;$/CL,FBP33Z"4!
M (E>$(EV#NLDL0G$=@XFBP33Z"4_ (E&!NL<L0G$=@XFBP33Z"4_ (E&".L*
M/0 =.D] 0!TTK$(Q'8.)HL$T^@E 0!T ^EH__]&#(M&%HMV%#/)N@$ B]Z)
M1@*)7@":!@#4$XY& B:*#(E&%HA.$HE>%.D[__]V(/]V'IH. &H3B^6+7@P[
MV'4+@WX(!G4%,\! ZP(SP(/$&%W+58/L"#LF$ !R!>IB 0 B^RX$@!0BT80
MBUX.C-FZ1)R:"P#,$XJ'U0(PY(7 B48&B5X$=4K$=@XFBT0$2":)1 2%P'@H
M)HM$ B:+'#/)N@$ B48"B5X F@8 U!,FB40")HD<Q'8 )HH$,.3K#?]V$/]V
M#IH$ "D3B^6#Q A=RXMV!,:$U0( BT8&@\0(7<M5@^P&.R80 '(%ZF(! "+
M[+@2 %"+1A"+7@Z,V;I$G)H+ ,P3BT8,B(?5 H/$!EW+58/L!#LF$ !R!>IB
M 0 B^RX$@!0BT8,BUX*C-FZ1)R:"P#,$\:'U0( _W8,_W8*FF<"!!*+Y8/$
M!%W+58/L!#LF$ !R!>IB 0 B^RX$@!0BT8,BUX*C-FZ1)R:"P#,$\:'U0(
M_W82_W80_W8._W8,_W8*F@4 =1*+Y8/$!%W+58/L!CLF$ !R!>IB 0 B^S'
M1@0 (M&!(L>]'\[V'XHT>#1X(OPBX3V HN\] *.P";_=0*,1@*.P";_-9KC
M#/D$B^7_1@3KS8/$!EW+58OL_W8(_W8&'KCV?U":!0!@$HOEN $ 4)I^%/D$
MB^7'!O1_ .Z# ZN $ 4!ZX1H-0F@\ /0J+Y5W+58/L"#LF$ !R!>IB 0
MB^RX @!0FN\%\PB+Y8M.$(M6#H[ )HE/!(Q&!H[ )HE7 H[ )L='" CL F
MQT<& ")7@2: @"+$H/$"%W+58/L!#LF$ !R!>IB 0 B^R+1@P+1@IT#<1V
M"B:+1 @F"T0&= L>N%" 4 [H1_^+Y<1V"B:+1 0FBUP"B48,B5X*Q'8.)H(\
M '06,\FZ 0",P(O>F@8 U!.)1A")7@[KX3/)N@$ BT80BUX.F@, !A0SR;H!
M (E&$(E>#IH# 84B480B5X.Q'8.)HH$,.0]8P!U ^F (M&# M&"G4),\ S
MVX/$!%W+L0W$=@HFBP33Z"4' #T" '0+'KA0@% .Z+/^B^6+1A"+=@XSR;H!
M (O>B48"B5X F@, !A2.1@(FB@PP[8/Y9(E&$(E>#G43Q'8*)HM$"":+7 :)
M1@R)7@KKA,1V"B:+1 0FBUP"B48,B5X*Z7#_BT8,BUX*F@( BQ*#Q 1=RU6#
M[ P[)A <@7J8@$ (OL@3[T?T ?? 6:@#?Y!*'T?XE& $"+7@#1X]'CC-&-
M5A*)C_8"B9?T CU 'Z/T?WP%FH W^02A]'^)1@! BUX T>/1XXS1C586B8_V
M HF7] (]0!^C]']\!9J -_D$H?1_B48 0(M> -'CT>.,T8U6&HF/]@*)E_0"
M/4 ?H_1_? 6:@#?Y!*'T?XE& $"+7@#1X]'CC-&-5@2)C_8"B9?T L=&!@
MQT8$ ]0!^C]']\!9J -_D$H?1__P;T?]'@T>"+\(S0C5X(B83V HF<] +'
M1@H ,=&" N ( 4)KO!?,(B^6Y @!1B48&B5X$FN\%\PB+Y8M.%(MV$H[!
M)HM4"(E. H[!)HM,!L1^!":)50@FB4T&)HE%!":)70*,P8O7CD8")HE,"":)
M5 :+3AB+5A:.P":)3P2,1@J.P":)5P*+1AR+3AHFB4<()HE/!H,N]'\%B5X(
MB]F: @"+$H/$#%W+58/L"CLF$ !R!>IB 0 B^R+1A*+=A".P":+7 B.P":+
M3 :)3@:)7@B+1@@+1@9T3<1V!B:+1 0FBWP"B48"CL FBT4$)HM= HM.%HM6
M%)H( ,@3B7X =1(FBT4()HM=!IH" (L2@\0*7<O$=@8FBT0()HM<!HE&"(E>
M!NNK,\ SVX/$"EW+58/L!CLF$ !R!>IB 0 B^R+1A(+1A!T4\1V$":+1 0F
MBWP"CL F_W4$C$8"CL F_W4"_W8._W8,FNX?:@J+Y87 =!7$=A FBT0$)HM<
M IH" (L2@\0&7<O$=A FBT0()HM<!HE&$HE>$.NE,\ SVX/$!EW+58/L%#LF
M$ !R!>IB 0 B^R!/O1_0!]\!9J -_D$H?1_B48 0(M> -'CT>.,T8U6&HF/
M]@*)E_0"/4 ?H_1_? 6:@#?Y!*'T?XE& $"+7@#1X]'CC-&-5AZ)C_8"B9?T
M CU 'Z/T?WP%FH W^02A]'^)1@! BUX T>/1XXS1C58BB8_V HF7] (]0!^C
M]']\!9J -_D$H?1__P;T?]'@T>"+\(S0C5X$B83V HF<] (SP#/;B48&B5X$
MBT8<"T8:=0/IR@"X @!0FN\%\PB+Y8M.!@M.!(E&"HE>"'4.B482B48&B5X0
MB5X$ZQ>+1@J+7@C$=A FB40()HE<!HE&$HE>$+@" %":[P7S"(OEQ'8:)HM,
M!":+5 *.P":)3P2,1@Z.P":)5P(SR3/2CL FB4\(CL FB5<&BTX@"TX>B5X,
M="?$=AXFBT0$)HM< L1^#":)10@FB5T&CD8@)HM$"":+7 :)1B")7AZ+1@Z+
M7@S$=@@FB40$)HE< L1V&B:+1 @FBUP&B48<B5X:Z2O_BT8&"T8$=!&+1B2+
M7B+$=@@FB40()HE<!H,N]'\$BT8&BUX$F@( BQ*#Q!1=RU6#[ @[)A <@7J
M8@$ (OLN 0 4)KO!?,(B^6+3A"+5@Z.P":)3P2,1@:.P":)5P*)7@2: @"+
M$H/$"%W+58/L"#LF$ !R!>IB 0 B^RX 0!0FN\%\PB+Y8E&!HE>!(M&%(M>
M$HM.$(M6#IH, *83Q'8$)HE$!":)7 *,P(O>F@( BQ*#Q A=RU6#[ P[)A
M<@7J8@$ (OL@3[T?T ?? 6:@#?Y!*'T?XE& $"+7@#1X]'CC-&-5A*)C_8"
MB9?T CU 'Z/T?WP%FH W^02A]'__!O1_T>#1X(OPC-"-7@2)A/8"B9ST C/
M,]N)1@:)7@2+1A0+1A)T4[@" %":[P7S"(OEQ'82)HM,!":+5 *.P":)3P2,
M1@J.P":)5P*.1A0FBTP()HM4!HE.%(M.!HE6$HM6!([ )HE/"([ )HE7!HE&
M!HE>!(E>".NE@R[T?P*+1@:+7@2: @"+$H/$#%W+58/L$#LF$ !R!>IB 0
MB^R+1A@+1A9U"3/ ,]N#Q!!=RX$^]'] 'WP%FH W^02A]'^)1@! BUX T>/1
MXXS1C586B8_V HF7] (]0!^C]']\!9J -_D$H?1__P;T?]'@T>"+\(S0C5X$
MB83V HF<] +'1@8 ,=&! N ( 4)KO!?,(B^7$=A8FBTP$)HM4 H[ )HE/
M!(Q&!H[ )HE7 H[ )L='" CL FQT<& ".1A@FBTP()HM4!HE&"HE.&(E6
M%HE>"(E>!(M&& M&%G1<N ( 4)KO!?,(B^7$=A8FBTP$)HM4 H[ )HE/!(Q&
M#H[ )HE7 H[ )L='" CL FQT<& ".1A@FBTP()HM4!L1V"":)1 @FB5P&
MB48*B4X8B586B5X(B5X,ZYR#+O1_ HM&!HM>!)H" (L2@\007<M5@^P0.R80
M '(%ZF(! "+[(M&& M&%G4#Z3H!@3[T?T ?? 6:@#?Y!*'T?XE& $"+7@#1
MX]'CC-&-5A:)C_8"B9?T CU 'Z/T?WP%FH W^02A]'^)1@! BUX T>/1XXS1
MC58:B8_V HF7] (]0!^C]']\!9J -_D$H?1__P;T?]'@T>"+\(S0C5X$B83V
M HF<] +'1@8 ,=&! N ( 4)KO!?,(B^7$=A8FBTP$)HM4 H[ )HE/!(Q&
M"H[ )HE7 HY&&":+3 @FBU0&B48&B4X8B586B5X$B5X(BT88"T86=$RX @!0
MFN\%\PB+Y<1V%B:+3 0FBU0"CL FB4\$C$8.CL FB5<"Q'X()HE%"":)70:.
M1A@FBTP()HM4!HE&"HE.&(E6%HE>"(E>#.NLBT8<BUX:Q'8()HE$"":)7 :#
M+O1_ XM&!HM>!)H" (L2@\007<N#+O1_ XM&'(M>&IH" (L2@\007<M5@^P(
M.R80 '(%ZF(! "+[(M&$ M&#G4),\ SVX/$"%W+Q'8.)HM$!":+7 (+PW11
M)HM$!+$-CL FBQ?3ZH'B!P"#^@)T#1ZX68!0#NB^]8OEZTG$=@XF_W0()O]T
M!@[HG?^+Y5!3Q'8.)O]T!";_= (.Z!_^B^6: @"+$H/$"%W+Q'8.)O]T"";_
M= 8.Z&__B^6: @"+$H/$"%W+@\0(7<M5@^P".R80 '(%ZF(! "+[(M&"@M&
M"'0?Q'8()HM$""8+1 9U$B:+1 0FBUP"F@( BQ*#Q )=RQZX8(!0#N@K]8OE
M@\0"7<M5@^P".R80 '(%ZF(! "+[(M&"@M&"'1,Q'8()HM$""8+1 9U/R:+
M1 0FBUP"B48*"\.)7@AU"3/ ,]N#Q )=R[$-Q'8()HL$T^@E!P ] @!U$B:+
M1 0FBUP"F@( BQ*#Q )=RQZX9H!0#NBV](OE@\0"7<M5@^P".R80 '(%ZF(!
M "+[(M&"@M&"'1,Q'8()HM$""8+1 9U/R:+1 0FBUP"B48*"\.)7@AU"3/
M,]N#Q )=R[$-Q'8()HL$T^@E!P ] @!U$B:+1 @FBUP&F@( BQ*#Q )=RQZX
M:H!0#NA!](OE@\0"7<M5@^P,.R80 '(%ZF(! "+[($^]'] 'WP%FH W^02A
M]'__!O1_T>#1X(OPC-"-7A*)A/8"B9ST HM&% M&$G1XQ'82)HM$!":+7 (F
MBTP()HM\!HE.% O/B48&B5X$B7X2=%6.1A0FBT4()@M%!G5(N ( 4)KO!?,(
MB^6+3@:+5@2.P":)3P2,1@J.P":)5P+$=A(FBTP$)HM4 H[ )HE/"([ )HE7
M!O\.]'^)7@B: @"+$H/$#%W+'KAN@% .Z'GSB^6#Q Q=RU6#[ 0[)A <@7J
M8@$ (OLBT8,"T8*=%'$=@HFBT0()@M$!G5$)HM$!":+7 (+PW0G)HM$!+$-
MCL FBQ?3ZH'B!P"#^@*)5@!T!8/Z!G4),\ SVX/$!%W+H2J BQXH@)H" (L2
M@\0$7<L>N'. 4 [H__*+Y8/$!%W+58/L!CLF$ !R!>IB 0 B^R+1@X+1@QT
M7L1V#":+1 @FBUP&"\-T3R:+1 B.P":+3PB,1@*.P"8+3P:)7@!U-XY&#B:+
M1 0FBUP"Q'8 )HM,!":+5 *:" #($W41H2J BQXH@)H" (L2@\0&7<LSP#/;
M@\0&7<L>N'B 4 [H>/*+Y8/$!EW+58/L!#LF$ !R!>IB 0 B^R+1@P+1@IT
M,<1V"B:+1 @F"T0&=20FBT0$)@M$ G41H2J BQXH@)H" (L2@\0$7<LSP#/;
M@\0$7<L>N'N 4 [H'O*+Y8/$!%W+58/L!#LF$ !R!>IB 0 B^R+1@P+1@IT
M,<1V"B:+1 @F"T0&=20FBT0$)@M$ G41H2J BQXH@)H" (L2@\0$7<LSP#/;
M@\0$7<L>N(" 4 [HQ/&+Y8/$!%W+58/L%#LF$ !R!>IB 0 B^R!/O1_0!]\
M!9J -_D$H?1__P;T?]'@T>"+\(S0C5X:B83V HF<] *+1AP+1AIU ^F@ ,1V
M&B:+1 0FBWP"L0V.P":+'=/K@>,' '0#Z8, B]^.1APFBTP()HM\!HE.' O/
MB48&B5X$B7X:=&:.1APFBT4$)HM= B:+30@FBW4&B4X<"\Z)1@Z)7@R)=AIT
M0XY&'":+1 @F"T0&=38FBT0$)HM< O]V#O]V#%!3_W8&_W8$B48*B5X(#NBA
M\HOE_P[T?XE&$HE>$)H" (L2@\047<L>N(2 4 [HT?"+Y8/$%%W+58/L##LF
M$ !R!>IB 0 B^R+1A0+1A)T>\1V$B:+1 0FBWP"L0V.P":+'=/K@>,' '5A
MB]^.1A0FBTP()HM\!HE.% O/B48&B5X$B7X2=$2.1A0FBT4()@M%!G4W)HM%
M!":+=0*Q#8[ )HL<T^N!XP< =2"+WE!3_W8&_W8$B48*B5X(#NAI\XOEF@(
MBQ*#Q Q=RQZXC(!0#N@M\(OE@\0,7<M5@^P8.R80 '(%ZF(! "+[($^]']
M'WP%FH W^02A]'^)1@! BUX T>/1XXS1C58>B8_V HF7] (]0!^C]']\!9J
M-_D$H?1_B48 0(M> -'CT>.,T8U6!(F/]@*)E_0"QT8& #'1@0 #U 'Z/T
M?WP%FH W^02A]'^)1@! BUX T>/1XXS1C58(B8_V HF7] (SVS/)BU8@"U8>
MH_1_B4X(B5X*=0Z#+O1_ XO#B]F#Q!A=R\1V'B:+1 0FBWP"B48."\>)?@QU
M ^DC K$-CD8.)HL%T^@E!P!T ^D1 HY&(":+1 @FBWP&B48@"\>)?AYU ^GY
M 8Y&(":+100FBW4"B482"\:)=A!U ^GN +$-CD82)HL$T^@E!P!T ^G< !ZX
MD(!0FA<#^02+Y8E& HM&$HE> (M>$(M. HM6 )H( ,@3=0^A0H"+'D" B486
MB5X4ZW,>N): 4)H7 _D$B^6)1@*+1A*)7@"+7A"+3@*+5@":" #($W4/H3*
MBQXP@(E&%HE>%.L_'KB;@%":%P/Y!(OEB48"BT82B5X BUX0BTX"BU8 F@@
MR!-U#Z%&@(L>1(")1A:)7A3K"QZXH8!0#NA?[HOEQ'8>)HM$"":+? :)1B +
MQXE^'G03CD8@)HM%!":+70*)1A*)7A#K&AZXH8!0#N@L[HOEZPVA,H"+'C"
MB486B5X4Q'8>)HM$"":+7 :)1B +PXE>'G4#Z<X N ( 4)KO!?,(B^6+3A:+
M5A2.P":)3P2,1@:.P":)5P*X @!0B5X$FN\%\PB+Y<1V!":)1 @FB5P&BTX2
MBU80CL FB4\$C$8*CL FB5<"BT8@BTX>)HE'"":)3P:A1H"+#D2 B48"BT86
MB5X(BUX4B4X BTX"BU8 F@@ R!-U'?]V#O]V##/ 4#/;4_]V!E:X!0!0FCL0
M^02+Y>L=_W8._W8,,\!0,]M3_W8&_W8$N T 4)H[$/D$B^6#+O1_ XM&#HM>
M#)H" (L2@\087<L>N*& 4 [H+.V+Y8/$&%W+58/L$#LF$ !R!>IB 0 B^S$
M=A8FBT0$)HM< B:+3 @FBU0&B4X8"\J)1@:)5A:)7@1U ^D= 0O#=0/I%@&Q
M#8Y&!B:+!]/H)0< = /I! &.1AB+\B:+1 0FBUP")HM,"(E&"B:+1 :)3A@+
MR(E&%HE>"'0#Z=P "UX*=0/IU "Q#<1V"":+!-/H)0< /0( = /IOP FBT0$
M)HM< HL.,H"+%C" B48.B\&)7@R+VHM.#HM6#)H( ,@3=!ZA0H"+'D" B48"
MB\&)7@"+VHM. HM6 )H( ,@3=2W_=@;_=@0SP% SVU/_=@K_=@BX#0!0FCL0
M^02+Y8M&!HM>!)H" (L2@\007<NA1H"+'D2 B48"BT8.B5X BUX,BTX"BU8
MF@@ R!-U+?]V!O]V!#/ 4#/;4_]V"O]V"+@% %":.Q#Y!(OEBT8&BUX$F@(
MBQ*#Q!!=RQZXIX!0#NC(ZXOE@\007<M5@^P0.R80 '(%ZF(! "+[,1V%B:+
M1 0FBUP")HM,"":+5 :)3A@+RHE&!HE6%HE>!'4#Z1T!"\-U ^D6 ;$-CD8&
M)HL'T^@E!P!T ^D$ 8Y&&(OR)HM$!":+7 (FBTP(B48*)HM$!HE.& O(B486
MB5X(= /IW +7@IU ^G4 +$-Q'8()HL$T^@E!P ] @!T ^F_ ":+1 0FBUP"
MBPXR@(L6,(")1@Z+P8E>#(O:BTX.BU8,F@@ R!-T'J%"@(L>0(")1@*+P8E>
M (O:BTX"BU8 F@@ R!-U+?]V!O]V!#/ 4#/;4_]V"O]V"+@- %":.Q#Y!(OE
MBT8&BUX$F@( BQ*#Q!!=RZ%&@(L>1(")1@*+1@Z)7@"+7@R+3@*+5@":" #(
M$W4M_W8&_W8$,\!0,]M3_W8*_W8(N 4 4)H[$/D$B^6+1@:+7@2: @"+$H/$
M$%W+'KBK@% .Z&3JB^6#Q!!=RU6#[ @[)A <@7J8@$ (OLQ'8.)HM$!":+
M7 (FBTP()@M,!HE&!HE>!'5 "\-T/+$-CD8&)HL'T^@E!P!U+;$')HL'T^@E
M#P E!0 ]!0!U$B:+1PPFBU\*F@( BQ*#Q A=RS/ ,]N#Q A=RQZXL(!0#NCH
MZ8OE@\0(7<M5@^P0.R80 '(%ZF(! "+[($^]'] 'WP%FH W^02A]'__!O1_
MT>#1X(OPC-"-7A:)A/8"B9ST HM&& M&%G4#Z;P Q'86)HM$!":+? *)1@8+
MQXE^!'4#Z9 CD8&)O]U!";_=0(.Z(HLB^6)1@H+PXE>"'1UQ'8$)HM$""8+
M1 9U$?\.]'^+1@J: @"+$H/$$%W+Q'8$)HM$"":+7 :)1@:)7@2+1@8+1@1T
M*L1V!";_= 0F_W0"#N@X+(OEQ'8$)HM,"":+5 :)1@Z)3@:)5@2)7@SKSO\.
M]'^+1@Z+7@R: @"+$H/$$%W+Q'86)HM$"":+7 :)1AB)7A;I.?__#O1_,\ S
MVX/$$%W+58/L$#LF$ !R!>IB 0 B^R!/O1_0!]\!9J -_D$H?1__P;T?]'@
MT>"+\(S0C5X6B83V HF<] *+1A@+1A9T>L1V%B:+1 0FBUP")HM,"":+? :)
M3A@+SXE&!HE>!(E^%G17CD88)HM%""8+109U2B:+100FBW4"B48*"\:)=@AT
M$K$-CD8*)HL$T^@E!P ] @!U)O]V"O]V"/]V!O]V! [HW^N+Y?\.]'^)1@Z)
M7@R: @"+$H/$$%W+'KBU@% .Z!+HB^6#Q!!=RU6#[!0[)A <@7J8@$ (OL
M@3[T?T ?? 6:@#?Y!*'T?_\&]'_1X-'@B_",T(U>&HF$]@*)G/0"BT8<"T8:
M=0/IO0#$=AHFBT0$)HM\ K$-CL FBQW3ZX'C!P"#^P)T ^F= (O?CD8<)HM,
M"":+? :)3AP+SXE&!HE>!(E^&G4#Z7T CD8<)HM%!":+=0*Q#8[ )HL<T^N!
MXP< @_L"=6"+WHY&'":+30@FBW4&B4X<"\Z)1@J)7@B)=AIT0XY&'":+1 @F
M"T0&=38FBT0$)HM< E!3_W8*_W8(_W8&_W8$B48.B5X,#NA$ZXOE_P[T?XE&
M$HE>$)H" (L2@\047<L>N+N 4 [H N>+Y8/$%%W+58/L&CLF$ !R!>IB 0
MB^S&1@4 @3[T?T ?? 6:@#?Y!*'T?XE& $"+7@#1X]'CC-&-5@J)C_8"B9?T
M L=&# QT8* ]0!^C]']\!9J -_D$H?1__P;T?]'@T>"+\(S0C5X.B83V
M HF<] (SP#/;BTXB"TX@B480B5X.=0/I^@#$=B FBT0()@M$!G0#Z>H %HU&
M!E F_W0$)O]T II&(/D$B^6%P'4#Z<\ ,\ SVXE&#(E&$(E>"HE>#L1V!B:"
M/ !U ^F2 +@" %":[P7S"(OEBTX0BU8.CL FB4\(C$8,CL FB5<&BTX(BW8&
MB4X",\FZ 0")1A"+1@B)7@Z)7@J+WHE> )H& -03CD8")HH,%HU6!%*)1@B(
M3@2)7@::%P/Y!(OEB484"\.)7A)U%3/ 4!:-1@10FO$#^02+Y8E&%(E>$HM&
M%(M>$L1V"B:)1 0FB5P"Z6+__W8,_W8*#NC_ZXOE@R[T?P*)1AB)7A:: @"+
M$H/$&EW+'KC#@% .Z'7EB^6#Q!I=RU6![!0!.R80 '(%ZF(! "+[,>&$@'^
M (S0C5X(BXX< 0N.&@&)A@P!B9X* 74#Z5(!Q+8: 2:+1 @F"T0&= /I00$F
MBT0$)HM\ K$-CL FBQW3ZX'C!P"#^P*)AAP!B;X: 70#Z1P!BX8< 0N&&@%U
M ^G$ !:-A@8!4,2V&@$F_W0$)O]T II&(/D$B^6%P'4#Z>\ BX8, 8NV"@$S
MR;H! (O>B48"B5X F@8 U!.+C@@!B[X& 8E.!C/)N@$ B88, 8N&" &)G@H!
MB]^)7@2:!@#4$XY&!B:*#8Y& B:(#(F&" &)G@8!A,ET&XN&$@%(A<")AA(!
M?YL>N,N 4)H% & 2B^7K?#/)N@$ BX8, 8N>"@&: P &%,2V&@$FBTP()HM4
M!HF&# &)CAP!B98: 8F>"@'I+__$M@H!)L9$ 0 6C48(4)H7 _D$B^6)AA !
M"\.)G@X!=1<SP% 6C48(4)KQ _D$B^6)AA !B9X. 8N&$ &+G@X!F@( BQ*!
MQ!0!7<L>N.F 4 [HX>.+Y8'$% %=RU6#[!@[)A <@7J8@$ (OL@3[T?T ?
M? 6:@#?Y!*'T?XE& $"+7@#1X]'CC-&-5@R)C_8"B9?T L=&#@ QT8, ]
M0!^C]']\!9J -_D$H?1__P;T?]'@T>"+\(S0C5X0B83V HF<] (SP#/;BTX@
M"TX>B482B5X0=0/ITP#$=AXFBT0()@M$!G0#Z<, %HU&"% F_W0$)O]T II&
M(/D$B^6%P'4#Z:@ ,\ SVXE&#HE&$HE>#(E>$,1V"":"/ !T;K@" %":[P7S
M"(OEBTX*BW8(B4X",\FZ 0")1@Z+1@J)7@R+WHE> )H& -03CD8")HH,,.TS
MTH7)>0%*4E&)1@J)7@@.Z*_HB^7$=@PFB40$)HE< HM&$HM>$":)1 @FB5P&
MC,"+WHE&$HE>$.N)_W8._W8,#N@(Z8OE@R[T?P*)1A:)7A2: @"+$H/$&%W+
M'KCQ@% .Z'[BB^6#Q!A=RU6#[! [)A <@7J8@$ (OLQT8* #'1@@ ($^
M]'] 'WP%FH W^02A]'__!O1_T>#1X(OPC-"-7A:)A/8"B9ST HM&& M&%G15
MQ'86)HM$!":+? *)1@8+QXE^!'0BL0V.1@8FBP73Z"4' #T$ '40)HM% @%&
M"":+70017@KK"QZX^H!0#NCMX8OEQ'86)HM$"":+7 :)1AB)7A;KH_]V"O]V
M" [HKN>+Y?\.]'^)1@Z)7@R: @"+$H/$$%W+58/L$CLF$ !R!>IB 0 B^S'
M1@H ,=&" QT8, 0"!/O1_0!]\!9J -_D$H?1__P;T?]'@T>"+\(S0C5X8
MB83V HF<] *+1AH+1AAT?,1V&":+1 0FBWP"B48&"\>)?@1T0[$-CD8&)HL%
MT^@E!P ]! !U,8-^# !T"B:+100FBUT"ZQF+1@C$=@0F*T0"BUX*)AM<!(E&
M (O#BUX B48*B5X(ZPL>N/R 4 [H".&+Y<1V&":+1 @FBUP&QT8, ")1AJ)
M7ACI?/__=@K_=@@.Z,/FB^7_#O1_B480B5X.F@( BQ*#Q!)=RU6#[! [)A
M<@7J8@$ (OLQT8* #'1@@! ($^]'] 'WP%FH W^02A]'__!O1_T>#1X(OP
MC-"-7A:)A/8"B9ST HM&& M&%G1@Q'86)HM$!":+? *)1@8+QXE^!'0ML0V.
M1@8FBP73Z"4' #T$ '4;BT8*BUX()HM-!":+50*: 0!"$HE&"HE>".L+'KC^
M@% .Z#C@B^7$=A8FBT0()HM<!HE&&(E>%NN8_W8*_W8(#NCYY8OE_P[T?XE&
M#HE>#)H" (L2@\007<M5@^P2.R80 '(%ZF(! "+[,=&"@ QT8( 0#'1@P!
M ($^]'] 'WP%FH W^02A]'__!O1_T>#1X(OPC-"-7AB)A/8"B9ST HM&&@M&
M&'4#Z9H Q'88)HM$!":+? *)1@8+QXE^!'1AL0V.1@8FBP73Z"4' #T$ '5/
M@WX, '00)HM%!":+70*)1@J)7@CK1,1V!":+1 0F"T0"=0X>N "!4)H% & 2
MB^7K*8M&"HM>",1V!":+3 0FBU0"F@4 ;A.)1@J)7@CK"QZX&(%0#N@RWXOE
MQ'88)HM$"":+7 ;'1@P (E&&HE>&.E;__]V"O]V" [H[>2+Y?\.]'^)1A")
M7@Z: @"+$H/$$EW+58/L$#LF$ !R!>IB 0 B^S'1@P! (M&& M&%G46,\!0
M,]M3#NBOY(OEF@( BQ*#Q!!=RXM&& M&%G4#Z:D Q'86)HM$!":+? *)1@J)
M?@B#?@P =$$+QW02L0V.1@HFBP73Z"4' #T$ '00L0W$=@@FBP33Z"4' $AU
M#HM&"HM>"(E&!HE>!.M%'K@:@5 .Z&3>B^7K./]V!O]V!/]V"O]V")IU&_D$
MB^6)1@Y(=0Z+1@J+7@B)1@:)7@3K$8-^#@!U"QZX&H%0#N@JWHOEQ'86)HM$
M"":+7 ;'1@P (E&&(E>%NE,_XM&!HM>!)H" (L2@\007<M5@^P0.R80 '(%
MZF(! "+[,=&# $ BT88"T86=18SP% SVU,.Z+?CB^6: @"+$H/$$%W+BT88
M"T86=0/IJP#$=A8FBT0$)HM\ HE&"HE^"(-^# !T00O'=!*Q#8Y&"B:+!=/H
M)0< /00 =!"Q#<1V"":+!-/H)0< 2'4.BT8*BUX(B48&B5X$ZT<>N!Z!4 [H
M;-V+Y>LZ_W8&_W8$_W8*_W8(FG4;^02+Y3T" (E&#G4.BT8*BUX(B48&B5X$
MZQ&#?@X =0L>N!Z!4 [H,-V+Y<1V%B:+1 @FBUP&QT8, ")1AB)7A;I2O^+
M1@:+7@2: @"+$H/$$%W+58/L%#LF$ !R!>IB 0 B^R!/O1_0!]\!9J -_D$
MH?1__P;T?]'@T>"+\(S0C5X:B83V HF<] *+1AP+1AIU ^FA ,1V&B:+1 0F
MBUP")HM,"":+5 :)3ARQ#8E&"H[ )HL'T^@E!P ]! ")5AJ)7@AU<0M6''1L
MQ'8:)HM$!":+3 (FBU0(B48.)HM$!HE6' O0B48:B4X,=4FQ#<1V#":+!-/H
M)0< /00 =3>.1@HFBT<$)HM? HY&#B:+3 0FBU0"F@4 ;A-14@[H%^*+Y?\.
M]'^)1A*)7A": @"+$H/$%%W+'K@B@5 .Z!C<B^6#Q!1=RU6#[ X[)A <@7J
M8@$ (OL@3[T?T ?? 6:@#?Y!*'T?_\&]'_1X-'@B_",T(U>%(F$]@*)G/0"
MBT86"T84=0/IA0#$=A0FBT0$)HM< B:+3 @FBWP&B4X6"\^)1@:)7@2)?A1T
M8HY&%B:+100FBUT")HM-"":+50:)3A8+RHE&"HE6%(E>"'4_4%/_=@;_=@2:
M=1OY!(OE/0( B48,=17_#O1_H2J BQXH@)H" (L2@\0.7<N#?@P = W_#O1_
M,\ SVX/$#EW+'K@F@5 .Z$#;B^6#Q Y=RU6#[ X[)A <@7J8@$ (OL@3[T
M?T ?? 6:@#?Y!*'T?_\&]'_1X-'@B_",T(U>%(F$]@*)G/0"BT86"T84=0/I
M@P#$=A0FBT0$)HM< B:+3 @FBWP&B4X6"\^)1@:)7@2)?A1T8(Y&%B:+100F
MBUT")HM-"":+50:)3A8+RHE&"HE6%(E>"'4]4%/_=@;_=@2:=1OY!(OEB48,
M2'45_P[T?Z$J@(L>*(": @"+$H/$#EW+@WX, '0-_P[T?S/ ,]N#Q Y=RQZX
M*(%0#NAJVHOE@\0.7<M5@^P..R80 '(%ZF(! "+[($^]'] 'WP%FH W^02A
M]'__!O1_T>#1X(OPC-"-7A2)A/8"B9ST HM&%@M&%'4#Z84 Q'84)HM$!":+
M7 (FBTP()HM\!HE.%@O/B48&B5X$B7X4=&*.1A8FBT4$)HM= B:+30@FBU4&
MB4X6"\J)1@J)5A2)7@AU/U!3_W8&_W8$FG4;^02+Y3T# (E&#'45_P[T?Z$J
M@(L>*(": @"+$H/$#EW+@WX, '0-_P[T?S/ ,]N#Q Y=RQZX*H%0#NB2V8OE
M@\0.7<M5@^P<.R80 '(%ZF(! "+[($^]'] 'WP%FH W^02A]'__!O1_T>#1
MX(OPC-"-7B*)A/8"B9ST HM&) M&(G4#Z:P!Q'8B)HM$!":+7 )04XE&%HE>
M%)KN$?D$B^7$=B(FBT0()HM<!HE&&HE&$HE&!HE&)(E>&(E>$(E>!(E>(HM&
M!@M&!'1!Q'8$)HM$!":+? *Q#8[ )HL=T^N!XP< =12.1@8F_W0()O]T!E!7
MFEL1^02+Y<1V!":+1 @FBUP&B48&B5X$Z[>+1A(+1A!U ^D/ <1V$":+1 0F
MBWP"L0V.P":+'=/K@>,' '43CD82)HM$"":+7 :)1A*)7A#KR,1V$";_= 0F
M_W0"#NB.&XOEB48&"\.)7@1U ^FP *$Z@(L..(")1@*.1@8FBT<$)HM? HE.
M (M. HM6 )H( ,@3=36+=@0FBT0()HM<!@O#=!DFBT0(CL FBT\$CL FBU<"
MB4X&B58$Z8X QT8& #'1@0 .F! *$^@(L>/(")1@+$=@0FBT0$B5X )HM<
M HM. HM6 )H( ,@3=1TFBT0()HMT!H[ )HM<!([ )HM, HE.$(E>$ND._\1V
M$":+1 @FBUP&B482B5X0Z?K^Q'80)HM$"":+7 :)1A*)7A#IYO['1@8 ,=&
M! ZPL>N"R!4 [HD]>+Y?]V%O]V%)KV$/D$B^6+1AH+1AAT-L1V&":+1 0F
MBWP"L0V.P":+'=/K@>,' '4)4%>:MA'Y!(OEQ'88)HM$"":+7 :)1AJ)7ACK
MPO\.]'^+1@:+7@2: @"+$H/$'%W+58/L$#LF$ !R!>IB 0 B^R!/O1_0!]\
M!9J -_D$H?1_B48 0(M> -'CT>.,T8U6%HF/]@*)E_0"/4 ?H_1_? 6:@#?Y
M!*'T?_\&]'_1X-'@B_",T(U>#(F$]@*)G/0",\ SVXM.& M.%HE&#HE>#'4#
MZ<\ Q'86)HM$!":+? *Q#8[ )HL=T^N!XP< = /IL@"+WXY&&":+3 @FBWP&
MB4X8"\^)1@J)7@B)?A9U ^F2 (Y&&":+10@F"T4&= /I@@ FBT4$)HM= HM.
M"HMV"([!)HM4!(Q& H[!)@M4 HE&#HE>#(EV '4EN! CL$FBQP+V([!)HD<
MN ( 4)KO!?,(B^7$=@ FB40$)HE< HM&"HMV"([ )HM<!([ )HM\ HM&#HM.
M#([#)HE%!([#)HE- H,N]'\"B]F: @"+$H/$$%W+'K@Q@5 .Z.75B^6#Q!!=
MRU6#[! [)A <@7J8@$ (OL@3[T?T ?? 6:@#?Y!*'T?XE& $"+7@#1X]'C
MC-&-5A:)C_8"B9?T CU 'Z/T?WP%FH W^02A]'__!O1_T>#1X(OPC-"-7@R)
MA/8"B9ST L=&#@ QT8, "+1A@+1A9U ^G6 ,1V%B:+1 0FBUP""\-U ^G9
M ":+1 2Q#8[ )HL7T^J!X@< = /IPP".1A@FBTP()HM\!HE.& O/B48*B5X(
MB7X6=0/II0".1A@F_W4$)O]U @[H)QB+Y8M."HMV"([!)HM4!(Q& H[!)@M4
M HE&#HE>#(EV '4EN! CL$FBQP+V([!)HD<N ( 4)KO!?,(B^7$=@ FB40$
M)HE< HM&"HMV"([ )HM<!([ )HM\ HM&#HM.#([#)HE%!([#)HE- NL Q'86
M)HM$"":+7 :)1AB)7A;I'_^#+O1_ HM&#HM>#)H" (L2@\007<L>N#6!4 [H
M==2+Y8/$$%W+58/L"#LF$ !R!>IB 0 B^R!/O1_0!]\!9J -_D$H?1__P;T
M?]'@T>"+\(S0C5X.B83V HF<] *+1A +1@YT&,1V#B:+1 @F"T0&= L>N#J!
M4 [H&-2+Y;@" %":[P7S"(OEBPXZ@(L6.(".P":)3P2,1@:.P":)5P*+3A"+
M5@Z.P":)3PB.P":)5P;_#O1_B5X$F@( BQ*#Q A=RU6#[ @[)A <@7J8@$
M (OL@3[T?T ?? 6:@#?Y!*'T?_\&]'_1X-'@B_",T(U>#HF$]@*)G/0"BT80
M"T8.=%+$=@XFBT0()@M$!G5%N ( 4)KO!?,(B^6+#CZ BQ8\@([ )HE/!(Q&
M!H[ )HE7 HM.$(M6#H[ )HE/"([ )HE7!O\.]'^)7@2: @"+$H/$"%W+'KA!
M@5 .Z#;3B^6#Q A=RU6#[ 0[)A <@7J8@$ (OLBT8,"T8*=$_$=@HFBT0(
M)@M$!G5")HM$!"8+1 )U"3/ ,]N#Q 1=R\1V"B:+1 0FBWP"L0V.P":+'=/K
M@>,' (/[ G424%<.Z#W9B^6: @"+$H/$!%W+'KA$@5 .Z+[2B^6#Q 1=RU6#
M[ 0[)A <@7J8@$ (OL_W8,_W8*#NB.W(OEF@( BQ*#Q 1=RU6#[ 0[)A
M<@7J8@$ (OLBT8,"T8*=!O$=@HF_W0$)O]T @[H>Q6+Y9H" (L2@\0$7<L>
MN$R!4 [H4]*+Y8/$!%W+58/L##LF$ !R!>IB 0 B^R+1A0+1A)T>\1V$B:+
M1 0FBUP")HM,"":+? :)3A0+SXE&!HE>!(E^$G18CD84)HM%!":+=0*)1@H+
MQHEV"'02L0V.1@HFBP33Z"4' #T" '0(BT8*"T8(=2G$=A(FBT0()@M$!G4<
M_W8*_W8(_W8&_W8$#NBI$(OEF@( BQ*#Q Q=RQZX48%0#NBOT8OE@\0,7<M5
M@^P".R80 '(%ZF(! "+[(M&"@M&"'4*,\!0F@( 21*+Y1ZX5X%0#NA\T8OE
M@\0"7<M5@^P(.R80 '(%ZF(! "+[(M&$ M&#G1/Q'8.)HM$""8+1 9U0B:+
M1 0FBWP"B480"\>)?@YT,+$-CD80)HL%T^@E!P!U(8S CL F_W4(C$8"CL F
M_W4&#NA=V(OEF@( BQ*#Q A=RQZX7(%0#N@$T8OE@\0(7<M5@^P$.R80 '(%
MZF(! "+[(M&# M&"G4GQP;DCP$ FA<.^02:!1#S",<&Y(\ *$J@(L>*(":
M @"+$H/$!%W+'KAB@5 .Z+30B^6#Q 1=RU6#[! [)A <@7J8@$ (OLBT88
M"T86=0/I@@#$=A8FBT0()@M$!G5U%HU&"% F_W0$)O]T II&(/D$B^6%P'1=
M_W8*_W8(F@@ 6@J+Y8E&!@O#B5X$=0DSP#/;@\007<O_=@;_=@2:%P/Y!(OE
MB48."\.)7@QU%C/ 4/]V!O]V!)KQ _D$B^6)1@Z)7@R+1@Z+7@R: @"+$H/$
M$%W+'KAE@5 .Z ;0B^6#Q!!=RU6#[ @[)A <@7J8@$ (OLBT80"T8.=$W$
M=@XF_W0$)O]T @[HZA*+Y8E&!@O#B5X$=0DSP#/;@\0(7<O$=@XFBT0()HM<
M!HE&$(E>#HM&$ M&#G7#BT8&BUX$F@( BQ*#Q A=RZ$J@(L>*(": @"+$H/$
M"%W+58/L"#LF$ !R!>IB 0 B^R+1A +1@YT2L1V#B;_= 0F_W0"#NAS$HOE
MB48&"\.)7@1T#8M&!IH" (L2@\0(7<O$=@XFBT0()HM<!HE&$(E>#HM&$ M&
M#G6_,\ SVX/$"%W+H2J BQXH@)H" (L2@\0(7<M5@^P,.R80 '(%ZF(! "+
M[($^]'] 'WP%FH W^02A]'__!O1_T>#1X(OPC-"-7A*)A/8"B9ST HM&% M&
M$G4#Z;D Q'82)HM$""8+1 9T ^FI ":+1 0F"T0"=0/IG FBT0$)HM\ H[
M)HM=!(Q&%([ )HMU HE>!@O>B78$B7X2='BQ#8Y&!B:+'-/K@>,' '5HL0<F
MBQS3ZX'C#P"!XP4 @_L%=50FBUP,)HM,"E!74U&)3@B)7@H.Z#L-B^6)1A0+
MPXE>$G02L0V.1A0FBP?3Z"4' #T" '0,'KAL@5":!0!@$HOE_P[T?XM&%(M>
M$IH" (L2@\0,7<L>N*.!4 [H#\Z+Y8/$#%W+58/L(#LF$ !R!>IB 0 B^R+
M1B@+1B9U ^G_ <1V)B:+1 0F"T0"=0/I[P$FBT0$)HM< H$^]'] 'XE&"HE>
M"'P%FH W^02A]'^)1@! BUX T>/1XXS1C58$B8_V HF7] +'1@8 ,=&!
M/4 ?H_1_? 6:@#?Y!*'T?XE& $"+7@#1X]'CC-&-5@R)C_8"B9?T L=&#@
MQT8, ]0!^C]']\!9J -_D$H?1__P;T?]'@T>"+\(S0C5X8B83V HF<] +'
M1AH ,=&& Q'8F)O]T"";_= 8.Z&[4B^6)1@8+PXE>!'4#Z2X!QT8. #'
M1@P ,1V!":+1 0F"T0"=0/I\P &5@[H/]2+Y8E&$HE&%HE>$(E>%(M&$@M&
M$'0]Q'80)HM$!":+7 (+PW0;)HM$!([ )HM/!([ )HM7 HY&$B:)3 0FB50"
MQ'80)HM$"":+7 :)1A*)7A#KN[@" %":[P7S"(OE_W86_W84_W8*_W8(B48:
MB5X8#NAL"XOEQ'88)HE$!":)7 *+1@Z+7@PFB40()HE<!HS B]Z+3@:+5@2)
M1@Z)3A*)5A")7@R+1A(+1A!U ^DZ_\1V$":+1 0FBUP""\-T&R:+1 2.P":+
M3PB.P":+5P:.1A(FB4P$)HE4 L1V$":+1 @FBUP&B482B5X0Z[C_=@[_=@P.
MZ&[2B^6#+O1_ XE&'HE>')H" (L2@\0@7<L>N*^!4 [HY,N+Y8/$(%W+58/L
M##LF$ !R!>IB 0 B^RQ!,1V$B:+!-/H,N2Q!,1V%B:+'-/K,O\[PXE&"G0'
M,\"#Q Q=RXM&"O]."H7 =%#_=@K_=A3_=A*:$ SY!(OE_W8*_W88_W86B48"
MB5X FA ,^02+Y8[ )O]W HQ&!H[ )O\WQ'8 )O]T B;_-)KN'VH*B^6%P'6M
M,\"#Q Q=R[@! (/$#%W+58/L!#LF$ !R!>IB 0 B^R+1@P+1@IT2<1V"B:+
M1 @F"T0&=3PFBT0$)HM< @O#="<FBT0$L0V.P":+%]/J@>(' (/Z!G41H2J
MBQXH@)H" (L2@\0$7<LSP#/;@\0$7<L>N+:!4 [HV<J+Y8/$!%W+58/L$#LF
M$ !R!>IB 0 B^R+1AB+7A;'1@@ (E&#HE>#(M&#@M&#'06_T8(Q'8,)HM$
M"":+7 :)1@Z)7@SKXO]V")H>"/D$B^6)1@8+PXE>!'4),\ SVX/$$%W+BT88
MBUX6QT8* ")1@Z)7@R+1@H[1@A].E#_=@;_=@2:$ SY!(OEQ'8,)HM,!":+
M5 *.P":)3P*.P":)%_]&"L1V#":+1 @FBUP&B48.B5X,Z[Z+1@:+7@2: @"+
M$H/$$%W+58/L#CLF$ !R!>IB 0 B^R!/O1_0!]\!9J -_D$H?1__P;T?]'@
MT>"+\(S0C5X$B83V HF<] (SP#/;L03$=A0FBQ33ZC+V2HE&!HE6#(E>!(M&
M#(7 >%2X @!0FN\%\PB+Y?]V#/]V%O]V%(E&"HE>")H0#/D$B^6.P":+3P*.
MP":+%\1V"":)3 0FB50"BT8&BUX$)HE$"":)7 :,P(O>B48&B5X$_TX,ZZ7_
M#O1_BT8&BUX$F@( BQ*#Q Y=RU6#[ 0[)A <@7J8@$ (OLBT8,"T8*=!;_
M=@S_=@H.Z%S^B^6: @"+$H/$!%W+'KB\@5 .Z!G)B^6#Q 1=RU6#[ H[)A
M<@7J8@$ (OLBT82"T80='/$=A FBT0$)@M$ G1F)HM$""8+1 9U7!:-1@90
M)O]T!";_= *:OQ_Y!(OEA<!T%8M&!E":'@CY!(OEF@( BQ*#Q I=R\1V$":+
M1 0FBWP"L0V.P":+'=/K@>,' (/[ G424%<.Z,#]B^6: @"+$H/$"EW+'KC!
M@5 .Z'W(B^6#Q I=RU6#[ @[)A <@7J8@$ (OLBT80"T8.=%#$=@XFBT0$
M)@M$ G1#)HM$""8+1 9U.2:+1 0FBWP"L0V.P":+'=/K@>,' (/[!G4?L02.
MP":+'=/K,O\SP%!3#NCYS8OEF@( BQ*#Q A=RQZXR8%0#N@$R(OE@\0(7<M5
M@^P..R80 '(%ZF(! "+[(M&%@M&%'4#Z:D %HU&!E#$=A0F_W0$)O]T IJ_
M'_D$B^6%P'4#Z8L Q'84)HM$"":+? :)1A8+QXE^%'1VCD86)HM%!"8+10)T
M:2:+10@F"T4&=5\FBT4$)HMU K$-CL FBQS3ZX'C!P"#^P:)1@R)=@IU/XM&
M"(7 >#BQ!":+'-/K,O\SR8E> (M>!HM6 )H& 04?1U3!E::$ SY!(OECL F
MBT<")HL?F@( BQ*#Q Y=RQZXTH%0#N@OQXOE@\0.7<M5@^P2.R80 '(%ZF(!
M "+[(M&&@M&&'4#Z>H %HU&!E#$=A@F_W0$)O]T IJ_'_D$B^6%P'4#Z<P
MQ'88)HM$"":+? :)1AH+QXE^&'4#Z;0 CD8:)HM%!"8+10)U ^FD ":+100F
MBUT")HM-"":+50:)3AJQ#8E6&([ )HL7T^J!X@< @_H&B48,B5X*=7:+3@B%
MR7AOL02.P":+!]/H,N0SVXE& (M&"(E> HM>!HM. HM6 )H& 04?4E3!O]V
M"IH0#/D$B^6+3AH+3AB)1A")7@YT+\1V&":+1 @F"T0&=2(FBT0$)HM< L1V
M#B:)1 (FB1R+1@R+7@J: @"+$H/$$EW+'KC6@5 .Z!G&B^6#Q!)=RU6#[ 0[
M)A <@7J8@$ (OLBT8,"T8*=$/$=@HFBT0$)@M$ G0V)HM$""8+1 9U+":+
M1 0FBW0"L0V.P":+'-/K@>,' (/[!G424%8.Z+#[B^6: @"+$H/$!%W+'KC=
M@5 .Z*W%B^6#Q 1=RU6+[,<&ZH$ %W+58/L!CLF$ !R!>IB 0 B^S'1@0
M (M&!#L&ZH%]3J%<G$B%P*-<G'@LH5B<BS96G#/)N@$ B]Z)1@*)7@":!@#4
M$[$@CD8")H@,,.VC6)R)'E:<ZQ(>N%:<4+@@ %":2@$I$XOEB\C_1@3KJ1ZX
M[(%0F@4 8!*+Y3/ 4#/;4[@! %#_=@[_=@P>N%:<4)H)+/D$B^6A7)Q(A<"C
M7)QX+*%8G(LV5IPSR;H! (O>B48"B5X F@8 U!.Q((Y& B:(###MHUB<B1Y6
MG.L2'KA6G%"X( !0FDH!*1.+Y8O(,\!0,]M34%.X 0!0_W82_W80'KA6G%":
M&S#Y!(OEH5R<2(7 HUR<>"RA6)R+-E:<,\FZ 0"+WHE& HE> )H& -03L0J.
M1@(FB PP[:-8G(D>5ISK$AZX5IQ0N H 4)I* 2D3B^6+R/\&ZH&#Q 9=RU6#
M[ 8[)A <@7J8@$ (OL_P[J@<=&! BT8$.P;J@7U.H5R<2(7 HUR<>"RA
M6)R+-E:<,\FZ 0"+WHE& HE> )H& -03L2".1@(FB PP[:-8G(D>5ISK$AZX
M5IQ0N" 4)I* 2D3B^6+R/]&!.NI'KCU@5":!0!@$HOE,\!0,]M3N $ 4/]V
M#O]V#!ZX5IQ0F@DL^02+Y:%<G$B%P*-<G'@LH5B<BS96G#/)N@$ B]Z)1@*)
M7@":!@#4$[$@CD8")H@,,.VC6)R)'E:<ZQ(>N%:<4+@@ %":2@$I$XOEB\@S
MP% SVU-04[@! %#_=A+_=A >N%:<4)H;,/D$B^6A7)Q(A<"C7)QX+*%8G(LV
M5IPSR;H! (O>B48"B5X F@8 U!.Q"HY& B:(###MHUB<B1Y6G.L2'KA6G%"X
M"@!0FDH!*1.+Y8O(@\0&7<M5@^P0.R80 '(%ZF(! "+[(M&& M&%G4),\ S
MVX/$$%W+@3[T?T ?? 6:@#?Y!*'T?XE& $"+7@#1X]'CC-&-5A:)C_8"B9?T
M CU 'Z/T?WP%FH W^02A]'__!O1_T>#1X(OPC-"-7@B)A/8"B9ST L=&"@
MQT8( "X @!0FN\%\PB+Y8[ )L='" C$8*CL FQT<& #$=A8F_W0$)O]T
M HE>" [H9P6+Y<1V"":)1 0FB5P"Q'86)HM$"":+7 :+3@J+5@B)1AB)3@Z)
M5@R)7A:+1A@+1A9T9[@" %":[P7S"(OEQ'8,)HE$"":)7 :.P";'1P@ (Q&
M!H[ )L='!@ Q'86)O]T!";_= *)7@0.Z/H$B^7$=@0FB40$)HE< L1V%B:+
M1 @FBUP&BTX&BU8$B488B4X.B58,B5X6ZY&#+O1_ HM&"HM>")H" (L2@\00
M7<M5@^P(.R80 '(%ZF(! "+[($^]'] 'WP%FH W^02A]'__!O1_T>#1X(OP
MC-"-7@Z)A/8"B9ST L1V#B:+1 @F"T0&="$F_W0$)O]T @[H: 2+Y<1V#B:+
M1 @FBUP&B480B5X.Z]+$=@XF_W0$)O]T @[H1 2+Y?\.]'^)1@:)7@2: @"+
M$H/$"%W+58/L$#LF$ !R!>IB 0 B^R!/O1_0!]\!9J -_D$H?1_B48 0(M>
M -'CT>.,T8U6%HF/]@*)E_0"/4 ?H_1_? 6:@#?Y!*'T?_\&]'_1X-'@B_",
MT(U>&HF$]@*)G/0"BT88"T86=0L>N%&!4 [HJL"+Y;$-Q'86)HL$T^@E!P!T
M ^DH 8S L0>.P":+'-/K@>,/ (/["8E& HEV '4PCL FBT0,)HM<"O]V'/]V
M&HE& HE> /]> (OE@R[T?P*)1@Z)7@R: @"+$H/$$%W+BT88BW86L06.P":+
M'-/K@>,! (E& HEV '0MCL F_W00CL F_W0._W8<_W8:#NBEP(OE@R[T?P*)
M1@Z)7@R: @"+$H/$$%W+BT88BW86L0:.P":+'-/K@>,! $MU4?]V'/]V&E!6
M#NA'^HOE_W88_W86#NCI HOE_W8<_W8:4%,.Z*W^B^504_]V&/]V%HE&"HE>
M" [H9_N+Y8,N]'\"BT8*BUX(F@( BQ*#Q!!=R_]V&/]V%@[HI@*+Y?]V'/]V
M&E!3#NAJ_HOE@R[T?P*)1@Z)7@R: @"+$H/$$%W+L0W$=A8FBP33Z"4' #T"
M '0#Z5P"H3* BQXP@(E& B:+1 2)7@ FBUP"BTX"BU8 F@@ R!-T ^F= ":+
M1 @FBW0&_W8<_W8:CL F_W0$C$88CL F_W0"B786FC</^02+Y<1V%B:+1 @F
MBWP&CL FBUT(CL F"UT&=!!05P[H2/V+Y8E&"HE>".LFQ'86)HM$"":+? :.
MP";_=02,1@*.P";_=0(.Z-D!B^6)1@J)7@C$=A8F_W0$)O]T IKV$/D$B^6#
M+O1_ HM&"HM>")H" (L2@\007<NA0H"+'D" Q'86)HM,!":+5 *:" #($W0A
MH4: BQY$@(E& HO!B5X B]J+3@*+5@":" #($W0#Z:< Q'86)HM$"":+? ;_
M=AS_=AJ)1AB)?A8.Z'Z^B^504\1V%B;_= 0F_W0"FC</^02+Y<1V%B:+1 @F
MBWP&CL FBUT(CL F"UT&=!!05P[H9_R+Y8E&"HE>".LFQ'86)HM$"":+? :.
MP";_=02,1@*.P";_=0(.Z/@ B^6)1@J)7@C$=A8F_W0$)O]T IKV$/D$B^6#
M+O1_ HM&"HM>")H" (L2@\007<NA-H"+'C2 B48"Q'86)HM$!(E> ":+7 *+
M3@*+5@":" #($W0#Z9$ )HM$"":+? :.P":+70B,1AB.P":+30:.PXOQ)O]T
M!(Q& H[#)O]T H[ )O]U!([ )O]U HE^%II;$?D$B^7$=A8FBT0()HM\!O]V
M'/]V&H[ )O]U!(Q& H[ )O]U @[H$?R+Y<1V%B;_= 0F_W0"B48*B5X(FK81
M^02+Y8,N]'\"BT8*BUX(F@( BQ*#Q!!=RQZX48%0#NCTO(OE@\007<M5@^P<
M.R80 '(%ZF(! "+[(,^T = 6:;SCY!(M&) M&(G4),\ SVX/$'%W+@3[T
M?T ?? 6:@#?Y!*'T?_\&]'_1X-'@B_",T(U>(HF$]@*)G/0"L0W$=B(FBP33
MZ"4' .GW XM&)(MV(H[ )HM<!([ )HM\ HE>"@O?B7X(=!G_#O1_CD8*)HM%
M!":+70*: @"+$H/$'%W+BT8DBW8BL0>.P":+'-/K@>,/ ('C!0"#^P6)1@*)
M=@!U&/\.]'^.P":+1 PFBUP*F@( BQ*#Q!Q=RXM&)(MV(H[ )O]T$(Q& H[
M)O]T#AZX_H%0F@4 8!*+Y1ZX3(%0#NCONXOEQ'8B)HM$!":+? *Q#8[ )HL=
MT^N!XP< = /IE@*Q!X[ )HL=T^N!XP\ @>,+ (/["XE&%HE^%'4TCL FBT4,
M)HM="HY&)";_= @F_W0&B48"B5X _UX B^7_#O1_B48:B5X8F@( BQ*#Q!Q=
MR[$'Q'84)HL$T^@E#P E#0 ]#0!T ^EX 2:+1 PFBUP*L08FBQ33ZH'B 0!*
MB48.B5X,= /IV "A0H"+'D" B48"Q'X,)HM%!(E> ":+70*+3@*+5@":" #(
M$W54Q'XB)O]U"";_=0;_=A96#NAV]8OEQ'8B)O]T"";_= ;_=@[_=@P.Z-_Y
MB^504_]V%O]V%(E&"HE>" [HF?:+Y?\.]'^+1@J+7@B: @"+$H/$'%W+Q'8B
M)O]T"";_= 8.Z,+WB^504_]V%O]V%(E&$HE>$ [H$O6+Y?]V$O]V$/]V#O]V
M# [H@/F+Y5!3_W86_W84B48*B5X(#N@Z]HOE_P[T?XM&"HM>")H" (L2@\0<
M7<NA0H"+'D" B48"Q'8,)HM$!(E> ":+7 *+3@*+5@":" #($W4IQ'XB)O]U
M"";_=0;_=@Y6#N@>^8OE_P[T?XE&&HE>&)H" (L2@\0<7<O$=B(F_W0()O]T
M!@[H%?>+Y5!3_W8._W8,#NCK^(OE_P[T?XE&&HE>&)H" (L2@\0<7<NQ!\1V
M%":+!-/H)0\ )04 /04 = /IG@ FBT0,)HM<"O]V)/]V(E!3B48.B5X,#NBC
M^(OEL0V.P":+%]/J@>(' (/Z HE&"HE>"'0BQ'84)O]T$";_= X>N!F"4)H%
M & 2B^4>N$R!4 [HA+F+Y<1V"":+1 0FBUP"Q'8B)HE$!":)7 +$?@@FBT4(
M)HM=!HY&)":)1 @FB5P&!E8.Z&/\B^7_#O1_B48:B5X8F@( BQ*#Q!Q=R\1V
M(B:+1 0FBWP"BQY"@(L.0(".P":+102)7@8FBUT"B4X$BTX&BU8$F@@ R!-T
M.(Y&)";_= @F_W0&#NC\]8OE4%/$=B(F_W0$)O]T @[HS?>+Y?\.]'^)1AJ)
M7AB: @"+$H/$'%W+Q'8B)O]T"";_= 8F_W0$)O]T @[HH/>+Y?\.]'^)1AJ)
M7AB: @"+$H/$'%W+_P[T?XM&)(M>(IH" (L2@\0<7<L] @!U ^F<_#T '4#
MZ?G[Z]I5@^P&.R80 '(%ZF(! "+[,=&! @7X$]P%]&HM&!/]&!-'@T>"+
M\,>$<H, ,>$<(, .O?@\0&7<M5@^P*.R80 '(%ZF(! "+[,=&!@ BT84
M2(E&%(7 =%>Q!(M&!M/@BUX2BW80,\FZ 0")1@"+PXE>!(O>B5X"F@8 U!..
M1@0FB@PP[8M6 /1B58&@>( \(E&$HE6"(E>$'2RL0C3ZHM&!C/0B58&,U8(
MB58&ZYZ+1@:[]P$QTO?SB\*#Q I=RU6#[ 0[)A <@7J8@$ (OLBT8,BW8*
M,\FZ 0"+WHE& HE> )H& -03CD8")HH,,.V#^6.)1@R)7@IT!S/ @\0$7<O$
M=@HFB@0PY#UD (E& '0,/6$ = <SP(/$!%W+,\FZ 0"+1@R+7@J:!@#4$XE&
M#(E>"L1V"B:*!##D/60 B48 =-H]80!TU8M&#(MV"C/)N@$ B]Z)1@*)7@":
M!@#4$XY& B:*###M@_ERB48,B5X*= <SP(/$!%W+Q'8*)HH$,.2%P'0$,]OK
M S/;0XO#@\0$7<M5@^P..R80 '(%ZF(! "+[/]V&/]V%O]V% [H@_Z+Y='@
MT>"+\(N$<H.+G'"#B48(B5X&BT8("T8&=0/I)@'$=@8FBT0$)HM< @O#=0/I
M $FBT0$L0V.P":+%]/J@>(' (E&#(E>"NG/ (M&#(MV"HE& H[ )HM$$":+
M7 Z+3A:+5A2:" #($XEV '0#Z< ,\FZ#@",P(O>F@8 U!.: @"+$H/$#EW+
MBT8,BW8*B48"CL FBT0$)HM< HM.%HM6%)H( ,@3B78 = /I@@ SR;H" (S
MB]Z:!@#4$YH" (L2@\0.7<N+1@R+=@J)1@*.P":+1 0FBUP"BTX6BU84F@@
MR!.)=@!U1S/)N@( C,"+WIH& -03F@( BQ*#Q Y=RQZX3(M0F@4 8!*+Y3/
M4)H" $D2B^7K%X/Z!G2H@_H%=0/I8O^#^@!U ^D<_^O1Q'8&)HM$"":+7 :)
M1@B)7@;IS_XSP#/;@\0.7<M5@^P*.R80 '(%ZF(! "+[!ZX:HM0_W82_W80
MF@ SQ.+Y87 =0DSP#/;@\0*7<O_=A+_=A":#@!J$XOE0%#_=A+_=A .Z.K\
MB^71X-'@B_"+A'*#BYQP@XE&"(E>!HM&" M&!G1JQ'8&)HM$!":+7 (+PW1(
M)HM$!+$-CL FBQ?3ZH'B!P!U-8[ )O]W$(Q& H[ )O]W#O]V$O]V$)H ,\3
MB^6%P'45Q'8&)HM$!":+7 *: @"+$H/$"EW+Q'8&)HM$"":+7 :)1@B)7@;K
MCC/ ,]N#Q I=RU6#[!@[)A <@7J8@$ (OL@WXB '4?'KAJBU#_=B#_=AZ:
M #/$XOEA<!U"3/ ,]N#Q!A=RX$^]'] 'WP$#NA-,Z'T?_\&]'_1X-'@B_",
MT(U>#(F$]@*)G/0"QT8. #'1@P /]V(/]V'IH. &H3B^5 4/]V(/]V'HE&
M$@[HU_N+Y?]V$HE&$)KW!_,(B^6)1A:)7A2:( ?S"(M.%HM6%([ )HE/$(Q&
M#H[ )HE7#O]V(/]V'E%2B5X,F@@ >1.+Y3/ Q'8,)HL<@.<?)HD<BT8BL0O3
MX"4 "(O+@.7W"\@FB0PSP#/;)HE$#":)7 HSP('A?_@FB0PSP(#AOR:)##/
M)HE$"":)7 8FB40$)HE< O]V(/]V'@[HQ/N+Y;$%T^ E( #$=@PFBPR X=\+
MR":)##/ @.'O)HD,N ( 4)KO!?,(B^6+3@Z+5@R.P":)3P2,1@J.P":)5P*+
M3A#1X='AB_&+E'*#BX1P@R:)5P@FB4<&C,")A'*#B9QP@_\.]'^)7@B+1@Z+
M7@R: @"+$H/$&%W+58/L&#LF$ !R!>IB 0 B^R!/O1_0!]\! [HVS&A]'__
M!O1_T>#1X(OPC-"-7@B)A/8"B9ST L=&"@ QT8( #_=B#_=AZ:#@!J$XOE
M0%#_=B#_=AZ)1A(.Z&7ZB^7_=A*)1A":]P?S"(OEN04 48E&%HE>%)KO!?,(
MB^6+3A:+5A2.P":)3P2,1@J.P":)5P+_=B#_=AY14HE>")H( 'D3B^6X @!0
MFN\%\PB+Y8M."HM6"([ )HE/!(Q&#H[ )HE7 HM.$-'AT>&+\8N4<H.+A'"#
M)HE7"":)1P:,P(F$<H.)G'"#_P[T?XE>#(M&"HM>")H" (L2@\087<M5@^P,
M.R80 '(%ZF(! "+[,1V$B;_=! F_W0.F@X :A.+Y4!0Q'82)O]T$";_= X.
MZ)#YB^71X-'@C-NY<(,#R(OQCL,FBT0"C$8*CL,FBPR)1@:)3@2)=@B+1@8+
M1@1T2(M&%(M>$HE& L1V!":+1 2)7@ FBUP"BTX"BU8 F@@ R!-T)#/)N@8
MC,"+WIH& -03)HM,"":+5 :)1@J)3@:)5@2)7@CKL(M&!@M&!'05Q'8$)HM$
M"":+7 ;$=@@FB40")HD<@\0,7<M5@^P,.R80 '(%ZF(! "+[,1V$B;_= 0F
M_W0"F@X :A.+Y4!0Q'82)O]T!";_= (.Z,3XB^71X-'@C-NY<(,#R(OQCL,F
MBT0"C$8*CL,FBPR)1@:)3@2)=@B+1@8+1@1T2(M&%(M>$HE& L1V!":+1 2)
M7@ FBUP"BTX"BU8 F@@ R!-T)#/)N@8 C,"+WIH& -03)HM,"":+5 :)1@J)
M3@:)5@2)7@CKL(M&!@M&!'05Q'8$)HM$"":+7 ;$=@@FB40")HD<@\0,7<M5
M@^P@.R80 '(%ZF(! "+[(M&)H7 ?@4]?@!^"3/ ,]N#Q"!=RX$^]'] 'WP$
M#N@P+Z'T?_\&]'_1X-'@B_",T(U>"(F$]@*)G/0"QT8* #'1@@ (M&)M'X
MB48 BT8FNP( F??[BT8 \*)1A31X-'@4(E&%IKW!_,(B^6Y!@!1B48.B5X,
MFN\%\PB+Y8M.)HE. +$$BU8 T^*!XO /CL FBP^!X0_P"\J,1@J.P":)#XM&
M#HM.#":)1P0FB4\"B482B4X0B5X(BT86,]N%P'D!2XO+B]"+1@Z+7@R:!@#4
M$XE& HM&$HE> (M>$(M. HM6 )H( ,@3<R>+1A*+=A SR;H! (O>B48"B5X
MF@8 U!..1@(FQ@0 B482B5X0ZZ?'1AH (M&&CM&%'TAN ( 4)KO!?,(B^50
M4_]V&O]V"O]V" [H4P&+Y?]&&NO7_W86_W8._W8,#NC.]HOENP( 4XE&&)KO
M!?,(B^6+3@J+5@B.P":)3P2,1AZ.P":)5P*+3AC1X='AB_&+E'*#BX1P@R:)
M5P@FB4<&C,")A'*#B9QP@_\.]'^)7AR+1@J+7@B: @"+$H/$(%W+58/L$#LF
M$ !R!>IB 0 B^RQ!,1V%B:+!-/H,N2)1@#1Z(E& HM& +L" #'2]_.+1@(#
MPM'@T>!0)O]T!";_= *)1@X.Z"?VB^71X-'@C-NY<(,#R(OQCL,FBT0"C$8,
MCL,FBPR)1@B)3@:)=@J+1@@+1@9T2(M&&(M>%HE& L1V!B:+1 2)7@ FBUP"
MBTX"BU8 F@@ R!-T)#/)N@8 C,"+WIH& -03)HM,"":+5 :)1@R)3@B)5@:)
M7@KKL(M&" M&!G05Q'8&)HM$"":+7 ;$=@HFB40")HD<@\007<M5@^P2.R80
M '(%ZF(! "+[+@$ (E&$(M&'/=N$#/;A<!Y 4N+RXO0Q'88)HM$!":+7 *:
M!@#4$XS1C58>B48.B4X*B58(B5X,BT80_TX0A<!T38M&#HMV##/)N@$ B]Z)
M1@*)7@":!@#4$XM."HM^"(E.!C/)N@$ B48.BT8*B5X,B]^)7@2:!@#4$XY&
M!B:*#8Y& B:(#(E&"HE>".NI@\027<M5@^P6.R80 '(%ZF(! "+[+@$ (E&
M$(M&(/=N$#/;A<!Y 4N+RXO0Q'8<)HM$!":+7 *:!@#4$XS1C582B48*B4X.
MB58,B5X(BT80_TX0A<!T38M&#HMV##/)N@$ B]Z)1@*)7@":!@#4$XM."HM^
M"(E.!C/)N@$ B48.BT8*B5X,B]^)7@2:!@#4$XY&!B:*#8Y& B:(#(E&"HE>
M".NIBT84BUX2F@( BQ*#Q!9=RU6#[ P[)A <@7J8@$ (OLBT86T?B)1@2+
M1A:[ @"9]_O_=@3_=A3_=A*)5@8.Z![_B^6)1@J)7@B#?@8 =!0SR;H& )H&
M -03F@( BQ*#Q Q=RS/)N@( BT8*BUX(F@8 U!.: @"+$H/$#%W+58/L"CLF
M$ !R!>IB 0 B^RX !#$=A FBQP+V":)'+$$T^LR_XE> -'KBT8 N0( ,=+W
M\0/:QT8( ")7@:+1@@[1@9]&E#_=A+_=A .Z)'^B^504P[H# "+Y?]&".O>
M@\0*7<M5@^P&.R80 '(%ZF(! "+[(M&#@M&#'4%@\0&7<NQ#,1V#":+!-/H
M)0$ 2'4%@\0&7<NX !#$=@PFBQP+V":)'+$-T^N!XP< Z=4 Q'8,)O]T!";_
M= (.Z*7_B^7$=@PF_W0()O]T!@[HE/^+Y8/$!EW+BT8.BW8,CL F_W0(C$8"
MCL F_W0&#NAT_XOE@\0&7<N+1@Z+=@R.P";_= 2,1@*.P";_= (.Z%3_B^6+
M1@Z+=@R.P";_= B,1@*.P";_= 8.Z#G_B^6+1@Z+=@RQ!X[ )HL<T^N!XP\
M@>,% (/[!8E& HEV '42CL F_W0,CL F_W0*#N@%_XOE@\0&7<O_=@[_=@P.
MZ(_^B^6#Q 9=RW8-$@XO#58-$@X2#N4-B_.#_@=S!]'F+O^D]@V#Q 9=RU6#
M[ X[)A <@7J8@$ (OLF@\ ? "X @!0#NA)!HOEQT8$ "+1@0]]P%\ ^GK
M -'@T>"+\(N$<H.+G'"#B48(B5X&BT8("T8&=0/IQ@"X !#$=@8FBQP+V":)
M'":+1 0FBW0"B48,"\:)=@IU ^F/ +$-CD8,)HL$T^@E!P!T ^E] +$,)HL$
MT^@E 0!(=' FBT0()@M$!G44)HM$!"8+1 )U"B:+1 PF"T0*=%*X !#$=@HF
MBQP+V":)'";_= @F_W0&#N@#_HOEQ'8*)O]T!";_= (.Z/+]B^6Q!\1V"B:+
M!-/H)0\ )04 /04 =1 FBT0,)HM<"E!3#NC-_8OEQ'8&)HM$"":+7 :)1@B)
M7@;I+___1@3I"O^#Q Y=RU6#[ P[)A <@7J8@$ (OLBT84"T82=0/IM@"+
M1A@+1A9U ^FK ,1V$B:+1 0FBWP"B48&"\>)?@1T#[$-CD8&)HL%T^@E!P!T
M&!ZX;HM0F@4 8!*+Y1ZXG8M0FET ? "+Y;@" %":[P7S"(OEQ'86)HM,!":+
M5 *.P":)3P2,1@J.P":)5P+$?@0FBTT$)HM5 H[ )HE/"([ )HE7!HY&!B:)
M100FB5T"CD88)HM$"":+3 ;$=A(FBU0(B488)HM$!HE&$HE.%HE6%(E>".D_
M_XM&% M&$G4-BT88"T86=06#Q Q=RQZXHXM0F@4 8!*+Y1ZXG8M0FET ? "+
MY8/$#%W+58/L!#LF$ !R!>IB 0 B^R+1A8+1A1U+/]V$O]V$ [HN?*+Y8E&
M%@O#B5X4=1:X 0!0_W82_W80#NAY\XOEB486B5X4Q'84)HM$#"8+1 IT$K$'
M)HL$T^@E#P E! ]! !U+XM&"@T! +$'T^ E@ ?$=A0FBPR!X7_X"\@FB0R+
M1@Z+7@PFB40,)HE<"H/$!%W+Q'84)O]T$";_= X>N.&+4)H% & 2B^4>N!6,
M4)I= 'P B^6#Q 1=RU6#[ @[)A <@7J8@$ (OLBT80"T8.=$?$=@XFBT0$
M)HM\ H[ )HM=!(E^!(Q&!H[ )HM] H[#)HM%"([#)HM-!L1^!":)100FB4T"
MCD80)HM$"":+7 :)1A")7@[KL8/$"%W+58/L"#LF$ !R!>IB 0 B^RX @!0
MFN\%\PB+Y8M.%(M6$H[ )HE/!(Q&!H[ )HE7 L1V#B:+3 0FBU0"CL FB4\(
MCL FB5<&CD80)HE$!":)7 *)7@2#Q A=RU6#[ 0[)A <@7J8@$ (OLQ'8*
M)HM$!":+? *.P":+70B.P":+30:.1@PFB5P$)HE, H/$!%W+58/L##LF$ !R
M!>IB 0 B^R+1A0+1A)U ^F3 ,1V$B:+1 0FBWP"B48&"\>)?@1T#[$-CD8&
M)HL%T^@E!P!T&!ZX)(Q0F@4 8!*+Y1ZX0(Q0FET ? "+Y;@" %":[P7S"(OE
MCL FQT<$ ",1@J.P";'1P( ,1V!":+3 0FBU0"CL FB4\(CL FB5<&CD8&
M)HE$!":)7 +$=A(FBT0()HM,!HE&%(E.$HE>".EB_X/$#%W+58/L$CLF$ !R
M!>IB 0 B^S'1@0 (M&!#WW 7P#Z;\ T>#1X(OPBX1R@XN<<(.)1A")7@Z+
M1A +1@YU ^F: ,1V#B:+1 0FBUP""\-T=R:+1 2Q#8[ )HL7T^J!X@< =62.
MP":+3P2,1@B.P":+5P*)3@P+RHE6"HE>!G1(L02.P":+!]/H)0$ =0XFQT<$
M FQT<" #K+,1V"B:+1 @FBUP&"\-T#":+1 B)1@R)7@KKY8M&#(M>"L1V
M!B:)1 0FB5P"Q'8.)HM$"":+7 :)1A")7@[I6___1@3I-O^#Q!)=RU6#[ P[
M)A <@7J8@$ (OL_W84_W82#NAU[XOEB48&"\.)7@1T5L1V!":+1 0F"T0"
M=$G$=@0FBT0$)HM< HE&"HE>",1V"":+1 @FBUP&"\-T#":+1 B)1@J)7@CK
MY?]V&/]V%IH]!GP B^7$=@@FB40$)HE< H/$#%W+'KA.C%":!0!@$HOE,\!0
MF@( 21*+Y8/$#%W+58/L"#LF$ !R!>IB 0 B^S_=A#_=@X.Z-WNB^6)1@8+
MPXE>!'4(BT82@\0(7<O$=@0FBT0$)HM< @O#=!DFBT0$CL FBT\$CL F"T\"
M=0<SP(/$"%W+N $ @\0(7<M5@^P2.R80 '(%ZF(! "+[(M&&.D5 Z'T?T@]
M0!^)1A!\%AZXQ(Q0F@4 8!*+Y3/ 4)H" $D2B^7'!L*, "+1A"%P'D#Z?H"
M@S["C!1\ ^GP O].$-'@T>"+\(N$]@*+O/0"CL FBUT"CL FBS6)7@H+WHEV
M"'3&L0V.1@HFBP33Z"4' #T" '5.)HM$!":+7 (+PW2H)HM$!+$-CL FBQ?3
MZH'B!P")1@Z)7@QUCX[ )HM'#"8+1PIT@Z'"C/\&PHS1X-'@B_B+1@J+WHF%
M=(R)G7*,Z6;_L0W$=@@FBP33Z"4' '0#Z53_C,"+7A!#0XL.]'\[RXE&#HE>
M (EV#'\#Z3G_@?M 'WP#Z3#_CL FBT0,)@M$"G4#Z2'_H<*,T>#1X(OPN (
M4(EV )KO!?,(B^6+=@")A'2,B9QRC*'"C-'@T>"+\(N$=(R+O'*,BUX*BTX(
MCL FB5T$CL FB4T"H<*,_P;"C-'@T>"+\(N$=(R+G'*,BTX0T>'1X8OQBXS^
M HN\_ *.P2:+50*)1@*.P2:+!8Y& B:)5P@FB4<&Z9K^QT8* #'1@@ *%<
MG$B%P*-<G'@LH5B<BS96G#/)N@$ B]Z)1@*)7@":!@#4$[$*CD8")H@,,.VC
M6)R)'E:<ZQ(>N%:<4+@* %":2@$I$XOEB\C'1A (M&$#L&PHQ\ ^FA !ZX
MZXQ0F@4 8!*+Y8M&$-'@T>"+\#/ 4#/;4_]V"O]V"+@! %#_M'2,_[1RC!ZX
M5IQ0#NA>&8OEBT80_T80T>#1X(OPBX1TC(N<<HR+#ER<287)B48*B0Y<G(E>
M"'@MH5B<BS96G#/)N@$ B]Z)1@*)7@":!@#4$[$*CD8")H@,,.VC6)R)'E:<
MZ6C_'KA6G%"X"@!0FDH!*1.+Y8O(Z5/_H5R<2(7 HUR<>"RA6)R+-E:<,\FZ
M 0"+WHE& HE> )H& -03L0J.1@(FB PP[:-8G(D>5ISK8AZX5IQ0N H 4)I*
M 2D3B^6+R.M.QT80 "+1A"+'L*,.]A^/O]&$-'@T>"+\/^T=(S_M'*,#NA+
M]8OEZ]P>N.^,4)I= 'P B^7K%ST" '3$/0 =0/I;/X] 0!U ^G6_.O;@\02
M7<M5@^P6.R80 '(%ZF(! "+[($^]'] 'WP$#NB='Z'T?XE& $"+7@#1X]'C
MC-&-5@2)C_8"B9?T L=&!@ QT8$ ]0!^C]']\! [H;!^A]'__!O1_T>#1
MX(OPC-"-7@R)A/8"B9ST L=&#@ QT8, #'1A0 (M&%#WW 7P#Z;T T>#1
MX(OPBX1R@XN<<(.)1@Z)7@R+1@X+1@QU ^F8 ,1V#":+1 0FBWP"B482"\>)
M?A!T;[$-CD82)HL%T^@E!P!U8*$^@(L>/(",P8O7F@@ R!-T3HO!B]J+#CJ
MBQ8X@)H( ,@3=#NX @!0FN\%\PB+Y8M.$HM6$([ )HE/!(Q&"H[ )HE7 HM.
M!HM6!([ )HE/"([ )HE7!HE&!HE>!(E>",1V#":+1 @FBUP&B48.B5X,Z5W_
M_T84Z3C_@R[T?P*+1@:+7@2: @"+$H/$%EW+58/L%CLF$ !R!>IB 0 B^R!
M/O1_0!]\! [H21ZA]'^)1@! BUX T>/1XXS1C58$B8_V HF7] +'1@8 ,=&
M! /4 ?H_1_? 0.Z!@>H?1__P;T?]'@T>"+\(S0C5X,B83V HF<] +'1@X
M ,=&# QT84 "+1A0]]P%\ ^FE -'@T>"+\(N$<H.+G'"#B48.B5X,BT8.
M"T8,=0/I@ #$=@PFBT0$)HM\ HE&$@O'B7X0=%>Q#8Y&$B:+!=/H)0< =4BQ
M!B:+!=/H)0$ 2'4[N ( 4)KO!?,(B^6+3A*+5A".P":)3P2,1@J.P":)5P*+
M3@:+5@2.P":)3PB.P":)5P:)1@:)7@2)7@C$=@PFBT0()HM<!HE&#HE>#.EU
M__]&%.E0_X,N]'\"BT8&BUX$F@( BQ*#Q!9=RU6#[!8[)A <@7J8@$ (OL
M@3[T?T ?? 0.Z T=H?1_B48 0(M> -'CT>.,T8U6!(F/]@*)E_0"QT8& #'
M1@0 #U 'Z/T?WP$#NC<'*'T?_\&]'_1X-'@B_",T(U>"(F$]@*)G/0"QT8*
M #'1@@ ,=&% BT84/?<!? /IB #'1A( ,=&$ T>#1X(OPBX1R@XN<
M<(.)1@Z)7@R+1@X+1@QT&X-&$ A( Q'8,)HM$"":+7 :)1@Z)7@SKW;@"
M %":[P7S"(OE_W82_W80B48*B5X(FCT&? "+Y<1V"":)1 0FB5P"BT8&BUX$
M)HE$"":)7 :,P(O>B48&B5X$_T84Z6W_@R[T?P*+1@:+7@2: @"+$H/$%EW+
M58/L%#LF$ !R!>IB 0 B^R+1AP+1AIT"(M&( M&'G4',\"#Q!1=R[$-Q'8:
M)HL$T^@E!P ]! !T ^E^ +$-Q'8>)HL$T^@E!P ]! !U;,1V&B:+1 0FBUP"
MQ'X>)HM-!":+50*:!@ $%'T(N ( @\047<O$=AHFBT0$)HM< L1^'B:+300F
MBU4"F@8 !!1^"+@! (/$%%W+Q'8:)HM$!":+7 +$?AXF.T4$=00F.UT"=0BX
M P"#Q!1=R[$-Q'8:)HL$T^@E!P!(= /I!P&Q#<1^'B:+!=/H)0< 2'0#Z?0
MBT8<B]Z,P8E& H[!)HM%!(E> ([!)HM= IH- *P3B48*B5X(B4X&B58$Q'8
M)HM$!":+7 *:#0"L$Q:-=@16F@P YQ-]"+@" (/$%%W+BT8<BUX:BTX@BW8>
MB48"CL$FBT0$B5X CL$FBUP"F@T K!.)1@J)7@B)3@:)5@3$=@ FBT0$)HM<
M IH- *P3%HUV!%::# #G$WX(N $ @\047<N+1AR+7AJ+3B"+=AZ)1@*.P2:+
M1 2)7@".P2:+7 *:#0"L$XE&"HE>"(E.!HE6!,1V ":+1 0FBUP"F@T K!,6
MC78$5IH, .<3=0BX P"#Q!1=R[$-Q'8:)HL$T^@E!P ]! !T ^G> +$-Q'8>
M)HL$T^@E!P!(= /IRP",P([ )HM$!":+7 *:#0"L$XE&!HE>!(E. HE6 ,1V
M&B:+1 0FBUP"F@8 CA,6C78 5IH, .<3?0BX @"#Q!1=RXM&((MV'H[ )HM$
M!":+7 *:#0"L$XE&!HE>!(E. HE6 ,1V&B:+1 0FBUP"F@8 CA,6C78 5IH,
M .<3?@BX 0"#Q!1=RXM&((MV'H[ )HM$!":+7 *:#0"L$XE&!HE>!(E. HE6
M ,1V&B:+1 0FBUP"F@8 CA,6C78 5IH, .<3=0BX P"#Q!1=R[$-Q'8:)HL$
MT^@E!P!(= /IX0"Q#<1^'B:+!=/H)0< /00 = /IS "+1AR.P":+1 0FBUP"
MF@T K!.)1@:)7@2)3@*)5@".1B FBT4$)HM= IH& (X3%HUV %::# #G$WX(
MN ( @\047<N+1AR+=AJ.P":+1 0FBUP"F@T K!.)1@:)7@2)3@*)5@#$=AXF
MBT0$)HM< IH& (X3%HUV %::# #G$WT(N $ @\047<N+1AR+=AJ.P":+1 0F
MBUP"F@T K!.)1@:)7@2)3@*)5@#$=AXFBT0$)HM< IH& (X3%HUV %::# #G
M$W4(N , @\047<LSP(/$%%W+58/L!#LF$ !R!>IB 0 B^R+1@R+7@H+PW1E
ML0V.1@PFBP?3Z"4' #T$ '4CC,".P":+1P0FBU\"F@0 D!/$=@XFB40")HD<
MN $ @\0$7<NQ#<1V"B:+!-/H)0< 2'4@C,".P":+7 2.P":+3 +$?@XFB5T"
M)HD-N $ @\0$7<LSP(/$!%W+58/L!#LF$ !R!>IB 0 B^R+1@R+7@H+PW1E
ML0V.1@PFBP?3Z"4' #T$ '4@C,".P":+3P2.P":+5P+$=@XFB4P")HD4N $
M@\0$7<NQ#<1V"B:+!-/H)0< 2'4CC,".P":+1 0FBUP"F@T DQ/$?@XFB44"
M)HD=N $ @\0$7<LSP(/$!%W+58/L!#LF$ !R!>IB 0 B^R+1@R+7@H+PW1H
ML0V.1@PFBP?3Z"4' '4@C,".P":+3Q".P":+5P[$=@XFB4P")HD4N $ @\0$
M7<NQ#<1V"B:+!-/H)0< /04 =2",P([ )HM<!([ )HM, L1^#B:)70(FB0VX
M 0"#Q 1=RS/ @\0$7<N,V+MJB\1V#B:)1 (FB1RX 0"#Q 1=RU6#["@[)A
M<@7J8@$ (OL,\ SV[F /S/2B48:B486Q'8N)HH$,.0]+0")3B*)3AZ)5B")
M5AR)7AB)7A1U'L=&'H"_QT8< SR;H! (S B]Z:!@#4$XE&,(E>+L1V+B:*
M!##D/2L =1['1AZ /\=&' ,\FZ 0",P(O>F@8 U!.)1C")7B[$=BXFB@0P
MY(7 B48 =&T]+@!T:(M&%HM>%)H- *P3'KZUCU::" R$HE&!HE>!(E. HE6
M (M&,(MV+C/)N@$ B]Z)1@J)7@B:!@#4$XY&"B:*###M@^DPB48PB\&)7BZ:
M P"1$Q:-=@!6F@0 LA.:# "F$XE&%HE>%.N$Q'8N)HH$,.0]+@!T ^DN 3/)
MN@$ C,"+WIH& -03B48PB5XNQ'8N)HH$,.2%P'4#Z:< C, SR;H! (O>B48"
MB5X F@8 U!..1@(FB@PP[8/I,(E&,(O!B5XNF@X DA.)1@*+1B*)7@"+7B":
M#0"L$QZ^M8]6F@@ ,A*:# "F$XE&(HE>()H- *P3B48*B5X(B4X&B58$BT8"
MBUX F@T K!,6C78$5IH' 'P3B48&B5X$B4X"B58 BT8:BUX8F@T K!,6C78
M5IH$ +(3F@P IA.)1AJ)7ACI2O^+1AJ+7AB:#0"L$XE&!HE>!(E. HE6 (M&
M%HM>%)H- *P3%HUV %::! "R$XE&!HE>!(E. HE6 (M&'HM>')H- *P3%HUV
M %::" R$IH, *83Q'8R)HE$ B:)'+@! (/$*%W+BT86BUX4F@T K!.)1@:)
M7@2)3@*)5@"+1AZ+7AR:#0"L$Q:-=@!6F@@ ,A*:# "F$XE&%HE>%)H- ),3
MB48FB5XDF@0 D!.)1@*+1A:)7@"+7A2:#0"L$XE&"HE>"(E.!HE6!(M& HM>
M )H- *P3%HUV!%::# #G$W48BT8FBUXDQ'8V)HE$ B:)'+@$ (/$*%W+BT86
MBUX4Q'8R)HE$ B:)'+@! (/$*%W+58/L%#LF$ !R!>IB 0 B^R#/D""!W0#
MZ:0 @3[T?T ?? 0.Z(P3H?1__P;T?]'@T>"+\(S0C5X(B83V HF<] +'1@H
M ,=&" %HU&$% 6C48,4!ZX0H)0#NBU_(OE2'4EN $ 4)KO!?,(B^6+3@Z+
M5@R.P":)3P2.P":)5P*)1@J)7@CK([@$ %":[P7S"(OEBTX2BU80CL FB4\$
MCL FB5<"B48*B5X(_P[T?XM&"HM>")H" (L2@\047<NA0((]!@!T!3T( '5M
M@3[T?T ?? 0.Z-L2H?1__P;T?]'@T>"+\(S0C5X(B83V HF<] +'1@H ,=&
M" 'KA"@E .Z$7>B^6)1@H+PXE>"'44,\!0'KA"@E .Z ??B^6)1@J)7@C_
M#O1_BT8*BUX(F@( BQ*#Q!1=RX,^0((*=14>N$*"4 [H<N"+Y9H" (L2@\04
M7<LSP#/;@\047<M5B^S_=@S_=@H>N V-4)H% & 2B^6X 0!0#N@V[XOEQP;T
M?P FK<Z? "X 0!0'KA&@U":#P ]"HOE7<M5@^P2.R80 '(%ZF(! "+[($^
M]'] 'WP$#NC\$:'T?XE& $"+7@#1X]'CC-&-5@:)C_8"B9?T L=&" QT8&
M ]0!^C]']\! [HRQ&A]'^)1@! BUX T>/1XXS1C58*B8_V HF7] +'1@P
M ,=&"@ /4 ?H_1_? 0.Z)H1H?1__P;T?]'@T>"+\(S0C5X.B83V HF<] +'
M1A ,=&#@ H4""/08 = H]!P!T!3T* '5GN ( 4)KO!?,(B^6)1@B)7@8.
MZ)S]Q'8&)HE$!":)7 (>N$*"4/]V&O]V&)K- 20 B^6+7AY#4_]V'/]V&O]V
M&*- @@[H!/^+Y<1V!B:)1 @FB5P&@R[T?P.,P(O>F@( BQ*#Q!)=RX,^0((!
M=72X @!0FN\%\PB+Y8M.'$%1_W8:_W88B48(B5X&#NAF HOEQ'8&)HE$!":)
M7 (>N$*"4/]V&O]V&)K- 20 B^6+7AY#4_]V'/]V&O]V&*- @@[HB?Z+Y<1V
M!B:)1 @FB5P&@R[T?P.,P(O>F@( BQ*#Q!)=RX,^0((%= /IV0 >N$*"4/]V
M&O]V&)K- 20 B^4]!@"C0()T"CT' '0%/0H =3^#?AX!?CD.Z)?\'KE"@E'_
M=AK_=AB)1@B)7@::S0$D (OE/0( HT""=7J#+O1_ XM&"(M>!IH" (L2@\02
M7<N#/D"" 75>'KA"@E#_=AK_=AB:S0$D (OEBUX>0U/_=AS_=AK_=ABC0((.
MZ,[]B^4>N4*"4?]V&O]V&(E&"(E>!IK- 20 B^4] @"C0()U%8,N]'\#BT8(
MBUX&F@( BQ*#Q!)=RQZX((U0_W8>_W8<#NA,_8OE@SY @@)U#H,N]'\#,\ S
MVX/$$EW+@SY @@AT ^GZ +@" %":[P7S"(OEN0( 48E&"(E>!IKO!?,(B^7$
M=@8FB40$)HE< HE&#(E>"@[HG/O$=@HFB40$)HE< K@" %":[P7S"(OEQ'8*
M)HE$"":)7 8>N4*"4?]V&O]V&(E&$(E>#IK- 20 B^4] 0"C0()T!3T( '4>petera@utcsri.UUCP (Smith) (04/27/86)
Ok, Here are the instructions for getting PC-LISP off the net
and onto your MS-DOS machine. The entire package consists of 13 parts.
These are:
#1 - The instructions (this article)
#2..5 - PC-LISP.EXE uuencoded
#6..7 - PC-LISP.DOC ascii
#8..13 - individual example .L load files.
Please follow these steps carefully otherwise you are guaranteed
that the executable will not work.
1) Save articles 2..5 as uuu1,uuu2,uuu3 and uuu4 respectively.
2) Save articles 6 and 7 as doc1 and doc2 respectively.
3) Save the remaining articles as pc-lisp.l, turtle.l, dragon.l,
queens.l, hanoi.l and match.l respectively.
4) vi uuu1 uuu2 uuu3 uuu4 doc1 doc2 and remove everything
at the top of the file up to & including the ---- CUT HERE ---- line
being careful not to remove anything else! Check the bottom of files
uu1,uu2 and uu3 to make sure there are NO blank lines past the last
data ie M.....stuff..... line.
5) cat uuu1 uuu2 uuu3 uuu4 > uuu
6) cat doc1 doc2 > pc-lisp.doc
8) rm uuu1 uuu2 uuu3 uuu4 doc1 doc2
9) If you are doing the uudecoding on the host machine then do
uudecode uuu
(you should now have a file called pc-lisp.exe of size 139086 bytes)
download the file pc-lisp.exe to your ms-dos machine using
a B I N A R Y mode transfer protocol.
otherwise
download the file uuu to your ms-dos machine using a T E X T
mode file transfer protocol.
Use your BASIC or C uudecode program to uudecode the file. You
should then have pc-lisp.exe of size approximatly 139086, but
it may be up to 8K larger depending on the cluster size of your
hard/floppy disk.
10) Download the file pc-lisp.doc and all other .l files to your
ms-dos machine using a T E X T mode file protocol.
11) Place pc-lisp.exe and all the .L files in the same directory of
your ms-dos machine. Type pc-lisp at the dos prompt and wait for
the messages :
PC-LISP (V2.10) ShareWare, April 1986 by Peter Ashwood-Smith
PC-LISP up with xxxyyy bytes free, xx% Alpha, yy% Heap.
--- [pc-lisp.l loaded] ---
-->
These may take a little while because the program is large and takes
a couple of seconds to load, then depending on how much memory you
have initialization takes a few more seconds, finally loading the
file pc-lisp.l takes a few seconds also. Be patient.
If PC-LISP.EXE does not execute then please reread the above instructions
carefully. Did you put together the uuu1 ... uuu4 files in the correct order?
Did you cut out the top lines from uuu1....uuu4 but no extra data lines? Are
there any extra blank or other lines at the end of any of these files? DID
YOU USE THE CORRECT TRANSFER PROTOCOL FROM THE HOST TO YOUR PC? YOU MUST USE
BINARY MODE FOR PC-LISP.EXE OR TEXT MODE FOR UUU. Is the PC-LISP.EXE file
of size 139086 (on the vax, ms-dos size will vary by up to 8K due to cluster
sizes ie minimum file size). Do you have enough memory on you ms-dos machine
to run PC-LISP? you need 256K or more. What version of DOS are you running?
I have only tried it on MS-DOS 2.0 and later so 1.0 may not work, I do not
know for sure. If all else fails then you can send me a blank diskette and
I will put the PC-LISP package on it for you. This should not be necessary
as I have made sure that all files are less than 64K and have uploaded and
downloaded the binary myself to make sure all is ok. Please do not send
me mail asking me to email the package to you, it is much too much trouble
to mail this thing to 500 people who did not get it, rather send me mail
saying that your site did not receive it intact or whatever and when
there is enough interest I will repost the bad parts etc.
Good luck and let me know if you have
any comments, good or bad.
Peter Ashwood-Smith,
University of Toronto.farber@huey.udel.EDU (Dave Farber) (05/05/86)
A large majority of the latest distribution of pc-lisp did not make my site. any chance of a retransmission or a pc diskette (I will send back diskette and postage. Dave ============================================================= David J. Farber Science Advisor for Networking and Distributed Systems National Science Foundation Directorate for Computer and Information Science and Engineering (CISE) Washington, D.C. 20550 Washington: 202-357-9776; Delaware: 302-451-1163 Arpanet/CSNet: farber@huey.udel.edu Dialcom: D.Farber =============================================================
cosell@bbn-prophet.arpa (Bernie Cosell) (05/05/86)
I've snooped at a few info-micro drops (via very different feed paths) and they all have 6-13, but no sign anywhere of 1 through 5. Maybe just the first 5 ought to be reposted? /Bernie Bernie Cosell Internet: cosell@prophet.bbn.com Bolt, Beranek & Newman, Inc USENET: bbncc5!bpc Cambridge, MA 02238 Telco: (617) 497-3503