diff --git a/collects/mzscheme/mzscheme.scrbl b/collects/mzscheme/mzscheme.scrbl index d748d30168..6074000da3 100644 --- a/collects/mzscheme/mzscheme.scrbl +++ b/collects/mzscheme/mzscheme.scrbl @@ -25,7 +25,8 @@ base-if base-cond base-case base-top-interaction base-open-input-file base-apply base-prop:procedure base-free-identifier=? base-free-template-identifier=? - base-free-transformer-identifier=? base-free-label-identifier=?) + base-free-transformer-identifier=? base-free-label-identifier=? + base-collection-file-path base-collection-path) (begin (require (for-label scheme/base)) (define base-define (racket define)) @@ -42,12 +43,15 @@ (define base-free-identifier=? (racket free-identifier=?)) (define base-free-template-identifier=? (racket free-template-identifier=?)) (define base-free-transformer-identifier=? (racket free-transformer-identifier=?)) - (define base-free-label-identifier=? (racket free-label-identifier=?)))) + (define base-free-label-identifier=? (racket free-label-identifier=?)) + (define base-collection-file-path (racket collection-file-path)) + (define base-collection-path (racket collection-path)))) @(def-base base-define base-define-syntax base-define-for-syntax base-define-struct base-if base-cond base-case base-top-interaction base-open-input-file base-apply base-prop:procedure base-free-identifier=? base-free-template-identifier=? - base-free-transformer-identifier=? base-free-label-identifier=?) + base-free-transformer-identifier=? base-free-label-identifier=? + base-collection-file-path base-collection-path) @(define-syntax-rule (additionals racket/base id ...) (begin @@ -430,7 +434,13 @@ The same as @racket[cleanse-path].} The same as @racket[list].} +@deftogether[( +@defproc[(collection-file-path [file path-string?] [collection path-string?] ...+) path?] +@defproc[(collection-path [collection path-string?] ...+) path?] +)]{ +Like @base-collection-file-path and @base-collection-path, but without +the @racket[#:fail] option.} @; ---------------------------------------- diff --git a/collects/racket/private/pre-base.rkt b/collects/racket/private/pre-base.rkt index ae50fd37ea..19c962a8de 100644 --- a/collects/racket/private/pre-base.rkt +++ b/collects/racket/private/pre-base.rkt @@ -106,8 +106,31 @@ (define-values (double-flonum?) ; for symmetry with single-flonum? (lambda (x) (flonum? x))) + (define-values (new:collection-path) + (let ([collection-path (new-lambda (collection + #:fail [fail (lambda (s) + (raise + (exn:fail:filesystem + (string-append "collection-path: " s) + (current-continuation-marks))))] + . collections) + (apply collection-path fail collection collections))]) + collection-path)) + + (define-values (new:collection-file-path) + (let ([collection-file-path (new-lambda (file-name + collection + #:fail [fail (lambda (s) + (raise + (exn:fail:filesystem + (string-append "collection-file-path: " s) + (current-continuation-marks))))] + . collections) + (apply collection-file-path fail file-name collection collections))]) + collection-file-path)) + (#%provide (all-from-except "more-scheme.rkt" old-case fluid-let) - (all-from "misc.rkt") + (all-from-except "misc.rkt" collection-path collection-file-path) (all-from "define.rkt") (all-from-except "letstx-scheme.rkt" -define -define-syntax -define-struct old-cond) (rename new-lambda lambda) @@ -130,6 +153,8 @@ (rename new:procedure-rename procedure-rename) (rename new:chaperone-procedure chaperone-procedure) (rename new:impersonate-procedure impersonate-procedure) + (rename new:collection-path collection-path) + (rename new:collection-file-path collection-file-path) (all-from-except '#%kernel lambda λ #%app #%module-begin apply prop:procedure procedure-arity procedure-reduce-arity raise-arity-error procedure->method procedure-rename diff --git a/collects/scheme/mzscheme.rkt b/collects/scheme/mzscheme.rkt index a629f1eaa6..b03edd02ee 100644 --- a/collects/scheme/mzscheme.rkt +++ b/collects/scheme/mzscheme.rkt @@ -27,13 +27,38 @@ racket/udp '#%builtin) ; so it's attached + (define new:collection-path + (let ([collection-path (lambda (collection . collections) + (apply collection-path + (lambda (s) + (raise + (exn:fail:filesystem + (string-append "collection-path: " s) + (current-continuation-marks)))) + collection collections))]) + collection-path)) + + (define new:collection-file-path + (let ([collection-file-path (lambda (file-name collection . collections) + (apply collection-file-path + (lambda (s) + (raise + (exn:fail:filesystem + (string-append "collection-file-path: " s) + (current-continuation-marks)))) + file-name collection collections))]) + collection-file-path)) + + (#%provide require require-for-syntax require-for-template require-for-label provide provide-for-syntax provide-for-label (all-from-except racket/private/more-scheme case old-case log-fatal log-error log-warning log-info log-debug hash-update hash-update!) (rename old-case case) - (all-from racket/private/misc) + (all-from-except racket/private/misc collection-path collection-file-path) + (rename new:collection-path collection-path) + (rename new:collection-file-path collection-file-path) (all-from-except racket/private/stxcase-scheme _ datum datum-case with-datum) (all-from-except racket/private/letstx-scheme -define -define-syntax -define-struct diff --git a/collects/scribblings/reference/collects.scrbl b/collects/scribblings/reference/collects.scrbl index af4daf00d9..c0c2c90b91 100644 --- a/collects/scribblings/reference/collects.scrbl +++ b/collects/scribblings/reference/collects.scrbl @@ -124,21 +124,38 @@ Produces a list of paths as follows: ]} -@defproc[(collection-file-path [file path-string?] [collection path-string?] ...+) path?]{ +@defproc*[([(collection-file-path [file path-string?] [collection path-string?] ...+) + path?] + [(collection-file-path [file path-string?] [collection path-string?] ...+ + [#:fail fail-proc (string? . -> . any)]) + any])]{ Returns the path to the file indicated by @racket[file] in the collection specified by the @racket[collection]s, where the second -@racket[collection] (if any) names a sub-collection, and so on. If -@racket[file] is not found, but @racket[file] ends in @filepath{.rkt} -and a file with the suffix @filepath{.ss} exists, then the directory -of the @filepath{.ss} file is used. If @racket[file] is not found and -the @filepath{.rkt}/@filepath{.ss} conversion does not apply, but a -directory corresponding to the @racket[collection]s is found, then a -path using the first such directory is returned. Finally, if the -collection is not found, the @exnraise[exn:fail:filesystem].} +@racket[collection] (if any) names a sub-collection, and so on. + +If @racket[file] is not found, but @racket[file] ends in +@filepath{.rkt} and a file with the suffix @filepath{.ss} exists, then +the directory of the @filepath{.ss} file is used. If @racket[file] is +not found and the @filepath{.rkt}/@filepath{.ss} conversion does not +apply, but a directory corresponding to the @racket[collection]s is +found, then a path using the first such directory is +returned. + +Finally, if the collection is not found, and if @racket[fail-proc] is +provided, then @racket[fail-proc] is applied to an error message (that +does not start @scheme["collection-file-path:"] or otherwise claim a +source), and its result is the result of +@racket[collection-file-path]. If @racket[fail-proc] is not provided +and the collection is not found, then the +@exnraise[exn:fail:filesystem].} -@defproc[(collection-path [collection path-string?] ...+) path?]{ +@defproc*[([(collection-path [collection path-string?] ...+) + path?] + [(collection-path [collection path-string?] ...+ + [#:fail fail-proc (string? . -> . any)]) + any])]{ Like @racket[collection-file-path], but without a specified file name, so that the first directory indicated by @racket[collection]s is diff --git a/collects/tests/racket/module.rktl b/collects/tests/racket/module.rktl index d5ea51aae3..7da0c33d65 100644 --- a/collects/tests/racket/module.rktl +++ b/collects/tests/racket/module.rktl @@ -465,6 +465,20 @@ (test #t module-path? '(planet "foo.rkt" ("robby" "redex.plt") "sub" "deeper")) (test #t module-path? '(planet "foo%2e.rkt" ("robby%2e" "redex%2e.plt") "sub%2e" "%2edeeper")) +;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; check collection-path details + +(test-values '(not there) (lambda () + (collection-path "nonesuch" + #:fail (lambda (s) + (test #t string? s) + (values 'not 'there))))) +(test-values '(1 2) (lambda () + (collection-file-path "none.rkt" "nonesuch" + #:fail (lambda (s) + (test #t string? s) + (values 1 2))))) + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Check 'module-language, `module-compiled-language-info', and `module->language-info' diff --git a/doc/release-notes/racket/HISTORY.txt b/doc/release-notes/racket/HISTORY.txt index ed07f524c8..0aefd6ab6f 100644 --- a/doc/release-notes/racket/HISTORY.txt +++ b/doc/release-notes/racket/HISTORY.txt @@ -11,6 +11,8 @@ Added pseudo-random-generator-vector? Added port-closed-evt Generalized gcd and lcm to work on rationals Added module-predefined? +Added optional #:fail argument to collection-file-path and + collection-path Changed the racket -k command-line flag racket/class: added send/keyword-apply and dynamic-send racket/draw: added get-names to color-database<%> diff --git a/src/racket/src/cstartup.inc b/src/racket/src/cstartup.inc index 741000df87..52343679e3 100644 --- a/src/racket/src/cstartup.inc +++ b/src/racket/src/cstartup.inc @@ -1,794 +1,798 @@ { - SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,53,46,50,46,48,46,54,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,51,0,0,0,1,0,0,10,0,13,0,18, -0,25,0,30,0,33,0,46,0,53,0,58,0,62,0,66,0,73,0,82,0, -85,0,91,0,105,0,119,0,122,0,128,0,132,0,134,0,145,0,147,0,161, -0,168,0,190,0,192,0,206,0,17,1,46,1,57,1,68,1,93,1,126,1, -159,1,218,1,17,2,95,2,150,2,155,2,175,2,68,3,88,3,140,3,206, -3,95,4,237,4,34,5,45,5,124,5,0,0,83,7,0,0,69,35,37,109, -105,110,45,115,116,120,29,11,11,64,119,104,101,110,66,100,101,102,105,110,101, -64,99,111,110,100,62,111,114,72,112,97,114,97,109,101,116,101,114,105,122,101, -66,108,101,116,114,101,99,64,108,101,116,42,63,108,101,116,63,97,110,100,66, -117,110,108,101,115,115,68,104,101,114,101,45,115,116,120,29,11,11,65,113,117, -111,116,101,29,94,2,15,68,35,37,107,101,114,110,101,108,11,29,94,2,15, -68,35,37,112,97,114,97,109,122,11,62,105,102,65,98,101,103,105,110,63,115, -116,120,61,115,70,108,101,116,45,118,97,108,117,101,115,61,120,73,108,101,116, -114,101,99,45,118,97,108,117,101,115,66,108,97,109,98,100,97,1,20,112,97, -114,97,109,101,116,101,114,105,122,97,116,105,111,110,45,107,101,121,61,118,73, -100,101,102,105,110,101,45,118,97,108,117,101,115,97,36,11,8,240,152,76,0, -0,95,159,2,17,36,36,159,2,16,36,36,159,2,16,36,36,16,20,2,3, -2,2,2,4,2,2,2,5,2,2,2,6,2,2,2,7,2,2,2,8,2, -2,2,9,2,2,2,10,2,2,2,11,2,2,2,12,2,2,97,37,11,8, -240,152,76,0,0,93,159,2,16,36,37,16,2,2,13,161,2,2,37,2,13, -2,2,2,13,96,38,11,8,240,152,76,0,0,16,0,96,11,11,8,240,152, -76,0,0,16,0,18,98,64,104,101,114,101,13,16,5,36,2,14,2,2,11, -11,8,32,8,31,8,30,8,29,27,248,22,156,4,195,249,22,149,4,80,158, -39,36,251,22,83,2,18,248,22,98,199,12,249,22,73,2,19,248,22,100,201, -27,248,22,156,4,195,249,22,149,4,80,158,39,36,251,22,83,2,18,248,22, -98,199,249,22,73,2,19,248,22,100,201,12,27,248,22,75,248,22,156,4,196, -28,248,22,81,193,20,14,159,37,36,37,28,248,22,81,248,22,75,194,248,22, -74,193,249,22,149,4,80,158,39,36,251,22,83,2,18,248,22,74,199,249,22, -73,2,11,248,22,75,201,11,18,100,10,13,16,5,36,2,14,2,2,11,11, -8,32,8,31,8,30,8,29,16,4,11,11,2,20,3,1,8,101,110,118,49, -53,48,49,54,16,4,11,11,2,21,3,1,8,101,110,118,49,53,48,49,55, -27,248,22,75,248,22,156,4,196,28,248,22,81,193,20,14,159,37,36,37,28, -248,22,81,248,22,75,194,248,22,74,193,249,22,149,4,80,158,39,36,250,22, -83,2,22,248,22,83,249,22,83,248,22,83,2,23,248,22,74,201,251,22,83, -2,18,2,23,2,23,249,22,73,2,6,248,22,75,204,18,100,11,13,16,5, -36,2,14,2,2,11,11,8,32,8,31,8,30,8,29,16,4,11,11,2,20, -3,1,8,101,110,118,49,53,48,49,57,16,4,11,11,2,21,3,1,8,101, -110,118,49,53,48,50,48,248,22,156,4,193,27,248,22,156,4,194,249,22,73, -248,22,83,248,22,74,196,248,22,75,195,27,248,22,75,248,22,156,4,23,197, -1,249,22,149,4,80,158,39,36,28,248,22,58,248,22,150,4,248,22,74,23, -198,2,27,249,22,2,32,0,88,163,8,36,37,43,11,9,222,33,40,248,22, -156,4,248,22,98,23,200,2,250,22,83,2,24,248,22,83,249,22,83,248,22, -83,248,22,74,23,204,2,250,22,84,2,25,249,22,2,22,74,23,204,2,248, -22,100,23,206,2,249,22,73,248,22,74,23,202,1,249,22,2,22,98,23,200, -1,250,22,84,2,22,249,22,2,32,0,88,163,8,36,37,47,11,9,222,33, -41,248,22,156,4,248,22,74,201,248,22,75,198,27,248,22,156,4,194,249,22, -73,248,22,83,248,22,74,196,248,22,75,195,27,248,22,75,248,22,156,4,23, -197,1,249,22,149,4,80,158,39,36,250,22,84,2,24,249,22,2,32,0,88, -163,8,36,37,47,11,9,222,33,43,248,22,156,4,248,22,74,201,248,22,75, -198,27,248,22,75,248,22,156,4,196,27,248,22,156,4,248,22,74,195,249,22, -149,4,80,158,40,36,28,248,22,81,195,250,22,84,2,22,9,248,22,75,199, -250,22,83,2,10,248,22,83,248,22,74,199,250,22,84,2,9,248,22,75,201, -248,22,75,202,27,248,22,75,248,22,156,4,23,197,1,27,249,22,1,22,87, -249,22,2,22,156,4,248,22,156,4,248,22,74,199,248,22,176,4,249,22,149, -4,80,158,41,36,251,22,83,1,22,119,105,116,104,45,99,111,110,116,105,110, -117,97,116,105,111,110,45,109,97,114,107,2,26,250,22,84,1,23,101,120,116, -101,110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,21, -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,11,2,26,202,250,22,84,2,22,9,248,22, -75,204,27,248,22,75,248,22,156,4,196,28,248,22,81,193,20,14,159,37,36, -37,249,22,149,4,80,158,39,36,27,248,22,156,4,248,22,74,197,28,249,22, -140,9,62,61,62,248,22,150,4,248,22,98,196,250,22,83,2,22,248,22,83, -249,22,83,21,93,2,27,248,22,74,199,250,22,84,2,5,249,22,83,2,27, -249,22,83,248,22,107,203,2,27,248,22,75,202,251,22,83,2,18,28,249,22, -140,9,248,22,150,4,248,22,74,200,64,101,108,115,101,10,248,22,74,197,250, -22,84,2,22,9,248,22,75,200,249,22,73,2,5,248,22,75,202,99,13,16, -5,36,2,14,2,2,11,11,8,32,8,31,8,30,8,29,16,4,11,11,2, -20,3,1,8,101,110,118,49,53,48,52,50,16,4,11,11,2,21,3,1,8, -101,110,118,49,53,48,52,51,18,158,94,10,64,118,111,105,100,8,48,27,248, -22,75,248,22,156,4,196,249,22,149,4,80,158,39,36,28,248,22,58,248,22, -150,4,248,22,74,197,250,22,83,2,28,248,22,83,248,22,74,199,248,22,98, -198,27,248,22,150,4,248,22,74,197,250,22,83,2,28,248,22,83,248,22,74, -197,250,22,84,2,25,248,22,75,199,248,22,75,202,159,36,20,113,159,36,16, -1,11,16,0,20,26,146,2,1,2,1,2,2,11,11,11,10,36,80,158,36, -36,20,113,159,36,16,0,16,0,38,39,36,16,0,36,16,0,36,11,11,11, -16,10,2,3,2,4,2,5,2,6,2,7,2,8,2,9,2,10,2,11,2, -12,16,10,11,11,11,11,11,11,11,11,11,11,16,10,2,3,2,4,2,5, -2,6,2,7,2,8,2,9,2,10,2,11,2,12,36,46,37,16,0,36,16, -1,2,13,37,11,11,11,16,0,16,0,16,0,36,36,11,12,11,11,16,0, -16,0,16,0,36,36,16,11,16,5,11,20,15,16,2,20,14,159,36,36,37, -80,158,36,36,36,20,113,159,36,16,1,2,13,16,1,33,33,10,16,5,2, -12,88,163,8,36,37,53,37,9,223,0,33,34,36,20,113,159,36,16,1,2, -13,16,0,11,16,5,2,3,88,163,8,36,37,53,37,9,223,0,33,35,36, -20,113,159,36,16,1,2,13,16,0,11,16,5,2,11,88,163,8,36,37,53, -37,9,223,0,33,36,36,20,113,159,36,16,1,2,13,16,1,33,37,11,16, -5,2,6,88,163,8,36,37,56,37,9,223,0,33,38,36,20,113,159,36,16, -1,2,13,16,1,33,39,11,16,5,2,10,88,163,8,36,37,58,37,9,223, -0,33,42,36,20,113,159,36,16,1,2,13,16,0,11,16,5,2,8,88,163, -8,36,37,53,37,9,223,0,33,44,36,20,113,159,36,16,1,2,13,16,0, -11,16,5,2,9,88,163,8,36,37,54,37,9,223,0,33,45,36,20,113,159, -36,16,1,2,13,16,0,11,16,5,2,7,88,163,8,36,37,56,37,9,223, -0,33,46,36,20,113,159,36,16,1,2,13,16,0,11,16,5,2,5,88,163, -8,36,37,58,37,9,223,0,33,47,36,20,113,159,36,16,1,2,13,16,1, -33,49,11,16,5,2,4,88,163,8,36,37,54,37,9,223,0,33,50,36,20, -113,159,36,16,1,2,13,16,0,11,16,0,94,2,16,2,17,93,2,16,9, -9,36,0}; - EVAL_ONE_SIZED_STR((char *)expr, 2018); + SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,53,46,50,46,48,46,57,48,49,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,51,0,0,0,1,0,0,10,0,13, +0,20,0,25,0,29,0,32,0,37,0,50,0,57,0,61,0,66,0,73,0, +82,0,85,0,91,0,105,0,119,0,122,0,128,0,132,0,134,0,145,0,147, +0,161,0,168,0,190,0,192,0,206,0,17,1,46,1,57,1,68,1,93,1, +126,1,159,1,218,1,17,2,95,2,150,2,155,2,175,2,68,3,88,3,140, +3,206,3,95,4,237,4,34,5,45,5,124,5,0,0,83,7,0,0,69,35, +37,109,105,110,45,115,116,120,29,11,11,66,108,101,116,114,101,99,64,108,101, +116,42,63,97,110,100,62,111,114,64,119,104,101,110,72,112,97,114,97,109,101, +116,101,114,105,122,101,66,100,101,102,105,110,101,63,108,101,116,64,99,111,110, +100,66,117,110,108,101,115,115,68,104,101,114,101,45,115,116,120,29,11,11,65, +113,117,111,116,101,29,94,2,15,68,35,37,107,101,114,110,101,108,11,29,94, +2,15,68,35,37,112,97,114,97,109,122,11,62,105,102,65,98,101,103,105,110, +63,115,116,120,61,115,70,108,101,116,45,118,97,108,117,101,115,61,120,73,108, +101,116,114,101,99,45,118,97,108,117,101,115,66,108,97,109,98,100,97,1,20, +112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,45,107,101,121,61, +118,73,100,101,102,105,110,101,45,118,97,108,117,101,115,97,36,11,8,240,73, +77,0,0,95,159,2,17,36,36,159,2,16,36,36,159,2,16,36,36,16,20, +2,3,2,2,2,4,2,2,2,5,2,2,2,6,2,2,2,7,2,2,2, +8,2,2,2,9,2,2,2,10,2,2,2,11,2,2,2,12,2,2,97,37, +11,8,240,73,77,0,0,93,159,2,16,36,37,16,2,2,13,161,2,2,37, +2,13,2,2,2,13,96,38,11,8,240,73,77,0,0,16,0,96,11,11,8, +240,73,77,0,0,16,0,18,98,64,104,101,114,101,13,16,5,36,2,14,2, +2,11,11,8,32,8,31,8,30,8,29,27,248,22,156,4,195,249,22,149,4, +80,158,39,36,251,22,83,2,18,248,22,98,199,12,249,22,73,2,19,248,22, +100,201,27,248,22,156,4,195,249,22,149,4,80,158,39,36,251,22,83,2,18, +248,22,98,199,249,22,73,2,19,248,22,100,201,12,27,248,22,75,248,22,156, +4,196,28,248,22,81,193,20,14,159,37,36,37,28,248,22,81,248,22,75,194, +248,22,74,193,249,22,149,4,80,158,39,36,251,22,83,2,18,248,22,74,199, +249,22,73,2,5,248,22,75,201,11,18,100,10,13,16,5,36,2,14,2,2, +11,11,8,32,8,31,8,30,8,29,16,4,11,11,2,20,3,1,8,101,110, +118,49,53,49,56,51,16,4,11,11,2,21,3,1,8,101,110,118,49,53,49, +56,52,27,248,22,75,248,22,156,4,196,28,248,22,81,193,20,14,159,37,36, +37,28,248,22,81,248,22,75,194,248,22,74,193,249,22,149,4,80,158,39,36, +250,22,83,2,22,248,22,83,249,22,83,248,22,83,2,23,248,22,74,201,251, +22,83,2,18,2,23,2,23,249,22,73,2,6,248,22,75,204,18,100,11,13, +16,5,36,2,14,2,2,11,11,8,32,8,31,8,30,8,29,16,4,11,11, +2,20,3,1,8,101,110,118,49,53,49,56,54,16,4,11,11,2,21,3,1, +8,101,110,118,49,53,49,56,55,248,22,156,4,193,27,248,22,156,4,194,249, +22,73,248,22,83,248,22,74,196,248,22,75,195,27,248,22,75,248,22,156,4, +23,197,1,249,22,149,4,80,158,39,36,28,248,22,58,248,22,150,4,248,22, +74,23,198,2,27,249,22,2,32,0,88,163,8,36,37,43,11,9,222,33,40, +248,22,156,4,248,22,98,23,200,2,250,22,83,2,24,248,22,83,249,22,83, +248,22,83,248,22,74,23,204,2,250,22,84,2,25,249,22,2,22,74,23,204, +2,248,22,100,23,206,2,249,22,73,248,22,74,23,202,1,249,22,2,22,98, +23,200,1,250,22,84,2,22,249,22,2,32,0,88,163,8,36,37,47,11,9, +222,33,41,248,22,156,4,248,22,74,201,248,22,75,198,27,248,22,156,4,194, +249,22,73,248,22,83,248,22,74,196,248,22,75,195,27,248,22,75,248,22,156, +4,23,197,1,249,22,149,4,80,158,39,36,250,22,84,2,24,249,22,2,32, +0,88,163,8,36,37,47,11,9,222,33,43,248,22,156,4,248,22,74,201,248, +22,75,198,27,248,22,75,248,22,156,4,196,27,248,22,156,4,248,22,74,195, +249,22,149,4,80,158,40,36,28,248,22,81,195,250,22,84,2,22,9,248,22, +75,199,250,22,83,2,10,248,22,83,248,22,74,199,250,22,84,2,4,248,22, +75,201,248,22,75,202,27,248,22,75,248,22,156,4,23,197,1,27,249,22,1, +22,87,249,22,2,22,156,4,248,22,156,4,248,22,74,199,248,22,176,4,249, +22,149,4,80,158,41,36,251,22,83,1,22,119,105,116,104,45,99,111,110,116, +105,110,117,97,116,105,111,110,45,109,97,114,107,2,26,250,22,84,1,23,101, +120,116,101,110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111, +110,21,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,11,2,26,202,250,22,84,2,22,9, +248,22,75,204,27,248,22,75,248,22,156,4,196,28,248,22,81,193,20,14,159, +37,36,37,249,22,149,4,80,158,39,36,27,248,22,156,4,248,22,74,197,28, +249,22,140,9,62,61,62,248,22,150,4,248,22,98,196,250,22,83,2,22,248, +22,83,249,22,83,21,93,2,27,248,22,74,199,250,22,84,2,11,249,22,83, +2,27,249,22,83,248,22,107,203,2,27,248,22,75,202,251,22,83,2,18,28, +249,22,140,9,248,22,150,4,248,22,74,200,64,101,108,115,101,10,248,22,74, +197,250,22,84,2,22,9,248,22,75,200,249,22,73,2,11,248,22,75,202,99, +13,16,5,36,2,14,2,2,11,11,8,32,8,31,8,30,8,29,16,4,11, +11,2,20,3,1,8,101,110,118,49,53,50,48,57,16,4,11,11,2,21,3, +1,8,101,110,118,49,53,50,49,48,18,158,94,10,64,118,111,105,100,8,48, +27,248,22,75,248,22,156,4,196,249,22,149,4,80,158,39,36,28,248,22,58, +248,22,150,4,248,22,74,197,250,22,83,2,28,248,22,83,248,22,74,199,248, +22,98,198,27,248,22,150,4,248,22,74,197,250,22,83,2,28,248,22,83,248, +22,74,197,250,22,84,2,25,248,22,75,199,248,22,75,202,159,36,20,113,159, +36,16,1,11,16,0,20,26,146,2,1,2,1,2,2,11,11,11,10,36,80, +158,36,36,20,113,159,36,16,0,16,0,38,39,36,16,0,36,16,0,36,11, +11,11,16,10,2,3,2,4,2,5,2,6,2,7,2,8,2,9,2,10,2, +11,2,12,16,10,11,11,11,11,11,11,11,11,11,11,16,10,2,3,2,4, +2,5,2,6,2,7,2,8,2,9,2,10,2,11,2,12,36,46,37,16,0, +36,16,1,2,13,37,11,11,11,16,0,16,0,16,0,36,36,11,12,11,11, +16,0,16,0,16,0,36,36,16,11,16,5,11,20,15,16,2,20,14,159,36, +36,37,80,158,36,36,36,20,113,159,36,16,1,2,13,16,1,33,33,10,16, +5,2,12,88,163,8,36,37,53,37,9,223,0,33,34,36,20,113,159,36,16, +1,2,13,16,0,11,16,5,2,7,88,163,8,36,37,53,37,9,223,0,33, +35,36,20,113,159,36,16,1,2,13,16,0,11,16,5,2,5,88,163,8,36, +37,53,37,9,223,0,33,36,36,20,113,159,36,16,1,2,13,16,1,33,37, +11,16,5,2,6,88,163,8,36,37,56,37,9,223,0,33,38,36,20,113,159, +36,16,1,2,13,16,1,33,39,11,16,5,2,10,88,163,8,36,37,58,37, +9,223,0,33,42,36,20,113,159,36,16,1,2,13,16,0,11,16,5,2,3, +88,163,8,36,37,53,37,9,223,0,33,44,36,20,113,159,36,16,1,2,13, +16,0,11,16,5,2,4,88,163,8,36,37,54,37,9,223,0,33,45,36,20, +113,159,36,16,1,2,13,16,0,11,16,5,2,8,88,163,8,36,37,56,37, +9,223,0,33,46,36,20,113,159,36,16,1,2,13,16,0,11,16,5,2,11, +88,163,8,36,37,58,37,9,223,0,33,47,36,20,113,159,36,16,1,2,13, +16,1,33,49,11,16,5,2,9,88,163,8,36,37,54,37,9,223,0,33,50, +36,20,113,159,36,16,1,2,13,16,0,11,16,0,94,2,16,2,17,93,2, +16,9,9,36,0}; + EVAL_ONE_SIZED_STR((char *)expr, 2020); } { - SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,53,46,50,46,48,46,54,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,108,0,0,0,1,0,0,8,0,21,0,26, -0,43,0,65,0,94,0,109,0,127,0,143,0,157,0,179,0,195,0,212,0, -234,0,245,0,251,0,4,1,11,1,18,1,30,1,46,1,70,1,102,1,120, -1,140,1,156,1,174,1,205,1,219,1,224,1,234,1,23,2,31,2,40,2, -42,2,70,2,102,2,115,2,121,2,166,2,169,2,173,2,197,2,236,2,250, -2,4,3,15,3,182,3,26,5,144,5,6,6,47,6,77,7,100,7,117,7, -65,9,168,9,182,9,86,10,15,12,24,12,33,12,47,12,57,12,98,13,200, -13,30,14,116,14,216,14,44,15,58,15,172,15,0,16,14,16,223,16,231,16, -81,17,144,17,146,17,2,18,62,18,67,18,190,18,201,18,81,19,91,19,14, -21,36,21,45,21,38,22,56,22,70,22,29,23,48,23,242,25,102,30,16,31, -161,31,146,32,128,33,135,33,142,33,223,33,50,34,135,34,161,34,34,35,0, -0,148,39,0,0,67,35,37,117,116,105,108,115,72,112,97,116,104,45,115,116, -114,105,110,103,63,64,98,115,98,115,76,110,111,114,109,97,108,45,99,97,115, -101,45,112,97,116,104,1,20,102,105,110,100,45,101,120,101,99,117,116,97,98, -108,101,45,112,97,116,104,1,27,112,97,116,104,45,108,105,115,116,45,115,116, -114,105,110,103,45,62,112,97,116,104,45,108,105,115,116,74,45,99,104,101,99, -107,45,114,101,108,112,97,116,104,77,45,99,104,101,99,107,45,99,111,108,108, -101,99,116,105,111,110,75,99,111,108,108,101,99,116,105,111,110,45,112,97,116, -104,73,102,105,110,100,45,99,111,108,45,102,105,108,101,1,20,99,111,108,108, -101,99,116,105,111,110,45,102,105,108,101,45,112,97,116,104,75,117,115,101,114, -45,108,105,110,107,115,45,112,97,116,104,76,117,115,101,114,45,108,105,110,107, -115,45,99,97,99,104,101,1,20,117,115,101,114,45,108,105,110,107,115,45,116, -105,109,101,115,116,97,109,112,70,108,105,110,107,115,45,112,97,116,104,65,113, -117,111,116,101,68,35,37,112,97,114,97,109,122,29,94,2,16,2,17,11,29, -94,2,16,2,17,11,71,108,105,110,107,115,45,99,97,99,104,101,75,108,105, -110,107,115,45,116,105,109,101,115,116,97,109,112,1,22,103,101,116,45,108,105, -110,107,101,100,45,99,111,108,108,101,99,116,105,111,110,115,1,30,110,111,114, -109,97,108,105,122,101,45,99,111,108,108,101,99,116,105,111,110,45,114,101,102, -101,114,101,110,99,101,77,99,104,101,99,107,45,115,117,102,102,105,120,45,99, -97,108,108,79,112,97,116,104,45,114,101,112,108,97,99,101,45,115,117,102,102, -105,120,75,112,97,116,104,45,97,100,100,45,115,117,102,102,105,120,77,108,111, -97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,1,29,102,105,110,100, -45,108,105,98,114,97,114,121,45,99,111,108,108,101,99,116,105,111,110,45,112, -97,116,104,115,73,101,109,98,101,100,100,101,100,45,108,111,97,100,64,108,111, -111,112,69,101,120,101,99,45,102,105,108,101,6,42,42,112,97,116,104,32,40, -102,111,114,32,97,110,121,32,115,121,115,116,101,109,41,32,111,114,32,118,97, -108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,67,119,105,110,100,111, -119,115,68,114,101,108,97,116,105,118,101,5,0,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,6, -29,29,126,97,58,32,105,110,118,97,108,105,100,32,114,101,108,97,116,105,118, -101,32,112,97,116,104,58,32,126,115,72,99,111,108,108,101,99,116,115,45,100, -105,114,65,101,114,114,111,114,6,42,42,101,114,114,111,114,32,114,101,97,100, -105,110,103,32,99,111,108,108,101,99,116,105,111,110,32,108,105,110,107,115,32, -102,105,108,101,32,126,115,58,32,126,97,6,0,0,6,1,1,47,6,21,21, -115,116,114,105,110,103,32,111,114,32,98,121,116,101,32,115,116,114,105,110,103, -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,6,11,11, -80,76,84,67,79,76,76,69,67,84,83,69,97,100,100,111,110,45,100,105,114, -6,8,8,99,111,108,108,101,99,116,115,27,20,13,159,80,159,37,51,37,250, -80,159,40,52,37,249,22,27,11,80,159,42,51,37,22,130,14,10,248,22,129, -6,23,196,2,28,248,22,189,6,23,194,2,12,86,94,248,22,148,9,23,194, -1,27,20,13,159,80,159,38,51,37,250,80,159,41,52,37,249,22,27,11,80, -159,43,51,37,22,130,14,10,248,22,129,6,23,197,2,28,248,22,189,6,23, -194,2,12,86,94,248,22,148,9,23,194,1,27,20,13,159,80,159,39,51,37, -250,80,159,42,52,37,249,22,27,11,80,159,44,51,37,22,130,14,10,248,22, -129,6,23,198,2,28,248,22,189,6,23,194,2,12,86,94,248,22,148,9,23, -194,1,248,80,159,40,8,31,39,197,28,248,22,81,23,195,2,9,27,248,22, -74,23,196,2,27,28,248,22,180,14,23,195,2,23,194,1,28,248,22,179,14, -23,195,2,249,22,181,14,23,196,1,250,80,159,43,39,39,248,22,132,15,2, -31,11,10,250,80,159,41,39,39,248,22,132,15,2,31,23,197,1,10,28,23, -193,2,249,22,73,248,22,183,14,249,22,181,14,23,198,1,247,22,133,15,27, -248,22,75,23,200,1,28,248,22,81,23,194,2,9,27,248,22,74,23,195,2, + SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,53,46,50,46,48,46,57,48,49,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,109,0,0,0,1,0,0,8,0,21, +0,26,0,43,0,65,0,94,0,109,0,127,0,139,0,155,0,169,0,191,0, +207,0,224,0,246,0,1,1,7,1,16,1,23,1,30,1,42,1,58,1,82, +1,114,1,132,1,152,1,168,1,186,1,217,1,231,1,236,1,246,1,35,2, +43,2,52,2,54,2,82,2,114,2,136,2,149,2,155,2,200,2,203,2,207, +2,231,2,14,3,28,3,38,3,49,3,216,3,60,5,178,5,40,6,81,6, +111,7,134,7,151,7,99,9,202,9,216,9,120,10,49,12,58,12,67,12,81, +12,91,12,132,13,234,13,64,14,150,14,250,14,15,15,99,15,221,15,49,16, +241,16,249,16,99,17,162,17,164,17,20,18,80,18,85,18,208,18,219,18,99, +19,109,19,35,21,57,21,66,21,59,22,77,22,91,22,50,23,69,23,7,26, +121,30,32,31,177,31,162,32,144,33,151,33,158,33,239,33,66,34,151,34,177, +34,50,35,0,0,186,39,0,0,67,35,37,117,116,105,108,115,72,112,97,116, +104,45,115,116,114,105,110,103,63,64,98,115,98,115,76,110,111,114,109,97,108, +45,99,97,115,101,45,112,97,116,104,1,20,102,105,110,100,45,101,120,101,99, +117,116,97,98,108,101,45,112,97,116,104,1,27,112,97,116,104,45,108,105,115, +116,45,115,116,114,105,110,103,45,62,112,97,116,104,45,108,105,115,116,74,45, +99,104,101,99,107,45,114,101,108,112,97,116,104,77,45,99,104,101,99,107,45, +99,111,108,108,101,99,116,105,111,110,71,45,99,104,101,99,107,45,102,97,105, +108,75,99,111,108,108,101,99,116,105,111,110,45,112,97,116,104,73,102,105,110, +100,45,99,111,108,45,102,105,108,101,1,20,99,111,108,108,101,99,116,105,111, +110,45,102,105,108,101,45,112,97,116,104,75,117,115,101,114,45,108,105,110,107, +115,45,112,97,116,104,76,117,115,101,114,45,108,105,110,107,115,45,99,97,99, +104,101,1,20,117,115,101,114,45,108,105,110,107,115,45,116,105,109,101,115,116, +97,109,112,70,108,105,110,107,115,45,112,97,116,104,65,113,117,111,116,101,68, +35,37,112,97,114,97,109,122,29,94,2,17,2,18,11,29,94,2,17,2,18, +11,71,108,105,110,107,115,45,99,97,99,104,101,75,108,105,110,107,115,45,116, +105,109,101,115,116,97,109,112,1,22,103,101,116,45,108,105,110,107,101,100,45, +99,111,108,108,101,99,116,105,111,110,115,1,30,110,111,114,109,97,108,105,122, +101,45,99,111,108,108,101,99,116,105,111,110,45,114,101,102,101,114,101,110,99, +101,77,99,104,101,99,107,45,115,117,102,102,105,120,45,99,97,108,108,79,112, +97,116,104,45,114,101,112,108,97,99,101,45,115,117,102,102,105,120,75,112,97, +116,104,45,97,100,100,45,115,117,102,102,105,120,77,108,111,97,100,47,117,115, +101,45,99,111,109,112,105,108,101,100,1,29,102,105,110,100,45,108,105,98,114, +97,114,121,45,99,111,108,108,101,99,116,105,111,110,45,112,97,116,104,115,73, +101,109,98,101,100,100,101,100,45,108,111,97,100,64,108,111,111,112,69,101,120, +101,99,45,102,105,108,101,6,42,42,112,97,116,104,32,40,102,111,114,32,97, +110,121,32,115,121,115,116,101,109,41,32,111,114,32,118,97,108,105,100,45,112, +97,116,104,32,115,116,114,105,110,103,67,119,105,110,100,111,119,115,68,114,101, +108,97,116,105,118,101,5,0,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,6,29,29,126,97,58, +32,105,110,118,97,108,105,100,32,114,101,108,97,116,105,118,101,32,112,97,116, +104,58,32,126,115,6,19,19,112,114,111,99,101,100,117,114,101,32,40,97,114, +105,116,121,32,49,41,72,99,111,108,108,101,99,116,115,45,100,105,114,65,101, +114,114,111,114,6,42,42,101,114,114,111,114,32,114,101,97,100,105,110,103,32, +99,111,108,108,101,99,116,105,111,110,32,108,105,110,107,115,32,102,105,108,101, +32,126,115,58,32,126,97,6,0,0,6,1,1,47,6,21,21,115,116,114,105, +110,103,32,111,114,32,98,121,116,101,32,115,116,114,105,110,103,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,6,11,11,80,76,84,67, +79,76,76,69,67,84,83,69,97,100,100,111,110,45,100,105,114,6,8,8,99, +111,108,108,101,99,116,115,27,20,13,159,80,159,37,52,37,250,80,159,40,53, +37,249,22,27,11,80,159,42,52,37,22,130,14,10,248,22,129,6,23,196,2, +28,248,22,189,6,23,194,2,12,86,94,248,22,148,9,23,194,1,27,20,13, +159,80,159,38,52,37,250,80,159,41,53,37,249,22,27,11,80,159,43,52,37, +22,130,14,10,248,22,129,6,23,197,2,28,248,22,189,6,23,194,2,12,86, +94,248,22,148,9,23,194,1,27,20,13,159,80,159,39,52,37,250,80,159,42, +53,37,249,22,27,11,80,159,44,52,37,22,130,14,10,248,22,129,6,23,198, +2,28,248,22,189,6,23,194,2,12,86,94,248,22,148,9,23,194,1,248,80, +159,40,8,32,39,197,28,248,22,81,23,195,2,9,27,248,22,74,23,196,2, 27,28,248,22,180,14,23,195,2,23,194,1,28,248,22,179,14,23,195,2,249, -22,181,14,23,196,1,250,80,159,48,39,39,248,22,132,15,2,31,11,10,250, -80,159,46,39,39,248,22,132,15,2,31,23,197,1,10,28,23,193,2,249,22, -73,248,22,183,14,249,22,181,14,23,198,1,247,22,133,15,248,80,159,46,8, -30,39,248,22,75,23,199,1,86,94,23,193,1,248,80,159,44,8,30,39,248, -22,75,23,197,1,86,94,23,193,1,27,248,22,75,23,198,1,28,248,22,81, -23,194,2,9,27,248,22,74,23,195,2,27,28,248,22,180,14,23,195,2,23, -194,1,28,248,22,179,14,23,195,2,249,22,181,14,23,196,1,250,80,159,46, -39,39,248,22,132,15,2,31,11,10,250,80,159,44,39,39,248,22,132,15,2, -31,23,197,1,10,28,23,193,2,249,22,73,248,22,183,14,249,22,181,14,23, -198,1,247,22,133,15,248,80,159,44,8,30,39,248,22,75,23,199,1,248,80, -159,42,8,30,39,248,22,75,196,28,248,22,81,23,195,2,9,27,248,22,74, -23,196,2,27,28,248,22,180,14,23,195,2,23,194,1,28,248,22,179,14,23, -195,2,249,22,181,14,23,196,1,250,80,159,43,39,39,248,22,132,15,2,31, -11,10,250,80,159,41,39,39,248,22,132,15,2,31,23,197,1,10,28,23,193, -2,249,22,73,248,22,183,14,249,22,181,14,23,198,1,247,22,133,15,248,80, -159,41,8,29,39,248,22,75,23,200,1,248,80,159,39,8,29,39,248,22,75, -197,28,248,22,81,23,195,2,9,27,248,22,74,23,196,2,27,28,248,22,180, -14,23,195,2,23,194,1,28,248,22,179,14,23,195,2,249,22,181,14,23,196, -1,250,80,159,43,39,39,248,22,132,15,2,31,11,10,250,80,159,41,39,39, -248,22,132,15,2,31,23,197,1,10,28,23,193,2,249,22,73,248,22,183,14, -249,22,181,14,23,198,1,247,22,133,15,248,80,159,41,8,28,39,248,22,75, -23,200,1,248,80,159,39,8,28,39,248,22,75,197,27,248,22,156,14,23,195, -2,28,23,193,2,192,86,94,23,193,1,28,248,22,130,7,23,195,2,27,248, -22,178,14,195,28,192,192,248,22,179,14,195,11,86,94,28,28,248,22,157,14, -23,195,2,10,28,248,22,156,14,23,195,2,10,28,248,22,130,7,23,195,2, +22,181,14,23,196,1,250,80,159,43,39,39,248,22,132,15,2,32,11,10,250, +80,159,41,39,39,248,22,132,15,2,32,23,197,1,10,28,23,193,2,249,22, +73,248,22,183,14,249,22,181,14,23,198,1,247,22,133,15,27,248,22,75,23, +200,1,28,248,22,81,23,194,2,9,27,248,22,74,23,195,2,27,28,248,22, +180,14,23,195,2,23,194,1,28,248,22,179,14,23,195,2,249,22,181,14,23, +196,1,250,80,159,48,39,39,248,22,132,15,2,32,11,10,250,80,159,46,39, +39,248,22,132,15,2,32,23,197,1,10,28,23,193,2,249,22,73,248,22,183, +14,249,22,181,14,23,198,1,247,22,133,15,248,80,159,46,8,31,39,248,22, +75,23,199,1,86,94,23,193,1,248,80,159,44,8,31,39,248,22,75,23,197, +1,86,94,23,193,1,27,248,22,75,23,198,1,28,248,22,81,23,194,2,9, +27,248,22,74,23,195,2,27,28,248,22,180,14,23,195,2,23,194,1,28,248, +22,179,14,23,195,2,249,22,181,14,23,196,1,250,80,159,46,39,39,248,22, +132,15,2,32,11,10,250,80,159,44,39,39,248,22,132,15,2,32,23,197,1, +10,28,23,193,2,249,22,73,248,22,183,14,249,22,181,14,23,198,1,247,22, +133,15,248,80,159,44,8,31,39,248,22,75,23,199,1,248,80,159,42,8,31, +39,248,22,75,196,28,248,22,81,23,195,2,9,27,248,22,74,23,196,2,27, +28,248,22,180,14,23,195,2,23,194,1,28,248,22,179,14,23,195,2,249,22, +181,14,23,196,1,250,80,159,43,39,39,248,22,132,15,2,32,11,10,250,80, +159,41,39,39,248,22,132,15,2,32,23,197,1,10,28,23,193,2,249,22,73, +248,22,183,14,249,22,181,14,23,198,1,247,22,133,15,248,80,159,41,8,30, +39,248,22,75,23,200,1,248,80,159,39,8,30,39,248,22,75,197,28,248,22, +81,23,195,2,9,27,248,22,74,23,196,2,27,28,248,22,180,14,23,195,2, +23,194,1,28,248,22,179,14,23,195,2,249,22,181,14,23,196,1,250,80,159, +43,39,39,248,22,132,15,2,32,11,10,250,80,159,41,39,39,248,22,132,15, +2,32,23,197,1,10,28,23,193,2,249,22,73,248,22,183,14,249,22,181,14, +23,198,1,247,22,133,15,248,80,159,41,8,29,39,248,22,75,23,200,1,248, +80,159,39,8,29,39,248,22,75,197,27,248,22,156,14,23,195,2,28,23,193, +2,192,86,94,23,193,1,28,248,22,130,7,23,195,2,27,248,22,178,14,195, +28,192,192,248,22,179,14,195,11,86,94,28,28,248,22,157,14,23,195,2,10, +28,248,22,156,14,23,195,2,10,28,248,22,130,7,23,195,2,28,248,22,178, +14,23,195,2,10,248,22,179,14,23,195,2,11,12,250,22,176,9,76,110,111, +114,109,97,108,45,112,97,116,104,45,99,97,115,101,2,33,23,197,2,28,28, +248,22,157,14,23,195,2,249,22,140,9,248,22,158,14,23,197,2,2,34,249, +22,140,9,247,22,152,8,2,34,27,28,248,22,130,7,23,196,2,23,195,2, +248,22,142,8,248,22,161,14,23,197,2,28,249,22,148,15,0,21,35,114,120, +34,94,91,92,92,93,91,92,92,93,91,63,93,91,92,92,93,34,23,195,2, +28,248,22,130,7,195,248,22,164,14,195,194,27,248,22,169,7,23,195,1,249, +22,165,14,248,22,145,8,250,22,156,15,0,6,35,114,120,34,47,34,28,249, +22,148,15,0,22,35,114,120,34,91,47,92,92,93,91,46,32,93,43,91,47, +92,92,93,42,36,34,23,201,2,23,199,1,250,22,156,15,0,19,35,114,120, +34,91,32,46,93,43,40,91,47,92,92,93,42,41,36,34,23,202,1,6,2, +2,92,49,80,159,44,37,38,2,34,28,248,22,130,7,194,248,22,164,14,194, +193,32,56,88,163,8,36,39,53,11,70,102,111,117,110,100,45,101,120,101,99, +222,33,59,32,57,88,163,8,36,40,58,11,64,110,101,120,116,222,33,58,27, +248,22,182,14,23,196,2,28,249,22,142,9,23,195,2,23,197,1,11,28,248, +22,178,14,23,194,2,27,249,22,174,14,23,197,1,23,196,1,28,23,197,2, +90,159,39,11,89,161,39,36,11,248,22,177,14,23,197,2,86,95,23,195,1, +23,194,1,27,28,23,202,2,27,248,22,182,14,23,199,2,28,249,22,142,9, +23,195,2,23,200,2,11,28,248,22,178,14,23,194,2,250,2,56,23,205,2, +23,206,2,249,22,174,14,23,200,2,23,198,1,250,2,56,23,205,2,23,206, +2,23,196,1,11,28,23,193,2,192,86,94,23,193,1,27,28,248,22,156,14, +23,196,2,27,249,22,174,14,23,198,2,23,205,2,28,28,248,22,169,14,193, +10,248,22,168,14,193,192,11,11,28,23,193,2,192,86,94,23,193,1,28,23, +203,2,11,27,248,22,182,14,23,200,2,28,249,22,142,9,23,195,2,23,201, +1,11,28,248,22,178,14,23,194,2,250,2,56,23,206,1,23,207,1,249,22, +174,14,23,201,1,23,198,1,250,2,56,205,206,195,192,86,94,23,194,1,28, +23,196,2,90,159,39,11,89,161,39,36,11,248,22,177,14,23,197,2,86,95, +23,195,1,23,194,1,27,28,23,201,2,27,248,22,182,14,23,199,2,28,249, +22,142,9,23,195,2,23,200,2,11,28,248,22,178,14,23,194,2,250,2,56, +23,204,2,23,205,2,249,22,174,14,23,200,2,23,198,1,250,2,56,23,204, +2,23,205,2,23,196,1,11,28,23,193,2,192,86,94,23,193,1,27,28,248, +22,156,14,23,196,2,27,249,22,174,14,23,198,2,23,204,2,28,28,248,22, +169,14,193,10,248,22,168,14,193,192,11,11,28,23,193,2,192,86,94,23,193, +1,28,23,202,2,11,27,248,22,182,14,23,200,2,28,249,22,142,9,23,195, +2,23,201,1,11,28,248,22,178,14,23,194,2,250,2,56,23,205,1,23,206, +1,249,22,174,14,23,201,1,23,198,1,250,2,56,204,205,195,192,28,23,193, +2,90,159,39,11,89,161,39,36,11,248,22,177,14,23,199,2,86,95,23,195, +1,23,194,1,27,28,23,198,2,251,2,57,23,198,2,23,203,2,23,201,2, +23,202,2,11,28,23,193,2,192,86,94,23,193,1,27,28,248,22,156,14,195, +27,249,22,174,14,197,200,28,28,248,22,169,14,193,10,248,22,168,14,193,192, +11,11,28,192,192,28,198,11,251,2,57,198,203,201,202,194,32,60,88,163,8, +36,40,58,11,2,31,222,33,61,28,248,22,81,23,197,2,11,27,248,22,181, +14,248,22,74,23,199,2,27,249,22,174,14,23,196,1,23,197,2,28,248,22, +168,14,23,194,2,250,2,56,198,199,195,86,94,23,193,1,27,248,22,75,23, +200,1,28,248,22,81,23,194,2,11,27,248,22,181,14,248,22,74,23,196,2, +27,249,22,174,14,23,196,1,23,200,2,28,248,22,168,14,23,194,2,250,2, +56,201,202,195,86,94,23,193,1,27,248,22,75,23,197,1,28,248,22,81,23, +194,2,11,27,248,22,181,14,248,22,74,195,27,249,22,174,14,23,196,1,202, +28,248,22,168,14,193,250,2,56,204,205,195,251,2,60,204,205,206,248,22,75, +199,86,95,28,28,248,22,156,14,23,195,2,10,28,248,22,130,7,23,195,2, 28,248,22,178,14,23,195,2,10,248,22,179,14,23,195,2,11,12,250,22,176, -9,76,110,111,114,109,97,108,45,112,97,116,104,45,99,97,115,101,2,32,23, -197,2,28,28,248,22,157,14,23,195,2,249,22,140,9,248,22,158,14,23,197, -2,2,33,249,22,140,9,247,22,152,8,2,33,27,28,248,22,130,7,23,196, -2,23,195,2,248,22,142,8,248,22,161,14,23,197,2,28,249,22,148,15,0, -21,35,114,120,34,94,91,92,92,93,91,92,92,93,91,63,93,91,92,92,93, -34,23,195,2,28,248,22,130,7,195,248,22,164,14,195,194,27,248,22,169,7, -23,195,1,249,22,165,14,248,22,145,8,250,22,156,15,0,6,35,114,120,34, -47,34,28,249,22,148,15,0,22,35,114,120,34,91,47,92,92,93,91,46,32, -93,43,91,47,92,92,93,42,36,34,23,201,2,23,199,1,250,22,156,15,0, -19,35,114,120,34,91,32,46,93,43,40,91,47,92,92,93,42,41,36,34,23, -202,1,6,2,2,92,49,80,159,44,37,38,2,33,28,248,22,130,7,194,248, -22,164,14,194,193,32,54,88,163,8,36,39,53,11,70,102,111,117,110,100,45, -101,120,101,99,222,33,57,32,55,88,163,8,36,40,58,11,64,110,101,120,116, -222,33,56,27,248,22,182,14,23,196,2,28,249,22,142,9,23,195,2,23,197, -1,11,28,248,22,178,14,23,194,2,27,249,22,174,14,23,197,1,23,196,1, -28,23,197,2,90,159,39,11,89,161,39,36,11,248,22,177,14,23,197,2,86, -95,23,195,1,23,194,1,27,28,23,202,2,27,248,22,182,14,23,199,2,28, -249,22,142,9,23,195,2,23,200,2,11,28,248,22,178,14,23,194,2,250,2, -54,23,205,2,23,206,2,249,22,174,14,23,200,2,23,198,1,250,2,54,23, -205,2,23,206,2,23,196,1,11,28,23,193,2,192,86,94,23,193,1,27,28, -248,22,156,14,23,196,2,27,249,22,174,14,23,198,2,23,205,2,28,28,248, -22,169,14,193,10,248,22,168,14,193,192,11,11,28,23,193,2,192,86,94,23, -193,1,28,23,203,2,11,27,248,22,182,14,23,200,2,28,249,22,142,9,23, -195,2,23,201,1,11,28,248,22,178,14,23,194,2,250,2,54,23,206,1,23, -207,1,249,22,174,14,23,201,1,23,198,1,250,2,54,205,206,195,192,86,94, -23,194,1,28,23,196,2,90,159,39,11,89,161,39,36,11,248,22,177,14,23, -197,2,86,95,23,195,1,23,194,1,27,28,23,201,2,27,248,22,182,14,23, -199,2,28,249,22,142,9,23,195,2,23,200,2,11,28,248,22,178,14,23,194, -2,250,2,54,23,204,2,23,205,2,249,22,174,14,23,200,2,23,198,1,250, -2,54,23,204,2,23,205,2,23,196,1,11,28,23,193,2,192,86,94,23,193, -1,27,28,248,22,156,14,23,196,2,27,249,22,174,14,23,198,2,23,204,2, -28,28,248,22,169,14,193,10,248,22,168,14,193,192,11,11,28,23,193,2,192, -86,94,23,193,1,28,23,202,2,11,27,248,22,182,14,23,200,2,28,249,22, -142,9,23,195,2,23,201,1,11,28,248,22,178,14,23,194,2,250,2,54,23, -205,1,23,206,1,249,22,174,14,23,201,1,23,198,1,250,2,54,204,205,195, -192,28,23,193,2,90,159,39,11,89,161,39,36,11,248,22,177,14,23,199,2, -86,95,23,195,1,23,194,1,27,28,23,198,2,251,2,55,23,198,2,23,203, -2,23,201,2,23,202,2,11,28,23,193,2,192,86,94,23,193,1,27,28,248, -22,156,14,195,27,249,22,174,14,197,200,28,28,248,22,169,14,193,10,248,22, -168,14,193,192,11,11,28,192,192,28,198,11,251,2,55,198,203,201,202,194,32, -58,88,163,8,36,40,58,11,2,30,222,33,59,28,248,22,81,23,197,2,11, -27,248,22,181,14,248,22,74,23,199,2,27,249,22,174,14,23,196,1,23,197, -2,28,248,22,168,14,23,194,2,250,2,54,198,199,195,86,94,23,193,1,27, -248,22,75,23,200,1,28,248,22,81,23,194,2,11,27,248,22,181,14,248,22, -74,23,196,2,27,249,22,174,14,23,196,1,23,200,2,28,248,22,168,14,23, -194,2,250,2,54,201,202,195,86,94,23,193,1,27,248,22,75,23,197,1,28, -248,22,81,23,194,2,11,27,248,22,181,14,248,22,74,195,27,249,22,174,14, -23,196,1,202,28,248,22,168,14,193,250,2,54,204,205,195,251,2,58,204,205, -206,248,22,75,199,86,95,28,28,248,22,156,14,23,195,2,10,28,248,22,130, -7,23,195,2,28,248,22,178,14,23,195,2,10,248,22,179,14,23,195,2,11, -12,250,22,176,9,2,5,6,25,25,112,97,116,104,32,111,114,32,115,116,114, -105,110,103,32,40,115,97,110,115,32,110,117,108,41,23,197,2,28,28,23,195, -2,28,28,248,22,156,14,23,196,2,10,28,248,22,130,7,23,196,2,28,248, -22,178,14,23,196,2,10,248,22,179,14,23,196,2,11,248,22,178,14,23,196, -2,11,10,12,250,22,176,9,2,5,6,29,29,35,102,32,111,114,32,114,101, -108,97,116,105,118,101,32,112,97,116,104,32,111,114,32,115,116,114,105,110,103, -23,198,2,28,28,248,22,178,14,23,195,2,90,159,39,11,89,161,39,36,11, -248,22,177,14,23,198,2,249,22,140,9,194,2,34,11,27,248,22,150,8,6, -4,4,80,65,84,72,27,28,23,194,2,27,249,80,158,41,40,23,197,1,9, -28,249,22,140,9,247,22,152,8,2,33,249,22,73,248,22,165,14,5,1,46, -194,192,86,94,23,194,1,9,28,248,22,81,23,194,2,11,27,248,22,181,14, -248,22,74,23,196,2,27,249,22,174,14,23,196,1,23,200,2,28,248,22,168, -14,23,194,2,250,2,54,201,202,195,86,94,23,193,1,27,248,22,75,23,197, -1,28,248,22,81,23,194,2,11,27,248,22,181,14,248,22,74,23,196,2,27, -249,22,174,14,23,196,1,23,203,2,28,248,22,168,14,23,194,2,250,2,54, -204,205,195,86,94,23,193,1,27,248,22,75,23,197,1,28,248,22,81,23,194, -2,11,27,248,22,181,14,248,22,74,195,27,249,22,174,14,23,196,1,205,28, -248,22,168,14,193,250,2,54,23,15,23,16,195,251,2,58,23,15,23,16,23, -17,248,22,75,199,27,248,22,181,14,23,196,1,28,248,22,168,14,193,250,2, -54,198,199,195,11,250,80,159,39,39,39,196,197,11,250,80,159,39,39,39,196, -11,11,32,63,88,163,8,36,39,57,11,2,30,222,33,65,0,8,35,114,120, -35,34,92,34,34,27,249,22,144,15,23,197,2,23,198,2,28,23,193,2,86, -94,23,196,1,27,248,22,98,23,195,2,27,27,248,22,107,23,197,1,27,249, -22,144,15,23,201,2,23,196,2,28,23,193,2,86,94,23,194,1,27,248,22, -98,23,195,2,27,250,2,63,23,203,2,23,204,1,248,22,107,23,199,1,28, -249,22,191,7,23,196,2,2,35,249,22,87,23,202,2,194,249,22,73,248,22, -165,14,28,249,22,140,9,247,22,152,8,2,33,250,22,156,15,2,64,23,200, -1,2,35,23,197,1,194,86,95,23,199,1,23,193,1,28,249,22,191,7,23, -196,2,2,35,249,22,87,23,200,2,9,249,22,73,248,22,165,14,28,249,22, -140,9,247,22,152,8,2,33,250,22,156,15,2,64,23,200,1,2,35,23,197, -1,9,28,249,22,191,7,23,196,2,2,35,249,22,87,197,194,86,94,23,196, -1,249,22,73,248,22,165,14,28,249,22,140,9,247,22,152,8,2,33,250,22, -156,15,2,64,23,200,1,2,35,23,197,1,194,86,94,23,193,1,28,249,22, -191,7,23,198,2,2,35,249,22,87,195,9,86,94,23,194,1,249,22,73,248, -22,165,14,28,249,22,140,9,247,22,152,8,2,33,250,22,156,15,2,64,23, -202,1,2,35,23,199,1,9,86,95,28,28,248,22,183,7,194,10,248,22,130, -7,194,12,250,22,176,9,2,6,6,21,21,98,121,116,101,32,115,116,114,105, -110,103,32,111,114,32,115,116,114,105,110,103,196,28,28,248,22,82,195,249,22, -4,22,156,14,196,11,12,250,22,176,9,2,6,6,13,13,108,105,115,116,32, -111,102,32,112,97,116,104,115,197,250,2,63,197,195,28,248,22,130,7,197,248, -22,144,8,197,196,86,94,28,28,248,22,156,14,23,195,2,10,28,248,22,130, -7,23,195,2,28,248,22,178,14,23,195,2,10,248,22,179,14,23,195,2,11, -12,250,22,176,9,23,196,2,2,36,23,197,2,28,248,22,178,14,23,195,2, -12,248,22,170,12,249,22,173,11,248,22,159,7,250,22,178,7,2,37,23,200, -1,23,201,1,247,22,23,86,94,28,28,248,22,156,14,23,195,2,10,28,248, +9,2,5,6,25,25,112,97,116,104,32,111,114,32,115,116,114,105,110,103,32, +40,115,97,110,115,32,110,117,108,41,23,197,2,28,28,23,195,2,28,28,248, +22,156,14,23,196,2,10,28,248,22,130,7,23,196,2,28,248,22,178,14,23, +196,2,10,248,22,179,14,23,196,2,11,248,22,178,14,23,196,2,11,10,12, +250,22,176,9,2,5,6,29,29,35,102,32,111,114,32,114,101,108,97,116,105, +118,101,32,112,97,116,104,32,111,114,32,115,116,114,105,110,103,23,198,2,28, +28,248,22,178,14,23,195,2,90,159,39,11,89,161,39,36,11,248,22,177,14, +23,198,2,249,22,140,9,194,2,35,11,27,248,22,150,8,6,4,4,80,65, +84,72,27,28,23,194,2,27,249,80,158,41,40,23,197,1,9,28,249,22,140, +9,247,22,152,8,2,34,249,22,73,248,22,165,14,5,1,46,194,192,86,94, +23,194,1,9,28,248,22,81,23,194,2,11,27,248,22,181,14,248,22,74,23, +196,2,27,249,22,174,14,23,196,1,23,200,2,28,248,22,168,14,23,194,2, +250,2,56,201,202,195,86,94,23,193,1,27,248,22,75,23,197,1,28,248,22, +81,23,194,2,11,27,248,22,181,14,248,22,74,23,196,2,27,249,22,174,14, +23,196,1,23,203,2,28,248,22,168,14,23,194,2,250,2,56,204,205,195,86, +94,23,193,1,27,248,22,75,23,197,1,28,248,22,81,23,194,2,11,27,248, +22,181,14,248,22,74,195,27,249,22,174,14,23,196,1,205,28,248,22,168,14, +193,250,2,56,23,15,23,16,195,251,2,60,23,15,23,16,23,17,248,22,75, +199,27,248,22,181,14,23,196,1,28,248,22,168,14,193,250,2,56,198,199,195, +11,250,80,159,39,39,39,196,197,11,250,80,159,39,39,39,196,11,11,32,65, +88,163,8,36,39,57,11,2,31,222,33,67,0,8,35,114,120,35,34,92,34, +34,27,249,22,144,15,23,197,2,23,198,2,28,23,193,2,86,94,23,196,1, +27,248,22,98,23,195,2,27,27,248,22,107,23,197,1,27,249,22,144,15,23, +201,2,23,196,2,28,23,193,2,86,94,23,194,1,27,248,22,98,23,195,2, +27,250,2,65,23,203,2,23,204,1,248,22,107,23,199,1,28,249,22,191,7, +23,196,2,2,36,249,22,87,23,202,2,194,249,22,73,248,22,165,14,28,249, +22,140,9,247,22,152,8,2,34,250,22,156,15,2,66,23,200,1,2,36,23, +197,1,194,86,95,23,199,1,23,193,1,28,249,22,191,7,23,196,2,2,36, +249,22,87,23,200,2,9,249,22,73,248,22,165,14,28,249,22,140,9,247,22, +152,8,2,34,250,22,156,15,2,66,23,200,1,2,36,23,197,1,9,28,249, +22,191,7,23,196,2,2,36,249,22,87,197,194,86,94,23,196,1,249,22,73, +248,22,165,14,28,249,22,140,9,247,22,152,8,2,34,250,22,156,15,2,66, +23,200,1,2,36,23,197,1,194,86,94,23,193,1,28,249,22,191,7,23,198, +2,2,36,249,22,87,195,9,86,94,23,194,1,249,22,73,248,22,165,14,28, +249,22,140,9,247,22,152,8,2,34,250,22,156,15,2,66,23,202,1,2,36, +23,199,1,9,86,95,28,28,248,22,183,7,194,10,248,22,130,7,194,12,250, +22,176,9,2,6,6,21,21,98,121,116,101,32,115,116,114,105,110,103,32,111, +114,32,115,116,114,105,110,103,196,28,28,248,22,82,195,249,22,4,22,156,14, +196,11,12,250,22,176,9,2,6,6,13,13,108,105,115,116,32,111,102,32,112, +97,116,104,115,197,250,2,65,197,195,28,248,22,130,7,197,248,22,144,8,197, +196,86,94,28,28,248,22,156,14,23,195,2,10,28,248,22,130,7,23,195,2, +28,248,22,178,14,23,195,2,10,248,22,179,14,23,195,2,11,12,250,22,176, +9,23,196,2,2,37,23,197,2,28,248,22,178,14,23,195,2,12,248,22,170, +12,249,22,173,11,248,22,159,7,250,22,178,7,2,38,23,200,1,23,201,1, +247,22,23,86,94,28,28,248,22,156,14,23,195,2,10,28,248,22,130,7,23, +195,2,28,248,22,178,14,23,195,2,10,248,22,179,14,23,195,2,11,12,250, +22,176,9,23,196,2,2,37,23,197,2,28,248,22,178,14,23,195,2,12,248, +22,170,12,249,22,173,11,248,22,159,7,250,22,178,7,2,38,23,200,1,23, +201,1,247,22,23,86,94,86,94,28,28,248,22,156,14,23,195,2,10,28,248, 22,130,7,23,195,2,28,248,22,178,14,23,195,2,10,248,22,179,14,23,195, -2,11,12,250,22,176,9,23,196,2,2,36,23,197,2,28,248,22,178,14,23, -195,2,12,248,22,170,12,249,22,173,11,248,22,159,7,250,22,178,7,2,37, -23,200,1,23,201,1,247,22,23,86,94,86,94,28,28,248,22,156,14,23,195, -2,10,28,248,22,130,7,23,195,2,28,248,22,178,14,23,195,2,10,248,22, -179,14,23,195,2,11,12,250,22,176,9,195,2,36,23,197,2,28,248,22,178, -14,23,195,2,12,248,22,170,12,249,22,173,11,248,22,159,7,250,22,178,7, -2,37,199,23,201,1,247,22,23,249,22,3,88,163,8,36,37,50,11,9,223, -2,33,68,196,86,94,28,28,248,22,156,14,23,194,2,10,28,248,22,130,7, -23,194,2,28,248,22,178,14,23,194,2,10,248,22,179,14,23,194,2,11,12, -250,22,176,9,2,9,2,36,23,196,2,28,248,22,178,14,23,194,2,12,248, -22,170,12,249,22,173,11,248,22,159,7,250,22,178,7,2,37,2,9,23,200, -1,247,22,23,248,22,170,12,249,22,145,12,23,196,1,247,22,23,86,94,86, -94,86,94,28,28,248,22,156,14,194,10,28,248,22,130,7,194,28,248,22,178, -14,194,10,248,22,179,14,194,11,12,250,22,176,9,2,9,2,36,196,28,248, -22,178,14,194,12,248,22,170,12,249,22,173,11,248,22,159,7,250,22,178,7, -2,37,2,9,200,247,22,23,249,22,3,32,0,88,163,8,36,37,49,11,9, -222,33,70,196,252,80,158,41,44,2,9,32,0,88,163,8,36,37,45,11,9, -222,33,71,198,199,11,86,94,28,28,248,22,156,14,23,194,2,10,28,248,22, -130,7,23,194,2,28,248,22,178,14,23,194,2,10,248,22,179,14,23,194,2, -11,12,250,22,176,9,2,11,2,36,23,196,2,28,248,22,178,14,23,194,2, -12,248,22,170,12,249,22,173,11,248,22,159,7,250,22,178,7,2,37,2,11, -23,200,1,247,22,23,248,22,170,12,249,22,145,12,23,196,1,247,22,23,86, -95,86,94,28,28,248,22,156,14,194,10,28,248,22,130,7,194,28,248,22,178, -14,194,10,248,22,179,14,194,11,12,250,22,176,9,2,11,2,36,196,28,248, -22,178,14,194,12,248,22,170,12,249,22,173,11,248,22,159,7,250,22,178,7, -2,37,2,11,200,247,22,23,86,94,86,94,28,28,248,22,156,14,23,196,2, -10,28,248,22,130,7,23,196,2,28,248,22,178,14,23,196,2,10,248,22,179, -14,23,196,2,11,12,250,22,176,9,2,11,2,36,23,198,2,28,248,22,178, -14,23,196,2,12,248,22,170,12,249,22,173,11,248,22,159,7,250,22,178,7, -2,37,2,11,23,202,2,247,22,23,249,22,3,32,0,88,163,8,36,37,49, -11,9,222,33,73,23,198,2,249,22,174,14,252,80,158,43,44,2,11,32,0, -88,163,8,36,37,45,11,9,222,33,74,23,202,1,23,203,1,200,195,0,6, -45,105,110,102,46,48,27,248,22,132,15,2,38,27,28,248,22,179,14,23,195, -2,193,20,13,159,80,159,38,51,37,250,80,159,41,52,37,249,22,27,11,80, -159,43,51,37,22,133,15,248,22,132,15,68,111,114,105,103,45,100,105,114,27, -248,22,132,15,2,31,250,80,159,42,39,39,23,196,1,23,198,1,11,28,192, -250,22,174,14,195,6,6,6,99,111,110,102,105,103,6,10,10,108,105,110,107, -115,46,114,107,116,100,11,86,94,27,247,22,131,10,28,249,22,188,9,23,195, -2,2,39,251,22,191,9,23,197,1,2,39,250,22,178,7,2,40,28,23,202, -1,80,159,46,46,38,80,159,46,49,38,248,22,165,11,23,205,1,247,22,23, -12,248,193,247,22,133,2,2,76,86,95,27,247,22,131,10,28,249,22,188,9, -23,195,2,2,39,251,22,191,9,23,197,1,2,39,250,22,178,7,2,40,28, -202,80,159,47,46,38,80,159,47,49,38,248,22,165,11,23,206,1,247,22,23, -12,28,192,28,194,86,94,20,18,159,11,80,158,39,47,247,22,133,2,20,18, -159,11,80,158,39,48,192,86,94,20,18,159,11,80,158,39,53,247,22,133,2, -20,18,159,11,80,158,39,54,192,12,248,194,247,22,133,2,20,20,94,248,22, -129,6,23,194,2,28,248,22,189,6,248,22,129,6,23,195,1,12,248,22,173, -9,6,30,30,101,120,112,101,99,116,101,100,32,97,32,115,105,110,103,108,101, -32,83,45,101,120,112,114,101,115,115,105,111,110,248,22,181,5,193,28,248,22, -82,23,194,2,28,28,249,22,184,3,38,248,22,86,23,196,2,10,249,22,184, -3,39,248,22,86,23,196,2,28,28,248,22,130,7,248,22,74,23,195,2,10, -249,22,140,9,64,114,111,111,116,248,22,74,23,196,2,28,27,248,22,98,194, -28,248,22,156,14,23,194,2,10,28,248,22,130,7,23,194,2,28,248,22,178, -14,23,194,2,10,248,22,179,14,23,194,1,11,27,248,22,81,248,22,100,195, -28,192,192,248,22,157,15,248,22,107,195,11,11,11,11,250,22,151,2,196,197, -249,22,73,197,200,28,28,248,22,81,248,22,100,23,197,2,10,249,22,148,15, -248,22,107,23,198,2,247,22,148,8,27,248,22,183,14,249,22,181,14,248,22, -98,23,200,2,23,198,1,28,248,22,58,248,22,74,23,198,2,86,94,23,196, -1,86,94,28,250,22,153,2,196,11,11,12,250,22,151,2,196,11,9,249,22, -157,2,195,88,163,8,36,38,50,11,9,224,3,2,33,84,27,248,22,61,248, -22,74,23,199,1,250,22,151,2,23,198,2,23,196,2,249,22,73,248,22,125, -23,200,1,250,22,153,2,23,203,1,23,201,1,9,12,250,22,151,2,195,196, -248,22,88,198,20,13,159,80,159,37,56,37,88,163,36,37,54,8,128,144,9, -225,1,0,2,33,78,27,250,22,191,14,28,23,197,2,80,159,41,46,38,80, -159,41,49,38,11,32,0,88,163,8,36,36,41,11,9,222,33,79,28,249,22, -186,3,23,195,2,28,23,196,2,80,158,40,48,80,158,40,54,20,13,159,80, -159,38,56,37,20,20,94,88,163,36,37,55,8,240,0,60,6,0,9,226,2, -1,3,0,33,80,23,196,1,20,13,159,80,159,38,51,37,26,29,80,159,8, -31,52,37,249,22,27,11,80,159,8,33,51,37,22,190,13,10,22,191,13,10, -22,128,14,10,22,131,14,10,22,130,14,10,22,132,14,10,22,129,14,10,22, -133,14,10,22,134,14,10,22,135,14,10,22,136,14,10,22,137,14,10,22,138, -14,11,22,188,13,11,27,249,22,172,5,28,196,80,159,41,46,38,80,159,41, -49,38,66,98,105,110,97,114,121,27,250,22,40,22,31,88,163,8,36,36,44, -11,9,223,4,33,81,20,20,94,88,163,36,36,43,11,9,223,4,33,82,23, -197,1,86,94,28,28,248,22,82,23,194,2,249,22,4,32,0,88,163,8,36, -37,45,11,9,222,33,83,23,195,2,11,12,248,22,173,9,6,18,18,105,108, -108,45,102,111,114,109,101,100,32,99,111,110,116,101,110,116,27,247,22,133,2, -27,90,159,39,11,89,161,39,36,11,248,22,177,14,28,201,80,159,46,46,38, -80,159,46,49,38,192,86,96,249,22,3,20,20,94,88,163,8,36,37,54,11, -9,224,2,3,33,85,23,195,1,23,197,1,249,22,157,2,195,88,163,8,36, -38,48,11,9,223,3,33,86,28,197,86,94,20,18,159,11,80,158,42,47,193, -20,18,159,11,80,158,42,48,196,86,94,20,18,159,11,80,158,42,53,193,20, -18,159,11,80,158,42,54,196,193,28,193,80,158,38,47,80,158,38,53,248,22, -9,88,163,8,32,37,8,40,8,240,0,188,23,0,9,224,1,2,33,87,0, -7,35,114,120,34,47,43,34,28,248,22,130,7,23,195,2,27,249,22,146,15, -2,89,196,28,192,28,249,22,184,3,248,22,97,195,248,22,174,3,248,22,133, -7,198,249,22,7,250,22,152,7,199,36,248,22,97,198,197,249,22,7,250,22, -152,7,199,36,248,22,97,198,249,22,73,249,22,152,7,200,248,22,99,199,199, -249,22,7,196,197,90,159,39,11,89,161,39,36,11,248,22,177,14,23,198,1, -86,94,23,195,1,28,249,22,140,9,23,195,2,2,34,249,22,7,195,199,27, -249,22,73,23,197,1,23,201,1,28,248,22,130,7,23,195,2,27,249,22,146, -15,2,89,196,28,192,28,249,22,184,3,248,22,97,195,248,22,174,3,248,22, -133,7,198,249,22,7,250,22,152,7,199,36,248,22,97,198,195,249,22,7,250, -22,152,7,199,36,248,22,97,198,249,22,73,249,22,152,7,200,248,22,99,199, -197,249,22,7,196,195,90,159,39,11,89,161,39,36,11,248,22,177,14,23,198, -1,28,249,22,140,9,194,2,34,249,22,7,195,197,249,80,159,45,57,39,194, -249,22,73,197,199,32,91,88,163,36,44,8,36,11,65,99,108,111,111,112,222, -33,96,32,92,88,163,8,36,37,55,11,2,30,222,33,93,28,248,22,81,248, -22,75,23,195,2,248,22,83,27,248,22,74,23,196,1,28,248,22,156,14,23, -194,2,248,22,160,14,23,194,1,192,250,22,84,27,248,22,74,23,198,2,28, -248,22,156,14,23,194,2,248,22,160,14,23,194,1,192,2,42,27,248,22,75, -23,198,1,28,248,22,81,248,22,75,23,195,2,248,22,83,27,248,22,74,23, -196,1,28,248,22,156,14,23,194,2,248,22,160,14,23,194,1,192,250,22,84, -27,248,22,74,23,198,2,28,248,22,156,14,23,194,2,248,22,160,14,23,194, -1,192,2,42,27,248,22,75,23,198,1,28,248,22,81,248,22,75,23,195,2, -248,22,83,27,248,22,74,23,196,1,28,248,22,156,14,23,194,2,248,22,160, -14,23,194,1,192,250,22,84,27,248,22,74,23,198,2,28,248,22,156,14,23, -194,2,248,22,160,14,23,194,1,192,2,42,248,2,92,248,22,75,23,198,1, -32,94,88,163,8,36,38,57,11,66,102,105,108,116,101,114,222,33,95,28,248, -22,81,23,195,2,9,28,248,23,194,2,248,22,74,23,196,2,249,22,73,248, -22,74,23,197,2,27,248,22,75,23,198,1,28,248,22,81,23,194,2,9,28, -248,23,197,2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,27,248, -22,75,23,197,1,28,248,22,81,23,194,2,9,28,248,23,200,2,248,22,74, -23,195,2,249,22,73,248,22,74,23,196,2,27,248,22,75,23,197,1,28,248, -22,81,23,194,2,9,28,248,23,203,2,248,22,74,23,195,2,249,22,73,248, -22,74,23,196,2,249,2,94,23,206,1,248,22,75,23,198,1,249,2,94,23, -204,1,248,22,75,23,196,1,27,248,22,75,23,195,1,28,248,22,81,23,194, -2,9,28,248,23,201,2,248,22,74,23,195,2,249,22,73,248,22,74,23,196, -2,249,2,94,23,204,1,248,22,75,23,198,1,249,2,94,23,202,1,248,22, -75,23,196,1,27,248,22,75,23,195,1,28,248,22,81,23,194,2,9,28,248, -23,198,2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,27,248,22, -75,23,197,1,28,248,22,81,23,194,2,9,28,248,23,201,2,248,22,74,23, -195,2,249,22,73,248,22,74,23,196,2,249,2,94,23,204,1,248,22,75,23, -198,1,249,2,94,23,202,1,248,22,75,23,196,1,27,248,22,75,23,195,1, -28,248,22,81,23,194,2,9,28,248,23,199,2,248,22,74,23,195,2,249,22, -73,248,22,74,23,196,2,249,2,94,23,202,1,248,22,75,23,198,1,249,2, -94,23,200,1,248,22,75,23,196,1,27,248,22,75,23,196,1,28,248,22,81, -23,194,2,9,28,248,23,195,2,248,22,74,23,195,2,249,22,73,248,22,74, -23,196,2,27,248,22,75,23,197,1,28,248,22,81,23,194,2,9,28,248,23, -198,2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,27,248,22,75, -23,197,1,28,248,22,81,23,194,2,9,28,248,23,201,2,248,22,74,23,195, -2,249,22,73,248,22,74,23,196,2,249,2,94,23,204,1,248,22,75,23,198, -1,249,2,94,23,202,1,248,22,75,23,196,1,27,248,22,75,23,195,1,28, -248,22,81,23,194,2,9,28,248,23,199,2,248,22,74,23,195,2,249,22,73, -248,22,74,23,196,2,249,2,94,23,202,1,248,22,75,23,198,1,249,2,94, -23,200,1,248,22,75,23,196,1,27,248,22,75,23,195,1,28,248,22,81,23, -194,2,9,28,248,23,196,2,248,22,74,23,195,2,249,22,73,248,22,74,23, -196,2,27,248,22,75,23,197,1,28,248,22,81,23,194,2,9,28,248,23,199, -2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,94,23,202, -1,248,22,75,23,198,1,249,2,94,23,200,1,248,22,75,23,196,1,27,248, -22,75,23,195,1,28,248,22,81,23,194,2,9,28,248,23,197,2,248,22,74, -23,195,2,249,22,73,248,22,74,23,196,2,249,2,94,23,200,1,248,22,75, -23,198,1,249,2,94,197,248,22,75,195,28,248,22,81,23,200,2,86,95,23, -199,1,23,198,1,28,23,200,2,199,86,94,23,200,1,27,28,248,22,81,23, -197,2,2,41,249,22,1,22,153,7,248,2,92,23,199,2,248,23,199,1,252, -22,178,7,6,44,44,126,97,58,32,99,111,108,108,101,99,116,105,111,110,32, -110,111,116,32,102,111,117,110,100,58,32,126,115,32,105,110,32,97,110,121,32, -111,102,58,32,126,115,126,97,23,203,1,28,248,22,81,23,203,1,28,248,22, -156,14,23,202,2,248,22,160,14,23,202,1,23,201,1,250,22,153,7,28,248, -22,156,14,23,205,2,248,22,160,14,23,205,1,23,204,1,2,42,23,202,2, -28,248,22,81,23,201,2,9,28,248,22,156,14,248,22,74,23,202,2,249,22, -73,248,22,74,23,203,2,27,248,22,75,23,204,2,28,248,22,81,23,194,2, -9,28,248,22,156,14,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2, -27,248,22,75,23,197,1,28,248,22,81,23,194,2,9,28,248,22,156,14,248, -22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,94,22,156,14,248, -22,75,23,198,1,249,2,94,22,156,14,248,22,75,23,196,1,27,248,22,75, -23,195,1,28,248,22,81,23,194,2,9,28,248,22,156,14,248,22,74,23,195, -2,249,22,73,248,22,74,23,196,2,249,2,94,22,156,14,248,22,75,23,198, -1,249,2,94,22,156,14,248,22,75,23,196,1,27,248,22,75,23,202,2,28, -248,22,81,23,194,2,9,28,248,22,156,14,248,22,74,23,195,2,249,22,73, +2,11,12,250,22,176,9,195,2,37,23,197,2,28,248,22,178,14,23,195,2, +12,248,22,170,12,249,22,173,11,248,22,159,7,250,22,178,7,2,38,199,23, +201,1,247,22,23,249,22,3,88,163,8,36,37,50,11,9,223,2,33,70,196, +28,28,248,22,0,194,249,22,44,195,37,11,12,250,22,176,9,195,2,39,196, +86,94,28,28,248,22,156,14,23,194,2,10,28,248,22,130,7,23,194,2,28, +248,22,178,14,23,194,2,10,248,22,179,14,23,194,2,11,12,250,22,176,9, +2,10,2,37,23,196,2,28,248,22,178,14,23,194,2,12,248,22,170,12,249, +22,173,11,248,22,159,7,250,22,178,7,2,38,2,10,23,200,1,247,22,23, +86,95,86,94,86,94,28,28,248,22,156,14,195,10,28,248,22,130,7,195,28, +248,22,178,14,195,10,248,22,179,14,195,11,12,250,22,176,9,2,10,2,37, +197,28,248,22,178,14,195,12,248,22,170,12,249,22,173,11,248,22,159,7,250, +22,178,7,2,38,2,10,201,247,22,23,249,22,3,32,0,88,163,8,36,37, +49,11,9,222,33,73,197,28,28,248,22,0,194,249,22,44,195,37,11,12,250, +22,176,9,2,10,2,39,196,251,80,158,40,45,197,198,199,11,86,94,28,28, +248,22,156,14,23,194,2,10,28,248,22,130,7,23,194,2,28,248,22,178,14, +23,194,2,10,248,22,179,14,23,194,2,11,12,250,22,176,9,2,12,2,37, +23,196,2,28,248,22,178,14,23,194,2,12,248,22,170,12,249,22,173,11,248, +22,159,7,250,22,178,7,2,38,2,12,23,200,1,247,22,23,86,96,86,94, +28,28,248,22,156,14,195,10,28,248,22,130,7,195,28,248,22,178,14,195,10, +248,22,179,14,195,11,12,250,22,176,9,2,12,2,37,197,28,248,22,178,14, +195,12,248,22,170,12,249,22,173,11,248,22,159,7,250,22,178,7,2,38,2, +12,201,247,22,23,86,94,86,94,28,28,248,22,156,14,196,10,28,248,22,130, +7,196,28,248,22,178,14,196,10,248,22,179,14,196,11,12,250,22,176,9,2, +12,2,37,198,28,248,22,178,14,196,12,248,22,170,12,249,22,173,11,248,22, +159,7,250,22,178,7,2,38,2,12,202,247,22,23,249,22,3,32,0,88,163, +8,36,37,49,11,9,222,33,75,198,28,28,248,22,0,194,249,22,44,195,37, +11,12,250,22,176,9,2,12,2,39,196,251,80,158,40,45,197,199,200,198,0, +6,45,105,110,102,46,48,27,248,22,132,15,2,40,27,28,248,22,179,14,23, +195,2,193,20,13,159,80,159,38,52,37,250,80,159,41,53,37,249,22,27,11, +80,159,43,52,37,22,133,15,248,22,132,15,68,111,114,105,103,45,100,105,114, +27,248,22,132,15,2,32,250,80,159,42,39,39,23,196,1,23,198,1,11,28, +192,250,22,174,14,195,6,6,6,99,111,110,102,105,103,6,10,10,108,105,110, +107,115,46,114,107,116,100,11,86,94,27,247,22,131,10,28,249,22,188,9,23, +195,2,2,41,251,22,191,9,23,197,1,2,41,250,22,178,7,2,42,28,23, +202,1,80,159,46,47,38,80,159,46,50,38,248,22,165,11,23,205,1,247,22, +23,12,248,193,247,22,133,2,2,77,86,95,27,247,22,131,10,28,249,22,188, +9,23,195,2,2,41,251,22,191,9,23,197,1,2,41,250,22,178,7,2,42, +28,202,80,159,47,47,38,80,159,47,50,38,248,22,165,11,23,206,1,247,22, +23,12,28,192,28,194,86,94,20,18,159,11,80,158,39,48,247,22,133,2,20, +18,159,11,80,158,39,49,192,86,94,20,18,159,11,80,158,39,54,247,22,133, +2,20,18,159,11,80,158,39,55,192,12,248,194,247,22,133,2,20,20,94,248, +22,129,6,23,194,2,28,248,22,189,6,248,22,129,6,23,195,1,12,248,22, +173,9,6,30,30,101,120,112,101,99,116,101,100,32,97,32,115,105,110,103,108, +101,32,83,45,101,120,112,114,101,115,115,105,111,110,248,22,181,5,193,28,248, +22,82,23,194,2,28,28,249,22,184,3,38,248,22,86,23,196,2,10,249,22, +184,3,39,248,22,86,23,196,2,28,28,248,22,130,7,248,22,74,23,195,2, +10,249,22,140,9,64,114,111,111,116,248,22,74,23,196,2,28,27,248,22,98, +194,28,248,22,156,14,23,194,2,10,28,248,22,130,7,23,194,2,28,248,22, +178,14,23,194,2,10,248,22,179,14,23,194,1,11,27,248,22,81,248,22,100, +195,28,192,192,248,22,157,15,248,22,107,195,11,11,11,11,250,22,151,2,196, +197,249,22,73,197,200,28,28,248,22,81,248,22,100,23,197,2,10,249,22,148, +15,248,22,107,23,198,2,247,22,148,8,27,248,22,183,14,249,22,181,14,248, +22,98,23,200,2,23,198,1,28,248,22,58,248,22,74,23,198,2,86,94,23, +196,1,86,94,28,250,22,153,2,196,11,11,12,250,22,151,2,196,11,9,249, +22,157,2,195,88,163,8,36,38,50,11,9,224,3,2,33,85,27,248,22,61, +248,22,74,23,199,1,250,22,151,2,23,198,2,23,196,2,249,22,73,248,22, +125,23,200,1,250,22,153,2,23,203,1,23,201,1,9,12,250,22,151,2,195, +196,248,22,88,198,20,13,159,80,159,37,57,37,88,163,36,37,54,8,240,0, +72,0,0,9,225,1,0,2,33,79,27,250,22,191,14,28,23,197,2,80,159, +41,47,38,80,159,41,50,38,11,32,0,88,163,8,36,36,41,11,9,222,33, +80,28,249,22,186,3,23,195,2,28,23,196,2,80,158,40,49,80,158,40,55, +20,13,159,80,159,38,57,37,20,20,94,88,163,36,37,55,8,240,0,120,12, +0,9,226,2,1,3,0,33,81,23,196,1,20,13,159,80,159,38,52,37,26, +29,80,159,8,31,53,37,249,22,27,11,80,159,8,33,52,37,22,190,13,10, +22,191,13,10,22,128,14,10,22,131,14,10,22,130,14,10,22,132,14,10,22, +129,14,10,22,133,14,10,22,134,14,10,22,135,14,10,22,136,14,10,22,137, +14,10,22,138,14,11,22,188,13,11,27,249,22,172,5,28,196,80,159,41,47, +38,80,159,41,50,38,66,98,105,110,97,114,121,27,250,22,40,22,31,88,163, +8,36,36,44,11,9,223,4,33,82,20,20,94,88,163,36,36,43,11,9,223, +4,33,83,23,197,1,86,94,28,28,248,22,82,23,194,2,249,22,4,32,0, +88,163,8,36,37,45,11,9,222,33,84,23,195,2,11,12,248,22,173,9,6, +18,18,105,108,108,45,102,111,114,109,101,100,32,99,111,110,116,101,110,116,27, +247,22,133,2,27,90,159,39,11,89,161,39,36,11,248,22,177,14,28,201,80, +159,46,47,38,80,159,46,50,38,192,86,96,249,22,3,20,20,94,88,163,8, +36,37,54,11,9,224,2,3,33,86,23,195,1,23,197,1,249,22,157,2,195, +88,163,8,36,38,48,11,9,223,3,33,87,28,197,86,94,20,18,159,11,80, +158,42,48,193,20,18,159,11,80,158,42,49,196,86,94,20,18,159,11,80,158, +42,54,193,20,18,159,11,80,158,42,55,196,193,28,193,80,158,38,48,80,158, +38,54,248,22,9,88,163,8,32,37,8,40,8,240,0,120,47,0,9,224,1, +2,33,88,0,7,35,114,120,34,47,43,34,28,248,22,130,7,23,195,2,27, +249,22,146,15,2,90,196,28,192,28,249,22,184,3,248,22,97,195,248,22,174, +3,248,22,133,7,198,249,22,7,250,22,152,7,199,36,248,22,97,198,197,249, +22,7,250,22,152,7,199,36,248,22,97,198,249,22,73,249,22,152,7,200,248, +22,99,199,199,249,22,7,196,197,90,159,39,11,89,161,39,36,11,248,22,177, +14,23,198,1,86,94,23,195,1,28,249,22,140,9,23,195,2,2,35,249,22, +7,195,199,27,249,22,73,23,197,1,23,201,1,28,248,22,130,7,23,195,2, +27,249,22,146,15,2,90,196,28,192,28,249,22,184,3,248,22,97,195,248,22, +174,3,248,22,133,7,198,249,22,7,250,22,152,7,199,36,248,22,97,198,195, +249,22,7,250,22,152,7,199,36,248,22,97,198,249,22,73,249,22,152,7,200, +248,22,99,199,197,249,22,7,196,195,90,159,39,11,89,161,39,36,11,248,22, +177,14,23,198,1,28,249,22,140,9,194,2,35,249,22,7,195,197,249,80,159, +45,58,39,194,249,22,73,197,199,32,92,88,163,36,43,8,34,11,65,99,108, +111,111,112,222,33,97,32,93,88,163,8,36,37,55,11,2,31,222,33,94,28, +248,22,81,248,22,75,23,195,2,248,22,83,27,248,22,74,23,196,1,28,248, +22,156,14,23,194,2,248,22,160,14,23,194,1,192,250,22,84,27,248,22,74, +23,198,2,28,248,22,156,14,23,194,2,248,22,160,14,23,194,1,192,2,44, +27,248,22,75,23,198,1,28,248,22,81,248,22,75,23,195,2,248,22,83,27, +248,22,74,23,196,1,28,248,22,156,14,23,194,2,248,22,160,14,23,194,1, +192,250,22,84,27,248,22,74,23,198,2,28,248,22,156,14,23,194,2,248,22, +160,14,23,194,1,192,2,44,27,248,22,75,23,198,1,28,248,22,81,248,22, +75,23,195,2,248,22,83,27,248,22,74,23,196,1,28,248,22,156,14,23,194, +2,248,22,160,14,23,194,1,192,250,22,84,27,248,22,74,23,198,2,28,248, +22,156,14,23,194,2,248,22,160,14,23,194,1,192,2,44,248,2,93,248,22, +75,23,198,1,32,95,88,163,8,36,38,57,11,66,102,105,108,116,101,114,222, +33,96,28,248,22,81,23,195,2,9,28,248,23,194,2,248,22,74,23,196,2, +249,22,73,248,22,74,23,197,2,27,248,22,75,23,198,1,28,248,22,81,23, +194,2,9,28,248,23,197,2,248,22,74,23,195,2,249,22,73,248,22,74,23, +196,2,27,248,22,75,23,197,1,28,248,22,81,23,194,2,9,28,248,23,200, +2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,27,248,22,75,23, +197,1,28,248,22,81,23,194,2,9,28,248,23,203,2,248,22,74,23,195,2, +249,22,73,248,22,74,23,196,2,249,2,95,23,206,1,248,22,75,23,198,1, +249,2,95,23,204,1,248,22,75,23,196,1,27,248,22,75,23,195,1,28,248, +22,81,23,194,2,9,28,248,23,201,2,248,22,74,23,195,2,249,22,73,248, +22,74,23,196,2,249,2,95,23,204,1,248,22,75,23,198,1,249,2,95,23, +202,1,248,22,75,23,196,1,27,248,22,75,23,195,1,28,248,22,81,23,194, +2,9,28,248,23,198,2,248,22,74,23,195,2,249,22,73,248,22,74,23,196, +2,27,248,22,75,23,197,1,28,248,22,81,23,194,2,9,28,248,23,201,2, +248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,95,23,204,1, +248,22,75,23,198,1,249,2,95,23,202,1,248,22,75,23,196,1,27,248,22, +75,23,195,1,28,248,22,81,23,194,2,9,28,248,23,199,2,248,22,74,23, +195,2,249,22,73,248,22,74,23,196,2,249,2,95,23,202,1,248,22,75,23, +198,1,249,2,95,23,200,1,248,22,75,23,196,1,27,248,22,75,23,196,1, +28,248,22,81,23,194,2,9,28,248,23,195,2,248,22,74,23,195,2,249,22, +73,248,22,74,23,196,2,27,248,22,75,23,197,1,28,248,22,81,23,194,2, +9,28,248,23,198,2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2, +27,248,22,75,23,197,1,28,248,22,81,23,194,2,9,28,248,23,201,2,248, +22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,95,23,204,1,248, +22,75,23,198,1,249,2,95,23,202,1,248,22,75,23,196,1,27,248,22,75, +23,195,1,28,248,22,81,23,194,2,9,28,248,23,199,2,248,22,74,23,195, +2,249,22,73,248,22,74,23,196,2,249,2,95,23,202,1,248,22,75,23,198, +1,249,2,95,23,200,1,248,22,75,23,196,1,27,248,22,75,23,195,1,28, +248,22,81,23,194,2,9,28,248,23,196,2,248,22,74,23,195,2,249,22,73, 248,22,74,23,196,2,27,248,22,75,23,197,1,28,248,22,81,23,194,2,9, -28,248,22,156,14,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,249, -2,94,22,156,14,248,22,75,23,198,1,249,2,94,22,156,14,248,22,75,23, -196,1,27,248,22,75,23,195,1,28,248,22,81,23,194,2,9,28,248,22,156, -14,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,94,22,156, -14,248,22,75,23,198,1,249,2,94,22,156,14,248,22,75,23,196,1,28,249, -22,5,22,127,23,202,2,250,22,178,7,6,21,21,32,111,114,58,32,126,115, -32,105,110,32,97,110,121,32,111,102,58,32,126,115,23,202,1,249,22,2,22, -128,2,28,248,22,81,23,206,2,86,94,23,205,1,9,28,248,22,127,248,22, -74,23,207,2,249,22,73,248,22,74,23,208,2,27,248,22,75,23,209,1,28, -248,22,81,23,194,2,9,28,248,22,127,248,22,74,23,195,2,249,22,73,248, -22,74,23,196,2,27,248,22,75,23,197,1,28,248,22,81,23,194,2,9,28, -248,22,127,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,94, -22,127,248,22,75,23,198,1,249,2,94,22,127,248,22,75,23,196,1,27,248, -22,75,23,195,1,28,248,22,81,23,194,2,9,28,248,22,127,248,22,74,23, -195,2,249,22,73,248,22,74,23,196,2,249,2,94,22,127,248,22,75,23,198, -1,249,2,94,22,127,248,22,75,23,196,1,27,248,22,75,23,207,1,28,248, -22,81,23,194,2,9,28,248,22,127,248,22,74,23,195,2,249,22,73,248,22, -74,23,196,2,27,248,22,75,23,197,1,28,248,22,81,23,194,2,9,28,248, -22,127,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,94,22, -127,248,22,75,23,198,1,249,2,94,22,127,248,22,75,23,196,1,27,248,22, -75,23,195,1,28,248,22,81,23,194,2,9,28,248,22,127,248,22,74,23,195, -2,249,22,73,248,22,74,23,196,2,249,2,94,22,127,248,22,75,23,198,1, -249,2,94,22,127,248,22,75,23,196,1,86,94,23,199,1,2,41,27,248,22, -74,23,201,2,27,28,248,22,156,14,23,195,2,249,22,174,14,23,196,1,23, -198,2,248,22,128,2,23,195,1,28,28,248,22,156,14,248,22,74,23,203,2, -248,22,169,14,23,194,2,10,27,250,22,1,22,174,14,23,197,1,23,201,2, -28,28,248,22,81,23,199,2,10,248,22,169,14,23,194,2,28,23,201,2,28, -28,248,22,168,14,249,22,174,14,195,203,10,27,28,248,22,156,14,202,248,22, -160,14,202,201,27,248,22,133,7,23,195,2,27,28,249,22,188,3,23,196,2, -40,28,249,22,136,7,6,4,4,46,114,107,116,249,22,152,7,23,199,2,249, -22,176,3,23,200,2,40,249,22,153,7,250,22,152,7,23,200,1,36,249,22, -176,3,23,201,1,40,6,3,3,46,115,115,86,95,23,195,1,23,194,1,11, -11,28,23,193,2,248,22,168,14,249,22,174,14,198,23,196,1,11,192,26,8, -2,91,203,204,205,206,23,15,23,16,248,22,75,23,18,28,23,18,23,18,200, -192,26,8,2,91,203,204,205,206,23,15,23,16,248,22,75,23,18,23,18,26, -8,2,91,202,203,204,205,206,23,15,248,22,75,23,17,23,17,90,159,38,11, -89,161,38,36,11,249,80,159,40,57,39,23,200,1,23,201,1,27,248,22,61, -28,248,22,156,14,195,248,22,160,14,195,194,27,247,22,137,15,27,250,22,87, -28,23,197,2,28,247,22,136,15,27,248,80,159,46,55,39,10,27,250,22,153, -2,23,197,2,23,203,2,11,28,23,193,2,192,86,94,23,193,1,250,22,153, -2,23,197,1,11,9,9,9,28,23,197,1,28,80,159,44,49,38,27,248,80, -159,46,55,39,11,27,250,22,153,2,23,197,2,23,203,1,11,28,23,193,2, -192,86,94,23,193,1,250,22,153,2,23,197,1,11,9,86,94,23,198,1,9, -9,247,22,134,15,26,8,2,91,200,203,204,206,23,15,23,18,200,11,86,95, -28,28,248,22,157,14,23,194,2,10,28,248,22,156,14,23,194,2,10,28,248, -22,130,7,23,194,2,28,248,22,178,14,23,194,2,10,248,22,179,14,23,194, -2,11,12,252,22,176,9,23,200,2,2,32,36,23,198,2,23,199,2,28,28, -248,22,130,7,23,195,2,10,248,22,183,7,23,195,2,86,94,23,194,1,12, -252,22,176,9,23,200,2,2,43,37,23,198,2,23,199,1,90,159,39,11,89, -161,39,36,11,248,22,177,14,23,197,2,86,94,23,195,1,86,94,28,192,12, -250,22,177,9,23,201,1,2,44,23,199,1,249,22,7,194,195,90,159,38,11, -89,161,38,36,11,86,95,28,28,248,22,157,14,23,196,2,10,28,248,22,156, -14,23,196,2,10,28,248,22,130,7,23,196,2,28,248,22,178,14,23,196,2, -10,248,22,179,14,23,196,2,11,12,252,22,176,9,2,25,2,32,36,23,200, -2,23,201,2,28,28,248,22,130,7,23,197,2,10,248,22,183,7,23,197,2, -12,252,22,176,9,2,25,2,43,37,23,200,2,23,201,2,90,159,39,11,89, -161,39,36,11,248,22,177,14,23,199,2,86,94,23,195,1,86,94,28,192,12, -250,22,177,9,2,25,2,44,23,201,2,249,22,7,194,195,27,249,22,166,14, -250,22,155,15,0,20,35,114,120,35,34,40,63,58,91,46,93,91,94,46,93, -42,124,41,36,34,248,22,162,14,23,201,1,28,248,22,130,7,23,203,2,249, -22,145,8,23,204,1,8,63,23,202,1,28,248,22,157,14,23,199,2,248,22, -158,14,23,199,1,86,94,23,198,1,247,22,159,14,28,248,22,156,14,194,249, -22,174,14,195,194,192,90,159,38,11,89,161,38,36,11,86,95,28,28,248,22, -157,14,23,196,2,10,28,248,22,156,14,23,196,2,10,28,248,22,130,7,23, -196,2,28,248,22,178,14,23,196,2,10,248,22,179,14,23,196,2,11,12,252, -22,176,9,2,26,2,32,36,23,200,2,23,201,2,28,28,248,22,130,7,23, -197,2,10,248,22,183,7,23,197,2,12,252,22,176,9,2,26,2,43,37,23, -200,2,23,201,2,90,159,39,11,89,161,39,36,11,248,22,177,14,23,199,2, -86,94,23,195,1,86,94,28,192,12,250,22,177,9,2,26,2,44,23,201,2, -249,22,7,194,195,27,249,22,166,14,249,22,131,8,250,22,156,15,0,9,35, -114,120,35,34,91,46,93,34,248,22,162,14,23,203,1,6,1,1,95,28,248, -22,130,7,23,202,2,249,22,145,8,23,203,1,8,63,23,201,1,28,248,22, -157,14,23,199,2,248,22,158,14,23,199,1,86,94,23,198,1,247,22,159,14, -28,248,22,156,14,194,249,22,174,14,195,194,192,249,247,22,161,5,194,11,249, -247,22,161,5,194,11,27,247,22,136,15,249,80,159,39,40,38,28,23,195,2, -27,248,22,150,8,2,45,28,192,192,2,41,2,41,27,28,23,196,1,250,22, -174,14,248,22,132,15,2,46,247,22,148,8,2,47,11,27,248,80,159,42,8, -28,39,250,22,87,9,248,22,83,248,22,132,15,2,38,9,28,193,249,22,73, -195,194,192,27,247,22,136,15,249,80,159,39,40,38,28,23,195,2,27,248,22, -150,8,2,45,28,192,192,2,41,2,41,27,28,23,196,1,250,22,174,14,248, -22,132,15,2,46,247,22,148,8,2,47,11,27,248,80,159,42,8,29,39,250, -22,87,23,203,1,248,22,83,248,22,132,15,2,38,9,28,193,249,22,73,195, +28,248,23,199,2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,249, +2,95,23,202,1,248,22,75,23,198,1,249,2,95,23,200,1,248,22,75,23, +196,1,27,248,22,75,23,195,1,28,248,22,81,23,194,2,9,28,248,23,197, +2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,95,23,200, +1,248,22,75,23,198,1,249,2,95,197,248,22,75,195,28,248,22,81,23,199, +2,86,94,23,198,1,28,23,199,2,28,196,249,22,174,14,200,198,198,27,28, +248,22,81,23,197,2,2,43,249,22,1,22,153,7,248,2,93,23,199,2,248, +23,198,1,251,22,178,7,6,40,40,99,111,108,108,101,99,116,105,111,110,32, +110,111,116,32,102,111,117,110,100,58,32,126,115,32,105,110,32,97,110,121,32, +111,102,58,32,126,115,126,97,28,248,22,81,23,202,1,28,248,22,156,14,23, +201,2,248,22,160,14,23,201,1,23,200,1,250,22,153,7,28,248,22,156,14, +23,204,2,248,22,160,14,23,204,1,23,203,1,2,44,23,201,2,28,248,22, +81,23,200,2,9,28,248,22,156,14,248,22,74,23,201,2,249,22,73,248,22, +74,23,202,2,27,248,22,75,23,203,2,28,248,22,81,23,194,2,9,28,248, +22,156,14,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,27,248,22, +75,23,197,1,28,248,22,81,23,194,2,9,28,248,22,156,14,248,22,74,23, +195,2,249,22,73,248,22,74,23,196,2,249,2,95,22,156,14,248,22,75,23, +198,1,249,2,95,22,156,14,248,22,75,23,196,1,27,248,22,75,23,195,1, +28,248,22,81,23,194,2,9,28,248,22,156,14,248,22,74,23,195,2,249,22, +73,248,22,74,23,196,2,249,2,95,22,156,14,248,22,75,23,198,1,249,2, +95,22,156,14,248,22,75,23,196,1,27,248,22,75,23,201,2,28,248,22,81, +23,194,2,9,28,248,22,156,14,248,22,74,23,195,2,249,22,73,248,22,74, +23,196,2,27,248,22,75,23,197,1,28,248,22,81,23,194,2,9,28,248,22, +156,14,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,95,22, +156,14,248,22,75,23,198,1,249,2,95,22,156,14,248,22,75,23,196,1,27, +248,22,75,23,195,1,28,248,22,81,23,194,2,9,28,248,22,156,14,248,22, +74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,95,22,156,14,248,22, +75,23,198,1,249,2,95,22,156,14,248,22,75,23,196,1,28,249,22,5,22, +127,23,201,2,250,22,178,7,6,21,21,32,111,114,58,32,126,115,32,105,110, +32,97,110,121,32,111,102,58,32,126,115,23,201,1,249,22,2,22,128,2,28, +248,22,81,23,205,2,86,94,23,204,1,9,28,248,22,127,248,22,74,23,206, +2,249,22,73,248,22,74,23,207,2,27,248,22,75,23,208,1,28,248,22,81, +23,194,2,9,28,248,22,127,248,22,74,23,195,2,249,22,73,248,22,74,23, +196,2,27,248,22,75,23,197,1,28,248,22,81,23,194,2,9,28,248,22,127, +248,22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,95,22,127,248, +22,75,23,198,1,249,2,95,22,127,248,22,75,23,196,1,27,248,22,75,23, +195,1,28,248,22,81,23,194,2,9,28,248,22,127,248,22,74,23,195,2,249, +22,73,248,22,74,23,196,2,249,2,95,22,127,248,22,75,23,198,1,249,2, +95,22,127,248,22,75,23,196,1,27,248,22,75,23,206,1,28,248,22,81,23, +194,2,9,28,248,22,127,248,22,74,23,195,2,249,22,73,248,22,74,23,196, +2,27,248,22,75,23,197,1,28,248,22,81,23,194,2,9,28,248,22,127,248, +22,74,23,195,2,249,22,73,248,22,74,23,196,2,249,2,95,22,127,248,22, +75,23,198,1,249,2,95,22,127,248,22,75,23,196,1,27,248,22,75,23,195, +1,28,248,22,81,23,194,2,9,28,248,22,127,248,22,74,23,195,2,249,22, +73,248,22,74,23,196,2,249,2,95,22,127,248,22,75,23,198,1,249,2,95, +22,127,248,22,75,23,196,1,86,94,23,198,1,2,43,27,248,22,74,23,200, +2,27,28,248,22,156,14,23,195,2,249,22,174,14,23,196,1,23,198,2,248, +22,128,2,23,195,1,28,28,248,22,156,14,248,22,74,23,202,2,248,22,169, +14,23,194,2,10,27,250,22,1,22,174,14,23,197,1,23,201,2,28,28,248, +22,81,23,199,2,10,248,22,169,14,23,194,2,28,23,200,2,28,28,248,22, +168,14,249,22,174,14,195,202,10,27,28,248,22,156,14,201,248,22,160,14,201, +200,27,248,22,133,7,23,195,2,27,28,249,22,188,3,23,196,2,40,28,249, +22,136,7,6,4,4,46,114,107,116,249,22,152,7,23,199,2,249,22,176,3, +23,200,2,40,249,22,153,7,250,22,152,7,23,200,1,36,249,22,176,3,23, +201,1,40,6,3,3,46,115,115,86,95,23,195,1,23,194,1,11,11,28,23, +193,2,248,22,168,14,249,22,174,14,198,23,196,1,11,28,199,249,22,174,14, +194,201,192,254,2,92,202,203,204,205,206,248,22,75,23,16,28,23,16,23,16, +199,28,199,249,22,174,14,194,201,192,254,2,92,202,203,204,205,206,248,22,75, +23,16,23,16,254,2,92,201,202,203,204,205,248,22,75,23,15,23,15,90,159, +38,11,89,161,38,36,11,249,80,159,40,58,39,23,199,1,23,200,1,27,248, +22,61,28,248,22,156,14,195,248,22,160,14,195,194,27,247,22,137,15,27,250, +22,87,28,23,197,2,28,247,22,136,15,27,248,80,159,46,56,39,10,27,250, +22,153,2,23,197,2,23,203,2,11,28,23,193,2,192,86,94,23,193,1,250, +22,153,2,23,197,1,11,9,9,9,28,23,197,1,28,80,159,44,50,38,27, +248,80,159,46,56,39,11,27,250,22,153,2,23,197,2,23,203,1,11,28,23, +193,2,192,86,94,23,193,1,250,22,153,2,23,197,1,11,9,86,94,23,198, +1,9,9,247,22,134,15,254,2,92,199,202,203,205,23,16,199,11,86,95,28, +28,248,22,157,14,23,194,2,10,28,248,22,156,14,23,194,2,10,28,248,22, +130,7,23,194,2,28,248,22,178,14,23,194,2,10,248,22,179,14,23,194,2, +11,12,252,22,176,9,23,200,2,2,33,36,23,198,2,23,199,2,28,28,248, +22,130,7,23,195,2,10,248,22,183,7,23,195,2,86,94,23,194,1,12,252, +22,176,9,23,200,2,2,45,37,23,198,2,23,199,1,90,159,39,11,89,161, +39,36,11,248,22,177,14,23,197,2,86,94,23,195,1,86,94,28,192,12,250, +22,177,9,23,201,1,2,46,23,199,1,249,22,7,194,195,90,159,38,11,89, +161,38,36,11,86,95,28,28,248,22,157,14,23,196,2,10,28,248,22,156,14, +23,196,2,10,28,248,22,130,7,23,196,2,28,248,22,178,14,23,196,2,10, +248,22,179,14,23,196,2,11,12,252,22,176,9,2,26,2,33,36,23,200,2, +23,201,2,28,28,248,22,130,7,23,197,2,10,248,22,183,7,23,197,2,12, +252,22,176,9,2,26,2,45,37,23,200,2,23,201,2,90,159,39,11,89,161, +39,36,11,248,22,177,14,23,199,2,86,94,23,195,1,86,94,28,192,12,250, +22,177,9,2,26,2,46,23,201,2,249,22,7,194,195,27,249,22,166,14,250, +22,155,15,0,20,35,114,120,35,34,40,63,58,91,46,93,91,94,46,93,42, +124,41,36,34,248,22,162,14,23,201,1,28,248,22,130,7,23,203,2,249,22, +145,8,23,204,1,8,63,23,202,1,28,248,22,157,14,23,199,2,248,22,158, +14,23,199,1,86,94,23,198,1,247,22,159,14,28,248,22,156,14,194,249,22, +174,14,195,194,192,90,159,38,11,89,161,38,36,11,86,95,28,28,248,22,157, +14,23,196,2,10,28,248,22,156,14,23,196,2,10,28,248,22,130,7,23,196, +2,28,248,22,178,14,23,196,2,10,248,22,179,14,23,196,2,11,12,252,22, +176,9,2,27,2,33,36,23,200,2,23,201,2,28,28,248,22,130,7,23,197, +2,10,248,22,183,7,23,197,2,12,252,22,176,9,2,27,2,45,37,23,200, +2,23,201,2,90,159,39,11,89,161,39,36,11,248,22,177,14,23,199,2,86, +94,23,195,1,86,94,28,192,12,250,22,177,9,2,27,2,46,23,201,2,249, +22,7,194,195,27,249,22,166,14,249,22,131,8,250,22,156,15,0,9,35,114, +120,35,34,91,46,93,34,248,22,162,14,23,203,1,6,1,1,95,28,248,22, +130,7,23,202,2,249,22,145,8,23,203,1,8,63,23,201,1,28,248,22,157, +14,23,199,2,248,22,158,14,23,199,1,86,94,23,198,1,247,22,159,14,28, +248,22,156,14,194,249,22,174,14,195,194,192,249,247,22,161,5,194,11,249,247, +22,161,5,194,11,27,247,22,136,15,249,80,159,39,40,38,28,23,195,2,27, +248,22,150,8,2,47,28,192,192,2,43,2,43,27,28,23,196,1,250,22,174, +14,248,22,132,15,2,48,247,22,148,8,2,49,11,27,248,80,159,42,8,29, +39,250,22,87,9,248,22,83,248,22,132,15,2,40,9,28,193,249,22,73,195, 194,192,27,247,22,136,15,249,80,159,39,40,38,28,23,195,2,27,248,22,150, -8,2,45,28,192,192,2,41,2,41,27,28,23,196,1,250,22,174,14,248,22, -132,15,2,46,247,22,148,8,2,47,11,27,248,80,159,42,8,30,39,250,22, -87,23,203,1,248,22,83,248,22,132,15,2,38,23,204,1,28,193,249,22,73, -195,194,192,86,94,249,22,183,6,247,22,157,5,195,248,22,144,6,249,22,128, -4,36,249,22,176,3,197,198,27,28,23,197,2,86,95,23,196,1,23,195,1, -23,197,1,86,94,23,197,1,27,248,22,132,15,2,31,27,250,80,159,42,39, -39,23,197,1,11,11,27,248,22,131,4,23,199,1,27,28,23,194,2,23,194, -1,86,94,23,194,1,36,27,248,22,131,4,23,202,1,27,28,23,194,2,23, -194,1,86,94,23,194,1,36,249,22,188,5,23,199,1,20,20,95,88,163,8, -36,36,48,11,9,224,4,2,33,106,23,195,1,23,197,1,27,248,22,173,5, -23,195,1,248,80,159,39,8,31,39,193,159,36,20,113,159,36,16,1,11,16, -0,20,26,141,2,1,2,1,29,11,11,11,11,11,10,43,80,158,36,36,20, -113,159,40,16,28,2,2,2,3,2,4,2,5,2,6,2,7,2,8,2,9, -2,10,2,11,2,12,2,13,2,14,2,15,30,2,18,76,102,105,110,100,45, -108,105,110,107,115,45,112,97,116,104,33,4,30,2,19,1,20,112,97,114,97, -109,101,116,101,114,105,122,97,116,105,111,110,45,107,101,121,6,30,2,19,1, -23,101,120,116,101,110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116, -105,111,110,3,2,20,2,21,2,22,30,2,18,1,21,101,120,99,101,112,116, -105,111,110,45,104,97,110,100,108,101,114,45,107,101,121,2,2,23,2,24,2, -25,2,26,2,27,2,28,2,29,16,0,37,39,36,16,0,36,16,12,2,8, -2,7,2,3,2,24,2,22,2,20,2,15,2,21,2,23,2,13,2,12,2, -14,48,11,11,11,16,12,2,11,2,9,2,29,2,10,2,5,2,28,2,27, -2,4,2,26,2,6,2,25,2,2,16,12,11,11,11,11,11,11,11,11,11, -11,11,11,16,12,2,11,2,9,2,29,2,10,2,5,2,28,2,27,2,4, -2,26,2,6,2,25,2,2,48,48,37,12,11,11,16,0,16,0,16,0,36, -36,11,12,11,11,16,0,16,0,16,0,36,36,16,28,20,15,16,2,88,163, -8,36,37,51,16,2,8,240,0,128,0,0,8,240,1,128,0,0,2,30,223, -0,33,48,80,159,36,8,31,39,20,15,16,2,88,163,8,36,37,56,16,2, -44,8,240,0,64,0,0,2,30,223,0,33,49,80,159,36,8,30,39,20,15, -16,2,88,163,8,36,37,51,16,2,44,8,128,128,2,30,223,0,33,50,80, -159,36,8,29,39,20,15,16,2,88,163,8,36,37,51,16,2,44,8,128,64, -2,30,223,0,33,51,80,159,36,8,28,39,20,15,16,2,32,0,88,163,36, -37,45,11,2,2,222,33,52,80,159,36,36,37,20,15,16,2,249,22,132,7, -7,92,7,92,80,159,36,37,37,20,15,16,2,88,163,36,37,54,38,2,4, -223,0,33,53,80,159,36,38,37,20,15,16,2,20,25,96,2,5,88,163,8, -36,39,8,24,52,9,223,0,33,60,88,163,36,38,47,44,9,223,0,33,61, -88,163,36,37,46,44,9,223,0,33,62,80,159,36,39,37,20,15,16,2,27, -248,22,140,15,248,22,144,8,27,28,249,22,140,9,247,22,152,8,2,33,6, -1,1,59,6,1,1,58,250,22,178,7,6,14,14,40,91,94,126,97,93,42, -41,126,97,40,46,42,41,23,196,2,23,196,1,88,163,8,36,38,48,11,2, -6,223,0,33,66,80,159,36,40,37,20,15,16,2,32,0,88,163,8,36,38, -50,11,2,7,222,33,67,80,159,36,41,37,20,15,16,2,32,0,88,163,8, -36,39,51,11,2,8,222,33,69,80,159,36,42,37,20,15,16,2,88,163,45, -38,51,8,128,4,2,9,223,0,33,72,80,159,36,43,37,20,15,16,2,88, -163,45,39,52,8,128,4,2,11,223,0,33,75,80,159,36,45,37,20,15,16, -2,248,22,132,15,70,108,105,110,107,115,45,102,105,108,101,80,159,36,46,37, -20,15,16,2,247,22,133,2,80,158,36,47,20,15,16,2,2,76,80,158,36, -48,20,15,16,2,248,80,159,37,50,37,88,163,36,36,49,8,240,8,128,1, -0,9,223,1,33,77,80,159,36,49,37,20,15,16,2,247,22,133,2,80,158, -36,53,20,15,16,2,2,76,80,158,36,54,20,15,16,2,88,163,36,37,44, -8,240,0,188,23,0,2,22,223,0,33,88,80,159,36,55,37,20,15,16,2, -88,163,36,38,56,8,240,0,0,32,0,2,23,223,0,33,90,80,159,36,57, -37,20,15,16,2,88,163,36,41,8,24,8,240,0,32,40,0,2,10,223,0, -33,97,80,159,36,44,37,20,15,16,2,32,0,88,163,36,39,50,11,2,24, -222,33,98,80,159,36,58,37,20,15,16,2,32,0,88,163,36,38,53,11,2, -25,222,33,99,80,159,36,59,37,20,15,16,2,32,0,88,163,36,38,54,11, -2,26,222,33,100,80,159,36,8,24,37,20,15,16,2,20,27,158,32,0,88, -163,36,37,44,11,2,27,222,33,101,32,0,88,163,36,37,44,11,2,27,222, -33,102,80,159,36,8,25,37,20,15,16,2,20,25,96,2,28,88,163,36,36, -53,16,2,52,8,128,64,9,223,0,33,103,88,163,36,37,54,16,2,52,8, -128,128,9,223,0,33,104,88,163,36,38,55,16,2,52,8,240,0,64,0,0, -9,223,0,33,105,80,159,36,8,26,37,20,15,16,2,88,163,8,36,39,54, -16,2,44,8,240,0,128,0,0,2,29,223,0,33,107,80,159,36,8,27,37, -95,29,94,2,16,68,35,37,107,101,114,110,101,108,11,29,94,2,16,69,35, -37,109,105,110,45,115,116,120,11,2,18,9,9,9,36,0}; - EVAL_ONE_SIZED_STR((char *)expr, 10389); +8,2,47,28,192,192,2,43,2,43,27,28,23,196,1,250,22,174,14,248,22, +132,15,2,48,247,22,148,8,2,49,11,27,248,80,159,42,8,30,39,250,22, +87,23,203,1,248,22,83,248,22,132,15,2,40,9,28,193,249,22,73,195,194, +192,27,247,22,136,15,249,80,159,39,40,38,28,23,195,2,27,248,22,150,8, +2,47,28,192,192,2,43,2,43,27,28,23,196,1,250,22,174,14,248,22,132, +15,2,48,247,22,148,8,2,49,11,27,248,80,159,42,8,31,39,250,22,87, +23,203,1,248,22,83,248,22,132,15,2,40,23,204,1,28,193,249,22,73,195, +194,192,86,94,249,22,183,6,247,22,157,5,195,248,22,144,6,249,22,128,4, +36,249,22,176,3,197,198,27,28,23,197,2,86,95,23,196,1,23,195,1,23, +197,1,86,94,23,197,1,27,248,22,132,15,2,32,27,250,80,159,42,39,39, +23,197,1,11,11,27,248,22,131,4,23,199,1,27,28,23,194,2,23,194,1, +86,94,23,194,1,36,27,248,22,131,4,23,202,1,27,28,23,194,2,23,194, +1,86,94,23,194,1,36,249,22,188,5,23,199,1,20,20,95,88,163,8,36, +36,48,11,9,224,4,2,33,107,23,195,1,23,197,1,27,248,22,173,5,23, +195,1,248,80,159,39,8,32,39,193,159,36,20,113,159,36,16,1,11,16,0, +20,26,141,2,1,2,1,29,11,11,11,11,11,10,43,80,158,36,36,20,113, +159,40,16,29,2,2,2,3,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,30,2,19,76,102,105,110,100, +45,108,105,110,107,115,45,112,97,116,104,33,4,30,2,20,1,20,112,97,114, +97,109,101,116,101,114,105,122,97,116,105,111,110,45,107,101,121,6,30,2,20, +1,23,101,120,116,101,110,100,45,112,97,114,97,109,101,116,101,114,105,122,97, +116,105,111,110,3,2,21,2,22,2,23,30,2,19,1,21,101,120,99,101,112, +116,105,111,110,45,104,97,110,100,108,101,114,45,107,101,121,2,2,24,2,25, +2,26,2,27,2,28,2,29,2,30,16,0,37,39,36,16,0,36,16,13,2, +8,2,9,2,7,2,3,2,25,2,23,2,21,2,16,2,22,2,24,2,14, +2,13,2,15,49,11,11,11,16,12,2,12,2,10,2,30,2,11,2,5,2, +29,2,28,2,4,2,27,2,6,2,26,2,2,16,12,11,11,11,11,11,11, +11,11,11,11,11,11,16,12,2,12,2,10,2,30,2,11,2,5,2,29,2, +28,2,4,2,27,2,6,2,26,2,2,48,48,37,12,11,11,16,0,16,0, +16,0,36,36,11,12,11,11,16,0,16,0,16,0,36,36,16,29,20,15,16, +2,88,163,8,36,37,51,16,4,36,39,37,36,2,31,223,0,33,50,80,159, +36,8,32,39,20,15,16,2,88,163,8,36,37,56,16,2,44,8,240,0,128, +0,0,2,31,223,0,33,51,80,159,36,8,31,39,20,15,16,2,88,163,8, +36,37,51,16,2,44,8,240,0,64,0,0,2,31,223,0,33,52,80,159,36, +8,30,39,20,15,16,2,88,163,8,36,37,51,16,2,44,8,128,128,2,31, +223,0,33,53,80,159,36,8,29,39,20,15,16,2,32,0,88,163,36,37,45, +11,2,2,222,33,54,80,159,36,36,37,20,15,16,2,249,22,132,7,7,92, +7,92,80,159,36,37,37,20,15,16,2,88,163,36,37,54,38,2,4,223,0, +33,55,80,159,36,38,37,20,15,16,2,20,25,96,2,5,88,163,8,36,39, +8,24,52,9,223,0,33,62,88,163,36,38,47,44,9,223,0,33,63,88,163, +36,37,46,44,9,223,0,33,64,80,159,36,39,37,20,15,16,2,27,248,22, +140,15,248,22,144,8,27,28,249,22,140,9,247,22,152,8,2,34,6,1,1, +59,6,1,1,58,250,22,178,7,6,14,14,40,91,94,126,97,93,42,41,126, +97,40,46,42,41,23,196,2,23,196,1,88,163,8,36,38,48,11,2,6,223, +0,33,68,80,159,36,40,37,20,15,16,2,32,0,88,163,8,36,38,50,11, +2,7,222,33,69,80,159,36,41,37,20,15,16,2,32,0,88,163,8,36,39, +51,11,2,8,222,33,71,80,159,36,42,37,20,15,16,2,32,0,88,163,8, +36,38,46,11,2,9,222,33,72,80,159,36,43,37,20,15,16,2,88,163,45, +39,52,8,128,8,2,10,223,0,33,74,80,159,36,44,37,20,15,16,2,88, +163,45,40,53,8,128,8,2,12,223,0,33,76,80,159,36,46,37,20,15,16, +2,248,22,132,15,70,108,105,110,107,115,45,102,105,108,101,80,159,36,47,37, +20,15,16,2,247,22,133,2,80,158,36,48,20,15,16,2,2,77,80,158,36, +49,20,15,16,2,248,80,159,37,51,37,88,163,36,36,49,8,240,8,0,3, +0,9,223,1,33,78,80,159,36,50,37,20,15,16,2,247,22,133,2,80,158, +36,54,20,15,16,2,2,77,80,158,36,55,20,15,16,2,88,163,36,37,44, +8,240,0,120,47,0,2,23,223,0,33,89,80,159,36,56,37,20,15,16,2, +88,163,36,38,56,8,240,0,0,64,0,2,24,223,0,33,91,80,159,36,58, +37,20,15,16,2,88,163,36,40,59,8,240,0,64,80,0,2,11,223,0,33, +98,80,159,36,45,37,20,15,16,2,32,0,88,163,36,39,50,11,2,25,222, +33,99,80,159,36,59,37,20,15,16,2,32,0,88,163,36,38,53,11,2,26, +222,33,100,80,159,36,8,24,37,20,15,16,2,32,0,88,163,36,38,54,11, +2,27,222,33,101,80,159,36,8,25,37,20,15,16,2,20,27,158,32,0,88, +163,36,37,44,11,2,28,222,33,102,32,0,88,163,36,37,44,11,2,28,222, +33,103,80,159,36,8,26,37,20,15,16,2,20,25,96,2,29,88,163,36,36, +53,16,2,52,8,128,128,9,223,0,33,104,88,163,36,37,54,16,2,52,8, +240,0,64,0,0,9,223,0,33,105,88,163,36,38,55,16,2,52,8,240,0, +128,0,0,9,223,0,33,106,80,159,36,8,27,37,20,15,16,2,88,163,8, +36,39,54,16,4,44,36,37,36,2,30,223,0,33,108,80,159,36,8,28,37, +95,29,94,2,17,68,35,37,107,101,114,110,101,108,11,29,94,2,17,69,35, +37,109,105,110,45,115,116,120,11,2,19,9,9,9,36,0}; + EVAL_ONE_SIZED_STR((char *)expr, 10431); } { - SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,53,46,50,46,48,46,54,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,12,0,0,0,1,0,0,15,0,40,0,57, -0,75,0,97,0,120,0,140,0,162,0,169,0,176,0,183,0,0,0,175,1, -0,0,74,35,37,112,108,97,99,101,45,115,116,114,117,99,116,1,23,115,116, -114,117,99,116,58,84,72,45,112,108,97,99,101,45,99,104,97,110,110,101,108, -76,84,72,45,112,108,97,99,101,45,99,104,97,110,110,101,108,77,84,72,45, -112,108,97,99,101,45,99,104,97,110,110,101,108,63,1,20,84,72,45,112,108, -97,99,101,45,99,104,97,110,110,101,108,45,114,101,102,1,21,84,72,45,112, -108,97,99,101,45,99,104,97,110,110,101,108,45,115,101,116,33,79,84,72,45, -112,108,97,99,101,45,99,104,97,110,110,101,108,45,105,110,1,20,84,72,45, -112,108,97,99,101,45,99,104,97,110,110,101,108,45,111,117,116,249,80,158,38, -39,195,36,249,80,158,38,39,195,36,249,80,158,38,39,195,37,159,36,20,113, -159,36,16,1,11,16,0,20,26,141,2,1,2,1,29,11,11,11,11,11,10, -45,80,158,36,36,20,113,159,36,16,7,2,2,2,3,2,4,2,5,2,6, -2,7,2,8,16,0,37,39,36,16,0,36,16,2,2,5,2,6,38,11,11, -11,16,5,2,3,2,7,2,8,2,4,2,2,16,5,11,11,11,11,11,16, -5,2,3,2,7,2,8,2,4,2,2,41,41,37,12,11,11,16,0,16,0, -16,0,36,36,11,12,11,11,16,0,16,0,16,0,36,36,16,2,20,15,16, -6,253,22,181,10,2,3,11,38,36,11,248,22,83,249,22,73,22,169,10,88, -163,36,37,45,44,9,223,9,33,9,80,159,36,36,37,80,159,36,37,37,80, -159,36,38,37,80,159,36,39,37,80,159,36,40,37,20,15,16,3,249,22,7, -88,163,36,37,45,44,9,223,2,33,10,88,163,36,37,45,44,9,223,2,33, -11,80,159,36,41,37,80,159,36,42,37,93,29,94,65,113,117,111,116,101,68, -35,37,107,101,114,110,101,108,11,9,9,9,36,0}; - EVAL_ONE_SIZED_STR((char *)expr, 496); + SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,53,46,50,46,48,46,57,48,49,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,1,0,0,15,0,40, +0,57,0,75,0,97,0,120,0,140,0,162,0,169,0,176,0,183,0,0,0, +175,1,0,0,74,35,37,112,108,97,99,101,45,115,116,114,117,99,116,1,23, +115,116,114,117,99,116,58,84,72,45,112,108,97,99,101,45,99,104,97,110,110, +101,108,76,84,72,45,112,108,97,99,101,45,99,104,97,110,110,101,108,77,84, +72,45,112,108,97,99,101,45,99,104,97,110,110,101,108,63,1,20,84,72,45, +112,108,97,99,101,45,99,104,97,110,110,101,108,45,114,101,102,1,21,84,72, +45,112,108,97,99,101,45,99,104,97,110,110,101,108,45,115,101,116,33,79,84, +72,45,112,108,97,99,101,45,99,104,97,110,110,101,108,45,105,110,1,20,84, +72,45,112,108,97,99,101,45,99,104,97,110,110,101,108,45,111,117,116,249,80, +158,38,39,195,36,249,80,158,38,39,195,36,249,80,158,38,39,195,37,159,36, +20,113,159,36,16,1,11,16,0,20,26,141,2,1,2,1,29,11,11,11,11, +11,10,45,80,158,36,36,20,113,159,36,16,7,2,2,2,3,2,4,2,5, +2,6,2,7,2,8,16,0,37,39,36,16,0,36,16,2,2,5,2,6,38, +11,11,11,16,5,2,3,2,7,2,8,2,4,2,2,16,5,11,11,11,11, +11,16,5,2,3,2,7,2,8,2,4,2,2,41,41,37,12,11,11,16,0, +16,0,16,0,36,36,11,12,11,11,16,0,16,0,16,0,36,36,16,2,20, +15,16,6,253,22,181,10,2,3,11,38,36,11,248,22,83,249,22,73,22,169, +10,88,163,36,37,45,44,9,223,9,33,9,80,159,36,36,37,80,159,36,37, +37,80,159,36,38,37,80,159,36,39,37,80,159,36,40,37,20,15,16,3,249, +22,7,88,163,36,37,45,44,9,223,2,33,10,88,163,36,37,45,44,9,223, +2,33,11,80,159,36,41,37,80,159,36,42,37,93,29,94,65,113,117,111,116, +101,68,35,37,107,101,114,110,101,108,11,9,9,9,36,0}; + EVAL_ONE_SIZED_STR((char *)expr, 498); } { - SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,53,46,50,46,48,46,54,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,70,0,0,0,1,0,0,7,0,18,0,45, -0,51,0,64,0,73,0,80,0,102,0,124,0,150,0,158,0,170,0,185,0, -201,0,219,0,239,0,251,0,11,1,34,1,46,1,77,1,84,1,89,1,94, -1,100,1,105,1,110,1,119,1,124,1,128,1,139,1,146,1,149,1,157,1, -166,1,174,1,231,1,78,2,99,2,120,2,150,2,180,2,238,2,40,3,89, -3,138,3,68,9,119,9,182,9,201,9,215,9,117,10,130,10,8,11,50,12, -173,12,179,12,193,12,220,12,240,12,39,13,49,13,136,13,138,13,213,13,172, -19,225,19,249,19,17,20,0,0,143,23,0,0,66,35,37,98,111,111,116,70, -100,108,108,45,115,117,102,102,105,120,1,25,100,101,102,97,117,108,116,45,108, -111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,65,113,117,111,116, -101,29,94,2,4,67,35,37,117,116,105,108,115,11,68,35,37,112,97,114,97, -109,122,29,94,2,4,2,6,11,1,20,112,97,114,97,109,101,116,101,114,105, -122,97,116,105,111,110,45,107,101,121,1,20,100,101,102,97,117,108,116,45,114, -101,97,100,101,114,45,103,117,97,114,100,1,24,45,109,111,100,117,108,101,45, -104,97,115,104,45,116,97,98,108,101,45,116,97,98,108,101,67,67,65,67,72, -69,45,78,71,45,112,97,116,104,45,99,97,99,104,101,74,112,97,116,104,45, -99,97,99,104,101,45,103,101,116,75,112,97,116,104,45,99,97,99,104,101,45, -115,101,116,33,77,45,108,111,97,100,105,110,103,45,102,105,108,101,110,97,109, -101,79,45,108,111,97,100,105,110,103,45,112,114,111,109,112,116,45,116,97,103, -71,45,112,114,101,118,45,114,101,108,116,111,75,45,112,114,101,118,45,114,101, -108,116,111,45,100,105,114,1,21,115,112,108,105,116,45,114,101,108,97,116,105, -118,101,45,115,116,114,105,110,103,71,111,114,105,103,45,112,97,114,97,109,122, -1,29,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,29,94,2,4,2,6,11,64,98,111,111, -116,64,115,101,97,108,5,4,46,114,107,116,64,115,97,109,101,5,3,46,122, -111,6,6,6,110,97,116,105,118,101,64,108,111,111,112,63,108,105,98,6,8, -8,109,97,105,110,46,114,107,116,6,4,4,46,114,107,116,6,0,0,67,105, -103,110,111,114,101,100,249,22,14,195,80,159,38,49,38,249,80,159,38,52,39, -195,10,90,159,39,11,89,161,39,36,11,248,22,177,14,197,86,95,23,195,1, -23,193,1,28,249,22,144,15,0,11,35,114,120,34,91,46,93,115,115,36,34, -248,22,161,14,23,197,1,249,80,159,41,56,39,198,2,25,196,27,28,23,195, -2,28,249,22,140,9,23,197,2,80,158,39,50,86,94,23,195,1,80,158,37, -51,27,248,22,139,5,23,197,2,28,248,22,156,14,23,194,2,90,159,39,11, -89,161,39,36,11,248,22,177,14,23,197,1,86,95,20,18,159,11,80,158,41, -50,198,20,18,159,11,80,158,41,51,192,192,11,11,28,23,193,2,192,86,94, -23,193,1,27,247,22,162,5,28,192,192,247,22,133,15,250,22,174,14,23,197, -1,23,199,1,249,80,159,43,39,39,23,198,1,2,27,250,22,174,14,23,197, -1,23,199,1,249,80,159,43,39,39,23,198,1,2,27,252,22,174,14,23,199, -1,23,201,1,2,28,247,22,153,8,249,80,159,45,39,39,23,200,1,80,159, -45,36,38,252,22,174,14,23,199,1,23,201,1,2,28,247,22,153,8,249,80, -159,45,39,39,23,200,1,80,159,45,36,38,27,252,22,174,14,23,200,1,23, -202,1,2,28,247,22,153,8,249,80,159,46,39,39,23,201,1,80,159,46,36, -38,27,250,22,191,14,196,11,32,0,88,163,8,36,36,41,11,9,222,11,28, -192,249,22,73,195,194,11,27,252,22,174,14,23,200,1,23,202,1,2,28,247, -22,153,8,249,80,159,46,39,39,23,201,1,80,159,46,36,38,27,250,22,191, -14,196,11,32,0,88,163,8,36,36,41,11,9,222,11,28,192,249,22,73,195, -194,11,27,250,22,174,14,23,198,1,23,200,1,249,80,159,44,39,39,23,199, -1,2,27,27,250,22,191,14,196,11,32,0,88,163,8,36,36,41,11,9,222, -11,28,192,249,22,73,195,194,11,27,250,22,174,14,23,198,1,23,200,1,249, -80,159,44,39,39,23,199,1,2,27,27,250,22,191,14,196,11,32,0,88,163, -8,36,36,41,11,9,222,11,28,192,249,22,73,195,194,11,86,94,28,248,80, -159,37,38,39,23,195,2,12,250,22,176,9,77,108,111,97,100,47,117,115,101, -45,99,111,109,112,105,108,101,100,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,23,197,2,90,159, -46,11,89,161,37,36,11,28,248,22,180,14,23,205,2,23,204,2,27,247,22, -162,5,28,23,193,2,249,22,181,14,23,207,2,23,195,1,23,205,2,89,161, -39,37,11,248,22,177,14,23,205,1,86,94,23,196,1,89,161,38,40,11,28, -23,205,2,27,248,22,161,14,23,197,2,27,248,22,188,7,23,195,2,28,28, -249,22,188,3,23,195,2,40,249,22,191,7,2,25,249,22,130,8,23,198,2, -249,22,176,3,23,199,2,40,11,249,22,7,23,199,2,248,22,165,14,249,22, -131,8,250,22,130,8,23,202,1,36,249,22,176,3,23,203,1,40,5,3,46, -115,115,249,22,7,23,199,2,11,249,22,7,23,197,2,11,89,161,37,42,11, -28,249,22,140,9,23,199,2,23,197,2,23,193,2,249,22,174,14,23,196,2, -23,199,2,89,161,37,43,11,28,23,198,2,28,249,22,140,9,23,200,2,23, -197,1,23,193,1,86,94,23,193,1,249,22,174,14,23,196,2,23,200,2,86, -94,23,195,1,11,89,161,37,44,11,28,249,22,140,9,23,196,2,68,114,101, -108,97,116,105,118,101,86,94,23,194,1,2,26,23,194,1,89,161,37,45,11, -247,22,135,15,27,250,22,191,14,23,203,2,11,32,0,88,163,8,36,36,41, -11,9,222,11,27,28,23,194,2,249,22,73,23,203,2,23,196,1,86,94,23, -194,1,11,27,28,23,203,2,28,23,194,2,11,27,250,22,191,14,23,207,2, -11,32,0,88,163,8,36,36,41,11,9,222,11,28,192,249,22,73,23,206,2, -194,11,11,27,28,23,195,2,23,195,2,23,194,2,27,88,163,36,37,50,44, -62,122,111,225,15,13,9,33,39,27,88,163,36,37,50,44,66,97,108,116,45, -122,111,225,16,14,11,33,40,27,88,163,36,37,52,45,9,225,17,15,11,33, -41,27,88,163,36,37,52,45,9,225,18,16,13,33,42,27,28,23,200,2,23, -200,2,248,22,138,9,23,200,2,27,28,23,208,2,28,23,200,2,86,94,23, -201,1,23,200,2,248,22,138,9,23,202,1,11,27,28,23,195,2,28,23,197, -1,27,249,22,5,88,163,8,36,37,53,45,9,225,24,22,18,33,43,23,216, -2,27,28,23,202,2,11,193,28,192,192,28,193,28,23,202,2,28,249,22,188, -3,248,22,75,196,248,22,75,23,205,2,193,11,11,11,11,86,94,23,197,1, -11,28,23,193,2,86,105,23,213,1,23,211,1,23,210,1,23,209,1,23,208, -1,23,201,1,23,200,1,23,199,1,23,198,1,23,196,1,23,195,1,23,194, -1,20,13,159,80,159,57,40,37,250,80,159,8,24,41,37,249,22,27,11,80, -159,8,26,40,37,22,182,4,11,20,13,159,80,159,57,40,37,250,80,159,8, -24,41,37,249,22,27,11,80,159,8,26,40,37,22,162,5,28,248,22,156,14, -23,216,2,23,215,1,86,94,23,215,1,247,22,133,15,249,247,22,139,15,248, -22,74,195,23,25,86,94,23,193,1,27,28,23,195,2,28,23,197,1,27,249, -22,5,88,163,8,36,37,53,45,9,225,25,23,20,33,44,23,217,2,27,28, -23,204,2,11,193,28,192,192,28,193,28,203,28,249,22,188,3,248,22,75,196, -248,22,75,206,193,11,11,11,11,86,94,23,197,1,11,28,23,193,2,86,102, -23,214,1,23,211,1,23,210,1,23,209,1,23,201,1,23,200,1,23,199,1, -23,196,1,23,195,1,20,13,159,80,159,58,40,37,250,80,159,8,25,41,37, -249,22,27,11,80,159,8,27,40,37,22,182,4,23,215,1,20,13,159,80,159, -58,40,37,250,80,159,8,25,41,37,249,22,27,11,80,159,8,27,40,37,22, -162,5,28,248,22,156,14,23,217,2,23,216,1,86,94,23,216,1,247,22,133, -15,249,247,22,139,15,248,22,74,195,23,26,86,94,23,193,1,27,28,23,197, -2,28,23,201,1,27,249,22,5,20,20,94,88,163,8,36,37,51,44,9,225, -26,24,20,33,45,23,213,1,23,218,2,27,28,23,204,2,11,193,28,192,192, -28,193,28,23,204,2,28,249,22,188,3,248,22,75,196,248,22,75,23,207,2, -193,11,11,11,86,94,23,210,1,11,86,94,23,201,1,11,28,23,193,2,86, -101,23,215,1,23,213,1,23,212,1,23,211,1,23,202,1,23,200,1,23,197, -1,23,196,1,20,13,159,80,159,59,40,37,250,80,159,8,26,41,37,249,22, -27,11,80,159,8,28,40,37,22,182,4,11,20,13,159,80,159,59,40,37,250, -80,159,8,26,41,37,249,22,27,11,80,159,8,28,40,37,22,162,5,28,248, -22,156,14,23,218,2,23,217,1,86,94,23,217,1,247,22,133,15,249,247,22, -160,5,248,22,74,195,23,27,86,94,23,193,1,27,28,23,197,1,28,23,201, -1,27,249,22,5,20,20,94,88,163,8,36,37,51,44,9,225,27,25,22,33, -46,23,215,1,23,219,1,27,28,23,205,2,11,193,28,192,192,28,193,28,204, -28,249,22,188,3,248,22,75,196,248,22,75,23,15,193,11,11,11,86,95,23, -216,1,23,212,1,11,86,94,23,201,1,11,28,23,193,2,86,95,23,213,1, -23,198,1,20,13,159,80,159,8,24,40,37,250,80,159,8,27,41,37,249,22, -27,11,80,159,8,29,40,37,22,182,4,23,217,1,20,13,159,80,159,8,24, -40,37,250,80,159,8,27,41,37,249,22,27,11,80,159,8,29,40,37,22,162, -5,28,248,22,156,14,23,219,2,23,218,1,86,94,23,218,1,247,22,133,15, -249,247,22,160,5,248,22,74,195,23,28,86,94,23,193,1,27,28,23,199,2, -86,94,23,215,1,23,214,1,86,94,23,214,1,23,215,1,20,13,159,80,159, -8,25,40,37,250,80,159,8,28,41,37,249,22,27,11,80,159,8,30,40,37, -22,182,4,28,23,30,28,23,202,1,11,195,86,94,23,202,1,11,20,13,159, + SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,53,46,50,46,48,46,57,48,49,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,70,0,0,0,1,0,0,7,0,18, +0,45,0,51,0,64,0,73,0,80,0,102,0,124,0,150,0,158,0,170,0, +185,0,201,0,219,0,239,0,251,0,11,1,34,1,46,1,77,1,84,1,89, +1,94,1,100,1,105,1,110,1,119,1,124,1,128,1,139,1,146,1,149,1, +157,1,166,1,174,1,231,1,78,2,99,2,120,2,150,2,180,2,238,2,40, +3,89,3,138,3,68,9,119,9,182,9,201,9,215,9,117,10,130,10,8,11, +50,12,173,12,179,12,233,12,4,13,24,13,79,13,89,13,176,13,178,13,253, +13,186,19,239,19,7,20,31,20,0,0,157,23,0,0,66,35,37,98,111,111, +116,70,100,108,108,45,115,117,102,102,105,120,1,25,100,101,102,97,117,108,116, +45,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,65,113,117, +111,116,101,29,94,2,4,67,35,37,117,116,105,108,115,11,68,35,37,112,97, +114,97,109,122,29,94,2,4,2,6,11,1,20,112,97,114,97,109,101,116,101, +114,105,122,97,116,105,111,110,45,107,101,121,1,20,100,101,102,97,117,108,116, +45,114,101,97,100,101,114,45,103,117,97,114,100,1,24,45,109,111,100,117,108, +101,45,104,97,115,104,45,116,97,98,108,101,45,116,97,98,108,101,67,67,65, +67,72,69,45,78,71,45,112,97,116,104,45,99,97,99,104,101,74,112,97,116, +104,45,99,97,99,104,101,45,103,101,116,75,112,97,116,104,45,99,97,99,104, +101,45,115,101,116,33,77,45,108,111,97,100,105,110,103,45,102,105,108,101,110, +97,109,101,79,45,108,111,97,100,105,110,103,45,112,114,111,109,112,116,45,116, +97,103,71,45,112,114,101,118,45,114,101,108,116,111,75,45,112,114,101,118,45, +114,101,108,116,111,45,100,105,114,1,21,115,112,108,105,116,45,114,101,108,97, +116,105,118,101,45,115,116,114,105,110,103,71,111,114,105,103,45,112,97,114,97, +109,122,1,29,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,29,94,2,4,2,6,11,64,98, +111,111,116,64,115,101,97,108,5,4,46,114,107,116,64,115,97,109,101,5,3, +46,122,111,6,6,6,110,97,116,105,118,101,64,108,111,111,112,63,108,105,98, +6,8,8,109,97,105,110,46,114,107,116,6,4,4,46,114,107,116,6,0,0, +67,105,103,110,111,114,101,100,249,22,14,195,80,159,38,49,38,249,80,159,38, +52,39,195,10,90,159,39,11,89,161,39,36,11,248,22,177,14,197,86,95,23, +195,1,23,193,1,28,249,22,144,15,0,11,35,114,120,34,91,46,93,115,115, +36,34,248,22,161,14,23,197,1,249,80,159,41,56,39,198,2,25,196,27,28, +23,195,2,28,249,22,140,9,23,197,2,80,158,39,50,86,94,23,195,1,80, +158,37,51,27,248,22,139,5,23,197,2,28,248,22,156,14,23,194,2,90,159, +39,11,89,161,39,36,11,248,22,177,14,23,197,1,86,95,20,18,159,11,80, +158,41,50,198,20,18,159,11,80,158,41,51,192,192,11,11,28,23,193,2,192, +86,94,23,193,1,27,247,22,162,5,28,192,192,247,22,133,15,250,22,174,14, +23,197,1,23,199,1,249,80,159,43,39,39,23,198,1,2,27,250,22,174,14, +23,197,1,23,199,1,249,80,159,43,39,39,23,198,1,2,27,252,22,174,14, +23,199,1,23,201,1,2,28,247,22,153,8,249,80,159,45,39,39,23,200,1, +80,159,45,36,38,252,22,174,14,23,199,1,23,201,1,2,28,247,22,153,8, +249,80,159,45,39,39,23,200,1,80,159,45,36,38,27,252,22,174,14,23,200, +1,23,202,1,2,28,247,22,153,8,249,80,159,46,39,39,23,201,1,80,159, +46,36,38,27,250,22,191,14,196,11,32,0,88,163,8,36,36,41,11,9,222, +11,28,192,249,22,73,195,194,11,27,252,22,174,14,23,200,1,23,202,1,2, +28,247,22,153,8,249,80,159,46,39,39,23,201,1,80,159,46,36,38,27,250, +22,191,14,196,11,32,0,88,163,8,36,36,41,11,9,222,11,28,192,249,22, +73,195,194,11,27,250,22,174,14,23,198,1,23,200,1,249,80,159,44,39,39, +23,199,1,2,27,27,250,22,191,14,196,11,32,0,88,163,8,36,36,41,11, +9,222,11,28,192,249,22,73,195,194,11,27,250,22,174,14,23,198,1,23,200, +1,249,80,159,44,39,39,23,199,1,2,27,27,250,22,191,14,196,11,32,0, +88,163,8,36,36,41,11,9,222,11,28,192,249,22,73,195,194,11,86,94,28, +248,80,159,37,38,39,23,195,2,12,250,22,176,9,77,108,111,97,100,47,117, +115,101,45,99,111,109,112,105,108,101,100,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,23,197,2, +90,159,46,11,89,161,37,36,11,28,248,22,180,14,23,205,2,23,204,2,27, +247,22,162,5,28,23,193,2,249,22,181,14,23,207,2,23,195,1,23,205,2, +89,161,39,37,11,248,22,177,14,23,205,1,86,94,23,196,1,89,161,38,40, +11,28,23,205,2,27,248,22,161,14,23,197,2,27,248,22,188,7,23,195,2, +28,28,249,22,188,3,23,195,2,40,249,22,191,7,2,25,249,22,130,8,23, +198,2,249,22,176,3,23,199,2,40,11,249,22,7,23,199,2,248,22,165,14, +249,22,131,8,250,22,130,8,23,202,1,36,249,22,176,3,23,203,1,40,5, +3,46,115,115,249,22,7,23,199,2,11,249,22,7,23,197,2,11,89,161,37, +42,11,28,249,22,140,9,23,199,2,23,197,2,23,193,2,249,22,174,14,23, +196,2,23,199,2,89,161,37,43,11,28,23,198,2,28,249,22,140,9,23,200, +2,23,197,1,23,193,1,86,94,23,193,1,249,22,174,14,23,196,2,23,200, +2,86,94,23,195,1,11,89,161,37,44,11,28,249,22,140,9,23,196,2,68, +114,101,108,97,116,105,118,101,86,94,23,194,1,2,26,23,194,1,89,161,37, +45,11,247,22,135,15,27,250,22,191,14,23,203,2,11,32,0,88,163,8,36, +36,41,11,9,222,11,27,28,23,194,2,249,22,73,23,203,2,23,196,1,86, +94,23,194,1,11,27,28,23,203,2,28,23,194,2,11,27,250,22,191,14,23, +207,2,11,32,0,88,163,8,36,36,41,11,9,222,11,28,192,249,22,73,23, +206,2,194,11,11,27,28,23,195,2,23,195,2,23,194,2,27,88,163,36,37, +50,44,62,122,111,225,15,13,9,33,39,27,88,163,36,37,50,44,66,97,108, +116,45,122,111,225,16,14,11,33,40,27,88,163,36,37,52,45,9,225,17,15, +11,33,41,27,88,163,36,37,52,45,9,225,18,16,13,33,42,27,28,23,200, +2,23,200,2,248,22,138,9,23,200,2,27,28,23,208,2,28,23,200,2,86, +94,23,201,1,23,200,2,248,22,138,9,23,202,1,11,27,28,23,195,2,28, +23,197,1,27,249,22,5,88,163,8,36,37,53,45,9,225,24,22,18,33,43, +23,216,2,27,28,23,202,2,11,193,28,192,192,28,193,28,23,202,2,28,249, +22,188,3,248,22,75,196,248,22,75,23,205,2,193,11,11,11,11,86,94,23, +197,1,11,28,23,193,2,86,105,23,213,1,23,211,1,23,210,1,23,209,1, +23,208,1,23,201,1,23,200,1,23,199,1,23,198,1,23,196,1,23,195,1, +23,194,1,20,13,159,80,159,57,40,37,250,80,159,8,24,41,37,249,22,27, +11,80,159,8,26,40,37,22,182,4,11,20,13,159,80,159,57,40,37,250,80, +159,8,24,41,37,249,22,27,11,80,159,8,26,40,37,22,162,5,28,248,22, +156,14,23,216,2,23,215,1,86,94,23,215,1,247,22,133,15,249,247,22,139, +15,248,22,74,195,23,25,86,94,23,193,1,27,28,23,195,2,28,23,197,1, +27,249,22,5,88,163,8,36,37,53,45,9,225,25,23,20,33,44,23,217,2, +27,28,23,204,2,11,193,28,192,192,28,193,28,203,28,249,22,188,3,248,22, +75,196,248,22,75,206,193,11,11,11,11,86,94,23,197,1,11,28,23,193,2, +86,102,23,214,1,23,211,1,23,210,1,23,209,1,23,201,1,23,200,1,23, +199,1,23,196,1,23,195,1,20,13,159,80,159,58,40,37,250,80,159,8,25, +41,37,249,22,27,11,80,159,8,27,40,37,22,182,4,23,215,1,20,13,159, +80,159,58,40,37,250,80,159,8,25,41,37,249,22,27,11,80,159,8,27,40, +37,22,162,5,28,248,22,156,14,23,217,2,23,216,1,86,94,23,216,1,247, +22,133,15,249,247,22,139,15,248,22,74,195,23,26,86,94,23,193,1,27,28, +23,197,2,28,23,201,1,27,249,22,5,20,20,94,88,163,8,36,37,51,44, +9,225,26,24,20,33,45,23,213,1,23,218,2,27,28,23,204,2,11,193,28, +192,192,28,193,28,23,204,2,28,249,22,188,3,248,22,75,196,248,22,75,23, +207,2,193,11,11,11,86,94,23,210,1,11,86,94,23,201,1,11,28,23,193, +2,86,101,23,215,1,23,213,1,23,212,1,23,211,1,23,202,1,23,200,1, +23,197,1,23,196,1,20,13,159,80,159,59,40,37,250,80,159,8,26,41,37, +249,22,27,11,80,159,8,28,40,37,22,182,4,11,20,13,159,80,159,59,40, +37,250,80,159,8,26,41,37,249,22,27,11,80,159,8,28,40,37,22,162,5, +28,248,22,156,14,23,218,2,23,217,1,86,94,23,217,1,247,22,133,15,249, +247,22,160,5,248,22,74,195,23,27,86,94,23,193,1,27,28,23,197,1,28, +23,201,1,27,249,22,5,20,20,94,88,163,8,36,37,51,44,9,225,27,25, +22,33,46,23,215,1,23,219,1,27,28,23,205,2,11,193,28,192,192,28,193, +28,204,28,249,22,188,3,248,22,75,196,248,22,75,23,15,193,11,11,11,86, +95,23,216,1,23,212,1,11,86,94,23,201,1,11,28,23,193,2,86,95,23, +213,1,23,198,1,20,13,159,80,159,8,24,40,37,250,80,159,8,27,41,37, +249,22,27,11,80,159,8,29,40,37,22,182,4,23,217,1,20,13,159,80,159, +8,24,40,37,250,80,159,8,27,41,37,249,22,27,11,80,159,8,29,40,37, +22,162,5,28,248,22,156,14,23,219,2,23,218,1,86,94,23,218,1,247,22, +133,15,249,247,22,160,5,248,22,74,195,23,28,86,94,23,193,1,27,28,23, +199,2,86,94,23,215,1,23,214,1,86,94,23,214,1,23,215,1,20,13,159, 80,159,8,25,40,37,250,80,159,8,28,41,37,249,22,27,11,80,159,8,30, -40,37,22,162,5,28,248,22,156,14,23,220,2,23,219,1,86,94,23,219,1, -247,22,133,15,249,247,22,160,5,194,23,29,27,249,22,160,8,80,159,39,45, -38,249,22,183,3,248,22,179,3,248,22,166,2,200,8,128,8,27,28,193,248, -22,169,2,194,11,28,192,27,249,22,96,198,195,28,192,248,22,75,193,11,11, -27,249,22,183,3,248,22,179,3,248,22,166,2,198,8,128,8,27,249,22,160, -8,80,159,40,45,38,195,27,28,193,248,22,169,2,194,11,250,22,161,8,80, -159,42,45,38,197,248,22,168,2,249,22,73,249,22,73,204,205,28,198,198,9, -0,17,35,114,120,34,94,40,46,42,63,41,47,40,46,42,41,36,34,32,51, -88,163,8,36,37,59,11,2,29,222,33,52,27,249,22,144,15,2,50,23,196, -2,28,23,193,2,86,94,23,194,1,249,22,73,248,22,98,23,196,2,27,248, -22,107,23,197,1,27,249,22,144,15,2,50,23,196,2,28,23,193,2,86,94, -23,194,1,249,22,73,248,22,98,23,196,2,27,248,22,107,23,197,1,27,249, +40,37,22,182,4,28,23,30,28,23,202,1,11,195,86,94,23,202,1,11,20, +13,159,80,159,8,25,40,37,250,80,159,8,28,41,37,249,22,27,11,80,159, +8,30,40,37,22,162,5,28,248,22,156,14,23,220,2,23,219,1,86,94,23, +219,1,247,22,133,15,249,247,22,160,5,194,23,29,27,249,22,160,8,80,159, +39,45,38,249,22,183,3,248,22,179,3,248,22,166,2,200,8,128,8,27,28, +193,248,22,169,2,194,11,28,192,27,249,22,96,198,195,28,192,248,22,75,193, +11,11,27,249,22,183,3,248,22,179,3,248,22,166,2,198,8,128,8,27,249, +22,160,8,80,159,40,45,38,195,27,28,193,248,22,169,2,194,11,250,22,161, +8,80,159,42,45,38,197,248,22,168,2,249,22,73,249,22,73,204,205,28,198, +198,9,0,17,35,114,120,34,94,40,46,42,63,41,47,40,46,42,41,36,34, +32,51,88,163,8,36,37,59,11,2,29,222,33,52,27,249,22,144,15,2,50, +23,196,2,28,23,193,2,86,94,23,194,1,249,22,73,248,22,98,23,196,2, +27,248,22,107,23,197,1,27,249,22,144,15,2,50,23,196,2,28,23,193,2, +86,94,23,194,1,249,22,73,248,22,98,23,196,2,27,248,22,107,23,197,1, +27,249,22,144,15,2,50,23,196,2,28,23,193,2,86,94,23,194,1,249,22, +73,248,22,98,23,196,2,27,248,22,107,23,197,1,27,249,22,144,15,2,50, +23,196,2,28,23,193,2,86,94,23,194,1,249,22,73,248,22,98,23,196,2, +248,2,51,248,22,107,23,197,1,248,22,83,194,248,22,83,194,248,22,83,194, +248,22,83,194,32,53,88,163,36,37,55,11,2,29,222,33,54,28,248,22,81, +248,22,75,23,195,2,249,22,7,9,248,22,74,195,90,159,38,11,89,161,38, +36,11,27,248,22,75,196,28,248,22,81,248,22,75,23,195,2,249,22,7,9, +248,22,74,195,90,159,38,11,89,161,38,36,11,27,248,22,75,196,28,248,22, +81,248,22,75,23,195,2,249,22,7,9,248,22,74,195,90,159,38,11,89,161, +38,36,11,248,2,53,248,22,75,196,249,22,7,249,22,73,248,22,74,199,196, +195,249,22,7,249,22,73,248,22,74,199,196,195,249,22,7,249,22,73,248,22, +74,199,196,195,27,27,249,22,144,15,2,50,23,197,2,28,23,193,2,86,94, +23,195,1,249,22,73,248,22,98,23,196,2,27,248,22,107,23,197,1,27,249, 22,144,15,2,50,23,196,2,28,23,193,2,86,94,23,194,1,249,22,73,248, 22,98,23,196,2,27,248,22,107,23,197,1,27,249,22,144,15,2,50,23,196, -2,28,23,193,2,86,94,23,194,1,249,22,73,248,22,98,23,196,2,248,2, -51,248,22,107,23,197,1,248,22,83,194,248,22,83,194,248,22,83,194,248,22, -83,194,32,53,88,163,36,37,55,11,2,29,222,33,54,28,248,22,81,248,22, -75,23,195,2,249,22,7,9,248,22,74,195,90,159,38,11,89,161,38,36,11, -27,248,22,75,196,28,248,22,81,248,22,75,23,195,2,249,22,7,9,248,22, -74,195,90,159,38,11,89,161,38,36,11,27,248,22,75,196,28,248,22,81,248, -22,75,23,195,2,249,22,7,9,248,22,74,195,90,159,38,11,89,161,38,36, -11,248,2,53,248,22,75,196,249,22,7,249,22,73,248,22,74,199,196,195,249, -22,7,249,22,73,248,22,74,199,196,195,249,22,7,249,22,73,248,22,74,199, -196,195,27,27,249,22,144,15,2,50,23,197,2,28,23,193,2,86,94,23,195, -1,249,22,73,248,22,98,23,196,2,27,248,22,107,23,197,1,27,249,22,144, -15,2,50,23,196,2,28,23,193,2,86,94,23,194,1,249,22,73,248,22,98, -23,196,2,27,248,22,107,23,197,1,27,249,22,144,15,2,50,23,196,2,28, -23,193,2,86,94,23,194,1,249,22,73,248,22,98,23,196,2,27,248,22,107, -23,197,1,27,249,22,144,15,2,50,23,196,2,28,23,193,2,86,94,23,194, -1,249,22,73,248,22,98,23,196,2,248,2,51,248,22,107,23,197,1,248,22, -83,194,248,22,83,194,248,22,83,194,248,22,83,195,28,23,195,1,192,28,248, -22,81,248,22,75,23,195,2,249,22,7,9,248,22,74,195,27,248,22,75,194, -90,159,38,11,89,161,38,36,11,28,248,22,81,248,22,75,23,197,2,249,22, -7,9,248,22,74,197,27,248,22,75,196,90,159,38,11,89,161,38,36,11,28, -248,22,81,248,22,75,23,197,2,249,22,7,9,248,22,74,197,90,159,38,11, -89,161,38,36,11,248,2,53,248,22,75,198,249,22,7,249,22,73,248,22,74, -201,196,195,249,22,7,249,22,73,248,22,74,202,196,195,249,22,7,249,22,73, -248,22,74,200,196,195,86,95,28,248,22,137,5,195,12,250,22,176,9,2,21, -6,20,20,114,101,115,111,108,118,101,100,45,109,111,100,117,108,101,45,112,97, -116,104,197,28,24,193,2,248,24,194,1,195,86,94,23,193,1,12,27,250,22, -153,2,80,159,41,43,38,248,22,169,15,247,22,134,13,11,27,28,23,194,2, -193,86,94,23,194,1,27,247,22,133,2,86,94,250,22,151,2,80,159,43,43, -38,248,22,169,15,247,22,134,13,195,192,250,22,151,2,195,199,66,97,116,116, -97,99,104,251,211,197,198,199,10,28,192,250,22,175,9,11,196,195,248,22,173, -9,194,28,249,22,136,7,194,6,1,1,46,2,26,28,249,22,136,7,194,6, +2,28,23,193,2,86,94,23,194,1,249,22,73,248,22,98,23,196,2,27,248, +22,107,23,197,1,27,249,22,144,15,2,50,23,196,2,28,23,193,2,86,94, +23,194,1,249,22,73,248,22,98,23,196,2,248,2,51,248,22,107,23,197,1, +248,22,83,194,248,22,83,194,248,22,83,194,248,22,83,195,28,23,195,1,192, +28,248,22,81,248,22,75,23,195,2,249,22,7,9,248,22,74,195,27,248,22, +75,194,90,159,38,11,89,161,38,36,11,28,248,22,81,248,22,75,23,197,2, +249,22,7,9,248,22,74,197,27,248,22,75,196,90,159,38,11,89,161,38,36, +11,28,248,22,81,248,22,75,23,197,2,249,22,7,9,248,22,74,197,90,159, +38,11,89,161,38,36,11,248,2,53,248,22,75,198,249,22,7,249,22,73,248, +22,74,201,196,195,249,22,7,249,22,73,248,22,74,202,196,195,249,22,7,249, +22,73,248,22,74,200,196,195,86,95,28,248,22,137,5,195,12,250,22,176,9, +2,21,6,20,20,114,101,115,111,108,118,101,100,45,109,111,100,117,108,101,45, +112,97,116,104,197,28,24,193,2,248,24,194,1,195,86,94,23,193,1,12,27, +250,22,153,2,80,159,41,43,38,248,22,169,15,247,22,134,13,11,27,28,23, +194,2,193,86,94,23,194,1,27,247,22,133,2,86,94,250,22,151,2,80,159, +43,43,38,248,22,169,15,247,22,134,13,195,192,250,22,151,2,195,199,66,97, +116,116,97,99,104,251,211,197,198,199,10,27,249,22,153,7,6,31,31,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,58,32,196,28,193,250,22,175,9,11,195,196,248,22,173, +9,193,28,249,22,136,7,194,6,1,1,46,2,26,28,249,22,136,7,194,6, 2,2,46,46,62,117,112,192,32,60,88,163,8,36,37,50,11,67,115,115,45, 62,114,107,116,222,33,61,27,248,22,133,7,194,28,249,22,188,3,194,39,28, 249,22,136,7,6,3,3,46,115,115,249,22,152,7,197,249,22,176,3,198,39, @@ -812,136 +816,135 @@ 94,2,30,6,19,19,112,108,97,110,101,116,47,114,101,115,111,108,118,101,114, 46,114,107,116,1,27,112,108,97,110,101,116,45,109,111,100,117,108,101,45,110, 97,109,101,45,114,101,115,111,108,118,101,114,12,252,212,199,200,201,202,80,158, -42,53,86,94,23,193,1,27,88,163,8,36,37,46,11,79,115,104,111,119,45, +42,53,86,94,23,193,1,27,88,163,8,36,37,47,11,79,115,104,111,119,45, 99,111,108,108,101,99,116,105,111,110,45,101,114,114,223,5,33,58,27,28,248, 22,58,23,198,2,27,248,80,159,41,46,39,249,22,73,23,201,2,247,22,134, 15,28,23,193,2,192,86,94,23,193,1,90,159,38,11,89,161,38,36,11,249, 80,159,44,52,39,248,22,64,23,203,2,11,27,28,248,22,81,23,195,2,2, -31,249,22,153,7,23,197,2,2,32,27,252,80,159,49,57,39,2,21,23,204, -1,28,248,22,81,23,201,2,23,201,1,86,94,23,201,1,248,22,74,23,201, -2,28,248,22,81,23,201,2,86,94,23,200,1,9,248,22,75,23,201,1,23, -199,2,249,22,174,14,23,195,1,23,196,1,28,248,22,130,7,23,198,2,86, -94,23,194,1,27,248,80,159,41,8,26,39,23,200,2,27,248,80,159,42,46, -39,249,22,73,23,202,2,23,197,2,28,23,193,2,192,86,94,23,193,1,90, -159,38,11,89,161,38,36,11,249,80,159,45,52,39,23,203,2,11,250,22,1, -22,174,14,23,199,1,249,22,87,249,22,2,32,0,88,163,8,36,37,44,11, -9,222,33,59,23,200,1,248,22,83,248,2,60,23,201,1,28,248,22,156,14, -23,198,2,86,94,23,194,1,28,248,22,179,14,23,198,2,248,80,159,40,8, -27,39,248,22,183,14,23,199,2,248,22,83,6,26,26,32,40,97,32,112,97, -116,104,32,109,117,115,116,32,98,101,32,97,98,115,111,108,117,116,101,41,28, -249,22,140,9,248,22,74,23,200,2,2,30,27,248,80,159,41,46,39,249,22, -73,23,201,2,247,22,134,15,28,23,193,2,192,86,94,23,193,1,90,159,39, -11,89,161,38,36,11,249,80,159,45,52,39,248,22,98,23,204,2,11,89,161, -37,38,11,28,248,22,81,248,22,100,23,203,2,28,248,22,81,23,194,2,249, -22,148,15,2,62,23,196,2,11,10,27,28,23,196,2,248,2,60,23,196,2, -28,248,22,81,23,195,2,2,31,28,249,22,148,15,2,62,23,197,2,248,2, -60,23,196,2,249,22,153,7,23,197,2,2,32,27,28,23,197,1,86,94,23, -196,1,249,22,87,28,248,22,81,248,22,100,23,207,2,21,93,6,5,5,109, -122,108,105,98,249,22,1,22,87,249,22,2,80,159,51,8,28,39,248,22,100, -23,210,2,23,197,1,28,248,22,81,23,196,2,86,94,23,195,1,248,22,83, -23,197,1,86,94,23,196,1,23,195,1,27,252,80,159,51,57,39,2,21,23, -206,1,248,22,74,23,200,2,248,22,75,23,200,1,23,200,2,249,22,174,14, -23,195,1,23,197,1,28,249,22,140,9,248,22,74,23,200,2,64,102,105,108, -101,248,80,159,40,8,27,39,248,22,183,14,249,22,181,14,248,22,185,14,248, -22,98,23,203,2,248,80,159,44,8,26,39,23,203,2,12,86,94,28,28,248, -22,156,14,23,194,2,10,248,22,155,8,23,194,2,86,94,23,199,1,12,28, -23,199,2,250,22,175,9,67,114,101,113,117,105,114,101,249,22,178,7,6,17, -17,98,97,100,32,109,111,100,117,108,101,32,112,97,116,104,126,97,28,23,198, -2,248,22,74,23,199,2,2,33,23,202,1,86,94,23,199,1,250,22,176,9, -2,21,249,22,178,7,6,13,13,109,111,100,117,108,101,32,112,97,116,104,126, -97,28,23,198,2,248,22,74,23,199,2,2,33,23,200,2,27,28,248,22,155, -8,23,195,2,249,22,160,8,23,196,2,36,249,22,183,14,248,22,184,14,23, -197,2,11,27,28,248,22,155,8,23,196,2,249,22,160,8,23,197,2,37,248, -80,159,42,58,39,23,195,2,90,159,39,11,89,161,39,36,11,28,248,22,155, -8,23,199,2,250,22,7,2,34,249,22,160,8,23,203,2,38,2,34,248,22, -177,14,23,198,2,86,95,23,195,1,23,193,1,27,28,248,22,155,8,23,200, -2,249,22,160,8,23,201,2,39,249,80,159,47,56,39,23,197,2,5,0,27, -28,248,22,155,8,23,201,2,249,22,160,8,23,202,2,40,248,22,138,5,23, -200,2,27,27,250,22,153,2,80,159,51,43,38,248,22,169,15,247,22,134,13, -11,28,23,193,2,192,86,94,23,193,1,27,247,22,133,2,86,94,250,22,151, -2,80,159,52,43,38,248,22,169,15,247,22,134,13,195,192,86,95,28,23,208, -1,27,250,22,153,2,23,197,2,197,11,28,23,193,1,12,86,94,27,27,28, -248,22,17,80,159,51,49,38,80,159,50,49,38,247,22,19,251,22,27,11,80, -159,54,48,38,9,23,197,1,27,248,22,169,15,247,22,134,13,86,94,249,22, -3,20,20,94,88,163,8,36,37,55,11,9,226,12,11,2,3,33,63,23,195, -1,23,196,2,248,28,248,22,17,80,159,52,49,38,32,0,88,163,36,37,42, -11,9,222,33,64,80,159,51,8,29,39,20,20,94,88,163,36,36,52,8,176, -64,9,228,15,11,10,6,5,2,33,65,23,195,1,250,22,151,2,23,197,1, -197,10,12,28,28,248,22,155,8,23,202,1,11,28,248,22,130,7,23,206,2, -10,28,248,22,58,23,206,2,10,28,248,22,71,23,206,2,249,22,140,9,248, -22,74,23,208,2,2,30,11,249,80,159,49,47,39,28,248,22,130,7,23,208, -2,249,22,73,23,209,1,248,80,159,52,8,26,39,23,211,1,86,94,23,208, -1,249,22,73,23,209,1,247,22,134,15,252,22,157,8,23,207,1,23,206,1, -23,204,1,23,202,1,200,12,193,86,96,20,18,159,11,80,158,36,53,248,80, -159,37,8,25,37,249,22,27,11,80,159,39,55,37,248,22,180,4,80,159,37, -54,38,248,22,161,5,80,159,37,37,39,248,22,189,13,80,159,37,42,39,20, -18,159,11,80,158,36,53,248,80,159,37,8,25,37,249,22,27,11,80,159,39, -55,37,20,18,159,11,80,158,36,53,248,80,159,37,8,25,37,249,22,27,11, -80,159,39,55,37,159,36,20,113,159,36,16,1,11,16,0,20,26,141,2,1, -2,1,29,11,11,11,11,11,10,38,80,158,36,36,20,113,159,40,16,26,2, -2,2,3,30,2,5,72,112,97,116,104,45,115,116,114,105,110,103,63,11,30, -2,5,75,112,97,116,104,45,97,100,100,45,115,117,102,102,105,120,8,30,2, -7,2,8,6,30,2,7,1,23,101,120,116,101,110,100,45,112,97,114,97,109, -101,116,101,114,105,122,97,116,105,111,110,3,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,30,2,22,2, -8,6,30,2,5,79,112,97,116,104,45,114,101,112,108,97,99,101,45,115,117, -102,102,105,120,10,30,2,5,73,102,105,110,100,45,99,111,108,45,102,105,108, -101,3,30,2,5,76,110,111,114,109,97,108,45,99,97,115,101,45,112,97,116, -104,7,2,23,2,24,30,2,22,74,114,101,112,97,114,97,109,101,116,101,114, -105,122,101,7,16,0,37,39,36,16,0,36,16,14,2,15,2,16,2,10,2, -12,2,17,2,18,2,11,2,3,2,9,2,2,2,13,2,14,2,19,2,21, -50,11,11,11,16,3,2,23,2,20,2,24,16,3,11,11,11,16,3,2,23, -2,20,2,24,39,39,37,12,11,11,16,0,16,0,16,0,36,36,11,12,11, -11,16,0,16,0,16,0,36,36,16,21,20,15,16,2,88,163,36,37,45,8, -128,128,9,223,0,33,35,80,159,36,8,29,39,20,15,16,2,88,163,8,36, -37,45,8,240,0,0,1,0,9,223,0,33,36,80,159,36,8,28,39,20,15, -16,2,88,163,36,37,49,8,240,0,0,16,0,72,112,97,116,104,45,115,115, -45,62,114,107,116,223,0,33,37,80,159,36,8,27,39,20,15,16,2,88,163, -36,37,49,8,240,0,192,0,0,67,103,101,116,45,100,105,114,223,0,33,38, -80,159,36,8,26,39,20,15,16,2,248,22,152,8,69,115,111,45,115,117,102, -102,105,120,80,159,36,36,37,20,15,16,2,88,163,36,38,8,38,8,61,2, -3,223,0,33,47,80,159,36,37,37,20,15,16,2,20,27,158,32,0,88,163, -8,36,37,42,11,2,9,222,192,32,0,88,163,8,36,37,42,11,2,9,222, -192,80,159,36,42,37,20,15,16,2,247,22,136,2,80,159,36,43,37,20,15, -16,2,8,128,8,80,159,36,44,37,20,15,16,2,249,22,156,8,8,128,8, -11,80,159,36,45,37,20,15,16,2,88,163,8,36,37,50,8,128,8,2,13, -223,0,33,48,80,159,36,46,37,20,15,16,2,88,163,8,36,38,55,8,128, -8,2,14,223,0,33,49,80,159,36,47,37,20,15,16,2,247,22,69,80,159, -36,48,37,20,15,16,2,248,22,18,74,109,111,100,117,108,101,45,108,111,97, -100,105,110,103,80,159,36,49,37,20,15,16,2,11,80,158,36,50,20,15,16, -2,11,80,158,36,51,20,15,16,2,32,0,88,163,36,38,8,25,11,2,19, -222,33,55,80,159,36,52,37,20,15,16,2,11,80,158,36,53,20,15,16,2, -27,11,20,19,158,36,90,159,37,10,89,161,37,36,10,20,25,96,2,21,88, -163,8,36,37,51,8,128,2,9,224,2,1,33,56,88,163,36,39,49,11,9, -223,0,33,57,88,163,36,40,8,28,16,2,8,176,242,8,187,241,9,224,2, -1,33,66,207,80,159,36,54,37,20,15,16,2,88,163,36,36,45,8,240,66, -0,14,2,2,23,223,0,33,67,80,159,36,59,37,20,15,16,2,20,27,158, -88,163,8,36,36,45,8,240,0,0,10,2,2,24,223,0,33,68,88,163,8, -36,36,45,8,240,0,0,10,2,2,24,223,0,33,69,80,159,36,8,24,37, -96,29,94,2,4,68,35,37,107,101,114,110,101,108,11,29,94,2,4,69,35, -37,109,105,110,45,115,116,120,11,2,5,2,22,9,9,9,36,0}; - EVAL_ONE_SIZED_STR((char *)expr, 6212); +31,249,22,153,7,23,197,2,2,32,251,80,159,47,57,39,23,202,1,28,248, +22,81,23,199,2,23,199,1,86,94,23,199,1,248,22,74,23,199,2,28,248, +22,81,23,199,2,86,94,23,198,1,9,248,22,75,23,199,1,23,197,1,28, +248,22,130,7,23,198,2,86,94,23,194,1,27,248,80,159,41,8,26,39,23, +200,2,27,248,80,159,42,46,39,249,22,73,23,202,2,23,197,2,28,23,193, +2,192,86,94,23,193,1,90,159,38,11,89,161,38,36,11,249,80,159,45,52, +39,23,203,2,11,250,22,1,22,174,14,23,199,1,249,22,87,249,22,2,32, +0,88,163,8,36,37,44,11,9,222,33,59,23,200,1,248,22,83,248,2,60, +23,201,1,28,248,22,156,14,23,198,2,86,94,23,194,1,28,248,22,179,14, +23,198,2,248,80,159,40,8,27,39,248,22,183,14,23,199,2,248,22,83,6, +26,26,32,40,97,32,112,97,116,104,32,109,117,115,116,32,98,101,32,97,98, +115,111,108,117,116,101,41,28,249,22,140,9,248,22,74,23,200,2,2,30,27, +248,80,159,41,46,39,249,22,73,23,201,2,247,22,134,15,28,23,193,2,192, +86,94,23,193,1,90,159,39,11,89,161,38,36,11,249,80,159,45,52,39,248, +22,98,23,204,2,11,89,161,37,38,11,28,248,22,81,248,22,100,23,203,2, +28,248,22,81,23,194,2,249,22,148,15,2,62,23,196,2,11,10,27,28,23, +196,2,248,2,60,23,196,2,28,248,22,81,23,195,2,2,31,28,249,22,148, +15,2,62,23,197,2,248,2,60,23,196,2,249,22,153,7,23,197,2,2,32, +27,28,23,197,1,86,94,23,196,1,249,22,87,28,248,22,81,248,22,100,23, +207,2,21,93,6,5,5,109,122,108,105,98,249,22,1,22,87,249,22,2,80, +159,51,8,28,39,248,22,100,23,210,2,23,197,1,28,248,22,81,23,196,2, +86,94,23,195,1,248,22,83,23,197,1,86,94,23,196,1,23,195,1,251,80, +159,49,57,39,23,204,1,248,22,74,23,198,2,248,22,75,23,198,1,23,198, +1,28,249,22,140,9,248,22,74,23,200,2,64,102,105,108,101,248,80,159,40, +8,27,39,248,22,183,14,249,22,181,14,248,22,185,14,248,22,98,23,203,2, +248,80,159,44,8,26,39,23,203,2,12,86,94,28,28,248,22,156,14,23,194, +2,10,248,22,155,8,23,194,2,86,94,23,199,1,12,28,23,199,2,250,22, +175,9,67,114,101,113,117,105,114,101,249,22,178,7,6,17,17,98,97,100,32, +109,111,100,117,108,101,32,112,97,116,104,126,97,28,23,198,2,248,22,74,23, +199,2,2,33,23,202,1,86,94,23,199,1,250,22,176,9,2,21,249,22,178, +7,6,13,13,109,111,100,117,108,101,32,112,97,116,104,126,97,28,23,198,2, +248,22,74,23,199,2,2,33,23,200,2,27,28,248,22,155,8,23,195,2,249, +22,160,8,23,196,2,36,249,22,183,14,248,22,184,14,23,197,2,11,27,28, +248,22,155,8,23,196,2,249,22,160,8,23,197,2,37,248,80,159,42,58,39, +23,195,2,90,159,39,11,89,161,39,36,11,28,248,22,155,8,23,199,2,250, +22,7,2,34,249,22,160,8,23,203,2,38,2,34,248,22,177,14,23,198,2, +86,95,23,195,1,23,193,1,27,28,248,22,155,8,23,200,2,249,22,160,8, +23,201,2,39,249,80,159,47,56,39,23,197,2,5,0,27,28,248,22,155,8, +23,201,2,249,22,160,8,23,202,2,40,248,22,138,5,23,200,2,27,27,250, +22,153,2,80,159,51,43,38,248,22,169,15,247,22,134,13,11,28,23,193,2, +192,86,94,23,193,1,27,247,22,133,2,86,94,250,22,151,2,80,159,52,43, +38,248,22,169,15,247,22,134,13,195,192,86,95,28,23,208,1,27,250,22,153, +2,23,197,2,197,11,28,23,193,1,12,86,94,27,27,28,248,22,17,80,159, +51,49,38,80,159,50,49,38,247,22,19,251,22,27,11,80,159,54,48,38,9, +23,197,1,27,248,22,169,15,247,22,134,13,86,94,249,22,3,20,20,94,88, +163,8,36,37,55,11,9,226,12,11,2,3,33,63,23,195,1,23,196,2,248, +28,248,22,17,80,159,52,49,38,32,0,88,163,36,37,42,11,9,222,33,64, +80,159,51,8,29,39,20,20,94,88,163,36,36,52,8,176,64,9,228,15,11, +10,6,5,2,33,65,23,195,1,250,22,151,2,23,197,1,197,10,12,28,28, +248,22,155,8,23,202,1,11,28,248,22,130,7,23,206,2,10,28,248,22,58, +23,206,2,10,28,248,22,71,23,206,2,249,22,140,9,248,22,74,23,208,2, +2,30,11,249,80,159,49,47,39,28,248,22,130,7,23,208,2,249,22,73,23, +209,1,248,80,159,52,8,26,39,23,211,1,86,94,23,208,1,249,22,73,23, +209,1,247,22,134,15,252,22,157,8,23,207,1,23,206,1,23,204,1,23,202, +1,200,12,193,86,96,20,18,159,11,80,158,36,53,248,80,159,37,8,25,37, +249,22,27,11,80,159,39,55,37,248,22,180,4,80,159,37,54,38,248,22,161, +5,80,159,37,37,39,248,22,189,13,80,159,37,42,39,20,18,159,11,80,158, +36,53,248,80,159,37,8,25,37,249,22,27,11,80,159,39,55,37,20,18,159, +11,80,158,36,53,248,80,159,37,8,25,37,249,22,27,11,80,159,39,55,37, +159,36,20,113,159,36,16,1,11,16,0,20,26,141,2,1,2,1,29,11,11, +11,11,11,10,38,80,158,36,36,20,113,159,40,16,26,2,2,2,3,30,2, +5,72,112,97,116,104,45,115,116,114,105,110,103,63,11,30,2,5,75,112,97, +116,104,45,97,100,100,45,115,117,102,102,105,120,8,30,2,7,2,8,6,30, +2,7,1,23,101,120,116,101,110,100,45,112,97,114,97,109,101,116,101,114,105, +122,97,116,105,111,110,3,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,30,2,22,2,8,6,30,2,5, +79,112,97,116,104,45,114,101,112,108,97,99,101,45,115,117,102,102,105,120,10, +30,2,5,73,102,105,110,100,45,99,111,108,45,102,105,108,101,3,30,2,5, +76,110,111,114,109,97,108,45,99,97,115,101,45,112,97,116,104,7,2,23,2, +24,30,2,22,74,114,101,112,97,114,97,109,101,116,101,114,105,122,101,7,16, +0,37,39,36,16,0,36,16,14,2,15,2,16,2,10,2,12,2,17,2,18, +2,11,2,3,2,9,2,2,2,13,2,14,2,19,2,21,50,11,11,11,16, +3,2,23,2,20,2,24,16,3,11,11,11,16,3,2,23,2,20,2,24,39, +39,37,12,11,11,16,0,16,0,16,0,36,36,11,12,11,11,16,0,16,0, +16,0,36,36,16,21,20,15,16,2,88,163,36,37,45,8,128,128,9,223,0, +33,35,80,159,36,8,29,39,20,15,16,2,88,163,8,36,37,45,8,240,0, +0,1,0,9,223,0,33,36,80,159,36,8,28,39,20,15,16,2,88,163,36, +37,49,8,240,0,0,16,0,72,112,97,116,104,45,115,115,45,62,114,107,116, +223,0,33,37,80,159,36,8,27,39,20,15,16,2,88,163,36,37,49,8,240, +0,192,0,0,67,103,101,116,45,100,105,114,223,0,33,38,80,159,36,8,26, +39,20,15,16,2,248,22,152,8,69,115,111,45,115,117,102,102,105,120,80,159, +36,36,37,20,15,16,2,88,163,36,38,8,38,8,61,2,3,223,0,33,47, +80,159,36,37,37,20,15,16,2,20,27,158,32,0,88,163,8,36,37,42,11, +2,9,222,192,32,0,88,163,8,36,37,42,11,2,9,222,192,80,159,36,42, +37,20,15,16,2,247,22,136,2,80,159,36,43,37,20,15,16,2,8,128,8, +80,159,36,44,37,20,15,16,2,249,22,156,8,8,128,8,11,80,159,36,45, +37,20,15,16,2,88,163,8,36,37,50,8,128,8,2,13,223,0,33,48,80, +159,36,46,37,20,15,16,2,88,163,8,36,38,55,8,128,8,2,14,223,0, +33,49,80,159,36,47,37,20,15,16,2,247,22,69,80,159,36,48,37,20,15, +16,2,248,22,18,74,109,111,100,117,108,101,45,108,111,97,100,105,110,103,80, +159,36,49,37,20,15,16,2,11,80,158,36,50,20,15,16,2,11,80,158,36, +51,20,15,16,2,32,0,88,163,36,38,8,25,11,2,19,222,33,55,80,159, +36,52,37,20,15,16,2,11,80,158,36,53,20,15,16,2,27,11,20,19,158, +36,90,159,37,10,89,161,37,36,10,20,25,96,2,21,88,163,8,36,37,51, +8,128,2,9,224,2,1,33,56,88,163,36,39,49,11,9,223,0,33,57,88, +163,36,40,8,28,16,2,8,176,242,8,187,241,9,224,2,1,33,66,207,80, +159,36,54,37,20,15,16,2,88,163,36,36,45,8,240,66,0,14,2,2,23, +223,0,33,67,80,159,36,59,37,20,15,16,2,20,27,158,88,163,8,36,36, +45,8,240,0,0,10,2,2,24,223,0,33,68,88,163,8,36,36,45,8,240, +0,0,10,2,2,24,223,0,33,69,80,159,36,8,24,37,96,29,94,2,4, +68,35,37,107,101,114,110,101,108,11,29,94,2,4,69,35,37,109,105,110,45, +115,116,120,11,2,5,2,22,9,9,9,36,0}; + EVAL_ONE_SIZED_STR((char *)expr, 6228); } { - SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,53,46,50,46,48,46,54,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,11,0,0,0,1,0,0,10,0,16,0,29, -0,44,0,58,0,78,0,90,0,104,0,118,0,170,0,0,0,94,1,0,0, -69,35,37,98,117,105,108,116,105,110,65,113,117,111,116,101,29,94,2,2,67, -35,37,117,116,105,108,115,11,29,94,2,2,69,35,37,110,101,116,119,111,114, -107,11,29,94,2,2,68,35,37,112,97,114,97,109,122,11,29,94,2,2,74, -35,37,112,108,97,99,101,45,115,116,114,117,99,116,11,29,94,2,2,66,35, -37,98,111,111,116,11,29,94,2,2,68,35,37,101,120,112,111,98,115,11,29, -94,2,2,68,35,37,107,101,114,110,101,108,11,97,36,11,8,240,80,78,0, -0,100,159,2,3,36,36,159,2,4,36,36,159,2,5,36,36,159,2,6,36, -36,159,2,7,36,36,159,2,8,36,36,159,2,9,36,36,159,2,9,36,36, -16,0,159,36,20,113,159,36,16,1,11,16,0,20,26,141,2,1,2,1,29, -11,11,11,11,11,18,96,11,46,46,46,36,80,158,36,36,20,113,159,36,16, -0,16,0,37,39,36,16,0,36,16,0,36,11,11,11,16,0,16,0,16,0, -36,36,37,12,11,11,16,0,16,0,16,0,36,36,11,12,11,11,16,0,16, -0,16,0,36,36,16,0,104,2,9,2,8,29,94,2,2,69,35,37,102,111, -114,101,105,103,110,11,29,94,2,2,68,35,37,117,110,115,97,102,101,11,29, -94,2,2,69,35,37,102,108,102,120,110,117,109,11,2,7,2,6,2,5,2, -4,2,3,29,94,2,2,67,35,37,112,108,97,99,101,11,29,94,2,2,69, -35,37,102,117,116,117,114,101,115,11,9,9,9,36,0}; - EVAL_ONE_SIZED_STR((char *)expr, 413); + SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,53,46,50,46,48,46,57,48,49,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,1,0,0,10,0,16, +0,29,0,44,0,58,0,78,0,90,0,104,0,118,0,170,0,0,0,94,1, +0,0,69,35,37,98,117,105,108,116,105,110,65,113,117,111,116,101,29,94,2, +2,67,35,37,117,116,105,108,115,11,29,94,2,2,69,35,37,110,101,116,119, +111,114,107,11,29,94,2,2,68,35,37,112,97,114,97,109,122,11,29,94,2, +2,74,35,37,112,108,97,99,101,45,115,116,114,117,99,116,11,29,94,2,2, +66,35,37,98,111,111,116,11,29,94,2,2,68,35,37,101,120,112,111,98,115, +11,29,94,2,2,68,35,37,107,101,114,110,101,108,11,97,36,11,8,240,1, +79,0,0,100,159,2,3,36,36,159,2,4,36,36,159,2,5,36,36,159,2, +6,36,36,159,2,7,36,36,159,2,8,36,36,159,2,9,36,36,159,2,9, +36,36,16,0,159,36,20,113,159,36,16,1,11,16,0,20,26,141,2,1,2, +1,29,11,11,11,11,11,18,96,11,46,46,46,36,80,158,36,36,20,113,159, +36,16,0,16,0,37,39,36,16,0,36,16,0,36,11,11,11,16,0,16,0, +16,0,36,36,37,12,11,11,16,0,16,0,16,0,36,36,11,12,11,11,16, +0,16,0,16,0,36,36,16,0,104,2,9,2,8,29,94,2,2,69,35,37, +102,111,114,101,105,103,110,11,29,94,2,2,68,35,37,117,110,115,97,102,101, +11,29,94,2,2,69,35,37,102,108,102,120,110,117,109,11,2,7,2,6,2, +5,2,4,2,3,29,94,2,2,67,35,37,112,108,97,99,101,11,29,94,2, +2,69,35,37,102,117,116,117,114,101,115,11,9,9,9,36,0}; + EVAL_ONE_SIZED_STR((char *)expr, 415); } diff --git a/src/racket/src/schvers.h b/src/racket/src/schvers.h index 7239db6207..f4055c2426 100644 --- a/src/racket/src/schvers.h +++ b/src/racket/src/schvers.h @@ -13,12 +13,12 @@ consistently.) */ -#define MZSCHEME_VERSION "5.2.0.900" +#define MZSCHEME_VERSION "5.2.0.901" #define MZSCHEME_VERSION_X 5 #define MZSCHEME_VERSION_Y 2 #define MZSCHEME_VERSION_Z 0 -#define MZSCHEME_VERSION_W 900 +#define MZSCHEME_VERSION_W 901 #define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y) #define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W) diff --git a/src/racket/src/startup.inc b/src/racket/src/startup.inc index 954107c5c7..a83e66b7d7 100644 --- a/src/racket/src/startup.inc +++ b/src/racket/src/startup.inc @@ -268,24 +268,25 @@ "(lambda(who collection collection-path)" "(-check-relpath who collection) " "(for-each(lambda(p)(-check-relpath who p)) collection-path)))" +"(define-values(-check-fail)" +"(lambda(who fail)" +"(unless(and(procedure? fail)" +"(procedure-arity-includes? fail 1))" +" (raise-type-error who \"procedure (arity 1)\" fail))))" "(define-values(collection-path)" -"(lambda(collection . collection-path) " +"(lambda(fail collection . collection-path) " "(-check-collection 'collection-path collection collection-path)" -"(find-col-file 'collection-path(lambda(s)" -"(raise" -"(exn:fail:filesystem s(current-continuation-marks))))" +"(-check-fail 'collection-path fail)" +"(find-col-file fail" " collection collection-path" " #f)))" "(define-values(collection-file-path)" -"(lambda(file-name collection . collection-path) " +"(lambda(fail file-name collection . collection-path) " "(-check-relpath 'collection-file-path file-name)" "(-check-collection 'collection-file-path collection collection-path)" -"(build-path" -"(find-col-file 'collection-file-path(lambda(s)" -"(raise" -"(exn:fail:filesystem s(current-continuation-marks))))" +"(-check-fail 'collection-file-path fail)" +"(find-col-file fail" " collection collection-path" -" file-name)" " file-name)))" "(define-values(user-links-path)(find-system-path 'links-file))" "(define-values(user-links-cache)(make-hasheq))" @@ -429,7 +430,7 @@ "(values name collection-path)" "(normalize-collection-reference base(cons name collection-path))))))))" "(define-values(find-col-file)" -"(lambda(who fail collection collection-path file-name)" +"(lambda(fail collection collection-path file-name)" "(let-values(((collection collection-path)" "(normalize-collection-reference collection collection-path)))" "(let((all-paths(let((sym(string->symbol(if(path? collection)" @@ -448,6 +449,9 @@ "(hash-ref ht #f null)))" " null)" "(current-library-collection-paths)))))" +"(define-values(done)" +"(lambda(p)" +"(if file-name(build-path p file-name) p)))" "(define-values(*build-path-rep)" "(lambda(p c)" "(if(path? p)" @@ -462,7 +466,7 @@ "(let cloop((paths all-paths)(found-col #f))" "(if(null? paths)" "(if found-col" -" found-col" +"(done found-col)" "(let((rest-coll" "(if(null? collection-path)" " \"\"" @@ -480,8 +484,7 @@ "(cons(car l)(filter f(cdr l)))" "(filter f(cdr l))))))" "(fail" -" (format \"~a: collection not found: ~s in any of: ~s~a\" " -" who" +" (format \"collection not found: ~s in any of: ~s~a\" " "(if(null? collection-path)" "(to-string collection)" " (string-append (to-string collection) \"/\" rest-coll))" @@ -509,9 +512,9 @@ " (string-append (substring file-name 0 (- len 4)) \".ss\")))))" "(and alt-file-name" "(file-exists?(build-path cpath alt-file-name)))))" -" cpath" +"(done cpath)" "(cloop(cdr paths)(or found-col cpath)))" -" cpath)" +"(done cpath))" "(cloop(cdr paths) found-col)))" "(cloop(cdr paths) found-col)))))))))" "(define-values(check-suffix-call)" @@ -835,12 +838,13 @@ "(current-load-relative-directory)" "(current-directory))))" "(show-collection-err(lambda(s)" +" (let ((s (string-append \"standard-module-name-resolver: \" s)))" "(if stx" "(raise-syntax-error" " #f" " s" " stx)" -"(error s))))" +"(error s)))))" "(ss->rkt(lambda(s)" "(let((len(string-length s)))" "(if(and(len . >= . 3)" @@ -859,13 +863,11 @@ "(let-values(((cols file)(split-relative-string(symbol->string s) #f)))" "(let*((f-file(if(null? cols)" " \"main.rkt\"" -" (string-append file \".rkt\")))" -"(p(find-col-file 'standard-module-name-resolver" -" show-collection-err" +" (string-append file \".rkt\"))))" +"(find-col-file show-collection-err" "(if(null? cols) file(car cols))" "(if(null? cols) null(cdr cols))" -" f-file)))" -"(build-path p f-file)))))" +" f-file)))))" "((string? s)" "(let*((dir(get-dir)))" "(or(path-cache-get(cons s dir))" @@ -897,8 +899,8 @@ " \"main.rkt\"" " (if (regexp-match? #rx\"[.]\" file)" "(ss->rkt file)" -" (string-append file \".rkt\")))))" -"(p(let-values(((cols)" +" (string-append file \".rkt\"))))))" +"(let-values(((cols)" "(if old-style?" "(append(if(null?(cddr s))" " '(\"mzlib\")" @@ -910,12 +912,10 @@ "(if(null? cols)" "(list file)" " cols))))" -"(find-col-file 'standard-module-name-resolver" -" show-collection-err" +"(find-col-file show-collection-err" "(car cols)" "(cdr cols)" -" f-file))))" -"(build-path p f-file)))))" +" f-file))))))" "((eq?(car s) 'file)" "(path-ss->rkt " "(simplify-path(path->complete-path(expand-user-path(cadr s))(get-dir))))))))" diff --git a/src/racket/src/startup.rktl b/src/racket/src/startup.rktl index 786d6f9c09..5089316b18 100644 --- a/src/racket/src/startup.rktl +++ b/src/racket/src/startup.rktl @@ -328,26 +328,28 @@ (-check-relpath who collection) (for-each (lambda (p) (-check-relpath who p)) collection-path))) + (define-values (-check-fail) + (lambda (who fail) + (unless (and (procedure? fail) + (procedure-arity-includes? fail 1)) + (raise-type-error who "procedure (arity 1)" fail)))) + (define-values (collection-path) - (lambda (collection . collection-path) + (lambda (fail collection . collection-path) (-check-collection 'collection-path collection collection-path) - (find-col-file 'collection-path (lambda (s) - (raise - (exn:fail:filesystem s (current-continuation-marks)))) + (-check-fail 'collection-path fail) + (find-col-file fail collection collection-path #f))) (define-values (collection-file-path) - (lambda (file-name collection . collection-path) + (lambda (fail file-name collection . collection-path) (-check-relpath 'collection-file-path file-name) (-check-collection 'collection-file-path collection collection-path) - (build-path - (find-col-file 'collection-file-path (lambda (s) - (raise - (exn:fail:filesystem s (current-continuation-marks)))) - collection collection-path - file-name) - file-name))) + (-check-fail 'collection-file-path fail) + (find-col-file fail + collection collection-path + file-name))) (define-values (user-links-path) (find-system-path 'links-file)) (define-values (user-links-cache) (make-hasheq)) @@ -506,7 +508,7 @@ (normalize-collection-reference base (cons name collection-path))))]))) (define-values (find-col-file) - (lambda (who fail collection collection-path file-name) + (lambda (fail collection collection-path file-name) (let-values ([(collection collection-path) (normalize-collection-reference collection collection-path)]) (let ([all-paths (let ([sym (string->symbol (if (path? collection) @@ -528,6 +530,9 @@ null) ;; list of paths: (current-library-collection-paths)))]) + (define-values (done) + (lambda (p) + (if file-name (build-path p file-name) p))) (define-values (*build-path-rep) (lambda (p c) (if (path? p) @@ -544,7 +549,7 @@ (let cloop ([paths all-paths] [found-col #f]) (if (null? paths) (if found-col - found-col + (done found-col) (let ([rest-coll (if (null? collection-path) "" @@ -562,8 +567,7 @@ (cons (car l) (filter f (cdr l))) (filter f (cdr l)))))) (fail - (format "~a: collection not found: ~s in any of: ~s~a" - who + (format "collection not found: ~s in any of: ~s~a" (if (null? collection-path) (to-string collection) (string-append (to-string collection) "/" rest-coll)) @@ -591,12 +595,12 @@ (string-append (substring file-name 0 (- len 4)) ".ss")))]) (and alt-file-name (file-exists? (build-path cpath alt-file-name))))) - cpath + (done cpath) ;; Look further for specific file, but remember ;; first found directory (cloop (cdr paths) (or found-col cpath))) ;; Just looking for dir; found it: - cpath) + (done cpath)) ;; sub-collection not here; try next instance ;; of the top-level collection (cloop (cdr paths) found-col))) @@ -961,12 +965,13 @@ (current-load-relative-directory) (current-directory)))] [show-collection-err (lambda (s) - (if stx - (raise-syntax-error - #f - s - stx) - (error s)))] + (let ([s (string-append "standard-module-name-resolver: " s)]) + (if stx + (raise-syntax-error + #f + s + stx) + (error s))))] [ss->rkt (lambda (s) (let ([len (string-length s)]) (if (and (len . >= . 3) @@ -986,13 +991,11 @@ (let-values ([(cols file) (split-relative-string (symbol->string s) #f)]) (let* ([f-file (if (null? cols) "main.rkt" - (string-append file ".rkt"))] - [p (find-col-file 'standard-module-name-resolver - show-collection-err - (if (null? cols) file (car cols)) - (if (null? cols) null (cdr cols)) - f-file)]) - (build-path p f-file))))] + (string-append file ".rkt"))]) + (find-col-file show-collection-err + (if (null? cols) file (car cols)) + (if (null? cols) null (cdr cols)) + f-file))))] [(string? s) (let* ([dir (get-dir)]) (or (path-cache-get (cons s dir)) @@ -1025,25 +1028,23 @@ "main.rkt" (if (regexp-match? #rx"[.]" file) (ss->rkt file) - (string-append file ".rkt"))))] - [p (let-values ([(cols) - (if old-style? - (append (if (null? (cddr s)) - '("mzlib") - (apply append - (map (lambda (p) - (split-relative-string p #t)) - (cddr s)))) - cols) - (if (null? cols) - (list file) - cols))]) - (find-col-file 'standard-module-name-resolver - show-collection-err - (car cols) - (cdr cols) - f-file))]) - (build-path p f-file))))] + (string-append file ".rkt"))))]) + (let-values ([(cols) + (if old-style? + (append (if (null? (cddr s)) + '("mzlib") + (apply append + (map (lambda (p) + (split-relative-string p #t)) + (cddr s)))) + cols) + (if (null? cols) + (list file) + cols))]) + (find-col-file show-collection-err + (car cols) + (cdr cols) + f-file)))))] [(eq? (car s) 'file) ;; Use filesystem-sensitive `simplify-path' here: (path-ss->rkt