From d034f64dd254aa37dbf30f8d80d9150f505eb74b Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 24 May 2006 19:29:58 +0000 Subject: [PATCH] 301.16 svn: r3040 --- collects/compiler/distribute.ss | 424 +++ collects/compiler/doc.txt | 8 +- collects/compiler/embed-unit.ss | 264 +- collects/compiler/private/collects-path.ss | 58 + collects/compiler/start.ss | 24 +- collects/help/bug-report.ss | 2 +- collects/mysterx/installer.ss | 3 +- collects/net/sendurl.ss | 2 +- collects/setup/configtab.ss | 1 + collects/setup/dirs.ss | 16 +- collects/setup/doc.txt | 17 +- collects/tests/mzscheme/basic.ss | 5 +- doc/release-notes/mzscheme/HISTORY | 6 + src/configure | 14 +- src/copytree.ss | 4 +- src/mred/gc2/Makefile.in | 1 + src/mzscheme/Makefile.in | 3 +- src/mzscheme/cmdline.inc | 56 +- src/mzscheme/configure.ac | 14 +- src/mzscheme/dynsrc/Makefile.in | 4 + src/mzscheme/dynsrc/ustart.c | 106 +- src/mzscheme/include/scheme.h | 7 +- src/mzscheme/src/cstartup.inc | 3008 ++++++++++---------- src/mzscheme/src/file.c | 17 + src/mzscheme/src/portfun.c | 4 + src/mzscheme/src/schminc.h | 2 +- src/mzscheme/src/schvers.h | 4 +- src/mzscheme/src/startup.inc | 11 +- src/mzscheme/src/startup.ss | 53 +- src/mzscheme/src/string.c | 39 +- src/wxwindow/src/msw/wx_win.cxx | 2 +- 31 files changed, 2421 insertions(+), 1758 deletions(-) create mode 100644 collects/compiler/distribute.ss create mode 100644 collects/compiler/private/collects-path.ss diff --git a/collects/compiler/distribute.ss b/collects/compiler/distribute.ss new file mode 100644 index 0000000000..74dd6d8d53 --- /dev/null +++ b/collects/compiler/distribute.ss @@ -0,0 +1,424 @@ + +(module distribute mzscheme + (require (lib "kw.ss") + (lib "file.ss") + (lib "dirs.ss" "setup") + (lib "list.ss") + (prefix config: (lib "config.ss" "config")) + (lib "filename-version.ss" "dynext") + "private/macfw.ss" + "private/windlldir.ss" + "private/collects-path.ss") + + (provide assemble-distribution) + + (define/kw (assemble-distribution dest-dir + binaries + #:key + [collects-path #f] ; relative to dest-dir + [copy-collects null]) + (let* ([types (map get-binary-type binaries)] + [_ (unless (directory-exists? dest-dir) + (make-directory dest-dir))] + [sub-dirs (map (lambda (b type) + (case (system-type) + [(windows) #f] + [(unix) "bin"] + [(macosx) (if (memq type '(mred mred3m)) + #f + "bin")])) + binaries + types)] + ;; Copy binaries into place: + [binaries + (map (lambda (b sub-dir type) + (let ([dest-dir (if sub-dir + (build-path dest-dir sub-dir) + dest-dir)]) + (unless (directory-exists? dest-dir) + (make-directory dest-dir)) + (let-values ([(base name dir?) (split-path b)]) + (let ([dest (build-path dest-dir name)]) + (if (and (memq type '(mred mred3m)) + (eq? 'macosx (system-type))) + (begin + (copy-app b dest) + (app-to-file dest)) + (begin + (copy-file* b dest) + dest)))))) + binaries + sub-dirs + types)] + [single-mac-app? (and (eq? 'macosx (system-type)) + (= 1 (length types)) + (memq (car types) '(mred mred3m)))]) + ;; Create directories for libs and collects: + (let-values ([(lib-dir collects-dir relative-collects-dir) + (if single-mac-app? + ;; Special case: single Mac OS X MrEd app: + (let-values ([(base name dir?) + (split-path (car binaries))]) + (values + (simplify-path (build-path base 'up "Frameworks")) + (if collects-path + (build-path dest-dir collects-path) + (simplify-path (build-path base + 'up + "Resources" + "collects"))) + (if collects-path + (build-path 'up 'up 'up collects-path) + (build-path 'up "Resources" "collects")))) + ;; General case: + (let ([relative-collects-dir + (or collects-path + (build-path "lib" + "plt" + (let-values ([(base name dir?) + (split-path (car binaries))]) + (path-replace-suffix name #"")) + "collects"))]) + (values (build-path dest-dir "lib") + (build-path dest-dir relative-collects-dir) + relative-collects-dir)))]) + (make-directory* lib-dir) + (make-directory* collects-dir) + ;; Copy libs into place + (install-libs lib-dir types) + ;; Copy collections into place + (for-each (lambda (dir) + (for-each (lambda (f) + (copy-directory/files* + (build-path dir f) + (build-path collects-dir f))) + (directory-list dir))) + copy-collects) + ;; Patch binaries to find libs + (patch-binaries binaries types) + ;; Patch binaries to find collects + (for-each (lambda (b type sub-dir) + (set-collects-path + b + (collects-path->bytes + (cond + [sub-dir + (build-path 'up relative-collects-dir)] + [(and (eq? 'macosx (system-type)) + (memq type '(mred mredx)) + (not single-mac-app?)) + (build-path 'up 'up 'up relative-collects-dir)] + [else + relative-collects-dir])))) + binaries types sub-dirs)) + ;; Done! + (void))) + + (define (install-libs lib-dir types) + (case (system-type) + [(windows) + (let ([copy-dll (lambda (name) + (copy-file* (search-dll (find-dll-dir) name) + (build-path lib-dir name)))] + [versionize (lambda (template) + (let ([f (search-dll (find-dll-dir) + (format template filename-version-part))]) + (if (file-exists? f) + (format template filename-version-part) + (format template "xxxxxxx"))))]) + (map copy-dll + (list + "iconv.dll" + "UnicoWS.dll")) + (when (or (memq 'mzscheme types) + (memq 'mred types)) + (map copy-dll + (list + (versionize "libmzsch~a.dll") + (versionize "libmzgc~a.dll")))) + (when (or (memq 'mzscheme3m types) + (memq 'mred3m types)) + (map copy-dll + (list + (versionize "libmzsch3m~a.dll")))) + (when (memq 'mred types) + (map copy-dll + (list + (versionize "libmred~a.dll")))) + (when (memq 'mred3m types) + (map copy-dll + (list + (versionize "libmred3m~a.dll")))))] + [(macosx) + (when (memq 'mzscheme types) + (copy-framework "MzScheme" #f lib-dir)) + (when (memq 'mzscheme3m types) + (copy-framework "MzScheme" #t lib-dir)) + (when (memq 'mred types) + (copy-framework "MrEd" #f lib-dir)) + (when (memq 'mred3m types) + (copy-framework "MrEd" #t lib-dir))] + [(unix) + (let ([lib-plt-dir (build-path lib-dir "plt")]) + (unless (directory-exists? lib-plt-dir) + (make-directory lib-plt-dir)) + (let ([copy-bin + (lambda (name) + (copy-file* (build-path (find-console-bin-dir) name) + (build-path lib-plt-dir + (format "~a-~a" name (version)))))]) + (when (memq 'mzscheme types) + (copy-bin "mzscheme")) + (when (memq 'mzscheme3m types) + (copy-bin "mzscheme3m")) + (when (memq 'mred types) + (copy-bin "mred")) + (when (memq 'mred3m types) + (copy-bin "mred3m"))) + (when (shared-libraries?) + (when (or (memq 'mzscheme types) + (memq 'mred types)) + (copy-shared-lib "mzscheme" lib-dir) + (copy-shared-lib "mzgc" lib-dir)) + (when (or (memq 'mzscheme3m types) + (memq 'mred3m types)) + (copy-shared-lib "mzscheme3m" lib-dir)) + (when (memq 'mred types) + (copy-shared-lib "mred" lib-dir)) + (when (memq 'mred types) + (copy-shared-lib "mred3m" lib-dir))))])) + + (define (search-dll dll-dir dll) + (if dll-dir + (build-path dll-dir dll) + (let* ([exe-dir + (let ([exec (path->complete-path + (find-executable-path (find-system-path 'exec-file)) + (find-system-path 'orig-dir))]) + (let-values ([(base name dir?) (split-path exec)]) + base))] + [paths (cons + exe-dir + (path-list-string->path-list + (or (getenv "PATH") "") + (list (find-system-path 'sys-dir))))]) + (or (ormap (lambda (p) + (let ([p (build-path p dll)]) + (and (file-exists? p) + p))) + paths) + ;; Can't find it, so just use executable's dir: + (build-path exe-dir dll))))) + + (define (copy-framework name 3m? lib-dir) + (let* ([fw-name (format "PLT_~a.framework" name)] + [sub-dir (build-path fw-name "Versions" + (if 3m? + (format "~a_3m" (version)) + (version)))]) + (make-directory* (build-path lib-dir sub-dir)) + (let* ([fw-name (build-path sub-dir (format "PLT_~a" name))] + [dll-dir (find-framework fw-name)]) + (copy-file* (build-path dll-dir fw-name) + (build-path lib-dir fw-name)) + (let ([rsrc-src (build-path dll-dir sub-dir "Resources")]) + (when (directory-exists? rsrc-src) + (copy-directory/files* + rsrc-src + (build-path lib-dir sub-dir "Resources"))))))) + + (define (find-framework fw-name) + (let ([dll-dir (find-dll-dir)]) + (or dll-dir + (ormap (lambda (p) + (let ([f (build-path p fw-name)]) + (and (file-exists? f) + p))) + '("/System/Library/Frameworks" + "/Library/Frameworks" + "~/Library/Frameworks")) + ;; Can't find it, so just use relative path: + (build-path 'same)))) + + ;; cache: + (define avail-lib-files #f) + + (define (copy-shared-lib name lib-dir) + (unless avail-lib-files + (set! avail-lib-files (directory-list (find-dll-dir)))) + (let* ([rx (byte-regexp (string->bytes/latin-1 + (format "lib~a-~a.*[.](?:so|dylib)$" name (version))))] + [files (filter (lambda (f) + (regexp-match rx (path->bytes f))) + avail-lib-files)]) + (when (null? files) + (error 'copy-shared-lib "cannot find shared library for ~a" + name)) + (unless (null? (cdr files)) + (error 'copy-shared-lib + "found multiple shared-library candidates for ~a: ~e" + name + files)) + (copy-file* (build-path (find-dll-dir) (car files)) + (build-path lib-dir (car files))))) + + (define (patch-binaries binaries types) + (case (system-type) + [(windows) + (for-each (lambda (b) + (update-dll-dir b "lib")) + binaries)] + [(macosx) + (if (and (= 1 (length types)) + (memq (car types) '(mred mred3m))) + ;; Special case for single MrEd app: + (update-framework-path "@executable_path/../Frameworks/" + (car binaries) + #t) + ;; General case: + (for-each (lambda (b type) + (update-framework-path (if (memq type '(mzscheme mzscheme3m)) + "@executable_path/../lib/" + "@executable_path/../../../lib/" ) + b + (memq type '(mred mred3m)))) + binaries types))] + [(unix) + (for-each (lambda (b type) + (patch-stub-exe-paths b + (build-path + "../lib/plt" + (format "~a-~a" type (version))) + (and (shared-libraries?) + "../lib"))) + binaries + types)])) + + (define (patch-stub-exe-paths b exe shared-lib-dir) + (let-values ([(config-pos start end prog-len dll-len rest) + (with-input-from-file b + (lambda () + (let* ([i (current-input-port)] + [m (regexp-match-positions #rx#"cOnFiG:" i)]) + (unless m + (error 'patch-stub-exe-paths + "cannot find config info")) + (read-byte i) + (read-one-int i) ; start of prog data + (let ([start (read-one-int i)] + [end (read-one-int i)]) + (file-position i start) + (let ([prog-len (next-bytes-length i)] + [dll-len (next-bytes-length i)]) + (values (+ (cdar m) 1) + start + end + prog-len + dll-len + (read-bytes (- (- end start) prog-len dll-len))))))))]) + (let ([exe-bytes (path->bytes (to-path exe))] + [shared-lib-bytes (if shared-lib-dir + (path->bytes (to-path shared-lib-dir)) + #"")]) + (let ([delta (- (+ prog-len dll-len) + (bytes-length exe-bytes) + (bytes-length shared-lib-bytes))]) + (with-output-to-file b + (lambda () + (let ([o (current-output-port)]) + (file-position o (+ config-pos 8)) + (write-one-int (+ end delta) o) + (flush-output o) + (file-position o start) + (write-bytes exe-bytes o) + (write-bytes #"\0" o) + (write-bytes shared-lib-bytes o) + (write-bytes #"\0" o) + (write-bytes rest o) + (flush-output o))) + 'update))))) + + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; Utilities + + (define (shared-libraries?) + (eq? 'shared (system-type 'link))) + + (define (to-path s) + (if (string? s) + (string->path s) + s)) + + (define (get-binary-type b) + ;; Since this is called first, we also check that the executable + ;; is a stub binary for Unix. + (with-input-from-file (app-to-file b) + (lambda () + (let ([m (regexp-match #rx#"bINARy tYPe:(e?)(.)(.)(.)" (current-input-port))]) + (if m + (begin + (when (eq? 'unix (system-type)) + (unless (equal? (cadr m) #"e") + (error 'assemble-distribution + "file is an original PLT executable, not a stub binary: ~e" + b))) + (let ([3m? (equal? (list-ref m 4) #"3")]) + (if (equal? (caddr m) #"r") + (if 3m? + 'mred3m + 'mred) + (if 3m? + 'mzscheme3m + 'mzscheme)))) + (error 'assemble-distribution + "file is not a PLT executable: ~e" + b)))))) + + (define (write-one-int n out) + (write-bytes (integer->integer-bytes n 4 #t #f) out)) + + (define (read-one-int in) + (integer-bytes->integer (read-bytes 4 in) #t #f)) + + (define (next-bytes-length in) + (let ([m (regexp-match-positions #rx#"\0" in)]) + (cdar m))) + + (define (copy-file* src dest) + (when (or (file-exists? dest) + (link-exists? dest)) + (delete-file dest)) + (copy-file src dest) + (let ([t (file-or-directory-modify-seconds src)]) + (file-or-directory-modify-seconds dest t))) + + (define (copy-directory/files* src dest) + (cond + [(directory-exists? src) + (unless (directory-exists? dest) + (make-directory dest)) + (for-each (lambda (f) + (copy-directory/files* (build-path src f) + (build-path dest f))) + (directory-list src))] + [else + (copy-file* src dest)])) + + (define (copy-app src dest) + (when (or (file-exists? dest) + (directory-exists? dest) + (link-exists? dest)) + (delete-directory/files dest)) + (copy-directory/files src dest)) + + (define (app-to-file b) + (if (and (eq? 'macosx (system-type)) + (regexp-match #rx#"[.][aA][pP][pP]$" + (path->bytes (if (string? b) + (string->path b) + b)))) + (let ([no-app + (let-values ([(base name dir?) (split-path b)]) + (path-replace-suffix name #""))]) + (build-path b "Contents" "MacOS" no-app)) + b))) diff --git a/collects/compiler/doc.txt b/collects/compiler/doc.txt index 3eb1225fd2..32e0754f7a 100644 --- a/collects/compiler/doc.txt +++ b/collects/compiler/doc.txt @@ -407,7 +407,8 @@ _embedr-sig.ss_ library provides the signature, _compiler:embed^_. [#:verbose? verbose?]) - Copies the MzScheme (if `mred?' is #f) or MrEd (otherwise) binary, embedding code into the copied executable to be loaded on startup. - The source executable is located relative to the "mzlib" collection. + (Under Unix, the binary is actually a wrapper executable that execs + the original; see also 'original-exe? below.) See the mzc documentation for a simpler interface that is well-suited to programs defined with `module'. @@ -531,6 +532,11 @@ _embedr-sig.ss_ library provides the signature, _compiler:embed^_. found relative to the launcher instead of the original executable + _'original-exe?_ (Unix) - a boolean; #t means that the embedding + uses the original MzScheme or MrEd executable, instead + of a wrapper binary that execs the original; the default is + #f + See also `build-aux-from-path' in the "launcher" collection. The default `aux' is `null'. diff --git a/collects/compiler/embed-unit.ss b/collects/compiler/embed-unit.ss index 3a216477f8..ec161e036c 100644 --- a/collects/compiler/embed-unit.ss +++ b/collects/compiler/embed-unit.ss @@ -14,7 +14,8 @@ "private/winsubsys.ss" "private/macfw.ss" "private/mach-o.ss" - "private/windlldir.ss") + "private/windlldir.ss" + "private/collects-path.ss") (provide compiler:embed@) @@ -496,11 +497,6 @@ literal-files) (when literal-expression (write literal-expression)))) - - (define (write-lib out libpos lib-path-bytes) - (file-position out libpos) - (write-bytes lib-path-bytes out) - (write-byte 0 out)) ;; The old interface: (define make-embedding-executable @@ -539,58 +535,48 @@ (let ([m (assq 'forget-exe? aux)]) (or (not m) (not (cdr m)))))) + (define unix-starter? (and (eq? (system-type) 'unix) + (let ([m (assq 'original-exe? aux)]) + (or (not m) + (not (cdr m)))))) (define long-cmdline? (or (eq? (system-type) 'windows) - (and mred? (eq? 'macosx (system-type))))) + (and mred? (eq? 'macosx (system-type))) + unix-starter?)) (define relative? (let ([m (assq 'relative? aux)]) (and m (cdr m)))) - (define collects-path-bytes (and collects-path - (cond - [(path? collects-path) (path->bytes collects-path)] - [(string? collects-path) (string->bytes/locale collects-path)] - [(and (list? collects-path) - (pair? collects-path)) - (let ([l (map (lambda (p) - (cond - [(path? p) (path->bytes p)] - [(string? p) (string->bytes/locale p)] - [else #""])) - collects-path)]) - (let loop ([l l]) - (if (null? (cdr l)) - (car l) - (bytes-append (car l) #"\0" (loop (cdr l))))))] - [else #""]))) + (define collects-path-bytes (collects-path->bytes collects-path)) (unless (or long-cmdline? ((apply + (length cmdline) (map (lambda (s) (bytes-length (string->bytes/utf-8 s))) cmdline)) . < . 50)) (error 'create-embedding-executable "command line too long")) - (when collects-path - (unless (or (path-string? collects-path) - (and (list? collects-path) - (pair? collects-path) - (andmap path-string? collects-path))) - (raise-type-error 'create-embedding-executable "path, string, non-empty list of paths and strings, or #f" - collects-path)) - (unless ((bytes-length collects-path-bytes) . <= . 1024) - (error 'create-embedding-executable "collects path list is too long"))) + (check-collects-path 'create-embedding-executable collects-path collects-path-bytes) (let ([exe (find-exe mred? variant)]) (when verbose? (fprintf (current-error-port) "Copying to ~s~n" dest)) (let-values ([(dest-exe orig-exe osx?) - (if (and mred? (eq? 'macosx (system-type))) - (values (prepare-macosx-mred exe dest aux variant) #f #t) - (begin - (when (or (file-exists? dest) - (directory-exists? dest) - (link-exists? dest)) - ;; Delete-file isn't enough if the target - ;; is supposed to be a directory. But - ;; currently, that happens only for MrEd - ;; on Mac OS X, which is handles above. - (delete-file dest)) - (copy-file exe dest) - (values dest exe #f)))]) + (cond + [(and mred? (eq? 'macosx (system-type))) + (values (prepare-macosx-mred exe dest aux variant) #f #t)] + [unix-starter? + (let ([starter (build-path (find-lib-dir) "starter")]) + (when (or (file-exists? dest) + (directory-exists? dest) + (link-exists? dest)) + (delete-file dest)) + (copy-file starter dest) + (values dest starter #f))] + [else + (when (or (file-exists? dest) + (directory-exists? dest) + (link-exists? dest)) + ;; Delete-file isn't enough if the target + ;; is supposed to be a directory. But + ;; currently, that happens only for MrEd + ;; on Mac OS X, which is handles above. + (delete-file dest)) + (copy-file exe dest) + (values dest exe #f)])]) (with-handlers ([void (lambda (x) (if osx? (when (directory-exists? dest) @@ -598,7 +584,8 @@ (when (file-exists? dest) (delete-file dest))) (raise x))]) - (when (eq? 'macosx (system-type)) + (when (and (eq? 'macosx (system-type)) + (not unix-starter?)) (let ([m (assq 'framework-root aux)]) (if m (when (cdr m) @@ -632,7 +619,8 @@ (lambda () (write-module-bundle verbose? modules literal-files literal-expression))]) (let-values ([(start end) - (if (eq? (system-type) 'macosx) + (if (and (eq? (system-type) 'macosx) + (not unix-starter?)) ;; For Mach-O, we know how to add a proper segment (let ([s (open-output-bytes)]) (parameterize ([current-output-port s]) @@ -661,76 +649,120 @@ ;; No argv[0]: null) (list "-k" start-s end-s)) - cmdline)] - [libpos (and collects-path - (let ([tag #"coLLECTs dIRECTORy:"]) - (+ (with-input-from-file dest-exe + cmdline)]) + (when collects-path-bytes + (when verbose? + (fprintf (current-error-port) "Setting collection path~n")) + (set-collects-path dest-exe collects-path-bytes)) + (cond + [osx? + (finish-osx-mred dest full-cmdline exe keep-exe? relative?)] + [unix-starter? + (let ([numpos (with-input-from-file dest-exe + (lambda () (find-cmdline + "configuration" + #"cOnFiG:")))] + [typepos (and mred? + (with-input-from-file dest-exe (lambda () (find-cmdline - "collects path" - tag))) - (bytes-length tag))))]) - (if osx? - (begin - (finish-osx-mred dest full-cmdline exe keep-exe? relative?) - (when libpos - (call-with-output-file* dest-exe - (lambda (out) - (write-lib out libpos collects-path-bytes)) - 'update))) - (let ([cmdpos (with-input-from-file dest-exe - (lambda () (find-cmdline - "cmdline" - #"\\[Replace me for EXE hack")))] - [anotherpos (and mred? - (eq? 'windows (system-type)) - (let ([m (assq 'single-instance? aux)]) - (and m (not (cdr m)))) - (with-input-from-file dest-exe - (lambda () (find-cmdline - "instance-check" - #"yes, please check for another"))))] - [out (open-output-file dest-exe 'update)]) + "exeuctable type" + #"bINARy tYPe:"))))] + [cmdline + (apply bytes-append + (map (lambda (s) + (bytes-append + (cond + [(path? s) (path->bytes s)] + [else (string->bytes/locale s)]) + #"\0")) + (append + (list (if relative? + (relativize exe dest-exe values) + exe) + (let ([dir (find-dll-dir)]) + (if dir + (if relative? + (relativize dir dest-exe values) + dir) + ""))) + full-cmdline)))] + [out (open-output-file dest-exe 'update)]) + (let ([cmdline-end (+ end (bytes-length cmdline))] + [write-num (lambda (n) + (write-bytes (integer->integer-bytes n 4 #t #f) out))]) (dynamic-wind void (lambda () - (when anotherpos - (file-position out anotherpos) - (write-bytes #"no," out)) - (when libpos - (write-lib out libpos collects-path-bytes)) - (if long-cmdline? - ;; write cmdline at end: - (file-position out end) - (begin - ;; write (short) cmdline in the normal position: - (file-position out cmdpos) - (display "!" out))) - (for-each - (lambda (s) - (fprintf out "~a~a~c" - (integer->integer-bytes - (add1 (bytes-length (string->bytes/utf-8 s)) ) - 4 #t #f) - s - #\000)) - full-cmdline) - (display "\0\0\0\0" out) - (when long-cmdline? - ;; cmdline written at the end; - ;; now put forwarding information at the normal cmdline pos - (let ([new-end (file-position out)]) - (file-position out cmdpos) - (fprintf out "~a...~a~a" - (if keep-exe? "*" "?") - (integer->integer-bytes end 4 #t #f) - (integer->integer-bytes (- new-end end) 4 #t #f))))) + (when typepos + (file-position out (+ typepos 13)) + (write-bytes #"r" out) + (flush-output out)) + (file-position out (+ numpos 7)) + (write-bytes #"!" out) + (write-num start) + (write-num end) + (write-num cmdline-end) + (write-num (length full-cmdline)) + (write-num (if mred? 1 0)) + (flush-output out) + (file-position out end) + (write-bytes cmdline out) + (flush-output out)) (lambda () - (close-output-port out))) - (let ([m (and (eq? 'windows (system-type)) - (assq 'ico aux))]) - (when m - (install-icon dest-exe (cdr m)))) - (let ([m (and (eq? 'windows (system-type)) - (assq 'subsystem aux))]) - (when m - (set-subsystem dest-exe (cdr m))))))))))))))))) + (close-output-port out)))))] + [else + (let ([cmdpos (with-input-from-file dest-exe + (lambda () (find-cmdline + "cmdline" + #"\\[Replace me for EXE hack")))] + [anotherpos (and mred? + (eq? 'windows (system-type)) + (let ([m (assq 'single-instance? aux)]) + (and m (not (cdr m)))) + (with-input-from-file dest-exe + (lambda () (find-cmdline + "instance-check" + #"yes, please check for another"))))] + [out (open-output-file dest-exe 'update)]) + (dynamic-wind + void + (lambda () + (when anotherpos + (file-position out anotherpos) + (write-bytes #"no," out)) + (if long-cmdline? + ;; write cmdline at end: + (file-position out end) + (begin + ;; write (short) cmdline in the normal position: + (file-position out cmdpos) + (display "!" out))) + (for-each + (lambda (s) + (fprintf out "~a~a~c" + (integer->integer-bytes + (add1 (bytes-length (string->bytes/utf-8 s)) ) + 4 #t #f) + s + #\000)) + full-cmdline) + (display "\0\0\0\0" out) + (when long-cmdline? + ;; cmdline written at the end; + ;; now put forwarding information at the normal cmdline pos + (let ([new-end (file-position out)]) + (file-position out cmdpos) + (fprintf out "~a...~a~a" + (if keep-exe? "*" "?") + (integer->integer-bytes end 4 #t #f) + (integer->integer-bytes (- new-end end) 4 #t #f))))) + (lambda () + (close-output-port out))) + (let ([m (and (eq? 'windows (system-type)) + (assq 'ico aux))]) + (when m + (install-icon dest-exe (cdr m)))) + (let ([m (and (eq? 'windows (system-type)) + (assq 'subsystem aux))]) + (when m + (set-subsystem dest-exe (cdr m)))))])))))))))))) diff --git a/collects/compiler/private/collects-path.ss b/collects/compiler/private/collects-path.ss new file mode 100644 index 0000000000..3b2cd70f3a --- /dev/null +++ b/collects/compiler/private/collects-path.ss @@ -0,0 +1,58 @@ + +(module collects-path mzscheme + + (provide collects-path->bytes + check-collects-path + set-collects-path) + + (define (collects-path->bytes collects-path) + (and collects-path + (cond + [(path? collects-path) (path->bytes collects-path)] + [(string? collects-path) (string->bytes/locale collects-path)] + [(and (list? collects-path) + (pair? collects-path)) + (let ([l (map (lambda (p) + (cond + [(path? p) (path->bytes p)] + [(string? p) (string->bytes/locale p)] + [else #""])) + collects-path)]) + (let loop ([l l]) + (if (null? (cdr l)) + (car l) + (bytes-append (car l) #"\0" (loop (cdr l))))))] + [else #""]))) + + (define (check-collects-path who collects-path collects-path-bytes) + (when collects-path + (unless (or (path-string? collects-path) + (and (list? collects-path) + (pair? collects-path) + (andmap path-string? collects-path))) + (raise-type-error who "path, string, non-empty list of paths and strings, or #f" + collects-path)) + (unless ((bytes-length collects-path-bytes) . <= . 1024) + (error who "collects path list is too long")))) + + (define (find-cmdline rx) + (let ([m (regexp-match-positions rx (current-input-port))]) + (if m + (caar m) + (error + 'create-embedding-executable + "can't find collection-path position in executable")))) + + (define (set-collects-path dest-exe collects-path-bytes) + (when collects-path-bytes + (let ([libpos (let ([tag #"coLLECTs dIRECTORy:"]) + (+ (with-input-from-file dest-exe + (lambda () (find-cmdline tag))) + (bytes-length tag)))]) + (with-output-to-file dest-exe + (lambda () + (let ([out (current-output-port)]) + (file-position out libpos) + (write-bytes collects-path-bytes out) + (write-bytes #"\0\0" out))) + 'update))))) diff --git a/collects/compiler/start.ss b/collects/compiler/start.ss index cb5aa1b6bf..c6c6d7ef75 100644 --- a/collects/compiler/start.ss +++ b/collects/compiler/start.ss @@ -40,11 +40,13 @@ (define ld-output (make-parameter #f)) (define exe-output (make-parameter #f)) - (define exe-embedded-flags (make-parameter '("-mvq-"))) + (define exe-embedded-flags (make-parameter '("-m" "-v" "-U" "-q" "--"))) (define exe-embedded-libraries (make-parameter null)) (define exe-aux (make-parameter null)) (define exe-embedded-collects-path (make-parameter #f)) + (define exe-dir-output (make-parameter #f)) + (define module-mode (make-parameter #f)) (define default-plt-name "archive") @@ -133,6 +135,10 @@ ,(lambda (f name) (exe-output name) 'gui-exe) (,(format "Embed module in MrEd to create ") "exe")] + [("--exe-dir") + ,(lambda (f name) (exe-dir-output name) 'exe-dir) + (,(format "Combine executables with support files in ") + "dir")] [("--collection-plt") ,(lambda (f name) (plt-output name) 'plt-collect) (,(format "Create .plt containing collections") @@ -265,7 +271,7 @@ [help-labels "--------------------- executable configuration flags ------------------------"] [once-each - [("--collects") + [("--collects-path") ,(lambda (f i) (exe-embedded-collects-path i)) ("Path to collects relative to --[gui-]exe executable" "path")] @@ -278,7 +284,12 @@ ,(lambda (f i) (exe-aux (cons (cons 'icns i) (exe-aux)))) - ("Mac OS X icon for --[gui-]exe executable" ".icns-file")]] + ("Mac OS X icon for --[gui-]exe executable" ".icns-file")] + [("--orig-exe") + ,(lambda (f) (exe-aux + (cons (cons 'original-exe? #t) + (exe-aux)))) + ("Use original executable instead of stub")]] [multi [("++lib") ,(lambda (f l c) (exe-embedded-libraries @@ -521,6 +532,7 @@ 'mzc:create-embedding-executable) dest #:mred? (eq? mode 'gui-exe) + #:variant (if (compiler:option:3m) '3m 'normal) #:verbose? (compiler:option:verbose) #:modules (cons `(#%mzc: (file ,(car source-files))) @@ -539,6 +551,12 @@ #:collects-path (exe-embedded-collects-path) #:aux (exe-aux)) (printf " [output to \"~a\"]~n" dest))] + [(exe-dir) + ((dynamic-require '(lib "distribute.ss" "compiler") + 'assemble-distribution) + (exe-dir-output) + source-files + #:collects-path (exe-embedded-collects-path))] [(plt) (for-each (lambda (fd) (unless (relative-path? fd) diff --git a/collects/help/bug-report.ss b/collects/help/bug-report.ss index d18a7a845a..d1876ca6e8 100644 --- a/collects/help/bug-report.ss +++ b/collects/help/bug-report.ss @@ -486,7 +486,7 @@ (send environment set-value (format "~a ~s (~a) (get-display-depth) = ~a" (system-type) - (system-type #t) + (system-type 'machine) (system-library-subpath) (get-display-depth))) diff --git a/collects/mysterx/installer.ss b/collects/mysterx/installer.ss index 76cb13740a..dc8dca8354 100644 --- a/collects/mysterx/installer.ss +++ b/collects/mysterx/installer.ss @@ -4,7 +4,8 @@ (provide post-installer) (define (post-installer plt-home) (define (make-dll-path . more) - (apply build-path (find-dll-dir) more)) + (and (find-dll-dir) + (apply build-path (find-dll-dir) more))) (define (warn fmt . args) (apply fprintf (current-error-port) fmt args)) (let* ([dlls '("myspage.dll" "myssink.dll")] [dll-paths (map make-dll-path dlls)] diff --git a/collects/net/sendurl.ss b/collects/net/sendurl.ss index 94422d6475..32ab1c44e0 100644 --- a/collects/net/sendurl.ss +++ b/collects/net/sendurl.ss @@ -30,7 +30,7 @@ [(procedure? (external-browser)) ((external-browser) url-str)] [(eq? (system-type) 'macos) - (if (regexp-match "Blue Box" (system-type #t)) + (if (regexp-match "Blue Box" (system-type 'machine)) ;; Classic inside OS X: (let loop ([l '("MSIE" "NAVG")]) (if (null? l) diff --git a/collects/setup/configtab.ss b/collects/setup/configtab.ss index 7b663dd612..f049f6b8d0 100644 --- a/collects/setup/configtab.ss +++ b/collects/setup/configtab.ss @@ -8,6 +8,7 @@ (define-for-syntax path-exports '(doc-dir doc-search-dirs + dll-dir lib-dir lib-search-dirs include-dir diff --git a/collects/setup/dirs.ss b/collects/setup/dirs.ss index bf9949ca80..2898d680d0 100644 --- a/collects/setup/dirs.ss +++ b/collects/setup/dirs.ss @@ -56,6 +56,10 @@ [(not (car l)) (append default (loop (cdr l)))] [else (cons (car l) (loop (cdr l)))])) default)) + (define (cons-user u r) + (if (use-user-specific-search-paths) + (cons u r) + r)) (define-syntax define-finder (syntax-rules () @@ -65,7 +69,7 @@ (provide search-id) (define (search-id) (combine-search (force config:search-id) - (cons (user-id) (single (id))))))] + (cons-user (user-id) (single (id))))))] [(_ provide config:id id user-id config:search-id search-id extra-search-dir default) (begin (define-finder provide config:id id user-id default) @@ -73,7 +77,7 @@ (define (search-id) (combine-search (force config:search-id) (extra (extra-search-dir) - (cons (user-id) (single (id)))))))] + (cons-user (user-id) (single (id)))))))] [(_ provide config:id id user-id default) (begin (provide id user-id) @@ -172,9 +176,8 @@ (lambda () (let ([m (regexp-match (byte-regexp (bytes-append - #"(" (bytes->utf-16-bytes #"dLl dIRECTORy:") - #".*?)\0\0")) + #"((?:..)*?)\0\0")) (current-input-port))]) (unless m (error "cannot find \"dLl dIRECTORy\" tag in binary")) (let-values ([(dir name dir?) (split-path exe)]) @@ -216,6 +219,9 @@ ;; no framework reference found!? #f)))] [else - (find-lib-dir)]))) + (if (eq? 'shared (system-type 'link)) + (or (force config:dll-dir) + (find-lib-dir)) + #f)]))) (define (find-dll-dir) (force dll-dir))) diff --git a/collects/setup/doc.txt b/collects/setup/doc.txt index 1debcc01d1..2e75f2eaf0 100644 --- a/collects/setup/doc.txt +++ b/collects/setup/doc.txt @@ -290,8 +290,9 @@ installation directories: > (get-collects-search-dirs) - Returns the same result as `(current-library-collection-paths)'. - + Returns the same result as `(current-library-collection-paths)' + (which means that this result is not sensitive to the value of the + `use-user-specific-search-paths' parameter). > (find-doc-dir) @@ -308,7 +309,9 @@ installation directories: Returns a list of paths to search for documentation, not including documentation stored in individual collections. Unless it is configured otherwise, the result includes any non-#f result of - `(find-doc-dir)' and `(find-user-doc-dir)'. + `(find-doc-dir)' and `(find-user-doc-dir)' --- but the latter is + included only if the value of the `use-user-specific-search-paths' + parameter is true. > (find-lib-dir) @@ -333,7 +336,9 @@ installation directories: Returns a list of paths to search for libraries. Unless it is configured otherwise, the result includes any non-#f result of - `(find-lib-dir)', `(find-dll-dir)', and `(find-user-lib-dir)'. + `(find-lib-dir)', `(find-dll-dir)', and `(find-user-lib-dir)' --- + but the last is included only if the value of the + `use-user-specific-search-paths' parameter is true. > (find-include-dir) @@ -351,7 +356,9 @@ installation directories: Returns a list of paths to search for .h files. Unless it is configured otherwise, the result includes any non-#f result of - `(find-include-dir)' and `(find-user-include-dir)'. + `(find-include-dir)' and `(find-user-include-dir)' --- but the + latter is included only if the value of the + `use-user-specific-search-paths' parameter is true. > (find-console-bin-dir) diff --git a/collects/tests/mzscheme/basic.ss b/collects/tests/mzscheme/basic.ss index aa474868b0..9d83ec4862 100644 --- a/collects/tests/mzscheme/basic.ss +++ b/collects/tests/mzscheme/basic.ss @@ -2013,8 +2013,9 @@ (test #t string? (version)) (test #t string? (banner)) (test #t symbol? (system-type)) -(test (system-type) system-type #f) -(test #t string? (system-type #t)) +(test (system-type) system-type 'os) +(test #t string? (system-type 'machine)) +(test #t symbol? (system-type 'link)) (test #t relative-path? (system-library-subpath)) (test #t 'cmdline (let ([v (current-command-line-arguments)]) diff --git a/doc/release-notes/mzscheme/HISTORY b/doc/release-notes/mzscheme/HISTORY index fa47b38f38..0eb18897f8 100644 --- a/doc/release-notes/mzscheme/HISTORY +++ b/doc/release-notes/mzscheme/HISTORY @@ -1,3 +1,9 @@ +Version 301.15 +Changed installation process to support more configurable directory + structure +Added use-user-specific-search-paths parameter, -U flag +Changed system-type's optional argument to 'os, 'link, or 'machine + Version 301.14 Added current-thread-initial-stack-size diff --git a/src/configure b/src/configure index 3db3ddfe82..661e3415cd 100755 --- a/src/configure +++ b/src/configure @@ -11700,17 +11700,8 @@ if test "${enable_shared}" = "yes" ; then STATIC_AR="${LTDIR}/libtool --mode=link $CC -o" ARFLAGS="" RANLIB=":" - exes="xxxxxxxx" - exes="${exes}${exes}" - exes="${exes}${exes}" - exes="${exes}${exes}" - exes="${exes}${exes}" - exes="${exes}${exes}" - exes="${exes}${exes}" - exes="${exes}${exes}" - padding="padding$exes" - MZLINKER="${LTDIR}/libtool --mode=link $CC${need_gcc_static_libgcc} -rpath ${absprefix}/lib -rpath ${absprefix}/lib/${padding}" - MREDLINKER="${LTDIR}/libtool --mode=link $CXX${need_gcc_static_libgcc} -rpath ${absprefix}/lib -rpath ${absprefix}/lib/${padding}" + MZLINKER="${LTDIR}/libtool --mode=link $CC${need_gcc_static_libgcc} -rpath ${absprefix}/lib" + MREDLINKER="${LTDIR}/libtool --mode=link $CXX${need_gcc_static_libgcc} -rpath ${absprefix}/lib" PLAIN_CC="$CC" CC="${LTDIR}/libtool --mode=compile $CC" CXX="${LTDIR}/libtool --mode=compile $CXX" @@ -11724,6 +11715,7 @@ if test "${enable_shared}" = "yes" ; then LTA="la" FOREIGN_CONVENIENCE="_convenience" FOREIGN_OBJSLIB="\$(FOREIGN_LIB)" + MZOPTIONS="$MZOPTIONS -DMZ_USES_SHARED_LIB" else LIBSFX=a MREDLINKER="$CXX" diff --git a/src/copytree.ss b/src/copytree.ss index c63803df17..80c99eff5c 100644 --- a/src/copytree.ss +++ b/src/copytree.ss @@ -1,7 +1,7 @@ ;; This file is used to copy the PLT tree as part of `make install', and as ;; part of Unix installers. It should be invoked with the source plt directory ;; (holding a usual plt tree), and a list of path names that should be copied. -;; Not providing a good cmdline interface since it is should be as independent +;; Not providing a good cmdline interface, since it is should be as independent ;; as possible. (module copytree mzscheme @@ -53,6 +53,8 @@ (lambda () (printf "(module config (lib \"configtab.ss\" \"setup\")\n") (printf " (define doc-dir ~s)\n" docdir) + (when (eq? 'shared (system-type 'link)) + (printf " (define dll-dir ~s)\n" libdir)) (printf " (define lib-dir ~s)\n" libpltdir) (printf " (define include-dir ~s)\n" includepltdir) (printf " (define bin-dir ~s)\n" bindir) diff --git a/src/mred/gc2/Makefile.in b/src/mred/gc2/Makefile.in index 4fc54f888e..c51f5ac7db 100644 --- a/src/mred/gc2/Makefile.in +++ b/src/mred/gc2/Makefile.in @@ -1371,6 +1371,7 @@ MRFWRES = PLT_MrEd.framework/Versions/$(FWVERSION)_3m/Resources/PLT_MrEd.rsrc $(MREDLINKER) -o ../MrEd3m.app/Contents/MacOS/MrEd3m mrmain.@LTO@ -Wl,-headerpad_max_install_names -F. -framework PLT_MrEd -framework Carbon if [ ! -d ../PLT_MrEd.framework/Versions/$(FWVERSION)_3m ] ; then mkdir ../PLT_MrEd.framework/Versions/$(FWVERSION)_3m ; fi cp $(MRFW) ../$(MRFW) + rm -rf ../PLT_MrEd.framework/Versions/$(FWVERSION)_3m/Resources cp -r PLT_MrEd.framework/Versions/$(FWVERSION)_3m/Resources ../PLT_MrEd.framework/Versions/$(FWVERSION)_3m/Resources /usr/bin/install_name_tool -change "PLT_MrEd.framework/Versions/$(FWVERSION)_3m/PLT_MrEd" "@executable_path/../../../PLT_MrEd.framework/Versions/$(FWVERSION)_3m/PLT_MrEd" ../MrEd3m.app/Contents/MacOS/MrEd3m diff --git a/src/mzscheme/Makefile.in b/src/mzscheme/Makefile.in index f8f8f187bf..568559819a 100644 --- a/src/mzscheme/Makefile.in +++ b/src/mzscheme/Makefile.in @@ -292,6 +292,7 @@ unix-install: cd ..; $(ICP) mzscheme/libmzgc.@LIBSFX@ "$(libdir)/libmzgc.@LIBSFX@" cd ..; $(ICP) mzscheme/libmzscheme.@LIBSFX@ "$(libdir)/libmzscheme.@LIBSFX@" cd ..; $(ICP) mzscheme/mzscheme "$(bindir)/mzscheme" + cd ..; cp mzscheme/starter "$(libpltdir)/starter" ./mzscheme -mvqu "$(srcdir)/collects-path.ss" "$(bindir)/mzscheme@EXE_SUFFIX@" @COLLECTS_PATH@ cd ..; echo 'CC=@CC@' > $(BUILDINFO) cd ..; echo 'CFLAGS=@CFLAGS@ @PREFLAGS@ @COMPFLAGS@' >> $(BUILDINFO) @@ -302,7 +303,7 @@ unix-install: normal-install: $(MAKE) unix-install - cd ..; cp mzscheme/mzdyn.o $(libpltdir)/mzdyn.o + cd ..; cp mzscheme/mzdyn.o "$(libpltdir)/mzdyn.o" MZFWDIR = @FRAMEWORK_INSTALL_DIR@/PLT_MzScheme.framework diff --git a/src/mzscheme/cmdline.inc b/src/mzscheme/cmdline.inc index 79b1ebbe5d..d48468c77b 100644 --- a/src/mzscheme/cmdline.inc +++ b/src/mzscheme/cmdline.inc @@ -6,7 +6,13 @@ #define SDESC "Set! works on undefined identifiers.\n" char *cmdline_exe_hack = "[Replace me for EXE hack ]"; -char *binary_type_hack = "bINARy tYPe:" INITIAL_BIN_TYPE; + +#ifdef MZ_PRECISE_GC +# define GC_PRECISION_TYPE "3" +#else +# define GC_PRECISION_TYPE "c" +#endif +char *binary_type_hack = "bINARy tYPe:" INITIAL_BIN_TYPE GC_PRECISION_TYPE; #ifndef INITIAL_COLLECTS_DIRECTORY # ifdef DOS_FILE_SYSTEM @@ -465,7 +471,7 @@ static int run_from_cmd_line(int argc, char *_argv[], GC_CAN_IGNORE char **argv = _argv; Scheme_Env *global_env; char *prog, *sprog = NULL; - Scheme_Object *sch_argv, *collects_path = NULL; + Scheme_Object *sch_argv, *collects_path = NULL, *collects_extra = NULL; int i; #ifndef DONT_PARSE_COMMAND_LINE char **evals_and_loads, *real_switch = NULL, *runner; @@ -742,6 +748,8 @@ static int run_from_cmd_line(int argc, char *_argv[], argv[0] = "-b"; else if (!strcmp("--collects", argv[0])) argv[0] = "-X"; + else if (!strcmp("--search", argv[0])) + argv[0] = "-S"; # ifndef MZSCHEME_CMD_LINE else if (!strcmp("--nogui", argv[0])) argv[0] = "-Z"; @@ -805,6 +813,22 @@ static int run_from_cmd_line(int argc, char *_argv[], --argc; collects_path = scheme_make_path(argv[0]); break; + case 'U': + scheme_set_ignore_user_paths(1); + break; + case 'S': + if (argc < 2) { + PRINTF("%s: missing path after %s switch\n", + prog, real_switch); + goto show_need_help; + } + argv++; + --argc; + if (!collects_extra) + collects_extra = scheme_make_null(); + collects_extra = scheme_make_pair(scheme_make_path(argv[0]), + collects_extra); + break; case 'x': no_lib_path = 1; break; @@ -1087,15 +1111,19 @@ static int run_from_cmd_line(int argc, char *_argv[], scheme_set_collects_path(collects_path); /* Make list of additional collection paths: */ - l = scheme_make_null(); - offset = _coldir_offset; - while (1) { - len = strlen(_coldir XFORM_OK_PLUS offset); - offset += len + 1; - if (!_coldir[offset]) - break; - l = scheme_make_pair(scheme_make_path(_coldir XFORM_OK_PLUS offset), - l); + if (collects_extra) { + l = collects_extra; + } else { + l = scheme_make_null(); + offset = _coldir_offset; + while (1) { + len = strlen(_coldir XFORM_OK_PLUS offset); + offset += len + 1; + if (!_coldir[offset]) + break; + l = scheme_make_pair(scheme_make_path(_coldir XFORM_OK_PLUS offset), + l); + } } /* Reverse list */ r = scheme_make_null(); @@ -1177,10 +1205,12 @@ static int run_from_cmd_line(int argc, char *_argv[], " -k : Load executable-embedded code from file offset to .\n" " -C, --main : Like -r, then call `main' w/argument list; car is file name.\n" " Initialization switches:\n" - " -X , --collects : libraries at relative to executable.\n" + " -X , --collects : Main collects at relative to " PROGRAM ".\n" + " -S , --search : More collects at relative to " PROGRAM ".\n" + " -U, --no-user-path : Ignores user-specific collects, etc.\n" " -x, --no-lib-path : Skips trying to set current-library-collection-paths.\n" " -q, --no-init-file : Skips trying to load " INIT_FILENAME ".\n" - " -N , --name : Set `program' to .\n" + " -N , --name : Sets `program' to .\n" " -A : Skips defining `argv' and `program'.\n" # ifdef MZ_USE_JIT " -j, --no-jit : Disables just-in-time compiler.\n" diff --git a/src/mzscheme/configure.ac b/src/mzscheme/configure.ac index 1d2c71d477..2c9fcae681 100644 --- a/src/mzscheme/configure.ac +++ b/src/mzscheme/configure.ac @@ -1038,17 +1038,8 @@ if test "${enable_shared}" = "yes" ; then STATIC_AR="${LTDIR}/libtool --mode=link $CC -o" ARFLAGS="" RANLIB=":" - exes="xxxxxxxx" - exes="${exes}${exes}" - exes="${exes}${exes}" - exes="${exes}${exes}" - exes="${exes}${exes}" - exes="${exes}${exes}" - exes="${exes}${exes}" - exes="${exes}${exes}" - padding="padding$exes" - MZLINKER="${LTDIR}/libtool --mode=link $CC${need_gcc_static_libgcc} -rpath ${absprefix}/lib -rpath ${absprefix}/lib/${padding}" - MREDLINKER="${LTDIR}/libtool --mode=link $CXX${need_gcc_static_libgcc} -rpath ${absprefix}/lib -rpath ${absprefix}/lib/${padding}" + MZLINKER="${LTDIR}/libtool --mode=link $CC${need_gcc_static_libgcc} -rpath ${absprefix}/lib" + MREDLINKER="${LTDIR}/libtool --mode=link $CXX${need_gcc_static_libgcc} -rpath ${absprefix}/lib" PLAIN_CC="$CC" CC="${LTDIR}/libtool --mode=compile $CC" CXX="${LTDIR}/libtool --mode=compile $CXX" @@ -1062,6 +1053,7 @@ if test "${enable_shared}" = "yes" ; then LTA="la" FOREIGN_CONVENIENCE="_convenience" FOREIGN_OBJSLIB="\$(FOREIGN_LIB)" + MZOPTIONS="$MZOPTIONS -DMZ_USES_SHARED_LIB" else LIBSFX=a MREDLINKER="$CXX" diff --git a/src/mzscheme/dynsrc/Makefile.in b/src/mzscheme/dynsrc/Makefile.in index f182b679e5..698c80ab41 100644 --- a/src/mzscheme/dynsrc/Makefile.in +++ b/src/mzscheme/dynsrc/Makefile.in @@ -19,6 +19,7 @@ CFLAGS = @CFLAGS@ @COMPFLAGS@ @PREFLAGS@ -I$(builddir)/.. -I$(srcdir)/../include dynlib: $(MAKE) ../mzdyn.o + $(MAKE) ../starter dynlib3m: $(MAKE) ../mzdyn3m.o @@ -43,6 +44,9 @@ MZDYNDEP = ../mzdyn.o $(srcdir)/../include/ext.exp $(srcdir)/../include/mzscheme dynexmpl.o: $(srcdir)/dynexmpl.c $(HEADERS) $(PLAIN_CC) $(CFLAGS) -c $(srcdir)/dynexmpl.c -o dynexmpl.o +../starter: $(srcdir)/ustart.c + $(PLAIN_CC) $(CFLAGS) -o ../starter $(srcdir)/ustart.c + ILIBDIR = $(libpltdir) # Prefix might be relative to srcdir, or it might be absolute, so we diff --git a/src/mzscheme/dynsrc/ustart.c b/src/mzscheme/dynsrc/ustart.c index 4f455b3162..bea5e5844e 100644 --- a/src/mzscheme/dynsrc/ustart.c +++ b/src/mzscheme/dynsrc/ustart.c @@ -11,34 +11,47 @@ #include #include -char *config = "[Replace me with offset info ]"; +/* The config string after : is replaced with ! followed by a sequence + of little-endian 4-byte ints: + start - offset into the binary + prog_end - offset; start to prog_end is the program region + end - offset; prog_end to end is the command region + count - number of cmdline args in command region + x11? - non-zero => launches MrEd for X -char *binary_type_hack = "bINARy tYPe:ezi"; + In the command region, the format is a sequence of NUL-terminated strings: + exe_path - program to start (relative is w.r.t. executable) + dll_path - DLL directory if non-empty (relative is w.r.t. executable) + cmdline_arg ... +*/ +char *config = "cOnFiG:[***************************"; + +char *binary_type_hack = "bINARy tYPe:ezic"; /* This path list is used instead of the one in the MzScheme/MrEd binary. That way, the same MzScheme/MrEd binary can be shared among embedding exectuables that have different collection paths. */ -static char *_coldir = "coLLECTs dIRECTORy:" /* <- this tag stays, so we can find it again */ - "../collects" - "\0\0" /* <- 1st nul terminates path, 2nd terminates path list */ - /* Pad with at least 1024 bytes: */ - "****************************************************************" - "****************************************************************" - "****************************************************************" - "****************************************************************" - "****************************************************************" - "****************************************************************" - "****************************************************************" - "****************************************************************" - "****************************************************************" - "****************************************************************" - "****************************************************************" - "****************************************************************" - "****************************************************************" - "****************************************************************" - "****************************************************************" - "****************************************************************"; +char *_coldir = "coLLECTs dIRECTORy:" /* <- this tag stays, so we can find it again */ + "../collects" + "\0\0" /* <- 1st nul terminates path, 2nd terminates path list */ + /* Pad with at least 1024 bytes: */ + "****************************************************************" + "****************************************************************" + "****************************************************************" + "****************************************************************" + "****************************************************************" + "****************************************************************" + "****************************************************************" + "****************************************************************" + "****************************************************************" + "****************************************************************" + "****************************************************************" + "****************************************************************" + "****************************************************************" + "****************************************************************" + "****************************************************************" + "****************************************************************"; static int _coldir_offset = 19; /* Skip permanent tag */ typedef struct { @@ -86,6 +99,8 @@ static void write_str(int fd, char *s) write(fd, s, strlen(s)); } +#if 0 +/* Useful for debugging: */ static char *num_to_string(int n) { if (!n) @@ -101,6 +116,7 @@ static char *num_to_string(int n) return d; } } +#endif static char *string_append(char *s1, char *s2) { @@ -192,9 +208,15 @@ int main(int argc, char **argv) { char *me = argv[0], *data, **new_argv; char *exe_path, *lib_path, *dll_path; - int start, cmd_end, end, count, fd, v, x11; + int start, prog_end, end, count, fd, v, x11; int argpos, inpos, collcount = 1; + if (config[7] == '[') { + write_str(2, argv[0]); + write_str(2, ": this is an unconfigured starter\n"); + return 1; + } + if (me[0] == '/') { /* Absolute path */ } else if (has_slash(me)) { @@ -262,11 +284,11 @@ int main(int argc, char **argv) } } - start = as_int(config); - cmd_end = as_int(config + 4); - end = as_int(config + 8); - count = as_int(config + 12); - x11 = as_int(config + 16); + start = as_int(config + 8); + prog_end = as_int(config + 12); + end = as_int(config + 16); + count = as_int(config + 20); + x11 = as_int(config + 24); { int offset, len; @@ -280,12 +302,13 @@ int main(int argc, char **argv) } } - data = (char *)malloc(cmd_end - start); + data = (char *)malloc(end - prog_end); new_argv = (char **)malloc((count + argc + (2 * collcount) + 8) * sizeof(char*)); fd = open(me, O_RDONLY, 0); - lseek(fd, start, SEEK_SET); - read(fd, data, cmd_end - start); + lseek(fd, prog_end, SEEK_SET); + read(fd, data, end - prog_end); + close(fd); exe_path = data; data = next_string(data); @@ -296,14 +319,16 @@ int main(int argc, char **argv) exe_path = absolutize(exe_path, me); lib_path = absolutize(lib_path, me); - dll_path = getenv("LD_LIBRARY_PATH"); - if (!dll_path) { - dll_path = ""; + if (*lib_path) { + dll_path = getenv("LD_LIBRARY_PATH"); + if (!dll_path) { + dll_path = ""; + } + dll_path = string_append(dll_path, ":"); + dll_path = string_append(lib_path, dll_path); + dll_path = string_append("LD_LIBRARY_PATH=", dll_path); + putenv(dll_path); } - dll_path = string_append(dll_path, ":"); - dll_path = string_append(lib_path, dll_path); - dll_path = string_append("LD_LIBRARY_PATH=", dll_path); - putenv(dll_path); new_argv[0] = me; @@ -346,11 +371,6 @@ int main(int argc, char **argv) } } - /* Add -k flag */ - new_argv[argpos++] = "-k"; - new_argv[argpos++] = num_to_string(cmd_end); - new_argv[argpos++] = num_to_string(end); - /* Add built-in flags: */ while (count--) { new_argv[argpos++] = data; diff --git a/src/mzscheme/include/scheme.h b/src/mzscheme/include/scheme.h index ee8e1ee60c..5bf93ff423 100644 --- a/src/mzscheme/include/scheme.h +++ b/src/mzscheme/include/scheme.h @@ -1094,6 +1094,7 @@ enum { MZCONFIG_CODE_INSPECTOR, MZCONFIG_USE_COMPILED_KIND, + MZCONFIG_USE_USER_PATHS, MZCONFIG_LOAD_DIRECTORY, MZCONFIG_WRITE_DIRECTORY, @@ -1521,13 +1522,15 @@ MZ_EXTERN int scheme_square_brackets_are_parens; /* Defaults to 1 */ MZ_EXTERN int scheme_curly_braces_are_parens; /* Defaults to 1 */ MZ_EXTERN int scheme_hash_percent_syntax_only; /* Defaults to 0 */ MZ_EXTERN int scheme_hash_percent_globals_only; /* Defaults to 0 */ -MZ_EXTERN int scheme_binary_mode_stdio; /* Windows-MacOS-specific. Defaults to 0 */ -MZ_EXTERN int scheme_startup_use_jit; +MZ_EXTERN int scheme_binary_mode_stdio; /* Windows-specific; Defaults to 0 */ +MZ_EXTERN int scheme_startup_use_jit; /* Defaults to 1 */ +MZ_EXTERN int scheme_ignore_user_paths; /* Defaults to 0 */ MZ_EXTERN void scheme_set_case_sensitive(int); MZ_EXTERN void scheme_set_allow_set_undefined(int); MZ_EXTERN void scheme_set_binary_mode_stdio(int); MZ_EXTERN void scheme_set_startup_use_jit(int); +MZ_EXTERN void scheme_set_ignore_user_paths(int); MZ_EXTERN int scheme_get_allow_set_undefined(); diff --git a/src/mzscheme/src/cstartup.inc b/src/mzscheme/src/cstartup.inc index cff89a4a73..341a0095a9 100644 --- a/src/mzscheme/src/cstartup.inc +++ b/src/mzscheme/src/cstartup.inc @@ -1,5 +1,5 @@ { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,37,252,132,5,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,37,252,132,5,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,65,35,37,115,116, 120,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158,16,16,30,3, 2,2,71,105,100,101,110,116,105,102,105,101,114,63,4,254,1,30,5,2,2, @@ -70,7 +70,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 1425); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,80,252,70,10,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,80,252,70,10,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,71,35,37,113,113, 45,97,110,100,45,111,114,1,29,2,11,11,10,10,10,32,80,158,32,32,20, 98,158,16,1,30,3,2,2,69,113,113,45,97,112,112,101,110,100,4,254,1, @@ -139,31 +139,31 @@ 11,37,9,18,16,2,158,2,12,37,9,18,16,2,100,9,41,35,34,33,16, 8,40,11,2,26,71,117,110,113,117,111,116,101,45,115,116,120,27,1,20,117, 110,113,117,111,116,101,45,115,112,108,105,99,105,110,103,45,115,116,120,28,3, -1,7,101,110,118,50,50,53,48,29,2,29,2,29,16,4,39,11,67,105,110, -45,102,111,114,109,30,3,1,7,101,110,118,50,50,53,49,31,16,6,38,11, -61,120,32,63,111,108,100,33,3,1,7,101,110,118,50,50,53,51,34,2,34, +1,7,101,110,118,50,50,53,50,29,2,29,2,29,16,4,39,11,67,105,110, +45,102,111,114,109,30,3,1,7,101,110,118,50,50,53,51,31,16,6,38,11, +61,120,32,63,111,108,100,33,3,1,7,101,110,118,50,50,53,53,34,2,34, 9,18,16,2,158,65,113,117,111,116,101,35,41,9,18,16,2,100,64,108,105, 115,116,36,43,35,34,33,40,39,16,6,42,11,61,97,37,61,100,38,3,1, -7,101,110,118,50,50,53,52,39,2,39,9,18,16,2,158,2,36,43,9,18, +7,101,110,118,50,50,53,54,39,2,39,9,18,16,2,158,2,36,43,9,18, 16,2,158,65,108,105,115,116,42,40,43,9,18,16,2,158,2,40,43,9,18, 16,2,104,2,6,49,35,34,33,40,39,16,8,48,11,64,102,111,114,109,41, -66,110,111,114,109,97,108,42,2,8,3,1,7,101,110,118,50,50,53,50,43, -2,43,2,43,16,4,47,11,2,9,3,1,7,101,110,118,50,50,53,53,44, +66,110,111,114,109,97,108,42,2,8,3,1,7,101,110,118,50,50,53,52,43, +2,43,2,43,16,4,47,11,2,9,3,1,7,101,110,118,50,50,53,55,44, 16,6,46,11,2,32,65,108,101,118,101,108,45,3,1,7,101,110,118,50,50, -53,54,46,2,46,16,4,45,11,2,10,3,1,7,101,110,118,50,50,53,55, +53,56,46,2,46,16,4,45,11,2,10,3,1,7,101,110,118,50,50,53,57, 47,16,4,44,11,65,102,105,114,115,116,48,3,1,7,101,110,118,50,50,54, -51,49,9,18,16,2,106,2,4,52,35,34,33,40,39,48,47,46,45,44,16, -4,51,11,64,114,101,115,116,50,3,1,7,101,110,118,50,50,54,54,51,16, +53,49,9,18,16,2,106,2,4,52,35,34,33,40,39,48,47,46,45,44,16, +4,51,11,64,114,101,115,116,50,3,1,7,101,110,118,50,50,54,56,51,16, 8,50,11,64,117,113,115,100,52,65,111,108,100,45,108,53,61,108,54,3,1, -7,101,110,118,50,50,54,56,55,2,55,2,55,9,18,16,2,158,94,107,2, +7,101,110,118,50,50,55,48,55,2,55,2,55,9,18,16,2,158,94,107,2, 35,54,35,34,33,40,39,48,47,46,45,44,51,50,16,4,53,11,65,114,101, -115,116,120,56,3,1,7,101,110,118,50,50,55,48,57,158,2,12,54,54,9, +115,116,120,56,3,1,7,101,110,118,50,50,55,50,57,158,2,12,54,54,9, 18,16,2,105,72,108,105,115,116,45,62,118,101,99,116,111,114,58,57,35,34, 33,40,39,48,47,46,45,16,4,56,11,2,54,3,1,7,101,110,118,50,50, -55,49,59,16,4,55,11,62,108,50,60,3,1,7,101,110,118,50,50,55,50, +55,51,59,16,4,55,11,62,108,50,60,3,1,7,101,110,118,50,50,55,52, 61,9,18,16,2,105,63,98,111,120,62,8,28,35,34,33,40,39,48,47,46, -45,16,4,59,11,61,118,63,3,1,7,101,110,118,50,50,55,51,64,16,4, -58,11,62,113,118,65,3,1,7,101,110,118,50,50,55,52,66,9,11,16,5, +45,16,4,59,11,61,118,63,3,1,7,101,110,118,50,50,55,53,64,16,4, +58,11,62,113,118,65,3,1,7,101,110,118,50,50,55,54,66,9,11,16,5, 93,2,5,27,20,15,159,33,32,37,89,162,32,33,46,9,224,1,0,87,94, 28,248,80,158,34,32,195,12,250,22,252,39,2,11,6,10,10,98,97,100,32, 115,121,110,116,97,120,197,27,248,80,158,35,33,196,28,248,80,158,35,34,193, @@ -173,8 +173,8 @@ 44,33,202,20,15,159,41,36,37,198,33,20,98,158,16,5,2,24,2,18,2, 20,2,16,2,22,16,5,18,16,2,97,2,26,8,29,35,34,33,9,18,16, 2,100,10,8,33,35,34,33,16,4,8,32,11,2,26,3,1,7,101,110,118, -50,50,55,54,67,16,4,8,31,11,2,32,3,1,7,101,110,118,50,50,55, -55,68,16,4,8,30,11,61,101,69,3,1,7,101,110,118,50,50,55,56,70, +50,50,55,56,67,16,4,8,31,11,2,32,3,1,7,101,110,118,50,50,55, +57,68,16,4,8,30,11,61,101,69,3,1,7,101,110,118,50,50,56,48,70, 9,18,16,2,158,62,105,102,71,8,33,9,18,16,2,158,2,5,8,33,9, 18,16,2,158,11,8,33,9,11,16,5,93,2,7,27,20,15,159,33,32,38, 89,162,32,33,49,9,224,1,0,87,94,28,248,80,158,34,32,195,250,22,252, @@ -187,11 +187,11 @@ 38,248,80,158,47,33,205,198,250,22,252,39,2,11,6,10,10,98,97,100,32, 115,121,110,116,97,120,198,33,20,98,158,16,6,2,13,2,18,2,20,2,16, 2,22,2,24,16,5,18,16,2,158,2,26,8,29,9,18,16,2,100,11,8, -37,35,34,33,16,4,8,36,11,2,26,3,1,7,101,110,118,50,50,56,48, -73,16,4,8,35,11,2,32,3,1,7,101,110,118,50,50,56,49,74,16,4, -8,34,11,2,69,3,1,7,101,110,118,50,50,56,50,75,9,18,16,2,101, +37,35,34,33,16,4,8,36,11,2,26,3,1,7,101,110,118,50,50,56,50, +73,16,4,8,35,11,2,32,3,1,7,101,110,118,50,50,56,51,74,16,4, +8,34,11,2,69,3,1,7,101,110,118,50,50,56,52,75,9,18,16,2,101, 63,108,101,116,76,8,39,35,34,33,8,36,8,35,8,34,16,4,8,38,11, -63,116,109,112,77,3,1,7,101,110,118,50,50,56,51,78,9,18,16,2,158, +63,116,109,112,77,3,1,7,101,110,118,50,50,56,53,78,9,18,16,2,158, 2,71,8,39,9,18,16,2,158,2,7,8,39,9,11,93,83,159,32,93,80, 159,32,32,33,89,162,32,34,37,2,4,222,28,248,22,58,193,249,22,65,194, 195,250,22,252,40,2,2,12,6,11,11,112,114,111,112,101,114,32,108,105,115, @@ -199,7 +199,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 2643); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,44,252,209,4,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,44,252,209,4,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,66,35,37,99,111, 110,100,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158,16,0,16, 0,11,11,16,0,32,11,16,1,64,99,111,110,100,3,16,1,11,16,1,2, @@ -241,28 +241,28 @@ 2,98,34,10,33,11,94,159,71,35,37,113,113,45,97,110,100,45,111,114,17, 9,11,159,2,6,9,11,16,0,96,33,8,254,1,11,16,0,9,18,16,2, 158,93,102,64,118,111,105,100,18,43,35,34,33,16,4,42,11,2,16,3,1, -7,101,110,118,50,50,56,55,19,16,4,41,11,67,105,110,45,102,111,114,109, -20,3,1,7,101,110,118,50,50,56,56,21,16,6,40,11,64,102,111,114,109, -22,66,115,101,114,114,111,114,23,3,1,7,101,110,118,50,50,56,57,24,2, -24,16,4,39,11,2,4,3,1,7,101,110,118,50,50,57,49,25,16,6,38, +7,101,110,118,50,50,56,57,19,16,4,41,11,67,105,110,45,102,111,114,109, +20,3,1,7,101,110,118,50,50,57,48,21,16,6,40,11,64,102,111,114,109, +22,66,115,101,114,114,111,114,23,3,1,7,101,110,118,50,50,57,49,24,2, +24,16,4,39,11,2,4,3,1,7,101,110,118,50,50,57,51,25,16,6,38, 11,65,116,101,115,116,115,26,66,102,105,114,115,116,63,27,3,1,7,101,110, -118,50,50,57,50,28,2,28,43,9,18,104,64,101,108,115,101,29,46,35,34, +118,50,50,57,52,28,2,28,43,9,18,104,64,101,108,115,101,29,46,35,34, 33,42,41,40,39,38,16,6,45,11,64,108,105,110,101,30,64,114,101,115,116, -31,3,1,7,101,110,118,50,50,57,51,32,2,32,16,6,44,11,64,116,101, -115,116,33,65,118,97,108,117,101,34,3,1,7,101,110,118,50,50,57,52,35, +31,3,1,7,101,110,118,50,50,57,53,32,2,32,16,6,44,11,64,116,101, +115,116,33,65,118,97,108,117,101,34,3,1,7,101,110,118,50,50,57,54,35, 2,35,18,104,62,61,62,36,48,35,34,33,42,41,40,39,38,45,16,8,47, 11,2,33,2,34,65,101,108,115,101,63,37,2,35,2,35,2,35,18,105,63, 108,101,116,38,50,35,34,33,42,41,40,39,38,45,47,16,4,49,11,63,103, -101,110,39,3,1,7,101,110,118,50,50,57,53,40,18,158,62,105,102,41,50, +101,110,39,3,1,7,101,110,118,50,50,57,55,40,18,158,62,105,102,41,50, 18,158,2,41,48,18,158,2,0,48,18,16,2,158,2,0,48,9,18,105,2, 38,52,35,34,33,42,41,40,39,38,45,47,16,4,51,11,2,39,3,1,7, -101,110,118,50,50,57,54,42,18,158,2,41,52,18,16,2,158,2,41,48,9, +101,110,118,50,50,57,56,42,18,158,2,41,52,18,16,2,158,2,41,48,9, 18,16,2,158,2,0,48,9,11,9,93,68,35,37,107,101,114,110,101,108,43, 95,2,6,2,17,2,43,0}; EVAL_ONE_SIZED_STR((char *)expr, 1246); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,24,252,36,4,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,24,252,36,4,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,73,35,37,115,116, 114,117,99,116,45,105,110,102,111,1,29,2,11,11,10,10,10,32,80,158,32, 32,20,98,158,16,9,30,3,2,2,74,105,100,101,110,116,105,102,105,101,114, @@ -317,7 +317,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 1073); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,27,252,223,3,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,27,252,223,3,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,71,35,37,100,115, 45,104,101,108,112,101,114,1,29,2,11,11,10,10,10,32,80,158,32,32,20, 98,158,16,6,30,3,2,2,1,20,108,105,115,116,45,62,105,109,109,117,116, @@ -343,7 +343,7 @@ 51,248,22,52,196,194,27,248,22,80,195,27,249,22,51,248,22,52,198,196,28, 248,22,57,194,192,28,248,22,57,248,22,53,195,249,22,51,248,22,52,196,194, 249,198,248,22,80,196,249,22,51,248,22,52,198,196,194,9,27,28,197,249,22, -252,80,3,199,89,162,40,32,32,9,222,11,11,87,94,28,197,28,28,248,80, +252,81,3,199,89,162,40,32,32,9,222,11,11,87,94,28,197,28,28,248,80, 158,36,34,193,248,22,252,9,2,248,80,158,37,35,194,10,251,22,252,39,2, 11,28,248,80,158,40,34,197,6,63,63,112,97,114,101,110,116,32,115,116,114, 117,99,116,32,105,110,102,111,114,109,97,116,105,111,110,32,100,111,101,115,32, @@ -368,7 +368,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 1004); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,102,252,162,11,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,102,252,162,11,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,74,35,37,100,101, 102,105,110,101,45,101,116,45,97,108,1,29,2,11,11,10,10,10,32,80,158, 32,32,20,98,158,16,0,16,0,11,11,16,0,32,11,16,6,64,119,104,101, @@ -395,14 +395,14 @@ 9,11,159,73,35,37,115,116,114,117,99,116,45,105,110,102,111,25,9,11,159, 66,35,37,99,111,110,100,26,9,11,159,2,19,9,11,159,2,12,9,11,16, 0,96,33,8,254,1,11,16,0,9,18,103,2,23,44,35,34,33,16,4,43, -11,2,23,3,1,7,101,110,118,50,51,50,53,27,16,4,42,11,64,98,97, -115,101,28,3,1,7,101,110,118,50,51,50,55,29,16,4,41,11,64,99,111, -100,101,30,3,1,7,101,110,118,50,51,50,56,31,16,4,40,11,64,98,111, -100,121,32,3,1,7,101,110,118,50,51,50,57,33,16,4,39,11,65,102,105, -114,115,116,34,3,1,7,101,110,118,50,51,51,48,35,16,4,38,11,65,112, -98,111,100,121,36,3,1,7,101,110,118,50,51,51,49,37,18,16,2,99,73, +11,2,23,3,1,7,101,110,118,50,51,50,55,27,16,4,42,11,64,98,97, +115,101,28,3,1,7,101,110,118,50,51,50,57,29,16,4,41,11,64,99,111, +100,101,30,3,1,7,101,110,118,50,51,51,48,31,16,4,40,11,64,98,111, +100,121,32,3,1,7,101,110,118,50,51,51,49,33,16,4,39,11,65,102,105, +114,115,116,34,3,1,7,101,110,118,50,51,51,50,35,16,4,38,11,65,112, +98,111,100,121,36,3,1,7,101,110,118,50,51,51,51,37,18,16,2,99,73, 100,101,102,105,110,101,45,118,97,108,117,101,115,38,46,35,34,33,43,16,4, -45,11,2,9,3,1,7,101,110,118,50,51,50,54,39,9,18,16,2,158,75, +45,11,2,9,3,1,7,101,110,118,50,51,50,56,39,9,18,16,2,158,75, 100,101,102,105,110,101,45,115,121,110,116,97,120,101,115,40,46,9,11,16,5, 93,2,3,89,162,32,33,45,9,223,0,27,248,22,216,195,28,28,192,249,22, 183,248,22,64,195,34,11,250,22,209,20,15,159,36,32,34,250,22,59,20,15, @@ -410,15 +410,15 @@ 41,34,34,248,80,158,42,33,248,80,158,43,33,204,197,250,22,252,39,2,11, 6,10,10,98,97,100,32,115,121,110,116,97,120,197,32,20,98,158,16,2,2, 14,2,11,16,3,18,99,2,23,49,35,34,33,16,4,48,11,61,120,41,3, -1,7,101,110,118,50,51,51,51,42,16,4,47,11,61,108,43,3,1,7,101, -110,118,50,51,51,52,44,18,158,62,105,102,45,49,18,158,2,0,49,11,16, +1,7,101,110,118,50,51,51,53,42,16,4,47,11,61,108,43,3,1,7,101, +110,118,50,51,51,54,44,18,158,62,105,102,45,49,18,158,2,0,49,11,16, 5,93,2,4,89,162,32,33,45,9,223,0,27,248,22,216,195,28,28,192,249, 22,183,248,22,64,195,34,11,250,22,209,20,15,159,36,32,32,251,22,59,20, 15,159,40,33,32,248,22,78,200,20,15,159,40,34,32,249,22,61,20,15,159, 42,35,32,248,22,80,202,197,250,22,252,39,2,11,6,10,10,98,97,100,32, 115,121,110,116,97,120,197,32,20,98,158,16,0,16,4,18,99,2,23,52,35, -34,33,16,4,51,11,2,41,3,1,7,101,110,118,50,51,51,54,46,16,4, -50,11,2,43,3,1,7,101,110,118,50,51,51,55,47,18,158,2,45,52,18, +34,33,16,4,51,11,2,41,3,1,7,101,110,118,50,51,51,56,46,16,4, +50,11,2,43,3,1,7,101,110,118,50,51,51,57,47,18,158,2,45,52,18, 158,93,158,64,118,111,105,100,48,52,52,18,158,2,0,52,11,16,5,93,2, 6,89,162,32,33,48,9,223,0,27,248,22,216,195,28,28,192,28,249,22,183, 248,22,64,195,34,248,80,158,34,32,248,22,78,194,11,11,27,248,22,78,194, @@ -427,9 +427,9 @@ 249,80,158,45,34,248,80,158,46,35,203,9,199,250,22,252,39,2,11,6,10, 10,98,97,100,32,115,121,110,116,97,120,197,32,20,98,158,16,4,2,16,2, 11,2,18,2,21,16,1,18,100,2,23,56,35,34,33,16,4,55,11,2,30, -3,1,7,101,110,118,50,51,51,57,50,16,4,54,11,2,43,3,1,7,101, -110,118,50,51,52,48,51,16,6,53,11,63,118,97,114,52,65,101,120,112,114, -115,53,3,1,7,101,110,118,50,51,52,49,54,2,54,11,16,5,93,2,7, +3,1,7,101,110,118,50,51,52,49,50,16,4,54,11,2,43,3,1,7,101, +110,118,50,51,52,50,51,16,6,53,11,63,118,97,114,52,65,101,120,112,114, +115,53,3,1,7,101,110,118,50,51,52,51,54,2,54,11,16,5,93,2,7, 27,89,162,32,36,53,69,109,97,107,101,45,99,111,114,101,55,223,1,250,22, 59,70,108,101,116,45,118,97,108,117,101,115,56,248,22,59,249,22,59,21,97, 64,116,121,112,101,57,65,109,97,107,101,114,58,64,112,114,101,100,59,66,97, @@ -475,7 +475,7 @@ 117,101,110,99,101,249,22,3,89,162,32,33,38,9,224,6,3,27,248,80,158, 35,33,196,28,192,192,249,195,6,27,27,102,105,101,108,100,32,110,97,109,101, 32,110,111,116,32,97,32,105,100,101,110,116,105,102,105,101,114,197,248,80,158, -39,34,248,22,78,198,28,249,22,71,247,22,252,82,3,21,93,70,101,120,112, +39,34,248,22,78,198,28,249,22,71,247,22,252,83,3,21,93,70,101,120,112, 114,101,115,115,105,111,110,71,248,194,6,35,35,97,108,108,111,119,101,100,32, 111,110,108,121,32,105,110,32,100,101,102,105,110,105,116,105,111,110,32,99,111, 110,116,101,120,116,115,12,27,28,248,80,158,38,33,248,22,52,197,248,22,52, @@ -492,29 +492,29 @@ 101,45,116,121,112,101,45,101,114,114,111,114,76,94,2,63,2,7,6,15,15, 105,110,115,112,101,99,116,111,114,32,111,114,32,35,102,2,72,196,192,250,22, 59,2,40,248,22,59,23,17,203,23,16,28,196,250,22,218,195,75,100,105,115, -97,112,112,101,97,114,101,100,45,117,115,101,77,248,22,252,85,3,200,192,33, +97,112,112,101,97,114,101,100,45,117,115,101,77,248,22,252,86,3,200,192,33, 20,98,158,16,9,2,18,2,16,2,21,2,11,30,78,2,12,69,115,116,120, 45,108,105,115,116,63,79,8,30,80,2,12,69,115,116,120,45,112,97,105,114, 63,81,11,2,14,30,82,2,12,69,115,116,120,45,110,117,108,108,63,83,10, 30,84,2,24,72,103,101,116,45,115,116,120,45,105,110,102,111,85,0,16,2, 18,16,2,158,93,101,77,99,117,114,114,101,110,116,45,105,110,115,112,101,99, 116,111,114,86,8,29,35,34,33,16,4,8,28,11,2,55,3,1,7,101,110, -118,50,51,52,51,87,16,4,59,11,63,115,116,120,88,3,1,7,101,110,118, -50,51,52,55,89,16,4,58,11,2,32,3,1,7,101,110,118,50,51,52,56, -90,16,6,57,11,2,69,2,70,3,1,7,101,110,118,50,51,52,57,91,2, +118,50,51,52,53,87,16,4,59,11,63,115,116,120,88,3,1,7,101,110,118, +50,51,52,57,89,16,4,58,11,2,32,3,1,7,101,110,118,50,51,53,48, +90,16,6,57,11,2,69,2,70,3,1,7,101,110,118,50,51,53,49,91,2, 91,8,29,9,18,16,2,104,2,23,8,33,35,34,33,8,28,59,58,57,16, 10,8,32,11,64,110,97,109,101,92,71,102,105,101,108,100,45,110,97,109,101, 115,93,2,72,68,115,117,112,101,114,45,105,100,94,3,1,7,101,110,118,50, -51,54,51,95,2,95,2,95,2,95,16,4,8,31,11,73,100,101,102,105,110, -101,100,45,110,97,109,101,115,96,3,1,7,101,110,118,50,51,54,52,97,16, +51,54,53,95,2,95,2,95,2,95,16,4,8,31,11,73,100,101,102,105,110, +101,100,45,110,97,109,101,115,96,3,1,7,101,110,118,50,51,54,54,97,16, 6,8,30,11,76,115,117,112,101,114,45,105,100,47,115,116,114,117,99,116,58, -98,68,115,116,120,45,105,110,102,111,99,3,1,7,101,110,118,50,51,54,54, +98,68,115,116,120,45,105,110,102,111,99,3,1,7,101,110,118,50,51,54,56, 100,2,100,9,11,9,93,68,35,37,107,101,114,110,101,108,101,98,2,101,2, 12,2,19,2,26,2,25,2,24,0}; EVAL_ONE_SIZED_STR((char *)expr, 2991); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,18,252,4,1,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,18,252,4,1,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,74,35,37,115,109, 97,108,108,45,115,99,104,101,109,101,1,29,2,11,11,10,10,10,32,80,158, 32,32,20,98,158,16,0,16,0,11,11,16,0,32,11,16,10,63,97,110,100, @@ -531,7 +531,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 273); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,181,252,227,36,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,181,252,227,36,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,64,35,37,115,99, 1,29,2,11,11,10,10,10,48,80,158,32,32,20,98,158,16,37,30,3,2, 2,64,46,46,46,63,4,254,1,30,5,2,2,68,115,116,120,45,109,101,109, @@ -576,35 +576,35 @@ 2,18,98,63,46,46,46,79,38,98,36,10,32,11,94,159,74,35,37,115,109, 97,108,108,45,115,99,104,101,109,101,80,9,11,159,2,18,9,11,16,62,2, 52,2,2,2,54,2,2,2,35,2,2,2,25,2,2,2,64,2,2,2,76, -2,2,2,8,2,2,74,115,121,110,116,97,120,45,109,97,112,112,105,110,103, -81,2,2,2,56,2,2,2,50,2,2,2,70,2,2,2,44,2,2,2,14, -2,2,2,4,2,2,2,46,2,2,2,78,2,2,2,58,2,2,2,62,2, -2,2,68,2,2,2,72,2,2,2,60,2,2,2,12,2,2,2,27,2,2, -2,29,2,2,2,74,2,2,2,10,2,2,2,16,2,2,2,6,2,2,2, +2,2,2,8,2,2,2,50,2,2,74,115,121,110,116,97,120,45,109,97,112, +112,105,110,103,81,2,2,2,56,2,2,2,14,2,2,2,44,2,2,2,4, +2,2,2,46,2,2,2,74,2,2,2,60,2,2,2,58,2,2,2,62,2, +2,2,72,2,2,2,68,2,2,2,78,2,2,2,12,2,2,2,27,2,2, +2,29,2,2,2,70,2,2,2,10,2,2,2,16,2,2,2,6,2,2,2, 33,2,2,2,48,2,2,2,66,2,2,96,35,33,11,16,0,96,34,8,254, -1,11,16,0,16,4,33,11,61,115,82,3,1,7,101,110,118,50,51,55,49, +1,11,16,0,16,4,33,11,61,115,82,3,1,7,101,110,118,50,51,55,51, 83,18,103,2,79,45,36,35,34,16,10,44,11,61,112,84,67,112,114,111,116, 111,45,114,85,61,107,86,64,100,101,115,116,87,3,1,7,101,110,118,50,52, -53,49,88,2,88,2,88,2,88,16,6,43,11,68,101,120,112,97,110,100,101, -114,89,63,116,111,112,90,3,1,7,101,110,118,50,52,53,53,91,3,1,7, -101,110,118,50,52,53,51,92,16,6,42,11,2,89,2,90,2,91,2,92,16, +53,51,88,2,88,2,88,2,88,16,6,43,11,68,101,120,112,97,110,100,101, +114,89,63,116,111,112,90,3,1,7,101,110,118,50,52,53,55,91,3,1,7, +101,110,118,50,52,53,53,92,16,6,42,11,2,89,2,90,2,91,2,92,16, 10,41,11,69,108,111,99,97,108,45,116,111,112,93,73,117,115,101,45,101,108, 108,105,112,115,101,115,63,94,72,117,115,101,45,116,97,105,108,45,112,111,115, -95,65,104,97,115,104,33,96,3,1,7,101,110,118,50,52,53,55,97,2,97, +95,65,104,97,115,104,33,96,3,1,7,101,110,118,50,52,53,57,97,2,97, 2,97,2,97,16,10,40,11,66,112,45,104,101,97,100,98,68,101,108,45,99, 111,117,110,116,99,66,114,101,115,116,45,112,100,67,108,97,115,116,45,101,108, -101,3,1,7,101,110,118,50,52,53,56,102,2,102,2,102,2,102,16,4,39, -11,64,108,111,111,112,103,3,1,7,101,110,118,50,52,54,49,104,11,11,16, +101,3,1,7,101,110,118,50,52,54,48,102,2,102,2,102,2,102,16,4,39, +11,64,108,111,111,112,103,3,1,7,101,110,118,50,52,54,51,104,11,11,16, 21,2,4,2,33,2,35,2,29,2,58,2,54,2,56,2,60,2,50,2,16, 2,52,2,27,2,25,2,14,2,62,2,12,2,74,2,78,2,66,2,6,2, 10,53,16,9,10,10,10,10,10,10,10,10,10,16,9,2,46,2,44,2,48, 2,68,2,64,2,8,2,72,2,76,2,70,16,9,11,11,11,11,11,11,11, 11,11,16,9,2,46,2,44,2,48,2,68,2,64,2,8,2,72,2,76,2, -70,41,41,93,16,5,93,2,81,253,22,60,248,247,22,252,87,3,20,15,159, -39,32,32,248,247,22,252,87,3,20,15,159,39,33,32,248,247,22,252,87,3, -20,15,159,39,34,32,249,22,60,248,247,22,252,87,3,20,15,159,41,35,32, -248,247,22,252,87,3,20,15,159,41,36,32,249,22,60,248,247,22,252,87,3, -20,15,159,41,37,32,248,247,22,252,87,3,20,15,159,41,38,32,10,42,20, +70,41,41,93,16,5,93,2,81,253,22,60,248,247,22,252,88,3,20,15,159, +39,32,32,248,247,22,252,88,3,20,15,159,39,33,32,248,247,22,252,88,3, +20,15,159,39,34,32,249,22,60,248,247,22,252,88,3,20,15,159,41,35,32, +248,247,22,252,88,3,20,15,159,41,36,32,249,22,60,248,247,22,252,88,3, +20,15,159,41,37,32,248,247,22,252,88,3,20,15,159,41,38,32,10,42,20, 98,158,16,0,16,7,18,97,2,66,46,36,35,34,18,158,2,68,46,18,158, 2,70,46,18,158,2,76,46,18,158,2,72,46,18,158,2,78,46,18,158,2, 74,46,11,116,83,159,32,93,80,159,32,32,33,89,162,32,33,36,2,4,223, @@ -985,7 +985,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 9456); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,133,252,150,15,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,133,252,150,15,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,69,35,37,115,116, 120,99,97,115,101,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158, 16,1,30,3,2,2,1,20,101,108,108,105,112,115,105,115,45,99,111,117,110, @@ -1070,15 +1070,15 @@ 11,159,2,15,9,11,16,6,2,6,2,2,2,5,2,2,2,4,2,2,98, 38,10,33,11,95,159,2,28,9,11,159,2,35,9,11,159,2,15,9,11,16, 0,96,37,8,254,1,11,16,0,16,4,36,11,61,120,36,3,1,7,101,110, -118,50,53,52,53,37,16,4,35,11,61,108,38,3,1,7,101,110,118,50,53, -52,55,39,16,14,34,11,63,119,104,111,40,71,97,114,103,45,105,115,45,115, +118,50,53,52,55,37,16,4,35,11,61,108,38,3,1,7,101,110,118,50,53, +52,57,39,16,14,34,11,63,119,104,111,40,71,97,114,103,45,105,115,45,115, 116,120,63,41,64,101,120,112,114,42,63,107,119,115,43,68,108,105,116,45,99, 111,109,112,44,67,99,108,97,117,115,101,115,45,3,1,7,101,110,118,50,53, -53,48,46,2,46,2,46,2,46,2,46,2,46,16,8,33,11,68,112,97,116, +53,50,46,2,46,2,46,2,46,2,46,2,46,16,8,33,11,68,112,97,116, 116,101,114,110,115,47,67,102,101,110,100,101,114,115,48,67,97,110,115,119,101, -114,115,49,3,1,7,101,110,118,50,53,53,52,50,2,50,2,50,18,102,64, +114,115,49,3,1,7,101,110,118,50,53,53,54,50,2,50,2,50,18,102,64, 114,115,108,116,51,43,39,38,37,36,35,34,33,16,4,42,11,2,34,3,1, -7,101,110,118,50,53,53,56,52,18,102,2,11,45,39,38,37,36,35,34,33, +7,101,110,118,50,53,54,48,52,18,102,2,11,45,39,38,37,36,35,34,33, 16,8,44,11,2,34,2,51,73,112,97,116,116,101,114,110,45,118,97,114,115, 115,53,2,52,2,52,2,52,18,102,2,7,47,39,38,37,36,35,34,33,16, 10,46,11,2,34,2,51,2,53,76,108,105,116,45,99,111,109,112,45,105,115, @@ -1087,38 +1087,38 @@ 106,101,99,116,56,47,18,158,72,113,117,111,116,101,45,115,121,110,116,97,120, 57,47,18,104,78,114,97,105,115,101,45,115,121,110,116,97,120,45,101,114,114, 111,114,58,50,39,38,37,36,35,34,33,46,16,4,49,11,2,8,3,1,7, -101,110,118,50,53,54,48,59,16,4,48,11,1,20,117,110,102,108,97,116,45, +101,110,118,50,53,54,50,59,16,4,48,11,1,20,117,110,102,108,97,116,45, 112,97,116,116,101,114,110,45,118,97,114,115,115,60,3,1,7,101,110,118,50, -53,54,49,61,18,108,2,13,55,39,38,37,36,35,34,33,46,49,48,16,4, -54,11,64,114,101,115,116,62,3,1,7,101,110,118,50,53,54,50,63,16,10, +53,54,51,61,18,108,2,13,55,39,38,37,36,35,34,33,46,49,48,16,4, +54,11,64,114,101,115,116,62,3,1,7,101,110,118,50,53,54,52,63,16,10, 53,11,67,112,97,116,116,101,114,110,64,66,102,101,110,100,101,114,65,79,117, 110,102,108,97,116,45,112,97,116,116,101,114,110,45,118,97,114,115,66,66,97, -110,115,119,101,114,67,3,1,7,101,110,118,50,53,54,51,68,2,68,2,68, +110,115,119,101,114,67,3,1,7,101,110,118,50,53,54,53,68,2,68,2,68, 2,68,16,8,52,11,76,116,97,105,108,45,112,97,116,116,101,114,110,45,118, 97,114,69,69,116,101,109,112,45,118,97,114,115,70,72,112,97,116,116,101,114, -110,45,118,97,114,115,71,3,1,7,101,110,118,50,53,54,57,72,3,1,7, -101,110,118,50,53,54,55,73,3,1,7,101,110,118,50,53,54,53,74,16,8, +110,45,118,97,114,115,71,3,1,7,101,110,118,50,53,55,49,72,3,1,7, +101,110,118,50,53,54,57,73,3,1,7,101,110,118,50,53,54,55,74,16,8, 51,11,2,69,2,70,2,71,2,72,2,73,2,74,18,109,2,55,57,39,38, 37,36,35,34,33,46,49,48,54,53,52,51,16,8,56,11,71,100,111,45,116, 114,121,45,110,101,120,116,75,64,109,116,99,104,76,70,99,97,110,116,45,102, -97,105,108,63,77,3,1,7,101,110,118,50,53,55,53,78,2,78,2,78,18, +97,105,108,63,77,3,1,7,101,110,118,50,53,55,55,78,2,78,2,78,18, 158,2,7,57,18,158,62,105,102,79,57,18,158,2,55,57,18,111,63,99,100, 114,80,8,28,39,38,37,36,35,34,33,46,49,48,54,53,52,51,56,16,6, 59,11,71,112,97,116,116,101,114,110,45,118,97,114,81,68,116,101,109,112,45, -118,97,114,82,3,1,7,101,110,118,50,53,55,54,83,2,83,16,4,58,11, -63,112,111,115,84,3,1,7,101,110,118,50,53,55,55,85,18,158,64,99,100, +118,97,114,82,3,1,7,101,110,118,50,53,55,56,83,2,83,16,4,58,11, +63,112,111,115,84,3,1,7,101,110,118,50,53,55,57,85,18,158,64,99,100, 100,114,86,8,28,18,158,65,99,100,100,100,114,87,8,28,18,158,66,99,100, 100,100,100,114,88,8,28,18,158,63,99,97,114,89,8,28,18,158,64,99,97, 100,114,90,8,28,18,158,65,99,97,100,100,114,91,8,28,18,158,66,99,97, 100,100,100,114,92,8,28,18,112,69,108,105,115,116,45,116,97,105,108,93,8, 30,39,38,37,36,35,34,33,46,49,48,54,53,52,51,56,59,58,16,4,8, -29,11,68,97,99,99,101,115,115,111,114,94,3,1,7,101,110,118,50,53,55, -56,95,18,158,68,108,105,115,116,45,114,101,102,96,8,30,18,158,1,22,108, +29,11,68,97,99,99,101,115,115,111,114,94,3,1,7,101,110,118,50,53,56, +48,95,18,158,68,108,105,115,116,45,114,101,102,96,8,30,18,158,1,22,108, 101,116,114,101,99,45,115,121,110,116,97,120,101,115,43,118,97,108,117,101,115, 97,57,18,110,79,109,97,107,101,45,115,121,110,116,97,120,45,109,97,112,112, 105,110,103,98,8,32,39,38,37,36,35,34,33,46,49,48,54,53,52,51,56, 16,8,8,31,11,2,81,78,117,110,102,108,97,116,45,112,97,116,116,101,114, -110,45,118,97,114,99,2,82,3,1,7,101,110,118,50,53,55,57,100,2,100, +110,45,118,97,114,99,2,82,3,1,7,101,110,118,50,53,56,49,100,2,100, 2,100,18,158,2,57,8,32,18,158,2,79,57,18,109,2,55,8,34,39,38, 37,36,35,34,33,46,49,48,54,53,52,51,16,10,8,33,11,2,75,2,76, 2,77,61,109,101,2,78,2,78,2,78,2,78,18,158,2,9,8,34,11,16, @@ -1127,7 +1127,7 @@ 33,196,28,248,80,158,35,32,193,248,80,158,35,34,248,80,158,36,33,194,11, 11,12,250,22,252,39,2,11,6,8,8,98,97,100,32,102,111,114,109,197,250, 22,209,210,27,248,80,158,38,35,248,80,158,39,33,200,27,251,80,158,42,36, -197,11,9,11,27,249,22,2,89,162,32,33,37,9,223,9,27,249,22,252,80, +197,11,9,11,27,249,22,2,89,162,32,33,37,9,223,9,27,249,22,252,81, 3,196,89,162,40,32,32,9,222,11,28,248,80,158,34,37,193,192,11,195,28, 28,28,248,22,57,193,10,248,22,252,9,2,249,22,5,89,162,32,33,33,9, 222,192,195,248,80,158,40,38,195,11,249,22,59,20,15,159,41,33,42,196,27, @@ -1156,20 +1156,20 @@ 121,110,116,97,120,45,109,97,112,112,105,110,103,45,100,101,112,116,104,112,6, 30,113,2,28,1,21,115,121,110,116,97,120,45,109,97,112,112,105,110,103,45, 118,97,108,118,97,114,114,7,2,19,16,5,18,100,2,7,8,38,39,38,37, -16,4,8,37,11,2,36,3,1,7,101,110,118,50,53,56,51,115,16,4,8, +16,4,8,37,11,2,36,3,1,7,101,110,118,50,53,56,53,115,16,4,8, 36,11,68,104,101,114,101,45,115,116,120,116,3,1,7,101,110,118,50,53,56, -53,117,16,4,8,35,11,2,116,2,117,18,102,2,57,8,43,39,38,37,8, +55,117,16,4,8,35,11,2,116,2,117,18,102,2,57,8,43,39,38,37,8, 37,16,4,8,42,11,2,116,2,117,16,4,8,41,11,2,64,3,1,7,101, -110,118,50,53,56,57,118,16,4,8,40,11,71,117,110,105,113,117,101,45,118, -97,114,115,119,3,1,7,101,110,118,50,53,57,48,120,16,4,8,39,11,72, +110,118,50,53,57,49,118,16,4,8,40,11,71,117,110,105,113,117,101,45,118, +97,114,115,119,3,1,7,101,110,118,50,53,57,50,120,16,4,8,39,11,72, 118,97,114,45,98,105,110,100,105,110,103,115,121,3,1,7,101,110,118,50,53, -57,49,122,18,105,9,8,47,39,38,37,8,37,8,42,8,41,8,40,8,39, +57,51,122,18,105,9,8,47,39,38,37,8,37,8,42,8,41,8,40,8,39, 16,6,8,46,11,67,112,114,111,116,111,45,114,123,76,110,111,110,45,112,97, -116,116,101,114,110,45,118,97,114,115,124,3,1,7,101,110,118,50,53,57,55, +116,116,101,114,110,45,118,97,114,115,124,3,1,7,101,110,118,50,53,57,57, 125,2,125,16,6,8,45,11,79,98,117,105,108,100,45,102,114,111,109,45,116, -101,109,112,108,97,116,101,126,61,114,127,3,1,7,101,110,118,50,54,48,54, +101,109,112,108,97,116,101,126,61,114,127,3,1,7,101,110,118,50,54,48,56, 128,2,128,16,4,8,44,11,63,108,101,110,129,3,1,7,101,110,118,50,54, -48,57,130,18,158,65,108,105,115,116,42,131,8,47,18,104,2,57,8,48,39, +49,49,130,18,158,65,108,105,115,116,42,131,8,47,18,104,2,57,8,48,39, 38,37,8,37,8,42,8,41,8,40,8,39,8,46,8,45,11,93,83,159,32, 93,80,159,32,32,33,89,162,32,34,38,2,4,222,251,22,252,39,2,2,6, 6,47,47,105,110,99,111,109,112,97,116,105,98,108,101,32,101,108,108,105,112, @@ -1179,7 +1179,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 4003); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,65,252,188,6,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,65,252,188,6,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,68,35,37,115,116, 120,108,111,99,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158,16, 2,30,3,2,2,68,108,111,99,45,105,110,115,112,4,254,1,30,5,2,2, @@ -1204,18 +1204,18 @@ 35,102,14,1,30,15,2,11,67,115,116,120,45,99,97,114,16,5,30,17,2, 11,67,115,116,120,45,99,100,114,18,6,30,19,2,11,69,115,116,120,45,108, 105,115,116,63,20,8,30,21,2,11,69,115,116,120,45,62,108,105,115,116,22, -4,16,6,18,16,2,95,66,115,114,99,116,97,103,23,34,93,8,252,56,7, -95,9,8,252,56,7,69,35,37,115,116,120,99,97,115,101,24,18,100,64,100, +4,16,6,18,16,2,95,66,115,114,99,116,97,103,23,34,93,8,252,58,7, +95,9,8,252,58,7,69,35,37,115,116,120,99,97,115,101,24,18,100,64,100, 101,115,116,25,41,98,40,10,32,11,94,159,74,35,37,100,101,102,105,110,101, 45,101,116,45,97,108,26,9,11,159,2,24,9,11,16,10,2,7,2,2,2, 8,2,2,2,9,2,2,2,6,2,2,2,4,2,2,98,39,10,33,11,93, 159,2,24,9,11,16,0,96,38,8,254,1,11,16,0,16,4,37,11,63,115, -116,120,27,3,1,7,101,110,118,50,54,49,51,28,16,12,36,11,3,1,4, +116,120,27,3,1,7,101,110,118,50,54,49,53,28,16,12,36,11,3,1,4, 103,50,56,48,29,3,1,4,103,50,56,49,30,3,1,4,103,50,56,50,31, 3,1,4,103,50,56,51,32,3,1,4,103,50,56,52,33,3,1,7,101,110, -118,50,54,50,49,34,2,34,2,34,2,34,2,34,16,12,35,11,61,95,35, +118,50,54,50,51,34,2,34,2,34,2,34,2,34,16,12,35,11,61,95,35, 64,115,116,120,101,36,62,107,108,37,64,105,100,61,63,38,66,99,108,97,117, -115,101,39,3,1,7,101,110,118,50,54,50,50,40,2,40,2,40,2,40,2, +115,101,39,3,1,7,101,110,118,50,54,50,52,40,2,40,2,40,2,40,2, 40,18,158,63,99,116,120,41,41,18,158,73,115,121,110,116,97,120,45,99,97, 115,101,42,42,42,41,18,158,11,41,18,158,2,41,41,11,16,5,93,2,7, 89,162,32,33,55,9,223,0,27,28,248,80,158,34,32,195,249,80,158,35,33, @@ -1230,12 +1230,12 @@ 52,37,38,248,22,88,23,15,20,15,159,45,38,38,195,250,22,252,39,2,11, 6,10,10,98,97,100,32,115,121,110,116,97,120,197,32,20,98,158,16,6,2, 10,2,13,2,15,2,17,2,19,2,21,16,7,18,16,2,95,2,23,42,93, -8,252,64,7,95,9,8,252,64,7,2,24,18,100,2,25,46,40,39,38,16, -4,45,11,2,27,3,1,7,101,110,118,50,54,51,49,43,16,10,44,11,3, +8,252,66,7,95,9,8,252,66,7,2,24,18,100,2,25,46,40,39,38,16, +4,45,11,2,27,3,1,7,101,110,118,50,54,51,51,43,16,10,44,11,3, 1,4,103,50,56,53,44,3,1,4,103,50,56,54,45,3,1,4,103,50,56, -55,46,3,1,4,103,50,56,56,47,3,1,7,101,110,118,50,54,51,56,48, +55,46,3,1,4,103,50,56,56,47,3,1,7,101,110,118,50,54,52,48,48, 2,48,2,48,2,48,16,10,43,11,2,35,2,36,2,37,2,39,3,1,7, -101,110,118,50,54,51,57,49,2,49,2,49,2,49,18,158,2,41,46,18,158, +101,110,118,50,54,52,49,49,2,49,2,49,2,49,18,158,2,41,46,18,158, 2,42,46,18,158,11,46,18,158,79,109,111,100,117,108,101,45,105,100,101,110, 116,105,102,105,101,114,61,63,50,46,18,158,2,41,46,11,16,5,93,2,8, 89,162,32,33,55,9,223,0,27,28,248,80,158,34,32,195,249,80,158,35,33, @@ -1250,12 +1250,12 @@ 22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197,32,20, 98,158,16,6,2,10,2,13,2,15,2,17,30,51,2,11,69,97,112,112,101, 110,100,47,35,102,52,0,30,53,2,11,71,115,116,120,45,110,117,108,108,47, -35,102,54,9,16,8,18,16,2,95,2,23,47,93,8,252,74,7,95,9,8, -252,74,7,2,24,18,100,2,25,51,40,39,38,16,4,50,11,2,27,3,1, -7,101,110,118,50,54,52,55,55,16,8,49,11,3,1,4,103,50,56,57,56, +35,102,54,9,16,8,18,16,2,95,2,23,47,93,8,252,76,7,95,9,8, +252,76,7,2,24,18,100,2,25,51,40,39,38,16,4,50,11,2,27,3,1, +7,101,110,118,50,54,52,57,55,16,8,49,11,3,1,4,103,50,56,57,56, 3,1,4,103,50,57,48,57,3,1,4,103,50,57,49,58,3,1,7,101,110, -118,50,54,53,51,59,2,59,2,59,16,8,48,11,2,35,63,108,111,99,60, -67,112,97,116,116,101,114,110,61,3,1,7,101,110,118,50,54,53,52,62,2, +118,50,54,53,53,59,2,59,2,59,16,8,48,11,2,35,63,108,111,99,60, +67,112,97,116,116,101,114,110,61,3,1,7,101,110,118,50,54,53,54,62,2, 62,2,62,18,158,2,41,51,18,158,2,6,51,18,158,2,41,51,18,158,66, 115,121,110,116,97,120,63,51,18,158,2,41,51,18,158,2,41,51,11,94,83, 159,32,93,80,159,32,32,33,247,22,252,114,2,83,159,32,93,80,159,32,33, @@ -1265,7 +1265,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 1737); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,87,252,135,8,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,87,252,121,8,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,70,35,37,119,105, 116,104,45,115,116,120,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98, 158,16,7,30,3,2,2,76,119,105,116,104,45,115,121,110,116,97,120,45,102, @@ -1284,96 +1284,95 @@ 193,249,80,158,40,33,248,80,158,41,34,195,27,248,80,158,42,35,196,28,248, 80,158,42,37,193,248,80,158,42,38,193,11,11,11,11,11,28,192,27,248,22, 52,194,27,248,22,78,195,27,248,22,80,196,249,80,158,39,39,200,27,249,22, -61,197,198,27,20,15,159,41,33,44,250,22,209,20,15,159,44,34,44,250,22, -209,20,15,159,47,35,44,250,22,62,20,15,159,50,36,44,248,22,53,203,248, -22,52,203,20,15,159,47,37,44,195,27,28,248,80,158,36,32,195,249,80,158, -37,33,248,80,158,38,34,197,27,248,80,158,39,35,198,28,248,80,158,39,32, -193,249,80,158,40,40,27,248,80,158,42,34,196,28,248,80,158,42,37,193,248, -22,8,89,162,32,33,39,9,224,10,1,27,249,22,2,89,162,32,33,45,9, -224,4,5,249,80,158,35,41,28,248,80,158,36,32,197,249,80,158,37,33,248, -80,158,38,34,199,27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80, -158,40,33,248,80,158,41,34,195,248,80,158,41,36,248,80,158,42,35,196,11, -11,194,248,80,158,37,38,196,28,248,22,57,193,21,94,9,9,248,80,158,35, -42,193,11,27,248,80,158,42,35,196,28,248,80,158,42,32,193,249,80,158,43, -33,248,80,158,44,34,195,27,248,80,158,45,35,196,28,248,80,158,45,37,193, -248,80,158,45,38,193,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78, -195,27,248,22,87,196,27,248,22,90,197,27,248,22,89,198,27,248,22,216,27, -20,15,159,43,38,44,250,22,209,20,15,159,46,39,44,200,195,87,94,251,80, -158,45,43,201,206,27,20,15,159,46,40,44,250,22,209,20,15,159,49,41,44, -204,195,9,27,249,22,2,89,162,32,33,34,9,222,248,22,48,65,119,115,116, -109,112,19,195,27,249,22,2,89,162,32,33,36,9,222,250,22,209,195,64,104, -101,114,101,20,195,196,27,248,22,216,27,20,15,159,46,42,44,250,22,209,20, -15,159,49,43,44,204,195,250,22,209,20,15,159,47,44,44,250,22,59,63,108, -101,116,21,251,22,2,89,162,32,35,42,9,222,249,22,59,194,250,22,59,1, -20,100,97,116,117,109,45,62,115,121,110,116,97,120,45,111,98,106,101,99,116, -22,249,22,59,72,113,117,111,116,101,45,115,121,110,116,97,120,23,200,199,204, -203,205,249,91,159,33,11,20,12,95,33,192,89,162,32,34,57,64,108,111,111, -112,24,226,21,13,14,0,28,248,22,57,197,27,249,22,61,197,196,27,20,15, -159,37,45,44,250,22,209,20,15,159,40,46,44,250,22,209,20,15,159,43,47, -44,250,22,62,20,15,159,46,48,44,248,22,53,203,248,22,52,203,20,15,159, -43,49,44,195,26,8,22,59,73,115,121,110,116,97,120,45,99,97,115,101,42, -42,25,11,10,248,22,52,205,9,79,109,111,100,117,108,101,45,105,100,101,110, -116,105,102,105,101,114,61,63,26,249,22,59,248,22,52,23,16,249,204,248,22, -53,23,17,248,22,53,23,18,249,22,59,65,95,101,108,115,101,27,249,22,59, -2,4,249,22,59,2,23,250,22,209,11,248,22,208,248,22,52,23,24,248,22, -52,23,23,202,200,23,16,250,22,252,39,2,11,6,10,10,98,97,100,32,115, -121,110,116,97,120,197,32,20,98,158,16,12,30,28,2,12,69,115,116,120,45, -112,97,105,114,63,29,11,30,30,2,12,67,99,111,110,115,47,35,102,31,1, -30,32,2,12,67,115,116,120,45,99,97,114,33,5,30,34,2,12,67,115,116, -120,45,99,100,114,35,6,30,36,2,12,71,115,116,120,45,110,117,108,108,47, -35,102,37,9,30,38,2,12,2,13,8,30,39,2,12,2,15,4,30,40,68, -35,37,115,116,120,108,111,99,41,68,114,101,108,111,99,97,116,101,42,1,30, -43,2,12,69,97,112,112,101,110,100,47,35,102,44,0,30,45,2,12,73,115, -116,120,45,99,104,101,99,107,47,101,115,99,46,7,30,47,2,12,70,115,116, -120,45,114,111,116,97,116,101,48,12,30,49,64,35,37,115,99,50,74,103,101, -116,45,109,97,116,99,104,45,118,97,114,115,51,0,16,18,18,98,2,20,38, -98,36,10,32,11,96,159,69,35,37,115,116,120,99,97,115,101,52,9,11,159, -74,35,37,115,109,97,108,108,45,115,99,104,101,109,101,53,9,11,159,2,41, -9,11,159,2,12,9,11,16,10,2,4,2,2,2,18,2,2,2,10,2,2, -2,6,2,2,2,8,2,2,98,35,10,33,11,97,159,66,35,37,99,111,110, -100,54,9,11,159,71,35,37,113,113,45,97,110,100,45,111,114,55,9,11,159, -2,50,9,11,159,2,41,9,11,159,2,52,9,11,16,0,96,34,8,254,1, -11,16,0,16,4,33,11,61,120,56,3,1,7,101,110,118,50,54,54,53,57, -18,16,2,95,66,115,114,99,116,97,103,58,39,93,8,252,107,7,95,9,8, -252,107,7,2,52,18,100,64,100,101,115,116,59,42,36,35,34,33,16,8,41, -11,3,1,4,103,50,57,55,60,3,1,4,103,50,57,56,61,3,1,4,103, -50,57,57,62,3,1,7,101,110,118,50,54,55,50,63,2,63,2,63,16,8, -40,11,61,95,64,62,101,49,65,62,101,50,66,3,1,7,101,110,118,50,54, -55,51,67,2,67,2,67,18,158,63,99,116,120,68,42,18,158,2,0,42,18, -158,2,68,42,18,16,2,95,2,58,43,93,8,252,109,7,95,9,8,252,109, -7,2,52,18,100,2,59,46,36,35,34,33,16,12,45,11,3,1,4,103,50, -57,50,69,3,1,4,103,50,57,51,70,3,1,4,103,50,57,52,71,3,1, -4,103,50,57,53,72,3,1,4,103,50,57,54,73,3,1,7,101,110,118,50, -54,56,57,74,2,74,2,74,2,74,2,74,16,12,44,11,2,64,63,111,117, -116,75,62,105,110,76,2,65,2,66,3,1,7,101,110,118,50,54,57,48,77, -2,77,2,77,2,77,2,77,18,16,2,95,2,58,47,93,8,252,125,7,95, -9,8,252,125,7,2,52,18,101,2,59,49,36,35,34,33,45,44,16,4,48, -11,63,105,110,115,78,3,1,7,101,110,118,50,54,57,54,79,18,16,2,95, -2,58,50,93,8,252,126,7,95,9,8,252,126,7,2,52,18,158,2,59,49, -18,102,2,20,52,36,35,34,33,45,44,48,16,8,51,11,64,116,109,112,115, -80,65,104,101,114,101,115,81,64,111,117,116,115,82,3,1,7,101,110,118,50, -54,57,57,83,2,83,2,83,18,16,2,95,2,58,53,93,8,252,131,7,95, -9,8,252,131,7,2,52,18,103,2,59,55,36,35,34,33,45,44,48,51,16, -4,54,11,2,24,3,1,7,101,110,118,50,55,48,52,84,18,158,2,68,55, -18,158,2,0,55,18,158,2,68,55,11,96,83,159,32,93,80,159,32,32,33, -89,162,32,33,36,2,4,222,250,22,252,39,2,2,18,6,20,20,98,105,110, -100,105,110,103,32,109,97,116,99,104,32,102,97,105,108,101,100,195,83,159,32, -93,80,159,32,33,34,32,83,159,32,93,80,159,32,34,33,89,162,32,33,38, -2,8,223,0,87,94,83,160,34,11,80,159,32,33,34,248,22,170,80,159,33, -33,34,248,22,42,250,22,252,184,1,6,4,4,126,97,126,115,197,80,159,36, -33,34,83,159,32,93,80,159,32,35,33,89,162,32,33,37,2,10,223,0,87, -94,28,248,80,158,33,36,194,12,250,22,252,40,2,2,10,6,11,11,115,121, -110,116,97,120,32,112,97,105,114,196,27,248,80,158,34,37,195,249,22,2,89, -162,32,33,39,9,223,3,248,247,22,252,86,3,28,248,22,41,195,249,22,209, -11,248,80,159,36,34,34,197,28,248,22,252,136,1,195,249,22,209,11,248,80, -159,36,34,34,197,28,248,80,158,34,38,195,249,22,209,11,248,80,159,36,34, -34,248,22,210,198,249,22,209,11,248,80,159,36,34,34,64,116,101,109,112,85, -194,97,68,35,37,107,101,114,110,101,108,86,2,12,2,41,2,53,2,52,98, -2,86,2,52,2,41,2,50,2,55,2,54,0}; - EVAL_ONE_SIZED_STR((char *)expr, 2196); +61,198,197,27,20,15,159,41,33,44,250,22,209,20,15,159,44,34,44,250,22, +209,20,15,159,47,35,44,249,22,56,20,15,159,49,36,44,201,20,15,159,47, +37,44,195,27,28,248,80,158,36,32,195,249,80,158,37,33,248,80,158,38,34, +197,27,248,80,158,39,35,198,28,248,80,158,39,32,193,249,80,158,40,40,27, +248,80,158,42,34,196,28,248,80,158,42,37,193,248,22,8,89,162,32,33,39, +9,224,10,1,27,249,22,2,89,162,32,33,45,9,224,4,5,249,80,158,35, +41,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158,38,34,199,27,248, +80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33,248,80,158,41, +34,195,248,80,158,41,36,248,80,158,42,35,196,11,11,194,248,80,158,37,38, +196,28,248,22,57,193,21,94,9,9,248,80,158,35,42,193,11,27,248,80,158, +42,35,196,28,248,80,158,42,32,193,249,80,158,43,33,248,80,158,44,34,195, +27,248,80,158,45,35,196,28,248,80,158,45,37,193,248,80,158,45,38,193,11, +11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27, +248,22,90,197,27,248,22,89,198,27,248,22,216,27,20,15,159,43,38,44,250, +22,209,20,15,159,46,39,44,200,195,87,94,251,80,158,45,43,201,206,27,20, +15,159,46,40,44,250,22,209,20,15,159,49,41,44,204,195,9,27,249,22,2, +89,162,32,33,34,9,222,248,22,48,65,119,115,116,109,112,19,195,27,249,22, +2,89,162,32,33,36,9,222,250,22,209,195,64,104,101,114,101,20,195,196,27, +248,22,216,27,20,15,159,46,42,44,250,22,209,20,15,159,49,43,44,204,195, +250,22,209,20,15,159,47,44,44,250,22,59,63,108,101,116,21,251,22,2,89, +162,32,35,42,9,222,249,22,59,194,250,22,59,1,20,100,97,116,117,109,45, +62,115,121,110,116,97,120,45,111,98,106,101,99,116,22,249,22,59,72,113,117, +111,116,101,45,115,121,110,116,97,120,23,200,199,204,203,205,249,91,159,33,11, +20,12,95,33,192,89,162,32,34,57,64,108,111,111,112,24,226,21,13,14,0, +28,248,22,57,197,27,249,22,61,196,197,27,20,15,159,37,45,44,250,22,209, +20,15,159,40,46,44,250,22,209,20,15,159,43,47,44,249,22,56,20,15,159, +45,48,44,201,20,15,159,43,49,44,195,26,8,22,59,73,115,121,110,116,97, +120,45,99,97,115,101,42,42,25,11,10,248,22,52,205,9,79,109,111,100,117, +108,101,45,105,100,101,110,116,105,102,105,101,114,61,63,26,249,22,59,248,22, +52,23,16,249,204,248,22,53,23,17,248,22,53,23,18,249,22,59,65,95,101, +108,115,101,27,249,22,59,2,4,249,22,59,2,23,250,22,209,11,248,22,208, +248,22,52,23,24,248,22,52,23,23,202,200,23,16,250,22,252,39,2,11,6, +10,10,98,97,100,32,115,121,110,116,97,120,197,32,20,98,158,16,12,30,28, +2,12,69,115,116,120,45,112,97,105,114,63,29,11,30,30,2,12,67,99,111, +110,115,47,35,102,31,1,30,32,2,12,67,115,116,120,45,99,97,114,33,5, +30,34,2,12,67,115,116,120,45,99,100,114,35,6,30,36,2,12,71,115,116, +120,45,110,117,108,108,47,35,102,37,9,30,38,2,12,2,13,8,30,39,2, +12,2,15,4,30,40,68,35,37,115,116,120,108,111,99,41,68,114,101,108,111, +99,97,116,101,42,1,30,43,2,12,69,97,112,112,101,110,100,47,35,102,44, +0,30,45,2,12,73,115,116,120,45,99,104,101,99,107,47,101,115,99,46,7, +30,47,2,12,70,115,116,120,45,114,111,116,97,116,101,48,12,30,49,64,35, +37,115,99,50,74,103,101,116,45,109,97,116,99,104,45,118,97,114,115,51,0, +16,18,18,98,2,20,38,98,36,10,32,11,96,159,69,35,37,115,116,120,99, +97,115,101,52,9,11,159,74,35,37,115,109,97,108,108,45,115,99,104,101,109, +101,53,9,11,159,2,41,9,11,159,2,12,9,11,16,10,2,4,2,2,2, +18,2,2,2,10,2,2,2,6,2,2,2,8,2,2,98,35,10,33,11,97, +159,66,35,37,99,111,110,100,54,9,11,159,71,35,37,113,113,45,97,110,100, +45,111,114,55,9,11,159,2,50,9,11,159,2,41,9,11,159,2,52,9,11, +16,0,96,34,8,254,1,11,16,0,16,4,33,11,61,120,56,3,1,7,101, +110,118,50,54,54,55,57,18,16,2,95,66,115,114,99,116,97,103,58,39,93, +8,252,109,7,95,9,8,252,109,7,2,52,18,100,64,100,101,115,116,59,42, +36,35,34,33,16,8,41,11,3,1,4,103,50,57,55,60,3,1,4,103,50, +57,56,61,3,1,4,103,50,57,57,62,3,1,7,101,110,118,50,54,55,52, +63,2,63,2,63,16,8,40,11,61,95,64,62,101,49,65,62,101,50,66,3, +1,7,101,110,118,50,54,55,53,67,2,67,2,67,18,158,63,99,116,120,68, +42,18,158,2,0,42,18,158,2,68,42,18,16,2,95,2,58,43,93,8,252, +111,7,95,9,8,252,111,7,2,52,18,100,2,59,46,36,35,34,33,16,12, +45,11,3,1,4,103,50,57,50,69,3,1,4,103,50,57,51,70,3,1,4, +103,50,57,52,71,3,1,4,103,50,57,53,72,3,1,4,103,50,57,54,73, +3,1,7,101,110,118,50,54,57,49,74,2,74,2,74,2,74,2,74,16,12, +44,11,2,64,63,111,117,116,75,62,105,110,76,2,65,2,66,3,1,7,101, +110,118,50,54,57,50,77,2,77,2,77,2,77,2,77,18,16,2,95,2,58, +47,93,8,252,127,7,95,9,8,252,127,7,2,52,18,101,2,59,49,36,35, +34,33,45,44,16,4,48,11,63,105,110,115,78,3,1,7,101,110,118,50,54, +57,56,79,18,16,2,95,2,58,50,93,8,252,128,7,95,9,8,252,128,7, +2,52,18,158,2,59,49,18,102,2,20,52,36,35,34,33,45,44,48,16,8, +51,11,64,116,109,112,115,80,65,104,101,114,101,115,81,64,111,117,116,115,82, +3,1,7,101,110,118,50,55,48,49,83,2,83,2,83,18,16,2,95,2,58, +53,93,8,252,133,7,95,9,8,252,133,7,2,52,18,103,2,59,55,36,35, +34,33,45,44,48,51,16,4,54,11,2,24,3,1,7,101,110,118,50,55,48, +54,84,18,158,2,68,55,18,158,2,0,55,18,158,2,68,55,11,96,83,159, +32,93,80,159,32,32,33,89,162,32,33,36,2,4,222,250,22,252,39,2,2, +18,6,20,20,98,105,110,100,105,110,103,32,109,97,116,99,104,32,102,97,105, +108,101,100,195,83,159,32,93,80,159,32,33,34,32,83,159,32,93,80,159,32, +34,33,89,162,32,33,38,2,8,223,0,87,94,83,160,34,11,80,159,32,33, +34,248,22,170,80,159,33,33,34,248,22,42,250,22,252,184,1,6,4,4,126, +97,126,115,197,80,159,36,33,34,83,159,32,93,80,159,32,35,33,89,162,32, +33,37,2,10,223,0,87,94,28,248,80,158,33,36,194,12,250,22,252,40,2, +2,10,6,11,11,115,121,110,116,97,120,32,112,97,105,114,196,27,248,80,158, +34,37,195,249,22,2,89,162,32,33,39,9,223,3,248,247,22,252,87,3,28, +248,22,41,195,249,22,209,11,248,80,159,36,34,34,197,28,248,22,252,136,1, +195,249,22,209,11,248,80,159,36,34,34,197,28,248,80,158,34,38,195,249,22, +209,11,248,80,159,36,34,34,248,22,210,198,249,22,209,11,248,80,159,36,34, +34,64,116,101,109,112,85,194,97,68,35,37,107,101,114,110,101,108,86,2,12, +2,41,2,53,2,52,98,2,86,2,52,2,41,2,50,2,55,2,54,0}; + EVAL_ONE_SIZED_STR((char *)expr, 2182); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,188,252,5,31,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,188,252,5,31,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,76,35,37,115,116, 120,99,97,115,101,45,115,99,104,101,109,101,1,29,2,11,11,10,10,10,32, 80,158,32,32,20,98,158,16,2,30,3,2,2,1,26,99,104,101,99,107,45, @@ -1382,24 +1381,24 @@ 114,63,7,2,16,0,11,11,16,0,32,11,16,23,2,4,1,20,103,101,110, 101,114,97,116,101,45,116,101,109,112,111,114,97,114,105,101,115,8,64,119,104, 101,110,9,70,115,121,110,116,97,120,47,108,111,99,10,75,115,121,110,116,97, -120,45,105,100,45,114,117,108,101,115,11,62,111,114,12,66,117,110,108,101,115, -115,13,75,108,101,116,114,101,99,45,115,121,110,116,97,120,101,115,14,66,115, -121,110,116,97,120,15,73,108,101,116,114,101,99,45,115,121,110,116,97,120,16, -71,115,121,110,116,97,120,45,99,97,115,101,17,70,108,101,116,45,115,121,110, -116,97,120,18,72,115,121,110,116,97,120,45,99,97,115,101,42,19,74,45,100, -101,102,105,110,101,45,115,121,110,116,97,120,20,72,108,101,116,45,115,121,110, -116,97,120,101,115,21,67,45,100,101,102,105,110,101,22,66,108,101,116,47,101, -99,23,64,99,111,110,100,24,71,119,105,116,104,45,115,121,110,116,97,120,25, -73,100,101,102,105,110,101,45,115,116,114,117,99,116,26,72,115,121,110,116,97, -120,45,114,117,108,101,115,27,70,113,117,97,115,105,113,117,111,116,101,28,63, +120,45,105,100,45,114,117,108,101,115,11,66,108,101,116,47,101,99,12,75,108, +101,116,114,101,99,45,115,121,110,116,97,120,101,115,13,66,115,121,110,116,97, +120,14,73,108,101,116,114,101,99,45,115,121,110,116,97,120,15,71,115,121,110, +116,97,120,45,99,97,115,101,16,70,108,101,116,45,115,121,110,116,97,120,17, +72,115,121,110,116,97,120,45,99,97,115,101,42,18,74,45,100,101,102,105,110, +101,45,115,121,110,116,97,120,19,72,108,101,116,45,115,121,110,116,97,120,101, +115,20,67,45,100,101,102,105,110,101,21,64,99,111,110,100,22,71,119,105,116, +104,45,115,121,110,116,97,120,23,62,111,114,24,73,100,101,102,105,110,101,45, +115,116,114,117,99,116,25,72,115,121,110,116,97,120,45,114,117,108,101,115,26, +70,113,117,97,115,105,113,117,111,116,101,27,66,117,110,108,101,115,115,28,63, 97,110,100,29,16,23,11,70,35,37,119,105,116,104,45,115,116,120,30,74,35, 37,100,101,102,105,110,101,45,101,116,45,97,108,31,68,35,37,115,116,120,108, -111,99,32,11,71,35,37,113,113,45,97,110,100,45,111,114,33,2,31,11,69, -35,37,115,116,120,99,97,115,101,34,11,2,32,11,2,32,2,31,11,2,31, -2,31,66,35,37,99,111,110,100,35,2,30,2,31,11,2,33,2,33,16,23, +111,99,32,11,2,31,11,69,35,37,115,116,120,99,97,115,101,33,11,2,32, +11,2,32,2,31,11,2,31,66,35,37,99,111,110,100,34,2,30,71,35,37, +113,113,45,97,110,100,45,111,114,35,2,31,11,2,35,2,31,2,35,16,23, 2,4,2,8,2,9,2,10,2,11,2,12,2,13,2,14,2,15,2,16,2, 17,2,18,2,19,2,20,2,21,2,22,2,23,2,24,2,25,2,26,2,27, -2,28,2,29,34,55,98,16,5,93,2,14,89,162,32,33,50,9,223,0,27, +2,28,2,29,34,55,98,16,5,93,2,13,89,162,32,33,50,9,223,0,27, 249,22,209,20,15,159,35,32,44,196,27,28,248,80,158,35,32,194,249,80,158, 36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32, 193,249,80,158,39,36,27,248,80,158,41,34,196,28,248,80,158,41,37,193,248, @@ -1437,28 +1436,28 @@ 55,7,30,56,2,6,69,115,116,120,45,62,108,105,115,116,57,4,30,58,2, 6,71,115,116,120,45,110,117,108,108,47,35,102,59,9,30,60,2,6,70,115, 116,120,45,114,111,116,97,116,101,61,12,30,62,2,32,68,114,101,108,111,99, -97,116,101,63,1,30,64,2,34,1,20,101,108,108,105,112,115,105,115,45,99, +97,116,101,63,1,30,64,2,33,1,20,101,108,108,105,112,115,105,115,45,99, 111,117,110,116,45,101,114,114,111,114,65,0,16,10,18,98,64,104,101,114,101, -66,38,98,36,10,32,11,97,159,2,32,9,11,159,2,30,9,11,159,2,34, +66,38,98,36,10,32,11,97,159,2,32,9,11,159,2,30,9,11,159,2,33, 9,11,159,2,6,9,11,159,74,35,37,115,109,97,108,108,45,115,99,104,101, -109,101,67,9,11,16,14,2,11,2,2,2,4,2,2,2,14,2,2,2,16, -2,2,2,18,2,2,2,21,2,2,2,27,2,2,98,35,10,33,11,97,159, -2,32,9,11,159,2,30,9,11,159,2,34,9,11,159,2,6,9,11,159,2, +109,101,67,9,11,16,14,2,11,2,2,2,13,2,2,2,15,2,2,2,4, +2,2,2,17,2,2,2,20,2,2,2,26,2,2,98,35,10,33,11,97,159, +2,32,9,11,159,2,30,9,11,159,2,33,9,11,159,2,6,9,11,159,2, 67,9,11,16,0,96,34,8,254,1,11,16,0,16,4,33,11,63,115,116,120, -68,3,1,7,101,110,118,50,55,49,56,69,18,16,2,95,66,115,114,99,116, -97,103,70,39,93,8,252,166,7,95,9,8,252,166,7,2,34,18,16,2,99, -2,38,44,93,8,252,166,7,16,6,43,11,61,114,71,63,115,114,99,72,3, -1,7,101,110,118,50,55,51,57,73,2,73,16,4,42,11,64,101,120,110,104, -74,3,1,7,101,110,118,50,55,52,48,75,16,4,41,11,63,101,115,99,76, -3,1,7,101,110,118,50,55,52,49,77,16,4,40,11,63,101,120,110,78,3, -1,7,101,110,118,50,55,52,51,79,95,9,8,252,166,7,2,34,18,100,64, +68,3,1,7,101,110,118,50,55,50,48,69,18,16,2,95,66,115,114,99,116, +97,103,70,39,93,8,252,168,7,95,9,8,252,168,7,2,33,18,16,2,99, +2,38,44,93,8,252,168,7,16,6,43,11,61,114,71,63,115,114,99,72,3, +1,7,101,110,118,50,55,52,49,73,2,73,16,4,42,11,64,101,120,110,104, +74,3,1,7,101,110,118,50,55,52,50,75,16,4,41,11,63,101,115,99,76, +3,1,7,101,110,118,50,55,52,51,77,16,4,40,11,63,101,120,110,78,3, +1,7,101,110,118,50,55,52,53,79,95,9,8,252,168,7,2,33,18,100,64, 100,101,115,116,80,47,36,35,34,33,16,12,46,11,3,1,4,103,51,48,48, 81,3,1,4,103,51,48,49,82,3,1,4,103,51,48,50,83,3,1,4,103, 51,48,51,84,3,1,4,103,51,48,52,85,3,1,7,101,110,118,50,55,51, -49,86,2,86,2,86,2,86,2,86,16,12,45,11,61,95,87,2,37,2,39, -2,40,2,41,3,1,7,101,110,118,50,55,51,50,88,2,88,2,88,2,88, +51,86,2,86,2,86,2,86,2,86,16,12,45,11,61,95,87,2,37,2,39, +2,40,2,41,3,1,7,101,110,118,50,55,51,52,88,2,88,2,88,2,88, 2,88,18,158,63,99,116,120,89,47,18,158,2,36,47,18,158,2,89,47,18, -158,2,89,47,18,158,9,47,18,158,2,89,47,11,16,5,93,2,16,89,162, +158,2,89,47,18,158,9,47,18,158,2,89,47,11,16,5,93,2,15,89,162, 32,33,50,9,223,0,27,249,22,209,20,15,159,35,32,44,196,27,28,248,80, 158,35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35, 197,28,248,80,158,38,32,193,249,80,158,39,36,27,248,80,158,41,34,196,28, @@ -1488,20 +1487,20 @@ 252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,196,32,20,98, 158,16,12,2,42,2,44,2,46,2,48,2,50,2,52,2,54,2,58,2,56, 2,60,2,62,2,64,16,12,18,98,2,66,49,36,35,34,16,4,48,11,2, -68,3,1,7,101,110,118,50,55,53,50,90,18,16,2,95,2,70,50,93,8, -252,181,7,95,9,8,252,181,7,2,34,18,16,2,99,2,38,55,93,8,252, -181,7,16,6,54,11,2,71,2,72,3,1,7,101,110,118,50,55,55,50,91, -2,91,16,4,53,11,2,74,3,1,7,101,110,118,50,55,55,51,92,16,4, -52,11,2,76,3,1,7,101,110,118,50,55,55,52,93,16,4,51,11,2,78, -3,1,7,101,110,118,50,55,55,54,94,95,9,8,252,181,7,2,34,18,100, +68,3,1,7,101,110,118,50,55,53,52,90,18,16,2,95,2,70,50,93,8, +252,183,7,95,9,8,252,183,7,2,33,18,16,2,99,2,38,55,93,8,252, +183,7,16,6,54,11,2,71,2,72,3,1,7,101,110,118,50,55,55,52,91, +2,91,16,4,53,11,2,74,3,1,7,101,110,118,50,55,55,53,92,16,4, +52,11,2,76,3,1,7,101,110,118,50,55,55,54,93,16,4,51,11,2,78, +3,1,7,101,110,118,50,55,55,56,94,95,9,8,252,183,7,2,33,18,100, 2,80,58,36,35,34,48,16,12,57,11,3,1,4,103,51,48,53,95,3,1, 4,103,51,48,54,96,3,1,4,103,51,48,55,97,3,1,4,103,51,48,56, -98,3,1,4,103,51,48,57,99,3,1,7,101,110,118,50,55,54,52,100,2, +98,3,1,4,103,51,48,57,99,3,1,7,101,110,118,50,55,54,54,100,2, 100,2,100,2,100,2,100,16,12,56,11,2,87,2,37,2,39,2,40,2,41, -3,1,7,101,110,118,50,55,54,53,101,2,101,2,101,2,101,2,101,18,158, +3,1,7,101,110,118,50,55,54,55,101,2,101,2,101,2,101,2,101,18,158, 2,89,58,18,158,2,36,58,18,158,2,89,58,18,158,2,89,58,18,158,2, 89,58,18,158,2,89,58,18,158,9,58,18,158,2,89,58,11,16,5,93,2, -21,89,162,32,33,52,9,223,0,27,249,22,209,20,15,159,35,32,47,196,27, +20,89,162,32,33,52,9,223,0,27,249,22,209,20,15,159,35,32,47,196,27, 28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248,80, 158,38,35,197,28,248,80,158,38,32,193,249,80,158,39,36,27,248,80,158,41, 34,196,28,248,80,158,41,37,193,248,22,8,89,162,32,33,39,9,224,9,1, @@ -1550,34 +1549,34 @@ 0,30,107,2,6,71,115,116,120,45,114,111,116,97,116,101,42,108,13,2,62, 2,64,30,109,2,30,76,119,105,116,104,45,115,121,110,116,97,120,45,102,97, 105,108,110,3,16,29,18,98,2,66,8,28,36,35,34,16,4,59,11,2,68, -3,1,7,101,110,118,50,55,56,53,111,18,100,2,66,8,31,36,35,34,59, +3,1,7,101,110,118,50,55,56,55,111,18,100,2,66,8,31,36,35,34,59, 16,12,8,30,11,3,1,4,103,51,49,48,112,3,1,4,103,51,49,49,113, 3,1,4,103,51,49,50,114,3,1,4,103,51,49,51,115,3,1,4,103,51, -49,52,116,3,1,7,101,110,118,50,55,57,56,117,2,117,2,117,2,117,2, +49,52,116,3,1,7,101,110,118,50,56,48,48,117,2,117,2,117,2,117,2, 117,16,12,8,29,11,2,87,2,37,2,39,2,40,2,41,3,1,7,101,110, -118,50,55,57,57,118,2,118,2,118,2,118,2,118,18,16,2,95,2,70,8, -32,93,8,252,196,7,95,9,8,252,196,7,2,34,18,158,2,80,8,31,18, -16,2,95,2,70,8,33,93,8,252,202,7,95,9,8,252,202,7,2,34,18, -16,2,99,2,38,8,38,93,8,252,202,7,16,6,8,37,11,2,71,2,72, -3,1,7,101,110,118,50,56,49,56,119,2,119,16,4,8,36,11,2,74,3, -1,7,101,110,118,50,56,49,57,120,16,4,8,35,11,2,76,3,1,7,101, -110,118,50,56,50,48,121,16,4,8,34,11,2,78,3,1,7,101,110,118,50, -56,50,50,122,95,9,8,252,202,7,2,34,18,102,2,80,8,41,36,35,34, +118,50,56,48,49,118,2,118,2,118,2,118,2,118,18,16,2,95,2,70,8, +32,93,8,252,198,7,95,9,8,252,198,7,2,33,18,158,2,80,8,31,18, +16,2,95,2,70,8,33,93,8,252,204,7,95,9,8,252,204,7,2,33,18, +16,2,99,2,38,8,38,93,8,252,204,7,16,6,8,37,11,2,71,2,72, +3,1,7,101,110,118,50,56,50,48,119,2,119,16,4,8,36,11,2,74,3, +1,7,101,110,118,50,56,50,49,120,16,4,8,35,11,2,76,3,1,7,101, +110,118,50,56,50,50,121,16,4,8,34,11,2,78,3,1,7,101,110,118,50, +56,50,52,122,95,9,8,252,204,7,2,33,18,102,2,80,8,41,36,35,34, 59,8,30,8,29,16,4,8,40,11,3,1,4,103,51,49,55,123,3,1,7, -101,110,118,50,56,49,52,124,16,4,8,39,11,2,102,3,1,7,101,110,118, -50,56,49,53,125,18,158,2,89,8,41,18,158,2,36,8,41,18,158,2,89, +101,110,118,50,56,49,54,124,16,4,8,39,11,2,102,3,1,7,101,110,118, +50,56,49,55,125,18,158,2,89,8,41,18,158,2,36,8,41,18,158,2,89, 8,41,18,158,2,89,8,41,18,158,9,8,41,18,158,2,89,8,41,18,158, 2,36,8,41,18,158,2,89,8,41,18,158,2,89,8,41,18,158,2,103,8, 41,18,158,2,89,8,41,18,158,2,104,8,41,18,158,2,89,8,41,18,158, 2,105,8,41,18,158,2,89,8,41,18,158,2,89,8,41,18,158,2,89,8, 41,18,158,2,89,8,41,18,158,9,8,41,18,158,2,89,8,41,18,158,2, 89,8,41,18,16,2,158,94,16,2,158,94,16,2,98,2,102,8,45,93,8, -252,195,7,16,4,8,44,11,3,1,8,119,115,116,109,112,51,49,53,126,3, -1,7,101,110,118,50,56,48,54,127,16,4,8,43,11,3,1,4,103,51,49, -54,128,3,1,7,101,110,118,50,56,51,53,129,16,4,8,42,11,65,95,101, -108,115,101,130,3,1,7,101,110,118,50,56,51,54,131,9,16,2,158,2,38, -8,45,9,8,45,9,16,2,158,2,38,8,45,9,8,45,95,9,8,252,195, -7,2,30,11,16,5,93,2,18,89,162,32,33,50,9,223,0,27,249,22,209, +252,197,7,16,4,8,44,11,3,1,8,119,115,116,109,112,51,49,53,126,3, +1,7,101,110,118,50,56,48,56,127,16,4,8,43,11,3,1,4,103,51,49, +54,128,3,1,7,101,110,118,50,56,51,55,129,16,4,8,42,11,65,95,101, +108,115,101,130,3,1,7,101,110,118,50,56,51,56,131,9,16,2,158,2,38, +8,45,9,8,45,9,16,2,158,2,38,8,45,9,8,45,95,9,8,252,197, +7,2,30,11,16,5,93,2,17,89,162,32,33,50,9,223,0,27,249,22,209, 20,15,159,35,32,44,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248, 80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249,80, 158,39,36,27,248,80,158,41,34,196,28,248,80,158,41,37,193,248,22,8,89, @@ -1590,36 +1589,36 @@ 158,43,34,195,27,248,80,158,44,35,196,28,248,80,158,44,37,193,248,80,158, 44,40,193,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, 22,87,196,27,248,22,90,197,27,248,22,89,198,249,80,158,41,42,202,27,251, -22,61,202,200,201,199,27,20,15,159,43,33,44,91,159,33,11,90,161,33,32, +22,61,200,201,202,199,27,20,15,159,43,33,44,91,159,33,11,90,161,33,32, 11,83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,13,2,3, 1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22, 252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162, 32,32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249, -80,158,35,43,21,97,2,21,94,94,93,2,37,2,39,2,38,2,40,2,41, +80,158,35,43,21,97,2,20,94,94,93,2,37,2,39,2,38,2,40,2,41, 2,38,20,15,159,35,34,44,89,162,32,32,50,9,225,6,5,4,27,250,22, 209,20,15,159,38,35,44,250,22,209,20,15,159,41,36,44,251,22,62,20,15, 159,45,37,44,250,22,2,89,162,33,33,45,9,223,16,250,22,209,20,15,159, 35,38,44,249,22,60,250,22,209,20,15,159,40,39,44,248,22,60,248,22,52, -203,20,15,159,40,40,44,248,22,78,199,20,15,159,35,41,44,248,22,52,23, -15,248,22,87,23,15,248,22,78,204,248,22,88,204,20,15,159,41,42,44,197, +203,20,15,159,40,40,44,248,22,78,199,20,15,159,35,41,44,248,22,87,23, +15,248,22,78,23,15,248,22,52,204,248,22,88,204,20,15,159,41,42,44,197, 89,162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184, 2,208,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120, 196,32,20,98,158,16,12,2,42,2,44,2,46,2,48,2,50,2,52,2,54, 2,58,2,56,2,60,2,62,2,64,16,11,18,98,2,66,8,47,36,35,34, -16,4,8,46,11,2,68,3,1,7,101,110,118,50,56,51,57,132,18,16,2, -95,2,70,8,48,93,8,252,218,7,95,9,8,252,218,7,2,34,18,16,2, -99,2,38,8,53,93,8,252,218,7,16,6,8,52,11,2,71,2,72,3,1, -7,101,110,118,50,56,53,57,133,2,133,16,4,8,51,11,2,74,3,1,7, -101,110,118,50,56,54,48,134,16,4,8,50,11,2,76,3,1,7,101,110,118, -50,56,54,49,135,16,4,8,49,11,2,78,3,1,7,101,110,118,50,56,54, -51,136,95,9,8,252,218,7,2,34,18,100,2,80,8,56,36,35,34,8,46, +16,4,8,46,11,2,68,3,1,7,101,110,118,50,56,52,49,132,18,16,2, +95,2,70,8,48,93,8,252,220,7,95,9,8,252,220,7,2,33,18,16,2, +99,2,38,8,53,93,8,252,220,7,16,6,8,52,11,2,71,2,72,3,1, +7,101,110,118,50,56,54,49,133,2,133,16,4,8,51,11,2,74,3,1,7, +101,110,118,50,56,54,50,134,16,4,8,50,11,2,76,3,1,7,101,110,118, +50,56,54,51,135,16,4,8,49,11,2,78,3,1,7,101,110,118,50,56,54, +53,136,95,9,8,252,220,7,2,33,18,100,2,80,8,56,36,35,34,8,46, 16,12,8,55,11,3,1,4,103,51,49,56,137,3,1,4,103,51,49,57,138, 3,1,4,103,51,50,48,139,3,1,4,103,51,50,49,140,3,1,4,103,51, -50,50,141,3,1,7,101,110,118,50,56,53,49,142,2,142,2,142,2,142,2, +50,50,141,3,1,7,101,110,118,50,56,53,51,142,2,142,2,142,2,142,2, 142,16,12,8,54,11,2,87,2,37,2,39,2,40,2,41,3,1,7,101,110, -118,50,56,53,50,143,2,143,2,143,2,143,2,143,18,158,2,89,8,56,18, -158,2,21,8,56,18,158,2,89,8,56,18,158,2,89,8,56,18,158,2,89, -8,56,18,158,2,89,8,56,18,158,2,89,8,56,11,16,5,93,2,27,89, +118,50,56,53,52,143,2,143,2,143,2,143,2,143,18,158,2,89,8,56,18, +158,2,20,8,56,18,158,2,89,8,56,18,158,2,89,8,56,18,158,2,89, +8,56,18,158,2,89,8,56,18,158,2,89,8,56,11,16,5,93,2,26,89, 162,32,33,52,9,223,0,27,89,162,32,32,36,68,116,114,121,45,110,101,120, 116,144,223,2,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116, 97,120,195,27,28,248,80,158,35,32,196,249,80,158,36,33,248,80,158,37,34, @@ -1663,34 +1662,34 @@ 252,184,2,208,248,80,158,42,45,20,15,159,42,58,46,247,198,247,193,32,20, 98,158,16,14,2,42,2,44,2,46,2,48,2,50,2,52,2,56,2,54,2, 58,2,107,30,153,2,6,2,7,2,2,62,2,64,2,109,16,27,18,16,2, -95,2,70,8,57,93,8,252,232,7,95,9,8,252,232,7,2,34,18,100,2, +95,2,70,8,57,93,8,252,234,7,95,9,8,252,234,7,2,33,18,100,2, 80,8,61,36,35,34,16,4,8,60,11,2,146,3,1,7,101,110,118,50,56, -55,50,154,16,12,8,59,11,3,1,4,103,51,50,51,155,3,1,4,103,51, +55,52,154,16,12,8,59,11,3,1,4,103,51,50,51,155,3,1,4,103,51, 50,52,156,3,1,4,103,51,50,53,157,3,1,4,103,51,50,54,158,3,1, -4,103,51,50,55,159,3,1,7,101,110,118,50,56,56,56,160,2,160,2,160, +4,103,51,50,55,159,3,1,7,101,110,118,50,56,57,48,160,2,160,2,160, 2,160,2,160,16,12,8,58,11,2,87,2,148,67,107,101,121,119,111,114,100, -161,2,151,2,152,3,1,7,101,110,118,50,56,56,57,162,2,162,2,162,2, -162,2,162,18,158,2,66,8,61,18,16,2,95,2,70,8,62,93,8,252,234, -7,95,9,8,252,234,7,2,34,18,158,2,80,8,61,18,16,2,95,2,70, -8,63,93,8,252,237,7,95,9,8,252,237,7,2,34,18,16,2,99,2,38, -8,68,93,8,252,237,7,16,6,8,67,11,2,71,2,72,3,1,7,101,110, -118,50,57,48,54,163,2,163,16,4,8,66,11,2,74,3,1,7,101,110,118, -50,57,48,55,164,16,4,8,65,11,2,76,3,1,7,101,110,118,50,57,48, -56,165,16,4,8,64,11,2,78,3,1,7,101,110,118,50,57,49,48,166,95, -9,8,252,237,7,2,34,18,102,2,80,8,71,36,35,34,8,60,8,59,8, +161,2,151,2,152,3,1,7,101,110,118,50,56,57,49,162,2,162,2,162,2, +162,2,162,18,158,2,66,8,61,18,16,2,95,2,70,8,62,93,8,252,236, +7,95,9,8,252,236,7,2,33,18,158,2,80,8,61,18,16,2,95,2,70, +8,63,93,8,252,239,7,95,9,8,252,239,7,2,33,18,16,2,99,2,38, +8,68,93,8,252,239,7,16,6,8,67,11,2,71,2,72,3,1,7,101,110, +118,50,57,48,56,163,2,163,16,4,8,66,11,2,74,3,1,7,101,110,118, +50,57,48,57,164,16,4,8,65,11,2,76,3,1,7,101,110,118,50,57,49, +48,165,16,4,8,64,11,2,78,3,1,7,101,110,118,50,57,49,50,166,95, +9,8,252,239,7,2,33,18,102,2,80,8,71,36,35,34,8,60,8,59,8, 58,16,4,8,70,11,3,1,4,103,51,51,48,167,3,1,7,101,110,118,50, -57,48,50,168,16,4,8,69,11,2,150,3,1,7,101,110,118,50,57,48,51, +57,48,52,168,16,4,8,69,11,2,150,3,1,7,101,110,118,50,57,48,53, 169,18,158,2,89,8,71,18,158,2,145,8,71,18,158,93,16,2,158,2,146, 8,71,9,8,71,18,158,2,89,8,71,18,158,2,147,8,71,18,158,10,8, 71,18,158,2,146,8,71,18,158,2,149,8,71,18,158,2,89,8,71,18,158, 2,89,8,71,18,158,2,89,8,71,18,158,2,89,8,71,18,158,2,10,8, 71,18,158,2,146,8,71,18,158,2,89,8,71,18,158,2,89,8,71,18,158, 2,89,8,71,18,158,2,89,8,71,18,16,2,158,94,16,2,98,2,150,8, -75,93,8,252,233,7,16,4,8,74,11,3,1,8,119,115,116,109,112,51,50, -56,170,3,1,7,101,110,118,50,56,57,54,171,16,4,8,73,11,3,1,4, -103,51,50,57,172,3,1,7,101,110,118,50,57,49,57,173,16,4,8,72,11, -2,130,3,1,7,101,110,118,50,57,50,48,174,9,16,2,158,2,38,8,75, -9,8,75,95,9,8,252,233,7,2,30,11,16,5,93,2,11,89,162,32,33, +75,93,8,252,235,7,16,4,8,74,11,3,1,8,119,115,116,109,112,51,50, +56,170,3,1,7,101,110,118,50,56,57,56,171,16,4,8,73,11,3,1,4, +103,51,50,57,172,3,1,7,101,110,118,50,57,50,49,173,16,4,8,72,11, +2,130,3,1,7,101,110,118,50,57,50,50,174,9,16,2,158,2,38,8,75, +9,8,75,95,9,8,252,235,7,2,30,11,16,5,93,2,11,89,162,32,33, 48,9,223,0,27,89,162,32,32,36,2,144,223,2,250,22,252,39,2,11,6, 10,10,98,97,100,32,115,121,110,116,97,120,195,27,28,248,80,158,35,32,196, 249,80,158,36,33,248,80,158,37,34,198,27,248,80,158,38,35,199,28,248,80, @@ -1725,19 +1724,19 @@ 20,15,159,41,55,45,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34, 9,223,3,248,22,252,184,2,208,247,197,247,193,32,20,98,158,16,13,2,42, 2,44,2,46,2,48,2,50,2,52,2,56,2,54,2,58,2,107,2,153,2, -62,2,64,16,24,18,16,2,95,2,70,8,76,93,8,252,251,7,95,9,8, -252,251,7,2,34,18,100,2,80,8,80,36,35,34,16,4,8,79,11,2,146, -3,1,7,101,110,118,50,57,50,51,176,16,10,8,78,11,3,1,4,103,51, +62,2,64,16,24,18,16,2,95,2,70,8,76,93,8,252,253,7,95,9,8, +252,253,7,2,33,18,100,2,80,8,80,36,35,34,16,4,8,79,11,2,146, +3,1,7,101,110,118,50,57,50,53,176,16,10,8,78,11,3,1,4,103,51, 51,49,177,3,1,4,103,51,51,50,178,3,1,4,103,51,51,51,179,3,1, -4,103,51,51,52,180,3,1,7,101,110,118,50,57,51,54,181,2,181,2,181, +4,103,51,51,52,180,3,1,7,101,110,118,50,57,51,56,181,2,181,2,181, 2,181,16,10,8,77,11,2,87,2,148,2,151,2,152,3,1,7,101,110,118, -50,57,51,55,182,2,182,2,182,2,182,18,16,2,95,2,70,8,81,93,8, -252,253,7,95,9,8,252,253,7,2,34,18,16,2,99,2,38,8,86,93,8, -252,253,7,16,6,8,85,11,2,71,2,72,3,1,7,101,110,118,50,57,52, -51,183,2,183,16,4,8,84,11,2,74,3,1,7,101,110,118,50,57,52,52, -184,16,4,8,83,11,2,76,3,1,7,101,110,118,50,57,52,53,185,16,4, -8,82,11,2,78,3,1,7,101,110,118,50,57,52,55,186,95,9,8,252,253, -7,2,34,18,158,2,80,8,80,18,158,2,89,8,80,18,158,2,175,8,80, +50,57,51,57,182,2,182,2,182,2,182,18,16,2,95,2,70,8,81,93,8, +252,255,7,95,9,8,252,255,7,2,33,18,16,2,99,2,38,8,86,93,8, +252,255,7,16,6,8,85,11,2,71,2,72,3,1,7,101,110,118,50,57,52, +53,183,2,183,16,4,8,84,11,2,74,3,1,7,101,110,118,50,57,52,54, +184,16,4,8,83,11,2,76,3,1,7,101,110,118,50,57,52,55,185,16,4, +8,82,11,2,78,3,1,7,101,110,118,50,57,52,57,186,95,9,8,252,255, +7,2,33,18,158,2,80,8,80,18,158,2,89,8,80,18,158,2,175,8,80, 18,158,2,89,8,80,18,158,2,145,8,80,18,158,93,16,2,158,2,146,8, 80,9,8,80,18,158,2,89,8,80,18,158,2,147,8,80,18,158,10,8,80, 18,158,2,146,8,80,18,158,2,149,8,80,18,158,2,89,8,80,18,158,2, @@ -1750,12 +1749,12 @@ 100,101,110,116,105,102,105,101,114,115,197,27,250,22,116,196,248,22,210,201,89, 97,40,32,32,9,222,87,94,28,249,22,5,89,162,32,33,36,9,223,7,249, 22,221,195,194,194,248,195,198,12,250,22,115,196,248,22,210,201,249,22,51,202, -197,195,11,98,68,35,37,107,101,114,110,101,108,187,2,67,2,6,2,34,2, -30,2,32,98,2,187,2,67,2,6,2,34,2,30,2,32,0}; +197,195,11,98,68,35,37,107,101,114,110,101,108,187,2,67,2,6,2,33,2, +30,2,32,98,2,187,2,67,2,6,2,33,2,30,2,32,0}; EVAL_ONE_SIZED_STR((char *)expr, 7954); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,102,252,138,12,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,102,252,138,12,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,67,35,37,113,113, 115,116,120,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158,16,2, 30,3,2,2,79,99,104,101,99,107,45,115,112,108,105,99,105,110,103,45,108, @@ -1862,49 +1861,49 @@ 98,35,10,33,11,94,159,2,6,9,11,159,2,40,9,11,16,0,96,34,8, 254,1,11,16,0,16,8,33,11,68,111,114,105,103,45,115,116,120,41,64,98, 111,100,121,42,68,109,107,45,102,105,110,97,108,43,3,1,7,101,110,118,50, -57,55,48,44,2,44,2,44,18,101,2,39,42,36,35,34,33,16,4,41,11, -68,104,101,114,101,45,115,116,120,45,3,1,7,101,110,118,50,57,55,49,46, -16,4,40,11,2,14,3,1,7,101,110,118,50,57,55,50,47,16,10,39,11, +57,55,50,44,2,44,2,44,18,101,2,39,42,36,35,34,33,16,4,41,11, +68,104,101,114,101,45,115,116,120,45,3,1,7,101,110,118,50,57,55,51,46, +16,4,40,11,2,14,3,1,7,101,110,118,50,57,55,52,47,16,10,39,11, 63,115,116,120,48,65,100,101,112,116,104,49,2,21,2,20,3,1,7,101,110, -118,50,57,55,51,50,2,50,2,50,2,50,18,158,2,8,42,18,158,2,8, +118,50,57,55,53,50,2,50,2,50,2,50,18,158,2,8,42,18,158,2,8, 42,18,158,2,10,42,18,104,2,39,46,36,35,34,33,41,40,39,16,6,45, 11,3,1,4,103,51,51,55,51,3,1,4,103,51,51,56,52,3,1,7,101, -110,118,50,57,57,52,53,2,53,16,6,44,11,61,120,54,64,114,101,115,116, -55,3,1,7,101,110,118,50,57,57,53,56,2,56,16,6,43,11,66,114,101, +110,118,50,57,57,54,53,2,53,16,6,44,11,61,120,54,64,114,101,115,116, +55,3,1,7,101,110,118,50,57,57,55,56,2,56,16,6,43,11,66,114,101, 115,116,45,118,57,68,98,105,110,100,105,110,103,115,58,3,1,7,101,110,118, -50,57,57,57,59,2,59,18,158,2,39,46,18,108,63,46,46,46,60,51,36, +51,48,48,49,59,2,59,18,158,2,39,46,18,108,63,46,46,46,60,51,36, 35,34,33,41,40,39,45,44,43,16,4,50,11,3,1,4,103,51,52,51,61, -3,1,7,101,110,118,51,48,48,55,62,16,4,49,11,64,116,101,109,112,63, -3,1,7,101,110,118,51,48,48,56,64,16,4,48,11,3,1,4,103,51,52, -53,65,3,1,7,101,110,118,51,48,49,55,66,16,4,47,11,2,18,3,1, -7,101,110,118,51,48,49,56,67,18,16,2,95,66,115,114,99,116,97,103,68, -52,93,8,252,41,8,95,9,8,252,41,8,69,35,37,115,116,120,99,97,115, +3,1,7,101,110,118,51,48,48,57,62,16,4,49,11,64,116,101,109,112,63, +3,1,7,101,110,118,51,48,49,48,64,16,4,48,11,3,1,4,103,51,52, +53,65,3,1,7,101,110,118,51,48,49,57,66,16,4,47,11,2,18,3,1, +7,101,110,118,51,48,50,48,67,18,16,2,95,66,115,114,99,116,97,103,68, +52,93,8,252,43,8,95,9,8,252,43,8,69,35,37,115,116,120,99,97,115, 101,69,18,158,64,100,101,115,116,70,51,18,158,2,18,51,18,158,2,18,51, 18,158,2,60,51,18,158,2,18,51,18,158,2,18,51,18,158,2,4,51,18, 158,2,18,51,18,158,72,113,117,111,116,101,45,115,121,110,116,97,120,71,51, 18,158,2,18,51,18,158,2,18,51,18,158,2,18,51,18,158,2,10,42,18, 158,2,11,42,18,106,2,8,58,36,35,34,33,41,40,39,16,4,57,11,3, -1,4,103,51,51,53,72,3,1,7,101,110,118,51,48,52,49,73,16,4,56, -11,65,95,101,108,115,101,74,3,1,7,101,110,118,51,48,52,50,75,16,4, -55,11,2,19,3,1,7,101,110,118,51,48,52,53,76,16,4,54,11,61,108, -77,3,1,7,101,110,118,51,48,52,54,78,16,4,53,11,61,97,79,3,1, -7,101,110,118,51,48,52,55,80,18,158,2,11,58,18,158,2,10,58,18,16, +1,4,103,51,51,53,72,3,1,7,101,110,118,51,48,52,51,73,16,4,56, +11,65,95,101,108,115,101,74,3,1,7,101,110,118,51,48,52,52,75,16,4, +55,11,2,19,3,1,7,101,110,118,51,48,52,55,76,16,4,54,11,61,108, +77,3,1,7,101,110,118,51,48,52,56,78,16,4,53,11,61,97,79,3,1, +7,101,110,118,51,48,52,57,80,18,158,2,11,58,18,158,2,10,58,18,16, 2,100,71,119,105,116,104,45,115,121,110,116,97,120,81,8,28,36,35,34,33, -41,16,4,59,11,2,58,3,1,7,101,110,118,51,48,53,57,82,9,18,99, +41,16,4,59,11,2,58,3,1,7,101,110,118,51,48,54,49,82,9,18,99, 2,39,8,31,36,35,34,16,4,8,30,11,2,13,3,1,7,101,110,118,50, -57,54,57,83,16,4,8,29,11,2,41,3,1,7,101,110,118,51,48,54,48, +57,55,49,83,16,4,8,29,11,2,41,3,1,7,101,110,118,51,48,54,50, 84,18,102,66,115,121,110,116,97,120,85,8,35,36,35,34,8,30,8,29,16, 6,8,34,11,3,1,4,103,51,52,54,86,3,1,4,103,51,52,55,87,3, -1,7,101,110,118,51,48,54,53,88,2,88,16,6,8,33,11,61,95,89,2, -48,3,1,7,101,110,118,51,48,54,54,90,2,90,16,4,8,32,11,2,42, -3,1,7,101,110,118,51,48,54,57,91,18,99,2,39,8,37,36,35,34,8, -30,16,4,8,36,11,2,41,3,1,7,101,110,118,51,48,55,48,92,18,102, +1,7,101,110,118,51,48,54,55,88,2,88,16,6,8,33,11,61,95,89,2, +48,3,1,7,101,110,118,51,48,54,56,90,2,90,16,4,8,32,11,2,42, +3,1,7,101,110,118,51,48,55,49,91,18,99,2,39,8,37,36,35,34,8, +30,16,4,8,36,11,2,41,3,1,7,101,110,118,51,48,55,50,92,18,102, 70,115,121,110,116,97,120,47,108,111,99,93,8,41,36,35,34,8,30,8,36, 16,8,8,40,11,3,1,4,103,51,52,56,94,3,1,4,103,51,52,57,95, -3,1,4,103,51,53,48,96,3,1,7,101,110,118,51,48,55,54,97,2,97, +3,1,4,103,51,53,48,96,3,1,7,101,110,118,51,48,55,56,97,2,97, 2,97,16,8,8,39,11,2,89,63,108,111,99,98,2,48,3,1,7,101,110, -118,51,48,55,55,99,2,99,2,99,16,4,8,38,11,2,42,3,1,7,101, -110,118,51,48,56,49,100,11,93,83,159,32,93,80,159,32,32,33,89,162,32, +118,51,48,55,57,99,2,99,2,99,16,4,8,38,11,2,42,3,1,7,101, +110,118,51,48,56,51,100,11,93,83,159,32,93,80,159,32,32,33,89,162,32, 34,38,2,4,223,0,87,94,28,248,80,158,33,33,194,12,250,22,252,40,2, 2,10,6,18,18,112,114,111,112,101,114,32,115,121,110,116,97,120,32,108,105, 115,116,196,250,22,209,197,196,197,95,68,35,37,107,101,114,110,101,108,101,2, @@ -1912,16 +1911,16 @@ EVAL_ONE_SIZED_STR((char *)expr, 3223); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,165,252,49,26,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,165,252,59,26,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,68,35,37,100,101, 102,105,110,101,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158,16, 0,16,0,11,11,16,0,32,11,16,4,77,100,101,102,105,110,101,45,102,111, -114,45,115,121,110,116,97,120,3,73,100,101,102,105,110,101,45,115,121,110,116, -97,120,4,76,98,101,103,105,110,45,102,111,114,45,115,121,110,116,97,120,5, +114,45,115,121,110,116,97,120,3,76,98,101,103,105,110,45,102,111,114,45,115, +121,110,116,97,120,4,73,100,101,102,105,110,101,45,115,121,110,116,97,120,5, 66,100,101,102,105,110,101,6,16,4,11,11,11,11,16,4,2,3,2,4,2, -5,2,6,32,36,94,16,5,95,2,6,2,4,2,3,27,89,162,32,33,34, +5,2,6,32,36,94,16,5,95,2,6,2,5,2,3,27,89,162,32,33,34, 62,109,107,7,223,1,89,162,32,33,8,28,9,224,0,1,87,94,28,249,22, -71,247,22,252,82,3,21,93,70,101,120,112,114,101,115,115,105,111,110,8,250, +71,247,22,252,83,3,21,93,70,101,120,112,114,101,115,115,105,111,110,8,250, 22,252,39,2,11,6,36,36,110,111,116,32,97,108,108,111,119,101,100,32,105, 110,32,97,110,32,101,120,112,114,101,115,115,105,111,110,32,99,111,110,116,101, 120,116,197,12,27,249,22,209,20,15,159,36,32,45,197,27,89,162,32,32,8, @@ -1961,281 +1960,282 @@ 97,116,101,32,97,114,103,117,109,101,110,116,32,105,100,101,110,116,105,102,105, 101,114,199,196,12,193,89,162,32,33,47,73,103,101,110,101,114,97,108,45,112, 114,111,116,111,11,226,11,9,1,0,27,249,22,209,20,15,159,38,50,45,199, -27,89,162,32,32,54,2,9,228,5,4,3,2,6,1,27,28,248,80,158,39, +27,89,162,32,32,57,2,9,228,5,4,3,2,6,1,27,28,248,80,158,39, 32,194,249,80,158,40,40,27,248,80,158,42,34,197,28,248,80,158,42,32,193, 249,80,158,43,33,248,80,158,44,34,195,27,248,80,158,45,35,196,248,22,59, 250,22,209,199,196,199,11,27,248,80,158,42,35,197,250,22,209,199,195,199,11, 28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,91,159,34,11, -90,161,34,32,11,248,202,27,249,22,61,200,199,27,20,15,159,46,51,45,250, -22,209,20,15,159,49,52,45,250,22,209,20,15,159,52,53,45,199,20,15,159, -52,54,45,195,27,248,202,201,249,22,7,195,89,162,32,33,38,9,224,4,2, -248,194,248,22,59,248,195,197,27,28,248,80,158,40,32,195,249,80,158,41,33, -248,80,158,42,34,197,27,248,80,158,43,35,198,250,22,209,200,195,200,11,28, -192,27,248,22,52,194,27,248,22,53,195,251,22,252,39,2,11,6,82,82,98, -97,100,32,115,121,110,116,97,120,32,40,110,111,116,32,97,110,32,105,100,101, -110,116,105,102,105,101,114,32,102,111,114,32,112,114,111,99,101,100,117,114,101, -32,110,97,109,101,44,32,97,110,100,32,110,111,116,32,97,32,110,101,115,116, -101,100,32,112,114,111,99,101,100,117,114,101,32,102,111,114,109,41,204,197,250, -22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197,27,28, -248,80,158,39,32,195,249,80,158,40,33,248,80,158,41,34,197,27,248,80,158, -42,35,198,250,22,209,200,195,200,11,28,192,27,248,22,52,194,27,248,22,53, -195,28,248,80,158,41,41,194,249,22,7,195,248,200,204,247,195,247,193,87,95, -28,248,80,158,42,36,195,12,250,22,252,39,2,11,6,50,50,98,97,100,32, -115,121,110,116,97,120,32,40,105,108,108,101,103,97,108,32,117,115,101,32,111, -102,32,96,46,39,32,102,111,114,32,112,114,111,99,101,100,117,114,101,32,98, -111,100,121,41,202,28,248,80,158,42,43,195,250,22,252,39,2,11,6,46,46, -98,97,100,32,115,121,110,116,97,120,32,40,110,111,32,101,120,112,114,101,115, -115,105,111,110,115,32,102,111,114,32,112,114,111,99,101,100,117,114,101,32,98, -111,100,121,41,202,12,27,249,22,209,20,15,159,44,55,45,203,27,249,22,209, -20,15,159,45,56,45,196,27,249,22,209,20,15,159,46,57,45,248,199,200,249, -80,158,46,38,204,27,250,22,61,200,199,198,27,20,15,159,48,58,45,250,22, -209,20,15,159,51,59,45,250,22,209,20,15,159,54,8,28,45,250,22,60,248, -22,52,203,250,22,209,20,15,159,8,28,8,29,45,248,22,60,248,22,78,23, -15,20,15,159,8,28,8,30,45,248,22,80,203,20,15,159,54,8,31,45,195, -250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,196,27, +90,161,34,32,11,248,202,27,249,22,61,199,200,27,20,15,159,46,51,45,250, +22,209,20,15,159,49,52,45,250,22,209,20,15,159,52,53,45,249,22,56,248, +22,53,202,248,22,52,202,20,15,159,52,54,45,195,27,248,202,201,249,22,7, +195,89,162,32,33,38,9,224,4,2,248,194,248,22,59,248,195,197,27,28,248, +80,158,40,32,195,249,80,158,41,33,248,80,158,42,34,197,27,248,80,158,43, +35,198,250,22,209,200,195,200,11,28,192,27,248,22,52,194,27,248,22,53,195, +251,22,252,39,2,11,6,82,82,98,97,100,32,115,121,110,116,97,120,32,40, +110,111,116,32,97,110,32,105,100,101,110,116,105,102,105,101,114,32,102,111,114, +32,112,114,111,99,101,100,117,114,101,32,110,97,109,101,44,32,97,110,100,32, +110,111,116,32,97,32,110,101,115,116,101,100,32,112,114,111,99,101,100,117,114, +101,32,102,111,114,109,41,204,197,250,22,252,39,2,11,6,10,10,98,97,100, +32,115,121,110,116,97,120,197,27,28,248,80,158,39,32,195,249,80,158,40,33, +248,80,158,41,34,197,27,248,80,158,42,35,198,250,22,209,200,195,200,11,28, +192,27,248,22,52,194,27,248,22,53,195,28,248,80,158,41,41,194,249,22,7, +195,248,200,204,247,195,247,193,87,95,28,248,80,158,42,36,195,12,250,22,252, +39,2,11,6,50,50,98,97,100,32,115,121,110,116,97,120,32,40,105,108,108, +101,103,97,108,32,117,115,101,32,111,102,32,96,46,39,32,102,111,114,32,112, +114,111,99,101,100,117,114,101,32,98,111,100,121,41,202,28,248,80,158,42,43, +195,250,22,252,39,2,11,6,46,46,98,97,100,32,115,121,110,116,97,120,32, +40,110,111,32,101,120,112,114,101,115,115,105,111,110,115,32,102,111,114,32,112, +114,111,99,101,100,117,114,101,32,98,111,100,121,41,202,12,27,249,22,209,20, +15,159,44,55,45,203,27,249,22,209,20,15,159,45,56,45,196,27,249,22,209, +20,15,159,46,57,45,248,199,200,249,80,158,46,38,204,27,250,22,61,200,198, +199,27,20,15,159,48,58,45,250,22,209,20,15,159,51,59,45,250,22,209,20, +15,159,54,8,28,45,250,22,60,248,22,52,203,250,22,209,20,15,159,8,28, +8,29,45,248,22,60,248,22,80,23,15,20,15,159,8,28,8,30,45,248,22, +78,203,20,15,159,54,8,31,45,195,250,22,252,39,2,11,6,10,10,98,97, +100,32,115,121,110,116,97,120,196,27,28,248,80,158,38,32,195,249,80,158,39, +33,248,80,158,40,34,197,27,248,80,158,41,35,198,28,248,80,158,41,32,193, +27,28,248,22,206,194,193,198,249,80,158,43,33,248,80,158,44,34,196,27,248, +80,158,45,35,197,250,22,209,198,195,198,11,11,28,192,27,248,22,52,194,27, +248,22,78,195,27,248,22,80,196,28,248,80,158,41,32,194,247,196,251,22,252, +39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,202,197,247,193,27, 28,248,80,158,38,32,195,249,80,158,39,33,248,80,158,40,34,197,27,248,80, 158,41,35,198,28,248,80,158,41,32,193,27,28,248,22,206,194,193,198,249,80, 158,43,33,248,80,158,44,34,196,27,248,80,158,45,35,197,250,22,209,198,195, 198,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,28, -248,80,158,41,32,194,247,196,251,22,252,39,2,11,6,10,10,98,97,100,32, -115,121,110,116,97,120,202,197,247,193,27,28,248,80,158,38,32,195,249,80,158, -39,33,248,80,158,40,34,197,27,248,80,158,41,35,198,28,248,80,158,41,32, -193,27,28,248,22,206,194,193,198,249,80,158,43,33,248,80,158,44,34,196,27, -248,80,158,45,35,197,250,22,209,198,195,198,11,11,28,192,27,248,22,52,194, -27,248,22,78,195,27,248,22,80,196,28,248,80,158,41,41,194,250,22,252,39, -2,11,27,249,22,209,20,15,159,46,8,32,45,204,27,28,248,80,158,46,32, -194,249,80,158,47,33,248,80,158,48,34,196,27,248,80,158,49,35,197,28,248, -80,158,49,32,193,249,80,158,50,33,248,80,158,51,34,195,27,248,80,158,52, -35,196,28,248,80,158,52,36,193,248,80,158,52,37,193,11,11,11,28,192,27, -248,22,52,194,27,248,22,78,195,27,248,22,80,196,6,50,50,98,97,100,32, -115,121,110,116,97,120,32,40,109,117,108,116,105,112,108,101,32,101,120,112,114, -101,115,115,105,111,110,115,32,97,102,116,101,114,32,105,100,101,110,116,105,102, -105,101,114,41,27,28,248,80,158,47,32,195,249,80,158,48,33,248,80,158,49, -34,197,27,248,80,158,50,35,198,28,248,80,158,50,32,193,249,80,158,51,40, -248,80,158,52,34,195,248,80,158,52,44,248,80,158,53,35,196,11,11,28,192, -27,248,22,52,194,27,248,22,53,195,6,46,46,98,97,100,32,115,121,110,116, -97,120,32,40,122,101,114,111,32,101,120,112,114,101,115,115,105,111,110,115,32, -97,102,116,101,114,32,105,100,101,110,116,105,102,105,101,114,41,27,28,248,80, -158,48,32,196,249,80,158,49,33,248,80,158,50,34,198,27,248,80,158,51,35, -199,28,248,80,158,51,32,193,27,28,248,22,206,194,193,199,249,80,158,53,33, -248,80,158,54,34,196,27,248,80,158,55,35,197,250,22,209,198,195,198,11,11, -28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,6,31,31,98, -97,100,32,115,121,110,116,97,120,32,40,105,108,108,101,103,97,108,32,117,115, -101,32,111,102,32,96,46,39,41,250,22,252,39,2,11,6,10,10,98,97,100, -32,115,121,110,116,97,120,198,201,247,196,247,193,27,28,248,80,158,37,32,195, -249,80,158,38,33,248,80,158,39,34,197,27,248,80,158,40,35,198,28,248,80, -158,40,32,193,249,80,158,41,33,248,80,158,42,34,195,27,248,80,158,43,35, -196,28,248,80,158,43,32,193,249,80,158,44,40,248,80,158,45,34,195,248,80, -158,45,44,248,80,158,46,35,196,11,11,11,28,192,27,248,22,52,194,27,248, -22,78,195,27,248,22,80,196,28,248,80,158,40,41,194,27,249,22,209,20,15, -159,42,8,33,45,201,249,80,158,42,38,203,27,250,22,61,198,200,199,27,20, -15,159,44,8,34,45,250,22,209,20,15,159,47,8,35,45,250,22,209,20,15, -159,50,8,36,45,250,22,60,248,22,52,203,250,22,209,20,15,159,56,8,37, -45,248,22,60,248,22,78,23,15,20,15,159,56,8,38,45,248,22,80,203,20, -15,159,50,8,39,45,195,247,196,247,193,250,22,7,248,196,20,15,159,37,8, -40,45,248,196,20,15,159,37,8,41,45,248,196,20,15,159,37,8,42,45,37, -20,98,158,16,13,30,12,65,35,37,115,116,120,13,69,115,116,120,45,112,97, -105,114,63,14,11,30,15,2,13,67,99,111,110,115,47,35,102,16,1,30,17, -2,13,67,115,116,120,45,99,97,114,18,5,30,19,2,13,67,115,116,120,45, -99,100,114,20,6,30,21,2,13,69,115,116,120,45,108,105,115,116,63,22,8, -30,23,2,13,69,115,116,120,45,62,108,105,115,116,24,4,30,25,68,35,37, -115,116,120,108,111,99,26,68,114,101,108,111,99,97,116,101,27,1,30,28,2, -13,74,115,112,108,105,116,45,115,116,120,45,108,105,115,116,29,3,30,30,2, -13,69,97,112,112,101,110,100,47,35,102,31,0,30,32,2,13,71,105,100,101, -110,116,105,102,105,101,114,63,33,2,30,34,76,35,37,115,116,120,99,97,115, -101,45,115,99,104,101,109,101,35,1,26,99,104,101,99,107,45,100,117,112,108, -105,99,97,116,101,45,105,100,101,110,116,105,102,105,101,114,36,0,30,37,2, -13,69,115,116,120,45,110,117,108,108,63,38,10,30,39,2,13,71,115,116,120, -45,110,117,108,108,47,35,102,40,9,16,43,18,99,64,104,101,114,101,41,39, -97,37,10,32,11,16,8,2,3,2,2,2,4,2,2,2,5,2,2,2,6, -2,2,98,36,10,33,11,95,159,67,35,37,113,113,115,116,120,42,9,11,159, -2,13,9,11,159,2,35,9,11,16,0,96,35,8,254,1,11,16,0,16,4, -34,11,77,100,101,102,105,110,101,45,118,97,108,117,101,115,45,115,116,120,43, -3,1,7,101,110,118,51,48,56,55,44,16,4,33,11,63,115,116,120,45,3, -1,7,101,110,118,51,48,56,56,46,18,102,2,41,43,37,36,35,34,33,16, -8,42,11,3,1,4,103,51,53,49,47,3,1,4,103,51,53,50,48,3,1, -4,103,51,53,51,49,3,1,7,101,110,118,51,49,48,51,50,2,50,2,50, -16,8,41,11,61,95,51,65,112,114,111,116,111,52,64,98,111,100,121,53,3, -1,7,101,110,118,51,49,48,52,54,2,54,2,54,16,6,40,11,2,10,2, -11,3,1,7,101,110,118,51,49,48,57,55,2,55,18,16,2,95,66,115,114, -99,116,97,103,56,44,93,8,252,117,8,95,9,8,252,117,8,69,35,37,115, -116,120,99,97,115,101,57,18,104,64,100,101,115,116,58,48,37,36,35,34,33, -42,41,16,6,47,11,2,10,2,11,2,55,2,55,16,6,46,11,3,1,4, -103,51,54,54,59,3,1,4,103,51,54,55,60,3,1,7,101,110,118,51,49, -49,54,61,2,61,16,6,45,11,62,105,100,62,63,97,114,103,63,3,1,7, -101,110,118,51,49,49,55,64,2,64,18,158,2,41,48,18,16,2,95,2,56, -49,93,8,252,123,8,95,9,8,252,123,8,2,57,18,158,2,58,48,18,158, -63,99,116,120,65,48,18,158,66,108,97,109,98,100,97,66,48,18,158,2,65, -48,18,16,2,95,2,56,50,93,8,252,124,8,95,9,8,252,124,8,2,57, -18,104,2,58,53,37,36,35,34,33,42,41,47,16,8,52,11,3,1,4,103, -51,54,51,67,3,1,4,103,51,54,52,68,3,1,4,103,51,54,53,69,3, -1,7,101,110,118,51,49,52,50,70,2,70,2,70,16,8,51,11,2,62,2, -63,64,114,101,115,116,71,3,1,7,101,110,118,51,49,52,51,72,2,72,2, -72,18,158,2,41,53,18,16,2,95,2,56,54,93,8,252,130,8,95,9,8, -252,130,8,2,57,18,158,2,58,53,18,158,2,65,53,18,158,2,66,53,18, -158,2,65,53,18,158,2,41,43,18,16,2,95,2,56,55,93,8,252,142,8, -95,9,8,252,142,8,2,57,18,104,2,58,58,37,36,35,34,33,42,41,40, -16,8,57,11,3,1,4,103,51,55,54,73,3,1,4,103,51,55,55,74,3, -1,4,103,51,55,56,75,3,1,7,101,110,118,51,49,55,52,76,2,76,2, -76,16,8,56,11,69,115,111,109,101,116,104,105,110,103,77,64,109,111,114,101, -78,2,71,3,1,7,101,110,118,51,49,55,53,79,2,79,2,79,18,158,2, -65,58,18,158,2,65,58,18,102,2,41,8,28,37,36,35,34,33,42,41,16, -6,59,11,2,62,66,109,107,45,114,104,115,80,3,1,7,101,110,118,51,49, -48,56,81,2,81,18,158,2,41,8,28,18,158,2,41,8,28,18,16,2,95, -2,56,8,29,93,8,252,161,8,95,9,8,252,161,8,2,57,18,158,2,58, -8,28,18,158,2,65,8,28,18,158,2,65,8,28,18,158,2,65,8,28,18, -158,2,65,8,28,18,101,2,41,8,32,37,36,35,34,33,16,8,8,31,11, -3,1,4,103,51,53,55,82,3,1,4,103,51,53,56,83,3,1,4,103,51, -53,57,84,3,1,7,101,110,118,51,50,52,57,85,2,85,2,85,16,8,8, -30,11,2,51,2,62,2,71,3,1,7,101,110,118,51,50,53,48,86,2,86, -2,86,18,101,2,41,8,35,37,36,35,34,33,16,8,8,34,11,3,1,4, -103,51,54,48,87,3,1,4,103,51,54,49,88,3,1,4,103,51,54,50,89, -3,1,7,101,110,118,51,50,56,54,90,2,90,2,90,16,8,8,33,11,2, -51,2,62,64,101,120,112,114,91,3,1,7,101,110,118,51,50,56,55,92,2, -92,2,92,18,16,2,95,2,56,8,36,93,8,252,185,8,95,9,8,252,185, -8,2,57,18,158,2,58,8,35,18,158,2,65,8,35,18,158,2,65,8,35, -18,158,2,65,8,35,18,158,2,65,8,35,18,98,73,100,101,102,105,110,101, -45,118,97,108,117,101,115,93,8,38,37,36,35,16,4,8,37,11,2,7,3, -1,7,101,110,118,51,48,56,54,94,18,158,75,100,101,102,105,110,101,45,115, -121,110,116,97,120,101,115,95,8,38,18,158,1,24,100,101,102,105,110,101,45, -118,97,108,117,101,115,45,102,111,114,45,115,121,110,116,97,120,96,8,38,11, -16,5,93,2,5,89,162,32,33,8,32,9,223,0,27,247,22,252,82,3,87, -94,28,249,22,71,194,21,95,66,109,111,100,117,108,101,97,72,109,111,100,117, -108,101,45,98,101,103,105,110,98,69,116,111,112,45,108,101,118,101,108,99,12, -250,22,252,39,2,11,6,51,51,97,108,108,111,119,101,100,32,111,110,108,121, -32,97,116,32,116,104,101,32,116,111,112,45,108,101,118,101,108,32,111,114,32, -97,32,109,111,100,117,108,101,32,116,111,112,45,108,101,118,101,108,197,27,249, -22,209,20,15,159,36,32,42,197,27,28,248,80,158,36,32,194,249,80,158,37, -33,248,80,158,38,34,196,248,80,158,38,35,248,80,158,39,36,197,11,28,192, -20,15,159,35,33,42,27,89,162,32,32,51,2,9,225,4,5,2,27,28,248, -80,158,36,32,194,249,80,158,37,37,248,80,158,38,34,196,27,248,80,158,39, -36,197,28,248,80,158,39,38,193,248,80,158,39,39,193,11,11,28,192,27,248, -22,52,194,27,248,22,53,195,249,80,158,39,40,198,27,20,15,159,40,34,42, -250,22,209,20,15,159,43,35,42,250,22,209,20,15,159,46,36,42,249,22,56, -20,15,159,48,37,42,249,22,2,89,162,33,33,40,9,223,18,250,22,209,20, -15,159,35,38,42,249,22,60,20,15,159,37,39,42,248,22,52,199,20,15,159, -35,40,42,205,20,15,159,46,41,42,195,250,22,252,39,2,11,6,10,10,98, -97,100,32,115,121,110,116,97,120,196,27,28,248,80,158,38,32,196,249,80,158, -39,37,248,80,158,40,34,198,27,248,80,158,41,36,199,28,248,80,158,41,32, -193,249,80,158,42,33,248,80,158,43,34,195,248,80,158,43,35,248,80,158,44, -36,196,11,11,28,192,27,248,22,52,194,27,248,22,53,195,28,249,22,252,11, -2,200,2,98,247,195,27,250,22,252,25,2,196,202,248,22,216,20,15,159,44, -42,42,27,249,22,209,20,15,159,43,43,42,195,27,28,248,80,158,43,32,194, -28,27,248,80,158,44,34,195,28,248,80,158,44,41,193,28,249,22,224,194,20, -15,159,45,44,42,9,11,11,27,248,80,158,44,36,195,28,248,80,158,44,38, -193,248,80,158,44,39,193,11,11,11,28,192,27,20,15,159,43,45,42,250,22, -209,20,15,159,46,46,42,250,22,209,20,15,159,49,47,42,249,22,56,20,15, -159,51,48,42,201,20,15,159,49,49,42,195,27,28,248,80,158,44,32,195,28, -27,248,80,158,45,34,196,28,248,80,158,45,41,193,28,249,22,224,194,20,15, -159,46,50,42,9,11,11,27,248,80,158,45,36,196,28,248,80,158,45,32,193, -249,80,158,46,33,27,248,80,158,48,34,196,28,248,80,158,48,38,193,248,22, -59,248,80,158,49,39,194,11,27,248,80,158,48,36,196,28,248,80,158,48,32, -193,249,80,158,49,33,248,80,158,50,34,195,248,80,158,50,35,248,80,158,51, -36,196,11,11,11,11,28,192,27,248,22,52,194,27,248,22,53,195,27,249,22, -61,196,195,27,20,15,159,47,51,42,250,22,209,20,15,159,50,52,42,250,22, -209,20,15,159,53,53,42,250,22,60,20,15,159,56,54,42,248,22,52,203,248, -22,53,203,20,15,159,53,55,42,195,27,28,248,80,158,45,32,196,28,27,248, -80,158,46,34,197,28,248,80,158,46,41,193,28,249,22,224,194,20,15,159,47, -56,42,9,11,11,27,248,80,158,46,36,197,28,248,80,158,46,38,193,248,80, -158,46,39,193,11,11,11,28,192,27,20,15,159,45,57,42,250,22,209,20,15, -159,48,58,42,250,22,209,20,15,159,51,59,42,249,22,56,20,15,159,53,8, -28,42,201,20,15,159,51,8,29,42,195,27,28,248,80,158,46,32,197,28,27, -248,80,158,47,34,198,28,248,80,158,47,41,193,28,249,22,224,194,20,15,159, -48,8,30,42,9,11,11,27,248,80,158,47,36,198,28,248,80,158,47,38,193, -248,80,158,47,39,193,11,11,11,28,192,27,20,15,159,46,8,31,42,250,22, -209,20,15,159,49,8,32,42,250,22,209,20,15,159,52,8,33,42,249,22,56, -20,15,159,54,8,34,42,201,20,15,159,52,8,35,42,195,27,28,248,80,158, -47,32,198,28,27,248,80,158,48,34,199,28,248,80,158,48,41,193,28,249,22, -224,194,20,15,159,49,8,36,42,9,11,11,27,248,80,158,48,36,199,28,248, -80,158,48,32,193,249,80,158,49,33,27,248,80,158,51,34,196,28,248,80,158, -51,38,193,248,22,59,248,80,158,52,39,194,11,27,248,80,158,51,36,196,28, -248,80,158,51,32,193,249,80,158,52,33,248,80,158,53,34,195,248,80,158,53, -35,248,80,158,54,36,196,11,11,11,11,28,192,27,248,22,52,194,27,248,22, -53,195,250,22,252,39,2,11,6,54,54,115,121,110,116,97,120,32,100,101,102, -105,110,105,116,105,111,110,115,32,110,111,116,32,97,108,108,111,119,101,100,32, -119,105,116,104,105,110,32,98,101,103,105,110,45,102,111,114,45,115,121,110,116, -97,120,204,27,20,15,159,47,8,37,42,250,22,209,20,15,159,50,8,38,42, -250,22,209,20,15,159,53,8,39,42,250,22,60,20,15,159,56,8,40,42,20, -15,159,56,8,41,42,250,22,209,20,15,159,59,8,42,42,250,22,62,20,15, -159,8,30,8,43,42,23,21,20,15,159,8,30,8,44,42,20,15,159,59,8, -45,42,20,15,159,53,8,46,42,195,247,193,32,20,98,158,16,10,2,12,2, -30,2,17,2,39,2,19,2,15,2,21,2,23,2,25,2,32,16,47,18,99, -2,41,8,41,37,36,35,16,4,8,40,11,2,45,3,1,7,101,110,118,51, -51,48,52,100,16,4,8,39,11,2,65,3,1,7,101,110,118,51,51,48,53, -101,18,158,93,16,2,101,2,0,8,44,37,36,35,8,40,8,39,16,4,8, -43,11,3,1,4,103,52,48,53,102,3,1,7,101,110,118,51,51,49,48,103, -16,4,8,42,11,2,51,3,1,7,101,110,118,51,51,49,49,104,9,8,44, -18,16,2,95,2,56,8,45,93,8,252,199,8,95,9,8,252,199,8,2,57, -18,101,2,58,8,48,37,36,35,8,40,8,39,16,6,8,47,11,3,1,4, -103,52,48,49,105,3,1,4,103,52,48,50,106,3,1,7,101,110,118,51,51, -49,57,107,2,107,16,6,8,46,11,2,51,64,101,108,101,109,108,3,1,7, -101,110,118,51,51,50,48,109,2,109,18,158,2,65,8,48,18,158,2,0,8, -48,18,158,2,65,8,48,18,158,2,5,8,48,18,158,2,65,8,48,18,158, -2,65,8,48,18,158,110,16,2,101,2,0,8,51,37,36,35,8,40,8,39, -16,6,8,50,11,3,1,4,103,52,48,51,110,3,1,4,103,52,48,52,111, -3,1,7,101,110,118,51,51,51,48,112,2,112,16,6,8,49,11,2,51,2, -108,3,1,7,101,110,118,51,51,51,49,113,2,113,9,16,2,158,2,93,8, -51,9,16,2,158,2,95,8,51,9,16,2,158,2,96,8,51,9,16,2,158, -64,115,101,116,33,114,8,51,9,16,2,158,70,108,101,116,45,118,97,108,117, -101,115,115,8,51,9,16,2,158,71,108,101,116,42,45,118,97,108,117,101,115, -116,8,51,9,16,2,158,73,108,101,116,114,101,99,45,118,97,108,117,101,115, -117,8,51,9,16,2,158,2,66,8,51,9,16,2,158,71,99,97,115,101,45, -108,97,109,98,100,97,118,8,51,9,16,2,158,62,105,102,119,8,51,9,16, -2,158,65,113,117,111,116,101,120,8,51,9,16,2,158,1,22,108,101,116,114, -101,99,45,115,121,110,116,97,120,101,115,43,118,97,108,117,101,115,121,8,51, -9,16,2,158,76,102,108,117,105,100,45,108,101,116,45,115,121,110,116,97,120, -122,8,51,9,16,2,158,1,22,119,105,116,104,45,99,111,110,116,105,110,117, -97,116,105,111,110,45,109,97,114,107,123,8,51,9,16,2,158,65,35,37,97, -112,112,124,8,51,9,16,2,158,65,35,37,116,111,112,125,8,51,9,16,2, -158,67,35,37,100,97,116,117,109,126,8,51,9,8,51,18,102,2,41,8,53, -37,36,35,8,40,8,39,8,50,8,49,16,4,8,52,11,61,101,127,3,1, -7,101,110,118,51,51,51,52,128,18,158,2,0,8,53,18,16,2,95,2,56, -8,54,93,8,252,214,8,95,9,8,252,214,8,2,57,18,104,2,58,8,57, -37,36,35,8,40,8,39,8,50,8,49,8,52,16,4,8,56,11,3,1,4, -103,52,49,51,129,3,1,7,101,110,118,51,51,52,48,130,16,4,8,55,11, -61,118,131,3,1,7,101,110,118,51,51,52,49,132,18,158,2,65,8,57,18, -158,2,5,8,57,18,158,2,65,8,57,18,158,2,93,8,53,18,16,2,95, -2,56,8,58,93,8,252,215,8,95,9,8,252,215,8,2,57,18,104,2,58, -8,61,37,36,35,8,40,8,39,8,50,8,49,8,52,16,6,8,60,11,3, -1,4,103,52,49,49,133,3,1,4,103,52,49,50,134,3,1,7,101,110,118, -51,51,53,49,135,2,135,16,6,8,59,11,2,62,2,91,3,1,7,101,110, -118,51,51,53,50,136,2,136,18,158,2,65,8,61,18,158,2,96,8,61,18, -158,2,65,8,61,18,158,67,114,101,113,117,105,114,101,137,8,53,18,16,2, -95,2,56,8,62,93,8,252,216,8,95,9,8,252,216,8,2,57,18,104,2, -58,8,65,37,36,35,8,40,8,39,8,50,8,49,8,52,16,4,8,64,11, -3,1,4,103,52,49,48,138,3,1,7,101,110,118,51,51,54,49,139,16,4, -8,63,11,2,131,3,1,7,101,110,118,51,51,54,50,140,18,158,2,65,8, -65,18,158,78,114,101,113,117,105,114,101,45,102,111,114,45,115,121,110,116,97, -120,141,8,65,18,158,2,65,8,65,18,158,1,20,114,101,113,117,105,114,101, -45,102,111,114,45,116,101,109,112,108,97,116,101,142,8,53,18,16,2,95,2, -56,8,66,93,8,252,217,8,95,9,8,252,217,8,2,57,18,104,2,58,8, -69,37,36,35,8,40,8,39,8,50,8,49,8,52,16,4,8,68,11,3,1, -4,103,52,48,57,143,3,1,7,101,110,118,51,51,55,48,144,16,4,8,67, -11,2,131,3,1,7,101,110,118,51,51,55,49,145,18,158,2,65,8,69,18, -158,2,137,8,69,18,158,2,65,8,69,18,158,2,95,8,53,18,16,2,95, -2,56,8,70,93,8,252,219,8,95,9,8,252,219,8,2,57,18,104,2,58, -8,73,37,36,35,8,40,8,39,8,50,8,49,8,52,16,4,8,72,11,3, -1,4,103,52,48,54,146,3,1,7,101,110,118,51,51,56,54,147,16,4,8, -71,11,65,111,116,104,101,114,148,3,1,7,101,110,118,51,51,56,55,149,18, -158,2,65,8,73,18,158,2,96,8,73,18,158,9,8,73,18,158,2,65,8, -73,18,158,2,0,8,73,18,16,2,103,93,16,2,158,93,16,2,158,66,118, -97,108,117,101,115,150,8,73,9,8,73,9,8,81,98,8,80,10,32,11,94, -159,74,35,37,115,109,97,108,108,45,115,99,104,101,109,101,151,9,11,159,2, -13,9,11,16,6,66,115,121,110,116,97,120,152,29,153,11,11,73,115,121,110, -116,97,120,45,99,97,115,101,42,42,154,2,153,1,20,101,108,108,105,112,115, -105,115,45,99,111,117,110,116,45,101,114,114,111,114,155,2,153,98,8,79,10, -33,11,95,159,64,35,37,115,99,156,9,11,159,2,151,9,11,159,2,13,9, -11,16,0,96,8,78,8,254,1,11,16,0,16,4,8,77,11,61,120,157,3, -1,6,101,110,118,51,55,55,158,16,4,8,76,11,68,104,101,114,101,45,115, -116,120,159,3,1,6,101,110,118,51,55,57,160,16,4,8,75,11,2,159,2, -160,13,16,3,33,2,153,2,57,93,8,252,219,8,16,6,8,74,11,61,114, -161,63,115,114,99,162,3,1,7,101,110,118,51,51,57,48,163,2,163,95,9, -8,252,219,8,2,57,18,158,2,65,8,73,18,158,2,65,8,73,11,9,93, -68,35,37,107,101,114,110,101,108,164,96,2,164,2,35,2,13,2,42,0}; - EVAL_ONE_SIZED_STR((char *)expr, 6718); +248,80,158,41,41,194,250,22,252,39,2,11,27,249,22,209,20,15,159,46,8, +32,45,204,27,28,248,80,158,46,32,194,249,80,158,47,33,248,80,158,48,34, +196,27,248,80,158,49,35,197,28,248,80,158,49,32,193,249,80,158,50,33,248, +80,158,51,34,195,27,248,80,158,52,35,196,28,248,80,158,52,36,193,248,80, +158,52,37,193,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, +22,80,196,6,50,50,98,97,100,32,115,121,110,116,97,120,32,40,109,117,108, +116,105,112,108,101,32,101,120,112,114,101,115,115,105,111,110,115,32,97,102,116, +101,114,32,105,100,101,110,116,105,102,105,101,114,41,27,28,248,80,158,47,32, +195,249,80,158,48,33,248,80,158,49,34,197,27,248,80,158,50,35,198,28,248, +80,158,50,32,193,249,80,158,51,40,248,80,158,52,34,195,248,80,158,52,44, +248,80,158,53,35,196,11,11,28,192,27,248,22,52,194,27,248,22,53,195,6, +46,46,98,97,100,32,115,121,110,116,97,120,32,40,122,101,114,111,32,101,120, +112,114,101,115,115,105,111,110,115,32,97,102,116,101,114,32,105,100,101,110,116, +105,102,105,101,114,41,27,28,248,80,158,48,32,196,249,80,158,49,33,248,80, +158,50,34,198,27,248,80,158,51,35,199,28,248,80,158,51,32,193,27,28,248, +22,206,194,193,199,249,80,158,53,33,248,80,158,54,34,196,27,248,80,158,55, +35,197,250,22,209,198,195,198,11,11,28,192,27,248,22,52,194,27,248,22,78, +195,27,248,22,80,196,6,31,31,98,97,100,32,115,121,110,116,97,120,32,40, +105,108,108,101,103,97,108,32,117,115,101,32,111,102,32,96,46,39,41,250,22, +252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,198,201,247,196, +247,193,27,28,248,80,158,37,32,195,249,80,158,38,33,248,80,158,39,34,197, +27,248,80,158,40,35,198,28,248,80,158,40,32,193,249,80,158,41,33,248,80, +158,42,34,195,27,248,80,158,43,35,196,28,248,80,158,43,32,193,249,80,158, +44,40,248,80,158,45,34,195,248,80,158,45,44,248,80,158,46,35,196,11,11, +11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,28,248,80, +158,40,41,194,27,249,22,209,20,15,159,42,8,33,45,201,249,80,158,42,38, +203,27,250,22,61,200,198,199,27,20,15,159,44,8,34,45,250,22,209,20,15, +159,47,8,35,45,250,22,209,20,15,159,50,8,36,45,250,22,60,248,22,78, +203,250,22,209,20,15,159,56,8,37,45,248,22,60,248,22,52,23,15,20,15, +159,56,8,38,45,248,22,80,203,20,15,159,50,8,39,45,195,247,196,247,193, +250,22,7,248,196,20,15,159,37,8,40,45,248,196,20,15,159,37,8,41,45, +248,196,20,15,159,37,8,42,45,37,20,98,158,16,13,30,12,65,35,37,115, +116,120,13,69,115,116,120,45,112,97,105,114,63,14,11,30,15,2,13,67,99, +111,110,115,47,35,102,16,1,30,17,2,13,67,115,116,120,45,99,97,114,18, +5,30,19,2,13,67,115,116,120,45,99,100,114,20,6,30,21,2,13,69,115, +116,120,45,108,105,115,116,63,22,8,30,23,2,13,69,115,116,120,45,62,108, +105,115,116,24,4,30,25,68,35,37,115,116,120,108,111,99,26,68,114,101,108, +111,99,97,116,101,27,1,30,28,2,13,74,115,112,108,105,116,45,115,116,120, +45,108,105,115,116,29,3,30,30,2,13,69,97,112,112,101,110,100,47,35,102, +31,0,30,32,2,13,71,105,100,101,110,116,105,102,105,101,114,63,33,2,30, +34,76,35,37,115,116,120,99,97,115,101,45,115,99,104,101,109,101,35,1,26, +99,104,101,99,107,45,100,117,112,108,105,99,97,116,101,45,105,100,101,110,116, +105,102,105,101,114,36,0,30,37,2,13,69,115,116,120,45,110,117,108,108,63, +38,10,30,39,2,13,71,115,116,120,45,110,117,108,108,47,35,102,40,9,16, +43,18,99,64,104,101,114,101,41,39,97,37,10,32,11,16,8,2,3,2,2, +2,4,2,2,2,5,2,2,2,6,2,2,98,36,10,33,11,95,159,67,35, +37,113,113,115,116,120,42,9,11,159,2,13,9,11,159,2,35,9,11,16,0, +96,35,8,254,1,11,16,0,16,4,34,11,77,100,101,102,105,110,101,45,118, +97,108,117,101,115,45,115,116,120,43,3,1,7,101,110,118,51,48,56,57,44, +16,4,33,11,63,115,116,120,45,3,1,7,101,110,118,51,48,57,48,46,18, +102,2,41,43,37,36,35,34,33,16,8,42,11,3,1,4,103,51,53,49,47, +3,1,4,103,51,53,50,48,3,1,4,103,51,53,51,49,3,1,7,101,110, +118,51,49,48,53,50,2,50,2,50,16,8,41,11,61,95,51,65,112,114,111, +116,111,52,64,98,111,100,121,53,3,1,7,101,110,118,51,49,48,54,54,2, +54,2,54,16,6,40,11,2,10,2,11,3,1,7,101,110,118,51,49,49,49, +55,2,55,18,16,2,95,66,115,114,99,116,97,103,56,44,93,8,252,119,8, +95,9,8,252,119,8,69,35,37,115,116,120,99,97,115,101,57,18,104,64,100, +101,115,116,58,48,37,36,35,34,33,42,41,16,6,47,11,2,10,2,11,2, +55,2,55,16,6,46,11,3,1,4,103,51,54,54,59,3,1,4,103,51,54, +55,60,3,1,7,101,110,118,51,49,49,56,61,2,61,16,6,45,11,62,105, +100,62,63,97,114,103,63,3,1,7,101,110,118,51,49,49,57,64,2,64,18, +158,2,41,48,18,16,2,95,2,56,49,93,8,252,125,8,95,9,8,252,125, +8,2,57,18,158,2,58,48,18,158,63,99,116,120,65,48,18,158,66,108,97, +109,98,100,97,66,48,18,158,2,65,48,18,16,2,95,2,56,50,93,8,252, +126,8,95,9,8,252,126,8,2,57,18,104,2,58,53,37,36,35,34,33,42, +41,47,16,8,52,11,3,1,4,103,51,54,51,67,3,1,4,103,51,54,52, +68,3,1,4,103,51,54,53,69,3,1,7,101,110,118,51,49,52,52,70,2, +70,2,70,16,8,51,11,2,62,2,63,64,114,101,115,116,71,3,1,7,101, +110,118,51,49,52,53,72,2,72,2,72,18,158,2,41,53,18,16,2,95,2, +56,54,93,8,252,132,8,95,9,8,252,132,8,2,57,18,158,2,58,53,18, +158,2,65,53,18,158,2,66,53,18,158,2,65,53,18,158,2,41,43,18,16, +2,95,2,56,55,93,8,252,144,8,95,9,8,252,144,8,2,57,18,104,2, +58,58,37,36,35,34,33,42,41,40,16,8,57,11,3,1,4,103,51,55,54, +73,3,1,4,103,51,55,55,74,3,1,4,103,51,55,56,75,3,1,7,101, +110,118,51,49,55,54,76,2,76,2,76,16,8,56,11,69,115,111,109,101,116, +104,105,110,103,77,64,109,111,114,101,78,2,71,3,1,7,101,110,118,51,49, +55,55,79,2,79,2,79,18,158,2,65,58,18,158,2,65,58,18,102,2,41, +8,28,37,36,35,34,33,42,41,16,6,59,11,2,62,66,109,107,45,114,104, +115,80,3,1,7,101,110,118,51,49,49,48,81,2,81,18,158,2,41,8,28, +18,158,2,41,8,28,18,16,2,95,2,56,8,29,93,8,252,163,8,95,9, +8,252,163,8,2,57,18,158,2,58,8,28,18,158,2,65,8,28,18,158,2, +65,8,28,18,158,2,65,8,28,18,158,2,65,8,28,18,101,2,41,8,32, +37,36,35,34,33,16,8,8,31,11,3,1,4,103,51,53,55,82,3,1,4, +103,51,53,56,83,3,1,4,103,51,53,57,84,3,1,7,101,110,118,51,50, +53,49,85,2,85,2,85,16,8,8,30,11,2,51,2,62,2,71,3,1,7, +101,110,118,51,50,53,50,86,2,86,2,86,18,101,2,41,8,35,37,36,35, +34,33,16,8,8,34,11,3,1,4,103,51,54,48,87,3,1,4,103,51,54, +49,88,3,1,4,103,51,54,50,89,3,1,7,101,110,118,51,50,56,56,90, +2,90,2,90,16,8,8,33,11,2,51,2,62,64,101,120,112,114,91,3,1, +7,101,110,118,51,50,56,57,92,2,92,2,92,18,16,2,95,2,56,8,36, +93,8,252,187,8,95,9,8,252,187,8,2,57,18,158,2,58,8,35,18,158, +2,65,8,35,18,158,2,65,8,35,18,158,2,65,8,35,18,158,2,65,8, +35,18,98,73,100,101,102,105,110,101,45,118,97,108,117,101,115,93,8,38,37, +36,35,16,4,8,37,11,2,7,3,1,7,101,110,118,51,48,56,56,94,18, +158,75,100,101,102,105,110,101,45,115,121,110,116,97,120,101,115,95,8,38,18, +158,1,24,100,101,102,105,110,101,45,118,97,108,117,101,115,45,102,111,114,45, +115,121,110,116,97,120,96,8,38,11,16,5,93,2,4,89,162,32,33,8,32, +9,223,0,27,247,22,252,83,3,87,94,28,249,22,71,194,21,95,66,109,111, +100,117,108,101,97,72,109,111,100,117,108,101,45,98,101,103,105,110,98,69,116, +111,112,45,108,101,118,101,108,99,12,250,22,252,39,2,11,6,51,51,97,108, +108,111,119,101,100,32,111,110,108,121,32,97,116,32,116,104,101,32,116,111,112, +45,108,101,118,101,108,32,111,114,32,97,32,109,111,100,117,108,101,32,116,111, +112,45,108,101,118,101,108,197,27,249,22,209,20,15,159,36,32,42,197,27,28, +248,80,158,36,32,194,249,80,158,37,33,248,80,158,38,34,196,248,80,158,38, +35,248,80,158,39,36,197,11,28,192,20,15,159,35,33,42,27,89,162,32,32, +51,2,9,225,4,5,2,27,28,248,80,158,36,32,194,249,80,158,37,37,248, +80,158,38,34,196,27,248,80,158,39,36,197,28,248,80,158,39,38,193,248,80, +158,39,39,193,11,11,28,192,27,248,22,52,194,27,248,22,53,195,249,80,158, +39,40,198,27,20,15,159,40,34,42,250,22,209,20,15,159,43,35,42,250,22, +209,20,15,159,46,36,42,249,22,56,20,15,159,48,37,42,249,22,2,89,162, +33,33,40,9,223,18,250,22,209,20,15,159,35,38,42,249,22,60,20,15,159, +37,39,42,248,22,52,199,20,15,159,35,40,42,205,20,15,159,46,41,42,195, +250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,196,27, +28,248,80,158,38,32,196,249,80,158,39,37,248,80,158,40,34,198,27,248,80, +158,41,36,199,28,248,80,158,41,32,193,249,80,158,42,33,248,80,158,43,34, +195,248,80,158,43,35,248,80,158,44,36,196,11,11,28,192,27,248,22,52,194, +27,248,22,53,195,28,249,22,252,11,2,200,2,98,247,195,27,250,22,252,25, +2,196,202,248,22,216,20,15,159,44,42,42,27,249,22,209,20,15,159,43,43, +42,195,27,28,248,80,158,43,32,194,28,27,248,80,158,44,34,195,28,248,80, +158,44,41,193,28,249,22,224,194,20,15,159,45,44,42,9,11,11,27,248,80, +158,44,36,195,28,248,80,158,44,38,193,248,80,158,44,39,193,11,11,11,28, +192,27,20,15,159,43,45,42,250,22,209,20,15,159,46,46,42,250,22,209,20, +15,159,49,47,42,249,22,56,20,15,159,51,48,42,201,20,15,159,49,49,42, +195,27,28,248,80,158,44,32,195,28,27,248,80,158,45,34,196,28,248,80,158, +45,41,193,28,249,22,224,194,20,15,159,46,50,42,9,11,11,27,248,80,158, +45,36,196,28,248,80,158,45,32,193,249,80,158,46,33,27,248,80,158,48,34, +196,28,248,80,158,48,38,193,248,22,59,248,80,158,49,39,194,11,27,248,80, +158,48,36,196,28,248,80,158,48,32,193,249,80,158,49,33,248,80,158,50,34, +195,248,80,158,50,35,248,80,158,51,36,196,11,11,11,11,28,192,27,248,22, +52,194,27,248,22,53,195,27,249,22,61,196,195,27,20,15,159,47,51,42,250, +22,209,20,15,159,50,52,42,250,22,209,20,15,159,53,53,42,250,22,60,20, +15,159,56,54,42,248,22,52,203,248,22,53,203,20,15,159,53,55,42,195,27, +28,248,80,158,45,32,196,28,27,248,80,158,46,34,197,28,248,80,158,46,41, +193,28,249,22,224,194,20,15,159,47,56,42,9,11,11,27,248,80,158,46,36, +197,28,248,80,158,46,38,193,248,80,158,46,39,193,11,11,11,28,192,27,20, +15,159,45,57,42,250,22,209,20,15,159,48,58,42,250,22,209,20,15,159,51, +59,42,249,22,56,20,15,159,53,8,28,42,201,20,15,159,51,8,29,42,195, +27,28,248,80,158,46,32,197,28,27,248,80,158,47,34,198,28,248,80,158,47, +41,193,28,249,22,224,194,20,15,159,48,8,30,42,9,11,11,27,248,80,158, +47,36,198,28,248,80,158,47,38,193,248,80,158,47,39,193,11,11,11,28,192, +27,20,15,159,46,8,31,42,250,22,209,20,15,159,49,8,32,42,250,22,209, +20,15,159,52,8,33,42,249,22,56,20,15,159,54,8,34,42,201,20,15,159, +52,8,35,42,195,27,28,248,80,158,47,32,198,28,27,248,80,158,48,34,199, +28,248,80,158,48,41,193,28,249,22,224,194,20,15,159,49,8,36,42,9,11, +11,27,248,80,158,48,36,199,28,248,80,158,48,32,193,249,80,158,49,33,27, +248,80,158,51,34,196,28,248,80,158,51,38,193,248,22,59,248,80,158,52,39, +194,11,27,248,80,158,51,36,196,28,248,80,158,51,32,193,249,80,158,52,33, +248,80,158,53,34,195,248,80,158,53,35,248,80,158,54,36,196,11,11,11,11, +28,192,27,248,22,52,194,27,248,22,53,195,250,22,252,39,2,11,6,54,54, +115,121,110,116,97,120,32,100,101,102,105,110,105,116,105,111,110,115,32,110,111, +116,32,97,108,108,111,119,101,100,32,119,105,116,104,105,110,32,98,101,103,105, +110,45,102,111,114,45,115,121,110,116,97,120,204,27,20,15,159,47,8,37,42, +250,22,209,20,15,159,50,8,38,42,250,22,209,20,15,159,53,8,39,42,250, +22,60,20,15,159,56,8,40,42,20,15,159,56,8,41,42,250,22,209,20,15, +159,59,8,42,42,250,22,62,20,15,159,8,30,8,43,42,23,21,20,15,159, +8,30,8,44,42,20,15,159,59,8,45,42,20,15,159,53,8,46,42,195,247, +193,32,20,98,158,16,10,2,12,2,30,2,17,2,39,2,19,2,15,2,21, +2,23,2,25,2,32,16,47,18,99,2,41,8,41,37,36,35,16,4,8,40, +11,2,45,3,1,7,101,110,118,51,51,48,54,100,16,4,8,39,11,2,65, +3,1,7,101,110,118,51,51,48,55,101,18,158,93,16,2,101,2,0,8,44, +37,36,35,8,40,8,39,16,4,8,43,11,3,1,4,103,52,48,53,102,3, +1,7,101,110,118,51,51,49,50,103,16,4,8,42,11,2,51,3,1,7,101, +110,118,51,51,49,51,104,9,8,44,18,16,2,95,2,56,8,45,93,8,252, +201,8,95,9,8,252,201,8,2,57,18,101,2,58,8,48,37,36,35,8,40, +8,39,16,6,8,47,11,3,1,4,103,52,48,49,105,3,1,4,103,52,48, +50,106,3,1,7,101,110,118,51,51,50,49,107,2,107,16,6,8,46,11,2, +51,64,101,108,101,109,108,3,1,7,101,110,118,51,51,50,50,109,2,109,18, +158,2,65,8,48,18,158,2,0,8,48,18,158,2,65,8,48,18,158,2,4, +8,48,18,158,2,65,8,48,18,158,2,65,8,48,18,158,110,16,2,101,2, +0,8,51,37,36,35,8,40,8,39,16,6,8,50,11,3,1,4,103,52,48, +51,110,3,1,4,103,52,48,52,111,3,1,7,101,110,118,51,51,51,50,112, +2,112,16,6,8,49,11,2,51,2,108,3,1,7,101,110,118,51,51,51,51, +113,2,113,9,16,2,158,2,93,8,51,9,16,2,158,2,95,8,51,9,16, +2,158,2,96,8,51,9,16,2,158,64,115,101,116,33,114,8,51,9,16,2, +158,70,108,101,116,45,118,97,108,117,101,115,115,8,51,9,16,2,158,71,108, +101,116,42,45,118,97,108,117,101,115,116,8,51,9,16,2,158,73,108,101,116, +114,101,99,45,118,97,108,117,101,115,117,8,51,9,16,2,158,2,66,8,51, +9,16,2,158,71,99,97,115,101,45,108,97,109,98,100,97,118,8,51,9,16, +2,158,62,105,102,119,8,51,9,16,2,158,65,113,117,111,116,101,120,8,51, +9,16,2,158,1,22,108,101,116,114,101,99,45,115,121,110,116,97,120,101,115, +43,118,97,108,117,101,115,121,8,51,9,16,2,158,76,102,108,117,105,100,45, +108,101,116,45,115,121,110,116,97,120,122,8,51,9,16,2,158,1,22,119,105, +116,104,45,99,111,110,116,105,110,117,97,116,105,111,110,45,109,97,114,107,123, +8,51,9,16,2,158,65,35,37,97,112,112,124,8,51,9,16,2,158,65,35, +37,116,111,112,125,8,51,9,16,2,158,67,35,37,100,97,116,117,109,126,8, +51,9,8,51,18,102,2,41,8,53,37,36,35,8,40,8,39,8,50,8,49, +16,4,8,52,11,61,101,127,3,1,7,101,110,118,51,51,51,54,128,18,158, +2,0,8,53,18,16,2,95,2,56,8,54,93,8,252,216,8,95,9,8,252, +216,8,2,57,18,104,2,58,8,57,37,36,35,8,40,8,39,8,50,8,49, +8,52,16,4,8,56,11,3,1,4,103,52,49,51,129,3,1,7,101,110,118, +51,51,52,50,130,16,4,8,55,11,61,118,131,3,1,7,101,110,118,51,51, +52,51,132,18,158,2,65,8,57,18,158,2,4,8,57,18,158,2,65,8,57, +18,158,2,93,8,53,18,16,2,95,2,56,8,58,93,8,252,217,8,95,9, +8,252,217,8,2,57,18,104,2,58,8,61,37,36,35,8,40,8,39,8,50, +8,49,8,52,16,6,8,60,11,3,1,4,103,52,49,49,133,3,1,4,103, +52,49,50,134,3,1,7,101,110,118,51,51,53,51,135,2,135,16,6,8,59, +11,2,62,2,91,3,1,7,101,110,118,51,51,53,52,136,2,136,18,158,2, +65,8,61,18,158,2,96,8,61,18,158,2,65,8,61,18,158,67,114,101,113, +117,105,114,101,137,8,53,18,16,2,95,2,56,8,62,93,8,252,218,8,95, +9,8,252,218,8,2,57,18,104,2,58,8,65,37,36,35,8,40,8,39,8, +50,8,49,8,52,16,4,8,64,11,3,1,4,103,52,49,48,138,3,1,7, +101,110,118,51,51,54,51,139,16,4,8,63,11,2,131,3,1,7,101,110,118, +51,51,54,52,140,18,158,2,65,8,65,18,158,78,114,101,113,117,105,114,101, +45,102,111,114,45,115,121,110,116,97,120,141,8,65,18,158,2,65,8,65,18, +158,1,20,114,101,113,117,105,114,101,45,102,111,114,45,116,101,109,112,108,97, +116,101,142,8,53,18,16,2,95,2,56,8,66,93,8,252,219,8,95,9,8, +252,219,8,2,57,18,104,2,58,8,69,37,36,35,8,40,8,39,8,50,8, +49,8,52,16,4,8,68,11,3,1,4,103,52,48,57,143,3,1,7,101,110, +118,51,51,55,50,144,16,4,8,67,11,2,131,3,1,7,101,110,118,51,51, +55,51,145,18,158,2,65,8,69,18,158,2,137,8,69,18,158,2,65,8,69, +18,158,2,95,8,53,18,16,2,95,2,56,8,70,93,8,252,221,8,95,9, +8,252,221,8,2,57,18,104,2,58,8,73,37,36,35,8,40,8,39,8,50, +8,49,8,52,16,4,8,72,11,3,1,4,103,52,48,54,146,3,1,7,101, +110,118,51,51,56,56,147,16,4,8,71,11,65,111,116,104,101,114,148,3,1, +7,101,110,118,51,51,56,57,149,18,158,2,65,8,73,18,158,2,96,8,73, +18,158,9,8,73,18,158,2,65,8,73,18,158,2,0,8,73,18,16,2,103, +93,16,2,158,93,16,2,158,66,118,97,108,117,101,115,150,8,73,9,8,73, +9,8,81,98,8,80,10,32,11,94,159,74,35,37,115,109,97,108,108,45,115, +99,104,101,109,101,151,9,11,159,2,13,9,11,16,6,66,115,121,110,116,97, +120,152,29,153,11,11,73,115,121,110,116,97,120,45,99,97,115,101,42,42,154, +2,153,1,20,101,108,108,105,112,115,105,115,45,99,111,117,110,116,45,101,114, +114,111,114,155,2,153,98,8,79,10,33,11,95,159,64,35,37,115,99,156,9, +11,159,2,151,9,11,159,2,13,9,11,16,0,96,8,78,8,254,1,11,16, +0,16,4,8,77,11,61,120,157,3,1,6,101,110,118,51,55,55,158,16,4, +8,76,11,68,104,101,114,101,45,115,116,120,159,3,1,6,101,110,118,51,55, +57,160,16,4,8,75,11,2,159,2,160,13,16,3,33,2,153,2,57,93,8, +252,221,8,16,6,8,74,11,61,114,161,63,115,114,99,162,3,1,7,101,110, +118,51,51,57,50,163,2,163,95,9,8,252,221,8,2,57,18,158,2,65,8, +73,18,158,2,65,8,73,11,9,93,68,35,37,107,101,114,110,101,108,164,96, +2,164,2,35,2,13,2,42,0}; + EVAL_ONE_SIZED_STR((char *)expr, 6728); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,252,169,1,252,39,87,159,32,20,98,158,16, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,252,169,1,252,25,87,159,32,20,98,158,16, 1,20,24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,73,35,37, 109,111,114,101,45,115,99,104,101,109,101,1,29,2,11,11,10,10,10,46,80, 158,32,32,20,98,158,16,24,30,3,2,2,74,115,116,114,117,99,116,58,112, @@ -2273,13 +2273,13 @@ 101,99,107,45,102,111,114,45,98,114,101,97,107,51,254,1,16,0,11,11,16, 14,2,41,2,39,2,31,2,33,2,29,2,37,2,27,2,6,2,10,2,43, 2,12,2,35,2,25,2,4,46,11,16,18,2,49,2,23,2,45,2,16,2, -14,2,8,72,112,97,114,97,109,101,116,101,114,105,122,101,52,69,102,108,117, -105,100,45,108,101,116,53,65,100,101,108,97,121,54,64,116,105,109,101,55,73, -119,105,116,104,45,104,97,110,100,108,101,114,115,56,74,119,105,116,104,45,104, -97,110,100,108,101,114,115,42,57,66,108,101,116,47,99,99,58,62,100,111,59, -64,99,97,115,101,60,71,115,101,116,33,45,118,97,108,117,101,115,61,78,112, -97,114,97,109,101,116,101,114,105,122,101,45,98,114,101,97,107,62,70,108,101, -116,45,115,116,114,117,99,116,63,16,18,11,11,11,11,11,11,11,11,11,11, +14,2,8,64,116,105,109,101,52,72,112,97,114,97,109,101,116,101,114,105,122, +101,53,69,102,108,117,105,100,45,108,101,116,54,64,99,97,115,101,55,62,100, +111,56,73,119,105,116,104,45,104,97,110,100,108,101,114,115,57,66,108,101,116, +47,99,99,58,78,112,97,114,97,109,101,116,101,114,105,122,101,45,98,114,101, +97,107,59,74,119,105,116,104,45,104,97,110,100,108,101,114,115,42,60,71,115, +101,116,33,45,118,97,108,117,101,115,61,70,108,101,116,45,115,116,114,117,99, +116,62,65,100,101,108,97,121,63,16,18,11,11,11,11,11,11,11,11,11,11, 11,11,11,11,11,11,11,11,16,18,2,49,2,23,2,45,2,16,2,14,2, 8,2,52,2,53,2,54,2,55,2,56,2,57,2,58,2,59,2,60,2,61, 2,62,2,63,38,50,106,16,5,93,69,99,97,115,101,45,116,101,115,116,64, @@ -2317,35 +2317,35 @@ 8,30,80,2,66,69,115,116,120,45,62,108,105,115,116,81,4,16,25,18,98, 64,104,101,114,101,82,38,98,36,10,32,11,95,159,2,18,9,11,159,68,35, 37,100,101,102,105,110,101,83,9,11,159,74,35,37,115,109,97,108,108,45,115, -99,104,101,109,101,84,9,11,16,70,2,41,2,2,2,23,2,2,2,55,2, -2,2,14,2,2,2,63,2,2,2,59,2,2,2,29,2,2,2,25,2,2, -2,62,2,2,2,4,2,2,2,56,2,2,2,53,2,2,2,27,2,2,2, -45,2,2,2,57,2,2,2,52,2,2,1,22,98,114,101,97,107,45,112,97, -114,97,109,101,116,101,114,105,122,97,116,105,111,110,85,2,2,2,31,2,2, -2,39,2,2,2,12,2,2,2,58,2,2,2,33,2,2,2,60,2,2,2, -64,2,2,2,35,2,2,2,8,2,2,2,10,2,2,2,43,2,2,2,37, -2,2,2,16,2,2,2,6,2,2,2,54,2,2,2,61,2,2,2,49,2, -2,67,112,114,111,109,105,115,101,86,2,2,98,35,10,33,11,95,159,67,35, +99,104,101,109,101,84,9,11,16,70,1,22,98,114,101,97,107,45,112,97,114, +97,109,101,116,101,114,105,122,97,116,105,111,110,85,2,2,2,16,2,2,2, +62,2,2,2,59,2,2,2,14,2,2,2,63,2,2,2,29,2,2,2,25, +2,2,2,23,2,2,67,112,114,111,109,105,115,101,86,2,2,2,4,2,2, +2,57,2,2,2,54,2,2,2,27,2,2,2,39,2,2,2,45,2,2,2, +64,2,2,2,31,2,2,2,52,2,2,2,12,2,2,2,35,2,2,2,60, +2,2,2,53,2,2,2,49,2,2,2,37,2,2,2,8,2,2,2,56,2, +2,2,55,2,2,2,10,2,2,2,33,2,2,2,43,2,2,2,41,2,2, +2,58,2,2,2,6,2,2,2,61,2,2,98,35,10,33,11,95,159,67,35, 37,113,113,115,116,120,87,9,11,159,76,35,37,115,116,120,99,97,115,101,45, 115,99,104,101,109,101,88,9,11,159,2,66,9,11,16,0,96,34,8,254,1, -11,16,0,16,4,33,11,61,120,89,3,1,7,101,110,118,51,51,57,50,90, -18,16,2,95,66,115,114,99,116,97,103,91,39,93,8,252,248,8,95,9,8, -252,248,8,69,35,37,115,116,120,99,97,115,101,92,18,100,64,100,101,115,116, +11,16,0,16,4,33,11,61,120,89,3,1,7,101,110,118,51,51,57,52,90, +18,16,2,95,66,115,114,99,116,97,103,91,39,93,8,252,250,8,95,9,8, +252,250,8,69,35,37,115,116,120,99,97,115,101,92,18,100,64,100,101,115,116, 93,42,36,35,34,33,16,8,41,11,3,1,4,103,52,49,55,94,3,1,4, -103,52,49,56,95,3,1,4,103,52,49,57,96,3,1,7,101,110,118,51,51, -57,57,97,2,97,2,97,16,6,40,11,61,95,98,61,107,99,3,1,7,101, -110,118,51,52,48,48,100,2,100,18,158,63,99,116,120,101,42,18,158,63,101, +103,52,49,56,95,3,1,4,103,52,49,57,96,3,1,7,101,110,118,51,52, +48,49,97,2,97,2,97,16,6,40,11,61,95,98,61,107,99,3,1,7,101, +110,118,51,52,48,50,100,2,100,18,158,63,99,116,120,101,42,18,158,63,101, 113,63,102,42,18,158,2,101,42,18,158,65,113,117,111,116,101,103,42,18,158, -2,101,42,18,158,2,101,42,18,16,2,95,2,91,43,93,8,252,249,8,95, -9,8,252,249,8,2,92,18,158,2,93,42,18,158,2,101,42,18,158,64,101, +2,101,42,18,158,2,101,42,18,16,2,95,2,91,43,93,8,252,251,8,95, +9,8,252,251,8,2,92,18,158,2,93,42,18,158,2,101,42,18,158,64,101, 113,118,63,104,42,18,158,2,101,42,18,158,2,103,42,18,158,2,101,42,18, -158,2,101,42,18,16,2,95,2,91,44,93,8,252,250,8,95,9,8,252,250, +158,2,101,42,18,16,2,95,2,91,44,93,8,252,252,8,95,9,8,252,252, 8,2,92,18,100,2,93,47,36,35,34,33,16,8,46,11,3,1,4,103,52, 49,52,105,3,1,4,103,52,49,53,106,3,1,4,103,52,49,54,107,3,1, -7,101,110,118,51,52,49,49,108,2,108,2,108,16,6,45,11,2,98,2,99, -3,1,7,101,110,118,51,52,49,50,109,2,109,18,158,2,101,47,18,158,64, +7,101,110,118,51,52,49,51,108,2,108,2,108,16,6,45,11,2,98,2,99, +3,1,7,101,110,118,51,52,49,52,109,2,109,18,158,2,101,47,18,158,64, 109,101,109,118,110,47,18,158,2,101,47,18,158,2,103,47,18,158,2,101,47, -18,158,2,101,47,11,16,5,93,2,60,89,162,32,33,8,36,9,223,0,27, +18,158,2,101,47,11,16,5,93,2,55,89,162,32,33,8,36,9,223,0,27, 249,22,209,20,15,159,35,32,43,196,27,28,248,80,158,35,32,194,249,80,158, 36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32, 193,249,80,158,39,36,248,80,158,40,34,195,248,80,158,40,37,248,80,158,41, @@ -2361,9 +2361,9 @@ 248,80,158,48,34,195,27,248,80,158,49,35,196,28,248,80,158,49,39,193,248, 80,158,49,40,193,11,11,11,11,248,80,158,44,37,248,80,158,45,35,196,11, 11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27,248, -22,88,197,249,80,158,41,41,202,27,250,22,61,200,198,199,27,20,15,159,43, +22,88,197,249,80,158,41,41,202,27,250,22,61,200,199,198,27,20,15,159,43, 40,43,250,22,209,20,15,159,46,41,43,250,22,209,20,15,159,49,42,43,251, -22,62,20,15,159,53,43,43,248,22,52,204,248,22,80,204,248,22,78,204,20, +22,62,20,15,159,53,43,43,248,22,52,204,248,22,78,204,248,22,80,204,20, 15,159,49,44,43,195,27,28,248,80,158,37,32,196,249,80,158,38,33,248,80, 158,39,34,198,27,248,80,158,40,35,199,28,248,80,158,40,32,193,249,80,158, 41,33,248,80,158,42,34,195,27,248,80,158,43,35,196,28,248,80,158,43,32, @@ -2406,7 +2406,7 @@ 252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32,36,9,224, 2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249,80,158,35,42,21, 95,63,108,101,116,116,93,94,2,89,2,112,96,2,111,95,2,64,2,89,94, -2,99,2,113,96,2,0,2,114,2,115,2,113,97,2,60,2,89,62,99,49, +2,99,2,113,96,2,0,2,114,2,115,2,113,97,2,55,2,89,62,99,49, 117,62,99,50,118,2,113,20,15,159,35,58,43,89,162,32,32,8,28,9,225, 6,5,4,27,250,22,209,20,15,159,38,59,43,250,22,209,20,15,159,41,8, 28,43,250,22,60,20,15,159,44,8,29,43,250,22,209,20,15,159,47,8,30, @@ -2453,11 +2453,11 @@ 35,37,115,116,120,108,111,99,123,68,114,101,108,111,99,97,116,101,124,1,30, 125,2,92,1,20,101,108,108,105,112,115,105,115,45,99,111,117,110,116,45,101, 114,114,111,114,126,0,16,50,18,98,2,82,49,36,35,34,16,4,48,11,2, -89,3,1,7,101,110,118,51,52,49,57,127,18,16,2,95,2,91,50,93,8, -252,37,9,95,9,8,252,37,9,2,92,18,100,2,93,53,36,35,34,48,16, +89,3,1,7,101,110,118,51,52,50,49,127,18,16,2,95,2,91,50,93,8, +252,39,9,95,9,8,252,39,9,2,92,18,100,2,93,53,36,35,34,48,16, 6,52,11,3,1,4,103,52,52,56,128,3,1,4,103,52,52,57,129,3,1, -7,101,110,118,51,52,50,52,130,2,130,16,6,51,11,2,98,2,112,3,1, -7,101,110,118,51,52,50,53,131,2,131,18,158,2,101,53,18,158,2,0,53, +7,101,110,118,51,52,50,54,130,2,130,16,6,51,11,2,98,2,112,3,1, +7,101,110,118,51,52,50,55,131,2,131,18,158,2,101,53,18,158,2,0,53, 18,16,2,103,93,16,2,158,93,16,2,158,64,99,111,110,100,132,53,9,53, 9,8,29,98,8,28,10,32,11,94,159,2,84,9,11,159,2,66,9,11,16, 6,66,115,121,110,116,97,120,133,29,134,11,11,73,115,121,110,116,97,120,45, @@ -2466,48 +2466,48 @@ 8,254,1,11,16,0,16,4,57,11,2,89,3,1,6,101,110,118,51,55,55, 137,16,4,56,11,68,104,101,114,101,45,115,116,120,138,3,1,6,101,110,118, 51,55,57,139,16,4,55,11,2,138,2,139,13,16,3,33,2,134,2,92,93, -8,252,37,9,16,6,54,11,61,114,140,63,115,114,99,141,3,1,7,101,110, -118,51,52,50,57,142,2,142,95,9,8,252,37,9,2,92,18,158,2,101,53, -18,158,64,101,108,115,101,143,49,18,16,2,95,2,91,8,30,93,8,252,39, -9,95,9,8,252,39,9,2,92,18,100,2,93,8,33,36,35,34,48,16,10, +8,252,39,9,16,6,54,11,61,114,140,63,115,114,99,141,3,1,7,101,110, +118,51,52,51,49,142,2,142,95,9,8,252,39,9,2,92,18,158,2,101,53, +18,158,64,101,108,115,101,143,49,18,16,2,95,2,91,8,30,93,8,252,41, +9,95,9,8,252,41,9,2,92,18,100,2,93,8,33,36,35,34,48,16,10, 8,32,11,3,1,4,103,52,52,52,144,3,1,4,103,52,52,53,145,3,1, 4,103,52,52,54,146,3,1,4,103,52,52,55,147,3,1,7,101,110,118,51, -52,51,56,148,2,148,2,148,2,148,16,10,8,31,11,2,98,2,112,2,114, -2,115,3,1,7,101,110,118,51,52,51,57,149,2,149,2,149,2,149,18,158, +52,52,48,148,2,148,2,148,2,148,16,10,8,31,11,2,98,2,112,2,114, +2,115,3,1,7,101,110,118,51,52,52,49,149,2,149,2,149,2,149,18,158, 2,101,8,33,18,158,2,0,8,33,18,158,2,101,8,33,18,16,2,95,2, -91,8,34,93,8,252,41,9,95,9,8,252,41,9,2,92,18,16,2,99,2, -113,8,39,93,8,252,41,9,16,6,8,38,11,2,140,2,141,3,1,7,101, -110,118,51,52,54,50,150,2,150,16,4,8,37,11,64,101,120,110,104,151,3, -1,7,101,110,118,51,52,54,51,152,16,4,8,36,11,63,101,115,99,153,3, -1,7,101,110,118,51,52,54,52,154,16,4,8,35,11,63,101,120,110,155,3, -1,7,101,110,118,51,52,54,54,156,95,9,8,252,41,9,2,92,18,100,2, +91,8,34,93,8,252,43,9,95,9,8,252,43,9,2,92,18,16,2,99,2, +113,8,39,93,8,252,43,9,16,6,8,38,11,2,140,2,141,3,1,7,101, +110,118,51,52,54,52,150,2,150,16,4,8,37,11,64,101,120,110,104,151,3, +1,7,101,110,118,51,52,54,53,152,16,4,8,36,11,63,101,115,99,153,3, +1,7,101,110,118,51,52,54,54,154,16,4,8,35,11,63,101,120,110,155,3, +1,7,101,110,118,51,52,54,56,156,95,9,8,252,43,9,2,92,18,100,2, 93,8,42,36,35,34,48,16,12,8,41,11,3,1,4,103,52,51,57,157,3, 1,4,103,52,52,48,158,3,1,4,103,52,52,49,159,3,1,4,103,52,52, -50,160,3,1,4,103,52,52,51,161,3,1,7,101,110,118,51,52,53,52,162, +50,160,3,1,4,103,52,52,51,161,3,1,7,101,110,118,51,52,53,54,162, 2,162,2,162,2,162,2,162,16,12,8,40,11,2,98,2,112,2,99,2,114, -2,115,3,1,7,101,110,118,51,52,53,53,163,2,163,2,163,2,163,2,163, +2,115,3,1,7,101,110,118,51,52,53,55,163,2,163,2,163,2,163,2,163, 18,158,2,101,8,42,18,158,2,111,8,42,18,158,2,101,8,42,18,158,2, 64,8,42,18,158,2,101,8,42,18,158,2,101,8,42,18,158,2,0,8,42, 18,158,2,101,8,42,18,158,2,101,8,42,18,16,2,95,2,91,8,43,93, -8,252,44,9,95,9,8,252,44,9,2,92,18,16,2,99,2,113,8,48,93, -8,252,44,9,16,6,8,47,11,2,140,2,141,3,1,7,101,110,118,51,52, -57,50,164,2,164,16,4,8,46,11,2,151,3,1,7,101,110,118,51,52,57, -51,165,16,4,8,45,11,2,153,3,1,7,101,110,118,51,52,57,52,166,16, -4,8,44,11,2,155,3,1,7,101,110,118,51,52,57,54,167,95,9,8,252, -44,9,2,92,18,100,2,93,8,51,36,35,34,48,16,16,8,50,11,3,1, +8,252,46,9,95,9,8,252,46,9,2,92,18,16,2,99,2,113,8,48,93, +8,252,46,9,16,6,8,47,11,2,140,2,141,3,1,7,101,110,118,51,52, +57,52,164,2,164,16,4,8,46,11,2,151,3,1,7,101,110,118,51,52,57, +53,165,16,4,8,45,11,2,153,3,1,7,101,110,118,51,52,57,54,166,16, +4,8,44,11,2,155,3,1,7,101,110,118,51,52,57,56,167,95,9,8,252, +46,9,2,92,18,100,2,93,8,51,36,35,34,48,16,16,8,50,11,3,1, 4,103,52,51,50,168,3,1,4,103,52,51,51,169,3,1,4,103,52,51,52, 170,3,1,4,103,52,51,53,171,3,1,4,103,52,51,54,172,3,1,4,103, 52,51,55,173,3,1,4,103,52,51,56,174,3,1,7,101,110,118,51,52,56, -50,175,2,175,2,175,2,175,2,175,2,175,2,175,16,16,8,49,11,2,98, +52,175,2,175,2,175,2,175,2,175,2,175,2,175,16,16,8,49,11,2,98, 2,112,2,99,2,114,2,115,2,117,2,118,3,1,7,101,110,118,51,52,56, -51,176,2,176,2,176,2,176,2,176,2,176,2,176,18,158,2,101,8,51,18, +53,176,2,176,2,176,2,176,2,176,2,176,2,176,18,158,2,101,8,51,18, 158,2,116,8,51,18,158,2,101,8,51,18,158,2,101,8,51,18,158,2,89, 8,51,18,158,2,101,8,51,18,158,2,101,8,51,18,158,2,101,8,51,18, 158,2,111,8,51,18,158,2,101,8,51,18,158,2,64,8,51,18,158,2,89, 8,51,18,158,2,101,8,51,18,158,2,101,8,51,18,158,2,0,8,51,18, -158,2,101,8,51,18,158,2,101,8,51,18,158,2,60,8,51,18,158,2,89, +158,2,101,8,51,18,158,2,101,8,51,18,158,2,55,8,51,18,158,2,89, 8,51,18,158,2,101,8,51,18,158,2,101,8,51,18,158,2,101,8,51,11, -16,5,93,2,59,89,162,32,33,8,29,9,223,0,27,249,22,209,20,15,159, +16,5,93,2,56,89,162,32,33,8,29,9,223,0,27,249,22,209,20,15,159, 35,32,45,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37, 34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249,80,158,39,36, 27,248,80,158,41,34,196,28,248,80,158,41,37,193,248,22,8,89,162,32,33, @@ -2533,7 +2533,7 @@ 28,248,80,158,44,37,194,248,80,158,44,39,194,11,28,192,27,249,22,209,20, 15,159,46,39,45,27,20,15,159,47,40,45,250,22,209,20,15,159,50,41,45, 202,195,27,248,80,158,46,41,194,28,192,249,80,158,47,42,23,16,27,252,22, -61,23,16,202,206,204,23,17,27,20,15,159,49,42,45,91,159,33,11,90,161, +61,23,17,206,23,16,202,204,27,20,15,159,49,42,45,91,159,33,11,90,161, 33,32,11,83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,19, 2,3,1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10, 247,22,252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193, @@ -2545,18 +2545,18 @@ 22,209,20,15,159,38,44,45,250,22,209,20,15,159,41,45,45,251,22,60,20, 15,159,45,46,45,20,15,159,45,47,45,250,22,2,89,162,33,33,41,9,223, 16,250,22,209,20,15,159,35,48,45,249,22,60,248,22,52,199,248,22,78,199, -20,15,159,35,49,45,248,22,89,23,15,248,22,52,23,15,250,22,209,20,15, +20,15,159,35,49,45,248,22,52,23,15,248,22,87,23,15,250,22,209,20,15, 159,48,50,45,250,22,60,20,15,159,51,51,45,250,22,209,20,15,159,54,52, -45,249,22,60,20,15,159,56,53,45,248,22,87,23,23,20,15,159,54,54,45, +45,249,22,60,20,15,159,56,53,45,248,22,78,23,23,20,15,159,54,54,45, 250,22,209,20,15,159,54,55,45,249,22,56,20,15,159,56,56,45,249,22,65, -248,22,90,23,25,248,22,60,250,22,209,20,15,159,8,30,57,45,249,22,56, -20,15,159,8,32,58,45,248,22,78,23,31,20,15,159,8,30,59,45,20,15, +248,22,89,23,25,248,22,60,250,22,209,20,15,159,8,30,57,45,249,22,56, +20,15,159,8,32,58,45,248,22,90,23,31,20,15,159,8,30,59,45,20,15, 159,54,8,28,45,20,15,159,48,8,29,45,20,15,159,41,8,30,45,197,89, 162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184,2, 208,27,28,248,80,158,47,32,195,249,80,158,48,33,248,80,158,49,34,197,27, 248,80,158,50,35,198,28,248,80,158,50,37,193,248,80,158,50,39,193,11,11, 28,192,27,248,22,52,194,27,248,22,53,195,249,80,158,50,42,23,19,27,254, -22,61,23,21,23,15,23,19,23,17,23,22,203,202,27,20,15,159,52,8,31, +22,61,23,22,23,19,23,21,23,15,203,23,17,202,27,20,15,159,52,8,31, 45,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,8,89, 162,32,33,40,9,226,22,2,3,1,250,22,31,89,162,32,32,36,9,225,6, 3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162,32,33, @@ -2568,13 +2568,13 @@ 250,22,209,20,15,159,41,8,34,45,251,22,60,20,15,159,45,8,35,45,20, 15,159,45,8,36,45,250,22,2,89,162,33,33,41,9,223,16,250,22,209,20, 15,159,35,8,37,45,249,22,60,248,22,52,199,248,22,78,199,20,15,159,35, -8,38,45,249,22,70,23,16,36,248,22,52,23,15,250,22,209,20,15,159,48, -8,39,45,251,22,60,20,15,159,52,8,40,45,248,22,87,23,19,250,22,209, -20,15,159,55,8,41,45,250,22,62,20,15,159,58,8,42,45,249,22,70,23, -26,37,249,22,69,23,26,38,20,15,159,55,8,43,45,250,22,209,20,15,159, -55,8,44,45,249,22,56,20,15,159,57,8,45,45,249,22,65,248,22,90,23, -26,248,22,60,250,22,209,20,15,159,8,31,8,46,45,249,22,56,20,15,159, -8,33,8,47,45,248,22,78,23,32,20,15,159,8,31,8,48,45,20,15,159, +8,38,45,248,22,52,23,15,248,22,87,23,15,250,22,209,20,15,159,48,8, +39,45,251,22,60,20,15,159,52,8,40,45,248,22,78,23,19,250,22,209,20, +15,159,55,8,41,45,250,22,62,20,15,159,58,8,42,45,249,22,70,23,26, +36,249,22,69,23,26,38,20,15,159,55,8,43,45,250,22,209,20,15,159,55, +8,44,45,249,22,56,20,15,159,57,8,45,45,249,22,65,249,22,70,23,27, +37,248,22,60,250,22,209,20,15,159,8,31,8,46,45,249,22,56,20,15,159, +8,33,8,47,45,248,22,90,23,32,20,15,159,8,31,8,48,45,20,15,159, 55,8,49,45,20,15,159,48,8,50,45,20,15,159,41,8,51,45,197,89,162, 32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184,2,208, 250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197,248, @@ -2585,52 +2585,52 @@ 116,101,187,12,2,76,2,122,2,125,30,188,70,35,37,119,105,116,104,45,115, 116,120,189,76,119,105,116,104,45,115,121,110,116,97,120,45,102,97,105,108,190, 3,16,53,18,98,2,82,8,53,36,35,34,16,4,8,52,11,66,111,114,105, -103,45,120,191,3,1,7,101,110,118,51,53,52,54,192,18,100,2,82,8,56, +103,45,120,191,3,1,7,101,110,118,51,53,52,56,192,18,100,2,82,8,56, 36,35,34,8,52,16,16,8,55,11,3,1,4,103,52,53,48,193,3,1,4, 103,52,53,49,194,3,1,4,103,52,53,50,195,3,1,4,103,52,53,51,196, 3,1,4,103,52,53,52,197,3,1,4,103,52,53,53,198,3,1,4,103,52, -53,54,199,3,1,7,101,110,118,51,53,54,51,200,2,200,2,200,2,200,2, +53,54,199,3,1,7,101,110,118,51,53,54,53,200,2,200,2,200,2,200,2, 200,2,200,2,200,16,16,8,54,11,2,98,2,178,2,179,2,183,2,181,2, -114,2,182,3,1,7,101,110,118,51,53,54,52,201,2,201,2,201,2,201,2, +114,2,182,3,1,7,101,110,118,51,53,54,54,201,2,201,2,201,2,201,2, 201,2,201,2,201,18,101,2,82,8,58,36,35,34,8,52,8,55,8,54,16, -6,8,57,11,2,112,61,115,202,3,1,7,101,110,118,51,53,55,52,203,2, -203,18,16,2,95,2,91,8,59,93,8,252,65,9,95,9,8,252,65,9,2, -92,18,158,2,93,8,56,18,16,2,95,2,91,8,60,93,8,252,66,9,95, -9,8,252,66,9,2,92,18,158,2,93,8,56,18,101,2,82,8,62,36,35, +6,8,57,11,2,112,61,115,202,3,1,7,101,110,118,51,53,55,54,203,2, +203,18,16,2,95,2,91,8,59,93,8,252,67,9,95,9,8,252,67,9,2, +92,18,158,2,93,8,56,18,16,2,95,2,91,8,60,93,8,252,68,9,95, +9,8,252,68,9,2,92,18,158,2,93,8,56,18,101,2,82,8,62,36,35, 34,8,52,8,55,8,54,16,4,8,61,11,3,1,4,103,52,54,49,204,3, -1,7,101,110,118,51,53,57,52,205,18,16,2,95,2,91,8,63,93,8,252, -70,9,95,9,8,252,70,9,2,92,18,158,2,93,8,62,18,16,2,95,2, -91,8,64,93,8,252,72,9,95,9,8,252,72,9,2,92,18,16,2,99,2, -113,8,69,93,8,252,72,9,16,6,8,68,11,2,140,2,141,3,1,7,101, -110,118,51,54,48,52,206,2,206,16,4,8,67,11,2,151,3,1,7,101,110, -118,51,54,48,53,207,16,4,8,66,11,2,153,3,1,7,101,110,118,51,54, -48,54,208,16,4,8,65,11,2,155,3,1,7,101,110,118,51,54,48,56,209, -95,9,8,252,72,9,2,92,18,158,2,93,8,62,18,158,2,101,8,62,18, +1,7,101,110,118,51,53,57,54,205,18,16,2,95,2,91,8,63,93,8,252, +72,9,95,9,8,252,72,9,2,92,18,158,2,93,8,62,18,16,2,95,2, +91,8,64,93,8,252,74,9,95,9,8,252,74,9,2,92,18,16,2,99,2, +113,8,69,93,8,252,74,9,16,6,8,68,11,2,140,2,141,3,1,7,101, +110,118,51,54,48,54,206,2,206,16,4,8,67,11,2,151,3,1,7,101,110, +118,51,54,48,55,207,16,4,8,66,11,2,153,3,1,7,101,110,118,51,54, +48,56,208,16,4,8,65,11,2,155,3,1,7,101,110,118,51,54,49,48,209, +95,9,8,252,74,9,2,92,18,158,2,93,8,62,18,158,2,101,8,62,18, 158,2,116,8,62,18,158,2,177,8,62,18,158,2,101,8,62,18,158,2,101, 8,62,18,158,2,101,8,62,18,158,2,111,8,62,18,158,2,101,8,62,18, 158,2,180,8,62,18,158,2,101,8,62,18,158,2,101,8,62,18,158,2,0, 8,62,18,158,2,101,8,62,18,158,2,177,8,62,18,158,2,101,8,62,18, 158,2,101,8,62,18,158,2,101,8,62,18,158,2,101,8,62,18,16,2,95, -2,91,8,70,93,8,252,75,9,95,9,8,252,75,9,2,92,18,16,2,99, -2,113,8,75,93,8,252,75,9,16,6,8,74,11,2,140,2,141,3,1,7, -101,110,118,51,54,50,52,210,2,210,16,4,8,73,11,2,151,3,1,7,101, -110,118,51,54,50,53,211,16,4,8,72,11,2,153,3,1,7,101,110,118,51, -54,50,54,212,16,4,8,71,11,2,155,3,1,7,101,110,118,51,54,50,56, -213,95,9,8,252,75,9,2,92,18,103,2,93,8,78,36,35,34,8,52,8, +2,91,8,70,93,8,252,77,9,95,9,8,252,77,9,2,92,18,16,2,99, +2,113,8,75,93,8,252,77,9,16,6,8,74,11,2,140,2,141,3,1,7, +101,110,118,51,54,50,54,210,2,210,16,4,8,73,11,2,151,3,1,7,101, +110,118,51,54,50,55,211,16,4,8,72,11,2,153,3,1,7,101,110,118,51, +54,50,56,212,16,4,8,71,11,2,155,3,1,7,101,110,118,51,54,51,48, +213,95,9,8,252,77,9,2,92,18,103,2,93,8,78,36,35,34,8,52,8, 55,8,54,8,61,16,6,8,77,11,3,1,4,103,52,54,50,214,3,1,4, -103,52,54,51,215,3,1,7,101,110,118,51,54,49,57,216,2,216,16,4,8, -76,11,2,115,3,1,7,101,110,118,51,54,50,48,217,18,158,2,101,8,78, +103,52,54,51,215,3,1,7,101,110,118,51,54,50,49,216,2,216,16,4,8, +76,11,2,115,3,1,7,101,110,118,51,54,50,50,217,18,158,2,101,8,78, 18,158,2,116,8,78,18,158,2,177,8,78,18,158,2,101,8,78,18,158,2, 101,8,78,18,158,2,101,8,78,18,158,2,111,8,78,18,158,2,101,8,78, 18,158,2,0,8,78,18,158,2,101,8,78,18,158,2,101,8,78,18,158,2, 0,8,78,18,158,2,101,8,78,18,158,2,177,8,78,18,158,2,101,8,78, 18,158,2,101,8,78,18,158,2,101,8,78,18,158,2,101,8,78,18,16,2, -158,94,16,2,98,2,183,8,82,93,8,252,61,9,16,4,8,81,11,3,1, -8,119,115,116,109,112,52,53,55,218,3,1,7,101,110,118,51,53,55,51,219, +158,94,16,2,98,2,183,8,82,93,8,252,63,9,16,4,8,81,11,3,1, +8,119,115,116,109,112,52,53,55,218,3,1,7,101,110,118,51,53,55,53,219, 16,4,8,80,11,3,1,4,103,52,54,48,220,3,1,7,101,110,118,51,54, -51,55,221,16,4,8,79,11,65,95,101,108,115,101,222,3,1,7,101,110,118, -51,54,51,56,223,9,16,2,158,2,113,8,82,9,8,82,95,9,8,252,61, -9,2,189,11,16,5,93,2,54,89,162,32,33,55,9,223,0,27,249,22,209, +51,57,221,16,4,8,79,11,65,95,101,108,115,101,222,3,1,7,101,110,118, +51,54,52,48,223,9,16,2,158,2,113,8,82,9,8,82,95,9,8,252,63, +9,2,189,11,16,5,93,2,63,89,162,32,33,55,9,223,0,27,249,22,209, 20,15,159,35,32,39,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248, 80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249,80, 158,39,36,248,80,158,40,34,195,248,80,158,40,37,248,80,158,41,35,196,11, @@ -2641,668 +2641,667 @@ 39,20,15,159,45,41,39,195,250,22,252,39,2,11,6,10,10,98,97,100,32, 115,121,110,116,97,120,196,32,20,98,158,16,7,2,65,2,68,2,70,2,72, 2,74,2,76,2,122,16,10,18,98,2,82,8,84,36,35,34,16,4,8,83, -11,2,89,3,1,7,101,110,118,51,54,52,49,224,18,16,2,95,2,91,8, -85,93,8,252,85,9,95,9,8,252,85,9,2,92,18,100,2,93,8,88,36, +11,2,89,3,1,7,101,110,118,51,54,52,51,224,18,16,2,95,2,91,8, +85,93,8,252,87,9,95,9,8,252,87,9,2,92,18,100,2,93,8,88,36, 35,34,8,83,16,6,8,87,11,3,1,4,103,52,54,52,225,3,1,4,103, -52,54,53,226,3,1,7,101,110,118,51,54,52,54,227,2,227,16,6,8,86, -11,2,54,63,101,120,112,228,3,1,7,101,110,118,51,54,52,55,229,2,229, +52,54,53,226,3,1,7,101,110,118,51,54,52,56,227,2,227,16,6,8,86, +11,2,63,63,101,120,112,228,3,1,7,101,110,118,51,54,52,57,229,2,229, 18,158,2,101,8,88,18,158,2,6,8,88,18,158,2,101,8,88,18,158,66, 108,97,109,98,100,97,230,8,88,18,158,9,8,88,18,158,2,101,8,88,18, -158,2,101,8,88,11,16,5,93,2,86,253,22,60,248,247,22,252,87,3,20, -15,159,39,32,32,248,247,22,252,87,3,20,15,159,39,33,32,248,247,22,252, -87,3,20,15,159,39,34,32,248,22,60,248,247,22,252,87,3,20,15,159,40, -35,32,248,22,60,248,247,22,252,87,3,20,15,159,40,36,32,10,40,20,98, +158,2,101,8,88,11,16,5,93,2,86,253,22,60,248,247,22,252,88,3,20, +15,159,39,32,32,248,247,22,252,88,3,20,15,159,39,33,32,248,247,22,252, +88,3,20,15,159,39,34,32,248,22,60,248,247,22,252,88,3,20,15,159,40, +35,32,248,22,60,248,247,22,252,88,3,20,15,159,40,36,32,10,40,20,98, 158,16,0,16,5,18,97,2,4,8,89,36,35,34,18,158,2,6,8,89,18, 158,2,8,8,89,18,158,2,10,8,89,18,158,2,12,8,89,11,16,5,93, -2,52,89,162,32,33,55,9,223,0,27,249,22,209,20,15,159,35,32,45,196, +2,53,89,162,32,33,55,9,223,0,27,249,22,209,20,15,159,35,32,45,196, 27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248, 80,158,38,35,197,28,248,80,158,38,32,193,28,248,80,158,38,36,248,80,158, 39,34,194,27,248,80,158,39,35,194,28,248,80,158,39,32,193,249,80,158,40, 33,248,80,158,41,34,195,27,248,80,158,42,35,196,28,248,80,158,42,37,193, 248,80,158,42,38,193,11,11,11,11,11,28,192,27,248,22,52,194,27,248,22, -78,195,27,248,22,80,196,27,249,22,61,195,196,27,20,15,159,39,33,45,250, -22,209,20,15,159,42,34,45,250,22,209,20,15,159,45,35,45,251,22,62,20, -15,159,49,36,45,20,15,159,49,37,45,248,22,53,204,248,22,52,204,20,15, -159,45,38,45,195,27,28,248,80,158,36,32,195,249,80,158,37,33,248,80,158, -38,34,197,27,248,80,158,39,35,198,28,248,80,158,39,32,193,249,80,158,40, -39,27,248,80,158,42,34,196,28,248,80,158,42,37,193,248,22,8,89,162,32, -33,39,9,224,10,1,27,249,22,2,89,162,32,33,45,9,224,4,5,249,80, -158,35,40,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158,38,34,199, -27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33,248,80, -158,41,34,195,248,80,158,41,36,248,80,158,42,35,196,11,11,194,248,80,158, -37,38,196,28,248,22,57,193,21,94,9,9,248,80,158,35,41,193,11,27,248, -80,158,42,35,196,28,248,80,158,42,32,193,249,80,158,43,33,248,80,158,44, -34,195,27,248,80,158,45,35,196,28,248,80,158,45,37,193,248,80,158,45,38, -193,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87, -196,27,248,22,90,197,27,248,22,89,198,27,249,22,209,20,15,159,43,39,45, -249,22,1,22,65,250,22,2,22,59,248,22,216,27,20,15,159,50,40,45,250, -22,209,20,15,159,53,41,45,23,16,195,248,22,216,27,20,15,159,50,42,45, -250,22,209,20,15,159,53,43,45,23,15,195,27,28,248,80,158,43,37,194,248, -80,158,43,38,194,11,28,192,249,80,158,44,42,205,27,250,22,61,200,201,198, -27,20,15,159,46,44,45,91,159,33,11,90,161,33,32,11,83,160,38,32,33, -11,247,248,22,8,89,162,32,33,40,9,226,16,2,3,1,250,22,31,89,162, -32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252, -184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2, -3,28,248,22,252,181,2,193,248,22,252,186,2,193,249,80,158,35,43,21,96, -1,22,119,105,116,104,45,99,111,110,116,105,110,117,97,116,105,111,110,45,109, -97,114,107,231,2,21,96,2,19,95,1,27,99,111,110,116,105,110,117,97,116, -105,111,110,45,109,97,114,107,45,115,101,116,45,102,105,114,115,116,232,11,2, -21,63,112,47,118,233,2,113,97,2,116,9,65,101,120,112,114,49,234,64,101, -120,112,114,235,2,113,20,15,159,35,45,45,89,162,32,32,54,9,225,6,5, -4,27,250,22,209,20,15,159,38,46,45,250,22,209,20,15,159,41,47,45,251, -22,60,20,15,159,45,48,45,20,15,159,45,49,45,250,22,209,20,15,159,48, -50,45,250,22,62,20,15,159,51,51,45,20,15,159,51,52,45,248,22,80,23, -18,20,15,159,48,53,45,250,22,209,20,15,159,48,54,45,251,22,62,20,15, -159,52,55,45,20,15,159,52,56,45,248,22,78,23,19,248,22,52,23,19,20, -15,159,48,57,45,20,15,159,41,58,45,197,89,162,32,32,33,9,223,0,192, -89,162,32,32,34,9,223,3,248,22,252,184,2,208,248,80,158,43,44,20,15, -159,43,59,45,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116, -97,120,197,32,20,98,158,16,13,2,65,2,68,2,70,2,72,2,76,2,78, -2,80,2,74,2,184,2,186,2,122,2,125,2,188,16,28,18,98,2,82,8, -91,36,35,34,16,4,8,90,11,63,115,116,120,236,3,1,7,101,110,118,51, -54,53,52,237,18,16,2,95,2,91,8,92,93,8,252,115,9,95,9,8,252, -115,9,2,92,18,100,2,93,8,95,36,35,34,8,90,16,8,8,94,11,3, -1,4,103,52,55,49,238,3,1,4,103,52,55,50,239,3,1,4,103,52,55, -51,240,3,1,7,101,110,118,51,54,54,49,241,2,241,2,241,16,8,8,93, -11,2,98,2,234,2,235,3,1,7,101,110,118,51,54,54,50,242,2,242,2, -242,18,158,2,101,8,95,18,158,2,116,8,95,18,158,9,8,95,18,158,2, -101,8,95,18,100,2,82,8,98,36,35,34,8,90,16,12,8,97,11,3,1, -4,103,52,54,54,243,3,1,4,103,52,54,55,244,3,1,4,103,52,54,56, -245,3,1,4,103,52,54,57,246,3,1,4,103,52,55,48,247,3,1,7,101, -110,118,51,54,55,56,248,2,248,2,248,2,248,2,248,16,12,8,96,11,2, -98,65,112,97,114,97,109,249,63,118,97,108,250,2,234,2,235,3,1,7,101, -110,118,51,54,55,57,251,2,251,2,251,2,251,2,251,18,16,2,95,2,91, -8,99,93,8,252,118,9,95,9,8,252,118,9,2,92,18,158,2,93,8,98, -18,16,2,95,2,91,8,100,93,8,252,119,9,95,9,8,252,119,9,2,92, -18,158,2,93,8,98,18,16,2,95,2,91,8,101,93,8,252,122,9,95,9, -8,252,122,9,2,92,18,16,2,99,2,113,8,106,93,8,252,122,9,16,6, -8,105,11,2,140,2,141,3,1,7,101,110,118,51,54,57,54,252,252,0,2, -252,252,0,16,4,8,104,11,2,151,3,1,7,101,110,118,51,54,57,55,252, -253,0,16,4,8,103,11,2,153,3,1,7,101,110,118,51,54,57,56,252,254, -0,16,4,8,102,11,2,155,3,1,7,101,110,118,51,55,48,48,252,255,0, -95,9,8,252,122,9,2,92,18,102,2,93,8,109,36,35,34,8,90,8,97, -8,96,16,4,8,108,11,3,1,4,103,52,55,54,252,0,1,3,1,7,101, -110,118,51,54,57,50,252,1,1,16,4,8,107,11,2,233,3,1,7,101,110, -118,51,54,57,51,252,2,1,18,158,2,101,8,109,18,158,2,231,8,109,18, -158,2,21,8,109,18,158,2,101,8,109,18,158,2,19,8,109,18,158,95,16, -2,158,2,232,8,109,9,16,2,158,11,8,109,9,16,2,158,2,21,8,109, -9,8,109,18,158,2,101,8,109,18,158,2,101,8,109,18,158,2,116,8,109, -18,158,9,8,109,18,158,2,101,8,109,18,158,2,101,8,109,18,16,2,158, -94,16,2,98,2,233,8,113,93,8,252,117,9,16,4,8,112,11,3,1,8, -119,115,116,109,112,52,55,52,252,3,1,3,1,7,101,110,118,51,54,56,54, -252,4,1,16,4,8,111,11,3,1,4,103,52,55,53,252,5,1,3,1,7, -101,110,118,51,55,48,55,252,6,1,16,4,8,110,11,2,222,3,1,7,101, -110,118,51,55,48,56,252,7,1,9,16,2,158,2,113,8,113,9,8,113,95, -9,8,252,117,9,2,189,11,16,5,93,2,62,89,162,32,33,8,36,9,223, -0,27,249,22,209,20,15,159,35,32,39,196,27,28,248,80,158,35,32,194,249, -80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158, -38,32,193,249,80,158,39,33,248,80,158,40,34,195,27,248,80,158,41,35,196, -28,248,80,158,41,32,193,249,80,158,42,33,248,80,158,43,34,195,27,248,80, -158,44,35,196,28,248,80,158,44,36,193,248,80,158,44,37,193,11,11,11,11, -28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,88, -197,249,80,158,40,38,201,27,250,22,61,198,200,199,27,20,15,159,42,33,39, -250,22,209,20,15,159,45,34,39,250,22,209,20,15,159,48,35,39,251,22,60, -20,15,159,52,36,39,20,15,159,52,37,39,250,22,209,20,15,159,55,38,39, -249,22,60,20,15,159,57,39,39,250,22,209,20,15,159,8,28,40,39,250,22, -62,20,15,159,8,31,41,39,248,22,78,23,23,20,15,159,8,31,42,39,20, -15,159,8,28,43,39,20,15,159,55,44,39,250,22,209,20,15,159,55,45,39, -250,22,60,20,15,159,58,46,39,20,15,159,58,47,39,250,22,209,20,15,159, -8,29,48,39,251,22,62,20,15,159,8,33,49,39,20,15,159,8,33,50,39, -248,22,80,23,25,248,22,52,23,25,20,15,159,8,29,51,39,20,15,159,55, -52,39,20,15,159,48,53,39,195,250,22,252,39,2,11,6,10,10,98,97,100, -32,115,121,110,116,97,120,196,32,20,98,158,16,7,2,65,2,68,2,70,2, -72,2,78,2,80,2,122,16,22,18,98,2,82,8,115,36,35,34,16,4,8, -114,11,2,236,3,1,7,101,110,118,51,55,49,49,252,8,1,18,16,2,95, -2,91,8,116,93,8,252,135,9,95,9,8,252,135,9,2,92,18,100,2,93, -8,119,36,35,34,8,114,16,10,8,118,11,3,1,4,103,52,55,55,252,9, -1,3,1,4,103,52,55,56,252,10,1,3,1,4,103,52,55,57,252,11,1, -3,1,4,103,52,56,48,252,12,1,3,1,7,101,110,118,51,55,49,56,252, -13,1,2,252,13,1,2,252,13,1,2,252,13,1,16,10,8,117,11,2,98, -69,98,111,111,108,45,101,120,112,114,252,14,1,2,234,2,235,3,1,7,101, -110,118,51,55,49,57,252,15,1,2,252,15,1,2,252,15,1,2,252,15,1, -18,158,2,101,8,119,18,158,2,231,8,119,18,158,2,47,8,119,18,158,2, -101,8,119,18,158,76,109,97,107,101,45,116,104,114,101,97,100,45,99,101,108, -108,252,16,1,8,119,18,158,2,101,8,119,18,158,63,97,110,100,252,17,1, -8,119,18,16,2,103,93,16,2,158,10,8,119,9,8,121,8,28,59,58,57, -56,55,13,16,3,33,2,134,2,92,93,8,252,135,9,16,6,8,120,11,2, -140,2,141,3,1,7,101,110,118,51,55,50,53,252,18,1,2,252,18,1,95, -9,8,252,135,9,2,92,18,158,2,101,8,119,18,158,2,101,8,119,18,158, -2,101,8,119,18,158,2,0,8,119,18,158,93,16,2,158,2,51,8,119,9, -8,119,18,158,2,101,8,119,18,158,2,116,8,119,18,158,9,8,119,18,158, -2,101,8,119,18,158,2,101,8,119,18,158,2,101,8,119,11,16,5,93,2, -85,253,22,60,248,247,22,252,87,3,20,15,159,39,32,32,248,247,22,252,87, -3,20,15,159,39,33,32,248,247,22,252,87,3,20,15,159,39,34,32,248,22, -60,248,247,22,252,87,3,20,15,159,40,35,32,248,22,60,248,247,22,252,87, -3,20,15,159,40,36,32,10,40,20,98,158,16,0,16,5,18,158,2,35,8, -89,18,158,2,37,8,89,18,158,2,39,8,89,18,158,2,41,8,89,18,158, -2,43,8,89,11,16,5,94,2,56,2,57,27,89,162,32,33,34,62,119,104, -252,19,1,223,1,89,162,32,33,55,9,224,0,1,27,249,22,209,20,15,159, -36,32,44,197,27,28,248,80,158,36,32,194,249,80,158,37,33,248,80,158,38, -34,196,27,248,80,158,39,35,197,28,248,80,158,39,32,193,28,248,80,158,39, -36,248,80,158,40,34,194,27,248,80,158,40,35,194,28,248,80,158,40,32,193, -249,80,158,41,33,248,80,158,42,34,195,27,248,80,158,43,35,196,28,248,80, -158,43,37,193,248,80,158,43,38,193,11,11,11,11,11,28,192,27,248,22,52, -194,27,248,22,78,195,27,248,22,80,196,249,80,158,40,39,201,27,249,22,61, -197,198,27,20,15,159,42,33,44,250,22,209,20,15,159,45,34,44,250,22,209, -20,15,159,48,35,44,251,22,62,20,15,159,52,36,44,20,15,159,52,37,44, -248,22,53,204,248,22,52,204,20,15,159,48,38,44,195,27,28,248,80,158,37, -32,195,249,80,158,38,33,248,80,158,39,34,197,27,248,80,158,40,35,198,28, -248,80,158,40,32,193,249,80,158,41,40,27,248,80,158,43,34,196,28,248,80, -158,43,37,193,248,22,8,89,162,32,33,39,9,224,11,1,27,249,22,2,89, -162,32,33,45,9,224,4,5,249,80,158,35,41,28,248,80,158,36,32,197,249, -80,158,37,33,248,80,158,38,34,199,27,248,80,158,39,35,200,28,248,80,158, -39,32,193,249,80,158,40,33,248,80,158,41,34,195,248,80,158,41,36,248,80, -158,42,35,196,11,11,194,248,80,158,37,38,196,28,248,22,57,193,21,94,9, -9,248,80,158,35,42,193,11,27,248,80,158,43,35,196,28,248,80,158,43,32, -193,249,80,158,44,33,248,80,158,45,34,195,27,248,80,158,46,35,196,28,248, -80,158,46,37,193,248,80,158,46,38,193,11,11,11,11,28,192,27,248,22,52, -194,27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,248,22,89,198, -27,249,22,209,20,15,159,44,39,44,28,203,20,15,159,44,40,44,20,15,159, -44,41,44,249,80,158,44,39,205,27,252,22,61,200,202,203,201,204,27,20,15, -159,46,42,44,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248, -22,8,89,162,32,33,40,9,226,16,2,3,1,250,22,31,89,162,32,32,36, -9,225,6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89, -162,32,33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248, -22,252,181,2,193,248,22,252,186,2,193,249,80,158,35,43,21,95,2,116,94, -94,61,108,252,20,1,95,64,108,105,115,116,252,21,1,95,64,99,111,110,115, -252,22,1,64,112,114,101,100,252,23,1,67,104,97,110,100,108,101,114,252,24, -1,2,113,94,64,98,111,100,121,252,25,1,97,2,230,9,2,234,2,235,2, -113,95,2,116,93,94,63,98,112,122,252,26,1,95,2,232,11,2,47,96,2, -231,2,47,94,2,252,16,1,11,93,94,67,99,97,108,108,47,101,99,252,27, -1,95,2,230,93,2,99,96,2,231,2,47,2,252,26,1,95,2,52,93,94, -1,25,99,117,114,114,101,110,116,45,101,120,99,101,112,116,105,111,110,45,104, -97,110,100,108,101,114,252,28,1,95,2,230,93,61,101,252,29,1,94,2,99, -95,2,230,9,96,2,116,64,108,111,111,112,252,30,1,93,94,2,252,20,1, -2,252,20,1,96,2,132,94,94,65,110,117,108,108,63,252,31,1,2,252,20, -1,94,65,114,97,105,115,101,252,32,1,2,252,29,1,94,94,94,64,99,97, -97,114,252,33,1,2,252,20,1,2,252,29,1,63,117,113,49,252,34,1,94, -2,143,94,2,252,30,1,94,63,99,100,114,252,35,1,2,252,20,1,95,76, -99,97,108,108,45,119,105,116,104,45,118,97,108,117,101,115,252,36,1,2,252, -25,1,95,2,230,64,97,114,103,115,252,37,1,95,2,230,9,95,65,97,112, -112,108,121,252,38,1,66,118,97,108,117,101,115,252,39,1,2,252,37,1,20, -15,159,35,43,44,89,162,32,32,8,100,9,225,6,5,4,27,250,22,209,20, -15,159,38,44,44,250,22,209,20,15,159,41,45,44,250,22,60,20,15,159,44, -46,44,250,22,209,20,15,159,47,47,44,249,22,60,250,22,209,20,15,159,52, -48,44,249,22,60,20,15,159,54,49,44,250,22,209,20,15,159,57,50,44,249, -22,56,20,15,159,59,51,44,250,22,2,89,162,33,33,41,9,223,30,250,22, -209,20,15,159,35,52,44,250,22,60,20,15,159,38,53,44,248,22,52,200,248, -22,78,200,20,15,159,35,54,44,248,22,89,23,29,248,22,87,23,29,20,15, -159,57,55,44,20,15,159,52,56,44,250,22,209,20,15,159,52,57,44,249,22, -60,20,15,159,54,58,44,250,22,209,20,15,159,57,59,44,251,22,62,20,15, -159,8,29,8,28,44,20,15,159,8,29,8,29,44,248,22,78,23,28,248,22, -90,23,28,20,15,159,57,8,30,44,20,15,159,52,8,31,44,20,15,159,47, -8,32,44,250,22,209,20,15,159,47,8,33,44,250,22,60,20,15,159,50,8, -34,44,20,15,159,50,8,35,44,250,22,209,20,15,159,53,8,36,44,251,22, -60,20,15,159,57,8,37,44,20,15,159,57,8,38,44,20,15,159,57,8,39, -44,250,22,209,20,15,159,8,28,8,40,44,248,22,60,250,22,209,20,15,159, -8,32,8,41,44,249,22,60,20,15,159,8,34,8,42,44,250,22,209,20,15, -159,8,37,8,43,44,250,22,60,20,15,159,8,40,8,44,44,20,15,159,8, -40,8,45,44,250,22,209,20,15,159,8,43,8,46,44,251,22,60,20,15,159, -8,47,8,47,44,20,15,159,8,47,8,48,44,20,15,159,8,47,8,49,44, -250,22,209,20,15,159,8,50,8,50,44,250,22,62,20,15,159,8,53,8,51, -44,250,22,209,20,15,159,8,56,8,52,44,248,22,60,250,22,209,20,15,159, -8,60,8,53,44,249,22,60,20,15,159,8,62,8,54,44,250,22,209,20,15, -159,8,65,8,55,44,250,22,60,20,15,159,8,68,8,56,44,20,15,159,8, -68,8,57,44,250,22,209,20,15,159,8,71,8,58,44,249,22,60,20,15,159, -8,73,8,59,44,250,22,209,20,15,159,8,76,8,60,44,250,22,60,20,15, -159,8,79,8,61,44,20,15,159,8,79,8,62,44,250,22,209,20,15,159,8, -82,8,63,44,251,22,60,20,15,159,8,86,8,64,44,20,15,159,8,86,8, -65,44,20,15,159,8,86,8,66,44,250,22,209,20,15,159,8,89,8,67,44, -251,22,62,20,15,159,8,93,8,68,44,20,15,159,8,93,8,69,44,250,22, -209,20,15,159,8,96,8,70,44,249,22,60,20,15,159,8,98,8,71,44,248, -22,52,23,97,20,15,159,8,96,8,72,44,20,15,159,8,93,8,73,44,20, -15,159,8,89,8,74,44,20,15,159,8,82,8,75,44,20,15,159,8,76,8, -76,44,20,15,159,8,71,8,77,44,20,15,159,8,65,8,78,44,20,15,159, -8,60,8,79,44,20,15,159,8,56,8,80,44,20,15,159,8,53,8,81,44, -20,15,159,8,50,8,82,44,20,15,159,8,43,8,83,44,20,15,159,8,37, -8,84,44,20,15,159,8,32,8,85,44,20,15,159,8,28,8,86,44,20,15, -159,53,8,87,44,20,15,159,47,8,88,44,20,15,159,41,8,89,44,197,89, -162,32,32,33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184,2, -208,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197, -249,22,7,248,195,10,248,195,11,37,20,98,158,16,12,2,65,2,68,2,70, -2,72,2,76,2,78,2,80,2,122,2,74,2,184,2,186,2,125,16,90,18, -99,2,82,8,124,36,35,34,16,4,8,123,11,74,100,105,115,97,98,108,101, -45,98,114,101,97,107,63,252,40,1,3,1,7,101,110,118,51,55,50,57,252, -41,1,16,4,8,122,11,2,236,3,1,7,101,110,118,51,55,51,48,252,42, -1,18,16,2,95,2,91,8,125,93,8,252,166,9,95,9,8,252,166,9,2, -92,18,101,2,93,8,128,36,35,34,8,123,8,122,16,8,8,127,11,3,1, -4,103,52,56,54,252,43,1,3,1,4,103,52,56,55,252,44,1,3,1,4, -103,52,56,56,252,45,1,3,1,7,101,110,118,51,55,51,55,252,46,1,2, -252,46,1,2,252,46,1,16,8,8,126,11,2,98,2,234,2,235,3,1,7, -101,110,118,51,55,51,56,252,47,1,2,252,47,1,2,252,47,1,18,158,2, -101,8,128,18,158,2,116,8,128,18,158,9,8,128,18,158,2,101,8,128,18, -101,2,82,8,131,36,35,34,8,123,8,122,16,12,8,130,11,3,1,4,103, -52,56,49,252,48,1,3,1,4,103,52,56,50,252,49,1,3,1,4,103,52, -56,51,252,50,1,3,1,4,103,52,56,52,252,51,1,3,1,4,103,52,56, -53,252,52,1,3,1,7,101,110,118,51,55,53,52,252,53,1,2,252,53,1, -2,252,53,1,2,252,53,1,2,252,53,1,16,12,8,129,11,2,98,2,252, -23,1,2,252,24,1,2,234,2,235,3,1,7,101,110,118,51,55,53,53,252, -54,1,2,252,54,1,2,252,54,1,2,252,54,1,2,252,54,1,18,158,95, -16,2,158,66,98,101,103,105,110,48,252,55,1,8,131,9,16,2,158,94,16, -2,158,94,16,2,158,64,99,100,97,114,252,56,1,8,131,9,16,2,158,2, -252,20,1,8,131,9,8,131,9,16,2,158,2,252,29,1,8,131,9,8,131, -9,16,2,158,96,16,2,158,2,231,8,131,9,16,2,158,2,47,8,131,9, -16,2,158,2,252,26,1,8,131,9,16,2,158,93,16,2,158,2,51,8,131, -9,8,131,9,8,131,9,8,131,18,158,96,16,2,158,2,231,8,131,9,16, -2,158,2,47,8,131,9,16,2,158,2,252,26,1,8,131,9,16,2,158,95, -16,2,158,2,0,8,131,9,16,2,158,93,16,2,158,2,51,8,131,9,8, -131,9,16,2,158,94,16,2,158,94,16,2,158,2,252,56,1,8,131,9,16, -2,158,2,252,20,1,8,131,9,8,131,9,16,2,158,2,252,29,1,8,131, -9,8,131,9,8,131,9,8,131,18,16,2,95,2,91,8,132,93,8,252,175, -9,95,9,8,252,175,9,2,92,18,16,2,99,2,113,8,137,93,8,252,175, -9,16,6,8,136,11,2,140,2,141,3,1,7,101,110,118,51,55,55,51,252, -57,1,2,252,57,1,16,4,8,135,11,2,151,3,1,7,101,110,118,51,55, -55,52,252,58,1,16,4,8,134,11,2,153,3,1,7,101,110,118,51,55,55, -53,252,59,1,16,4,8,133,11,2,155,3,1,7,101,110,118,51,55,55,55, -252,60,1,95,9,8,252,175,9,2,92,18,158,2,93,8,131,18,158,2,101, -8,131,18,158,2,116,8,131,18,158,2,101,8,131,18,158,2,101,8,131,18, -158,2,252,20,1,8,131,18,158,2,101,8,131,18,158,2,252,21,1,8,131, -18,158,2,101,8,131,18,158,2,252,22,1,8,131,18,158,2,101,8,131,18, -158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,252, -25,1,8,131,18,158,2,101,8,131,18,158,2,230,8,131,18,158,9,8,131, -18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2, -101,8,131,18,158,2,116,8,131,18,158,93,16,2,158,94,16,2,158,2,252, -26,1,8,131,9,16,2,158,95,16,2,158,2,232,8,131,9,16,2,158,11, -8,131,9,16,2,158,2,47,8,131,9,8,131,9,8,131,9,8,131,18,158, -2,101,8,131,18,158,2,231,8,131,18,158,2,47,8,131,18,158,94,16,2, -158,2,252,16,1,8,131,9,16,2,158,11,8,131,9,8,131,18,158,2,101, -8,131,18,158,2,101,8,131,18,158,2,252,27,1,8,131,18,158,2,101,8, -131,18,158,2,230,8,131,18,158,93,16,2,158,2,99,8,131,9,8,131,18, -158,2,101,8,131,18,158,2,231,8,131,18,158,2,47,8,131,18,158,2,252, -26,1,8,131,18,158,2,101,8,131,18,158,2,52,8,131,18,158,2,101,8, -131,18,158,2,101,8,131,18,158,2,252,28,1,8,131,18,158,2,101,8,131, -18,158,2,230,8,131,18,158,93,16,2,158,2,252,29,1,8,131,9,8,131, -18,158,2,101,8,131,18,158,2,99,8,131,18,158,2,101,8,131,18,158,2, -230,8,131,18,158,9,8,131,18,158,2,101,8,131,18,158,2,116,8,131,18, -158,2,252,30,1,8,131,18,158,93,16,2,158,94,16,2,158,2,252,20,1, -8,131,9,16,2,158,2,252,20,1,8,131,9,8,131,9,8,131,18,158,2, -101,8,131,18,158,2,132,8,131,18,158,94,16,2,158,94,16,2,158,2,252, -31,1,8,131,9,16,2,158,2,252,20,1,8,131,9,8,131,9,16,2,158, -94,16,2,158,2,252,32,1,8,131,9,16,2,158,2,252,29,1,8,131,9, -8,131,9,8,131,18,158,2,101,8,131,18,158,94,16,2,158,94,16,2,158, -2,252,33,1,8,131,9,16,2,158,2,252,20,1,8,131,9,8,131,9,16, -2,158,2,252,29,1,8,131,9,8,131,18,158,2,101,8,131,18,16,2,105, -93,16,2,158,94,16,2,158,2,143,8,131,9,16,2,158,94,16,2,158,2, -252,30,1,8,131,9,16,2,158,94,16,2,158,2,252,35,1,8,131,9,16, -2,158,2,252,20,1,8,131,9,8,131,9,8,131,9,8,131,9,8,141,8, -28,59,58,57,56,55,13,16,3,33,2,134,2,92,93,8,252,175,9,16,6, -8,140,11,2,140,2,141,2,252,57,1,2,252,57,1,16,4,8,139,11,2, -151,2,252,58,1,16,4,8,138,11,2,153,2,252,59,1,95,9,8,252,175, -9,2,92,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131, -18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2, -101,8,131,18,16,2,158,93,16,2,158,95,16,2,158,2,252,36,1,8,131, -9,16,2,158,2,252,25,1,8,131,9,16,2,158,95,16,2,158,2,230,8, -131,9,16,2,158,2,252,37,1,8,131,9,16,2,158,95,16,2,158,2,230, -8,131,9,16,2,158,9,8,131,9,16,2,158,95,16,2,158,2,252,38,1, -8,131,9,16,2,158,2,252,39,1,8,131,9,16,2,158,2,252,37,1,8, -131,9,8,131,9,8,131,9,8,131,9,8,131,9,8,141,95,9,8,252,175, -9,2,92,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131, -18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2, -101,8,131,18,158,2,101,8,131,11,16,5,93,2,61,89,162,32,33,57,9, -223,0,27,249,22,209,20,15,159,35,32,46,196,27,28,248,80,158,35,32,194, -249,80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80, -158,38,32,193,28,248,80,158,38,36,248,80,158,39,34,194,27,248,80,158,39, -35,194,28,248,80,158,39,32,193,249,80,158,40,37,248,80,158,41,34,195,248, -80,158,41,36,248,80,158,42,35,196,11,11,11,11,28,192,27,248,22,52,194, -27,248,22,53,195,27,20,15,159,37,33,46,250,22,209,20,15,159,40,34,46, -250,22,209,20,15,159,43,35,46,250,22,62,20,15,159,46,36,46,250,22,209, -20,15,159,49,37,46,248,22,60,250,22,209,20,15,159,53,38,46,249,22,60, -20,15,159,55,39,46,23,19,20,15,159,53,40,46,20,15,159,49,41,46,20, -15,159,46,42,46,20,15,159,43,43,46,195,27,89,162,32,32,51,2,119,225, -3,4,2,27,89,162,32,32,36,2,119,223,1,250,22,252,39,2,11,6,10, -10,98,97,100,32,115,121,110,116,97,120,195,27,28,248,80,158,37,32,195,249, -80,158,38,33,248,80,158,39,34,197,27,248,80,158,40,35,198,28,248,80,158, -40,32,193,249,80,158,41,37,27,248,80,158,43,34,196,28,248,80,158,43,38, -193,248,22,59,248,80,158,44,39,194,11,27,248,80,158,43,35,196,28,248,80, -158,43,32,193,249,80,158,44,37,248,80,158,45,34,195,248,80,158,45,36,248, -80,158,46,35,196,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27, -248,22,80,196,28,27,248,80,158,41,39,27,20,15,159,42,44,46,250,22,209, -20,15,159,45,45,46,199,195,87,94,249,22,3,89,162,32,33,39,9,224,10, -9,28,248,80,158,34,40,195,12,251,22,252,39,2,11,6,17,17,110,111,116, -32,97,110,32,105,100,101,110,116,105,102,105,101,114,196,198,194,27,248,80,158, -42,41,194,28,192,251,22,252,39,2,11,6,20,20,100,117,112,108,105,99,97, -116,101,32,105,100,101,110,116,105,102,105,101,114,204,196,12,27,249,22,209,20, -15,159,42,46,46,248,80,158,43,42,27,20,15,159,44,47,46,250,22,209,20, -15,159,47,48,46,201,195,27,28,248,80,158,42,38,194,248,80,158,42,39,194, -11,28,192,249,80,158,43,43,202,27,250,22,61,198,200,201,27,20,15,159,45, -49,46,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,8, -89,162,32,33,40,9,226,15,2,3,1,250,22,31,89,162,32,32,36,9,225, -6,3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162,32, -33,36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252, -181,2,193,248,22,252,186,2,193,249,80,158,35,44,21,96,70,108,101,116,45, -118,97,108,117,101,115,252,61,1,93,94,94,64,116,101,109,112,252,62,1,2, -113,2,235,95,64,115,101,116,33,252,63,1,62,105,100,252,64,1,2,252,62, -1,2,113,20,15,159,35,50,46,89,162,32,32,56,9,225,6,5,4,27,250, -22,209,20,15,159,38,51,46,250,22,209,20,15,159,41,52,46,250,22,62,20, -15,159,44,53,46,250,22,209,20,15,159,47,54,46,248,22,60,250,22,209,20, -15,159,51,55,46,249,22,60,248,22,52,23,20,248,22,78,23,20,20,15,159, -51,56,46,20,15,159,47,57,46,250,22,2,89,162,33,33,41,9,223,15,250, -22,209,20,15,159,35,58,46,250,22,60,20,15,159,38,59,46,248,22,52,200, -248,22,78,200,20,15,159,35,8,28,46,248,22,80,206,248,22,52,206,20,15, -159,41,8,29,46,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9, -223,3,248,22,252,184,2,208,248,80,158,42,45,20,15,159,42,8,30,46,247, -196,247,193,27,28,248,80,158,37,32,196,249,80,158,38,33,248,80,158,39,34, -198,27,248,80,158,40,35,199,28,248,80,158,40,32,193,249,80,158,41,37,27, -248,80,158,43,34,196,28,248,80,158,43,32,193,249,80,158,44,33,248,80,158, -45,34,195,248,80,158,45,36,248,80,158,46,35,196,11,27,248,80,158,43,35, -196,28,248,80,158,43,32,193,249,80,158,44,37,248,80,158,45,34,195,248,80, -158,45,36,248,80,158,46,35,196,11,11,11,28,192,27,248,22,52,194,27,248, -22,78,195,27,248,22,80,196,28,248,80,158,40,40,194,27,249,22,61,196,195, -27,20,15,159,41,8,31,46,250,22,209,20,15,159,44,8,32,46,250,22,209, -20,15,159,47,8,33,46,250,22,60,20,15,159,50,8,34,46,248,22,52,203, -248,22,53,203,20,15,159,47,8,35,46,195,247,196,247,193,32,20,98,158,16, -14,2,65,2,68,2,70,2,72,2,76,2,74,2,78,2,80,2,120,30,252, -65,1,2,88,1,26,99,104,101,99,107,45,100,117,112,108,105,99,97,116,101, -45,105,100,101,110,116,105,102,105,101,114,252,66,1,0,30,252,67,1,2,189, -1,20,103,101,110,101,114,97,116,101,45,116,101,109,112,111,114,97,114,105,101, -115,252,68,1,0,2,122,2,125,2,188,16,36,18,98,2,82,8,143,36,35, -34,16,4,8,142,11,2,236,3,1,7,101,110,118,51,55,56,54,252,69,1, -18,16,2,95,2,91,8,144,93,8,252,197,9,95,9,8,252,197,9,2,92, -18,100,2,93,8,147,36,35,34,8,142,16,6,8,146,11,3,1,4,103,52, -57,56,252,70,1,3,1,4,103,52,57,57,252,71,1,3,1,7,101,110,118, -51,55,57,50,252,72,1,2,252,72,1,16,6,8,145,11,2,98,2,235,3, -1,7,101,110,118,51,55,57,51,252,73,1,2,252,73,1,18,158,2,101,8, -147,18,158,2,252,61,1,8,147,18,158,2,101,8,147,18,158,2,101,8,147, -18,158,9,8,147,18,158,2,101,8,147,18,158,2,101,8,147,18,16,2,103, -93,16,2,158,93,16,2,158,64,118,111,105,100,252,74,1,8,147,9,8,147, -9,8,149,8,28,59,58,57,56,55,13,16,3,33,2,134,2,92,93,8,252, -197,9,16,6,8,148,11,2,140,2,141,3,1,7,101,110,118,51,55,57,55, -252,75,1,2,252,75,1,95,9,8,252,197,9,2,92,18,158,2,101,8,147, -18,16,2,95,2,91,8,150,93,8,252,198,9,95,9,8,252,198,9,2,92, -18,100,2,93,8,153,36,35,34,8,142,16,8,8,152,11,3,1,4,103,52, -57,50,252,76,1,3,1,4,103,52,57,51,252,77,1,3,1,4,103,52,57, -52,252,78,1,3,1,7,101,110,118,51,56,48,55,252,79,1,2,252,79,1, -2,252,79,1,16,8,8,151,11,2,98,2,252,64,1,2,235,3,1,7,101, -110,118,51,56,48,56,252,80,1,2,252,80,1,2,252,80,1,18,158,2,82, -8,153,18,16,2,95,2,91,8,154,93,8,252,202,9,95,9,8,252,202,9, -2,92,18,158,2,93,8,153,18,16,2,95,2,91,8,155,93,8,252,205,9, -95,9,8,252,205,9,2,92,18,16,2,99,2,113,8,160,93,8,252,205,9, -16,6,8,159,11,2,140,2,141,3,1,7,101,110,118,51,56,50,53,252,81, -1,2,252,81,1,16,4,8,158,11,2,151,3,1,7,101,110,118,51,56,50, -54,252,82,1,16,4,8,157,11,2,153,3,1,7,101,110,118,51,56,50,55, -252,83,1,16,4,8,156,11,2,155,3,1,7,101,110,118,51,56,50,57,252, -84,1,95,9,8,252,205,9,2,92,18,102,2,93,8,165,36,35,34,8,142, -16,8,8,164,11,2,252,76,1,2,252,77,1,2,252,78,1,2,252,79,1, -2,252,79,1,2,252,79,1,16,8,8,163,11,2,98,2,252,64,1,2,235, -2,252,80,1,2,252,80,1,2,252,80,1,16,4,8,162,11,3,1,4,103, -53,48,50,252,85,1,3,1,7,101,110,118,51,56,50,49,252,86,1,16,4, -8,161,11,2,252,62,1,3,1,7,101,110,118,51,56,50,50,252,87,1,18, -158,2,101,8,165,18,158,2,252,61,1,8,165,18,158,2,101,8,165,18,158, -2,101,8,165,18,158,2,101,8,165,18,158,2,101,8,165,18,158,2,101,8, -165,18,158,2,252,63,1,8,165,18,158,2,101,8,165,18,158,2,101,8,165, -18,16,2,158,94,16,2,98,2,252,62,1,8,169,93,8,252,201,9,16,4, -8,168,11,3,1,8,119,115,116,109,112,53,48,48,252,88,1,3,1,7,101, -110,118,51,56,49,54,252,89,1,16,4,8,167,11,3,1,4,103,53,48,49, -252,90,1,3,1,7,101,110,118,51,56,51,56,252,91,1,16,4,8,166,11, -2,222,3,1,7,101,110,118,51,56,51,57,252,92,1,9,16,2,158,2,113, -8,169,9,8,169,95,9,8,252,201,9,2,189,18,16,2,95,2,91,8,170, -93,8,252,208,9,95,9,8,252,208,9,2,92,18,100,2,93,8,173,36,35, -34,8,142,16,8,8,172,11,3,1,4,103,52,57,53,252,93,1,3,1,4, -103,52,57,54,252,94,1,3,1,4,103,52,57,55,252,95,1,3,1,7,101, -110,118,51,56,52,54,252,96,1,2,252,96,1,2,252,96,1,16,8,8,171, -11,2,98,2,252,64,1,2,235,3,1,7,101,110,118,51,56,52,55,252,97, -1,2,252,97,1,2,252,97,1,18,158,2,101,8,173,18,158,2,252,63,1, -8,173,18,158,2,101,8,173,11,16,5,93,2,58,89,162,32,33,8,32,9, -223,0,27,249,22,209,20,15,159,35,32,39,196,27,28,248,80,158,35,32,194, -249,80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80, -158,38,32,193,249,80,158,39,33,248,80,158,40,34,195,27,248,80,158,41,35, -196,28,248,80,158,41,32,193,249,80,158,42,33,248,80,158,43,34,195,27,248, -80,158,44,35,196,28,248,80,158,44,36,193,248,80,158,44,37,193,11,11,11, +78,195,27,248,22,80,196,27,249,22,61,196,195,27,20,15,159,39,33,45,250, +22,209,20,15,159,42,34,45,250,22,209,20,15,159,45,35,45,250,22,62,20, +15,159,48,36,45,20,15,159,48,37,45,202,20,15,159,45,38,45,195,27,28, +248,80,158,36,32,195,249,80,158,37,33,248,80,158,38,34,197,27,248,80,158, +39,35,198,28,248,80,158,39,32,193,249,80,158,40,39,27,248,80,158,42,34, +196,28,248,80,158,42,37,193,248,22,8,89,162,32,33,39,9,224,10,1,27, +249,22,2,89,162,32,33,45,9,224,4,5,249,80,158,35,40,28,248,80,158, +36,32,197,249,80,158,37,33,248,80,158,38,34,199,27,248,80,158,39,35,200, +28,248,80,158,39,32,193,249,80,158,40,33,248,80,158,41,34,195,248,80,158, +41,36,248,80,158,42,35,196,11,11,194,248,80,158,37,38,196,28,248,22,57, +193,21,94,9,9,248,80,158,35,41,193,11,27,248,80,158,42,35,196,28,248, +80,158,42,32,193,249,80,158,43,33,248,80,158,44,34,195,27,248,80,158,45, +35,196,28,248,80,158,45,37,193,248,80,158,45,38,193,11,11,11,11,28,192, +27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27, +248,22,89,198,27,249,22,209,20,15,159,43,39,45,249,22,1,22,65,250,22, +2,22,59,248,22,216,27,20,15,159,50,40,45,250,22,209,20,15,159,53,41, +45,23,16,195,248,22,216,27,20,15,159,50,42,45,250,22,209,20,15,159,53, +43,45,23,15,195,27,28,248,80,158,43,37,194,248,80,158,43,38,194,11,28, +192,249,80,158,44,42,205,27,250,22,61,200,201,198,27,20,15,159,46,44,45, +91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,8,89,162, +32,33,40,9,226,16,2,3,1,250,22,31,89,162,32,32,36,9,225,6,3, +7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162,32,33,36, +9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,181,2, +193,248,22,252,186,2,193,249,80,158,35,43,21,96,1,22,119,105,116,104,45, +99,111,110,116,105,110,117,97,116,105,111,110,45,109,97,114,107,231,2,21,96, +2,19,95,1,27,99,111,110,116,105,110,117,97,116,105,111,110,45,109,97,114, +107,45,115,101,116,45,102,105,114,115,116,232,11,2,21,63,112,47,118,233,2, +113,97,2,116,9,65,101,120,112,114,49,234,64,101,120,112,114,235,2,113,20, +15,159,35,45,45,89,162,32,32,54,9,225,6,5,4,27,250,22,209,20,15, +159,38,46,45,250,22,209,20,15,159,41,47,45,251,22,60,20,15,159,45,48, +45,20,15,159,45,49,45,250,22,209,20,15,159,48,50,45,250,22,62,20,15, +159,51,51,45,20,15,159,51,52,45,248,22,80,23,18,20,15,159,48,53,45, +250,22,209,20,15,159,48,54,45,251,22,62,20,15,159,52,55,45,20,15,159, +52,56,45,248,22,78,23,19,248,22,52,23,19,20,15,159,48,57,45,20,15, +159,41,58,45,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9,223, +3,248,22,252,184,2,208,248,80,158,43,44,20,15,159,43,59,45,250,22,252, +39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197,32,20,98,158, +16,13,2,65,2,68,2,70,2,72,2,76,2,78,2,80,2,74,2,184,2, +186,2,122,2,125,2,188,16,28,18,98,2,82,8,91,36,35,34,16,4,8, +90,11,63,115,116,120,236,3,1,7,101,110,118,51,54,53,54,237,18,16,2, +95,2,91,8,92,93,8,252,117,9,95,9,8,252,117,9,2,92,18,100,2, +93,8,95,36,35,34,8,90,16,8,8,94,11,3,1,4,103,52,55,49,238, +3,1,4,103,52,55,50,239,3,1,4,103,52,55,51,240,3,1,7,101,110, +118,51,54,54,51,241,2,241,2,241,16,8,8,93,11,2,98,2,234,2,235, +3,1,7,101,110,118,51,54,54,52,242,2,242,2,242,18,158,2,101,8,95, +18,158,2,116,8,95,18,158,9,8,95,18,158,2,101,8,95,18,100,2,82, +8,98,36,35,34,8,90,16,12,8,97,11,3,1,4,103,52,54,54,243,3, +1,4,103,52,54,55,244,3,1,4,103,52,54,56,245,3,1,4,103,52,54, +57,246,3,1,4,103,52,55,48,247,3,1,7,101,110,118,51,54,56,48,248, +2,248,2,248,2,248,2,248,16,12,8,96,11,2,98,65,112,97,114,97,109, +249,63,118,97,108,250,2,234,2,235,3,1,7,101,110,118,51,54,56,49,251, +2,251,2,251,2,251,2,251,18,16,2,95,2,91,8,99,93,8,252,120,9, +95,9,8,252,120,9,2,92,18,158,2,93,8,98,18,16,2,95,2,91,8, +100,93,8,252,121,9,95,9,8,252,121,9,2,92,18,158,2,93,8,98,18, +16,2,95,2,91,8,101,93,8,252,124,9,95,9,8,252,124,9,2,92,18, +16,2,99,2,113,8,106,93,8,252,124,9,16,6,8,105,11,2,140,2,141, +3,1,7,101,110,118,51,54,57,56,252,252,0,2,252,252,0,16,4,8,104, +11,2,151,3,1,7,101,110,118,51,54,57,57,252,253,0,16,4,8,103,11, +2,153,3,1,7,101,110,118,51,55,48,48,252,254,0,16,4,8,102,11,2, +155,3,1,7,101,110,118,51,55,48,50,252,255,0,95,9,8,252,124,9,2, +92,18,102,2,93,8,109,36,35,34,8,90,8,97,8,96,16,4,8,108,11, +3,1,4,103,52,55,54,252,0,1,3,1,7,101,110,118,51,54,57,52,252, +1,1,16,4,8,107,11,2,233,3,1,7,101,110,118,51,54,57,53,252,2, +1,18,158,2,101,8,109,18,158,2,231,8,109,18,158,2,21,8,109,18,158, +2,101,8,109,18,158,2,19,8,109,18,158,95,16,2,158,2,232,8,109,9, +16,2,158,11,8,109,9,16,2,158,2,21,8,109,9,8,109,18,158,2,101, +8,109,18,158,2,101,8,109,18,158,2,116,8,109,18,158,9,8,109,18,158, +2,101,8,109,18,158,2,101,8,109,18,16,2,158,94,16,2,98,2,233,8, +113,93,8,252,119,9,16,4,8,112,11,3,1,8,119,115,116,109,112,52,55, +52,252,3,1,3,1,7,101,110,118,51,54,56,56,252,4,1,16,4,8,111, +11,3,1,4,103,52,55,53,252,5,1,3,1,7,101,110,118,51,55,48,57, +252,6,1,16,4,8,110,11,2,222,3,1,7,101,110,118,51,55,49,48,252, +7,1,9,16,2,158,2,113,8,113,9,8,113,95,9,8,252,119,9,2,189, +11,16,5,93,2,59,89,162,32,33,8,36,9,223,0,27,249,22,209,20,15, +159,35,32,39,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158, +37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249,80,158,39, +33,248,80,158,40,34,195,27,248,80,158,41,35,196,28,248,80,158,41,32,193, +249,80,158,42,33,248,80,158,43,34,195,27,248,80,158,44,35,196,28,248,80, +158,44,36,193,248,80,158,44,37,193,11,11,11,11,28,192,27,248,22,52,194, +27,248,22,78,195,27,248,22,87,196,27,248,22,88,197,249,80,158,40,38,201, +27,250,22,61,198,199,200,27,20,15,159,42,33,39,250,22,209,20,15,159,45, +34,39,250,22,209,20,15,159,48,35,39,251,22,60,20,15,159,52,36,39,20, +15,159,52,37,39,250,22,209,20,15,159,55,38,39,249,22,60,20,15,159,57, +39,39,250,22,209,20,15,159,8,28,40,39,250,22,62,20,15,159,8,31,41, +39,248,22,80,23,23,20,15,159,8,31,42,39,20,15,159,8,28,43,39,20, +15,159,55,44,39,250,22,209,20,15,159,55,45,39,250,22,60,20,15,159,58, +46,39,20,15,159,58,47,39,250,22,209,20,15,159,8,29,48,39,251,22,62, +20,15,159,8,33,49,39,20,15,159,8,33,50,39,248,22,78,23,25,248,22, +52,23,25,20,15,159,8,29,51,39,20,15,159,55,52,39,20,15,159,48,53, +39,195,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120, +196,32,20,98,158,16,7,2,65,2,68,2,70,2,72,2,78,2,80,2,122, +16,22,18,98,2,82,8,115,36,35,34,16,4,8,114,11,2,236,3,1,7, +101,110,118,51,55,49,51,252,8,1,18,16,2,95,2,91,8,116,93,8,252, +137,9,95,9,8,252,137,9,2,92,18,100,2,93,8,119,36,35,34,8,114, +16,10,8,118,11,3,1,4,103,52,55,55,252,9,1,3,1,4,103,52,55, +56,252,10,1,3,1,4,103,52,55,57,252,11,1,3,1,4,103,52,56,48, +252,12,1,3,1,7,101,110,118,51,55,50,48,252,13,1,2,252,13,1,2, +252,13,1,2,252,13,1,16,10,8,117,11,2,98,69,98,111,111,108,45,101, +120,112,114,252,14,1,2,234,2,235,3,1,7,101,110,118,51,55,50,49,252, +15,1,2,252,15,1,2,252,15,1,2,252,15,1,18,158,2,101,8,119,18, +158,2,231,8,119,18,158,2,47,8,119,18,158,2,101,8,119,18,158,76,109, +97,107,101,45,116,104,114,101,97,100,45,99,101,108,108,252,16,1,8,119,18, +158,2,101,8,119,18,158,63,97,110,100,252,17,1,8,119,18,16,2,103,93, +16,2,158,10,8,119,9,8,121,8,28,59,58,57,56,55,13,16,3,33,2, +134,2,92,93,8,252,137,9,16,6,8,120,11,2,140,2,141,3,1,7,101, +110,118,51,55,50,55,252,18,1,2,252,18,1,95,9,8,252,137,9,2,92, +18,158,2,101,8,119,18,158,2,101,8,119,18,158,2,101,8,119,18,158,2, +0,8,119,18,158,93,16,2,158,2,51,8,119,9,8,119,18,158,2,101,8, +119,18,158,2,116,8,119,18,158,9,8,119,18,158,2,101,8,119,18,158,2, +101,8,119,18,158,2,101,8,119,11,16,5,93,2,85,253,22,60,248,247,22, +252,88,3,20,15,159,39,32,32,248,247,22,252,88,3,20,15,159,39,33,32, +248,247,22,252,88,3,20,15,159,39,34,32,248,22,60,248,247,22,252,88,3, +20,15,159,40,35,32,248,22,60,248,247,22,252,88,3,20,15,159,40,36,32, +10,40,20,98,158,16,0,16,5,18,158,2,35,8,89,18,158,2,37,8,89, +18,158,2,39,8,89,18,158,2,41,8,89,18,158,2,43,8,89,11,16,5, +94,2,57,2,60,27,89,162,32,33,34,62,119,104,252,19,1,223,1,89,162, +32,33,53,9,224,0,1,27,249,22,209,20,15,159,36,32,44,197,27,28,248, +80,158,36,32,194,249,80,158,37,33,248,80,158,38,34,196,27,248,80,158,39, +35,197,28,248,80,158,39,32,193,28,248,80,158,39,36,248,80,158,40,34,194, +27,248,80,158,40,35,194,28,248,80,158,40,32,193,249,80,158,41,33,248,80, +158,42,34,195,27,248,80,158,43,35,196,28,248,80,158,43,37,193,248,80,158, +43,38,193,11,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27, +248,22,80,196,249,80,158,40,39,201,27,249,22,61,198,197,27,20,15,159,42, +33,44,250,22,209,20,15,159,45,34,44,250,22,209,20,15,159,48,35,44,250, +22,62,20,15,159,51,36,44,20,15,159,51,37,44,202,20,15,159,48,38,44, +195,27,28,248,80,158,37,32,195,249,80,158,38,33,248,80,158,39,34,197,27, +248,80,158,40,35,198,28,248,80,158,40,32,193,249,80,158,41,40,27,248,80, +158,43,34,196,28,248,80,158,43,37,193,248,22,8,89,162,32,33,39,9,224, +11,1,27,249,22,2,89,162,32,33,45,9,224,4,5,249,80,158,35,41,28, +248,80,158,36,32,197,249,80,158,37,33,248,80,158,38,34,199,27,248,80,158, +39,35,200,28,248,80,158,39,32,193,249,80,158,40,33,248,80,158,41,34,195, +248,80,158,41,36,248,80,158,42,35,196,11,11,194,248,80,158,37,38,196,28, +248,22,57,193,21,94,9,9,248,80,158,35,42,193,11,27,248,80,158,43,35, +196,28,248,80,158,43,32,193,249,80,158,44,33,248,80,158,45,34,195,27,248, +80,158,46,35,196,28,248,80,158,46,37,193,248,80,158,46,38,193,11,11,11, 11,28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22, -88,197,249,80,158,40,38,201,27,250,22,61,200,199,198,27,20,15,159,42,33, -39,250,22,209,20,15,159,45,34,39,250,22,209,20,15,159,48,35,39,249,22, -60,20,15,159,50,36,39,250,22,209,20,15,159,53,37,39,251,22,62,20,15, -159,57,38,39,250,22,209,20,15,159,8,28,39,39,248,22,60,248,22,52,23, -21,20,15,159,8,28,40,39,248,22,78,23,17,248,22,80,23,17,20,15,159, -53,41,39,20,15,159,48,42,39,195,250,22,252,39,2,11,6,10,10,98,97, -100,32,115,121,110,116,97,120,196,32,20,98,158,16,7,2,65,2,68,2,70, -2,72,2,78,2,80,2,122,16,11,18,98,2,82,8,175,36,35,34,16,4, -8,174,11,2,236,3,1,7,101,110,118,51,56,53,51,252,98,1,18,16,2, -95,2,91,8,176,93,8,252,218,9,95,9,8,252,218,9,2,92,18,100,2, -93,8,179,36,35,34,8,174,16,10,8,178,11,3,1,4,103,53,48,51,252, -99,1,3,1,4,103,53,48,52,252,100,1,3,1,4,103,53,48,53,252,101, -1,3,1,4,103,53,48,54,252,102,1,3,1,7,101,110,118,51,56,54,48, -252,103,1,2,252,103,1,2,252,103,1,2,252,103,1,16,10,8,177,11,2, -98,2,178,65,98,111,100,121,49,252,104,1,2,252,25,1,3,1,7,101,110, -118,51,56,54,49,252,105,1,2,252,105,1,2,252,105,1,2,252,105,1,18, -158,2,101,8,179,18,158,67,99,97,108,108,47,99,99,252,106,1,8,179,18, -158,2,101,8,179,18,158,2,230,8,179,18,158,2,101,8,179,18,158,2,101, -8,179,18,158,2,101,8,179,18,158,2,101,8,179,11,16,5,93,2,63,89, -162,32,33,55,9,223,0,27,249,22,209,20,15,159,35,32,41,196,27,28,248, -80,158,35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248,80,158,38, -35,197,28,248,80,158,38,32,193,249,80,158,39,33,248,80,158,40,34,195,27, -248,80,158,41,35,196,28,248,80,158,41,32,193,249,80,158,42,36,27,248,80, -158,44,34,196,28,248,80,158,44,37,193,248,22,59,248,80,158,45,38,194,11, -27,248,80,158,44,35,196,28,248,80,158,44,32,193,249,80,158,45,33,248,80, -158,46,34,195,27,248,80,158,47,35,196,28,248,80,158,47,37,193,248,80,158, -47,38,193,11,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27, -248,22,87,196,27,248,22,90,197,27,248,22,89,198,249,80,158,41,39,202,27, -251,22,61,200,199,201,202,27,20,15,159,43,33,41,91,159,33,11,90,161,33, -32,11,83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,13,2, -3,1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247, -22,252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89, -162,32,32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2,193, -249,80,158,35,40,21,98,2,116,9,95,73,100,101,102,105,110,101,45,115,116, -114,117,99,116,252,107,1,64,98,97,115,101,252,108,1,94,65,102,105,101,108, -100,252,109,1,2,113,2,252,104,1,2,252,25,1,2,113,20,15,159,35,34, -41,89,162,32,32,54,9,225,6,5,4,27,250,22,209,20,15,159,38,35,41, -250,22,209,20,15,159,41,36,41,252,22,62,20,15,159,46,37,41,20,15,159, -46,38,41,250,22,209,20,15,159,49,39,41,250,22,60,20,15,159,52,40,41, -248,22,88,23,19,248,22,87,23,19,20,15,159,49,41,41,248,22,52,205,248, -22,78,205,20,15,159,41,42,41,197,89,162,32,32,33,9,223,0,192,89,162, -32,32,34,9,223,3,248,22,252,184,2,208,250,22,252,39,2,11,6,10,10, -98,97,100,32,115,121,110,116,97,120,196,32,20,98,158,16,9,2,65,2,68, -2,70,2,72,2,74,2,78,2,80,2,122,2,125,16,11,18,98,2,82,8, -181,36,35,34,16,4,8,180,11,2,236,3,1,7,101,110,118,51,56,54,57, -252,110,1,18,16,2,95,2,91,8,182,93,8,252,231,9,95,9,8,252,231, -9,2,92,18,16,2,99,2,113,8,187,93,8,252,231,9,16,6,8,186,11, -2,140,2,141,3,1,7,101,110,118,51,56,56,54,252,111,1,2,252,111,1, -16,4,8,185,11,2,151,3,1,7,101,110,118,51,56,56,55,252,112,1,16, -4,8,184,11,2,153,3,1,7,101,110,118,51,56,56,56,252,113,1,16,4, -8,183,11,2,155,3,1,7,101,110,118,51,56,57,48,252,114,1,95,9,8, -252,231,9,2,92,18,100,2,93,8,190,36,35,34,8,180,16,12,8,189,11, -3,1,4,103,53,48,55,252,115,1,3,1,4,103,53,48,56,252,116,1,3, -1,4,103,53,48,57,252,117,1,3,1,4,103,53,49,48,252,118,1,3,1, -4,103,53,49,49,252,119,1,3,1,7,101,110,118,51,56,55,56,252,120,1, -2,252,120,1,2,252,120,1,2,252,120,1,2,252,120,1,16,12,8,188,11, -2,98,2,252,108,1,2,252,109,1,2,252,104,1,2,252,25,1,3,1,7, -101,110,118,51,56,55,57,252,121,1,2,252,121,1,2,252,121,1,2,252,121, -1,2,252,121,1,18,158,2,101,8,190,18,158,2,116,8,190,18,158,9,8, -190,18,158,2,101,8,190,18,158,2,252,107,1,8,190,18,158,2,101,8,190, -18,158,2,101,8,190,11,16,5,93,2,53,89,162,32,33,54,9,223,0,27, -249,22,209,20,15,159,35,32,46,196,27,28,248,80,158,35,32,194,249,80,158, -36,33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32, -193,28,248,80,158,38,36,248,80,158,39,34,194,27,248,80,158,39,35,194,28, -248,80,158,39,32,193,249,80,158,40,33,248,80,158,41,34,195,27,248,80,158, -42,35,196,28,248,80,158,42,37,193,248,80,158,42,38,193,11,11,11,11,11, -28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,249,80,158,39, -39,200,27,249,22,61,197,198,27,20,15,159,41,33,46,250,22,209,20,15,159, -44,34,46,250,22,209,20,15,159,47,35,46,251,22,62,20,15,159,51,36,46, -20,15,159,51,37,46,248,22,53,204,248,22,52,204,20,15,159,47,38,46,195, -27,28,248,80,158,36,32,195,249,80,158,37,33,248,80,158,38,34,197,27,248, -80,158,39,35,198,28,248,80,158,39,32,193,249,80,158,40,40,27,248,80,158, -42,34,196,28,248,80,158,42,37,193,248,22,8,89,162,32,33,39,9,224,10, -1,27,249,22,2,89,162,32,33,45,9,224,4,5,249,80,158,35,41,28,248, -80,158,36,32,197,249,80,158,37,33,248,80,158,38,34,199,27,248,80,158,39, -35,200,28,248,80,158,39,32,193,249,80,158,40,33,248,80,158,41,34,195,248, -80,158,41,36,248,80,158,42,35,196,11,11,194,248,80,158,37,38,196,28,248, -22,57,193,21,94,9,9,248,80,158,35,42,193,11,27,248,80,158,42,35,196, -28,248,80,158,42,32,193,249,80,158,43,33,248,80,158,44,34,195,27,248,80, -158,45,35,196,28,248,80,158,45,37,193,248,80,158,45,38,193,11,11,11,11, -28,192,27,248,22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,90, -197,27,248,22,89,198,27,249,22,209,20,15,159,43,39,46,248,80,158,44,43, -27,20,15,159,45,40,46,250,22,209,20,15,159,48,41,46,203,195,27,28,248, -80,158,43,37,194,248,80,158,43,38,194,11,28,192,249,80,158,44,39,205,27, -252,22,61,205,203,202,200,204,27,20,15,159,46,42,46,91,159,33,11,90,161, -33,32,11,83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,16, -2,3,1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10, -247,22,252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193, -89,162,32,32,36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2, -193,249,80,158,35,44,21,95,2,116,94,94,63,116,109,112,252,122,1,2,250, -2,113,95,2,116,93,94,64,115,119,97,112,252,123,1,96,2,230,9,96,2, -116,93,94,2,202,2,252,122,1,95,2,252,63,1,2,252,122,1,64,110,97, -109,101,252,124,1,95,2,252,63,1,2,252,124,1,2,202,2,113,96,72,100, -121,110,97,109,105,99,45,119,105,110,100,252,125,1,2,252,123,1,97,2,230, -9,2,252,104,1,2,252,25,1,2,113,2,252,123,1,20,15,159,35,43,46, -89,162,32,32,8,40,9,225,6,5,4,27,250,22,209,20,15,159,38,44,46, -250,22,209,20,15,159,41,45,46,250,22,60,20,15,159,44,46,46,250,22,2, -89,162,33,33,41,9,223,15,250,22,209,20,15,159,35,47,46,249,22,60,248, -22,52,199,248,22,78,199,20,15,159,35,48,46,248,22,90,206,248,22,89,206, -250,22,209,20,15,159,47,49,46,250,22,60,20,15,159,50,50,46,250,22,209, -20,15,159,53,51,46,248,22,60,250,22,209,20,15,159,57,52,46,249,22,60, -20,15,159,59,53,46,250,22,209,20,15,159,8,30,54,46,250,22,62,20,15, -159,8,33,55,46,20,15,159,8,33,56,46,252,22,2,89,162,33,33,51,9, -223,38,250,22,209,20,15,159,35,57,46,251,22,60,20,15,159,39,58,46,250, -22,209,20,15,159,42,59,46,248,22,60,250,22,209,20,15,159,46,8,28,46, -249,22,60,20,15,159,48,8,29,46,248,22,52,23,18,20,15,159,46,8,30, -46,20,15,159,42,8,31,46,250,22,209,20,15,159,42,8,32,46,250,22,60, -20,15,159,45,8,33,46,248,22,52,23,15,248,22,87,23,15,20,15,159,42, -8,34,46,250,22,209,20,15,159,42,8,35,46,250,22,62,20,15,159,45,8, -36,46,248,22,87,23,15,20,15,159,45,8,37,46,20,15,159,42,8,38,46, -20,15,159,35,8,39,46,248,22,90,23,37,248,22,90,23,37,248,22,52,23, -37,248,22,52,23,37,20,15,159,8,30,8,40,46,20,15,159,57,8,41,46, -20,15,159,53,8,42,46,250,22,209,20,15,159,53,8,43,46,251,22,62,20, -15,159,57,8,44,46,20,15,159,57,8,45,46,250,22,209,20,15,159,8,28, -8,46,46,251,22,62,20,15,159,8,32,8,47,46,20,15,159,8,32,8,48, -46,248,22,78,23,31,248,22,87,23,31,20,15,159,8,28,8,49,46,20,15, -159,57,8,50,46,20,15,159,53,8,51,46,20,15,159,47,8,52,46,20,15, -159,41,8,53,46,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9, -223,3,248,22,252,184,2,208,248,80,158,43,45,20,15,159,43,8,54,46,250, -22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,197,32,20, -98,158,16,14,2,65,2,68,2,70,2,72,2,76,2,78,2,80,2,122,2, -74,2,184,2,186,2,252,67,1,2,125,2,188,16,55,18,98,2,82,8,192, -36,35,34,16,4,8,191,11,2,236,3,1,7,101,110,118,51,56,57,55,252, -126,1,18,16,2,95,2,91,8,193,93,8,252,250,9,95,9,8,252,250,9, -2,92,18,100,2,93,8,196,36,35,34,8,191,16,8,8,195,11,3,1,4, -103,53,49,55,252,127,1,3,1,4,103,53,49,56,252,128,1,3,1,4,103, -53,49,57,252,129,1,3,1,7,101,110,118,51,57,48,52,252,130,1,2,252, -130,1,2,252,130,1,16,8,8,194,11,2,98,2,252,104,1,2,252,25,1, -3,1,7,101,110,118,51,57,48,53,252,131,1,2,252,131,1,2,252,131,1, -18,158,2,101,8,196,18,158,2,116,8,196,18,158,9,8,196,18,158,2,101, -8,196,18,100,2,82,8,199,36,35,34,8,191,16,12,8,198,11,3,1,4, -103,53,49,50,252,132,1,3,1,4,103,53,49,51,252,133,1,3,1,4,103, -53,49,52,252,134,1,3,1,4,103,53,49,53,252,135,1,3,1,4,103,53, -49,54,252,136,1,3,1,7,101,110,118,51,57,50,49,252,137,1,2,252,137, -1,2,252,137,1,2,252,137,1,2,252,137,1,16,12,8,197,11,2,98,2, -252,124,1,2,250,2,252,104,1,2,252,25,1,3,1,7,101,110,118,51,57, -50,50,252,138,1,2,252,138,1,2,252,138,1,2,252,138,1,2,252,138,1, -18,16,2,95,2,91,8,200,93,8,252,253,9,95,9,8,252,253,9,2,92, -18,158,2,93,8,199,18,16,2,95,2,91,8,201,93,8,252,0,10,95,9, -8,252,0,10,2,92,18,16,2,99,2,113,8,206,93,8,252,0,10,16,6, -8,205,11,2,140,2,141,3,1,7,101,110,118,51,57,51,56,252,139,1,2, -252,139,1,16,4,8,204,11,2,151,3,1,7,101,110,118,51,57,51,57,252, -140,1,16,4,8,203,11,2,153,3,1,7,101,110,118,51,57,52,48,252,141, -1,16,4,8,202,11,2,155,3,1,7,101,110,118,51,57,52,50,252,142,1, -95,9,8,252,0,10,2,92,18,102,2,93,8,209,36,35,34,8,191,8,198, -8,197,16,4,8,208,11,3,1,4,103,53,50,50,252,143,1,3,1,7,101, -110,118,51,57,51,52,252,144,1,16,4,8,207,11,2,252,122,1,3,1,7, -101,110,118,51,57,51,53,252,145,1,18,158,2,101,8,209,18,158,2,116,8, -209,18,158,2,101,8,209,18,158,2,101,8,209,18,158,2,101,8,209,18,158, -2,116,8,209,18,158,2,101,8,209,18,158,2,101,8,209,18,158,2,252,123, -1,8,209,18,158,2,101,8,209,18,158,2,230,8,209,18,158,9,8,209,18, +90,197,27,248,22,89,198,27,249,22,209,20,15,159,44,39,44,28,203,20,15, +159,44,40,44,20,15,159,44,41,44,249,80,158,44,39,205,27,252,22,61,202, +201,204,203,200,27,20,15,159,46,42,44,91,159,33,11,90,161,33,32,11,83, +160,38,32,33,11,247,248,22,8,89,162,32,33,40,9,226,16,2,3,1,250, +22,31,89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,184, +2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32, +36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249,80,158, +35,43,21,95,2,116,94,94,61,108,252,20,1,95,64,108,105,115,116,252,21, +1,95,64,99,111,110,115,252,22,1,64,112,114,101,100,252,23,1,67,104,97, +110,100,108,101,114,252,24,1,2,113,94,64,98,111,100,121,252,25,1,97,2, +230,9,2,234,2,235,2,113,95,2,116,93,94,63,98,112,122,252,26,1,95, +2,232,11,2,47,96,2,231,2,47,94,2,252,16,1,11,93,94,67,99,97, +108,108,47,101,99,252,27,1,95,2,230,93,2,99,96,2,231,2,47,2,252, +26,1,95,2,53,93,94,1,25,99,117,114,114,101,110,116,45,101,120,99,101, +112,116,105,111,110,45,104,97,110,100,108,101,114,252,28,1,95,2,230,93,61, +101,252,29,1,94,2,99,95,2,230,9,96,2,116,64,108,111,111,112,252,30, +1,93,94,2,252,20,1,2,252,20,1,96,2,132,94,94,65,110,117,108,108, +63,252,31,1,2,252,20,1,94,65,114,97,105,115,101,252,32,1,2,252,29, +1,94,94,94,64,99,97,97,114,252,33,1,2,252,20,1,2,252,29,1,63, +117,113,49,252,34,1,94,2,143,94,2,252,30,1,94,63,99,100,114,252,35, +1,2,252,20,1,95,76,99,97,108,108,45,119,105,116,104,45,118,97,108,117, +101,115,252,36,1,2,252,25,1,95,2,230,64,97,114,103,115,252,37,1,95, +2,230,9,95,65,97,112,112,108,121,252,38,1,66,118,97,108,117,101,115,252, +39,1,2,252,37,1,20,15,159,35,43,44,89,162,32,32,8,100,9,225,6, +5,4,27,250,22,209,20,15,159,38,44,44,250,22,209,20,15,159,41,45,44, +250,22,60,20,15,159,44,46,44,250,22,209,20,15,159,47,47,44,249,22,60, +250,22,209,20,15,159,52,48,44,249,22,60,20,15,159,54,49,44,250,22,209, +20,15,159,57,50,44,249,22,56,20,15,159,59,51,44,250,22,2,89,162,33, +33,41,9,223,30,250,22,209,20,15,159,35,52,44,250,22,60,20,15,159,38, +53,44,248,22,52,200,248,22,78,200,20,15,159,35,54,44,248,22,87,23,29, +248,22,90,23,29,20,15,159,57,55,44,20,15,159,52,56,44,250,22,209,20, +15,159,52,57,44,249,22,60,20,15,159,54,58,44,250,22,209,20,15,159,57, +59,44,251,22,62,20,15,159,8,29,8,28,44,20,15,159,8,29,8,29,44, +248,22,52,23,28,248,22,78,23,28,20,15,159,57,8,30,44,20,15,159,52, +8,31,44,20,15,159,47,8,32,44,250,22,209,20,15,159,47,8,33,44,250, +22,60,20,15,159,50,8,34,44,20,15,159,50,8,35,44,250,22,209,20,15, +159,53,8,36,44,251,22,60,20,15,159,57,8,37,44,20,15,159,57,8,38, +44,20,15,159,57,8,39,44,250,22,209,20,15,159,8,28,8,40,44,248,22, +60,250,22,209,20,15,159,8,32,8,41,44,249,22,60,20,15,159,8,34,8, +42,44,250,22,209,20,15,159,8,37,8,43,44,250,22,60,20,15,159,8,40, +8,44,44,20,15,159,8,40,8,45,44,250,22,209,20,15,159,8,43,8,46, +44,251,22,60,20,15,159,8,47,8,47,44,20,15,159,8,47,8,48,44,20, +15,159,8,47,8,49,44,250,22,209,20,15,159,8,50,8,50,44,250,22,62, +20,15,159,8,53,8,51,44,250,22,209,20,15,159,8,56,8,52,44,248,22, +60,250,22,209,20,15,159,8,60,8,53,44,249,22,60,20,15,159,8,62,8, +54,44,250,22,209,20,15,159,8,65,8,55,44,250,22,60,20,15,159,8,68, +8,56,44,20,15,159,8,68,8,57,44,250,22,209,20,15,159,8,71,8,58, +44,249,22,60,20,15,159,8,73,8,59,44,250,22,209,20,15,159,8,76,8, +60,44,250,22,60,20,15,159,8,79,8,61,44,20,15,159,8,79,8,62,44, +250,22,209,20,15,159,8,82,8,63,44,251,22,60,20,15,159,8,86,8,64, +44,20,15,159,8,86,8,65,44,20,15,159,8,86,8,66,44,250,22,209,20, +15,159,8,89,8,67,44,251,22,62,20,15,159,8,93,8,68,44,20,15,159, +8,93,8,69,44,250,22,209,20,15,159,8,96,8,70,44,249,22,60,20,15, +159,8,98,8,71,44,248,22,89,23,97,20,15,159,8,96,8,72,44,20,15, +159,8,93,8,73,44,20,15,159,8,89,8,74,44,20,15,159,8,82,8,75, +44,20,15,159,8,76,8,76,44,20,15,159,8,71,8,77,44,20,15,159,8, +65,8,78,44,20,15,159,8,60,8,79,44,20,15,159,8,56,8,80,44,20, +15,159,8,53,8,81,44,20,15,159,8,50,8,82,44,20,15,159,8,43,8, +83,44,20,15,159,8,37,8,84,44,20,15,159,8,32,8,85,44,20,15,159, +8,28,8,86,44,20,15,159,53,8,87,44,20,15,159,47,8,88,44,20,15, +159,41,8,89,44,197,89,162,32,32,33,9,223,0,192,89,162,32,32,34,9, +223,3,248,22,252,184,2,208,250,22,252,39,2,11,6,10,10,98,97,100,32, +115,121,110,116,97,120,197,249,22,7,248,195,10,248,195,11,37,20,98,158,16, +12,2,65,2,68,2,70,2,72,2,76,2,78,2,80,2,122,2,74,2,184, +2,186,2,125,16,90,18,99,2,82,8,124,36,35,34,16,4,8,123,11,74, +100,105,115,97,98,108,101,45,98,114,101,97,107,63,252,40,1,3,1,7,101, +110,118,51,55,51,49,252,41,1,16,4,8,122,11,2,236,3,1,7,101,110, +118,51,55,51,50,252,42,1,18,16,2,95,2,91,8,125,93,8,252,168,9, +95,9,8,252,168,9,2,92,18,101,2,93,8,128,36,35,34,8,123,8,122, +16,8,8,127,11,3,1,4,103,52,56,54,252,43,1,3,1,4,103,52,56, +55,252,44,1,3,1,4,103,52,56,56,252,45,1,3,1,7,101,110,118,51, +55,51,57,252,46,1,2,252,46,1,2,252,46,1,16,8,8,126,11,2,98, +2,234,2,235,3,1,7,101,110,118,51,55,52,48,252,47,1,2,252,47,1, +2,252,47,1,18,158,2,101,8,128,18,158,2,116,8,128,18,158,9,8,128, +18,158,2,101,8,128,18,101,2,82,8,131,36,35,34,8,123,8,122,16,12, +8,130,11,3,1,4,103,52,56,49,252,48,1,3,1,4,103,52,56,50,252, +49,1,3,1,4,103,52,56,51,252,50,1,3,1,4,103,52,56,52,252,51, +1,3,1,4,103,52,56,53,252,52,1,3,1,7,101,110,118,51,55,53,54, +252,53,1,2,252,53,1,2,252,53,1,2,252,53,1,2,252,53,1,16,12, +8,129,11,2,98,2,252,23,1,2,252,24,1,2,234,2,235,3,1,7,101, +110,118,51,55,53,55,252,54,1,2,252,54,1,2,252,54,1,2,252,54,1, +2,252,54,1,18,158,95,16,2,158,66,98,101,103,105,110,48,252,55,1,8, +131,9,16,2,158,94,16,2,158,94,16,2,158,64,99,100,97,114,252,56,1, +8,131,9,16,2,158,2,252,20,1,8,131,9,8,131,9,16,2,158,2,252, +29,1,8,131,9,8,131,9,16,2,158,96,16,2,158,2,231,8,131,9,16, +2,158,2,47,8,131,9,16,2,158,2,252,26,1,8,131,9,16,2,158,93, +16,2,158,2,51,8,131,9,8,131,9,8,131,9,8,131,18,158,96,16,2, +158,2,231,8,131,9,16,2,158,2,47,8,131,9,16,2,158,2,252,26,1, +8,131,9,16,2,158,95,16,2,158,2,0,8,131,9,16,2,158,93,16,2, +158,2,51,8,131,9,8,131,9,16,2,158,94,16,2,158,94,16,2,158,2, +252,56,1,8,131,9,16,2,158,2,252,20,1,8,131,9,8,131,9,16,2, +158,2,252,29,1,8,131,9,8,131,9,8,131,9,8,131,18,16,2,95,2, +91,8,132,93,8,252,177,9,95,9,8,252,177,9,2,92,18,16,2,99,2, +113,8,137,93,8,252,177,9,16,6,8,136,11,2,140,2,141,3,1,7,101, +110,118,51,55,55,53,252,57,1,2,252,57,1,16,4,8,135,11,2,151,3, +1,7,101,110,118,51,55,55,54,252,58,1,16,4,8,134,11,2,153,3,1, +7,101,110,118,51,55,55,55,252,59,1,16,4,8,133,11,2,155,3,1,7, +101,110,118,51,55,55,57,252,60,1,95,9,8,252,177,9,2,92,18,158,2, +93,8,131,18,158,2,101,8,131,18,158,2,116,8,131,18,158,2,101,8,131, +18,158,2,101,8,131,18,158,2,252,20,1,8,131,18,158,2,101,8,131,18, +158,2,252,21,1,8,131,18,158,2,101,8,131,18,158,2,252,22,1,8,131, +18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2, +101,8,131,18,158,2,252,25,1,8,131,18,158,2,101,8,131,18,158,2,230, +8,131,18,158,9,8,131,18,158,2,101,8,131,18,158,2,101,8,131,18,158, +2,101,8,131,18,158,2,101,8,131,18,158,2,116,8,131,18,158,93,16,2, +158,94,16,2,158,2,252,26,1,8,131,9,16,2,158,95,16,2,158,2,232, +8,131,9,16,2,158,11,8,131,9,16,2,158,2,47,8,131,9,8,131,9, +8,131,9,8,131,18,158,2,101,8,131,18,158,2,231,8,131,18,158,2,47, +8,131,18,158,94,16,2,158,2,252,16,1,8,131,9,16,2,158,11,8,131, +9,8,131,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,252,27,1, +8,131,18,158,2,101,8,131,18,158,2,230,8,131,18,158,93,16,2,158,2, +99,8,131,9,8,131,18,158,2,101,8,131,18,158,2,231,8,131,18,158,2, +47,8,131,18,158,2,252,26,1,8,131,18,158,2,101,8,131,18,158,2,53, +8,131,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,252,28,1,8, +131,18,158,2,101,8,131,18,158,2,230,8,131,18,158,93,16,2,158,2,252, +29,1,8,131,9,8,131,18,158,2,101,8,131,18,158,2,99,8,131,18,158, +2,101,8,131,18,158,2,230,8,131,18,158,9,8,131,18,158,2,101,8,131, +18,158,2,116,8,131,18,158,2,252,30,1,8,131,18,158,93,16,2,158,94, +16,2,158,2,252,20,1,8,131,9,16,2,158,2,252,20,1,8,131,9,8, +131,9,8,131,18,158,2,101,8,131,18,158,2,132,8,131,18,158,94,16,2, +158,94,16,2,158,2,252,31,1,8,131,9,16,2,158,2,252,20,1,8,131, +9,8,131,9,16,2,158,94,16,2,158,2,252,32,1,8,131,9,16,2,158, +2,252,29,1,8,131,9,8,131,9,8,131,18,158,2,101,8,131,18,158,94, +16,2,158,94,16,2,158,2,252,33,1,8,131,9,16,2,158,2,252,20,1, +8,131,9,8,131,9,16,2,158,2,252,29,1,8,131,9,8,131,18,158,2, +101,8,131,18,16,2,105,93,16,2,158,94,16,2,158,2,143,8,131,9,16, +2,158,94,16,2,158,2,252,30,1,8,131,9,16,2,158,94,16,2,158,2, +252,35,1,8,131,9,16,2,158,2,252,20,1,8,131,9,8,131,9,8,131, +9,8,131,9,8,141,8,28,59,58,57,56,55,13,16,3,33,2,134,2,92, +93,8,252,177,9,16,6,8,140,11,2,140,2,141,2,252,57,1,2,252,57, +1,16,4,8,139,11,2,151,2,252,58,1,16,4,8,138,11,2,153,2,252, +59,1,95,9,8,252,177,9,2,92,18,158,2,101,8,131,18,158,2,101,8, +131,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131,18,158, +2,101,8,131,18,158,2,101,8,131,18,16,2,158,93,16,2,158,95,16,2, +158,2,252,36,1,8,131,9,16,2,158,2,252,25,1,8,131,9,16,2,158, +95,16,2,158,2,230,8,131,9,16,2,158,2,252,37,1,8,131,9,16,2, +158,95,16,2,158,2,230,8,131,9,16,2,158,9,8,131,9,16,2,158,95, +16,2,158,2,252,38,1,8,131,9,16,2,158,2,252,39,1,8,131,9,16, +2,158,2,252,37,1,8,131,9,8,131,9,8,131,9,8,131,9,8,131,9, +8,141,95,9,8,252,177,9,2,92,18,158,2,101,8,131,18,158,2,101,8, +131,18,158,2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131,18,158, +2,101,8,131,18,158,2,101,8,131,18,158,2,101,8,131,11,16,5,93,2, +61,89,162,32,33,57,9,223,0,27,249,22,209,20,15,159,35,32,46,196,27, +28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248,80, +158,38,35,197,28,248,80,158,38,32,193,28,248,80,158,38,36,248,80,158,39, +34,194,27,248,80,158,39,35,194,28,248,80,158,39,32,193,249,80,158,40,37, +248,80,158,41,34,195,248,80,158,41,36,248,80,158,42,35,196,11,11,11,11, +28,192,27,248,22,52,194,27,248,22,53,195,27,20,15,159,37,33,46,250,22, +209,20,15,159,40,34,46,250,22,209,20,15,159,43,35,46,250,22,62,20,15, +159,46,36,46,250,22,209,20,15,159,49,37,46,248,22,60,250,22,209,20,15, +159,53,38,46,249,22,60,20,15,159,55,39,46,23,19,20,15,159,53,40,46, +20,15,159,49,41,46,20,15,159,46,42,46,20,15,159,43,43,46,195,27,89, +162,32,32,51,2,119,225,3,4,2,27,89,162,32,32,36,2,119,223,1,250, +22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,195,27,28, +248,80,158,37,32,195,249,80,158,38,33,248,80,158,39,34,197,27,248,80,158, +40,35,198,28,248,80,158,40,32,193,249,80,158,41,37,27,248,80,158,43,34, +196,28,248,80,158,43,38,193,248,22,59,248,80,158,44,39,194,11,27,248,80, +158,43,35,196,28,248,80,158,43,32,193,249,80,158,44,37,248,80,158,45,34, +195,248,80,158,45,36,248,80,158,46,35,196,11,11,11,28,192,27,248,22,52, +194,27,248,22,78,195,27,248,22,80,196,28,27,248,80,158,41,39,27,20,15, +159,42,44,46,250,22,209,20,15,159,45,45,46,199,195,87,94,249,22,3,89, +162,32,33,39,9,224,10,9,28,248,80,158,34,40,195,12,251,22,252,39,2, +11,6,17,17,110,111,116,32,97,110,32,105,100,101,110,116,105,102,105,101,114, +196,198,194,27,248,80,158,42,41,194,28,192,251,22,252,39,2,11,6,20,20, +100,117,112,108,105,99,97,116,101,32,105,100,101,110,116,105,102,105,101,114,204, +196,12,27,249,22,209,20,15,159,42,46,46,248,80,158,43,42,27,20,15,159, +44,47,46,250,22,209,20,15,159,47,48,46,201,195,27,28,248,80,158,42,38, +194,248,80,158,42,39,194,11,28,192,249,80,158,43,43,202,27,250,22,61,198, +200,201,27,20,15,159,45,49,46,91,159,33,11,90,161,33,32,11,83,160,38, +32,33,11,247,248,22,8,89,162,32,33,40,9,226,15,2,3,1,250,22,31, +89,162,32,32,36,9,225,6,3,7,90,161,33,33,10,247,22,252,184,2,248, +22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32,36,9, +224,2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249,80,158,35,44, +21,96,70,108,101,116,45,118,97,108,117,101,115,252,61,1,93,94,94,64,116, +101,109,112,252,62,1,2,113,2,235,95,64,115,101,116,33,252,63,1,62,105, +100,252,64,1,2,252,62,1,2,113,20,15,159,35,50,46,89,162,32,32,56, +9,225,6,5,4,27,250,22,209,20,15,159,38,51,46,250,22,209,20,15,159, +41,52,46,250,22,62,20,15,159,44,53,46,250,22,209,20,15,159,47,54,46, +248,22,60,250,22,209,20,15,159,51,55,46,249,22,60,248,22,52,23,20,248, +22,78,23,20,20,15,159,51,56,46,20,15,159,47,57,46,250,22,2,89,162, +33,33,41,9,223,15,250,22,209,20,15,159,35,58,46,250,22,60,20,15,159, +38,59,46,248,22,52,200,248,22,78,200,20,15,159,35,8,28,46,248,22,80, +206,248,22,52,206,20,15,159,41,8,29,46,197,89,162,32,32,33,9,223,0, +192,89,162,32,32,34,9,223,3,248,22,252,184,2,208,248,80,158,42,45,20, +15,159,42,8,30,46,247,196,247,193,27,28,248,80,158,37,32,196,249,80,158, +38,33,248,80,158,39,34,198,27,248,80,158,40,35,199,28,248,80,158,40,32, +193,249,80,158,41,37,27,248,80,158,43,34,196,28,248,80,158,43,32,193,249, +80,158,44,33,248,80,158,45,34,195,248,80,158,45,36,248,80,158,46,35,196, +11,27,248,80,158,43,35,196,28,248,80,158,43,32,193,249,80,158,44,37,248, +80,158,45,34,195,248,80,158,45,36,248,80,158,46,35,196,11,11,11,28,192, +27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,28,248,80,158,40,40, +194,27,249,22,61,196,195,27,20,15,159,41,8,31,46,250,22,209,20,15,159, +44,8,32,46,250,22,209,20,15,159,47,8,33,46,250,22,60,20,15,159,50, +8,34,46,248,22,52,203,248,22,53,203,20,15,159,47,8,35,46,195,247,196, +247,193,32,20,98,158,16,14,2,65,2,68,2,70,2,72,2,76,2,74,2, +78,2,80,2,120,30,252,65,1,2,88,1,26,99,104,101,99,107,45,100,117, +112,108,105,99,97,116,101,45,105,100,101,110,116,105,102,105,101,114,252,66,1, +0,30,252,67,1,2,189,1,20,103,101,110,101,114,97,116,101,45,116,101,109, +112,111,114,97,114,105,101,115,252,68,1,0,2,122,2,125,2,188,16,36,18, +98,2,82,8,143,36,35,34,16,4,8,142,11,2,236,3,1,7,101,110,118, +51,55,56,56,252,69,1,18,16,2,95,2,91,8,144,93,8,252,199,9,95, +9,8,252,199,9,2,92,18,100,2,93,8,147,36,35,34,8,142,16,6,8, +146,11,3,1,4,103,52,57,56,252,70,1,3,1,4,103,52,57,57,252,71, +1,3,1,7,101,110,118,51,55,57,52,252,72,1,2,252,72,1,16,6,8, +145,11,2,98,2,235,3,1,7,101,110,118,51,55,57,53,252,73,1,2,252, +73,1,18,158,2,101,8,147,18,158,2,252,61,1,8,147,18,158,2,101,8, +147,18,158,2,101,8,147,18,158,9,8,147,18,158,2,101,8,147,18,158,2, +101,8,147,18,16,2,103,93,16,2,158,93,16,2,158,64,118,111,105,100,252, +74,1,8,147,9,8,147,9,8,149,8,28,59,58,57,56,55,13,16,3,33, +2,134,2,92,93,8,252,199,9,16,6,8,148,11,2,140,2,141,3,1,7, +101,110,118,51,55,57,57,252,75,1,2,252,75,1,95,9,8,252,199,9,2, +92,18,158,2,101,8,147,18,16,2,95,2,91,8,150,93,8,252,200,9,95, +9,8,252,200,9,2,92,18,100,2,93,8,153,36,35,34,8,142,16,8,8, +152,11,3,1,4,103,52,57,50,252,76,1,3,1,4,103,52,57,51,252,77, +1,3,1,4,103,52,57,52,252,78,1,3,1,7,101,110,118,51,56,48,57, +252,79,1,2,252,79,1,2,252,79,1,16,8,8,151,11,2,98,2,252,64, +1,2,235,3,1,7,101,110,118,51,56,49,48,252,80,1,2,252,80,1,2, +252,80,1,18,158,2,82,8,153,18,16,2,95,2,91,8,154,93,8,252,204, +9,95,9,8,252,204,9,2,92,18,158,2,93,8,153,18,16,2,95,2,91, +8,155,93,8,252,207,9,95,9,8,252,207,9,2,92,18,16,2,99,2,113, +8,160,93,8,252,207,9,16,6,8,159,11,2,140,2,141,3,1,7,101,110, +118,51,56,50,55,252,81,1,2,252,81,1,16,4,8,158,11,2,151,3,1, +7,101,110,118,51,56,50,56,252,82,1,16,4,8,157,11,2,153,3,1,7, +101,110,118,51,56,50,57,252,83,1,16,4,8,156,11,2,155,3,1,7,101, +110,118,51,56,51,49,252,84,1,95,9,8,252,207,9,2,92,18,102,2,93, +8,165,36,35,34,8,142,16,8,8,164,11,2,252,76,1,2,252,77,1,2, +252,78,1,2,252,79,1,2,252,79,1,2,252,79,1,16,8,8,163,11,2, +98,2,252,64,1,2,235,2,252,80,1,2,252,80,1,2,252,80,1,16,4, +8,162,11,3,1,4,103,53,48,50,252,85,1,3,1,7,101,110,118,51,56, +50,51,252,86,1,16,4,8,161,11,2,252,62,1,3,1,7,101,110,118,51, +56,50,52,252,87,1,18,158,2,101,8,165,18,158,2,252,61,1,8,165,18, +158,2,101,8,165,18,158,2,101,8,165,18,158,2,101,8,165,18,158,2,101, +8,165,18,158,2,101,8,165,18,158,2,252,63,1,8,165,18,158,2,101,8, +165,18,158,2,101,8,165,18,16,2,158,94,16,2,98,2,252,62,1,8,169, +93,8,252,203,9,16,4,8,168,11,3,1,8,119,115,116,109,112,53,48,48, +252,88,1,3,1,7,101,110,118,51,56,49,56,252,89,1,16,4,8,167,11, +3,1,4,103,53,48,49,252,90,1,3,1,7,101,110,118,51,56,52,48,252, +91,1,16,4,8,166,11,2,222,3,1,7,101,110,118,51,56,52,49,252,92, +1,9,16,2,158,2,113,8,169,9,8,169,95,9,8,252,203,9,2,189,18, +16,2,95,2,91,8,170,93,8,252,210,9,95,9,8,252,210,9,2,92,18, +100,2,93,8,173,36,35,34,8,142,16,8,8,172,11,3,1,4,103,52,57, +53,252,93,1,3,1,4,103,52,57,54,252,94,1,3,1,4,103,52,57,55, +252,95,1,3,1,7,101,110,118,51,56,52,56,252,96,1,2,252,96,1,2, +252,96,1,16,8,8,171,11,2,98,2,252,64,1,2,235,3,1,7,101,110, +118,51,56,52,57,252,97,1,2,252,97,1,2,252,97,1,18,158,2,101,8, +173,18,158,2,252,63,1,8,173,18,158,2,101,8,173,11,16,5,93,2,58, +89,162,32,33,8,32,9,223,0,27,249,22,209,20,15,159,35,32,39,196,27, +28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248,80, +158,38,35,197,28,248,80,158,38,32,193,249,80,158,39,33,248,80,158,40,34, +195,27,248,80,158,41,35,196,28,248,80,158,41,32,193,249,80,158,42,33,248, +80,158,43,34,195,27,248,80,158,44,35,196,28,248,80,158,44,36,193,248,80, +158,44,37,193,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27, +248,22,87,196,27,248,22,88,197,249,80,158,40,38,201,27,250,22,61,200,199, +198,27,20,15,159,42,33,39,250,22,209,20,15,159,45,34,39,250,22,209,20, +15,159,48,35,39,249,22,60,20,15,159,50,36,39,250,22,209,20,15,159,53, +37,39,251,22,62,20,15,159,57,38,39,250,22,209,20,15,159,8,28,39,39, +248,22,60,248,22,52,23,21,20,15,159,8,28,40,39,248,22,78,23,17,248, +22,80,23,17,20,15,159,53,41,39,20,15,159,48,42,39,195,250,22,252,39, +2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,196,32,20,98,158,16, +7,2,65,2,68,2,70,2,72,2,78,2,80,2,122,16,11,18,98,2,82, +8,175,36,35,34,16,4,8,174,11,2,236,3,1,7,101,110,118,51,56,53, +53,252,98,1,18,16,2,95,2,91,8,176,93,8,252,220,9,95,9,8,252, +220,9,2,92,18,100,2,93,8,179,36,35,34,8,174,16,10,8,178,11,3, +1,4,103,53,48,51,252,99,1,3,1,4,103,53,48,52,252,100,1,3,1, +4,103,53,48,53,252,101,1,3,1,4,103,53,48,54,252,102,1,3,1,7, +101,110,118,51,56,54,50,252,103,1,2,252,103,1,2,252,103,1,2,252,103, +1,16,10,8,177,11,2,98,2,178,65,98,111,100,121,49,252,104,1,2,252, +25,1,3,1,7,101,110,118,51,56,54,51,252,105,1,2,252,105,1,2,252, +105,1,2,252,105,1,18,158,2,101,8,179,18,158,67,99,97,108,108,47,99, +99,252,106,1,8,179,18,158,2,101,8,179,18,158,2,230,8,179,18,158,2, +101,8,179,18,158,2,101,8,179,18,158,2,101,8,179,18,158,2,101,8,179, +11,16,5,93,2,62,89,162,32,33,55,9,223,0,27,249,22,209,20,15,159, +35,32,41,196,27,28,248,80,158,35,32,194,249,80,158,36,33,248,80,158,37, +34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193,249,80,158,39,33, +248,80,158,40,34,195,27,248,80,158,41,35,196,28,248,80,158,41,32,193,249, +80,158,42,36,27,248,80,158,44,34,196,28,248,80,158,44,37,193,248,22,59, +248,80,158,45,38,194,11,27,248,80,158,44,35,196,28,248,80,158,44,32,193, +249,80,158,45,33,248,80,158,46,34,195,27,248,80,158,47,35,196,28,248,80, +158,47,37,193,248,80,158,47,38,193,11,11,11,11,11,28,192,27,248,22,52, +194,27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,248,22,89,198, +249,80,158,41,39,202,27,251,22,61,200,199,201,202,27,20,15,159,43,33,41, +91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,8,89,162, +32,33,40,9,226,13,2,3,1,250,22,31,89,162,32,32,36,9,225,6,3, +7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162,32,33,36, +9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,181,2, +193,248,22,252,186,2,193,249,80,158,35,40,21,98,2,116,9,95,73,100,101, +102,105,110,101,45,115,116,114,117,99,116,252,107,1,64,98,97,115,101,252,108, +1,94,65,102,105,101,108,100,252,109,1,2,113,2,252,104,1,2,252,25,1, +2,113,20,15,159,35,34,41,89,162,32,32,54,9,225,6,5,4,27,250,22, +209,20,15,159,38,35,41,250,22,209,20,15,159,41,36,41,252,22,62,20,15, +159,46,37,41,20,15,159,46,38,41,250,22,209,20,15,159,49,39,41,250,22, +60,20,15,159,52,40,41,248,22,88,23,19,248,22,87,23,19,20,15,159,49, +41,41,248,22,52,205,248,22,78,205,20,15,159,41,42,41,197,89,162,32,32, +33,9,223,0,192,89,162,32,32,34,9,223,3,248,22,252,184,2,208,250,22, +252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,196,32,20,98, +158,16,9,2,65,2,68,2,70,2,72,2,74,2,78,2,80,2,122,2,125, +16,11,18,98,2,82,8,181,36,35,34,16,4,8,180,11,2,236,3,1,7, +101,110,118,51,56,55,49,252,110,1,18,16,2,95,2,91,8,182,93,8,252, +233,9,95,9,8,252,233,9,2,92,18,16,2,99,2,113,8,187,93,8,252, +233,9,16,6,8,186,11,2,140,2,141,3,1,7,101,110,118,51,56,56,56, +252,111,1,2,252,111,1,16,4,8,185,11,2,151,3,1,7,101,110,118,51, +56,56,57,252,112,1,16,4,8,184,11,2,153,3,1,7,101,110,118,51,56, +57,48,252,113,1,16,4,8,183,11,2,155,3,1,7,101,110,118,51,56,57, +50,252,114,1,95,9,8,252,233,9,2,92,18,100,2,93,8,190,36,35,34, +8,180,16,12,8,189,11,3,1,4,103,53,48,55,252,115,1,3,1,4,103, +53,48,56,252,116,1,3,1,4,103,53,48,57,252,117,1,3,1,4,103,53, +49,48,252,118,1,3,1,4,103,53,49,49,252,119,1,3,1,7,101,110,118, +51,56,56,48,252,120,1,2,252,120,1,2,252,120,1,2,252,120,1,2,252, +120,1,16,12,8,188,11,2,98,2,252,108,1,2,252,109,1,2,252,104,1, +2,252,25,1,3,1,7,101,110,118,51,56,56,49,252,121,1,2,252,121,1, +2,252,121,1,2,252,121,1,2,252,121,1,18,158,2,101,8,190,18,158,2, +116,8,190,18,158,9,8,190,18,158,2,101,8,190,18,158,2,252,107,1,8, +190,18,158,2,101,8,190,18,158,2,101,8,190,11,16,5,93,2,54,89,162, +32,33,54,9,223,0,27,249,22,209,20,15,159,35,32,46,196,27,28,248,80, +158,35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35, +197,28,248,80,158,38,32,193,28,248,80,158,38,36,248,80,158,39,34,194,27, +248,80,158,39,35,194,28,248,80,158,39,32,193,249,80,158,40,33,248,80,158, +41,34,195,27,248,80,158,42,35,196,28,248,80,158,42,37,193,248,80,158,42, +38,193,11,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, +22,80,196,249,80,158,39,39,200,27,249,22,61,197,198,27,20,15,159,41,33, +46,250,22,209,20,15,159,44,34,46,250,22,209,20,15,159,47,35,46,251,22, +62,20,15,159,51,36,46,20,15,159,51,37,46,248,22,53,204,248,22,52,204, +20,15,159,47,38,46,195,27,28,248,80,158,36,32,195,249,80,158,37,33,248, +80,158,38,34,197,27,248,80,158,39,35,198,28,248,80,158,39,32,193,249,80, +158,40,40,27,248,80,158,42,34,196,28,248,80,158,42,37,193,248,22,8,89, +162,32,33,39,9,224,10,1,27,249,22,2,89,162,32,33,45,9,224,4,5, +249,80,158,35,41,28,248,80,158,36,32,197,249,80,158,37,33,248,80,158,38, +34,199,27,248,80,158,39,35,200,28,248,80,158,39,32,193,249,80,158,40,33, +248,80,158,41,34,195,248,80,158,41,36,248,80,158,42,35,196,11,11,194,248, +80,158,37,38,196,28,248,22,57,193,21,94,9,9,248,80,158,35,42,193,11, +27,248,80,158,42,35,196,28,248,80,158,42,32,193,249,80,158,43,33,248,80, +158,44,34,195,27,248,80,158,45,35,196,28,248,80,158,45,37,193,248,80,158, +45,38,193,11,11,11,11,28,192,27,248,22,52,194,27,248,22,78,195,27,248, +22,87,196,27,248,22,90,197,27,248,22,89,198,27,249,22,209,20,15,159,43, +39,46,248,80,158,44,43,27,20,15,159,45,40,46,250,22,209,20,15,159,48, +41,46,203,195,27,28,248,80,158,43,37,194,248,80,158,43,38,194,11,28,192, +249,80,158,44,39,205,27,252,22,61,205,203,202,200,204,27,20,15,159,46,42, +46,91,159,33,11,90,161,33,32,11,83,160,38,32,33,11,247,248,22,8,89, +162,32,33,40,9,226,16,2,3,1,250,22,31,89,162,32,32,36,9,225,6, +3,7,90,161,33,33,10,247,22,252,184,2,248,22,252,184,2,89,162,32,33, +36,9,224,3,1,248,193,89,162,32,32,36,9,224,2,3,28,248,22,252,181, +2,193,248,22,252,186,2,193,249,80,158,35,44,21,95,2,116,94,94,63,116, +109,112,252,122,1,2,250,2,113,95,2,116,93,94,64,115,119,97,112,252,123, +1,96,2,230,9,96,2,116,93,94,2,202,2,252,122,1,95,2,252,63,1, +2,252,122,1,64,110,97,109,101,252,124,1,95,2,252,63,1,2,252,124,1, +2,202,2,113,96,72,100,121,110,97,109,105,99,45,119,105,110,100,252,125,1, +2,252,123,1,97,2,230,9,2,252,104,1,2,252,25,1,2,113,2,252,123, +1,20,15,159,35,43,46,89,162,32,32,8,40,9,225,6,5,4,27,250,22, +209,20,15,159,38,44,46,250,22,209,20,15,159,41,45,46,250,22,60,20,15, +159,44,46,46,250,22,2,89,162,33,33,41,9,223,15,250,22,209,20,15,159, +35,47,46,249,22,60,248,22,52,199,248,22,78,199,20,15,159,35,48,46,248, +22,90,206,248,22,89,206,250,22,209,20,15,159,47,49,46,250,22,60,20,15, +159,50,50,46,250,22,209,20,15,159,53,51,46,248,22,60,250,22,209,20,15, +159,57,52,46,249,22,60,20,15,159,59,53,46,250,22,209,20,15,159,8,30, +54,46,250,22,62,20,15,159,8,33,55,46,20,15,159,8,33,56,46,252,22, +2,89,162,33,33,51,9,223,38,250,22,209,20,15,159,35,57,46,251,22,60, +20,15,159,39,58,46,250,22,209,20,15,159,42,59,46,248,22,60,250,22,209, +20,15,159,46,8,28,46,249,22,60,20,15,159,48,8,29,46,248,22,52,23, +18,20,15,159,46,8,30,46,20,15,159,42,8,31,46,250,22,209,20,15,159, +42,8,32,46,250,22,60,20,15,159,45,8,33,46,248,22,52,23,15,248,22, +87,23,15,20,15,159,42,8,34,46,250,22,209,20,15,159,42,8,35,46,250, +22,62,20,15,159,45,8,36,46,248,22,87,23,15,20,15,159,45,8,37,46, +20,15,159,42,8,38,46,20,15,159,35,8,39,46,248,22,90,23,37,248,22, +90,23,37,248,22,52,23,37,248,22,52,23,37,20,15,159,8,30,8,40,46, +20,15,159,57,8,41,46,20,15,159,53,8,42,46,250,22,209,20,15,159,53, +8,43,46,251,22,62,20,15,159,57,8,44,46,20,15,159,57,8,45,46,250, +22,209,20,15,159,8,28,8,46,46,251,22,62,20,15,159,8,32,8,47,46, +20,15,159,8,32,8,48,46,248,22,78,23,31,248,22,87,23,31,20,15,159, +8,28,8,49,46,20,15,159,57,8,50,46,20,15,159,53,8,51,46,20,15, +159,47,8,52,46,20,15,159,41,8,53,46,197,89,162,32,32,33,9,223,0, +192,89,162,32,32,34,9,223,3,248,22,252,184,2,208,248,80,158,43,45,20, +15,159,43,8,54,46,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121, +110,116,97,120,197,32,20,98,158,16,14,2,65,2,68,2,70,2,72,2,76, +2,78,2,80,2,122,2,74,2,184,2,186,2,252,67,1,2,125,2,188,16, +55,18,98,2,82,8,192,36,35,34,16,4,8,191,11,2,236,3,1,7,101, +110,118,51,56,57,57,252,126,1,18,16,2,95,2,91,8,193,93,8,252,252, +9,95,9,8,252,252,9,2,92,18,100,2,93,8,196,36,35,34,8,191,16, +8,8,195,11,3,1,4,103,53,49,55,252,127,1,3,1,4,103,53,49,56, +252,128,1,3,1,4,103,53,49,57,252,129,1,3,1,7,101,110,118,51,57, +48,54,252,130,1,2,252,130,1,2,252,130,1,16,8,8,194,11,2,98,2, +252,104,1,2,252,25,1,3,1,7,101,110,118,51,57,48,55,252,131,1,2, +252,131,1,2,252,131,1,18,158,2,101,8,196,18,158,2,116,8,196,18,158, +9,8,196,18,158,2,101,8,196,18,100,2,82,8,199,36,35,34,8,191,16, +12,8,198,11,3,1,4,103,53,49,50,252,132,1,3,1,4,103,53,49,51, +252,133,1,3,1,4,103,53,49,52,252,134,1,3,1,4,103,53,49,53,252, +135,1,3,1,4,103,53,49,54,252,136,1,3,1,7,101,110,118,51,57,50, +51,252,137,1,2,252,137,1,2,252,137,1,2,252,137,1,2,252,137,1,16, +12,8,197,11,2,98,2,252,124,1,2,250,2,252,104,1,2,252,25,1,3, +1,7,101,110,118,51,57,50,52,252,138,1,2,252,138,1,2,252,138,1,2, +252,138,1,2,252,138,1,18,16,2,95,2,91,8,200,93,8,252,255,9,95, +9,8,252,255,9,2,92,18,158,2,93,8,199,18,16,2,95,2,91,8,201, +93,8,252,2,10,95,9,8,252,2,10,2,92,18,16,2,99,2,113,8,206, +93,8,252,2,10,16,6,8,205,11,2,140,2,141,3,1,7,101,110,118,51, +57,52,48,252,139,1,2,252,139,1,16,4,8,204,11,2,151,3,1,7,101, +110,118,51,57,52,49,252,140,1,16,4,8,203,11,2,153,3,1,7,101,110, +118,51,57,52,50,252,141,1,16,4,8,202,11,2,155,3,1,7,101,110,118, +51,57,52,52,252,142,1,95,9,8,252,2,10,2,92,18,102,2,93,8,209, +36,35,34,8,191,8,198,8,197,16,4,8,208,11,3,1,4,103,53,50,50, +252,143,1,3,1,7,101,110,118,51,57,51,54,252,144,1,16,4,8,207,11, +2,252,122,1,3,1,7,101,110,118,51,57,51,55,252,145,1,18,158,2,101, +8,209,18,158,2,116,8,209,18,158,2,101,8,209,18,158,2,101,8,209,18, 158,2,101,8,209,18,158,2,116,8,209,18,158,2,101,8,209,18,158,2,101, -8,209,18,158,2,202,8,209,18,158,2,101,8,209,18,158,2,101,8,209,18, -158,2,101,8,209,18,158,2,252,63,1,8,209,18,158,2,101,8,209,18,158, -2,101,8,209,18,158,2,252,63,1,8,209,18,16,2,106,93,16,2,158,2, -202,8,209,9,8,214,8,28,59,58,57,56,55,13,16,3,33,2,134,2,92, -93,8,252,0,10,16,6,8,213,11,2,140,2,141,2,252,139,1,2,252,139, -1,16,4,8,212,11,2,151,2,252,140,1,16,4,8,211,11,2,153,2,252, -141,1,16,4,8,210,11,64,118,97,108,115,252,146,1,3,1,7,101,110,118, -51,57,52,56,252,147,1,95,9,8,252,0,10,2,92,18,158,2,101,8,209, -18,158,2,101,8,209,18,158,2,101,8,209,18,158,2,101,8,209,18,158,2, -101,8,209,18,158,2,101,8,209,18,158,2,252,125,1,8,209,18,158,2,252, -123,1,8,209,18,158,2,101,8,209,18,158,2,230,8,209,18,158,9,8,209, -18,158,2,101,8,209,18,16,2,105,93,16,2,158,2,252,123,1,8,209,9, -8,215,8,28,59,58,57,56,55,13,16,3,33,2,134,2,92,93,8,252,0, -10,8,213,8,212,8,211,95,9,8,252,0,10,2,92,18,158,2,101,8,209, -18,158,2,101,8,209,18,158,2,101,8,209,18,16,2,158,94,16,2,98,2, -252,122,1,8,219,93,8,252,252,9,16,4,8,218,11,3,1,8,119,115,116, -109,112,53,50,48,252,148,1,3,1,7,101,110,118,51,57,50,57,252,149,1, -16,4,8,217,11,3,1,4,103,53,50,49,252,150,1,3,1,7,101,110,118, -51,57,53,51,252,151,1,16,4,8,216,11,2,222,3,1,7,101,110,118,51, -57,53,52,252,152,1,9,16,2,158,2,113,8,219,9,8,219,95,9,8,252, -252,9,2,189,11,16,5,93,2,55,89,162,32,33,8,43,9,223,0,27,249, -22,209,20,15,159,35,32,39,196,27,28,248,80,158,35,32,194,249,80,158,36, -33,248,80,158,37,34,196,27,248,80,158,38,35,197,28,248,80,158,38,32,193, -249,80,158,39,33,248,80,158,40,34,195,27,248,80,158,41,35,196,28,248,80, -158,41,36,193,248,80,158,41,37,193,11,11,11,28,192,27,248,22,52,194,27, -248,22,78,195,27,248,22,80,196,249,80,158,39,38,200,27,249,22,61,197,198, -27,20,15,159,41,33,39,250,22,209,20,15,159,44,34,39,250,22,209,20,15, -159,47,35,39,250,22,62,20,15,159,50,36,39,250,22,209,20,15,159,53,37, -39,248,22,60,250,22,209,20,15,159,57,38,39,249,22,60,20,15,159,59,39, -39,250,22,209,20,15,159,8,30,40,39,250,22,62,20,15,159,8,33,41,39, -250,22,209,20,15,159,8,36,42,39,251,22,62,20,15,159,8,40,43,39,20, -15,159,8,40,44,39,248,22,53,23,33,248,22,52,23,33,20,15,159,8,36, -45,39,20,15,159,8,33,46,39,20,15,159,8,30,47,39,20,15,159,57,48, -39,20,15,159,53,49,39,20,15,159,50,50,39,20,15,159,47,51,39,195,250, -22,252,39,2,11,6,10,10,98,97,100,32,115,121,110,116,97,120,196,32,20, -98,158,16,7,2,65,2,68,2,70,2,72,2,78,2,80,2,122,16,20,18, -98,2,82,8,221,36,35,34,16,4,8,220,11,2,236,3,1,7,101,110,118, -51,57,53,55,252,153,1,18,16,2,95,2,91,8,222,93,8,252,11,10,95, -9,8,252,11,10,2,92,18,100,2,93,8,225,36,35,34,8,220,16,8,8, -224,11,3,1,4,103,53,50,51,252,154,1,3,1,4,103,53,50,52,252,155, -1,3,1,4,103,53,50,53,252,156,1,3,1,7,101,110,118,51,57,54,51, -252,157,1,2,252,157,1,2,252,157,1,16,8,8,223,11,2,98,2,234,2, -235,3,1,7,101,110,118,51,57,54,52,252,158,1,2,252,158,1,2,252,158, -1,18,158,2,101,8,225,18,158,2,252,61,1,8,225,18,158,2,101,8,225, -18,158,2,101,8,225,18,158,96,16,2,158,2,112,8,225,9,16,2,158,63, -99,112,117,252,159,1,8,225,9,16,2,158,64,117,115,101,114,252,160,1,8, -225,9,16,2,158,62,103,99,252,161,1,8,225,9,8,225,18,158,2,101,8, -225,18,158,70,116,105,109,101,45,97,112,112,108,121,252,162,1,8,225,18,158, -2,101,8,225,18,158,2,230,8,225,18,158,9,8,225,18,158,2,101,8,225, -18,16,2,103,93,16,2,158,64,110,117,108,108,252,163,1,8,225,9,8,227, -8,28,59,58,57,56,55,13,16,3,33,2,134,2,92,93,8,252,11,10,16, -6,8,226,11,2,140,2,141,3,1,7,101,110,118,51,57,54,57,252,164,1, -2,252,164,1,95,9,8,252,11,10,2,92,18,158,2,101,8,225,18,158,2, -101,8,225,18,158,2,101,8,225,18,16,2,158,94,16,2,158,97,16,2,158, -66,112,114,105,110,116,102,252,165,1,8,225,9,16,2,158,6,40,40,99,112, -117,32,116,105,109,101,58,32,126,115,32,114,101,97,108,32,116,105,109,101,58, -32,126,115,32,103,99,32,116,105,109,101,58,32,126,115,126,110,8,225,9,16, -2,158,2,252,159,1,8,225,9,16,2,158,2,252,160,1,8,225,9,16,2, -158,2,252,161,1,8,225,9,8,225,9,16,2,158,95,16,2,158,2,252,38, -1,8,225,9,16,2,158,2,252,39,1,8,225,9,16,2,158,2,112,8,225, -9,8,225,9,8,227,95,9,8,252,11,10,2,92,18,158,2,101,8,225,11, -100,83,159,32,97,80,159,32,32,33,80,159,32,33,33,80,159,32,34,33,80, -159,32,35,33,80,159,32,36,33,27,247,22,252,113,2,87,94,28,192,28,248, -22,252,112,2,193,12,250,22,252,40,2,2,252,107,1,6,15,15,105,110,115, -112,101,99,116,111,114,32,111,114,32,35,102,195,12,91,159,37,11,90,161,37, -32,11,254,22,252,90,2,2,86,11,33,32,11,9,204,252,22,7,197,198,199, -250,22,252,92,2,203,32,61,112,252,166,1,250,22,252,93,2,204,32,2,252, -166,1,83,159,32,93,80,159,32,37,33,89,162,32,33,39,2,14,223,0,87, -94,28,248,80,159,33,34,34,194,12,250,22,252,40,2,2,14,6,7,7,112, -114,111,109,105,115,101,196,27,248,80,159,34,35,34,195,28,248,22,0,193,27, -249,22,6,195,22,59,87,94,28,248,22,0,248,80,159,36,35,34,197,249,80, -159,36,36,34,197,194,12,249,22,1,22,7,248,80,159,37,35,34,198,249,22, -1,22,7,194,83,159,32,93,80,159,32,38,33,89,162,32,32,36,2,16,223, -0,248,80,158,33,39,249,22,19,11,80,158,35,40,83,159,32,93,80,159,32, -41,33,89,162,32,34,40,2,23,223,0,87,95,28,248,22,252,222,2,194,12, -252,22,252,40,2,2,23,6,16,16,112,97,114,97,109,101,116,101,114,105,122, -97,116,105,111,110,32,198,199,28,28,248,22,0,195,249,22,34,196,32,11,12, -252,22,252,40,2,2,23,6,19,19,112,114,111,99,101,100,117,114,101,32,40, -97,114,105,116,121,32,48,41,33,198,199,20,14,159,80,158,32,40,193,247,194, -83,159,32,97,80,159,32,42,33,80,159,32,43,33,80,159,32,44,33,80,159, -32,45,33,80,159,32,46,33,252,22,252,90,2,2,85,11,33,32,11,83,159, -32,97,80,159,32,47,33,80,159,32,48,33,80,159,32,49,33,80,159,32,50, -33,80,159,32,51,33,27,247,22,252,113,2,87,94,28,192,28,248,22,252,9, -2,248,22,252,112,2,194,250,22,252,40,2,2,252,107,1,6,15,15,105,110, -115,112,101,99,116,111,114,32,111,114,32,35,102,195,12,12,91,159,37,11,90, -161,37,32,11,254,22,252,90,2,2,85,11,33,32,11,9,204,252,22,7,197, -198,199,250,22,252,92,2,203,32,64,99,101,108,108,252,167,1,250,22,252,93, -2,204,32,2,252,167,1,83,159,32,93,80,159,32,52,33,89,162,32,32,36, -2,45,223,0,248,80,159,33,43,34,249,22,19,11,80,158,35,53,83,159,32, -93,80,159,32,54,33,89,162,32,34,40,2,49,223,0,87,95,28,248,80,159, -33,44,34,194,12,252,22,252,40,2,2,49,6,22,22,98,114,101,97,107,32, -112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,32,198,199,28,28, -248,22,0,195,249,22,34,196,32,11,12,252,22,252,40,2,2,23,6,19,19, -112,114,111,99,101,100,117,114,101,32,40,97,114,105,116,121,32,48,41,33,198, -199,83,158,36,20,93,94,20,14,159,80,158,32,53,249,80,159,34,45,34,195, -32,87,94,247,80,158,32,55,247,194,247,80,158,32,55,96,68,35,37,107,101, -114,110,101,108,252,168,1,2,84,2,83,2,18,96,2,252,168,1,2,66,2, -88,2,87,0}; - EVAL_ONE_SIZED_STR((char *)expr, 22326); +8,209,18,158,2,252,123,1,8,209,18,158,2,101,8,209,18,158,2,230,8, +209,18,158,9,8,209,18,158,2,101,8,209,18,158,2,116,8,209,18,158,2, +101,8,209,18,158,2,101,8,209,18,158,2,202,8,209,18,158,2,101,8,209, +18,158,2,101,8,209,18,158,2,101,8,209,18,158,2,252,63,1,8,209,18, +158,2,101,8,209,18,158,2,101,8,209,18,158,2,252,63,1,8,209,18,16, +2,106,93,16,2,158,2,202,8,209,9,8,214,8,28,59,58,57,56,55,13, +16,3,33,2,134,2,92,93,8,252,2,10,16,6,8,213,11,2,140,2,141, +2,252,139,1,2,252,139,1,16,4,8,212,11,2,151,2,252,140,1,16,4, +8,211,11,2,153,2,252,141,1,16,4,8,210,11,64,118,97,108,115,252,146, +1,3,1,7,101,110,118,51,57,53,48,252,147,1,95,9,8,252,2,10,2, +92,18,158,2,101,8,209,18,158,2,101,8,209,18,158,2,101,8,209,18,158, +2,101,8,209,18,158,2,101,8,209,18,158,2,101,8,209,18,158,2,252,125, +1,8,209,18,158,2,252,123,1,8,209,18,158,2,101,8,209,18,158,2,230, +8,209,18,158,9,8,209,18,158,2,101,8,209,18,16,2,105,93,16,2,158, +2,252,123,1,8,209,9,8,215,8,28,59,58,57,56,55,13,16,3,33,2, +134,2,92,93,8,252,2,10,8,213,8,212,8,211,95,9,8,252,2,10,2, +92,18,158,2,101,8,209,18,158,2,101,8,209,18,158,2,101,8,209,18,16, +2,158,94,16,2,98,2,252,122,1,8,219,93,8,252,254,9,16,4,8,218, +11,3,1,8,119,115,116,109,112,53,50,48,252,148,1,3,1,7,101,110,118, +51,57,51,49,252,149,1,16,4,8,217,11,3,1,4,103,53,50,49,252,150, +1,3,1,7,101,110,118,51,57,53,53,252,151,1,16,4,8,216,11,2,222, +3,1,7,101,110,118,51,57,53,54,252,152,1,9,16,2,158,2,113,8,219, +9,8,219,95,9,8,252,254,9,2,189,11,16,5,93,2,52,89,162,32,33, +8,43,9,223,0,27,249,22,209,20,15,159,35,32,39,196,27,28,248,80,158, +35,32,194,249,80,158,36,33,248,80,158,37,34,196,27,248,80,158,38,35,197, +28,248,80,158,38,32,193,249,80,158,39,33,248,80,158,40,34,195,27,248,80, +158,41,35,196,28,248,80,158,41,36,193,248,80,158,41,37,193,11,11,11,28, +192,27,248,22,52,194,27,248,22,78,195,27,248,22,80,196,249,80,158,39,38, +200,27,249,22,61,197,198,27,20,15,159,41,33,39,250,22,209,20,15,159,44, +34,39,250,22,209,20,15,159,47,35,39,250,22,62,20,15,159,50,36,39,250, +22,209,20,15,159,53,37,39,248,22,60,250,22,209,20,15,159,57,38,39,249, +22,60,20,15,159,59,39,39,250,22,209,20,15,159,8,30,40,39,250,22,62, +20,15,159,8,33,41,39,250,22,209,20,15,159,8,36,42,39,251,22,62,20, +15,159,8,40,43,39,20,15,159,8,40,44,39,248,22,53,23,33,248,22,52, +23,33,20,15,159,8,36,45,39,20,15,159,8,33,46,39,20,15,159,8,30, +47,39,20,15,159,57,48,39,20,15,159,53,49,39,20,15,159,50,50,39,20, +15,159,47,51,39,195,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121, +110,116,97,120,196,32,20,98,158,16,7,2,65,2,68,2,70,2,72,2,78, +2,80,2,122,16,20,18,98,2,82,8,221,36,35,34,16,4,8,220,11,2, +236,3,1,7,101,110,118,51,57,53,57,252,153,1,18,16,2,95,2,91,8, +222,93,8,252,13,10,95,9,8,252,13,10,2,92,18,100,2,93,8,225,36, +35,34,8,220,16,8,8,224,11,3,1,4,103,53,50,51,252,154,1,3,1, +4,103,53,50,52,252,155,1,3,1,4,103,53,50,53,252,156,1,3,1,7, +101,110,118,51,57,54,53,252,157,1,2,252,157,1,2,252,157,1,16,8,8, +223,11,2,98,2,234,2,235,3,1,7,101,110,118,51,57,54,54,252,158,1, +2,252,158,1,2,252,158,1,18,158,2,101,8,225,18,158,2,252,61,1,8, +225,18,158,2,101,8,225,18,158,2,101,8,225,18,158,96,16,2,158,2,112, +8,225,9,16,2,158,63,99,112,117,252,159,1,8,225,9,16,2,158,64,117, +115,101,114,252,160,1,8,225,9,16,2,158,62,103,99,252,161,1,8,225,9, +8,225,18,158,2,101,8,225,18,158,70,116,105,109,101,45,97,112,112,108,121, +252,162,1,8,225,18,158,2,101,8,225,18,158,2,230,8,225,18,158,9,8, +225,18,158,2,101,8,225,18,16,2,103,93,16,2,158,64,110,117,108,108,252, +163,1,8,225,9,8,227,8,28,59,58,57,56,55,13,16,3,33,2,134,2, +92,93,8,252,13,10,16,6,8,226,11,2,140,2,141,3,1,7,101,110,118, +51,57,55,49,252,164,1,2,252,164,1,95,9,8,252,13,10,2,92,18,158, +2,101,8,225,18,158,2,101,8,225,18,158,2,101,8,225,18,16,2,158,94, +16,2,158,97,16,2,158,66,112,114,105,110,116,102,252,165,1,8,225,9,16, +2,158,6,40,40,99,112,117,32,116,105,109,101,58,32,126,115,32,114,101,97, +108,32,116,105,109,101,58,32,126,115,32,103,99,32,116,105,109,101,58,32,126, +115,126,110,8,225,9,16,2,158,2,252,159,1,8,225,9,16,2,158,2,252, +160,1,8,225,9,16,2,158,2,252,161,1,8,225,9,8,225,9,16,2,158, +95,16,2,158,2,252,38,1,8,225,9,16,2,158,2,252,39,1,8,225,9, +16,2,158,2,112,8,225,9,8,225,9,8,227,95,9,8,252,13,10,2,92, +18,158,2,101,8,225,11,100,83,159,32,97,80,159,32,32,33,80,159,32,33, +33,80,159,32,34,33,80,159,32,35,33,80,159,32,36,33,27,247,22,252,113, +2,87,94,28,192,28,248,22,252,112,2,193,12,250,22,252,40,2,2,252,107, +1,6,15,15,105,110,115,112,101,99,116,111,114,32,111,114,32,35,102,195,12, +91,159,37,11,90,161,37,32,11,254,22,252,90,2,2,86,11,33,32,11,9, +204,252,22,7,197,198,199,250,22,252,92,2,203,32,61,112,252,166,1,250,22, +252,93,2,204,32,2,252,166,1,83,159,32,93,80,159,32,37,33,89,162,32, +33,39,2,14,223,0,87,94,28,248,80,159,33,34,34,194,12,250,22,252,40, +2,2,14,6,7,7,112,114,111,109,105,115,101,196,27,248,80,159,34,35,34, +195,28,248,22,0,193,27,249,22,6,195,22,59,87,94,28,248,22,0,248,80, +159,36,35,34,197,249,80,159,36,36,34,197,194,12,249,22,1,22,7,248,80, +159,37,35,34,198,249,22,1,22,7,194,83,159,32,93,80,159,32,38,33,89, +162,32,32,36,2,16,223,0,248,80,158,33,39,249,22,19,11,80,158,35,40, +83,159,32,93,80,159,32,41,33,89,162,32,34,40,2,23,223,0,87,95,28, +248,22,252,222,2,194,12,252,22,252,40,2,2,23,6,16,16,112,97,114,97, +109,101,116,101,114,105,122,97,116,105,111,110,32,198,199,28,28,248,22,0,195, +249,22,34,196,32,11,12,252,22,252,40,2,2,23,6,19,19,112,114,111,99, +101,100,117,114,101,32,40,97,114,105,116,121,32,48,41,33,198,199,20,14,159, +80,158,32,40,193,247,194,83,159,32,97,80,159,32,42,33,80,159,32,43,33, +80,159,32,44,33,80,159,32,45,33,80,159,32,46,33,252,22,252,90,2,2, +85,11,33,32,11,83,159,32,97,80,159,32,47,33,80,159,32,48,33,80,159, +32,49,33,80,159,32,50,33,80,159,32,51,33,27,247,22,252,113,2,87,94, +28,192,28,248,22,252,9,2,248,22,252,112,2,194,250,22,252,40,2,2,252, +107,1,6,15,15,105,110,115,112,101,99,116,111,114,32,111,114,32,35,102,195, +12,12,91,159,37,11,90,161,37,32,11,254,22,252,90,2,2,85,11,33,32, +11,9,204,252,22,7,197,198,199,250,22,252,92,2,203,32,64,99,101,108,108, +252,167,1,250,22,252,93,2,204,32,2,252,167,1,83,159,32,93,80,159,32, +52,33,89,162,32,32,36,2,45,223,0,248,80,159,33,43,34,249,22,19,11, +80,158,35,53,83,159,32,93,80,159,32,54,33,89,162,32,34,40,2,49,223, +0,87,95,28,248,80,159,33,44,34,194,12,252,22,252,40,2,2,49,6,22, +22,98,114,101,97,107,32,112,97,114,97,109,101,116,101,114,105,122,97,116,105, +111,110,32,198,199,28,28,248,22,0,195,249,22,34,196,32,11,12,252,22,252, +40,2,2,23,6,19,19,112,114,111,99,101,100,117,114,101,32,40,97,114,105, +116,121,32,48,41,33,198,199,83,158,36,20,93,94,20,14,159,80,158,32,53, +249,80,159,34,45,34,195,32,87,94,247,80,158,32,55,247,194,247,80,158,32, +55,96,68,35,37,107,101,114,110,101,108,252,168,1,2,84,2,83,2,18,96, +2,252,168,1,2,66,2,88,2,87,0}; + EVAL_ONE_SIZED_STR((char *)expr, 22312); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,252,150,1,252,94,49,159,32,20,98,158,16, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,252,150,1,252,115,49,159,32,20,98,158,16, 1,20,24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,66,35,37, 109,105,115,99,1,29,2,11,11,10,10,10,44,80,158,32,32,20,98,158,16, 47,30,3,2,2,72,112,97,116,104,45,115,116,114,105,110,103,63,4,254,1, @@ -3373,27 +3372,27 @@ 193,248,80,158,41,37,193,11,11,11,28,192,27,248,22,52,194,27,248,22,78, 195,27,248,22,80,196,27,249,22,209,20,15,159,40,33,38,249,22,209,203,247, 22,48,27,249,22,209,20,15,159,41,34,38,249,22,209,204,247,22,48,27,249, -22,209,20,15,159,42,35,38,249,22,209,205,247,22,48,27,252,22,61,202,199, -201,198,200,27,20,15,159,42,36,38,250,22,209,20,15,159,45,37,38,250,22, +22,209,20,15,159,42,35,38,249,22,209,205,247,22,48,27,252,22,61,198,201, +199,202,200,27,20,15,159,42,36,38,250,22,209,20,15,159,45,37,38,250,22, 209,20,15,159,48,38,38,250,22,60,20,15,159,51,39,38,250,22,209,20,15, 159,54,40,38,248,22,60,250,22,209,20,15,159,58,41,38,249,22,56,248,22, 89,23,20,20,15,159,8,28,42,38,20,15,159,58,43,38,20,15,159,54,44, 38,250,22,209,20,15,159,54,45,38,251,22,60,20,15,159,58,46,38,250,22, 209,20,15,159,8,29,47,38,248,22,60,250,22,209,20,15,159,8,33,48,38, -249,22,60,248,22,78,23,27,250,22,209,20,15,159,8,38,49,38,250,22,60, -20,15,159,8,41,50,38,248,22,52,23,33,250,22,209,20,15,159,8,44,51, +249,22,60,248,22,87,23,27,250,22,209,20,15,159,8,38,49,38,250,22,60, +20,15,159,8,41,50,38,248,22,90,23,33,250,22,209,20,15,159,8,44,51, 38,250,22,60,20,15,159,8,47,52,38,250,22,209,20,15,159,8,50,53,38, -248,22,60,250,22,209,20,15,159,8,54,54,38,249,22,60,248,22,90,23,48, +248,22,60,250,22,209,20,15,159,8,54,54,38,249,22,60,248,22,52,23,48, 250,22,209,20,15,159,8,59,55,38,249,22,60,20,15,159,8,61,56,38,248, 22,89,23,53,20,15,159,8,59,57,38,20,15,159,8,54,58,38,20,15,159, 8,50,59,38,250,22,209,20,15,159,8,50,8,28,38,251,22,62,20,15,159, -8,54,8,29,38,20,15,159,8,54,8,30,38,248,22,90,23,46,248,22,87, +8,54,8,29,38,20,15,159,8,54,8,30,38,248,22,52,23,46,248,22,78, 23,46,20,15,159,8,50,8,31,38,20,15,159,8,44,8,32,38,20,15,159, 8,38,8,33,38,20,15,159,8,33,8,34,38,20,15,159,8,29,8,35,38, 250,22,209,20,15,159,8,29,8,36,38,250,22,60,20,15,159,8,32,8,37, 38,248,22,89,23,24,250,22,209,20,15,159,8,35,8,38,38,249,22,60,20, -15,159,8,37,8,39,38,248,22,78,23,29,20,15,159,8,35,8,40,38,20, -15,159,8,29,8,41,38,248,22,78,23,18,20,15,159,54,8,42,38,20,15, +15,159,8,37,8,39,38,248,22,87,23,29,20,15,159,8,35,8,40,38,20, +15,159,8,29,8,41,38,248,22,87,23,18,20,15,159,54,8,42,38,20,15, 159,48,8,43,38,195,250,22,252,39,2,11,6,10,10,98,97,100,32,115,121, 110,116,97,120,196,32,20,98,158,16,6,30,99,65,35,37,115,116,120,100,69, 115,116,120,45,112,97,105,114,63,101,11,30,102,2,100,67,99,111,110,115,47, @@ -3404,32 +3403,32 @@ 37,100,101,102,105,110,101,113,9,11,159,70,35,37,109,101,109,116,114,97,99, 101,114,9,11,159,74,35,37,115,109,97,108,108,45,115,99,104,101,109,101,115, 9,11,159,73,35,37,109,111,114,101,45,115,99,104,101,109,101,116,9,11,16, -92,2,22,2,2,2,57,2,2,2,73,2,2,2,51,2,2,2,87,2,2, -2,18,2,2,2,14,2,2,2,6,2,2,2,53,2,2,2,91,2,2,2, -20,2,2,2,59,2,2,2,61,2,2,2,12,2,2,2,63,2,2,2,69, -2,2,2,8,2,2,2,10,2,2,2,81,2,2,2,75,2,2,2,4,2, -2,2,79,2,2,2,47,2,2,2,71,2,2,2,77,2,2,2,83,2,2, -2,26,2,2,2,85,2,2,2,55,2,2,2,89,2,2,2,95,2,2,2, -65,2,2,2,93,2,2,2,49,2,2,2,32,2,2,2,16,2,2,2,30, -2,2,2,98,2,2,2,24,2,2,2,34,2,2,2,40,2,2,2,97,2, -2,2,67,2,2,2,28,2,2,2,36,2,2,2,38,2,2,98,35,10,33, +92,2,51,2,2,2,22,2,2,2,97,2,2,2,6,2,2,2,36,2,2, +2,57,2,2,2,14,2,2,2,30,2,2,2,91,2,2,2,75,2,2,2, +47,2,2,2,12,2,2,2,55,2,2,2,81,2,2,2,83,2,2,2,85, +2,2,2,8,2,2,2,69,2,2,2,89,2,2,2,65,2,2,2,38,2, +2,2,32,2,2,2,71,2,2,2,73,2,2,2,93,2,2,2,53,2,2, +2,16,2,2,2,61,2,2,2,98,2,2,2,77,2,2,2,28,2,2,2, +24,2,2,2,34,2,2,2,26,2,2,2,87,2,2,2,67,2,2,2,59, +2,2,2,79,2,2,2,10,2,2,2,63,2,2,2,40,2,2,2,18,2, +2,2,4,2,2,2,49,2,2,2,20,2,2,2,95,2,2,98,35,10,33, 11,94,159,76,35,37,115,116,120,99,97,115,101,45,115,99,104,101,109,101,117, 9,11,159,2,100,9,11,16,0,96,34,8,254,1,11,16,0,16,4,33,11, -61,120,118,3,1,7,101,110,118,51,57,57,52,119,18,100,2,112,41,36,35, +61,120,118,3,1,7,101,110,118,51,57,57,54,119,18,100,2,112,41,36,35, 34,33,16,8,40,11,3,1,4,103,53,50,54,120,3,1,4,103,53,50,55, -121,3,1,4,103,53,50,56,122,3,1,7,101,110,118,52,48,48,48,123,2, +121,3,1,4,103,53,50,56,122,3,1,7,101,110,118,52,48,48,50,123,2, 123,2,123,16,8,39,11,61,95,124,64,97,114,103,115,125,64,98,111,100,121, -126,3,1,7,101,110,118,52,48,48,49,127,2,127,2,127,18,158,2,112,41, +126,3,1,7,101,110,118,52,48,48,51,127,2,127,2,127,18,158,2,112,41, 18,158,2,112,41,18,16,2,95,66,115,114,99,116,97,103,128,42,93,8,252, -60,10,95,9,8,252,60,10,69,35,37,115,116,120,99,97,115,101,129,18,106, +62,10,95,9,8,252,62,10,69,35,37,115,116,120,99,97,115,101,129,18,106, 64,100,101,115,116,130,49,36,35,34,33,40,39,16,4,48,11,3,1,4,103, -53,51,51,131,3,1,7,101,110,118,52,48,49,51,132,16,4,47,11,68,99, -111,110,116,109,97,114,107,133,3,1,7,101,110,118,52,48,49,52,134,16,4, -46,11,3,1,4,103,53,51,53,135,3,1,7,101,110,118,52,48,50,51,136, -16,4,45,11,64,102,117,110,99,137,3,1,7,101,110,118,52,48,50,52,138, +53,51,51,131,3,1,7,101,110,118,52,48,49,53,132,16,4,47,11,68,99, +111,110,116,109,97,114,107,133,3,1,7,101,110,118,52,48,49,54,134,16,4, +46,11,3,1,4,103,53,51,53,135,3,1,7,101,110,118,52,48,50,53,136, +16,4,45,11,64,102,117,110,99,137,3,1,7,101,110,118,52,48,50,54,138, 16,4,44,11,3,1,4,103,53,51,55,139,3,1,7,101,110,118,52,48,51, -51,140,16,4,43,11,67,110,101,119,109,97,114,107,141,3,1,7,101,110,118, -52,48,51,52,142,18,158,63,99,116,120,143,49,18,158,63,108,101,116,144,49, +53,140,16,4,43,11,67,110,101,119,109,97,114,107,141,3,1,7,101,110,118, +52,48,51,54,142,18,158,63,99,116,120,143,49,18,158,63,108,101,116,144,49, 18,158,2,143,49,18,158,2,143,49,18,16,2,103,93,16,2,158,11,49,9, 57,98,56,10,32,11,94,159,2,115,9,11,159,2,100,9,11,16,6,66,115, 121,110,116,97,120,145,29,146,11,11,73,115,121,110,116,97,120,45,99,97,115, @@ -3438,9 +3437,9 @@ 99,149,9,11,159,2,115,9,11,159,2,100,9,11,16,0,96,54,8,254,1, 11,16,0,16,4,53,11,2,118,3,1,6,101,110,118,51,55,55,150,16,4, 52,11,68,104,101,114,101,45,115,116,120,151,3,1,6,101,110,118,51,55,57, -152,16,4,51,11,2,151,2,152,13,16,3,33,2,146,2,129,93,8,252,60, +152,16,4,51,11,2,151,2,152,13,16,3,33,2,146,2,129,93,8,252,62, 10,16,6,50,11,61,114,153,63,115,114,99,154,3,1,7,101,110,118,52,48, -51,55,155,2,155,95,9,8,252,60,10,2,129,18,158,2,143,49,18,158,2, +51,57,155,2,155,95,9,8,252,62,10,2,129,18,158,2,143,49,18,158,2, 143,49,18,158,2,143,49,18,158,2,144,49,18,158,2,143,49,18,158,2,143, 49,18,158,2,143,49,18,158,66,108,97,109,98,100,97,156,49,18,158,2,143, 49,18,158,2,144,49,18,158,2,143,49,18,158,2,143,49,18,158,2,143,49, @@ -3457,7 +3456,7 @@ 49,18,158,2,143,49,18,158,2,143,49,11,134,83,159,32,93,80,159,32,32, 33,89,162,32,33,36,2,4,222,27,248,22,252,24,3,194,28,192,192,28,248, 22,252,136,1,194,27,248,22,252,37,3,195,28,192,192,248,22,252,38,3,195, -11,83,159,32,93,80,159,32,33,33,248,22,252,61,3,5,12,40,91,46,93, +11,83,159,32,93,80,159,32,33,33,248,22,252,62,3,5,12,40,91,46,93, 91,94,46,93,42,124,41,36,83,159,32,93,80,159,32,34,33,89,162,32,34, 45,2,8,223,0,87,95,28,27,248,22,252,24,3,195,28,192,192,28,248,22, 252,136,1,195,27,248,22,252,37,3,196,28,192,192,248,22,252,38,3,196,11, @@ -3468,7 +3467,7 @@ 110,103,33,198,199,91,159,35,11,90,161,35,32,11,248,22,252,36,3,197,87, 94,28,192,12,250,22,252,41,2,2,8,6,36,36,99,97,110,110,111,116,32, 97,100,100,32,97,32,115,117,102,102,105,120,32,116,111,32,97,32,114,111,111, -116,32,112,97,116,104,58,32,199,27,248,22,252,28,3,250,22,252,69,3,80, +116,32,112,97,116,104,58,32,199,27,248,22,252,28,3,250,22,252,70,3,80, 159,40,33,34,248,22,252,26,3,199,28,248,22,252,136,1,203,249,22,252,212, 1,204,8,63,202,28,248,22,252,24,3,194,249,22,252,35,3,195,194,192,83, 159,32,93,80,159,32,35,33,249,22,252,138,1,7,92,7,92,83,159,32,93, @@ -3478,12 +3477,12 @@ 108,45,112,97,116,104,45,99,97,115,101,162,6,25,25,112,97,116,104,32,111, 114,32,118,97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,196,28, 249,22,252,11,2,247,22,252,219,1,67,119,105,110,100,111,119,115,163,27,28, -248,22,252,136,1,195,194,248,22,252,25,3,195,28,249,22,252,64,3,0,21, +248,22,252,136,1,195,194,248,22,252,25,3,195,28,249,22,252,65,3,0,21, 35,114,120,34,94,91,92,92,93,91,92,92,93,91,63,93,91,92,92,93,34, 194,28,248,22,252,136,1,195,248,22,252,27,3,195,194,27,248,22,252,175,1, -194,248,22,252,27,3,250,22,252,70,3,0,6,35,114,120,34,47,34,28,249, -22,252,64,3,0,22,35,114,120,34,91,47,92,92,93,91,46,32,93,43,91, -47,92,92,93,42,36,34,198,196,250,22,252,70,3,0,19,35,114,120,34,91, +194,248,22,252,27,3,250,22,252,71,3,0,6,35,114,120,34,47,34,28,249, +22,252,65,3,0,22,35,114,120,34,91,47,92,92,93,91,46,32,93,43,91, +47,92,92,93,42,36,34,198,196,250,22,252,71,3,0,19,35,114,120,34,91, 32,46,93,43,40,91,47,92,92,93,42,41,36,34,199,6,2,2,92,49,80, 159,38,35,34,28,249,22,252,11,2,247,22,252,219,1,65,109,97,99,111,115, 164,248,22,252,27,3,248,22,252,175,1,28,248,22,252,136,1,196,195,248,22, @@ -3540,8 +3539,8 @@ 39,3,195,248,193,195,27,247,22,252,90,1,248,194,28,193,249,22,252,40,3, 198,195,196,83,159,32,93,80,159,32,41,33,89,162,32,33,37,2,22,223,0, 250,80,159,35,40,34,22,252,88,1,2,22,196,83,159,32,93,80,159,32,42, -33,89,162,32,33,37,2,24,223,0,250,80,159,35,40,34,22,252,57,3,2, -24,196,83,159,32,93,80,159,32,43,33,27,248,22,252,61,3,248,22,252,211, +33,89,162,32,33,37,2,24,223,0,250,80,159,35,40,34,22,252,58,3,2, +24,196,83,159,32,93,80,159,32,43,33,27,248,22,252,62,3,248,22,252,211, 1,27,27,247,22,252,219,1,28,249,22,72,194,21,96,64,117,110,105,120,169, 64,98,101,111,115,170,65,111,115,107,105,116,171,66,109,97,99,111,115,120,172, 6,1,1,58,28,249,22,72,194,21,94,2,163,2,164,6,1,1,59,12,250, @@ -3554,7 +3553,7 @@ 28,248,22,58,196,249,22,4,22,252,24,3,197,11,12,250,22,252,40,2,2, 26,6,13,13,108,105,115,116,32,111,102,32,112,97,116,104,115,198,248,91,159, 33,11,20,12,95,33,192,89,162,32,33,43,64,108,111,111,112,174,226,3,2, -5,0,27,249,22,252,63,3,197,199,28,192,250,199,197,248,22,78,196,248,197, +5,0,27,249,22,252,64,3,197,199,28,192,250,199,197,248,22,78,196,248,197, 248,22,87,197,250,199,197,200,9,28,248,22,252,136,1,196,248,22,252,211,1, 196,195,83,159,32,93,80,159,32,44,33,83,158,35,20,92,96,2,28,89,162, 32,35,43,9,223,0,87,95,28,27,248,22,252,24,3,195,28,192,192,28,248, @@ -3632,7 +3631,7 @@ 11,204,27,89,162,32,33,40,68,119,105,116,104,45,100,105,114,184,224,13,10, 20,14,159,80,158,33,51,250,80,158,36,52,249,22,19,11,80,158,38,51,22, 252,90,1,28,248,22,252,24,3,196,195,247,22,252,54,3,247,194,27,27,250, -23,17,23,16,199,198,28,192,27,248,22,252,57,3,248,22,52,195,91,159,34, +23,17,23,16,199,198,28,192,27,248,22,252,58,3,248,22,52,195,91,159,34, 11,90,161,34,32,11,248,195,248,22,42,248,22,252,210,1,248,22,252,26,3, 249,80,159,56,34,34,23,19,5,0,28,192,87,94,28,23,20,28,249,22,252, 11,2,195,23,22,12,248,22,252,186,2,249,22,252,127,2,248,22,252,165,1, @@ -3644,7 +3643,7 @@ 108,101,32,100,101,99,108,97,114,97,116,105,111,110,32,102,111,114,32,96,126, 97,39,203,6,4,4,110,111,110,101,248,22,52,204,247,22,15,12,192,11,11, 28,192,248,194,193,27,250,23,17,23,16,200,198,28,192,248,195,89,162,32,32, -37,9,224,18,1,249,247,22,252,58,3,248,22,52,195,195,27,250,23,18,23, +37,9,224,18,1,249,247,22,252,59,3,248,22,52,195,195,27,250,23,18,23, 17,202,199,28,192,248,196,89,162,32,32,37,9,224,19,1,249,247,22,252,89, 1,248,22,52,195,195,248,196,89,162,32,32,36,9,224,19,10,249,247,22,252, 89,1,194,195,192,89,162,32,33,36,9,222,87,94,28,28,248,22,0,193,249, @@ -3656,9 +3655,9 @@ 32,54,33,89,162,32,33,36,2,49,223,0,249,247,80,159,34,50,34,195,11, 248,22,252,2,3,89,162,32,33,33,1,20,100,101,102,97,117,108,116,45,114, 101,97,100,101,114,45,103,117,97,114,100,185,222,192,83,159,32,93,80,159,32, -55,33,248,22,252,61,3,5,11,40,46,43,63,41,47,43,40,46,42,41,83, -159,32,93,80,159,32,56,33,248,22,252,61,3,5,2,94,44,83,159,32,93, -80,159,32,57,33,248,22,252,61,3,5,39,94,91,45,97,45,122,65,45,90, +55,33,248,22,252,62,3,5,11,40,46,43,63,41,47,43,40,46,42,41,83, +159,32,93,80,159,32,56,33,248,22,252,62,3,5,2,94,44,83,159,32,93, +80,159,32,57,33,248,22,252,62,3,5,39,94,91,45,97,45,122,65,45,90, 48,45,57,95,46,32,93,43,40,47,43,91,45,97,45,122,65,45,90,48,45, 57,95,46,32,93,43,41,42,36,83,159,32,93,80,159,32,58,33,248,22,110, 64,119,101,97,107,186,83,159,32,93,80,159,32,59,33,249,22,110,2,186,65, @@ -3676,15 +3675,15 @@ 97,109,101,45,114,101,115,111,108,118,101,114,191,12,250,210,198,199,200,28,195, 27,89,162,32,32,45,67,103,101,116,45,100,105,114,192,224,3,5,27,28,193, 28,249,22,252,11,2,195,80,159,36,8,29,34,80,159,34,8,30,34,27,248, -22,252,213,1,248,22,44,196,28,249,22,252,64,3,80,159,37,56,34,194,91, +22,252,213,1,248,22,44,196,28,249,22,252,65,3,80,159,37,56,34,194,91, 159,35,11,90,161,35,32,11,248,22,252,36,3,248,22,252,28,3,250,22,252, 197,1,200,33,248,22,252,191,1,201,87,95,83,160,34,11,80,159,38,8,29, 34,197,83,160,34,11,80,159,38,8,30,34,192,192,11,11,28,192,192,27,247, 22,252,90,1,28,192,192,247,22,252,54,3,27,28,248,22,252,136,1,198,27, 247,194,27,250,22,116,80,159,41,59,34,249,22,51,204,198,89,162,40,32,32, -9,222,11,28,192,192,27,248,22,252,211,1,201,28,249,22,252,64,3,80,159, +9,222,11,28,192,192,27,248,22,252,211,1,201,28,249,22,252,65,3,80,159, 41,57,34,194,249,91,159,33,11,20,12,95,33,192,89,162,32,34,45,2,174, -224,10,0,27,249,22,252,63,3,80,159,36,55,34,198,28,192,249,195,249,22, +224,10,0,27,249,22,252,64,3,80,159,36,55,34,198,28,192,249,195,249,22, 252,35,3,199,27,248,22,78,198,28,249,22,252,194,1,194,5,1,46,2,181, 28,249,22,252,194,1,194,5,2,46,46,62,117,112,193,248,22,252,28,3,193, 248,22,87,195,249,22,252,35,3,197,248,22,252,28,3,199,196,194,248,22,59, @@ -3723,10 +3722,10 @@ 22,252,26,3,248,80,159,48,36,34,199,27,28,248,22,252,222,1,201,249,22, 252,227,1,202,37,248,22,42,249,22,252,159,1,196,248,22,252,210,1,248,22, 252,26,3,199,27,28,248,22,252,222,1,202,249,22,252,227,1,203,38,27,249, -22,252,63,3,80,159,48,33,34,248,22,252,26,3,201,28,192,248,22,52,193, -10,27,250,22,116,80,159,49,58,34,248,22,252,78,3,247,22,252,211,2,89, +22,252,64,3,80,159,48,33,34,248,22,252,26,3,201,28,192,248,22,52,193, +10,27,250,22,116,80,159,49,58,34,248,22,252,79,3,247,22,252,211,2,89, 162,32,32,38,9,223,17,27,247,22,110,87,94,250,22,115,80,159,36,58,34, -248,22,252,78,3,247,22,252,211,2,195,192,87,95,27,250,22,116,196,198,89, +248,22,252,79,3,247,22,252,211,2,195,192,87,95,27,250,22,116,196,198,89, 162,40,32,32,9,222,11,87,94,28,192,28,28,248,22,41,193,10,249,22,252, 13,2,196,194,12,252,22,252,37,2,2,188,6,71,71,109,111,100,117,108,101, 32,112,114,101,118,105,111,117,115,108,121,32,108,111,97,100,101,100,32,119,105, @@ -3747,22 +3746,23 @@ 2,190,11,250,22,115,80,159,49,59,34,28,248,22,252,136,1,23,19,249,22, 51,23,20,247,23,16,249,22,51,23,20,247,22,252,55,3,254,22,252,224,1, 23,19,23,18,23,16,206,205,204,203,12,194,87,94,28,207,250,210,198,199,200, -12,27,250,22,116,80,159,38,58,34,248,22,252,78,3,247,22,252,211,2,89, +12,27,250,22,116,80,159,38,58,34,248,22,252,79,3,247,22,252,211,2,89, 162,32,32,38,9,223,6,27,247,22,110,87,94,250,22,115,80,159,36,58,34, -248,22,252,78,3,247,22,252,211,2,195,192,250,22,115,195,200,66,97,116,116, +248,22,252,79,3,247,22,252,211,2,195,192,250,22,115,195,200,66,97,116,116, 97,99,104,197,83,159,32,93,80,159,32,8,32,33,83,158,35,20,92,95,2, -69,89,162,32,32,34,9,223,0,248,80,158,33,8,32,9,89,162,32,33,44, -9,223,0,249,80,159,34,43,34,27,248,22,252,217,1,6,11,11,80,76,84, -67,79,76,76,69,67,84,83,28,192,192,6,0,0,249,22,51,250,22,252,35, -3,248,22,252,53,3,69,97,100,100,111,110,45,100,105,114,198,247,22,252,215, -1,6,8,8,99,111,108,108,101,99,116,115,248,91,159,33,11,20,12,95,33, -192,89,162,32,33,43,2,174,224,6,0,28,248,22,57,195,9,27,248,22,52, -196,27,28,248,22,252,39,3,194,193,28,248,22,252,38,3,194,249,22,252,40, -3,195,250,80,159,40,44,34,248,22,252,53,3,69,101,120,101,99,45,102,105, -108,101,199,11,10,250,80,159,38,44,34,248,22,252,53,3,2,199,196,10,28, -192,249,22,51,248,22,252,42,3,249,22,252,40,3,197,247,22,252,54,3,248, -197,248,22,53,200,248,195,248,22,53,198,249,22,65,200,248,22,59,248,22,252, -53,3,72,99,111,108,108,101,99,116,115,45,100,105,114,200,83,159,32,93,80, +69,89,162,32,32,34,9,223,0,248,80,158,33,8,32,9,89,162,32,33,46, +9,223,0,27,247,22,252,57,3,249,80,159,35,43,34,28,194,27,248,22,252, +217,1,6,11,11,80,76,84,67,79,76,76,69,67,84,83,28,192,192,6,0, +0,6,0,0,27,28,195,250,22,252,35,3,248,22,252,53,3,69,97,100,100, +111,110,45,100,105,114,198,247,22,252,215,1,6,8,8,99,111,108,108,101,99, +116,115,11,27,248,91,159,33,11,20,12,95,33,192,89,162,32,33,43,2,174, +224,7,0,28,248,22,57,195,9,27,248,22,52,196,27,28,248,22,252,39,3, +194,193,28,248,22,252,38,3,194,249,22,252,40,3,195,250,80,159,40,44,34, +248,22,252,53,3,69,101,120,101,99,45,102,105,108,101,199,11,10,250,80,159, +38,44,34,248,22,252,53,3,2,199,196,10,28,192,249,22,51,248,22,252,42, +3,249,22,252,40,3,197,247,22,252,54,3,248,197,248,22,53,200,248,195,248, +22,53,198,249,22,65,201,248,22,59,248,22,252,53,3,72,99,111,108,108,101, +99,116,115,45,100,105,114,200,28,193,249,22,51,195,194,192,83,159,32,93,80, 159,32,8,33,33,89,162,32,33,35,2,71,222,27,248,22,252,4,1,194,28, 192,192,248,22,252,5,1,194,83,159,32,97,80,159,32,8,34,33,80,159,32, 8,35,33,80,159,32,8,36,33,80,159,32,8,37,33,80,159,32,8,38,33, @@ -3791,7 +3791,7 @@ 252,211,2,196,87,96,249,22,239,194,66,35,37,114,53,114,115,203,248,22,237, 2,203,248,22,238,21,95,64,111,110,108,121,204,68,109,122,115,99,104,101,109, 101,205,72,115,121,110,116,97,120,45,114,117,108,101,115,206,28,195,12,249,22, -3,89,162,32,33,37,9,222,249,22,252,75,3,194,249,22,235,2,205,196,21, +3,89,162,32,33,37,9,222,249,22,252,76,3,194,249,22,235,2,205,196,21, 15,203,63,99,97,114,207,63,99,100,114,208,64,99,97,97,114,209,64,99,97, 100,114,210,64,99,100,97,114,211,64,99,100,100,114,212,65,99,97,97,97,114, 213,65,99,97,97,100,114,214,65,99,97,100,97,114,215,65,99,97,100,100,114, @@ -3905,10 +3905,10 @@ 93,2,97,2,91,72,100,121,110,97,109,105,99,45,119,105,110,100,252,148,1, 9,193,97,68,35,37,107,101,114,110,101,108,252,149,1,2,116,2,115,2,114, 2,113,95,2,252,149,1,2,100,2,117,0}; - EVAL_ONE_SIZED_STR((char *)expr, 12653); + EVAL_ONE_SIZED_STR((char *)expr, 12674); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,19,252,173,1,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,19,252,173,1,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,72,35,37,115,116, 120,109,122,45,98,111,100,121,1,29,2,11,11,18,95,11,35,98,33,10,32, 11,94,159,68,35,37,100,101,102,105,110,101,3,9,11,159,76,35,37,115,116, @@ -3926,14 +3926,14 @@ 35,37,115,116,120,11,69,115,116,120,45,112,97,105,114,63,12,11,30,13,2, 11,67,115,116,120,45,99,100,114,14,6,16,3,18,98,64,104,101,114,101,15, 39,33,98,38,10,33,11,93,159,2,11,9,11,16,0,96,37,8,254,1,11, -16,0,16,4,36,11,63,115,116,120,16,3,1,7,101,110,118,52,50,56,57, +16,0,16,4,36,11,63,115,116,120,16,3,1,7,101,110,118,52,50,57,51, 17,18,158,2,6,39,18,158,78,114,101,113,117,105,114,101,45,102,111,114,45, 115,121,110,116,97,120,18,39,11,9,95,2,7,2,4,2,3,94,2,7,2, 11,0}; EVAL_ONE_SIZED_STR((char *)expr, 442); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,91,252,159,6,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,91,252,159,6,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,68,109,122,115,99, 104,101,109,101,1,29,2,11,11,10,10,10,32,80,158,32,32,20,98,158,16, 0,16,0,74,35,37,109,111,100,117,108,101,45,98,101,103,105,110,3,10,16, @@ -3968,77 +3968,77 @@ 101,118,97,108,45,112,114,105,110,116,45,108,111,111,112,33,1,25,115,99,104, 101,109,101,45,114,101,112,111,114,116,45,101,110,118,105,114,111,110,109,101,110, 116,34,71,115,121,110,116,97,120,45,99,97,115,101,35,70,115,121,110,116,97, -120,47,108,111,99,36,62,100,111,37,66,100,101,102,105,110,101,38,75,115,121, -110,116,97,120,45,105,100,45,114,117,108,101,115,39,70,108,101,116,45,115,121, -110,116,97,120,40,73,100,101,102,105,110,101,45,115,116,114,117,99,116,41,72, -112,97,114,97,109,101,116,101,114,105,122,101,42,75,108,101,116,114,101,99,45, -115,121,110,116,97,120,101,115,43,73,108,101,116,114,101,99,45,115,121,110,116, -97,120,44,72,108,101,116,45,115,121,110,116,97,120,101,115,45,73,119,105,116, -104,45,104,97,110,100,108,101,114,115,46,74,119,105,116,104,45,104,97,110,100, -108,101,114,115,42,47,66,115,121,110,116,97,120,48,79,109,101,109,111,114,121, -45,116,114,97,99,101,45,108,97,109,98,100,97,49,73,100,101,102,105,110,101, -45,115,121,110,116,97,120,50,72,115,121,110,116,97,120,45,99,97,115,101,42, -51,76,98,101,103,105,110,45,102,111,114,45,115,121,110,116,97,120,52,70,113, -117,97,115,105,113,117,111,116,101,53,62,111,114,54,77,117,110,115,121,110,116, -97,120,45,115,112,108,105,99,105,110,103,55,1,28,109,122,115,99,104,101,109, -101,45,105,110,45,115,116,120,45,109,111,100,117,108,101,45,98,101,103,105,110, -56,63,97,110,100,57,78,112,97,114,97,109,101,116,101,114,105,122,101,45,98, -114,101,97,107,58,75,113,117,97,115,105,115,121,110,116,97,120,47,108,111,99, -59,77,100,101,102,105,110,101,45,102,111,114,45,115,121,110,116,97,120,60,71, -119,105,116,104,45,115,121,110,116,97,120,61,68,117,110,115,121,110,116,97,120, -62,71,115,101,116,33,45,118,97,108,117,101,115,63,70,108,101,116,45,115,116, -114,117,99,116,64,71,113,117,97,115,105,115,121,110,116,97,120,65,69,102,108, -117,105,100,45,108,101,116,66,64,99,97,115,101,67,64,116,105,109,101,68,65, -100,101,108,97,121,69,2,3,66,108,101,116,47,99,99,70,72,115,121,110,116, -97,120,45,114,117,108,101,115,71,64,99,111,110,100,72,64,119,104,101,110,73, +120,47,108,111,99,36,65,100,101,108,97,121,37,66,108,101,116,47,99,99,38, +64,99,97,115,101,39,64,116,105,109,101,40,70,108,101,116,45,115,116,114,117, +99,116,41,73,100,101,102,105,110,101,45,115,116,114,117,99,116,42,75,113,117, +97,115,105,115,121,110,116,97,120,47,108,111,99,43,72,112,97,114,97,109,101, +116,101,114,105,122,101,44,75,108,101,116,114,101,99,45,115,121,110,116,97,120, +101,115,45,73,108,101,116,114,101,99,45,115,121,110,116,97,120,46,72,108,101, +116,45,115,121,110,116,97,120,101,115,47,72,115,121,110,116,97,120,45,114,117, +108,101,115,48,73,119,105,116,104,45,104,97,110,100,108,101,114,115,49,74,119, +105,116,104,45,104,97,110,100,108,101,114,115,42,50,66,115,121,110,116,97,120, +51,79,109,101,109,111,114,121,45,116,114,97,99,101,45,108,97,109,98,100,97, +52,73,100,101,102,105,110,101,45,115,121,110,116,97,120,53,76,98,101,103,105, +110,45,102,111,114,45,115,121,110,116,97,120,54,72,115,121,110,116,97,120,45, +99,97,115,101,42,55,62,100,111,56,70,113,117,97,115,105,113,117,111,116,101, +57,62,111,114,58,77,117,110,115,121,110,116,97,120,45,115,112,108,105,99,105, +110,103,59,1,28,109,122,115,99,104,101,109,101,45,105,110,45,115,116,120,45, +109,111,100,117,108,101,45,98,101,103,105,110,60,63,97,110,100,61,77,100,101, +102,105,110,101,45,102,111,114,45,115,121,110,116,97,120,62,78,112,97,114,97, +109,101,116,101,114,105,122,101,45,98,114,101,97,107,63,71,119,105,116,104,45, +115,121,110,116,97,120,64,68,117,110,115,121,110,116,97,120,65,71,115,101,116, +33,45,118,97,108,117,101,115,66,71,113,117,97,115,105,115,121,110,116,97,120, +67,69,102,108,117,105,100,45,108,101,116,68,70,108,101,116,45,115,121,110,116, +97,120,69,2,3,64,99,111,110,100,70,75,115,121,110,116,97,120,45,105,100, +45,114,117,108,101,115,71,66,100,101,102,105,110,101,72,64,119,104,101,110,73, 66,117,110,108,101,115,115,74,66,108,101,116,47,101,99,75,16,73,73,35,37, 109,111,114,101,45,115,99,104,101,109,101,76,2,76,66,35,37,109,105,115,99, 77,2,77,2,77,76,35,37,115,116,120,99,97,115,101,45,115,99,104,101,109, 101,78,2,77,2,76,2,77,2,76,2,77,2,77,2,76,70,35,37,119,105, 116,104,45,115,116,120,79,2,77,65,35,37,115,116,120,80,2,77,2,77,2, 77,2,77,2,77,2,77,2,77,2,77,2,77,2,77,2,77,2,76,2,77, -2,77,2,77,68,35,37,115,116,120,108,111,99,81,2,81,2,76,68,35,37, -100,101,102,105,110,101,82,2,78,2,78,74,35,37,100,101,102,105,110,101,45, -101,116,45,97,108,83,2,76,2,78,2,78,2,78,2,76,2,76,69,35,37, -115,116,120,99,97,115,101,84,2,77,2,82,2,81,2,82,71,35,37,113,113, -45,97,110,100,45,111,114,85,2,85,67,35,37,113,113,115,116,120,86,72,35, -37,115,116,120,109,122,45,98,111,100,121,87,2,85,2,76,2,86,2,82,2, -79,2,86,2,76,2,76,2,86,2,76,2,76,2,76,2,76,68,35,37,107, -101,114,110,101,108,88,2,76,2,78,66,35,37,99,111,110,100,89,2,83,2, -83,2,83,16,73,2,4,2,5,2,6,2,7,2,8,2,9,2,10,2,11, +2,77,2,77,68,35,37,115,116,120,108,111,99,81,2,81,2,76,2,76,2, +76,2,76,2,76,74,35,37,100,101,102,105,110,101,45,101,116,45,97,108,82, +67,35,37,113,113,115,116,120,83,2,76,2,78,2,78,2,78,2,78,2,76, +2,76,69,35,37,115,116,120,99,97,115,101,84,2,77,68,35,37,100,101,102, +105,110,101,85,2,85,2,81,2,76,71,35,37,113,113,45,97,110,100,45,111, +114,86,2,86,2,83,72,35,37,115,116,120,109,122,45,98,111,100,121,87,2, +86,2,85,2,76,2,79,2,83,2,76,2,83,2,76,2,78,68,35,37,107, +101,114,110,101,108,88,66,35,37,99,111,110,100,89,2,78,2,85,2,82,2, +82,2,82,16,73,2,4,2,5,2,6,2,7,2,8,2,9,2,10,2,11, 2,12,2,13,2,14,2,15,2,16,2,17,2,18,2,19,2,20,2,21,2, 22,2,23,2,24,2,25,2,26,2,27,2,28,2,29,2,30,2,31,2,32, 2,33,2,34,2,35,2,36,2,37,2,38,2,39,2,40,2,41,2,42,2, 43,2,44,2,45,2,46,2,47,2,48,2,49,2,50,2,51,2,52,2,53, -2,54,2,55,2,3,2,57,2,58,2,59,2,60,2,61,2,62,2,63,2, +2,54,2,55,2,56,2,57,2,58,2,59,2,3,2,61,2,62,2,63,2, 64,2,65,2,66,2,67,2,68,2,69,1,20,35,37,112,108,97,105,110,45, 109,111,100,117,108,101,45,98,101,103,105,110,90,2,70,2,71,2,72,2,73, 2,74,2,75,8,31,8,73,9,9,100,2,88,2,76,2,77,2,78,2,80, -2,87,2,86,2,82,9,0}; +2,87,2,83,2,85,9,0}; EVAL_ONE_SIZED_STR((char *)expr, 1708); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,121,252,116,15,159,32,20,98,158,16,1,20, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,121,252,116,15,159,32,20,98,158,16,1,20, 24,65,98,101,103,105,110,0,16,0,83,158,39,20,95,114,66,35,37,114,53, 114,115,1,29,2,11,11,10,10,10,33,80,158,32,32,20,98,158,16,1,30, 3,2,2,69,117,110,100,101,102,105,110,101,100,4,254,1,16,0,11,11,16, 1,2,4,33,11,16,24,64,99,111,110,100,5,65,35,37,116,111,112,6,66, -108,97,109,98,100,97,7,62,100,111,8,71,114,53,114,115,58,108,101,116,114, -101,99,9,63,108,101,116,10,64,108,101,116,42,11,73,100,101,102,105,110,101, -45,115,121,110,116,97,120,12,2,0,62,105,102,13,65,113,117,111,116,101,14, -64,115,101,116,33,15,67,117,110,113,117,111,116,101,16,64,99,97,115,101,17, -70,113,117,97,115,105,113,117,111,116,101,18,76,117,110,113,117,111,116,101,45, -115,112,108,105,99,105,110,103,19,73,108,101,116,114,101,99,45,115,121,110,116, -97,120,20,66,100,101,102,105,110,101,21,70,108,101,116,45,115,121,110,116,97, -120,22,63,97,110,100,23,65,35,37,97,112,112,24,65,100,101,108,97,121,25, +108,97,109,98,100,97,7,65,100,101,108,97,121,8,71,114,53,114,115,58,108, +101,116,114,101,99,9,63,108,101,116,10,64,108,101,116,42,11,2,0,62,105, +102,12,65,113,117,111,116,101,13,64,115,101,116,33,14,67,117,110,113,117,111, +116,101,15,70,113,117,97,115,105,113,117,111,116,101,16,76,117,110,113,117,111, +116,101,45,115,112,108,105,99,105,110,103,17,62,100,111,18,64,99,97,115,101, +19,73,108,101,116,114,101,99,45,115,121,110,116,97,120,20,66,100,101,102,105, +110,101,21,73,100,101,102,105,110,101,45,115,121,110,116,97,120,22,70,108,101, +116,45,115,121,110,116,97,120,23,63,97,110,100,24,65,35,37,97,112,112,25, 62,111,114,26,67,35,37,100,97,116,117,109,27,16,24,66,35,37,99,111,110, 100,28,68,35,37,107,101,114,110,101,108,29,2,29,73,35,37,109,111,114,101, -45,115,99,104,101,109,101,30,11,2,29,2,29,68,35,37,100,101,102,105,110, -101,31,2,29,2,29,2,29,2,29,2,29,2,30,71,35,37,113,113,45,97, -110,100,45,111,114,32,2,29,76,35,37,115,116,120,99,97,115,101,45,115,99, -104,101,109,101,33,2,31,2,33,2,32,2,29,2,30,2,32,2,29,16,24, +45,115,99,104,101,109,101,30,11,2,29,2,29,2,29,2,29,2,29,2,29, +2,29,71,35,37,113,113,45,97,110,100,45,111,114,31,2,29,2,30,2,30, +76,35,37,115,116,120,99,97,115,101,45,115,99,104,101,109,101,32,68,35,37, +100,101,102,105,110,101,33,2,33,2,32,2,31,2,29,2,31,2,29,16,24, 2,5,2,6,2,7,2,8,66,108,101,116,114,101,99,34,2,10,2,11,2, -12,2,0,2,13,2,14,2,15,2,16,2,17,2,18,2,19,2,20,2,21, +0,2,12,2,13,2,14,2,15,2,16,2,17,2,18,2,19,2,20,2,21, 2,22,2,23,2,24,2,25,2,26,2,27,32,56,93,16,5,93,2,9,89, 162,32,33,8,32,9,223,0,27,28,248,80,158,34,32,195,249,80,158,35,33, 248,80,158,36,34,197,27,248,80,158,37,35,198,28,248,80,158,37,32,193,249, @@ -4088,7 +4088,7 @@ 2,248,22,252,184,2,89,162,32,33,36,9,224,3,1,248,193,89,162,32,32, 36,9,224,2,3,28,248,22,252,181,2,193,248,22,252,186,2,193,249,80,158, 35,43,21,95,2,10,94,94,2,35,2,4,2,36,97,2,10,94,94,65,116, -101,109,112,49,39,2,37,2,36,95,2,15,2,35,2,39,2,36,96,2,10, +101,109,112,49,39,2,37,2,36,95,2,14,2,35,2,39,2,36,96,2,10, 9,2,38,2,36,20,15,159,35,43,44,89,162,32,32,8,29,9,225,6,5, 4,27,250,22,209,20,15,159,38,44,44,250,22,209,20,15,159,41,45,44,250, 22,60,20,15,159,44,46,44,249,22,2,89,162,33,33,40,9,223,14,250,22, @@ -4122,7 +4122,7 @@ 158,49,37,193,248,80,158,49,40,193,11,11,11,11,11,11,11,28,192,27,248, 22,52,194,27,248,22,78,195,27,248,22,87,196,27,248,22,90,197,27,249,22, 70,199,36,27,249,22,70,200,37,27,249,22,69,201,38,249,80,158,44,42,205, -27,252,22,61,200,202,201,203,204,27,20,15,159,46,8,31,44,91,159,33,11, +27,252,22,61,200,202,201,204,203,27,20,15,159,46,8,31,44,91,159,33,11, 90,161,33,32,11,83,160,38,32,33,11,247,248,22,8,89,162,32,33,40,9, 226,16,2,3,1,250,22,31,89,162,32,32,36,9,225,6,3,7,90,161,33, 33,10,247,22,252,184,2,248,22,252,184,2,89,162,32,33,36,9,224,3,1, @@ -4133,8 +4133,8 @@ 37,2,36,2,38,2,36,20,15,159,35,8,32,44,89,162,32,32,54,9,225, 6,5,4,27,250,22,209,20,15,159,38,8,33,44,250,22,209,20,15,159,41, 8,34,44,253,22,62,20,15,159,47,8,35,44,20,15,159,47,8,36,44,248, -22,89,206,250,22,209,20,15,159,50,8,37,44,249,22,56,20,15,159,52,8, -38,44,248,22,90,23,19,20,15,159,50,8,39,44,250,22,2,89,162,33,33, +22,90,206,250,22,209,20,15,159,50,8,37,44,249,22,56,20,15,159,52,8, +38,44,248,22,89,23,19,20,15,159,50,8,39,44,250,22,2,89,162,33,33, 41,9,223,18,250,22,209,20,15,159,35,8,40,44,249,22,60,248,22,52,199, 248,22,78,199,20,15,159,35,8,41,44,248,22,78,23,17,248,22,87,23,17, 248,22,52,206,20,15,159,41,8,42,44,197,89,162,32,32,33,9,223,0,192, @@ -4151,31 +4151,31 @@ 37,115,116,120,108,111,99,65,68,114,101,108,111,99,97,116,101,66,1,30,67, 69,35,37,115,116,120,99,97,115,101,68,1,20,101,108,108,105,112,115,105,115, 45,99,111,117,110,116,45,101,114,114,111,114,69,0,16,43,18,16,2,95,66, -115,114,99,116,97,103,70,34,93,8,252,52,11,95,9,8,252,52,11,2,68, -18,16,2,99,2,36,39,93,8,252,52,11,16,6,38,11,61,114,71,63,115, -114,99,72,3,1,7,101,110,118,52,51,48,57,73,2,73,16,4,37,11,64, -101,120,110,104,74,3,1,7,101,110,118,52,51,49,48,75,16,4,36,11,63, -101,115,99,76,3,1,7,101,110,118,52,51,49,49,77,16,4,35,11,63,101, -120,110,78,3,1,7,101,110,118,52,51,49,51,79,95,9,8,252,52,11,2, +115,114,99,116,97,103,70,34,93,8,252,56,11,95,9,8,252,56,11,2,68, +18,16,2,99,2,36,39,93,8,252,56,11,16,6,38,11,61,114,71,63,115, +114,99,72,3,1,7,101,110,118,52,51,49,51,73,2,73,16,4,37,11,64, +101,120,110,104,74,3,1,7,101,110,118,52,51,49,52,75,16,4,36,11,63, +101,115,99,76,3,1,7,101,110,118,52,51,49,53,77,16,4,35,11,63,101, +120,110,78,3,1,7,101,110,118,52,51,49,55,79,95,9,8,252,56,11,2, 68,18,99,64,100,101,115,116,80,45,98,44,10,32,11,93,159,68,109,122,115, 99,104,101,109,101,81,9,11,16,4,2,9,2,2,2,4,2,2,98,43,10, 33,11,93,159,2,81,9,11,16,0,96,42,8,254,1,11,16,0,16,8,41, 11,3,1,4,103,53,53,53,82,3,1,4,103,53,53,54,83,3,1,4,103, -53,53,55,84,3,1,7,101,110,118,52,51,48,50,85,2,85,2,85,16,8, -40,11,2,35,2,37,2,38,3,1,7,101,110,118,52,51,48,51,86,2,86, +53,53,55,84,3,1,7,101,110,118,52,51,48,54,85,2,85,2,85,16,8, +40,11,2,35,2,37,2,38,3,1,7,101,110,118,52,51,48,55,86,2,86, 2,86,18,158,63,99,116,120,87,45,18,158,2,9,45,18,158,6,19,19,103, 101,110,101,114,97,116,101,95,116,101,109,112,95,110,97,109,101,115,45,18,158, 9,45,18,158,2,87,45,18,158,2,87,45,18,158,2,87,45,18,16,2,95, -2,70,46,93,8,252,56,11,95,9,8,252,56,11,2,68,18,16,2,99,2, -36,51,93,8,252,56,11,16,6,50,11,2,71,2,72,3,1,7,101,110,118, -52,51,52,51,88,2,88,16,4,49,11,2,74,3,1,7,101,110,118,52,51, -52,52,89,16,4,48,11,2,76,3,1,7,101,110,118,52,51,52,53,90,16, -4,47,11,2,78,3,1,7,101,110,118,52,51,52,55,91,95,9,8,252,56, +2,70,46,93,8,252,60,11,95,9,8,252,60,11,2,68,18,16,2,99,2, +36,51,93,8,252,60,11,16,6,50,11,2,71,2,72,3,1,7,101,110,118, +52,51,52,55,88,2,88,16,4,49,11,2,74,3,1,7,101,110,118,52,51, +52,56,89,16,4,48,11,2,76,3,1,7,101,110,118,52,51,52,57,90,16, +4,47,11,2,78,3,1,7,101,110,118,52,51,53,49,91,95,9,8,252,60, 11,2,68,18,99,2,80,54,44,43,42,16,10,53,11,3,1,4,103,53,53, 48,92,3,1,4,103,53,53,49,93,3,1,4,103,53,53,50,94,3,1,4, -103,53,53,51,95,3,1,7,101,110,118,52,51,51,53,96,2,96,2,96,2, +103,53,53,51,95,3,1,7,101,110,118,52,51,51,57,96,2,96,2,96,2, 96,16,10,52,11,2,39,2,35,2,37,2,38,3,1,7,101,110,118,52,51, -51,54,97,2,97,2,97,2,97,18,158,2,87,54,18,158,2,10,54,18,158, +52,48,97,2,97,2,97,2,97,18,158,2,87,54,18,158,2,10,54,18,158, 2,87,54,18,16,2,106,93,16,2,158,2,4,54,9,8,33,98,8,32,10, 32,11,94,159,74,35,37,115,109,97,108,108,45,115,99,104,101,109,101,98,9, 11,159,2,44,9,11,16,6,66,115,121,110,116,97,120,99,29,100,11,11,73, @@ -4184,24 +4184,24 @@ 2,44,9,11,16,0,96,8,30,8,254,1,11,16,0,16,4,8,29,11,61, 120,103,3,1,6,101,110,118,51,55,55,104,16,4,8,28,11,68,104,101,114, 101,45,115,116,120,105,3,1,6,101,110,118,51,55,57,106,16,4,59,11,2, -105,2,106,13,16,3,33,2,100,2,68,93,8,252,56,11,16,6,58,11,2, +105,2,106,13,16,3,33,2,100,2,68,93,8,252,60,11,16,6,58,11,2, 71,2,72,2,88,2,88,16,4,57,11,2,74,2,89,16,4,56,11,2,76, 2,90,16,4,55,11,64,118,97,108,115,107,3,1,7,101,110,118,52,51,53, -49,108,95,9,8,252,56,11,2,68,18,158,2,87,54,18,158,2,87,54,18, +53,108,95,9,8,252,60,11,2,68,18,158,2,87,54,18,158,2,87,54,18, 158,2,10,54,18,158,2,87,54,18,158,2,87,54,18,158,2,87,54,18,158, -2,15,54,18,158,2,87,54,18,158,2,87,54,18,158,2,10,54,18,158,9, +2,14,54,18,158,2,87,54,18,158,2,87,54,18,158,2,10,54,18,158,9, 54,18,158,2,87,54,18,158,2,87,54,18,158,2,87,54,18,16,2,95,2, -70,8,34,93,8,252,61,11,95,9,8,252,61,11,2,68,18,16,2,99,2, -36,8,39,93,8,252,61,11,16,6,8,38,11,2,71,2,72,3,1,7,101, -110,118,52,51,56,53,109,2,109,16,4,8,37,11,2,74,3,1,7,101,110, -118,52,51,56,54,110,16,4,8,36,11,2,76,3,1,7,101,110,118,52,51, -56,55,111,16,4,8,35,11,2,78,3,1,7,101,110,118,52,51,56,57,112, -95,9,8,252,61,11,2,68,18,99,2,80,8,42,44,43,42,16,14,8,41, +70,8,34,93,8,252,65,11,95,9,8,252,65,11,2,68,18,16,2,99,2, +36,8,39,93,8,252,65,11,16,6,8,38,11,2,71,2,72,3,1,7,101, +110,118,52,51,56,57,109,2,109,16,4,8,37,11,2,74,3,1,7,101,110, +118,52,51,57,48,110,16,4,8,36,11,2,76,3,1,7,101,110,118,52,51, +57,49,111,16,4,8,35,11,2,78,3,1,7,101,110,118,52,51,57,51,112, +95,9,8,252,65,11,2,68,18,99,2,80,8,42,44,43,42,16,14,8,41, 11,3,1,4,103,53,52,51,113,3,1,4,103,53,52,52,114,3,1,4,103, 53,52,53,115,3,1,4,103,53,52,54,116,3,1,4,103,53,52,55,117,3, -1,4,103,53,52,56,118,3,1,7,101,110,118,52,51,55,53,119,2,119,2, +1,4,103,53,52,56,118,3,1,7,101,110,118,52,51,55,57,119,2,119,2, 119,2,119,2,119,2,119,16,14,8,40,11,2,103,2,40,2,42,2,35,2, -37,2,38,3,1,7,101,110,118,52,51,55,54,120,2,120,2,120,2,120,2, +37,2,38,3,1,7,101,110,118,52,51,56,48,120,2,120,2,120,2,120,2, 120,2,120,18,158,2,87,8,42,18,158,2,9,8,42,18,158,6,19,19,103, 101,110,101,114,97,116,101,95,116,101,109,112,95,110,97,109,101,115,8,42,18, 158,2,87,8,42,18,158,2,41,8,42,18,158,2,87,8,42,18,158,2,87, @@ -4211,7 +4211,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 3969); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,5,93,159,32,20,98,158,16,1,20,24,65, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,5,93,159,32,20,98,158,16,1,20,24,65, 98,101,103,105,110,0,16,0,83,160,40,80,158,32,32,32,18,158,94,96,67, 114,101,113,117,105,114,101,1,34,10,11,158,95,158,64,111,110,108,121,2,34, 158,68,109,122,115,99,104,101,109,101,3,34,158,1,22,110,97,109,101,115,112, @@ -4219,7 +4219,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 104); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,3,73,159,33,20,98,158,16,1,20,24,65, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,3,73,159,33,20,98,158,16,1,20,24,65, 98,101,103,105,110,0,16,0,87,94,248,22,241,68,109,122,115,99,104,101,109, 101,1,83,160,40,80,158,32,32,33,18,158,94,96,78,114,101,113,117,105,114, 101,45,102,111,114,45,115,121,110,116,97,120,2,34,10,11,158,2,1,34,34, @@ -4227,7 +4227,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 84); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,53,2,66,159,36,20,98,158,16,0,16,0,248, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,6,51,48,49,46,49,54,2,66,159,36,20,98,158,16,0,16,0,248, 22,233,248,249,22,235,66,35,37,109,105,115,99,0,1,34,109,97,107,101,45, 115,116,97,110,100,97,114,100,45,109,111,100,117,108,101,45,110,97,109,101,45, 114,101,115,111,108,118,101,114,1,247,22,252,211,2,0}; diff --git a/src/mzscheme/src/file.c b/src/mzscheme/src/file.c index 7bdf6acbf0..ec045fe09b 100644 --- a/src/mzscheme/src/file.c +++ b/src/mzscheme/src/file.c @@ -113,6 +113,9 @@ long scheme_creator_id = 'MzSc'; # define IS_A_SEP(x) (!(x)) #endif +MZ_DLLSPEC int scheme_ignore_user_paths; +void scheme_set_ignore_user_paths(int v) { scheme_ignore_user_paths = v; } + #define CURRENT_WD() scheme_get_param(scheme_current_config(), MZCONFIG_CURRENT_DIRECTORY) #define TO_PATH(x) (SCHEME_PATHP(x) ? x : scheme_char_string_to_path(x)) @@ -161,6 +164,7 @@ static Scheme_Object *file_or_dir_permissions(int argc, Scheme_Object *argv[]); static Scheme_Object *file_size(int argc, Scheme_Object *argv[]); static Scheme_Object *current_library_collection_paths(int argc, Scheme_Object *argv[]); static Scheme_Object *use_compiled_kind(int, Scheme_Object *[]); +static Scheme_Object *use_user_paths(int, Scheme_Object *[]); static Scheme_Object *find_system_path(int argc, Scheme_Object **argv); #endif @@ -419,6 +423,11 @@ void scheme_init_file(Scheme_Env *env) "use-compiled-file-paths", MZCONFIG_USE_COMPILED_KIND), env); + scheme_add_global_constant("use-user-specific-search-paths", + scheme_register_parameter(use_user_paths, + "use-user-specific-search-paths", + MZCONFIG_USE_USER_PATHS), + env); } /**********************************************************************/ @@ -4433,6 +4442,14 @@ static Scheme_Object *use_compiled_kind(int argc, Scheme_Object *argv[]) -1, compiled_kind_p, "list of relative paths and strings", 1); } +static Scheme_Object *use_user_paths(int argc, Scheme_Object *argv[]) +{ + return scheme_param_config("use-user-specific-search-paths", + scheme_make_integer(MZCONFIG_USE_USER_PATHS), + argc, argv, + -1, NULL, NULL, 1); +} + /********************************************************************************/ #ifndef NO_FILE_SYSTEM_UTILS diff --git a/src/mzscheme/src/portfun.c b/src/mzscheme/src/portfun.c index 94ba2081df..e84ec8a090 100644 --- a/src/mzscheme/src/portfun.c +++ b/src/mzscheme/src/portfun.c @@ -730,6 +730,10 @@ void scheme_init_port_fun_config(void) scheme_set_root_param(MZCONFIG_USE_COMPILED_KIND, scheme_make_immutable_pair(scheme_make_path("compiled"), scheme_null)); + scheme_set_root_param(MZCONFIG_USE_USER_PATHS, + (scheme_ignore_user_paths + ? scheme_false + : scheme_true)); { Scheme_Object *dlh; diff --git a/src/mzscheme/src/schminc.h b/src/mzscheme/src/schminc.h index c66cc4b81e..0d3d36f959 100644 --- a/src/mzscheme/src/schminc.h +++ b/src/mzscheme/src/schminc.h @@ -13,7 +13,7 @@ #define USE_COMPILED_STARTUP 1 -#define EXPECTED_PRIM_COUNT 863 +#define EXPECTED_PRIM_COUNT 864 #ifdef MZSCHEME_SOMETHING_OMITTED # undef USE_COMPILED_STARTUP diff --git a/src/mzscheme/src/schvers.h b/src/mzscheme/src/schvers.h index 5a40328e3d..cc4517c2bd 100644 --- a/src/mzscheme/src/schvers.h +++ b/src/mzscheme/src/schvers.h @@ -9,6 +9,6 @@ #define MZSCHEME_VERSION_MAJOR 301 -#define MZSCHEME_VERSION_MINOR 15 +#define MZSCHEME_VERSION_MINOR 16 -#define MZSCHEME_VERSION "301.15" _MZ_SPECIAL_TAG +#define MZSCHEME_VERSION "301.16" _MZ_SPECIAL_TAG diff --git a/src/mzscheme/src/startup.inc b/src/mzscheme/src/startup.inc index bf2662b9d1..37ffb9b45f 100644 --- a/src/mzscheme/src/startup.inc +++ b/src/mzscheme/src/startup.inc @@ -3052,12 +3052,17 @@ "(case-lambda" "(()(find-library-collection-paths null))" "((extra-collects-dirs)" +"(let((user-too?(use-user-specific-search-paths))" +"(cons-if(lambda(f r)(if f(cons f r) r))))" "(path-list-string->path-list" +"(if user-too?" " (or (getenv \"PLTCOLLECTS\") \"\")" -"(cons" +" \"\")" +"(cons-if" +"(and user-too?" "(build-path(find-system-path 'addon-dir)" "(version)" -" \"collects\")" +" \"collects\"))" "(let loop((l(append" " extra-collects-dirs" "(list(find-system-path 'collects-dir)))))" @@ -3075,7 +3080,7 @@ "(if v" "(cons(simplify-path(path->complete-path v(current-directory)))" "(loop(cdr l)))" -"(loop(cdr l)))))))))))" +"(loop(cdr l))))))))))))" "(define(port? x)(or(input-port? x)(output-port? x)))" "(define-values(struct:guard make-guard guard? guard-ref guard-set!)" "(make-struct-type 'evt #f 1 0 #f(list(cons prop:evt 0))(current-inspector) #f '(0)))" diff --git a/src/mzscheme/src/startup.ss b/src/mzscheme/src/startup.ss index 7db4ddeea8..3b8bf64e93 100644 --- a/src/mzscheme/src/startup.ss +++ b/src/mzscheme/src/startup.ss @@ -3501,30 +3501,35 @@ (case-lambda [() (find-library-collection-paths null)] [(extra-collects-dirs) - (path-list-string->path-list - (or (getenv "PLTCOLLECTS") "") - (cons - (build-path (find-system-path 'addon-dir) - (version) - "collects") - (let loop ([l (append - extra-collects-dirs - (list (find-system-path 'collects-dir)))]) - (if (null? l) - null - (let* ([collects-path (car l)] - [v - (cond - [(complete-path? collects-path) collects-path] - [(absolute-path? collects-path) - (path->complete-path collects-path - (find-executable-path (find-system-path 'exec-file) #f #t))] - [else - (find-executable-path (find-system-path 'exec-file) collects-path #t)])]) - (if v - (cons (simplify-path (path->complete-path v (current-directory))) - (loop (cdr l))) - (loop (cdr l))))))))])) + (let ([user-too? (use-user-specific-search-paths)] + [cons-if (lambda (f r) (if f (cons f r) r))]) + (path-list-string->path-list + (if user-too? + (or (getenv "PLTCOLLECTS") "") + "") + (cons-if + (and user-too? + (build-path (find-system-path 'addon-dir) + (version) + "collects")) + (let loop ([l (append + extra-collects-dirs + (list (find-system-path 'collects-dir)))]) + (if (null? l) + null + (let* ([collects-path (car l)] + [v + (cond + [(complete-path? collects-path) collects-path] + [(absolute-path? collects-path) + (path->complete-path collects-path + (find-executable-path (find-system-path 'exec-file) #f #t))] + [else + (find-executable-path (find-system-path 'exec-file) collects-path #t)])]) + (if v + (cons (simplify-path (path->complete-path v (current-directory))) + (loop (cdr l))) + (loop (cdr l)))))))))])) ;; ------------------------------------------------------------------------- diff --git a/src/mzscheme/src/string.c b/src/mzscheme/src/string.c index d15b52567b..afa7af4601 100644 --- a/src/mzscheme/src/string.c +++ b/src/mzscheme/src/string.c @@ -2066,15 +2066,42 @@ static void machine_details(char *s); static Scheme_Object *system_type(int argc, Scheme_Object *argv[]) { - if (!argc || SCHEME_FALSEP(argv[0])) - return sys_symbol; - else { - char buff[1024]; + if (argc) { + Scheme_Object *sym; + sym = scheme_intern_symbol("link"); + if (SAME_OBJ(argv[0], sym)) { +#ifdef OS_X + return scheme_intern_symbol("framework"); +#else +# ifdef DOS_FILE_SYSTEM + return scheme_intern_symbol("dll"); +# else +# ifdef MZ_USES_SHARED_LIB + return scheme_intern_symbol("shared"); +# else + return scheme_intern_symbol("static"); +# endif +# endif +#endif + } - machine_details(buff); + sym = scheme_intern_symbol("machine"); + if (SAME_OBJ(argv[0], sym)) { + char buff[1024]; + + machine_details(buff); + + return scheme_make_utf8_string(buff); + } - return scheme_make_utf8_string(buff); + sym = scheme_intern_symbol("os"); + if (!SAME_OBJ(argv[0], sym)) { + scheme_wrong_type("system-type", "'os, 'link, or 'machine", 0, argc, argv); + return NULL; + } } + + return sys_symbol; } static Scheme_Object *system_library_subpath(int argc, Scheme_Object *argv[]) diff --git a/src/wxwindow/src/msw/wx_win.cxx b/src/wxwindow/src/msw/wx_win.cxx index f24b6abb2e..2c30cbc3eb 100644 --- a/src/wxwindow/src/msw/wx_win.cxx +++ b/src/wxwindow/src/msw/wx_win.cxx @@ -1609,7 +1609,7 @@ void wxWnd::OnDropFiles(WPARAM wParam) for (wIndex=0; wIndex < (int)gwFilesDropped; wIndex++) { len = DragQueryFileW(hFilesInfo, wIndex, NULL, 0); w_file = new WXGC_ATOMIC wchar_t[len + 1]; - DragQueryFileW(hFilesInfo, wIndex, w_file, len); + DragQueryFileW(hFilesInfo, wIndex, w_file, len + 1); a_file = wxNARROW_STRING(w_file); files[wIndex] = a_file; }