diff --git a/collects/honu/scribblings/honu.scrbl b/collects/honu/scribblings/honu.scrbl index 732445cbfe..7e9901282e 100644 --- a/collects/honu/scribblings/honu.scrbl +++ b/collects/honu/scribblings/honu.scrbl @@ -54,6 +54,8 @@ can be nested. @subsection{Structure} +@defmodule[honu/core/read] + After tokenization a Honu program will be converted into a tree with minimal structure. Enclosing tokens will be grouped into a single object represented as an s-expression. Enclosing tokens are pairs of (), {}, and []. diff --git a/collects/macro-debugger/syntax-browser/pretty-helper.rkt b/collects/macro-debugger/syntax-browser/pretty-helper.rkt index 3de96b7221..3abdcff92d 100644 --- a/collects/macro-debugger/syntax-browser/pretty-helper.rkt +++ b/collects/macro-debugger/syntax-browser/pretty-helper.rkt @@ -28,8 +28,7 @@ [print-struct #t] [print-box #t] [print-vector-length #f] - [print-hash-table #t] - [print-honu #f]) + [print-hash-table #t]) (pretty-write datum port))) (define-struct syntax-dummy (val)) diff --git a/collects/scribblings/reference/custom-ports.scrbl b/collects/scribblings/reference/custom-ports.scrbl index 2309060275..09a3576a92 100644 --- a/collects/scribblings/reference/custom-ports.scrbl +++ b/collects/scribblings/reference/custom-ports.scrbl @@ -316,8 +316,7 @@ The arguments implement the port as follows: This procedure is called to implement @racket[port-next-location], but only if line counting is enabled for the port via @racket[port-count-lines!] (in which case @racket[count-lines!] is - called). The @racket[read], @racket[read-syntax], - @racket[read-honu], and @racket[read-honu-syntax] procedures + called). The @racket[read] and @racket[read-syntax] procedures assume that reading a non-whitespace character increments the column and position by one.} @@ -354,13 +353,13 @@ The arguments implement the port as follows: @itemize[ - @item{When the special read is triggered by @racket[read-syntax], - @racket[read-honu-syntax], or @racket[read-syntax/recursive], the + @item{When the special read is triggered by @racket[read-syntax] + or @racket[read-syntax/recursive], the procedure is passed four arguments that represent a source location.} @item{When the special read is triggered by @racket[read], - @racket[read-honu], @racket[read-byte-or-special], + @racket[read-byte-or-special], @racket[read-char-or-special], @racket[peek-byte-or-special], or @racket[peek-char-or-special], the procedure is passed no arguments if it accepts zero arguments, otherwise it is passed four arguments @@ -375,8 +374,7 @@ The arguments implement the port as follows: If @racket[read-in] or @racket[peek] returns a special procedure when called by any reading procedure other than - @racket[read], @racket[read-syntax], @racket[read-honu], - @racket[read-honu-syntax], @racket[read-char-or-special], + @racket[read], @racket[read-syntax], @racket[read-char-or-special], @racket[peek-char-or-special], @racket[read-byte-or-special], or @racket[peek-byte-or-special], then the @exnraise[exn:fail:contract].} diff --git a/collects/scribblings/reference/mz.rkt b/collects/scribblings/reference/mz.rkt index 61b42f2d18..d2e6cac114 100644 --- a/collects/scribblings/reference/mz.rkt +++ b/collects/scribblings/reference/mz.rkt @@ -91,7 +91,6 @@ (provide margin-note/ref refalso moreref Guide guideintro guidealso guidesecref - HonuManual raco-doc) (define (margin-note/ref . s) @@ -125,9 +124,6 @@ (define Guide (other-manual '(lib "scribblings/guide/guide.scrbl"))) - - (define HonuManual - (other-manual '(lib "scribblings/honu/honu.scrbl"))) (define raco-doc '(lib "scribblings/raco/raco.scrbl")) diff --git a/collects/scribblings/reference/port-line-counting.scrbl b/collects/scribblings/reference/port-line-counting.scrbl index 193352c8f8..22cfd1d327 100644 --- a/collects/scribblings/reference/port-line-counting.scrbl +++ b/collects/scribblings/reference/port-line-counting.scrbl @@ -16,8 +16,8 @@ bytes, and it can track @deftech{line locations} and @deftech{column locations}; this optional tracking must be specifically enabled for a port via @racket[port-count-lines!] or the @racket[port-count-lines-enabled] parameter. Position, line, and -column locations for a port are used by @racket[read-syntax] and -@racket[read-honu-syntax]. Position and line locations are numbered +column locations for a port are used by @racket[read-syntax]. +Position and line locations are numbered from @math{1}; column locations are numbered from @math{0}. When counting lines, Racket treats linefeed, return, and diff --git a/collects/scribblings/reference/read.scrbl b/collects/scribblings/reference/read.scrbl index 67611a0d22..c8b903f444 100644 --- a/collects/scribblings/reference/read.scrbl +++ b/collects/scribblings/reference/read.scrbl @@ -324,34 +324,3 @@ except that special-comment values (see The default port read handler itself can be customized through a readtable; see @secref["readtables"] for more information.} - - -@defproc[(read-honu [in input-port? (current-input-port)]) any]{ - -Like @racket[read], but for Honu mode (see @secref["parse-honu"]).} - -@defproc[(read-honu-syntax [source-name any/c (object-name in)] - [in input-port? (current-input-port)]) - (or/c syntax? eof-object?)]{ - -Like @racket[read-syntax], but for Honu mode (see -@secref["parse-honu"]).} - -@defproc[(read-honu/recursive [in input-port? (current-input-port)] - [start (or/c char? #f) #f] - [readtable (or/c readtable? #f) (current-readtable)] - [graph? any/c #t]) - any]{ - -Like @racket[read/recursive], but for Honu mode (see -@secref["parse-honu"]).} - -@defproc[(read-honu-syntax/recursive [source-name any/c (object-name in)] - [in input-port? (current-input-port)] - [start (or/c char? #f) #f] - [readtable (or/c readtable? #f) (current-readtable)] - [graph? any/c #f]) - any]{ - -Like @racket[read-syntax/recursive], but for Honu mode (see -@secref["parse-honu"]).} diff --git a/collects/scribblings/reference/reader.scrbl b/collects/scribblings/reference/reader.scrbl index fd84e09fdd..508d130a8f 100644 --- a/collects/scribblings/reference/reader.scrbl +++ b/collects/scribblings/reference/reader.scrbl @@ -137,10 +137,6 @@ on the next character or characters in the input stream as follows: @dispatch[@cilitchar{#ci}]{switches case sensitivity; see @secref["parse-symbol"]} @dispatch[@cilitchar{#cs}]{switches case sensitivity; see @secref["parse-symbol"]} - @dispatch[@cilitchar["#sx"]]{starts a Racket expression; see @secref["parse-honu"]} - - @dispatch[@litchar{#hx}]{starts a Honu expression; see @secref["parse-honu"]} - @dispatch[@litchar{#hash}]{starts a @tech{hash table}; see @secref["parse-hashtable"]} @dispatch[@litchar{#reader}]{starts a reader extension use; see @secref["parse-reader"]} @@ -879,9 +875,3 @@ effectively takes the place of @racketmodname[reader]. In other words, the @racketmodname[reader] meta-language generalizes the syntax of the module specified after @hash-lang[] to be a module path, and without the implicit addition of @litchar{/lang/reader} to the path. - - -@section[#:tag "parse-honu"]{Honu Parsing} - -See @|HonuManual| for information on @litchar{#hx} and -@litchar{#sx}. diff --git a/collects/scribblings/reference/readtables.scrbl b/collects/scribblings/reference/readtables.scrbl index 7485b136cc..8337097b23 100644 --- a/collects/scribblings/reference/readtables.scrbl +++ b/collects/scribblings/reference/readtables.scrbl @@ -326,11 +326,9 @@ character and the @racket[#f] readtable.} @section[#:tag "reader-procs"]{Reader-Extension Procedures} Calls to @techlink{reader extension procedures} can be triggered -through @racket[read], @racket[read/recursive], @racket[read-syntax], -or @racket[read-honu-syntax]. In addition, a special-read procedure -can be triggered by calls to @racket[read-honu], -@racket[read-honu/recursive], @racket[read-honu-syntax], -@racket[read-honu-syntax/recursive], @racket[read-char-or-special], or +through @racket[read], @racket[read/recursive], or @racket[read-syntax]. +In addition, a special-read procedure +can be triggered by calls to @racket[read-char-or-special], or by the context of @racket[read-bytes-avail!], @racket[peek-bytes-avail!*], @racket[read-bytes-avail!], and @racket[peek-bytes-avail!*]. diff --git a/collects/scribblings/reference/stx-ops.scrbl b/collects/scribblings/reference/stx-ops.scrbl index 11fdb79f78..93d75003c1 100644 --- a/collects/scribblings/reference/stx-ops.scrbl +++ b/collects/scribblings/reference/stx-ops.scrbl @@ -70,7 +70,7 @@ marshaling compiled @tech{syntax object}s.} @defproc[(syntax-original? [stx syntax?]) boolean?]{ Returns @racket[#t] if @racket[stx] has the property that -@racket[read-syntax] and @racket[read-honu-syntax] attach to the +@racket[read-syntax] attaches to the @tech{syntax object}s that they generate (see @secref["stxprops"]), and if @racket[stx]'s @tech{lexical information} does not indicate that the object was introduced by a syntax transformer (see diff --git a/collects/scribblings/reference/stx-props.scrbl b/collects/scribblings/reference/stx-props.scrbl index 43b1330f32..df6fdedeff 100644 --- a/collects/scribblings/reference/stx-props.scrbl +++ b/collects/scribblings/reference/stx-props.scrbl @@ -80,7 +80,7 @@ Racket adds properties to expanded syntax (often using a module is discovered, the @indexed-racket['protected] property is added to the identifier with a @racket[#t] value.} - @item{When @racket[read-syntax] or @racket[read-honu-syntax] + @item{When @racket[read-syntax] generates a syntax object, it attaches a property to the object (using a private key) to mark the object as originating from a read. The @racket[syntax-original?] predicate looks for the property diff --git a/collects/scribblings/reference/write.scrbl b/collects/scribblings/reference/write.scrbl index f37053a655..0798074864 100644 --- a/collects/scribblings/reference/write.scrbl +++ b/collects/scribblings/reference/write.scrbl @@ -241,11 +241,6 @@ A parameter that controls printing in @racket[print] mode (as opposed to @racket[write] or @racket[display]); defaults to @racket[#t]. See @secref["printing"] for more information.} -@defboolparam[print-honu on?]{ - -A parameter that controls printing values in an alternate syntax. See -@|HonuManual| for more information. The default is @racket[#f].} - @defparam[print-syntax-width width (or/c +inf.0 0 (and/c exact-integer? (>/c 3)))]{ diff --git a/collects/syntax/scribblings/module-reader.scrbl b/collects/syntax/scribblings/module-reader.scrbl index c998a519d5..8f76c28269 100644 --- a/collects/syntax/scribblings/module-reader.scrbl +++ b/collects/syntax/scribblings/module-reader.scrbl @@ -93,17 +93,6 @@ identifiers used by the @racket[reader-option]s. repeatedly to the module source until @racket[eof] is produced, but see also @racket[#:whole-body-readers?]. - For example, a language built on the @secref[#:doc '(lib - "scribblings/honu/honu.scrbl")]{Honu} reader could be - implemented with: - - @racketblock[ - (module reader syntax/module-reader - module-path - #:read read-honu - #:read-syntax read-honu-syntax) - ] - See also @racket[#:wrapper1] and @racket[#:wrapper2], which support simple parameterization of readers rather than wholesale replacement.} diff --git a/collects/typed-racket/base-env/base-env.rkt b/collects/typed-racket/base-env/base-env.rkt index f8c9835d29..cf03742b8e 100644 --- a/collects/typed-racket/base-env/base-env.rkt +++ b/collects/typed-racket/base-env/base-env.rkt @@ -2385,11 +2385,6 @@ (cl->* (-> -Input-Port (->opt -Input-Port [Univ] Univ)) (-> -Input-Port (->opt -Input-Port [Univ] Univ) -Void))] -[read-honu (->opt [-Input-Port] Univ)] -[read-honu-syntax (->opt [Univ -Input-Port] (Un (-Syntax Univ) (-val eof)))] -[read-honu/recursive (->opt [-Input-Port (-opt -Char) (-opt -Read-Table) Univ] Univ)] -[read-honu-syntax/recursive (->opt [Univ -Input-Port (-opt -Char) (-opt -Read-Table) Univ] Univ)] - ; Section 12.5 ; Writing [write (Univ [-Output-Port] . ->opt . -Void)] @@ -2412,7 +2407,6 @@ [print-boolean-long-form (-Param Univ B)] [print-reader-abbreviations (-Param Univ B)] [print-as-expression (-Param Univ B)] -[print-honu (-Param Univ B)] [print-syntax-width (-Param (Un (-val +inf.0) -Nat) (Un (-val +inf.0) -Nat))] [current-write-relative-directory (-Param (-opt -Path) (-opt -Path))] diff --git a/doc/release-notes/racket/HISTORY.txt b/doc/release-notes/racket/HISTORY.txt index 797eb13635..cbbc486823 100644 --- a/doc/release-notes/racket/HISTORY.txt +++ b/doc/release-notes/racket/HISTORY.txt @@ -1,3 +1,6 @@ +Version 5.1.3.12 +Removed built-in support for Honu reading and printing + Version 5.1.3.11 Added exn:fail:syntax:unbound Added date*, which extends date to include nanoseconds and a diff --git a/src/racket/include/scheme.h b/src/racket/include/scheme.h index d4daece323..27b01cee45 100644 --- a/src/racket/include/scheme.h +++ b/src/racket/include/scheme.h @@ -1237,8 +1237,6 @@ enum { MZCONFIG_SQUARE_BRACKETS_ARE_PARENS, MZCONFIG_CURLY_BRACES_ARE_PARENS, - MZCONFIG_HONU_MODE, - MZCONFIG_ERROR_PRINT_WIDTH, MZCONFIG_ERROR_PRINT_CONTEXT_LENGTH, diff --git a/src/racket/src/builtin.c b/src/racket/src/builtin.c index dae4d34b1c..ca543eb9e5 100644 --- a/src/racket/src/builtin.c +++ b/src/racket/src/builtin.c @@ -47,7 +47,7 @@ Scheme_Object *scheme_eval_compiled_sized_string_with_magic(const char *str, int if (!env) env = scheme_get_env(NULL); - expr = scheme_internal_read(port, NULL, 1, 1, 0, 0, 0, -1, NULL, + expr = scheme_internal_read(port, NULL, 1, 1, 0, 0, -1, NULL, magic_sym, magic_val, NULL); diff --git a/src/racket/src/cstartup.inc b/src/racket/src/cstartup.inc index 540686c3bf..e7a162c8e4 100644 --- a/src/racket/src/cstartup.inc +++ b/src/racket/src/cstartup.inc @@ -1,15 +1,15 @@ { - SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,49,46,51,46,49,49,0,0,0,0,0,0,0,0,0,0, + SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,49,46,51,46,49,50,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,24,0,29,0,32,0,37,0,50,0,57,0,64,0,68,0,73,0,82, +17,0,22,0,29,0,42,0,49,0,54,0,59,0,63,0,70,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,100,101,102,105,110,101,63,97,110,100, -64,108,101,116,42,62,111,114,64,99,111,110,100,72,112,97,114,97,109,101,116, -101,114,105,122,101,66,108,101,116,114,101,99,66,117,110,108,101,115,115,63,108, -101,116,64,119,104,101,110,68,104,101,114,101,45,115,116,120,29,11,11,65,113, +109,105,110,45,115,116,120,29,11,11,63,108,101,116,64,99,111,110,100,66,117, +110,108,101,115,115,72,112,97,114,97,109,101,116,101,114,105,122,101,66,100,101, +102,105,110,101,64,119,104,101,110,64,108,101,116,42,63,97,110,100,66,108,101, +116,114,101,99,62,111,114,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, @@ -17,10 +17,10 @@ 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,85,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,6,2,2,2,4,2,2,2,5,2,2,2,9,2,2,2,7, -2,2,2,8,2,2,2,10,2,2,2,11,2,2,2,12,2,2,97,37,11, +3,2,2,2,5,2,2,2,7,2,2,2,6,2,2,2,8,2,2,2,9, +2,2,2,10,2,2,2,4,2,2,2,11,2,2,2,12,2,2,97,37,11, 8,240,85,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,85,76,0,0,16,0,96,11,11,8,240, +13,2,2,2,13,96,11,11,8,240,85,76,0,0,16,0,96,38,11,8,240, 85,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,155,4,195,249,22,148,4,80, 158,39,36,251,22,83,2,18,248,22,98,199,12,249,22,73,2,19,248,22,100, @@ -28,13 +28,13 @@ 22,98,199,249,22,73,2,19,248,22,100,201,12,27,248,22,75,248,22,155,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,148,4,80,158,39,36,251,22,83,2,18,248,22,74,199,249, -22,73,2,4,248,22,75,201,11,18,100,10,13,16,5,36,2,14,2,2,11, +22,73,2,10,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,52,57,55,48,16,4,11,11,2,21,3,1,8,101,110,118,49,52,57,55, 49,27,248,22,75,248,22,155,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,148,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, +83,2,18,2,23,2,23,249,22,73,2,12,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,52,57,55,51,16,4,11,11,2,21,3,1,8, 101,110,118,49,52,57,55,52,248,22,155,4,193,27,248,22,155,4,194,249,22, @@ -51,7 +51,7 @@ 88,163,8,36,37,47,11,9,222,33,43,248,22,155,4,248,22,74,201,248,22, 75,198,27,248,22,75,248,22,155,4,196,27,248,22,155,4,248,22,74,195,249, 22,148,4,80,158,40,36,28,248,22,81,195,250,22,84,2,22,9,248,22,75, -199,250,22,83,2,11,248,22,83,248,22,74,199,250,22,84,2,5,248,22,75, +199,250,22,83,2,3,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,155,4,23,197,1,27,249,22,1,22, 87,249,22,2,22,155,4,248,22,155,4,248,22,74,199,248,22,175,4,249,22, 148,4,80,158,41,36,251,22,83,1,22,119,105,116,104,45,99,111,110,116,105, @@ -61,11 +61,11 @@ 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,155,4,196,28,248,22,81,193,20,14,159,37, 36,37,249,22,148,4,80,158,39,36,27,248,22,155,4,248,22,74,197,28,249, -22,141,9,62,61,62,248,22,149,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,7,249,22,83,2, +22,137,9,62,61,62,248,22,149,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,4,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,141,9,248,22,149,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,7,248,22,75,202,99,13, +22,137,9,248,22,149,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,4,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,52,57,57,54,16,4,11,11,2,21,3,1, 8,101,110,118,49,52,57,57,55,18,158,94,10,64,118,111,105,100,8,48,27, @@ -81,25 +81,25 @@ 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,112,159,36,16,1,2,13,16,1,33,33,10,16,5, -2,10,88,163,8,36,37,53,37,9,223,0,33,34,36,20,112,159,36,16,1, -2,13,16,0,11,16,5,2,12,88,163,8,36,37,53,37,9,223,0,33,35, -36,20,112,159,36,16,1,2,13,16,0,11,16,5,2,4,88,163,8,36,37, +2,5,88,163,8,36,37,53,37,9,223,0,33,34,36,20,112,159,36,16,1, +2,13,16,0,11,16,5,2,8,88,163,8,36,37,53,37,9,223,0,33,35, +36,20,112,159,36,16,1,2,13,16,0,11,16,5,2,10,88,163,8,36,37, 53,37,9,223,0,33,36,36,20,112,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,112,159,36, -16,1,2,13,16,1,33,39,11,16,5,2,11,88,163,8,36,37,58,37,9, -223,0,33,42,36,20,112,159,36,16,1,2,13,16,0,11,16,5,2,9,88, +16,5,2,12,88,163,8,36,37,56,37,9,223,0,33,38,36,20,112,159,36, +16,1,2,13,16,1,33,39,11,16,5,2,3,88,163,8,36,37,58,37,9, +223,0,33,42,36,20,112,159,36,16,1,2,13,16,0,11,16,5,2,11,88, 163,8,36,37,53,37,9,223,0,33,44,36,20,112,159,36,16,1,2,13,16, -0,11,16,5,2,5,88,163,8,36,37,54,37,9,223,0,33,45,36,20,112, -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,112,159,36,16,1,2,13,16,0,11,16,5,2,7,88, +0,11,16,5,2,9,88,163,8,36,37,54,37,9,223,0,33,45,36,20,112, +159,36,16,1,2,13,16,0,11,16,5,2,6,88,163,8,36,37,56,37,9, +223,0,33,46,36,20,112,159,36,16,1,2,13,16,0,11,16,5,2,4,88, 163,8,36,37,58,37,9,223,0,33,47,36,20,112,159,36,16,1,2,13,16, -1,33,49,11,16,5,2,3,88,163,8,36,37,54,37,9,223,0,33,50,36, +1,33,49,11,16,5,2,7,88,163,8,36,37,54,37,9,223,0,33,50,36, 20,112,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, 2019); } { - SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,49,46,51,46,49,49,0,0,0,0,0,0,0,0,0,0, + SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,49,46,51,46,49,50,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,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, @@ -150,251 +150,251 @@ 11,11,80,76,84,67,79,76,76,69,67,84,83,6,0,0,6,0,0,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,131,14,10,248,22,191,5,23,196,2,28,248,22,190,6,23,194,2,12, -86,94,248,22,149,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,131,14,10,248,22,191,5,23, -197,2,28,248,22,190,6,23,194,2,12,86,94,248,22,149,9,23,194,1,27, +37,22,191,13,10,248,22,191,5,23,196,2,28,248,22,186,6,23,194,2,12, +86,94,248,22,145,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,191,13,10,248,22,191,5,23, +197,2,28,248,22,186,6,23,194,2,12,86,94,248,22,145,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,131,14,10,248,22,191,5,23,198,2,28,248,22,190,6,23,194,2, -12,86,94,248,22,149,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,181,14,23,195,2, -23,194,1,28,248,22,180,14,23,195,2,249,22,182,14,23,196,1,250,80,159, -43,39,39,248,22,133,15,2,31,11,10,250,80,159,41,39,39,248,22,133,15, -2,31,23,197,1,10,28,23,193,2,249,22,73,248,22,184,14,249,22,182,14, -23,198,1,247,22,134,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,181,14,23,195,2,23,194,1,28, -248,22,180,14,23,195,2,249,22,182,14,23,196,1,250,80,159,48,39,39,248, -22,133,15,2,31,11,10,250,80,159,46,39,39,248,22,133,15,2,31,23,197, -1,10,28,23,193,2,249,22,73,248,22,184,14,249,22,182,14,23,198,1,247, -22,134,15,248,80,159,46,8,30,39,248,22,75,23,199,1,86,94,23,193,1, +51,37,22,191,13,10,248,22,191,5,23,198,2,28,248,22,186,6,23,194,2, +12,86,94,248,22,145,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,176,14,23,195,2, +23,194,1,28,248,22,175,14,23,195,2,249,22,177,14,23,196,1,250,80,159, +43,39,39,248,22,128,15,2,31,11,10,250,80,159,41,39,39,248,22,128,15, +2,31,23,197,1,10,28,23,193,2,249,22,73,248,22,179,14,249,22,177,14, +23,198,1,247,22,129,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,176,14,23,195,2,23,194,1,28, +248,22,175,14,23,195,2,249,22,177,14,23,196,1,250,80,159,48,39,39,248, +22,128,15,2,31,11,10,250,80,159,46,39,39,248,22,128,15,2,31,23,197, +1,10,28,23,193,2,249,22,73,248,22,179,14,249,22,177,14,23,198,1,247, +22,129,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,181,14,23,195,2,23,194,1,28,248,22,180,14,23,195,2,249,22,182, -14,23,196,1,250,80,159,46,39,39,248,22,133,15,2,31,11,10,250,80,159, -44,39,39,248,22,133,15,2,31,23,197,1,10,28,23,193,2,249,22,73,248, -22,184,14,249,22,182,14,23,198,1,247,22,134,15,248,80,159,44,8,30,39, +248,22,176,14,23,195,2,23,194,1,28,248,22,175,14,23,195,2,249,22,177, +14,23,196,1,250,80,159,46,39,39,248,22,128,15,2,31,11,10,250,80,159, +44,39,39,248,22,128,15,2,31,23,197,1,10,28,23,193,2,249,22,73,248, +22,179,14,249,22,177,14,23,198,1,247,22,129,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,181,14,23,195,2,23, -194,1,28,248,22,180,14,23,195,2,249,22,182,14,23,196,1,250,80,159,43, -39,39,248,22,133,15,2,31,11,10,250,80,159,41,39,39,248,22,133,15,2, -31,23,197,1,10,28,23,193,2,249,22,73,248,22,184,14,249,22,182,14,23, -198,1,247,22,134,15,248,80,159,41,8,29,39,248,22,75,23,200,1,248,80, +23,195,2,9,27,248,22,74,23,196,2,27,28,248,22,176,14,23,195,2,23, +194,1,28,248,22,175,14,23,195,2,249,22,177,14,23,196,1,250,80,159,43, +39,39,248,22,128,15,2,31,11,10,250,80,159,41,39,39,248,22,128,15,2, +31,23,197,1,10,28,23,193,2,249,22,73,248,22,179,14,249,22,177,14,23, +198,1,247,22,129,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,181,14,23,195,2,23,194,1,28,248,22,180,14,23, -195,2,249,22,182,14,23,196,1,250,80,159,43,39,39,248,22,133,15,2,31, -11,10,250,80,159,41,39,39,248,22,133,15,2,31,23,197,1,10,28,23,193, -2,249,22,73,248,22,184,14,249,22,182,14,23,198,1,247,22,134,15,248,80, +23,196,2,27,28,248,22,176,14,23,195,2,23,194,1,28,248,22,175,14,23, +195,2,249,22,177,14,23,196,1,250,80,159,43,39,39,248,22,128,15,2,31, +11,10,250,80,159,41,39,39,248,22,128,15,2,31,23,197,1,10,28,23,193, +2,249,22,73,248,22,179,14,249,22,177,14,23,198,1,247,22,129,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,157,14,23,195,2,28,23,193,2,192,86,94,23,193,1,28,248, -22,131,7,23,195,2,27,248,22,179,14,195,28,192,192,248,22,180,14,195,11, -86,94,28,28,248,22,158,14,23,195,2,10,28,248,22,157,14,23,195,2,10, -28,248,22,131,7,23,195,2,28,248,22,179,14,23,195,2,10,248,22,180,14, -23,195,2,11,12,250,22,177,9,76,110,111,114,109,97,108,45,112,97,116,104, +197,27,248,22,152,14,23,195,2,28,23,193,2,192,86,94,23,193,1,28,248, +22,191,6,23,195,2,27,248,22,174,14,195,28,192,192,248,22,175,14,195,11, +86,94,28,28,248,22,153,14,23,195,2,10,28,248,22,152,14,23,195,2,10, +28,248,22,191,6,23,195,2,28,248,22,174,14,23,195,2,10,248,22,175,14, +23,195,2,11,12,250,22,173,9,76,110,111,114,109,97,108,45,112,97,116,104, 45,99,97,115,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,23,197,2,28,28,248,22,158,14,23,195,2,249, -22,141,9,248,22,159,14,23,197,2,2,32,249,22,141,9,247,22,153,8,2, -32,27,28,248,22,131,7,23,196,2,23,195,2,248,22,143,8,248,22,162,14, -23,197,2,28,249,22,149,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,131,7,195,248,22, -165,14,195,194,27,248,22,170,7,23,195,1,249,22,166,14,248,22,146,8,250, -22,157,15,0,6,35,114,120,34,47,34,28,249,22,149,15,0,22,35,114,120, +104,32,115,116,114,105,110,103,23,197,2,28,28,248,22,153,14,23,195,2,249, +22,137,9,248,22,154,14,23,197,2,2,32,249,22,137,9,247,22,149,8,2, +32,27,28,248,22,191,6,23,196,2,23,195,2,248,22,139,8,248,22,157,14, +23,197,2,28,249,22,144,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,191,6,195,248,22, +160,14,195,194,27,248,22,166,7,23,195,1,249,22,161,14,248,22,142,8,250, +22,152,15,0,6,35,114,120,34,47,34,28,249,22,144,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,157,15,0,19,35,114,120,34,91,32,46,93,43,40,91, +2,23,199,1,250,22,152,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,32,28,248,22,131,7,194,248,22,165,14,194,193,32,56,88,163,8,36,39, +2,32,28,248,22,191,6,194,248,22,160,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,183,14,23,196,2,28, -249,22,143,9,23,195,2,23,197,1,11,28,248,22,179,14,23,194,2,27,249, -22,175,14,23,197,1,23,196,1,28,23,197,2,90,159,39,11,89,161,39,36, -11,248,22,178,14,23,197,2,86,95,23,195,1,23,194,1,27,28,23,202,2, -27,248,22,183,14,23,199,2,28,249,22,143,9,23,195,2,23,200,2,11,28, -248,22,179,14,23,194,2,250,2,56,23,205,2,23,206,2,249,22,175,14,23, +36,40,58,11,64,110,101,120,116,222,33,58,27,248,22,178,14,23,196,2,28, +249,22,139,9,23,195,2,23,197,1,11,28,248,22,174,14,23,194,2,27,249, +22,170,14,23,197,1,23,196,1,28,23,197,2,90,159,39,11,89,161,39,36, +11,248,22,173,14,23,197,2,86,95,23,195,1,23,194,1,27,28,23,202,2, +27,248,22,178,14,23,199,2,28,249,22,139,9,23,195,2,23,200,2,11,28, +248,22,174,14,23,194,2,250,2,56,23,205,2,23,206,2,249,22,170,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,157,14,23,196,2,27,249,22,175,14, -23,198,2,23,205,2,28,28,248,22,170,14,193,10,248,22,169,14,193,192,11, -11,28,23,193,2,192,86,94,23,193,1,28,23,203,2,11,27,248,22,183,14, -23,200,2,28,249,22,143,9,23,195,2,23,201,1,11,28,248,22,179,14,23, -194,2,250,2,56,23,206,1,23,207,1,249,22,175,14,23,201,1,23,198,1, +2,192,86,94,23,193,1,27,28,248,22,152,14,23,196,2,27,249,22,170,14, +23,198,2,23,205,2,28,28,248,22,165,14,193,10,248,22,164,14,193,192,11, +11,28,23,193,2,192,86,94,23,193,1,28,23,203,2,11,27,248,22,178,14, +23,200,2,28,249,22,139,9,23,195,2,23,201,1,11,28,248,22,174,14,23, +194,2,250,2,56,23,206,1,23,207,1,249,22,170,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,178,14,23,197,2,86,95,23,195,1,23,194,1,27,28, -23,201,2,27,248,22,183,14,23,199,2,28,249,22,143,9,23,195,2,23,200, -2,11,28,248,22,179,14,23,194,2,250,2,56,23,204,2,23,205,2,249,22, -175,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,157,14,23,196,2,27,249, -22,175,14,23,198,2,23,204,2,28,28,248,22,170,14,193,10,248,22,169,14, +161,39,36,11,248,22,173,14,23,197,2,86,95,23,195,1,23,194,1,27,28, +23,201,2,27,248,22,178,14,23,199,2,28,249,22,139,9,23,195,2,23,200, +2,11,28,248,22,174,14,23,194,2,250,2,56,23,204,2,23,205,2,249,22, +170,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,152,14,23,196,2,27,249, +22,170,14,23,198,2,23,204,2,28,28,248,22,165,14,193,10,248,22,164,14, 193,192,11,11,28,23,193,2,192,86,94,23,193,1,28,23,202,2,11,27,248, -22,183,14,23,200,2,28,249,22,143,9,23,195,2,23,201,1,11,28,248,22, -179,14,23,194,2,250,2,56,23,205,1,23,206,1,249,22,175,14,23,201,1, +22,178,14,23,200,2,28,249,22,139,9,23,195,2,23,201,1,11,28,248,22, +174,14,23,194,2,250,2,56,23,205,1,23,206,1,249,22,170,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,178,14,23,199,2,86,95,23,195,1,23,194,1,27,28,23,198, +36,11,248,22,173,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,157,14,195,27,249,22,175,14,197,200,28, -28,248,22,170,14,193,10,248,22,169,14,193,192,11,11,28,192,192,28,198,11, +192,86,94,23,193,1,27,28,248,22,152,14,195,27,249,22,170,14,197,200,28, +28,248,22,165,14,193,10,248,22,164,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,30,222,33, -61,28,248,22,81,23,197,2,11,27,248,22,182,14,248,22,74,23,199,2,27, -249,22,175,14,23,196,1,23,197,2,28,248,22,169,14,23,194,2,250,2,56, +61,28,248,22,81,23,197,2,11,27,248,22,177,14,248,22,74,23,199,2,27, +249,22,170,14,23,196,1,23,197,2,28,248,22,164,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,182,14,248,22,74,23,196,2,27,249,22,175,14,23,196,1, -23,200,2,28,248,22,169,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,182,14, -248,22,74,195,27,249,22,175,14,23,196,1,202,28,248,22,169,14,193,250,2, -56,204,205,195,251,2,60,204,205,206,248,22,75,199,86,95,28,28,248,22,157, -14,23,195,2,10,28,248,22,131,7,23,195,2,28,248,22,179,14,23,195,2, -10,248,22,180,14,23,195,2,11,12,250,22,177,9,2,5,6,25,25,112,97, +2,11,27,248,22,177,14,248,22,74,23,196,2,27,249,22,170,14,23,196,1, +23,200,2,28,248,22,164,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,177,14, +248,22,74,195,27,249,22,170,14,23,196,1,202,28,248,22,164,14,193,250,2, +56,204,205,195,251,2,60,204,205,206,248,22,75,199,86,95,28,28,248,22,152, +14,23,195,2,10,28,248,22,191,6,23,195,2,28,248,22,174,14,23,195,2, +10,248,22,175,14,23,195,2,11,12,250,22,173,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,157,14,23,196,2,10,28, -248,22,131,7,23,196,2,28,248,22,179,14,23,196,2,10,248,22,180,14,23, -196,2,11,248,22,179,14,23,196,2,11,10,12,250,22,177,9,2,5,6,29, +108,41,23,197,2,28,28,23,195,2,28,28,248,22,152,14,23,196,2,10,28, +248,22,191,6,23,196,2,28,248,22,174,14,23,196,2,10,248,22,175,14,23, +196,2,11,248,22,174,14,23,196,2,11,10,12,250,22,173,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,179,14,23,195,2, -90,159,39,11,89,161,39,36,11,248,22,178,14,23,198,2,249,22,141,9,194, -2,33,11,27,248,22,151,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,141,9,247,22,153,8,2,32,249, -22,73,248,22,166,14,5,1,46,194,192,86,94,23,194,1,9,28,248,22,81, -23,194,2,11,27,248,22,182,14,248,22,74,23,196,2,27,249,22,175,14,23, -196,1,23,200,2,28,248,22,169,14,23,194,2,250,2,56,201,202,195,86,94, +111,114,32,115,116,114,105,110,103,23,198,2,28,28,248,22,174,14,23,195,2, +90,159,39,11,89,161,39,36,11,248,22,173,14,23,198,2,249,22,137,9,194, +2,33,11,27,248,22,147,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,137,9,247,22,149,8,2,32,249, +22,73,248,22,161,14,5,1,46,194,192,86,94,23,194,1,9,28,248,22,81, +23,194,2,11,27,248,22,177,14,248,22,74,23,196,2,27,249,22,170,14,23, +196,1,23,200,2,28,248,22,164,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, -182,14,248,22,74,23,196,2,27,249,22,175,14,23,196,1,23,203,2,28,248, -22,169,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,182,14,248,22,74,195,27, -249,22,175,14,23,196,1,205,28,248,22,169,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,182,14,23,196, -1,28,248,22,169,14,193,250,2,56,198,199,195,11,250,80,159,39,39,39,196, +177,14,248,22,74,23,196,2,27,249,22,170,14,23,196,1,23,203,2,28,248, +22,164,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,177,14,248,22,74,195,27, +249,22,170,14,23,196,1,205,28,248,22,164,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,177,14,23,196, +1,28,248,22,164,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, -30,222,33,67,0,8,35,114,120,35,34,92,34,34,27,249,22,145,15,23,197, +30,222,33,67,0,8,35,114,120,35,34,92,34,34,27,249,22,140,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,145,15,23,201,2,23,196,2,28,23,193, +27,248,22,107,23,197,1,27,249,22,140,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,128,8,23,196,2,2,34,249,22,87, -23,202,2,194,249,22,73,248,22,166,14,28,249,22,141,9,247,22,153,8,2, -32,250,22,157,15,2,66,23,200,1,2,35,23,197,1,194,86,95,23,199,1, -23,193,1,28,249,22,128,8,23,196,2,2,34,249,22,87,23,200,2,9,249, -22,73,248,22,166,14,28,249,22,141,9,247,22,153,8,2,32,250,22,157,15, -2,66,23,200,1,2,35,23,197,1,9,28,249,22,128,8,23,196,2,2,34, -249,22,87,197,194,86,94,23,196,1,249,22,73,248,22,166,14,28,249,22,141, -9,247,22,153,8,2,32,250,22,157,15,2,66,23,200,1,2,35,23,197,1, -194,86,94,23,193,1,28,249,22,128,8,23,198,2,2,34,249,22,87,195,9, -86,94,23,194,1,249,22,73,248,22,166,14,28,249,22,141,9,247,22,153,8, -2,32,250,22,157,15,2,66,23,202,1,2,35,23,199,1,9,86,95,28,28, -248,22,184,7,194,10,248,22,131,7,194,12,250,22,177,9,2,6,6,21,21, +204,1,248,22,107,23,199,1,28,249,22,188,7,23,196,2,2,34,249,22,87, +23,202,2,194,249,22,73,248,22,161,14,28,249,22,137,9,247,22,149,8,2, +32,250,22,152,15,2,66,23,200,1,2,35,23,197,1,194,86,95,23,199,1, +23,193,1,28,249,22,188,7,23,196,2,2,34,249,22,87,23,200,2,9,249, +22,73,248,22,161,14,28,249,22,137,9,247,22,149,8,2,32,250,22,152,15, +2,66,23,200,1,2,35,23,197,1,9,28,249,22,188,7,23,196,2,2,34, +249,22,87,197,194,86,94,23,196,1,249,22,73,248,22,161,14,28,249,22,137, +9,247,22,149,8,2,32,250,22,152,15,2,66,23,200,1,2,35,23,197,1, +194,86,94,23,193,1,28,249,22,188,7,23,198,2,2,34,249,22,87,195,9, +86,94,23,194,1,249,22,73,248,22,161,14,28,249,22,137,9,247,22,149,8, +2,32,250,22,152,15,2,66,23,202,1,2,35,23,199,1,9,86,95,28,28, +248,22,180,7,194,10,248,22,191,6,194,12,250,22,173,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,157,14,196,11,12,250,22,177,9,2, +196,28,28,248,22,82,195,249,22,4,22,152,14,196,11,12,250,22,173,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,131,7,197,248,22,145,8,197,196,86,94,28,28,248,22,157, -14,23,195,2,10,28,248,22,131,7,23,195,2,28,248,22,179,14,23,195,2, -10,248,22,180,14,23,195,2,11,12,250,22,177,9,23,196,2,2,36,23,197, -2,28,248,22,179,14,23,195,2,12,248,22,171,12,249,22,174,11,248,22,160, -7,250,22,179,7,2,37,23,200,1,23,201,1,247,22,23,86,94,28,28,248, -22,157,14,23,195,2,10,28,248,22,131,7,23,195,2,28,248,22,179,14,23, -195,2,10,248,22,180,14,23,195,2,11,12,250,22,177,9,23,196,2,2,36, -23,197,2,28,248,22,179,14,23,195,2,12,248,22,171,12,249,22,174,11,248, -22,160,7,250,22,179,7,2,37,23,200,1,23,201,1,247,22,23,86,94,86, -94,28,28,248,22,157,14,23,195,2,10,28,248,22,131,7,23,195,2,28,248, -22,179,14,23,195,2,10,248,22,180,14,23,195,2,11,12,250,22,177,9,195, -2,36,23,197,2,28,248,22,179,14,23,195,2,12,248,22,171,12,249,22,174, -11,248,22,160,7,250,22,179,7,2,37,199,23,201,1,247,22,23,249,22,3, -88,163,8,36,37,50,11,9,223,2,33,70,196,86,94,28,28,248,22,157,14, -23,194,2,10,28,248,22,131,7,23,194,2,28,248,22,179,14,23,194,2,10, -248,22,180,14,23,194,2,11,12,250,22,177,9,2,9,2,36,23,196,2,28, -248,22,179,14,23,194,2,12,248,22,171,12,249,22,174,11,248,22,160,7,250, -22,179,7,2,37,2,9,23,200,1,247,22,23,248,22,171,12,249,22,146,12, -23,196,1,247,22,23,86,94,86,94,86,94,28,28,248,22,157,14,194,10,28, -248,22,131,7,194,28,248,22,179,14,194,10,248,22,180,14,194,11,12,250,22, -177,9,2,9,2,36,196,28,248,22,179,14,194,12,248,22,171,12,249,22,174, -11,248,22,160,7,250,22,179,7,2,37,2,9,200,247,22,23,249,22,3,32, +197,195,28,248,22,191,6,197,248,22,141,8,197,196,86,94,28,28,248,22,152, +14,23,195,2,10,28,248,22,191,6,23,195,2,28,248,22,174,14,23,195,2, +10,248,22,175,14,23,195,2,11,12,250,22,173,9,23,196,2,2,36,23,197, +2,28,248,22,174,14,23,195,2,12,248,22,167,12,249,22,170,11,248,22,156, +7,250,22,175,7,2,37,23,200,1,23,201,1,247,22,23,86,94,28,28,248, +22,152,14,23,195,2,10,28,248,22,191,6,23,195,2,28,248,22,174,14,23, +195,2,10,248,22,175,14,23,195,2,11,12,250,22,173,9,23,196,2,2,36, +23,197,2,28,248,22,174,14,23,195,2,12,248,22,167,12,249,22,170,11,248, +22,156,7,250,22,175,7,2,37,23,200,1,23,201,1,247,22,23,86,94,86, +94,28,28,248,22,152,14,23,195,2,10,28,248,22,191,6,23,195,2,28,248, +22,174,14,23,195,2,10,248,22,175,14,23,195,2,11,12,250,22,173,9,195, +2,36,23,197,2,28,248,22,174,14,23,195,2,12,248,22,167,12,249,22,170, +11,248,22,156,7,250,22,175,7,2,37,199,23,201,1,247,22,23,249,22,3, +88,163,8,36,37,50,11,9,223,2,33,70,196,86,94,28,28,248,22,152,14, +23,194,2,10,28,248,22,191,6,23,194,2,28,248,22,174,14,23,194,2,10, +248,22,175,14,23,194,2,11,12,250,22,173,9,2,9,2,36,23,196,2,28, +248,22,174,14,23,194,2,12,248,22,167,12,249,22,170,11,248,22,156,7,250, +22,175,7,2,37,2,9,23,200,1,247,22,23,248,22,167,12,249,22,142,12, +23,196,1,247,22,23,86,94,86,94,86,94,28,28,248,22,152,14,194,10,28, +248,22,191,6,194,28,248,22,174,14,194,10,248,22,175,14,194,11,12,250,22, +173,9,2,9,2,36,196,28,248,22,174,14,194,12,248,22,167,12,249,22,170, +11,248,22,156,7,250,22,175,7,2,37,2,9,200,247,22,23,249,22,3,32, 0,88,163,8,36,37,49,11,9,222,33,72,196,252,80,158,41,44,2,9,32, 0,88,163,8,36,37,45,11,9,222,33,73,198,199,11,86,94,28,28,248,22, -157,14,23,194,2,10,28,248,22,131,7,23,194,2,28,248,22,179,14,23,194, -2,10,248,22,180,14,23,194,2,11,12,250,22,177,9,2,11,2,36,23,196, -2,28,248,22,179,14,23,194,2,12,248,22,171,12,249,22,174,11,248,22,160, -7,250,22,179,7,2,37,2,11,23,200,1,247,22,23,248,22,171,12,249,22, -146,12,23,196,1,247,22,23,86,95,86,94,28,28,248,22,157,14,194,10,28, -248,22,131,7,194,28,248,22,179,14,194,10,248,22,180,14,194,11,12,250,22, -177,9,2,11,2,36,196,28,248,22,179,14,194,12,248,22,171,12,249,22,174, -11,248,22,160,7,250,22,179,7,2,37,2,11,200,247,22,23,86,94,86,94, -28,28,248,22,157,14,23,196,2,10,28,248,22,131,7,23,196,2,28,248,22, -179,14,23,196,2,10,248,22,180,14,23,196,2,11,12,250,22,177,9,2,11, -2,36,23,198,2,28,248,22,179,14,23,196,2,12,248,22,171,12,249,22,174, -11,248,22,160,7,250,22,179,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,75,23,198,2,249,22,175,14, +152,14,23,194,2,10,28,248,22,191,6,23,194,2,28,248,22,174,14,23,194, +2,10,248,22,175,14,23,194,2,11,12,250,22,173,9,2,11,2,36,23,196, +2,28,248,22,174,14,23,194,2,12,248,22,167,12,249,22,170,11,248,22,156, +7,250,22,175,7,2,37,2,11,23,200,1,247,22,23,248,22,167,12,249,22, +142,12,23,196,1,247,22,23,86,95,86,94,28,28,248,22,152,14,194,10,28, +248,22,191,6,194,28,248,22,174,14,194,10,248,22,175,14,194,11,12,250,22, +173,9,2,11,2,36,196,28,248,22,174,14,194,12,248,22,167,12,249,22,170, +11,248,22,156,7,250,22,175,7,2,37,2,11,200,247,22,23,86,94,86,94, +28,28,248,22,152,14,23,196,2,10,28,248,22,191,6,23,196,2,28,248,22, +174,14,23,196,2,10,248,22,175,14,23,196,2,11,12,250,22,173,9,2,11, +2,36,23,198,2,28,248,22,174,14,23,196,2,12,248,22,167,12,249,22,170, +11,248,22,156,7,250,22,175,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,75,23,198,2,249,22,170,14, 252,80,158,43,44,2,11,32,0,88,163,8,36,37,45,11,9,222,33,76,23, -202,1,23,203,1,200,195,0,6,45,105,110,102,46,48,27,248,22,133,15,2, -38,27,28,248,22,180,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,134,15,248,22,133,15,68, -111,114,105,103,45,100,105,114,27,248,22,133,15,2,31,250,80,159,42,39,39, -23,196,1,23,198,1,11,28,192,250,22,175,14,195,6,6,6,99,111,110,102, +202,1,23,203,1,200,195,0,6,45,105,110,102,46,48,27,248,22,128,15,2, +38,27,28,248,22,175,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,129,15,248,22,128,15,68, +111,114,105,103,45,100,105,114,27,248,22,128,15,2,31,250,80,159,42,39,39, +23,196,1,23,198,1,11,28,192,250,22,170,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, -132,10,28,249,22,189,9,23,195,2,2,39,251,22,128,10,23,197,1,2,39, -250,22,179,7,2,40,28,23,202,1,80,159,46,46,38,80,159,46,49,38,248, -22,166,11,23,205,1,247,22,23,12,248,193,247,22,133,2,2,78,86,95,27, -247,22,132,10,28,249,22,189,9,23,195,2,2,39,251,22,128,10,23,197,1, -2,39,250,22,179,7,2,40,28,202,80,159,47,46,38,80,159,47,49,38,248, -22,166,11,23,206,1,247,22,23,12,28,192,28,194,86,94,20,18,159,11,80, +128,10,28,249,22,185,9,23,195,2,2,39,251,22,188,9,23,197,1,2,39, +250,22,175,7,2,40,28,23,202,1,80,159,46,46,38,80,159,46,49,38,248, +22,162,11,23,205,1,247,22,23,12,248,193,247,22,133,2,2,78,86,95,27, +247,22,128,10,28,249,22,185,9,23,195,2,2,39,251,22,188,9,23,197,1, +2,39,250,22,175,7,2,40,28,202,80,159,47,46,38,80,159,47,49,38,248, +22,162,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,191,5,23,194,2,28,248,22,190,6,248,22, -191,5,23,195,1,12,248,22,174,9,6,30,30,101,120,112,101,99,116,101,100, +247,22,133,2,20,20,94,248,22,191,5,23,194,2,28,248,22,186,6,248,22, +191,5,23,195,1,12,248,22,170,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,179,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, -131,7,248,22,74,23,195,2,10,249,22,141,9,64,114,111,111,116,248,22,74, -23,196,2,28,27,248,22,98,194,28,248,22,157,14,23,194,2,10,28,248,22, -131,7,23,194,2,28,248,22,179,14,23,194,2,10,248,22,180,14,23,194,1, -11,27,248,22,81,248,22,100,195,28,192,192,248,22,158,15,248,22,107,195,11, +191,6,248,22,74,23,195,2,10,249,22,137,9,64,114,111,111,116,248,22,74, +23,196,2,28,27,248,22,98,194,28,248,22,152,14,23,194,2,10,28,248,22, +191,6,23,194,2,28,248,22,174,14,23,194,2,10,248,22,175,14,23,194,1, +11,27,248,22,81,248,22,100,195,28,192,192,248,22,153,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,149,15,248,22,107,23,198,2,247,22,149,8,27,248, -22,184,14,249,22,182,14,248,22,98,23,200,2,23,198,1,28,248,22,58,248, +100,23,197,2,10,249,22,144,15,248,22,107,23,198,2,247,22,145,8,27,248, +22,179,14,249,22,177,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,86,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,80,27,250,22,128,15,28, +88,163,36,37,54,8,128,144,9,225,1,0,2,33,80,27,250,22,187,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,81,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,82,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,191,13,10,22,128,14,10,22,129,14,10,22,132,14,10,22,131,14,10, -22,133,14,10,22,130,14,10,22,134,14,10,22,135,14,10,22,136,14,10,22, -137,14,10,22,138,14,10,22,139,14,11,22,189,13,11,27,249,22,170,5,28, +37,22,187,13,10,22,188,13,10,22,189,13,10,22,128,14,10,22,191,13,10, +22,129,14,10,22,190,13,10,22,130,14,10,22,131,14,10,22,132,14,10,22, +133,14,10,22,134,14,10,22,135,14,11,22,185,13,11,27,249,22,170,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,83,20,20,94,88,163,36, 36,43,11,9,223,4,33,84,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,85,23,195,2,11,12, -248,22,174,9,6,18,18,105,108,108,45,102,111,114,109,101,100,32,99,111,110, +248,22,170,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, -178,14,28,201,80,159,46,46,38,80,159,46,49,38,192,86,96,249,22,3,20, +173,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,87,23,195,1,23,197,1, 249,22,157,2,195,88,163,8,36,38,48,11,9,223,3,33,88,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,89,0,7,35,114,120,34,47,43,34,28,248,22,131, -7,23,195,2,27,249,22,147,15,2,91,196,28,192,28,249,22,184,3,248,22, -97,195,248,22,174,3,248,22,134,7,198,249,22,7,250,22,153,7,199,36,248, -22,97,198,197,249,22,7,250,22,153,7,199,36,248,22,97,198,249,22,73,249, -22,153,7,200,248,22,99,199,199,249,22,7,196,197,90,159,39,11,89,161,39, -36,11,248,22,178,14,23,198,1,86,94,23,195,1,28,249,22,141,9,23,195, +23,0,9,224,1,2,33,89,0,7,35,114,120,34,47,43,34,28,248,22,191, +6,23,195,2,27,249,22,142,15,2,91,196,28,192,28,249,22,184,3,248,22, +97,195,248,22,174,3,248,22,130,7,198,249,22,7,250,22,149,7,199,36,248, +22,97,198,197,249,22,7,250,22,149,7,199,36,248,22,97,198,249,22,73,249, +22,149,7,200,248,22,99,199,199,249,22,7,196,197,90,159,39,11,89,161,39, +36,11,248,22,173,14,23,198,1,86,94,23,195,1,28,249,22,137,9,23,195, 2,2,33,249,22,7,195,199,27,249,22,73,23,197,1,23,201,1,28,248,22, -131,7,23,195,2,27,249,22,147,15,2,91,196,28,192,28,249,22,184,3,248, -22,97,195,248,22,174,3,248,22,134,7,198,249,22,7,250,22,153,7,199,36, -248,22,97,198,195,249,22,7,250,22,153,7,199,36,248,22,97,198,249,22,73, -249,22,153,7,200,248,22,99,199,197,249,22,7,196,195,90,159,39,11,89,161, -39,36,11,248,22,178,14,23,198,1,28,249,22,141,9,194,2,33,249,22,7, +191,6,23,195,2,27,249,22,142,15,2,91,196,28,192,28,249,22,184,3,248, +22,97,195,248,22,174,3,248,22,130,7,198,249,22,7,250,22,149,7,199,36, +248,22,97,198,195,249,22,7,250,22,149,7,199,36,248,22,97,198,249,22,73, +249,22,149,7,200,248,22,99,199,197,249,22,7,196,195,90,159,39,11,89,161, +39,36,11,248,22,173,14,23,198,1,28,249,22,137,9,194,2,33,249,22,7, 195,197,249,80,159,45,57,39,194,249,22,73,197,199,32,93,88,163,36,44,8, 36,11,65,99,108,111,111,112,222,33,98,32,94,88,163,8,36,37,55,11,2, 30,222,33,95,28,248,22,81,248,22,75,23,195,2,248,22,83,27,248,22,74, -23,196,1,28,248,22,157,14,23,194,2,248,22,161,14,23,194,1,192,250,22, -84,27,248,22,74,23,198,2,28,248,22,157,14,23,194,2,248,22,161,14,23, +23,196,1,28,248,22,152,14,23,194,2,248,22,156,14,23,194,1,192,250,22, +84,27,248,22,74,23,198,2,28,248,22,152,14,23,194,2,248,22,156,14,23, 194,1,192,2,41,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,157,14,23,194,2,248,22, -161,14,23,194,1,192,250,22,84,27,248,22,74,23,198,2,28,248,22,157,14, -23,194,2,248,22,161,14,23,194,1,192,2,41,27,248,22,75,23,198,1,28, +2,248,22,83,27,248,22,74,23,196,1,28,248,22,152,14,23,194,2,248,22, +156,14,23,194,1,192,250,22,84,27,248,22,74,23,198,2,28,248,22,152,14, +23,194,2,248,22,156,14,23,194,1,192,2,41,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,157,14,23,194,2,248,22,161,14,23,194,1,192,250,22,84,27,248,22,74, -23,198,2,28,248,22,157,14,23,194,2,248,22,161,14,23,194,1,192,2,41, +22,152,14,23,194,2,248,22,156,14,23,194,1,192,250,22,84,27,248,22,74, +23,198,2,28,248,22,152,14,23,194,2,248,22,156,14,23,194,1,192,2,41, 248,2,94,248,22,75,23,198,1,32,96,88,163,8,36,38,57,11,66,102,105, 108,116,101,114,222,33,97,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, @@ -431,30 +431,30 @@ 9,28,248,23,197,2,248,22,74,23,195,2,249,22,73,248,22,74,23,196,2, 249,2,96,23,200,1,248,22,75,23,198,1,249,2,96,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,6,0,0,249,22,1,22,154,7,248, -2,94,23,199,2,248,23,199,1,252,22,179,7,6,44,44,126,97,58,32,99, +23,200,1,27,28,248,22,81,23,197,2,6,0,0,249,22,1,22,150,7,248, +2,94,23,199,2,248,23,199,1,252,22,175,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,157,14,23,202,2,248,22,161,14,23,202, -1,23,201,1,250,22,154,7,28,248,22,157,14,23,205,2,248,22,161,14,23, +28,248,22,81,23,203,1,28,248,22,152,14,23,202,2,248,22,156,14,23,202, +1,23,201,1,250,22,150,7,28,248,22,152,14,23,205,2,248,22,156,14,23, 205,1,23,204,1,6,1,1,47,23,202,2,28,248,22,81,23,201,2,9,28, -248,22,157,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,157,14,248,22,74, +248,22,152,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,152,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,157,14,248,22,74,23,195,2,249,22,73,248, -22,74,23,196,2,249,2,96,22,157,14,248,22,75,23,198,1,249,2,96,22, -157,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,157,14,248,22,74,23,195,2,249,22,73,248,22,74,23,196, -2,249,2,96,22,157,14,248,22,75,23,198,1,249,2,96,22,157,14,248,22, +22,81,23,194,2,9,28,248,22,152,14,248,22,74,23,195,2,249,22,73,248, +22,74,23,196,2,249,2,96,22,152,14,248,22,75,23,198,1,249,2,96,22, +152,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,152,14,248,22,74,23,195,2,249,22,73,248,22,74,23,196, +2,249,2,96,22,152,14,248,22,75,23,198,1,249,2,96,22,152,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,157,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,157,14,248,22,74,23, -195,2,249,22,73,248,22,74,23,196,2,249,2,96,22,157,14,248,22,75,23, -198,1,249,2,96,22,157,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,157,14,248,22,74,23,195,2,249,22, -73,248,22,74,23,196,2,249,2,96,22,157,14,248,22,75,23,198,1,249,2, -96,22,157,14,248,22,75,23,196,1,28,249,22,5,22,127,23,202,2,250,22, -179,7,6,21,21,32,111,114,58,32,126,115,32,105,110,32,97,110,121,32,111, +22,152,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,152,14,248,22,74,23, +195,2,249,22,73,248,22,74,23,196,2,249,2,96,22,152,14,248,22,75,23, +198,1,249,2,96,22,152,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,152,14,248,22,74,23,195,2,249,22, +73,248,22,74,23,196,2,249,2,96,22,152,14,248,22,75,23,198,1,249,2, +96,22,152,14,248,22,75,23,196,1,28,249,22,5,22,127,23,202,2,250,22, +175,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, @@ -472,71 +472,71 @@ 194,2,9,28,248,22,127,248,22,74,23,195,2,249,22,73,248,22,74,23,196, 2,249,2,96,22,127,248,22,75,23,198,1,249,2,96,22,127,248,22,75,23, 196,1,86,94,23,199,1,6,0,0,27,248,22,74,23,201,2,27,28,248,22, -157,14,23,195,2,249,22,175,14,23,196,1,23,198,2,248,22,128,2,23,195, -1,28,28,248,22,157,14,248,22,74,23,203,2,248,22,170,14,23,194,2,10, -27,250,22,1,22,175,14,23,197,1,23,201,2,28,28,248,22,81,23,199,2, -10,248,22,170,14,23,194,2,28,23,201,2,28,28,248,22,169,14,249,22,175, -14,195,203,10,27,28,248,22,157,14,202,248,22,161,14,202,201,27,248,22,134, -7,23,195,2,27,28,249,22,188,3,23,196,2,40,28,249,22,137,7,6,4, -4,46,114,107,116,249,22,153,7,23,199,2,249,22,176,3,23,200,2,40,249, -22,154,7,250,22,153,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,169, -14,249,22,175,14,198,23,196,1,11,192,26,8,2,93,203,204,205,206,23,15, +152,14,23,195,2,249,22,170,14,23,196,1,23,198,2,248,22,128,2,23,195, +1,28,28,248,22,152,14,248,22,74,23,203,2,248,22,165,14,23,194,2,10, +27,250,22,1,22,170,14,23,197,1,23,201,2,28,28,248,22,81,23,199,2, +10,248,22,165,14,23,194,2,28,23,201,2,28,28,248,22,164,14,249,22,170, +14,195,203,10,27,28,248,22,152,14,202,248,22,156,14,202,201,27,248,22,130, +7,23,195,2,27,28,249,22,188,3,23,196,2,40,28,249,22,133,7,6,4, +4,46,114,107,116,249,22,149,7,23,199,2,249,22,176,3,23,200,2,40,249, +22,150,7,250,22,149,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,164, +14,249,22,170,14,198,23,196,1,11,192,26,8,2,93,203,204,205,206,23,15, 23,16,248,22,75,23,18,28,23,18,23,18,200,192,26,8,2,93,203,204,205, 206,23,15,23,16,248,22,75,23,18,23,18,26,8,2,93,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,157,14,195,248,22, -161,14,195,194,27,247,22,138,15,27,250,22,87,28,23,197,2,28,247,22,137, +40,57,39,23,200,1,23,201,1,27,248,22,61,28,248,22,152,14,195,248,22, +156,14,195,194,27,247,22,133,15,27,250,22,87,28,23,197,2,28,247,22,132, 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,135,15,26,8,2, -93,200,203,204,206,23,15,23,18,200,11,86,95,28,28,248,22,158,14,23,194, -2,10,28,248,22,157,14,23,194,2,10,28,248,22,131,7,23,194,2,28,248, -22,179,14,23,194,2,10,248,22,180,14,23,194,2,11,12,252,22,177,9,23, -200,2,2,42,36,23,198,2,23,199,2,28,28,248,22,131,7,23,195,2,10, -248,22,184,7,23,195,2,86,94,23,194,1,12,252,22,177,9,23,200,2,2, -43,37,23,198,2,23,199,1,90,159,39,11,89,161,39,36,11,248,22,178,14, -23,197,2,86,94,23,195,1,86,94,28,192,12,250,22,178,9,23,201,1,2, +153,2,23,197,1,11,9,86,94,23,198,1,9,9,247,22,130,15,26,8,2, +93,200,203,204,206,23,15,23,18,200,11,86,95,28,28,248,22,153,14,23,194, +2,10,28,248,22,152,14,23,194,2,10,28,248,22,191,6,23,194,2,28,248, +22,174,14,23,194,2,10,248,22,175,14,23,194,2,11,12,252,22,173,9,23, +200,2,2,42,36,23,198,2,23,199,2,28,28,248,22,191,6,23,195,2,10, +248,22,180,7,23,195,2,86,94,23,194,1,12,252,22,173,9,23,200,2,2, +43,37,23,198,2,23,199,1,90,159,39,11,89,161,39,36,11,248,22,173,14, +23,197,2,86,94,23,195,1,86,94,28,192,12,250,22,174,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,158,14,23,196,2,10,28,248,22,157,14,23,196,2,10,28,248,22, -131,7,23,196,2,28,248,22,179,14,23,196,2,10,248,22,180,14,23,196,2, -11,12,252,22,177,9,2,25,2,42,36,23,200,2,23,201,2,28,28,248,22, -131,7,23,197,2,10,248,22,184,7,23,197,2,12,252,22,177,9,2,25,2, -43,37,23,200,2,23,201,2,90,159,39,11,89,161,39,36,11,248,22,178,14, -23,199,2,86,94,23,195,1,86,94,28,192,12,250,22,178,9,2,25,2,44, -23,201,2,249,22,7,194,195,27,249,22,167,14,250,22,156,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,163, -14,23,201,1,28,248,22,131,7,23,203,2,249,22,146,8,23,204,1,8,63, -23,202,1,28,248,22,158,14,23,199,2,248,22,159,14,23,199,1,86,94,23, -198,1,247,22,160,14,28,248,22,157,14,194,249,22,175,14,195,194,192,90,159, -38,11,89,161,38,36,11,86,95,28,28,248,22,158,14,23,196,2,10,28,248, -22,157,14,23,196,2,10,28,248,22,131,7,23,196,2,28,248,22,179,14,23, -196,2,10,248,22,180,14,23,196,2,11,12,252,22,177,9,2,26,2,42,36, -23,200,2,23,201,2,28,28,248,22,131,7,23,197,2,10,248,22,184,7,23, -197,2,12,252,22,177,9,2,26,2,43,37,23,200,2,23,201,2,90,159,39, -11,89,161,39,36,11,248,22,178,14,23,199,2,86,94,23,195,1,86,94,28, -192,12,250,22,178,9,2,26,2,44,23,201,2,249,22,7,194,195,27,249,22, -167,14,249,22,132,8,250,22,157,15,0,9,35,114,120,35,34,91,46,93,34, -248,22,163,14,23,203,1,6,1,1,95,28,248,22,131,7,23,202,2,249,22, -146,8,23,203,1,8,63,23,201,1,28,248,22,158,14,23,199,2,248,22,159, -14,23,199,1,86,94,23,198,1,247,22,160,14,28,248,22,157,14,194,249,22, -175,14,195,194,192,249,247,22,159,5,194,11,27,247,22,137,15,249,80,159,39, -40,38,28,23,195,2,27,248,22,151,8,2,45,28,192,192,2,46,2,47,27, -28,23,196,1,250,22,175,14,248,22,133,15,2,48,247,22,149,8,2,49,11, -27,248,80,159,42,8,28,39,250,22,87,9,248,22,83,248,22,133,15,2,38, -9,28,193,249,22,73,195,194,192,27,247,22,137,15,249,80,159,39,40,38,28, -23,195,2,27,248,22,151,8,2,45,28,192,192,2,46,2,47,27,28,23,196, -1,250,22,175,14,248,22,133,15,2,48,247,22,149,8,2,49,11,27,248,80, -159,42,8,29,39,250,22,87,23,203,1,248,22,83,248,22,133,15,2,38,9, -28,193,249,22,73,195,194,192,27,247,22,137,15,249,80,159,39,40,38,28,23, -195,2,27,248,22,151,8,2,45,28,192,192,2,46,2,47,27,28,23,196,1, -250,22,175,14,248,22,133,15,2,48,247,22,149,8,2,49,11,27,248,80,159, -42,8,30,39,250,22,87,23,203,1,248,22,83,248,22,133,15,2,38,23,204, -1,28,193,249,22,73,195,194,192,86,94,249,22,184,6,247,22,155,5,195,248, -22,146,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,133,15,2,31, +28,248,22,153,14,23,196,2,10,28,248,22,152,14,23,196,2,10,28,248,22, +191,6,23,196,2,28,248,22,174,14,23,196,2,10,248,22,175,14,23,196,2, +11,12,252,22,173,9,2,25,2,42,36,23,200,2,23,201,2,28,28,248,22, +191,6,23,197,2,10,248,22,180,7,23,197,2,12,252,22,173,9,2,25,2, +43,37,23,200,2,23,201,2,90,159,39,11,89,161,39,36,11,248,22,173,14, +23,199,2,86,94,23,195,1,86,94,28,192,12,250,22,174,9,2,25,2,44, +23,201,2,249,22,7,194,195,27,249,22,162,14,250,22,151,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,158, +14,23,201,1,28,248,22,191,6,23,203,2,249,22,142,8,23,204,1,8,63, +23,202,1,28,248,22,153,14,23,199,2,248,22,154,14,23,199,1,86,94,23, +198,1,247,22,155,14,28,248,22,152,14,194,249,22,170,14,195,194,192,90,159, +38,11,89,161,38,36,11,86,95,28,28,248,22,153,14,23,196,2,10,28,248, +22,152,14,23,196,2,10,28,248,22,191,6,23,196,2,28,248,22,174,14,23, +196,2,10,248,22,175,14,23,196,2,11,12,252,22,173,9,2,26,2,42,36, +23,200,2,23,201,2,28,28,248,22,191,6,23,197,2,10,248,22,180,7,23, +197,2,12,252,22,173,9,2,26,2,43,37,23,200,2,23,201,2,90,159,39, +11,89,161,39,36,11,248,22,173,14,23,199,2,86,94,23,195,1,86,94,28, +192,12,250,22,174,9,2,26,2,44,23,201,2,249,22,7,194,195,27,249,22, +162,14,249,22,128,8,250,22,152,15,0,9,35,114,120,35,34,91,46,93,34, +248,22,158,14,23,203,1,6,1,1,95,28,248,22,191,6,23,202,2,249,22, +142,8,23,203,1,8,63,23,201,1,28,248,22,153,14,23,199,2,248,22,154, +14,23,199,1,86,94,23,198,1,247,22,155,14,28,248,22,152,14,194,249,22, +170,14,195,194,192,249,247,22,159,5,194,11,27,247,22,132,15,249,80,159,39, +40,38,28,23,195,2,27,248,22,147,8,2,45,28,192,192,2,46,2,47,27, +28,23,196,1,250,22,170,14,248,22,128,15,2,48,247,22,145,8,2,49,11, +27,248,80,159,42,8,28,39,250,22,87,9,248,22,83,248,22,128,15,2,38, +9,28,193,249,22,73,195,194,192,27,247,22,132,15,249,80,159,39,40,38,28, +23,195,2,27,248,22,147,8,2,45,28,192,192,2,46,2,47,27,28,23,196, +1,250,22,170,14,248,22,128,15,2,48,247,22,145,8,2,49,11,27,248,80, +159,42,8,29,39,250,22,87,23,203,1,248,22,83,248,22,128,15,2,38,9, +28,193,249,22,73,195,194,192,27,247,22,132,15,249,80,159,39,40,38,28,23, +195,2,27,248,22,147,8,2,45,28,192,192,2,46,2,47,27,28,23,196,1, +250,22,170,14,248,22,128,15,2,48,247,22,145,8,2,49,11,27,248,80,159, +42,8,30,39,250,22,87,23,203,1,248,22,83,248,22,128,15,2,38,23,204, +1,28,193,249,22,73,195,194,192,86,94,249,22,180,6,247,22,155,5,195,248, +22,142,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,128,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,186,5,23,199,1, @@ -564,19 +564,19 @@ 30,223,0,33,52,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,53,80,159,36,8,28,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,133,7,7,92,7,92,80,159,36,37,37,20,15,16,2,88,163, +16,2,249,22,129,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,141,15,248,22,145,8,27,28,249,22,141,9,247, -22,153,8,2,32,6,1,1,59,6,1,1,58,250,22,179,7,6,14,14,40, +37,20,15,16,2,27,248,22,136,15,248,22,141,8,27,28,249,22,137,9,247, +22,149,8,2,32,6,1,1,59,6,1,1,58,250,22,175,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,88,163,45,38,51,8,128,4,2,9,223,0,33,74,80,159,36,43, 37,20,15,16,2,88,163,45,39,52,8,128,4,2,11,223,0,33,77,80,159, -36,45,37,20,15,16,2,248,22,133,15,70,108,105,110,107,115,45,102,105,108, +36,45,37,20,15,16,2,248,22,128,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,78,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,79,80,159,36,49,37,20,15,16,2, @@ -599,7 +599,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 10421); } { - SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,49,46,51,46,49,49,0,0,0,0,0,0,0,0,0,0, + SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,49,46,51,46,49,50,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, @@ -617,7 +617,7 @@ 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,182,10,2,3,11,38,36,11,248,22,83,249,22,73,22,170,10, +16,6,253,22,178,10,2,3,11,38,36,11,248,22,83,249,22,73,22,166,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, @@ -626,7 +626,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 497); } { - SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,49,46,51,46,49,49,0,0,0,0,0,0,0,0,0,0, + SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,49,46,51,46,49,50,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,65,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, @@ -654,55 +654,55 @@ 109,101,5,3,46,122,111,5,3,46,122,111,6,6,6,110,97,116,105,118,101, 64,108,111,111,112,63,108,105,98,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,178,14,197,86,95,23,195,1,23,193,1,28,249,22,145,15,0,11, -35,114,120,34,91,46,93,115,115,36,34,248,22,162,14,23,197,1,249,80,159, -41,56,39,198,5,4,46,114,107,116,196,27,28,23,195,2,28,249,22,141,9, +11,248,22,173,14,197,86,95,23,195,1,23,193,1,28,249,22,140,15,0,11, +35,114,120,34,91,46,93,115,115,36,34,248,22,157,14,23,197,1,249,80,159, +41,56,39,198,5,4,46,114,107,116,196,27,28,23,195,2,28,249,22,137,9, 23,197,2,80,158,39,50,86,94,23,195,1,80,158,37,51,27,248,22,138,5, -23,197,2,28,248,22,157,14,23,194,2,90,159,39,11,89,161,39,36,11,248, -22,178,14,23,197,1,86,95,20,18,159,11,80,158,41,50,198,20,18,159,11, +23,197,2,28,248,22,152,14,23,194,2,90,159,39,11,89,161,39,36,11,248, +22,173,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, -160,5,28,192,192,247,22,134,15,250,22,175,14,23,197,1,23,199,1,249,80, -159,43,39,39,23,198,1,2,26,250,22,175,14,23,197,1,23,199,1,249,80, -159,43,39,39,23,198,1,2,27,252,22,175,14,23,199,1,23,201,1,2,28, -247,22,154,8,249,80,159,45,39,39,23,200,1,80,159,45,36,38,252,22,175, -14,23,199,1,23,201,1,2,28,247,22,154,8,249,80,159,45,39,39,23,200, -1,80,159,45,36,38,27,252,22,175,14,23,200,1,23,202,1,2,28,247,22, -154,8,249,80,159,46,39,39,23,201,1,80,159,46,36,38,27,250,22,128,15, +160,5,28,192,192,247,22,129,15,250,22,170,14,23,197,1,23,199,1,249,80, +159,43,39,39,23,198,1,2,26,250,22,170,14,23,197,1,23,199,1,249,80, +159,43,39,39,23,198,1,2,27,252,22,170,14,23,199,1,23,201,1,2,28, +247,22,150,8,249,80,159,45,39,39,23,200,1,80,159,45,36,38,252,22,170, +14,23,199,1,23,201,1,2,28,247,22,150,8,249,80,159,45,39,39,23,200, +1,80,159,45,36,38,27,252,22,170,14,23,200,1,23,202,1,2,28,247,22, +150,8,249,80,159,46,39,39,23,201,1,80,159,46,36,38,27,250,22,187,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,175,14,23,200,1,23,202,1,2,28,247,22,154,8,249,80,159, -46,39,39,23,201,1,80,159,46,36,38,27,250,22,128,15,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,175, +11,27,252,22,170,14,23,200,1,23,202,1,2,28,247,22,150,8,249,80,159, +46,39,39,23,201,1,80,159,46,36,38,27,250,22,187,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,170, 14,23,198,1,23,200,1,249,80,159,44,39,39,23,199,1,2,26,27,250,22, -128,15,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,175,14,23,198,1,23,200,1,249,80,159,44,39,39,23, -199,1,2,27,27,250,22,128,15,196,11,32,0,88,163,8,36,36,41,11,9, +187,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,170,14,23,198,1,23,200,1,249,80,159,44,39,39,23, +199,1,2,27,27,250,22,187,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,177,9,77,108,111,97,100,47,117,115,101,45,99,111,109,112,105, +2,12,250,22,173,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,181,14,23,205,2,23,204,2,27,247,22,160,5,28,23,193,2, -249,22,182,14,23,207,2,23,195,1,23,205,2,89,161,39,37,11,248,22,178, +11,28,248,22,176,14,23,205,2,23,204,2,27,247,22,160,5,28,23,193,2, +249,22,177,14,23,207,2,23,195,1,23,205,2,89,161,39,37,11,248,22,173, 14,23,205,1,86,94,23,196,1,89,161,38,40,11,28,23,205,2,27,248,22, -162,14,23,197,2,27,248,22,189,7,23,195,2,28,28,249,22,188,3,23,195, -2,40,249,22,128,8,5,4,46,114,107,116,249,22,131,8,23,198,2,249,22, -176,3,23,199,2,40,11,249,22,7,23,199,2,248,22,166,14,249,22,132,8, -250,22,131,8,23,202,1,36,249,22,176,3,23,203,1,40,5,3,46,115,115, +157,14,23,197,2,27,248,22,185,7,23,195,2,28,28,249,22,188,3,23,195, +2,40,249,22,188,7,5,4,46,114,107,116,249,22,191,7,23,198,2,249,22, +176,3,23,199,2,40,11,249,22,7,23,199,2,248,22,161,14,249,22,128,8, +250,22,191,7,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,141,9,23,199,2,23,197,2,23,193,2,249,22,175,14,23,196,2,23,199, -2,89,161,37,43,11,28,23,198,2,28,249,22,141,9,23,200,2,23,197,1, -23,193,1,86,94,23,193,1,249,22,175,14,23,196,2,23,200,2,86,94,23, -195,1,11,89,161,37,44,11,28,249,22,141,9,23,196,2,68,114,101,108,97, +22,137,9,23,199,2,23,197,2,23,193,2,249,22,170,14,23,196,2,23,199, +2,89,161,37,43,11,28,23,198,2,28,249,22,137,9,23,200,2,23,197,1, +23,193,1,86,94,23,193,1,249,22,170,14,23,196,2,23,200,2,86,94,23, +195,1,11,89,161,37,44,11,28,249,22,137,9,23,196,2,68,114,101,108,97, 116,105,118,101,86,94,23,194,1,2,25,23,194,1,89,161,37,45,11,247,22, -136,15,27,250,22,128,15,23,203,2,11,32,0,88,163,8,36,36,41,11,9, +131,15,27,250,22,187,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,128,15,23,207,2,11,32, +11,27,28,23,203,2,28,23,194,2,11,27,250,22,187,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,36,27,88,163,36,37,50,44,66,97,108,116,45,122,111, 225,16,14,11,33,37,27,88,163,36,37,52,45,9,225,17,15,11,33,38,27, 88,163,36,37,52,45,9,225,18,16,13,33,39,27,28,23,200,2,23,200,2, -248,22,139,9,23,200,2,27,28,23,208,2,28,23,200,2,86,94,23,201,1, -23,200,2,248,22,139,9,23,202,1,11,27,28,23,195,2,28,23,197,1,27, +248,22,135,9,23,200,2,27,28,23,208,2,28,23,200,2,86,94,23,201,1, +23,200,2,248,22,135,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,40,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, @@ -710,8 +710,8 @@ 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,181,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,160,5,28,248,22,157,14,23,216, -2,23,215,1,86,94,23,215,1,247,22,134,15,249,247,22,140,15,248,22,74, +37,249,22,27,11,80,159,8,26,40,37,22,160,5,28,248,22,152,14,23,216, +2,23,215,1,86,94,23,215,1,247,22,129,15,249,247,22,135,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,41,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, @@ -720,8 +720,8 @@ 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,181,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,160,5, -28,248,22,157,14,23,217,2,23,216,1,86,94,23,216,1,247,22,134,15,249, -247,22,140,15,248,22,74,195,23,26,86,94,23,193,1,27,28,23,197,2,28, +28,248,22,152,14,23,217,2,23,216,1,86,94,23,216,1,247,22,129,15,249, +247,22,135,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,42,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, @@ -729,8 +729,8 @@ 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,181,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,160,5,28,248,22,157, -14,23,218,2,23,217,1,86,94,23,217,1,247,22,134,15,249,247,22,158,5, +8,26,41,37,249,22,27,11,80,159,8,28,40,37,22,160,5,28,248,22,152, +14,23,218,2,23,217,1,86,94,23,217,1,247,22,129,15,249,247,22,158,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,43,23, 215,1,23,219,1,27,28,23,205,2,11,193,28,192,192,28,193,28,204,28,249, @@ -739,26 +739,26 @@ 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,181,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,160,5,28, -248,22,157,14,23,219,2,23,218,1,86,94,23,218,1,247,22,134,15,249,247, +248,22,152,14,23,219,2,23,218,1,86,94,23,218,1,247,22,129,15,249,247, 22,158,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,181, 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,160,5,28,248,22,157,14,23,220,2,23,219,1,86,94,23,219,1,247,22, -134,15,249,247,22,158,5,194,23,29,27,249,22,161,8,80,159,39,45,38,249, +22,160,5,28,248,22,152,14,23,220,2,23,219,1,86,94,23,219,1,247,22, +129,15,249,247,22,158,5,194,23,29,27,249,22,157,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,161,8,80, -159,40,45,38,195,27,28,193,248,22,169,2,194,11,250,22,162,8,80,159,42, +22,183,3,248,22,179,3,248,22,166,2,198,8,128,8,27,249,22,157,8,80, +159,40,45,38,195,27,28,193,248,22,169,2,194,11,250,22,158,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,48,88,163, -8,36,37,59,11,2,29,222,33,49,27,249,22,145,15,2,47,23,196,2,28, +8,36,37,59,11,2,29,222,33,49,27,249,22,140,15,2,47,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,145,15,2,47,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,145, +23,197,1,27,249,22,140,15,2,47,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,140, 15,2,47,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,145,15,2,47,23,196,2,28, +23,196,2,27,248,22,107,23,197,1,27,249,22,140,15,2,47,23,196,2,28, 23,193,2,86,94,23,194,1,249,22,73,248,22,98,23,196,2,248,2,48,248, 22,107,23,197,1,248,22,83,194,248,22,83,194,248,22,83,194,248,22,83,194, 32,50,88,163,36,37,55,11,2,29,222,33,51,28,248,22,81,248,22,75,23, @@ -768,12 +768,12 @@ 23,195,2,249,22,7,9,248,22,74,195,90,159,38,11,89,161,38,36,11,248, 2,50,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,145,15,2,47,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,145,15,2, +27,27,249,22,140,15,2,47,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,140,15,2, 47,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,145,15,2,47,23,196,2,28,23,193, +2,27,248,22,107,23,197,1,27,249,22,140,15,2,47,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,145,15,2,47,23,196,2,28,23,193,2,86,94,23,194,1,249, +1,27,249,22,140,15,2,47,23,196,2,28,23,193,2,86,94,23,194,1,249, 22,73,248,22,98,23,196,2,248,2,48,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, @@ -782,32 +782,32 @@ 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,50,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,136,5,195,12,250,22,177,9,2,21,6,20, +74,200,196,195,86,95,28,248,22,136,5,195,12,250,22,173,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,170,15,247,22,135,13,11,27,28,23,194,2,193,86, +80,159,41,43,38,248,22,165,15,247,22,131,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,170,15,247,22,135,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,176,9,11,196,195,248,22,174,9,194, -28,249,22,137,7,194,6,1,1,46,2,25,28,249,22,137,7,194,6,2,2, +22,165,15,247,22,131,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,172,9,11,196,195,248,22,170,9,194, +28,249,22,133,7,194,6,1,1,46,2,25,28,249,22,133,7,194,6,2,2, 46,46,62,117,112,192,32,57,88,163,8,36,37,50,11,67,115,115,45,62,114, -107,116,222,33,58,27,248,22,134,7,194,28,249,22,188,3,194,39,28,249,22, -137,7,6,3,3,46,115,115,249,22,153,7,197,249,22,176,3,198,39,249,22, -154,7,250,22,153,7,198,36,249,22,176,3,199,39,6,4,4,46,114,107,116, -193,193,28,249,22,143,9,248,22,75,23,200,2,23,197,1,28,249,22,141,9, -248,22,74,23,200,2,23,196,1,251,22,174,9,2,21,6,28,28,99,121,99, +107,116,222,33,58,27,248,22,130,7,194,28,249,22,188,3,194,39,28,249,22, +133,7,6,3,3,46,115,115,249,22,149,7,197,249,22,176,3,198,39,249,22, +150,7,250,22,149,7,198,36,249,22,176,3,199,39,6,4,4,46,114,107,116, +193,193,28,249,22,139,9,248,22,75,23,200,2,23,197,1,28,249,22,137,9, +248,22,74,23,200,2,23,196,1,251,22,170,9,2,21,6,28,28,99,121,99, 108,101,32,105,110,32,108,111,97,100,105,110,103,32,97,116,32,126,46,115,58, 32,126,46,115,23,200,1,249,22,2,22,75,248,22,88,249,22,73,23,206,1, 23,202,1,12,12,247,192,20,13,159,80,159,41,48,38,249,22,73,249,22,73, -248,22,170,15,247,22,135,13,23,200,1,23,195,1,20,13,159,80,159,41,40, +248,22,165,15,247,22,131,13,23,200,1,23,195,1,20,13,159,80,159,41,40, 37,250,80,159,44,41,37,249,22,27,11,80,159,46,40,37,22,180,4,23,197, -1,249,247,22,159,5,23,199,1,248,22,61,248,22,161,14,23,199,1,86,94, -28,28,248,22,157,14,23,196,2,10,248,22,144,5,23,196,2,12,28,23,197, -2,250,22,176,9,11,6,15,15,98,97,100,32,109,111,100,117,108,101,32,112, -97,116,104,23,200,2,250,22,177,9,2,21,6,19,19,109,111,100,117,108,101, +1,249,247,22,159,5,23,199,1,248,22,61,248,22,156,14,23,199,1,86,94, +28,28,248,22,152,14,23,196,2,10,248,22,144,5,23,196,2,12,28,23,197, +2,250,22,172,9,11,6,15,15,98,97,100,32,109,111,100,117,108,101,32,112, +97,116,104,23,200,2,250,22,173,9,2,21,6,19,19,109,111,100,117,108,101, 45,112,97,116,104,32,111,114,32,112,97,116,104,23,198,2,28,28,248,22,71, -23,196,2,249,22,141,9,248,22,74,23,198,2,2,4,11,248,22,137,5,248, -22,98,196,28,28,248,22,71,23,196,2,249,22,141,9,248,22,74,23,198,2, +23,196,2,249,22,137,9,248,22,74,23,198,2,2,4,11,248,22,137,5,248, +22,98,196,28,28,248,22,71,23,196,2,249,22,137,9,248,22,74,23,198,2, 66,112,108,97,110,101,116,11,86,94,28,207,12,20,13,159,80,159,37,55,37, 80,158,37,53,89,161,37,36,10,249,22,182,4,21,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, @@ -815,73 +815,73 @@ 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,99,111,108,108,101,99,116, 105,111,110,45,101,114,114,223,5,33,55,27,28,248,22,58,23,198,2,27,248, -80,159,41,46,39,249,22,73,23,201,2,247,22,135,15,28,23,193,2,192,86, +80,159,41,46,39,249,22,73,23,201,2,247,22,130,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,6,8,8,109,97,105,110,46, -114,107,116,249,22,154,7,23,197,2,6,4,4,46,114,107,116,27,252,80,159, +114,107,116,249,22,150,7,23,197,2,6,4,4,46,114,107,116,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,175,14,23,195,1,23,196,1,28,248, -22,131,7,23,198,2,86,94,23,194,1,27,248,80,159,41,8,26,39,23,200, +248,22,75,23,201,1,23,199,2,249,22,170,14,23,195,1,23,196,1,28,248, +22,191,6,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,175,14,23,199,1,249,22,87,249,22,2,32,0, +23,203,2,11,250,22,1,22,170,14,23,199,1,249,22,87,249,22,2,32,0, 88,163,8,36,37,44,11,9,222,33,56,23,200,1,248,22,83,248,2,57,23, -201,1,28,248,22,157,14,23,198,2,86,94,23,194,1,28,248,22,180,14,23, -198,2,248,80,159,40,8,27,39,248,22,184,14,23,199,2,248,22,83,6,26, +201,1,28,248,22,152,14,23,198,2,86,94,23,194,1,28,248,22,175,14,23, +198,2,248,80,159,40,8,27,39,248,22,179,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,141,9,248,22,74,23,200,2,2,30,27,248, -80,159,41,46,39,249,22,73,23,201,2,247,22,135,15,28,23,193,2,192,86, +111,108,117,116,101,41,28,249,22,137,9,248,22,74,23,200,2,2,30,27,248, +80,159,41,46,39,249,22,73,23,201,2,247,22,130,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,149,15,0,8,35,114,120,34,91,46,93,34,23, +248,22,81,23,194,2,249,22,144,15,0,8,35,114,120,34,91,46,93,34,23, 196,2,11,10,27,28,23,196,2,248,2,57,23,196,2,28,248,22,81,23,195, -2,6,8,8,109,97,105,110,46,114,107,116,28,249,22,149,15,0,8,35,114, -120,34,91,46,93,34,23,197,2,248,2,57,23,196,2,249,22,154,7,23,197, +2,6,8,8,109,97,105,110,46,114,107,116,28,249,22,144,15,0,8,35,114, +120,34,91,46,93,34,23,197,2,248,2,57,23,196,2,249,22,150,7,23,197, 2,6,4,4,46,114,107,116,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,175,14,23,195,1,23,197, -1,28,249,22,141,9,248,22,74,23,200,2,64,102,105,108,101,248,80,159,40, -8,27,39,248,22,184,14,249,22,182,14,248,22,186,14,248,22,98,23,203,2, -248,80,159,44,8,26,39,23,203,2,12,86,94,28,28,248,22,157,14,23,194, -2,10,248,22,156,8,23,194,2,86,94,23,199,1,12,28,23,199,2,250,22, -176,9,67,114,101,113,117,105,114,101,249,22,179,7,6,17,17,98,97,100,32, +23,200,2,248,22,75,23,200,1,23,200,2,249,22,170,14,23,195,1,23,197, +1,28,249,22,137,9,248,22,74,23,200,2,64,102,105,108,101,248,80,159,40, +8,27,39,248,22,179,14,249,22,177,14,248,22,181,14,248,22,98,23,203,2, +248,80,159,44,8,26,39,23,203,2,12,86,94,28,28,248,22,152,14,23,194, +2,10,248,22,152,8,23,194,2,86,94,23,199,1,12,28,23,199,2,250,22, +172,9,67,114,101,113,117,105,114,101,249,22,175,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,6,0,0,23,202,1,86,94,23,199,1,250,22,177,9,2,21,249,22, -179,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,6,0,0,23,200,2,27,28,248,22,156,8,23,195, -2,249,22,161,8,23,196,2,36,249,22,184,14,248,22,185,14,23,197,2,11, -27,28,248,22,156,8,23,196,2,249,22,161,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,156,8,23,199, -2,250,22,7,2,31,249,22,161,8,23,203,2,38,2,31,248,22,178,14,23, -198,2,86,95,23,195,1,23,193,1,27,28,248,22,156,8,23,200,2,249,22, -161,8,23,201,2,39,249,80,159,47,56,39,23,197,2,5,0,27,28,248,22, -156,8,23,201,2,249,22,161,8,23,202,2,40,248,22,137,5,23,200,2,27, -27,250,22,153,2,80,159,51,43,38,248,22,170,15,247,22,135,13,11,28,23, +199,2,6,0,0,23,202,1,86,94,23,199,1,250,22,173,9,2,21,249,22, +175,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,6,0,0,23,200,2,27,28,248,22,152,8,23,195, +2,249,22,157,8,23,196,2,36,249,22,179,14,248,22,180,14,23,197,2,11, +27,28,248,22,152,8,23,196,2,249,22,157,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,152,8,23,199, +2,250,22,7,2,31,249,22,157,8,23,203,2,38,2,31,248,22,173,14,23, +198,2,86,95,23,195,1,23,193,1,27,28,248,22,152,8,23,200,2,249,22, +157,8,23,201,2,39,249,80,159,47,56,39,23,197,2,5,0,27,28,248,22, +152,8,23,201,2,249,22,157,8,23,202,2,40,248,22,137,5,23,200,2,27, +27,250,22,153,2,80,159,51,43,38,248,22,165,15,247,22,131,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,170,15,247,22,135,13,195,192,86,95,28,23,208,1,27,250, +52,43,38,248,22,165,15,247,22,131,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,170,15,247,22,135,13,86,94,249,22,3,20,20, +38,9,23,197,1,27,248,22,165,15,247,22,131,13,86,94,249,22,3,20,20, 94,88,163,8,36,37,55,11,9,226,12,11,2,3,33,59,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,60,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,61,23,195,1,250,22,151,2,23,197,1,197,10,12, -28,28,248,22,156,8,23,202,1,11,28,248,22,131,7,23,206,2,10,28,248, -22,58,23,206,2,10,28,248,22,71,23,206,2,249,22,141,9,248,22,74,23, -208,2,2,30,11,27,28,248,22,131,7,23,207,2,249,22,73,23,208,1,248, +28,28,248,22,152,8,23,202,1,11,28,248,22,191,6,23,206,2,10,28,248, +22,58,23,206,2,10,28,248,22,71,23,206,2,249,22,137,9,248,22,74,23, +208,2,2,30,11,27,28,248,22,191,6,23,207,2,249,22,73,23,208,1,248, 80,159,51,8,26,39,23,210,1,86,94,23,207,1,249,22,73,23,208,1,247, -22,135,15,27,249,22,183,3,248,22,179,3,248,22,166,2,23,198,2,8,128, -8,27,249,22,161,8,80,159,52,45,38,23,196,2,27,28,23,194,2,248,22, -169,2,23,195,1,86,94,23,194,1,11,250,22,162,8,80,159,54,45,38,23, -198,1,248,22,168,2,249,22,73,249,22,73,23,204,1,252,22,158,8,23,217, +22,130,15,27,249,22,183,3,248,22,179,3,248,22,166,2,23,198,2,8,128, +8,27,249,22,157,8,80,159,52,45,38,23,196,2,27,28,23,194,2,248,22, +169,2,23,195,1,86,94,23,194,1,11,250,22,158,8,80,159,54,45,38,23, +198,1,248,22,168,2,249,22,73,249,22,73,23,204,1,252,22,154,8,23,217, 1,23,216,1,23,214,1,23,212,1,23,18,28,23,199,2,23,199,1,86,94, 23,199,1,9,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,179,4,80,159,37,54,38,248, -22,159,5,80,159,37,37,39,248,22,190,13,80,159,37,42,39,20,18,159,11, +22,159,5,80,159,37,37,39,248,22,186,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,159, 36,20,112,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,112,159,40,16,26,2,2,2,3,30,2,5, @@ -904,11 +904,11 @@ 49,8,240,0,0,16,0,72,112,97,116,104,45,115,115,45,62,114,107,116,223, 0,33,34,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,35,80,159,36,8,26,39, -20,15,16,2,248,22,153,8,69,115,111,45,115,117,102,102,105,120,80,159,36, +20,15,16,2,248,22,149,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,44,80, 159,36,37,37,20,15,16,2,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,157,8,8,128,8,11, +2,8,128,8,80,159,36,44,37,20,15,16,2,249,22,153,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,45,80,159,36,46,37,20,15,16,2,88,163,8,36,38,55,8,128,8, 2,14,223,0,33,46,80,159,36,47,37,20,15,16,2,247,22,69,80,159,36, @@ -927,7 +927,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 6253); } { - SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,49,46,51,46,49,49,0,0,0,0,0,0,0,0,0,0, + SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,53,46,49,46,51,46,49,50,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, diff --git a/src/racket/src/eval.c b/src/racket/src/eval.c index 8498974564..f395266242 100644 --- a/src/racket/src/eval.c +++ b/src/racket/src/eval.c @@ -4156,7 +4156,7 @@ Scheme_Object *scheme_load_compiled_stx_string(const char *str, intptr_t len) port = scheme_make_sized_byte_string_input_port(str, -len); - expr = scheme_internal_read(port, NULL, 1, 0, 0, 0, 0, -1, NULL, NULL, NULL, NULL); + expr = scheme_internal_read(port, NULL, 1, 0, 0, 0, -1, NULL, NULL, NULL, NULL); expr = _scheme_eval_compiled(expr, scheme_get_env(NULL)); diff --git a/src/racket/src/portfun.c b/src/racket/src/portfun.c index 053a77c2e1..8af6cff8d4 100644 --- a/src/racket/src/portfun.c +++ b/src/racket/src/portfun.c @@ -48,12 +48,8 @@ static Scheme_Object *with_input_from_file (int, Scheme_Object *[]); static Scheme_Object *with_output_to_file (int, Scheme_Object *[]); static Scheme_Object *read_f (int, Scheme_Object *[]); static Scheme_Object *read_recur_f (int, Scheme_Object *[]); -static Scheme_Object *read_honu_f (int, Scheme_Object *[]); -static Scheme_Object *read_honu_recur_f (int, Scheme_Object *[]); static Scheme_Object *read_syntax_f (int, Scheme_Object *[]); static Scheme_Object *read_syntax_recur_f (int, Scheme_Object *[]); -static Scheme_Object *read_honu_syntax_f (int, Scheme_Object *[]); -static Scheme_Object *read_honu_syntax_recur_f (int, Scheme_Object *[]); static Scheme_Object *read_language (int, Scheme_Object *[]); static Scheme_Object *read_char (int, Scheme_Object *[]); static Scheme_Object *read_char_spec (int, Scheme_Object *[]); @@ -261,10 +257,6 @@ scheme_init_port_fun(Scheme_Env *env) GLOBAL_NONCM_PRIM("read/recursive", read_recur_f, 0, 4, env); GLOBAL_NONCM_PRIM("read-syntax", read_syntax_f, 0, 2, env); GLOBAL_NONCM_PRIM("read-syntax/recursive", read_syntax_recur_f, 0, 5, env); - GLOBAL_NONCM_PRIM("read-honu", read_honu_f, 0, 1, env); - GLOBAL_NONCM_PRIM("read-honu/recursive", read_honu_recur_f, 0, 1, env); - GLOBAL_NONCM_PRIM("read-honu-syntax", read_honu_syntax_f, 0, 2, env); - GLOBAL_NONCM_PRIM("read-honu-syntax/recursive", read_honu_syntax_recur_f, 0, 2, env); GLOBAL_PRIM_W_ARITY2("read-language", read_language, 0, 2, 0, -1, env); GLOBAL_NONCM_PRIM("read-char", read_char, 0, 1, env); GLOBAL_NONCM_PRIM("read-char-or-special", read_char_spec, 0, 1, env); @@ -2734,7 +2726,7 @@ static Scheme_Object *sch_default_read_handler(void *ignore, int argc, Scheme_Ob else src = NULL; - return scheme_internal_read(argv[0], src, -1, 0, 0, 0, 0, -1, NULL, NULL, NULL, NULL); + return scheme_internal_read(argv[0], src, -1, 0, 0, 0, -1, NULL, NULL, NULL, NULL); } static int extract_recur_args(const char *who, int argc, Scheme_Object **argv, int delta, @@ -2764,7 +2756,7 @@ static int extract_recur_args(const char *who, int argc, Scheme_Object **argv, i return pre_char; } -static Scheme_Object *do_read_f(const char *who, int argc, Scheme_Object *argv[], int honu_mode, int recur) +static Scheme_Object *do_read_f(const char *who, int argc, Scheme_Object *argv[], int recur) { Scheme_Object *port, *readtable = NULL; int pre_char = -1, recur_graph = recur; @@ -2778,13 +2770,13 @@ static Scheme_Object *do_read_f(const char *who, int argc, Scheme_Object *argv[] else port = CURRENT_INPUT_PORT(scheme_current_config()); - if (recur && !honu_mode) { + if (recur) { pre_char = extract_recur_args(who, argc, argv, 0, &readtable, &recur_graph); } ip = scheme_input_port_record(port); - if (ip->read_handler && !honu_mode && !recur) { + if (ip->read_handler && !recur) { Scheme_Object *o[1]; o[0] = port; return _scheme_apply(ip->read_handler, 1, o); @@ -2792,7 +2784,7 @@ static Scheme_Object *do_read_f(const char *who, int argc, Scheme_Object *argv[] if (port == scheme_orig_stdin_port) scheme_flush_orig_outputs(); - return scheme_internal_read(port, NULL, -1, 0, honu_mode, + return scheme_internal_read(port, NULL, -1, 0, recur_graph, recur, pre_char, readtable, NULL, NULL, NULL); @@ -2801,25 +2793,15 @@ static Scheme_Object *do_read_f(const char *who, int argc, Scheme_Object *argv[] static Scheme_Object *read_f(int argc, Scheme_Object *argv[]) { - return do_read_f("read", argc, argv, 0, 0); + return do_read_f("read", argc, argv, 0); } static Scheme_Object *read_recur_f(int argc, Scheme_Object *argv[]) { - return do_read_f("read/recursive", argc, argv, 0, 1); + return do_read_f("read/recursive", argc, argv, 1); } -static Scheme_Object *read_honu_f(int argc, Scheme_Object *argv[]) -{ - return do_read_f("read-honu", argc, argv, 1, 0); -} - -static Scheme_Object *read_honu_recur_f(int argc, Scheme_Object *argv[]) -{ - return do_read_f("read-honu/recursive", argc, argv, 1, 1); -} - -static Scheme_Object *do_read_syntax_f(const char *who, int argc, Scheme_Object *argv[], int honu_mode, int recur) +static Scheme_Object *do_read_syntax_f(const char *who, int argc, Scheme_Object *argv[], int recur) { Scheme_Object *port, *readtable = NULL; int pre_char = -1, recur_graph = recur; @@ -2833,13 +2815,13 @@ static Scheme_Object *do_read_syntax_f(const char *who, int argc, Scheme_Object else port = CURRENT_INPUT_PORT(scheme_current_config()); - if (recur && !honu_mode) { + if (recur) { pre_char = extract_recur_args(who, argc, argv, 1, &readtable, &recur_graph); } ip = scheme_input_port_record(port); - if (ip->read_handler && !honu_mode && !recur) { + if (ip->read_handler && !recur) { Scheme_Object *o[2], *result; o[0] = port; o[1] = (argc ? argv[0] : ip->name); @@ -2861,7 +2843,7 @@ static Scheme_Object *do_read_syntax_f(const char *who, int argc, Scheme_Object if (port == scheme_orig_stdin_port) scheme_flush_orig_outputs(); - return scheme_internal_read(port, src, -1, 0, honu_mode, + return scheme_internal_read(port, src, -1, 0, recur, recur_graph, pre_char, readtable, NULL, NULL, NULL); @@ -2870,22 +2852,12 @@ static Scheme_Object *do_read_syntax_f(const char *who, int argc, Scheme_Object static Scheme_Object *read_syntax_f(int argc, Scheme_Object *argv[]) { - return do_read_syntax_f("read-syntax", argc, argv, 0, 0); + return do_read_syntax_f("read-syntax", argc, argv, 0); } static Scheme_Object *read_syntax_recur_f(int argc, Scheme_Object *argv[]) { - return do_read_syntax_f("read-syntax/recursive", argc, argv, 0, 1); -} - -static Scheme_Object *read_honu_syntax_f(int argc, Scheme_Object *argv[]) -{ - return do_read_syntax_f("read-honu-syntax", argc, argv, 1, 0); -} - -static Scheme_Object *read_honu_syntax_recur_f(int argc, Scheme_Object *argv[]) -{ - return do_read_syntax_f("read-honu-syntax/recursive", argc, argv, 1, 1); + return do_read_syntax_f("read-syntax/recursive", argc, argv, 1); } static Scheme_Object *read_language(int argc, Scheme_Object **argv) @@ -4192,7 +4164,7 @@ static Scheme_Object *do_load_handler(void *data) } } - while ((obj = scheme_internal_read(port, lhd->stxsrc, 1, 0, 0, 0, 0, -1, NULL, + while ((obj = scheme_internal_read(port, lhd->stxsrc, 1, 0, 0, 0, -1, NULL, NULL, NULL, lhd->delay_load_info)) && !SCHEME_EOFP(obj)) { save_array = NULL; @@ -4278,7 +4250,7 @@ static Scheme_Object *do_load_handler(void *data) } /* Check no more expressions: */ - d = scheme_internal_read(port, lhd->stxsrc, 1, 0, 0, 0, 0, -1, NULL, NULL, NULL, NULL); + d = scheme_internal_read(port, lhd->stxsrc, 1, 0, 0, 0, -1, NULL, NULL, NULL, NULL); if (!SCHEME_EOFP(d)) { Scheme_Input_Port *ip; ip = scheme_input_port_record(port); diff --git a/src/racket/src/print.c b/src/racket/src/print.c index 085d9eec98..433de3415b 100644 --- a/src/racket/src/print.c +++ b/src/racket/src/print.c @@ -83,7 +83,6 @@ typedef struct Scheme_Print_Params { char print_long_bools; char can_read_pipe_quote; char case_sens; - char honu_mode; Scheme_Object *inspector; char printing_quoted; @@ -106,13 +105,13 @@ static void register_traversers(void); #endif static void print_to_port(char *name, Scheme_Object *obj, Scheme_Object *port, - int notdisplay, intptr_t maxl, int check_honu, Scheme_Object *qq_depth); + int notdisplay, intptr_t maxl, Scheme_Object *qq_depth); static int print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, Scheme_Marshal_Tables *mt, PrintParams *p); static void print_char_string(const char *s, int l, const mzchar *us, int delta, int ul, - int notdisplay, int honu_char, PrintParams *pp); + int notdisplay, PrintParams *pp); static void print_byte_string(const char *s, int delta, int l, int notdisplay, PrintParams *pp); static void print_pair(Scheme_Object *pair, int notdisplay, int compact, Scheme_Hash_Table *ht, @@ -126,7 +125,7 @@ static void print_vector(Scheme_Object *vec, int notdisplay, int compact, int as_prefab); static void print_char(Scheme_Object *chobj, int notdisplay, PrintParams *pp); static char *print_to_string(Scheme_Object *obj, intptr_t * volatile len, int write, - Scheme_Object *port, intptr_t maxl, int check_honu, + Scheme_Object *port, intptr_t maxl, Scheme_Object *qq_depth); static void custom_write_struct(Scheme_Object *s, Scheme_Hash_Table *ht, @@ -262,7 +261,7 @@ static void *print_to_port_k(void) : "write") : "display"), obj, port, - p->ku.k.i2, p->ku.k.i1, p->ku.k.i3, + p->ku.k.i2, p->ku.k.i1, depth); return NULL; @@ -305,7 +304,6 @@ void scheme_write_w_max(Scheme_Object *obj, Scheme_Object *port, intptr_t maxl) p->ku.k.p2 = obj; p->ku.k.i1 = maxl; p->ku.k.i2 = 1; - p->ku.k.i3 = 0; p->ku.k.p3 = NULL; (void)scheme_top_level_do(print_to_port_k, 0); @@ -328,7 +326,6 @@ void scheme_display_w_max(Scheme_Object *obj, Scheme_Object *port, intptr_t maxl p->ku.k.p2 = obj; p->ku.k.i1 = maxl; p->ku.k.i2 = 0; - p->ku.k.i3 = 0; p->ku.k.p3 = NULL; (void)scheme_top_level_do(print_to_port_k, 0); @@ -351,7 +348,6 @@ void scheme_print_w_max(Scheme_Object *obj, Scheme_Object *port, intptr_t maxl) p->ku.k.p2 = obj; p->ku.k.i1 = maxl; p->ku.k.i2 = 2; - p->ku.k.i3 = 1; p->ku.k.p3 = NULL; (void)scheme_top_level_do(print_to_port_k, 0); @@ -368,20 +364,19 @@ static void *print_to_string_k(void) Scheme_Thread *p = scheme_current_thread; Scheme_Object *obj, *qq_depth; intptr_t *len, maxl; - int iswrite, check_honu; + int iswrite; obj = (Scheme_Object *)p->ku.k.p1; len = (intptr_t *) mzALIAS p->ku.k.p2; maxl = p->ku.k.i1; iswrite = p->ku.k.i2; - check_honu = p->ku.k.i3; qq_depth = (Scheme_Object *)p->ku.k.p3; p->ku.k.p1 = NULL; p->ku.k.p2 = NULL; p->ku.k.p3 = NULL; - return (void *)print_to_string(obj, len, iswrite, NULL, maxl, check_honu, qq_depth); + return (void *)print_to_string(obj, len, iswrite, NULL, maxl, qq_depth); } char *scheme_write_to_string_w_max(Scheme_Object *obj, intptr_t *len, intptr_t maxl) @@ -444,19 +439,19 @@ char *scheme_print_to_string(Scheme_Object *obj, intptr_t *len) void scheme_internal_write(Scheme_Object *obj, Scheme_Object *port) { - print_to_port("write", obj, port, 1, -1, 0, NULL); + print_to_port("write", obj, port, 1, -1, NULL); } void scheme_internal_display(Scheme_Object *obj, Scheme_Object *port) { - print_to_port("display", obj, port, 0, -1, 0, NULL); + print_to_port("display", obj, port, 0, -1, NULL); } void scheme_internal_print(Scheme_Object *obj, Scheme_Object *port, Scheme_Object *depth) { - print_to_port("print", obj, port, 2, -1, 1, depth); + print_to_port("print", obj, port, 2, -1, depth); } #ifdef DO_STACK_CHECK @@ -953,7 +948,6 @@ static char * print_to_string(Scheme_Object *obj, intptr_t * volatile len, int write, Scheme_Object *port, intptr_t maxl, - int check_honu, Scheme_Object *qq_depth) { Scheme_Hash_Table * volatile ht; @@ -995,7 +989,6 @@ print_to_string(Scheme_Object *obj, params.print_mpair_curly = 1; params.can_read_pipe_quote = 1; params.case_sens = 1; - params.honu_mode = 0; params.inspector = scheme_false; params.print_syntax = -1; } else { @@ -1057,11 +1050,6 @@ print_to_string(Scheme_Object *obj, params.case_sens = SCHEME_TRUEP(v); v = scheme_get_param(config, MZCONFIG_PRINT_LONG_BOOLEAN); params.print_long_bools = SCHEME_TRUEP(v); - if (check_honu) { - v = scheme_get_param(config, MZCONFIG_HONU_MODE); - params.honu_mode = SCHEME_TRUEP(v); - } else - params.honu_mode = 0; v = scheme_get_param(config, MZCONFIG_INSPECTOR); params.inspector = v; } @@ -1112,7 +1100,7 @@ print_to_string(Scheme_Object *obj, static void print_to_port(char *name, Scheme_Object *obj, Scheme_Object *port, int notdisplay, - intptr_t maxl, int check_honu, Scheme_Object *qq_depth) + intptr_t maxl, Scheme_Object *qq_depth) { Scheme_Output_Port *op; char *str; @@ -1122,7 +1110,7 @@ print_to_port(char *name, Scheme_Object *obj, Scheme_Object *port, int notdispla if (op->closed) scheme_raise_exn(MZEXN_FAIL, "%s: output port is closed", name); - str = print_to_string(obj, &len, notdisplay, port, maxl, check_honu, qq_depth); + str = print_to_string(obj, &len, notdisplay, port, maxl, qq_depth); scheme_write_byte_string(str, len, port); } @@ -1301,7 +1289,7 @@ static void do_print_string(int compact, int notdisplay, print_compact_number(pp, l); print_this_string(pp, buf, 0, el); } else { - print_char_string(buf, el, s, offset, l, notdisplay, 0, pp); + print_char_string(buf, el, s, offset, l, notdisplay, pp); } if (reset) @@ -1722,15 +1710,6 @@ static void print_named(Scheme_Object *obj, const char *kind, print_utf8_string(pp, ">", 0, 1); } -static void always_scheme(PrintParams *pp, int reset) -{ - if (pp->honu_mode) { - print_utf8_string(pp, "#sx", 0, 3); - if (reset) - pp->honu_mode = 0; - } -} - static int to_quoted(Scheme_Object *obj, PrintParams *pp, int notdisplay) { if (notdisplay == 3) { @@ -1768,7 +1747,6 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, /* notdisplay >= 3 => print at qq depth notdisplay - 3 */ { int closed = 0; - int save_honu_mode; #if NO_COMPACT compact = 0; @@ -1823,8 +1801,6 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, } } - save_honu_mode = pp->honu_mode; - if (ht && HAS_SUBSTRUCT(obj, ssQUICK)) { intptr_t val; @@ -1837,12 +1813,10 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, return 1; } else { if (val > 0) { - always_scheme(pp, 1); sprintf(quick_buffer, "#%" PRIdPTR "=", (val - 3) >> 1); print_utf8_string(pp, quick_buffer, 0, -1); scheme_hash_set(ht, obj, (Scheme_Object *)(-val)); } else { - always_scheme(pp, 0); sprintf(quick_buffer, "#%" PRIdPTR "#", ((-val) - 3) >> 1); print_utf8_string(pp, quick_buffer, 0, -1); return 0; @@ -1899,57 +1873,28 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, symtab_set(pp, mt, obj); } else if (notdisplay) { - if (pp->honu_mode) { - /* Honu symbol... */ - if (is_kw) - print_utf8_string(pp, "key(", 0, 4); - else - print_utf8_string(pp, "sym(", 0, 4); - { - int i; - /* Check for fast case: */ - for (i = SCHEME_SYM_LEN(obj); i--; ) { - if (((unsigned char *)SCHEME_SYM_VAL(obj))[i] > 127) - break; - } - if (i < 0) { - /* Fits as byte string (fast case) */ - print_byte_string((char *)obj, SCHEME_SYMSTR_OFFSET(obj), SCHEME_SYM_LEN(obj), - notdisplay, pp); - } else { - /* Coerce to string (slower) */ - Scheme_Object *s; - s = scheme_make_sized_offset_utf8_string((char *)obj, - SCHEME_SYMSTR_OFFSET(obj), - SCHEME_SYM_LEN(obj)); - do_print_string(0, notdisplay, pp, SCHEME_CHAR_STR_VAL(s), 0, SCHEME_CHAR_STRLEN_VAL(s)); - } - } - print_utf8_string(pp, ")", 0, 1); - } else { - const char *s; + const char *s; - if (notdisplay >= 3) { - if (SAME_OBJ(qq_ellipses, obj)) { - /* no quoting */ - } else - notdisplay = to_quoted(NULL, pp, notdisplay); - } + if (notdisplay >= 3) { + if (SAME_OBJ(qq_ellipses, obj)) { + /* no quoting */ + } else + notdisplay = to_quoted(NULL, pp, notdisplay); + } - if (is_kw) - print_utf8_string(pp, "#:", 0, 2); - s = scheme_symbol_name_and_size(obj, (uintptr_t *)&l, - ((pp->can_read_pipe_quote - ? SCHEME_SNF_PIPE_QUOTE - : SCHEME_SNF_NO_PIPE_QUOTE) - | (pp->case_sens - ? 0 - : SCHEME_SNF_NEED_CASE) - | (is_kw - ? SCHEME_SNF_KEYWORD - : 0))); - print_utf8_string(pp, s, 0, l); - } + if (is_kw) + print_utf8_string(pp, "#:", 0, 2); + s = scheme_symbol_name_and_size(obj, (uintptr_t *)&l, + ((pp->can_read_pipe_quote + ? SCHEME_SNF_PIPE_QUOTE + : SCHEME_SNF_NO_PIPE_QUOTE) + | (pp->case_sens + ? 0 + : SCHEME_SNF_NEED_CASE) + | (is_kw + ? SCHEME_SNF_KEYWORD + : 0))); + print_utf8_string(pp, s, 0, l); } else { if (is_kw) print_utf8_string(pp, "#:", 0, 2); @@ -1976,7 +1921,6 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, } } else { if (notdisplay) { - always_scheme(pp, 0); print_utf8_string(pp, "#", 0, 1); } print_byte_string(SCHEME_BYTE_STR_VAL(obj), @@ -2012,14 +1956,6 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, print_compact(pp, CPT_CHAR); cv = SCHEME_CHAR_VAL(obj); print_compact_number(pp, cv); - } else if (notdisplay && pp->honu_mode) { - /* Honu char */ - char s[MAX_UTF8_CHAR_BYTES]; - mzchar us[1]; - int l; - us[0] = SCHEME_CHAR_VAL(obj); - l = scheme_utf8_encode(us, 0, 1, (unsigned char *)s, 0, 0); - print_char_string(s, l, us, 0, 1, notdisplay, 1, pp); } else print_char(obj, notdisplay, pp); } @@ -2051,8 +1987,6 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, print_escaped(pp, notdisplay, obj, ht, mt, 1); closed = 1; } else { - if (SCHEME_COMPLEXP(obj)) - always_scheme(pp, 0); print_utf8_string(pp, scheme_number_to_string(10, obj), 0, -1); } } @@ -2062,10 +1996,7 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, print_compact(pp, CPT_NULL); } else { notdisplay = to_quoted(NULL, pp, notdisplay); - if (pp->honu_mode) - print_utf8_string(pp, "null", 0, 4); - else - print_utf8_string(pp, "()", 0, 2); + print_utf8_string(pp, "()", 0, 2); closed = 1; } } @@ -2097,7 +2028,6 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, if (compact) print_compact(pp, CPT_BOX); else { - always_scheme(pp, 1); notdisplay = to_quoted(obj, pp, notdisplay); if (notdisplay == 3) print_utf8_string(pp, "(box ", 0, 5); @@ -2136,7 +2066,6 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, else print_compact_number(pp, 0); } else { - always_scheme(pp, 1); notdisplay = to_quoted(obj, pp, notdisplay); if (notdisplay == 3) print_utf8_string(pp, "(hash ", 0, 6); @@ -2236,8 +2165,6 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, { if (compact) print_compact(pp, CPT_TRUE); - else if (pp->honu_mode) - print_utf8_string(pp, "true", 0, 4); else if (pp->print_long_bools) print_utf8_string(pp, "#true", 0, 5); else @@ -2247,8 +2174,6 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, { if (compact) print_compact(pp, CPT_FALSE); - else if (pp->honu_mode) - print_utf8_string(pp, "false", 0, 5); else if (pp->print_long_bools) print_utf8_string(pp, "#false", 0, 6); else @@ -2716,7 +2641,7 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, char *str; print_utf8_string(pp, " ", 0, 1); str = print_to_string(scheme_syntax_to_datum((Scheme_Object *)stx, 0, NULL), - &slen, 1, NULL, pp->print_syntax, 0, NULL); + &slen, 1, NULL, pp->print_syntax, NULL); print_utf8_string(pp, str, 0, slen); } print_utf8_string(pp, ">", 0, 1); @@ -3189,22 +3114,19 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht, closed = 1; } - if (save_honu_mode != pp->honu_mode) - pp->honu_mode = save_honu_mode; - return (closed || compact); } static void print_char_string(const char *str, int len, const mzchar *ustr, int delta, int ulen, - int notdisplay, int honu_char, PrintParams *pp) + int notdisplay, PrintParams *pp) { char minibuf[12], *esc; int a, i, v, ui, cont_utf8 = 0, isize; if (notdisplay) { - print_utf8_string(pp, honu_char ? "'" : "\"", 0, 1); + print_utf8_string(pp, "\"", 0, 1); for (a = i = ui = 0; i < len; i += isize, ui++) { v = ((unsigned char *)str)[i]; @@ -3212,16 +3134,7 @@ print_char_string(const char *str, int len, switch (v) { case '\"': - if (honu_char) - esc = NULL; - else - esc = "\\\""; - break; - case '\'': - if (honu_char) - esc = "\\'"; - else - esc = NULL; + esc = "\\\""; break; case '\\': esc = "\\\\"; break; case '\a': esc = "\\a"; break; @@ -3276,7 +3189,7 @@ print_char_string(const char *str, int len, if (a < i) print_utf8_string(pp, str, a, i-a); - print_utf8_string(pp, honu_char ? "'" : "\"", 0, 1); + print_utf8_string(pp, "\"", 0, 1); } else if (len) { print_utf8_string(pp, str, 0, len); } @@ -3440,57 +3353,6 @@ print_pair(Scheme_Object *pair, int notdisplay, int compact, super_compact = -1; } } - } else if (pp->honu_mode) { - /* Honu list printing */ - cdr = SCHEME_CDR(pair); - while (SAME_TYPE(SCHEME_TYPE(cdr), pair_type)) { - if (ht) { - if (is_graph_point(ht, cdr)) { - /* This needs a tag */ - break; - } - } - cdr = SCHEME_CDR(cdr); - } - if (SCHEME_NULLP(cdr)) { - /* Proper list without sharing. */ - print_utf8_string(pp, "list(", 0, 5); - (void)print(SCHEME_CAR(pair), notdisplay, compact, ht, mt, pp); - cdr = SCHEME_CDR(pair); - while (SAME_TYPE(SCHEME_TYPE(cdr), pair_type)) { - print_utf8_string(pp, ", ", 0, 2); - (void)print(SCHEME_CAR(cdr), notdisplay, compact, ht, mt, pp); - cdr = SCHEME_CDR(cdr); - } - print_utf8_string(pp, ")", 0, 1); - } else { - /* Use cons cells. */ - int cnt = 1; - print_utf8_string(pp, "cons(", 0, 5); - (void)print(SCHEME_CAR(pair), notdisplay, compact, ht, mt, pp); - cdr = SCHEME_CDR(pair); - while (SAME_TYPE(SCHEME_TYPE(cdr), pair_type)) { - print_utf8_string(pp, ", ", 0, 2); - if (ht) { - if (is_graph_point(ht, cdr)) { - /* This needs a tag */ - (void)print(cdr, notdisplay, compact, ht, mt, pp); - break; - } - } - - print_utf8_string(pp, "cons(", 0, 5); - (void)print(SCHEME_CAR(cdr), notdisplay, compact, ht, mt, pp); - cnt++; - cdr = SCHEME_CDR(cdr); - } - print_utf8_string(pp, ", ", 0, 2); - (void)print(cdr, notdisplay, compact, ht, mt, pp); - while (cnt--) { - print_utf8_string(pp, ")", 0, 1); - } - } - return; } if (compact) { @@ -3607,19 +3469,14 @@ print_vector(Scheme_Object *vec, int notdisplay, int compact, print_utf8_string(pp, "#s(", 0, 3); } else if (notdisplay && pp->print_vec_shorthand && (notdisplay != 3)) { if (size == 0) { - if (pp->honu_mode) - print_utf8_string(pp, "vectorN(0", 0, 7); - else - print_utf8_string(pp, "#0(", 0, 3); + print_utf8_string(pp, "#0(", 0, 3); } else { char buffer[100]; - sprintf(buffer, pp->honu_mode ? "vectorN(%d, " : "#%d(", size); + sprintf(buffer, "#%d(", size); print_utf8_string(pp, buffer, 0, -1); size -= common; } - } else if (pp->honu_mode) - print_utf8_string(pp, "vector(", 0, 7); - else if (notdisplay == 3) + } else if (notdisplay == 3) print_utf8_string(pp, "(vector ", 0, 8); else print_utf8_string(pp, "#(", 0, 2); @@ -3632,12 +3489,8 @@ print_vector(Scheme_Object *vec, int notdisplay, int compact, elem = scheme_chaperone_vector_ref(vec, i); print(elem, notdisplay, compact, ht, mt, pp); if (i < (size - 1)) { - if (!compact) { - if (pp->honu_mode) - print_utf8_string(pp, ", ", 0, 2); - else - print_utf8_string(pp, " ", 0, 1); - } + if (!compact) + print_utf8_string(pp, " ", 0, 1); } } diff --git a/src/racket/src/read.c b/src/racket/src/read.c index 20d0b4d43c..37360ae346 100644 --- a/src/racket/src/read.c +++ b/src/racket/src/read.c @@ -79,15 +79,6 @@ ROSYM static Scheme_Object *paren_shape_symbol; ROSYM static Scheme_Object *terminating_macro_symbol; ROSYM static Scheme_Object *non_terminating_macro_symbol; ROSYM static Scheme_Object *dispatch_macro_symbol; -ROSYM static Scheme_Object *honu_comma; -ROSYM static Scheme_Object *honu_semicolon; -ROSYM static Scheme_Object *honu_parens; -ROSYM static Scheme_Object *honu_braces; -ROSYM static Scheme_Object *honu_brackets; -ROSYM static Scheme_Object *honu_angles; -/* For matching angle brackets in Honu mode: */ -ROSYM static Scheme_Object *honu_angle_open; -ROSYM static Scheme_Object *honu_angle_close; /* For recoginizing unresolved hash tables and commented-out graph introductions: */ ROSYM static Scheme_Object *unresolved_uninterned_symbol; ROSYM static Scheme_Object *tainted_uninterned_symbol; @@ -117,14 +108,11 @@ static Scheme_Object *print_hash_table(int, Scheme_Object *[]); static Scheme_Object *print_unreadable(int, Scheme_Object *[]); static Scheme_Object *print_pair_curly(int, Scheme_Object *[]); static Scheme_Object *print_mpair_curly(int, Scheme_Object *[]); -static Scheme_Object *print_honu(int, Scheme_Object *[]); static Scheme_Object *print_syntax_width(int, Scheme_Object *[]); static Scheme_Object *print_reader(int, Scheme_Object *[]); static Scheme_Object *print_as_qq(int, Scheme_Object *[]); static Scheme_Object *print_long_bool(int, Scheme_Object *[]); -static int scheme_ellipses(mzchar* buffer, int length); - #define NOT_EOF_OR_SPECIAL(x) ((x) >= 0) #define mzSPAN(port, pos) () @@ -139,7 +127,6 @@ static int scheme_ellipses(mzchar* buffer, int length); #define RETURN_FOR_HASH_COMMENT 0x2 #define RETURN_FOR_DELIM 0x4 #define RETURN_FOR_COMMENT 0x8 -#define RETURN_HONU_ANGLE 0x10 static MZ_INLINE intptr_t SPAN(Scheme_Object *port, intptr_t pos) { intptr_t cpos; @@ -179,7 +166,6 @@ typedef struct ReadParams { char can_read_dot; char can_read_infix_dot; char can_read_quasi; - char honu_mode; char skip_zo_vers_check; Readtable *table; Scheme_Object *magic_sym, *magic_val; @@ -198,7 +184,7 @@ static Scheme_Object *read_list(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table **ht, Scheme_Object *indentation, ReadParams *params); -static Scheme_Object *read_string(int is_byte, int is_honu_char, +static Scheme_Object *read_string(int is_byte, Scheme_Object *port, Scheme_Object *stxsrc, intptr_t line, intptr_t col, intptr_t pos, Scheme_Hash_Table **ht, @@ -340,7 +326,6 @@ typedef struct { char closer; /* expected close parent, bracket, etc. */ char suspicious_closer; /* expected closer when suspicious line found */ char multiline; /* set to 1 if the match attempt spans a line */ - char quote_for_char; /* 1 => suspicious_quote refers to Honu char */ intptr_t start_line; /* opener's line */ intptr_t last_line; /* current line, already checked the identation */ intptr_t suspicious_line; /* non-0 => first suspicious line since opener */ @@ -352,11 +337,6 @@ typedef struct { } Scheme_Indent; #define SCHEME_OK 0x1 -#define HONU_OK 0x2 -#define HONU_SYM_OK 0x4 -#define HONU_NUM_OK 0x8 -#define HONU_INUM_OK 0x10 -#define HONU_INUM_SIGN_OK 0x20 #define is_lang_nonsep_char(ch) (scheme_isalpha(ch) \ || scheme_isdigit(ch) \ @@ -462,36 +442,11 @@ void scheme_init_read(Scheme_Env *env) cpt_branch[CPT_SMALL_APPLICATION3] = CPT_SMALL_APPLICATION3; } - REGISTER_SO(honu_comma); - REGISTER_SO(honu_semicolon); - REGISTER_SO(honu_parens); - REGISTER_SO(honu_braces); - REGISTER_SO(honu_brackets); - REGISTER_SO(honu_angles); - REGISTER_SO(honu_angle_open); - REGISTER_SO(honu_angle_close); - - honu_comma = scheme_intern_symbol(","); - honu_semicolon = scheme_intern_symbol(";"); - honu_parens = scheme_intern_symbol("#%parens"); - honu_braces = scheme_intern_symbol("#%braces"); - honu_brackets = scheme_intern_symbol("#%brackets"); - honu_angles = scheme_intern_symbol("#%angles"); - honu_angle_open = scheme_make_symbol("<"); /* uninterned */ - honu_angle_close = scheme_make_symbol(">"); /* uninterned */ - { int i; for (i = 0; i < 128; i++) { delim[i] = SCHEME_OK; } - for (i = 'A'; i <= 'Z'; i++) { - delim[i] |= HONU_OK; - delim[i + ('a'-'A')] |= HONU_OK; - } - for (i = '0'; i <= '9'; i++) { - delim[i] |= (HONU_OK | HONU_NUM_OK); - } delim['('] -= SCHEME_OK; delim[')'] -= SCHEME_OK; delim['['] -= SCHEME_OK; @@ -503,22 +458,6 @@ void scheme_init_read(Scheme_Env *env) delim[','] -= SCHEME_OK; delim[';'] -= SCHEME_OK; delim['`'] -= SCHEME_OK; - delim['_'] |= HONU_OK; - { - GC_CAN_IGNORE const char *syms = "+-=?:<>.!%^&*/~|"; - for (i = 0; syms[i]; i++) { - delim[(int)syms[i]] |= HONU_SYM_OK; - } - } - delim['.'] |= HONU_NUM_OK; - delim['e'] |= HONU_INUM_OK; - delim['E'] |= HONU_INUM_OK; - delim['d'] |= HONU_INUM_OK; - delim['D'] |= HONU_INUM_OK; - delim['f'] |= HONU_INUM_OK; - delim['F'] |= HONU_INUM_OK; - delim['+'] |= HONU_INUM_SIGN_OK; - delim['-'] |= HONU_INUM_SIGN_OK; } #ifdef MZ_PRECISE_GC @@ -551,7 +490,6 @@ void scheme_init_read(Scheme_Env *env) GLOBAL_PARAMETER("print-unreadable", print_unreadable, MZCONFIG_PRINT_UNREADABLE, env); GLOBAL_PARAMETER("print-pair-curly-braces", print_pair_curly, MZCONFIG_PRINT_PAIR_CURLY, env); GLOBAL_PARAMETER("print-mpair-curly-braces", print_mpair_curly, MZCONFIG_PRINT_MPAIR_CURLY, env); - GLOBAL_PARAMETER("print-honu", print_honu, MZCONFIG_HONU_MODE, env); GLOBAL_PARAMETER("print-syntax-width", print_syntax_width, MZCONFIG_PRINT_SYNTAX_WIDTH, env); GLOBAL_PARAMETER("print-reader-abbreviations", print_reader, MZCONFIG_PRINT_READER, env); GLOBAL_PARAMETER("print-boolean-long-form", print_long_bool, MZCONFIG_PRINT_LONG_BOOLEAN, env); @@ -773,12 +711,6 @@ print_mpair_curly(int argc, Scheme_Object *argv[]) DO_CHAR_PARAM("print-mpair-curly", MZCONFIG_PRINT_MPAIR_CURLY); } -static Scheme_Object * -print_honu(int argc, Scheme_Object *argv[]) -{ - DO_CHAR_PARAM("print-honu", MZCONFIG_HONU_MODE); -} - static Scheme_Object * print_reader(int argc, Scheme_Object *argv[]) { @@ -957,8 +889,6 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * break; } - start_over_with_ch: - scheme_tell_all(port, &line, &col, &pos); /* Found non-whitespace. Track indentation: */ @@ -1051,29 +981,17 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * special_value = read_symbol(ch, 1, port, stxsrc, line, col, pos, ht, indentation, params, table); break; case '"': - return read_string(0, 0, port, stxsrc, line, col, pos, ht, indentation, params, 1); + return read_string(0, port, stxsrc, line, col, pos, ht, indentation, params, 1); case '\'': - if (params->honu_mode) { - return read_string(0, 1, port, stxsrc, line, col, pos, ht, indentation, params, 1); - } else { - return read_quote("quoting '", quote_symbol, 1, port, stxsrc, line, col, pos, ht, indentation, params); - } + return read_quote("quoting '", quote_symbol, 1, port, stxsrc, line, col, pos, ht, indentation, params); case '`': - if (params->honu_mode) { - /* Raises illegal-char error: */ - return read_symbol(ch, 1, port, stxsrc, line, col, pos, ht, indentation, params, table); - } else if (!params->can_read_quasi) { + if (!params->can_read_quasi) { scheme_read_err(port, stxsrc, line, col, pos, 1, 0, indentation, "read: illegal use of backquote"); return NULL; } else return read_quote("quasiquoting `", quasiquote_symbol, 1, port, stxsrc, line, col, pos, ht, indentation, params); case ',': - if (params->honu_mode) { - if (stxsrc) - return scheme_make_stx_w_offset(honu_comma, line, col, pos, SPAN(port, pos), stxsrc, STX_SRCTAG); - else - return honu_comma; - } else if (!params->can_read_quasi) { + if (!params->can_read_quasi) { scheme_read_err(port, stxsrc, line, col, pos, 1, 0, indentation, "read: illegal use of comma"); return NULL; } else { @@ -1084,12 +1002,7 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * return read_quote("unquoting ,", unquote_symbol, 1, port, stxsrc, line, col, pos, ht, indentation, params); } case ';': - if (params->honu_mode) { - if (stxsrc) - return scheme_make_stx_w_offset(honu_semicolon, line, col, pos, SPAN(port, pos), stxsrc, STX_SRCTAG); - else - return honu_semicolon; - } else { + { while (((ch = scheme_getc_special_ok(port)) != '\n') && !is_line_comment_end(ch)) { if (ch == EOF) { @@ -1109,16 +1022,11 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * } case '+': case '-': - if (params->honu_mode) { - special_value = read_symbol(ch, 1, port, stxsrc, line, col, pos, ht, indentation, params, table); - break; - } case '.': /* ^^^ fallthrough ^^^ */ ch2 = scheme_peekc_special_ok(port); if ((NOT_EOF_OR_SPECIAL(ch2) && isdigit_ascii(ch2)) || (ch2 == '.') - || (!params->honu_mode - && ((ch2 == 'i') || (ch2 == 'I') /* Maybe inf */ - || (ch2 == 'n') || (ch2 == 'N') /* Maybe nan*/ ))) { + || ((ch2 == 'i') || (ch2 == 'I') /* Maybe inf */ + || (ch2 == 'n') || (ch2 == 'N') /* Maybe nan*/ )) { /* read_number tries to get a number, but produces a symbol if number parsing doesn't work: */ special_value = read_number(ch, port, stxsrc, line, col, pos, 0, 0, 10, 0, ht, indentation, params, table); } else { @@ -1180,41 +1088,30 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * } break; case '%': - if (!params->honu_mode) { - scheme_ungetc('%', port); - special_value = read_symbol('#', 1, port, stxsrc, line, col, pos, ht, indentation, params, table); - } + scheme_ungetc('%', port); + special_value = read_symbol('#', 1, port, stxsrc, line, col, pos, ht, indentation, params, table); break; case ':': - if (!params->honu_mode) { - return read_keyword(-1, port, stxsrc, line, col, pos, ht, indentation, params, table); - } + return read_keyword(-1, port, stxsrc, line, col, pos, ht, indentation, params, table); break; case '(': - if (!params->honu_mode) { - return read_vector(port, stxsrc, line, col, pos, ch, ')', -1, NULL, ht, indentation, params, 0); - } + return read_vector(port, stxsrc, line, col, pos, ch, ')', -1, NULL, ht, indentation, params, 0); break; case '[': - if (!params->honu_mode) { - if (!params->square_brackets_are_parens) { - scheme_read_err(port, stxsrc, line, col, pos, 2, 0, indentation, "read: bad syntax `#['"); - return NULL; - } else - return read_vector(port, stxsrc, line, col, pos, ch, ']', -1, NULL, ht, indentation, params, 0); - } + if (!params->square_brackets_are_parens) { + scheme_read_err(port, stxsrc, line, col, pos, 2, 0, indentation, "read: bad syntax `#['"); + return NULL; + } else + return read_vector(port, stxsrc, line, col, pos, ch, ']', -1, NULL, ht, indentation, params, 0); break; case '{': - if (!params->honu_mode) { - if (!params->curly_braces_are_parens) { - scheme_read_err(port, stxsrc, line, col, pos, 2, 0, indentation, "read: bad syntax `#{'"); - return NULL; - } else - return read_vector(port, stxsrc, line, col, pos, ch, '}', -1, NULL, ht, indentation, params, 0); - } - break; + if (!params->curly_braces_are_parens) { + scheme_read_err(port, stxsrc, line, col, pos, 2, 0, indentation, "read: bad syntax `#{'"); + return NULL; + } else + return read_vector(port, stxsrc, line, col, pos, ch, '}', -1, NULL, ht, indentation, params, 0); case '\\': - if (!params->honu_mode) { + { Scheme_Object *chr; chr = read_character(port, stxsrc, line, col, pos, ht, indentation, params); if (stxsrc) @@ -1224,35 +1121,31 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * break; case 'T': case 't': - if (!params->honu_mode) { - if (next_is_delim(port, params, 1, 1)) { - /* found delimited `#t' */ - return (stxsrc - ? scheme_make_stx_w_offset(scheme_true, line, col, pos, 2, stxsrc, STX_SRCTAG) - : scheme_true); - } else { - GC_CAN_IGNORE const mzchar str[] = { 't', 'r', 'u', 'e', 0 }; - return read_delimited_constant(ch, str, scheme_true, port, stxsrc, line, col, pos, - indentation, params, table); - } + if (next_is_delim(port, params, 1, 1)) { + /* found delimited `#t' */ + return (stxsrc + ? scheme_make_stx_w_offset(scheme_true, line, col, pos, 2, stxsrc, STX_SRCTAG) + : scheme_true); + } else { + GC_CAN_IGNORE const mzchar str[] = { 't', 'r', 'u', 'e', 0 }; + return read_delimited_constant(ch, str, scheme_true, port, stxsrc, line, col, pos, + indentation, params, table); } case 'F': case 'f': - if (!params->honu_mode) { - if (next_is_delim(port, params, 1, 1)) { - /* found delimited `#f' */ - return (stxsrc - ? scheme_make_stx_w_offset(scheme_false, line, col, pos, 2, stxsrc, STX_SRCTAG) - : scheme_false); - } else { - GC_CAN_IGNORE const mzchar str[] = { 'f', 'a', 'l', 's', 'e', 0 }; - return read_delimited_constant(ch, str, scheme_false, port, stxsrc, line, col, pos, - indentation, params, table); - } + if (next_is_delim(port, params, 1, 1)) { + /* found delimited `#f' */ + return (stxsrc + ? scheme_make_stx_w_offset(scheme_false, line, col, pos, 2, stxsrc, STX_SRCTAG) + : scheme_false); + } else { + GC_CAN_IGNORE const mzchar str[] = { 'f', 'a', 'l', 's', 'e', 0 }; + return read_delimited_constant(ch, str, scheme_false, port, stxsrc, line, col, pos, + indentation, params, table); } case 'c': case 'C': - if (!params->honu_mode) { + { Scheme_Object *v; int sens = 0; int save_sens; @@ -1348,22 +1241,6 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * if (stxsrc) v = scheme_make_stx_w_offset(v, line, col, pos, SPAN(port, pos), stxsrc, STX_SRCTAG); - return v; - } else if ((ch == 'x') || (ch == 'X')) { - ReadParams params_copy; - Scheme_Object *v; - - memcpy(¶ms_copy, params, sizeof(ReadParams)); - params_copy.honu_mode = 0; - - v = read_inner(port, stxsrc, ht, indentation, ¶ms_copy, 0); - - if (SCHEME_EOFP(v)) { - scheme_read_err(port, stxsrc, line, col, pos, 2, EOF, indentation, - "read: end-of-file after #sx"); - return NULL; - } - return v; } else { scheme_read_err(port, stxsrc, line, col, pos, SPAN(port, pos), ch, indentation, @@ -1375,73 +1252,53 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * } case 'X': case 'x': - if (!params->honu_mode) { - return read_number(-1, port, stxsrc, line, col, pos, 0, 0, 16, 1, ht, indentation, params, table); - } + return read_number(-1, port, stxsrc, line, col, pos, 0, 0, 16, 1, ht, indentation, params, table); break; case 'B': case 'b': - if (!params->honu_mode) { - return read_number(-1, port, stxsrc, line, col, pos, 0, 0, 2, 1, ht, indentation, params, table); - } + return read_number(-1, port, stxsrc, line, col, pos, 0, 0, 2, 1, ht, indentation, params, table); break; case 'O': case 'o': - if (!params->honu_mode) { - return read_number(-1, port, stxsrc, line, col, pos, 0, 0, 8, 1, ht, indentation, params, table); - } + return read_number(-1, port, stxsrc, line, col, pos, 0, 0, 8, 1, ht, indentation, params, table); break; case 'D': case 'd': - if (!params->honu_mode) { - return read_number(-1, port, stxsrc, line, col, pos, 0, 0, 10, 1, ht, indentation, params, table); - } + return read_number(-1, port, stxsrc, line, col, pos, 0, 0, 10, 1, ht, indentation, params, table); break; case 'E': case 'e': - if (!params->honu_mode) { - return read_number(-1, port, stxsrc, line, col, pos, 0, 1, 10, 0, ht, indentation, params, table); - } + return read_number(-1, port, stxsrc, line, col, pos, 0, 1, 10, 0, ht, indentation, params, table); break; case 'I': case 'i': - if (!params->honu_mode) { - return read_number(-1, port, stxsrc, line, col, pos, 1, 0, 10, 0, ht, indentation, params, table); - } + return read_number(-1, port, stxsrc, line, col, pos, 1, 0, 10, 0, ht, indentation, params, table); break; case '\'': - if (!params->honu_mode) { - return read_quote("quoting #'", syntax_symbol, 2, port, stxsrc, line, col, pos, ht, indentation, params); - } + return read_quote("quoting #'", syntax_symbol, 2, port, stxsrc, line, col, pos, ht, indentation, params); break; case '`': - if (!params->honu_mode) { - return read_quote("quasiquoting #`", quasisyntax_symbol, 2, port, stxsrc, line, col, pos, ht, indentation, params); - } + return read_quote("quasiquoting #`", quasisyntax_symbol, 2, port, stxsrc, line, col, pos, ht, indentation, params); break; case ',': - if (!params->honu_mode) { - if (scheme_peekc_special_ok(port) == '@') { - ch = scheme_getc(port); /* must be '@' */ - return read_quote("unquoting #`@", unsyntax_splicing_symbol, 3, port, stxsrc, line, col, pos, ht, indentation, params); - } else - return read_quote("unquoting #`", unsyntax_symbol, 2, port, stxsrc, line, col, pos, ht, indentation, params); - } + if (scheme_peekc_special_ok(port) == '@') { + ch = scheme_getc(port); /* must be '@' */ + return read_quote("unquoting #`@", unsyntax_splicing_symbol, 3, port, stxsrc, line, col, pos, ht, indentation, params); + } else + return read_quote("unquoting #`", unsyntax_symbol, 2, port, stxsrc, line, col, pos, ht, indentation, params); break; case '~': - if (!params->honu_mode) { - if (params->can_read_compiled) { - Scheme_Object *cpld; - cpld = read_compiled(port, stxsrc, line, col, pos, ht, params); - if (stxsrc) - cpld = scheme_make_stx_w_offset(cpld, line, col, pos, SPAN(port, pos), stxsrc, STX_SRCTAG); - return cpld; - } else { - scheme_read_err(port, stxsrc, line, col, pos, 2, 0, indentation, - "read: #~ compiled expressions" NOT_ENABLED_str); - return NULL; - } - } + if (params->can_read_compiled) { + Scheme_Object *cpld; + cpld = read_compiled(port, stxsrc, line, col, pos, ht, params); + if (stxsrc) + cpld = scheme_make_stx_w_offset(cpld, line, col, pos, SPAN(port, pos), stxsrc, STX_SRCTAG); + return cpld; + } else { + scheme_read_err(port, stxsrc, line, col, pos, 2, 0, indentation, + "read: #~ compiled expressions" NOT_ENABLED_str); + return NULL; + } break; case '^': if (params->read_relative_path) { @@ -1454,7 +1311,7 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * scheme_tell_all(port, &sline, &scol, &spos); - str = read_string(1, 0, port, stxsrc, sline, scol, spos, ht, indentation, params, 1); + str = read_string(1, port, stxsrc, sline, scol, spos, ht, indentation, params, 1); str->type = SCHEME_PLATFORM_PATH_KIND; @@ -1481,7 +1338,7 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * } break; case '|': - if (!params->honu_mode) { + { /* FIXME: integer overflow possible */ depth = 0; ch2 = 0; @@ -1511,15 +1368,13 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * } break; case '&': - if (!params->honu_mode) { - if (params->can_read_box) - return read_box(port, stxsrc, line, col, pos, ht, indentation, params); - else { - scheme_read_err(port, stxsrc, line, col, pos, 2, 0, indentation, - "read: #& expressions" NOT_ENABLED_str); - return NULL; - } - } + if (params->can_read_box) + return read_box(port, stxsrc, line, col, pos, ht, indentation, params); + else { + scheme_read_err(port, stxsrc, line, col, pos, 2, 0, indentation, + "read: #& expressions" NOT_ENABLED_str); + return NULL; + } break; case 'l': { @@ -1573,7 +1428,7 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * break; case 'r': case 'p': - if (!params->honu_mode) { + { int orig_ch = ch; int cnt = 0, is_byte = 0; char *expect; @@ -1596,7 +1451,7 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * /* Skip #rx[#]: */ scheme_tell_all(port, &sline, &scol, &spos); - str = read_string(is_byte, 0, port, stxsrc, sline, scol, spos, ht, indentation, params, 1); + str = read_string(is_byte, port, stxsrc, sline, scol, spos, ht, indentation, params, 1); if (stxsrc) str = SCHEME_STX_VAL(str); @@ -1667,47 +1522,11 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * break; case 'h': { - int honu = 0; - ch = scheme_getc_special_ok(port); - switch ( ch ) { - case 'a': - honu = 0; - break; - case 'x': - honu = 1; - break; - default: - if (!params->honu_mode) { - scheme_read_err(port, stxsrc, line, col, pos, 2, ch, indentation, - "read: expected `a' or `x' after #h"); - return NULL; - } - honu = 0; - break; - } - - if (params->honu_mode && (honu != 1)) { - scheme_read_err(port, stxsrc, line, col, pos, 2, ch, indentation, - "read: expected `x' after #h"); - return NULL; - } - - if (honu) { - ReadParams params_copy; - Scheme_Object *v; - - memcpy(¶ms_copy, params, sizeof(ReadParams)); - params_copy.honu_mode = 1; - - v = read_inner(port, stxsrc, ht, indentation, ¶ms_copy, 0); - if (SCHEME_EOFP(v)) { - scheme_read_err(port, stxsrc, line, col, pos, 2, EOF, indentation, - "read: end-of-file after #hx"); - return NULL; - } - - return v; + if (ch != 'a') { + scheme_read_err(port, stxsrc, line, col, pos, 2, ch, indentation, + "read: expected `a' after #h"); + return NULL; } else { GC_CAN_IGNORE const mzchar str[] = { 's', 'h', 'e', 'q', 'v', 0 }; int scanpos = 0, failed = 0; @@ -1777,21 +1596,17 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * } break; case '"': - if (!params->honu_mode) { - return read_string(1, 0, port, stxsrc, line, col, pos, ht, indentation, params, 1); - } + return read_string(1, port, stxsrc, line, col, pos, ht, indentation, params, 1); break; case '<': - if (!params->honu_mode) { - if (scheme_peekc_special_ok(port) == '<') { - /* Here-string */ - ch = scheme_getc_special_ok(port); - return read_here_string(port, stxsrc, line, col, pos,indentation, params); - } else { - scheme_read_err(port, stxsrc, line, col, pos, 2, 0, indentation, "read: bad syntax `#<'"); - return NULL; - } - } + if (scheme_peekc_special_ok(port) == '<') { + /* Here-string */ + ch = scheme_getc_special_ok(port); + return read_here_string(port, stxsrc, line, col, pos,indentation, params); + } else { + scheme_read_err(port, stxsrc, line, col, pos, 2, 0, indentation, "read: bad syntax `#<'"); + return NULL; + } break; case '!': ch = scheme_getc_special_ok(port); @@ -1846,7 +1661,7 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * } break; default: - if (!params->honu_mode) { + { int vector_length = -1; int i = 0, j = 0, overflow = 0, digits = 0, effective_ch; mzchar tagbuf[64], vecbuf[64]; /* just for errors */ @@ -2007,48 +1822,6 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table * } break; } - if (!special_value) { - /* We get here only in honu mode */ - scheme_read_err(port, stxsrc, line, col, pos, 2, ch, indentation, - "read: bad syntax `#%c'", - ch); - return NULL; - } - break; - case '/': - if (params->honu_mode) { - int ch2; - ch2 = scheme_peekc_special_ok(port); - if ((ch2 == '/') || (ch2 == '*')) { - /* Comment */ - scheme_ungetc('/', port); - ch = skip_whitespace_comments(port, stxsrc, ht, indentation, params); - goto start_over_with_ch; - } - } - special_value = read_symbol(ch, 0, port, stxsrc, line, col, pos, ht, indentation, params, table); - break; - case '>': - case '<': - if ((params->honu_mode) && (comment_mode & RETURN_HONU_ANGLE)) { - Scheme_Object *v; - v = read_symbol(ch, 0, port, stxsrc, line, col, pos, ht, indentation, params, table); - special_value = v; - if (SCHEME_STXP(v)) - v = SCHEME_STX_VAL(v); - if (SCHEME_SYMBOLP(v) && (SCHEME_SYM_LEN(v) == 1) - && ((SCHEME_SYM_VAL(v)[0] == '>') || (SCHEME_SYM_VAL(v)[0] == '<'))) { - if (SCHEME_SYM_VAL(v)[0] == '<') - v = honu_angle_open; - else - v = honu_angle_close; - if (SCHEME_STXP(special_value)) - special_value = scheme_datum_to_syntax(v, scheme_false, special_value, 0, 1); - else - special_value = v; - } - } else - special_value = read_symbol(ch, 0, port, stxsrc, line, col, pos, ht, indentation, params, table); break; default: if (isdigit_ascii(ch)) @@ -2381,7 +2154,7 @@ static Scheme_Object *resolve_references(Scheme_Object *obj, } static Scheme_Object * -_internal_read(Scheme_Object *port, Scheme_Object *stxsrc, int crc, int cant_fail, int honu_mode, +_internal_read(Scheme_Object *port, Scheme_Object *stxsrc, int crc, int cant_fail, int recur, int expose_comment, int extra_char, Scheme_Object *init_readtable, Scheme_Object *magic_sym, Scheme_Object *magic_val, Scheme_Object *delay_load_info, int get_info) @@ -2439,9 +2212,6 @@ _internal_read(Scheme_Object *port, Scheme_Object *stxsrc, int crc, int cant_fai params.delay_load_info = delay_load_info; else params.delay_load_info = NULL; - params.honu_mode = honu_mode; - if (honu_mode) - params.table = NULL; params.skip_zo_vers_check = cant_fail; params.magic_sym = magic_sym; params.magic_val = magic_val; @@ -2536,14 +2306,14 @@ static void *scheme_internal_read_k(void) magic_sym = SCHEME_CAR(magic_sym); } - return (void *)_internal_read(port, stxsrc, p->ku.k.i1, 0, p->ku.k.i2, + return (void *)_internal_read(port, stxsrc, p->ku.k.i1, 0, p->ku.k.i3 & 0x2, p->ku.k.i3 & 0x1, p->ku.k.i4, init_readtable, magic_sym, magic_val, delay_load_info, 0); } Scheme_Object * -scheme_internal_read(Scheme_Object *port, Scheme_Object *stxsrc, int crc, int cantfail, int honu_mode, +scheme_internal_read(Scheme_Object *port, Scheme_Object *stxsrc, int crc, int cantfail, int recur, int expose_comment, int pre_char, Scheme_Object *init_readtable, Scheme_Object *magic_sym, Scheme_Object *magic_val, Scheme_Object *delay_load_info) @@ -2554,7 +2324,7 @@ scheme_internal_read(Scheme_Object *port, Scheme_Object *stxsrc, int crc, int ca crc = SCHEME_TRUEP(scheme_get_param(scheme_current_config(), MZCONFIG_CAN_READ_COMPILED)); if (cantfail) { - return _internal_read(port, stxsrc, crc, cantfail, honu_mode, recur, expose_comment, -1, NULL, + return _internal_read(port, stxsrc, crc, cantfail, recur, expose_comment, -1, NULL, magic_sym, magic_val, delay_load_info, 0); } else { if (magic_sym) @@ -2563,7 +2333,6 @@ scheme_internal_read(Scheme_Object *port, Scheme_Object *stxsrc, int crc, int ca p->ku.k.p1 = (void *)port; p->ku.k.p2 = (void *)stxsrc; p->ku.k.i1 = crc; - p->ku.k.i2 = honu_mode; p->ku.k.i3 = ((recur ? 0x2 : 0) | (expose_comment ? 0x1 : 0)); p->ku.k.i4 = pre_char; p->ku.k.p3 = (void *)init_readtable; @@ -2576,12 +2345,12 @@ scheme_internal_read(Scheme_Object *port, Scheme_Object *stxsrc, int crc, int ca Scheme_Object *scheme_read(Scheme_Object *port) { - return scheme_internal_read(port, NULL, -1, 0, 0, 0, 0, -1, NULL, NULL, NULL, 0); + return scheme_internal_read(port, NULL, -1, 0, 0, 0, -1, NULL, NULL, NULL, 0); } Scheme_Object *scheme_read_syntax(Scheme_Object *port, Scheme_Object *stxsrc) { - return scheme_internal_read(port, stxsrc, -1, 0, 0, 0, 0, -1, NULL, NULL, NULL, 0); + return scheme_internal_read(port, stxsrc, -1, 0, 0, 0, -1, NULL, NULL, NULL, 0); } Scheme_Object *scheme_resolve_placeholders(Scheme_Object *obj) @@ -2736,8 +2505,6 @@ static const char *dot_name(ReadParams *params) return mapping_name(params, '.', "`.'", 6); } -static Scheme_Object *combine_angle_brackets(Scheme_Object *list); - /* "(" (or other opener) has already been read */ static Scheme_Object * read_list(Scheme_Object *port, @@ -2814,31 +2581,8 @@ read_list(Scheme_Object *port, ch); return NULL; } - - if (params->honu_mode) { - /* Finish up the list */ - if (!list) - list = scheme_null; - if (closer == ')') - car = honu_parens; - else if (closer == ']') - car = honu_brackets; - else if (closer == '}') - car = honu_braces; - else - car = NULL; - if (car) { - if (stxsrc) - car = scheme_make_stx_w_offset(car, line, col, pos, SPAN(port, pos), stxsrc, STX_SRCTAG); - list = scheme_make_pair(car, list); - } - } else { - if (!list) { - list = scheme_null; - } - } + if (!list) list = scheme_null; pop_indentation(indentation); - list = combine_angle_brackets(list); list = (stxsrc ? scheme_make_stx_w_offset(list, line, col, pos, SPAN(port, pos), stxsrc, STX_SRCTAG) : list); @@ -2859,7 +2603,7 @@ read_list(Scheme_Object *port, read ahead. */ scheme_ungetc(ch, port); prefetched = read_inner(port, stxsrc, ht, indentation, params, - RETURN_FOR_SPECIAL_COMMENT | RETURN_HONU_ANGLE); + RETURN_FOR_SPECIAL_COMMENT); if (!prefetched) continue; /* It was a comment; try again. */ @@ -2892,7 +2636,7 @@ read_list(Scheme_Object *port, } else { scheme_ungetc(ch, port); car = read_inner(port, stxsrc, ht, indentation, params, - RETURN_FOR_SPECIAL_COMMENT | RETURN_HONU_ANGLE); + RETURN_FOR_SPECIAL_COMMENT); if (!car) continue; /* special was a comment */ } /* can't be eof, due to check above */ @@ -2904,7 +2648,7 @@ read_list(Scheme_Object *port, ch = skip_whitespace_comments(port, stxsrc, ht, indentation, params); effective_ch = readtable_effective_char(params->table, ch); - if ((effective_ch == closer) && !params->honu_mode) { + if (effective_ch == closer) { if (shape == mz_shape_hash_elem) { scheme_read_err(port, stxsrc, startline, startcol, start, SPAN(port, start), ch, indentation, "read: expected %s and value for hash before `%c'", @@ -2925,15 +2669,12 @@ read_list(Scheme_Object *port, } pop_indentation(indentation); - if (params->honu_mode) - list = combine_angle_brackets(list); list = (stxsrc ? scheme_make_stx_w_offset(list, line, col, pos, SPAN(port, pos), stxsrc, STX_SRCTAG) : list); list = attach_shape_property(list, stxsrc, params, closer); return list; - } else if (!params->honu_mode - && params->can_read_dot + } else if (params->can_read_dot && (effective_ch == '.') && next_is_delim(port, params, brackets, braces)) { int dot_ch = ch; @@ -2952,7 +2693,7 @@ read_list(Scheme_Object *port, return NULL; } /* can't be eof, due to check above: */ - cdr = read_inner(port, stxsrc, ht, indentation, params, RETURN_HONU_ANGLE); + cdr = read_inner(port, stxsrc, ht, indentation, params, 0); ch = skip_whitespace_comments(port, stxsrc, ht, indentation, params); effective_ch = readtable_effective_char(params->table, ch); if ((effective_ch != closer) || (shape == mz_shape_vec_plus_infix)) { @@ -3007,9 +2748,7 @@ read_list(Scheme_Object *port, /* Assert: infixed is NULL (otherwise we raised an exception above) */ pop_indentation(indentation); - if (params->honu_mode) - list = combine_angle_brackets(list); - list = (stxsrc + list = (stxsrc ? scheme_make_stx_w_offset(list, line, col, pos, SPAN(port, pos), stxsrc, STX_SRCTAG) : list); list = attach_shape_property(list, stxsrc, params, closer); @@ -3021,7 +2760,7 @@ read_list(Scheme_Object *port, /* We have to try the read, because it might be a comment. */ scheme_ungetc(ch, port); prefetched = read_inner(port, stxsrc, ht, indentation, params, - RETURN_FOR_SPECIAL_COMMENT | RETURN_HONU_ANGLE); + RETURN_FOR_SPECIAL_COMMENT); if (!prefetched) goto retry_before_dot; } else { @@ -3045,93 +2784,12 @@ read_list(Scheme_Object *port, } } -static Scheme_Object *combine_angle_brackets(Scheme_Object *list) -{ - Scheme_Object *l, *a, *open_stack = NULL, *prev = NULL; - int i, ch; - - for (l = list; !SCHEME_NULLP(l); l = SCHEME_CDR(l)) { - a = SCHEME_CAR(l); - if (SCHEME_STXP(a)) - a = SCHEME_STX_VAL(a); - if (SAME_OBJ(a, honu_angle_open)) { - open_stack = scheme_make_raw_pair(scheme_make_raw_pair(l, prev), - open_stack); - /* Tentatively assume no matching close: */ - a = scheme_intern_symbol("<"); - if (SCHEME_STXP(SCHEME_CAR(l))) - a = scheme_datum_to_syntax(a, scheme_false, SCHEME_CAR(l), 0, 1); - SCHEME_CAR(l) = a; - } else if (SAME_OBJ(a, honu_angle_close)) { - if (open_stack) { - /* A matching close --- combine the angle brackets! */ - Scheme_Object *open, *open_prev; - Scheme_Object *naya, *ang, *seq; - open = SCHEME_CAR(open_stack); - open_prev = SCHEME_CDR(open); - open = SCHEME_CAR(open); - open_stack = SCHEME_CDR(open_stack); - ang = honu_angles; - if (SCHEME_STXP(SCHEME_CAR(l))) { - Scheme_Stx *o, *c; - int span; - o = (Scheme_Stx *)SCHEME_CAR(open); - c = (Scheme_Stx *)SCHEME_CAR(l); - if ((o->srcloc->pos >= 0) && (c->srcloc->pos >= 0)) - span = (c->srcloc->pos - o->srcloc->pos) + c->srcloc->span; - else - span = -1; - ang = scheme_make_stx_w_offset(ang, - o->srcloc->line, - o->srcloc->col, - o->srcloc->pos, - span, - o->srcloc->src, - STX_SRCTAG); - } - seq = scheme_make_pair(ang, SCHEME_CDR(open)); - SCHEME_CDR(prev) = scheme_null; - if (SCHEME_STXP(ang)) { - seq = scheme_datum_to_syntax(seq, scheme_false, ang, 0, 1); - } - naya = scheme_make_pair(seq, SCHEME_CDR(l)); - if (open_prev) { - SCHEME_CDR(open_prev) = naya; - } else { - list = naya; - } - l = naya; - } else { - /* Not a matching close: */ - a = scheme_intern_symbol(">"); - if (SCHEME_STXP(SCHEME_CAR(l))) - a = scheme_datum_to_syntax(a, scheme_false, SCHEME_CAR(l), 0, 1); - SCHEME_CAR(l) = a; - } - } else if (open_stack && SCHEME_SYMBOLP(a)) { - /* Check for ids containing -, |, or &, which have lower - operator precedence than < and >, and which therefore break up - angle brackets. */ - for (i = SCHEME_SYM_LEN(a); i--; ) { - ch = SCHEME_SYM_VAL(a)[i]; - if ((ch == '=') || (ch == '|') || (ch == '&')) { - open_stack = NULL; - break; - } - } - } - prev = l; - } - - return list; -} - static Scheme_Object *attach_shape_property(Scheme_Object *list, Scheme_Object *stxsrc, ReadParams *params, int closer) { - if ((closer != ')') && stxsrc && !params->honu_mode) { + if ((closer != ')') && stxsrc) { Scheme_Object *opener; opener = ((closer == '}') ? scheme_make_ascii_character('{') @@ -3147,14 +2805,14 @@ static Scheme_Object *attach_shape_property(Scheme_Object *list, /* '"' has already been read */ static Scheme_Object * -read_string(int is_byte, int is_honu_char, Scheme_Object *port, +read_string(int is_byte, Scheme_Object *port, Scheme_Object *stxsrc, intptr_t line, intptr_t col, intptr_t pos, Scheme_Hash_Table **ht, Scheme_Object *indentation, ReadParams *params, int err_ok) { mzchar *buf, *oldbuf, onstack[32]; - int i, j, n, n1, ch, closer = (is_honu_char ? '\'' : '"'); + int i, j, n, n1, ch, closer = '"'; intptr_t size = 31, oldsize, in_pos, init_span; Scheme_Object *result; @@ -3164,11 +2822,11 @@ read_string(int is_byte, int is_honu_char, Scheme_Object *port, i = 0; buf = onstack; while ((ch = scheme_getc_special_ok(port)) != closer) { - if ((ch == EOF) || (is_honu_char && (i > 0))) { + if (ch == EOF) { if (err_ok) scheme_read_err(port, stxsrc, line, col, pos, MINSPAN(port, pos, init_span), ch, indentation, "read: expected a closing %s%s", - is_honu_char ? "'" : "'\"'", + "'\"'", (ch == EOF) ? "" : " after one character"); return NULL; } else if (ch == SCHEME_SPECIAL) { @@ -3176,7 +2834,7 @@ read_string(int is_byte, int is_honu_char, Scheme_Object *port, if (err_ok) scheme_read_err(port, stxsrc, line, col, pos, SPAN(port, pos), SCHEME_SPECIAL, indentation, "read: found non-character while reading a %s", - is_honu_char ? "character constant" : "string"); + "string"); return NULL; } /* Note: errors will tend to leave junk on the port, with an open \". */ @@ -3187,14 +2845,14 @@ read_string(int is_byte, int is_honu_char, Scheme_Object *port, if (err_ok) scheme_read_err(port, stxsrc, line, col, pos, MINSPAN(port, pos, init_span), EOF, indentation, "read: expected a closing %s", - is_honu_char ? "'" : "'\"'"); + "'\"'"); return NULL; } else if (ch == SCHEME_SPECIAL) { scheme_get_ready_read_special(port, stxsrc, ht); if (err_ok) scheme_read_err(port, stxsrc, line, col, pos, SPAN(port, pos), SCHEME_SPECIAL, indentation, "read: found non-character while reading a %s", - is_honu_char ? "character constant" : "string"); + "string"); return NULL; } switch ( ch ) { @@ -3229,7 +2887,7 @@ read_string(int is_byte, int is_honu_char, Scheme_Object *port, if (err_ok) scheme_read_err(port, stxsrc, line, col, pos, SPAN(port, pos), ch, indentation, "read: no hex digit following \\x in %s", - is_honu_char ? "character constant" : "string"); + "string"); return NULL; } break; @@ -3264,7 +2922,7 @@ read_string(int is_byte, int is_honu_char, Scheme_Object *port, scheme_read_err(port, stxsrc, line, col, pos, SPAN(port, pos), ch, indentation, "read: no hex digit following \\%c in %s", ((maxc == 4) ? 'u' : 'U'), - is_honu_char ? "character constant" : "string"); + "string"); return NULL; } break; @@ -3277,7 +2935,7 @@ read_string(int is_byte, int is_honu_char, Scheme_Object *port, if (err_ok) scheme_read_err(port, stxsrc, line, col, pos, SPAN(port, pos), 0, indentation, "read: escape sequence \\%o out of range in %s", n1, - is_honu_char ? "character constant" : "string"); + "string"); return NULL; } n = n1; @@ -3296,7 +2954,7 @@ read_string(int is_byte, int is_honu_char, Scheme_Object *port, scheme_read_err(port, stxsrc, line, col, pos, SPAN(port, pos), 0, indentation, "read: unknown escape sequence \\%c in %s%s", ch, is_byte ? "byte " : "", - is_honu_char ? "character constant" : "string"); + "string"); return NULL; } break; @@ -3310,7 +2968,6 @@ read_string(int is_byte, int is_honu_char, Scheme_Object *port, /* Only remember if there's no earlier suspcious string line: */ if (!indt->suspicious_quote) { indt->suspicious_quote = line; - indt->quote_for_char = is_honu_char; } } } @@ -3321,7 +2978,7 @@ read_string(int is_byte, int is_honu_char, Scheme_Object *port, scheme_read_err(port, stxsrc, line, col, pos, SPAN(port, pos), 0, indentation, "read: out-of-range character in %s%s", is_byte ? "byte " : "", - is_honu_char ? "character constant" : "string"); + "string"); return NULL; } @@ -3337,16 +2994,7 @@ read_string(int is_byte, int is_honu_char, Scheme_Object *port, } buf[i] = '\0'; - if (is_honu_char) { - if (i) - result = scheme_make_character(buf[0]); - else { - if (err_ok) - scheme_read_err(port, stxsrc, line, col, pos, 2, 0, indentation, - "read: expected one character before closing '"); - return NULL; - } - } else if (!is_byte) + if (!is_byte) result = scheme_make_immutable_sized_char_string(buf, i, i <= 31); else { /* buf is not UTF-8 encoded; all of the chars are less than 256. @@ -3367,7 +3015,7 @@ read_string(int is_byte, int is_honu_char, Scheme_Object *port, Scheme_Object *scheme_read_byte_string(Scheme_Object *port) /* used by GRacket */ { - return read_string(1, 0, port, + return read_string(1, port, NULL, 0, 0, 0, NULL, NULL, NULL, @@ -3458,7 +3106,6 @@ read_here_string(Scheme_Object *port, Scheme_Object *stxsrc, char *scheme_extract_indentation_suggestions(Scheme_Object *indentation) { intptr_t suspicious_quote = 0; - int is_honu_char = 0; char *suspicions = ""; /* search back through indentation records to find the @@ -3469,7 +3116,6 @@ char *scheme_extract_indentation_suggestions(Scheme_Object *indentation) indentation = SCHEME_CDR(indentation); if (indt->suspicious_quote) { suspicious_quote = indt->suspicious_quote; - is_honu_char = indt->quote_for_char; } } @@ -3477,8 +3123,8 @@ char *scheme_extract_indentation_suggestions(Scheme_Object *indentation) suspicions = (char *)scheme_malloc_atomic(64); sprintf(suspicions, "; newline within %s suggests a missing %s on line %" PRIdPTR, - is_honu_char ? "character" : "string", - is_honu_char ? "'" : "'\"'", + "string", + "'\"'", suspicious_quote); } @@ -3568,7 +3214,6 @@ read_vector (Scheme_Object *port, /* Also dispatches to number reader, since things not-a-number are symbols. */ -static int check_honu_num(mzchar *buf, int i); typedef int (*Getc_Fun_r)(Scheme_Object *port); /* nothing has been read, except maybe some flags */ @@ -3591,7 +3236,6 @@ read_number_or_symbol(int init_ch, int skip_rt, Scheme_Object *port, Scheme_Object *o; int delim_ok; int ungetc_ok; - int honu_mode, e_ok = 0; int far_char_ok; int single_escape, multiple_escape, norm_count = 0; Getc_Fun_r getc_special_ok_fun; @@ -3624,30 +3268,12 @@ read_number_or_symbol(int init_ch, int skip_rt, Scheme_Object *port, ch = init_ch; } - if (is_float || is_not_float || radix_set) - honu_mode = 0; - else - honu_mode = params->honu_mode; - if (table) { far_char_ok = 0; delim_ok = 0; - } else if (!honu_mode) { + } else { delim_ok = SCHEME_OK; far_char_ok = 1; - } else { - pipe_quote = 0; - if (!is_symbol) { - delim_ok = (HONU_NUM_OK | HONU_INUM_OK); - e_ok = 1; - far_char_ok = 0; - } else if (delim[ch] & HONU_SYM_OK) { - delim_ok = HONU_SYM_OK; - far_char_ok = 0; - } else { - delim_ok = HONU_OK; - far_char_ok = 1; - } } while (NOT_EOF_OR_SPECIAL(ch) @@ -3737,14 +3363,6 @@ read_number_or_symbol(int init_ch, int skip_rt, Scheme_Object *port, buf[i++] = ch; - if (delim_ok & HONU_INUM_OK) { - if ((ch == 'e') || (ch == 'E')) { - /* Allow a +/- next */ - delim_ok = (HONU_NUM_OK | HONU_INUM_OK | HONU_INUM_SIGN_OK); - } else - delim_ok = (HONU_NUM_OK | HONU_INUM_OK); - } - ch = getc_special_ok_fun(port); } @@ -3783,8 +3401,7 @@ read_number_or_symbol(int init_ch, int skip_rt, Scheme_Object *port, buf[i] = '\0'; if (!quoted_ever && (i == 1) - && (readtable_effective_char(params->table, buf[0]) == '.') - && !honu_mode) { + && (readtable_effective_char(params->table, buf[0]) == '.')) { intptr_t xl, xc, xp; scheme_tell_all(port, &xl, &xc, &xp); scheme_read_err(port, stxsrc, xl, xc, xp, @@ -3793,49 +3410,6 @@ read_number_or_symbol(int init_ch, int skip_rt, Scheme_Object *port, return NULL; } - if (!i && honu_mode) { - /* If we end up with an empty string, then the first character - is simply illegal */ - scheme_read_err(port, stxsrc, line, col, pos, 1, 0, indentation, - "read: illegal character: %c", ch); - return NULL; - } - - /* special case for ellipses in honu */ - if (honu_mode && !is_symbol && !scheme_ellipses(buf, i)) { - /* Honu inexact syntax is not quite a subset of Scheme: it can end - in an "f" or "d" to indicate the precision. We can easily check - whether the string has the right shape, and then move the "f" - or "d" in place of the "e" in that case. */ - int found_e; - found_e = check_honu_num(buf, i); - if (found_e < 0) { - scheme_read_err(port, stxsrc, line, col, pos, SPAN(port, pos), 0, indentation, - "read: bad number: %5", buf); - return NULL; - } - if (delim[buf[i - 1]] & HONU_INUM_OK) { - /* We have a precision id to move */ - if (found_e) { - /* Easy case: replace e: */ - buf[found_e] = buf[i - 1]; - i--; - } else { - /* Slightly harder: add a 0 at the end for the exponent */ - if (i >= size) { - oldsize = size; - oldbuf = buf; - - size *= 2; - buf = (mzchar *)scheme_malloc_atomic((size + 1) * sizeof(mzchar)); - memcpy(buf, oldbuf, oldsize * sizeof(mzchar)); - } - buf[i++] = '0'; - buf[i] = 0; - } - } - } - if ((is_symbol || quoted_ever) && !is_float && !is_not_float && !radix_set) o = scheme_false; else { @@ -3848,15 +3422,9 @@ read_number_or_symbol(int init_ch, int skip_rt, Scheme_Object *port, } if (SAME_OBJ(o, scheme_false)) { - /* special case for ellipses in honu */ - if (honu_mode && !is_symbol && !scheme_ellipses(buf, i)) { - scheme_read_err(port, stxsrc, line, col, pos, SPAN(port, pos), 0, indentation, - "read: bad number: %5", buf); - return NULL; - } - if (is_kw) { + if (is_kw) o = scheme_intern_exact_char_keyword(buf, i); - } else + else o = scheme_intern_exact_char_symbol(buf, i); } @@ -3969,65 +3537,6 @@ read_delimited_constant(int ch, const mzchar *str, : v); } -static int check_honu_num(mzchar *buf, int i) -{ - int j, found_e = 0, found_dot = 0; - for (j = 0; j < i; j++) { - if (buf[j] == '.') { - if (found_dot) { - j = 0; - break; /* bad number */ - } - found_dot = 1; - } else if ((buf[j] == 'e') || (buf[j] == 'E')) { - if (!j) - break; /* bad number */ - found_e = j; - /* Allow a sign next: */ - j++; - if ((buf[j] == '+') || (buf[j] == '-')) - j++; - /* At least one digit: */ - if (!isdigit_ascii(buf[j])) { - j = 0; - break; - } - /* All digits, up to end: */ - while (isdigit_ascii(buf[j])) { - j++; - } - if (!buf[j]) - break; /* good number */ - if (buf[j + 1]) { - j = 0; - break; /* bad number */ - } - switch (buf[j]) { - case 'd': - case 'D': - case 'f': - case 'F': - break; /* good number */ - default: - j = 0; - break; /* bad number */ - } - break; - } else if (delim[buf[j]] & HONU_INUM_OK) { - if (j + 1 == i) { - /* Fine -- ends in d/f, even though there's no e */ - } else { - j = 0; - break; /* bad number */ - } - } - } - if (!j) { - return -1; - } - return found_e; -} - /*========================================================================*/ /* char reader */ /*========================================================================*/ @@ -4044,10 +3553,6 @@ static int u_strcmp(mzchar *s, const char *_t) return 0; } -static int scheme_ellipses(mzchar* buffer, int length){ - return u_strcmp(buffer, "...") == 0; -} - /* "#\" has been read */ static Scheme_Object * read_character(Scheme_Object *port, @@ -4306,13 +3811,8 @@ skip_whitespace_comments(Scheme_Object *port, Scheme_Object *stxsrc, int ch; int blockc_1, blockc_2; - if (params->honu_mode) { - blockc_1 = '/'; - blockc_2 = '*'; - } else { - blockc_1 = '#'; - blockc_2 = '|'; - } + blockc_1 = '#'; + blockc_2 = '|'; start_over: @@ -4326,9 +3826,7 @@ skip_whitespace_comments(Scheme_Object *port, Scheme_Object *stxsrc, while ((ch = scheme_getc_special_ok(port), NOT_EOF_OR_SPECIAL(ch) && scheme_isspace(ch))) {} } - if ((!params->honu_mode && (ch == ';')) - || (params->honu_mode && (ch == '/') - && (scheme_peekc_special_ok(port) == '/'))) { + if (ch == ';') { do { ch = scheme_getc_special_ok(port); if (ch == SCHEME_SPECIAL) @@ -4487,7 +3985,6 @@ static void pop_indentation(Scheme_Object *indentation) if (!old_indt->suspicious_quote) { if (indt->suspicious_quote) { old_indt->suspicious_quote = indt->suspicious_quote; - old_indt->quote_for_char = indt->quote_for_char; } } } @@ -4684,7 +4181,6 @@ static Scheme_Object *read_compact_escape(CPort *port) params.can_read_dot = 1; params.can_read_infix_dot = 1; params.can_read_quasi = 1; - params.honu_mode = 0; params.skip_zo_vers_check = 0; params.table = NULL; @@ -6439,7 +5935,7 @@ static Scheme_Object *read_lang(Scheme_Object *port, Scheme_Object *scheme_read_language(Scheme_Object *port, int nonlang_ok) { - return _internal_read(port, NULL, 0, 0, 0, 0, 0, -1, + return _internal_read(port, NULL, 0, 0, 0, 0, -1, NULL, NULL, NULL, NULL, nonlang_ok ? 2 : 1); } diff --git a/src/racket/src/schminc.h b/src/racket/src/schminc.h index 1ed428b37d..e9d0d3bae8 100644 --- a/src/racket/src/schminc.h +++ b/src/racket/src/schminc.h @@ -13,7 +13,7 @@ #define USE_COMPILED_STARTUP 1 -#define EXPECTED_PRIM_COUNT 1043 +#define EXPECTED_PRIM_COUNT 1038 #define EXPECTED_UNSAFE_COUNT 78 #define EXPECTED_FLFXNUM_COUNT 68 #define EXPECTED_FUTURES_COUNT 11 diff --git a/src/racket/src/schpriv.h b/src/racket/src/schpriv.h index 83ae36d2fe..6779462a09 100644 --- a/src/racket/src/schpriv.h +++ b/src/racket/src/schpriv.h @@ -2082,7 +2082,7 @@ Scheme_Object *_scheme_apply_to_list (Scheme_Object *rator, Scheme_Object *rands Scheme_Object *_scheme_tail_apply_to_list (Scheme_Object *rator, Scheme_Object *rands); Scheme_Object *scheme_internal_read(Scheme_Object *port, Scheme_Object *stxsrc, int crc, int cantfail, - int honu_mode, int recur, int expose_comment, int pre_char, Scheme_Object *readtable, + int recur, int expose_comment, int pre_char, Scheme_Object *readtable, Scheme_Object *magic_sym, Scheme_Object *magic_val, Scheme_Object *delay_load_info); void scheme_internal_display(Scheme_Object *obj, Scheme_Object *port); diff --git a/src/racket/src/schvers.h b/src/racket/src/schvers.h index d9326cf70b..29428f27d5 100644 --- a/src/racket/src/schvers.h +++ b/src/racket/src/schvers.h @@ -13,12 +13,12 @@ consistently.) */ -#define MZSCHEME_VERSION "5.1.3.11" +#define MZSCHEME_VERSION "5.1.3.12" #define MZSCHEME_VERSION_X 5 #define MZSCHEME_VERSION_Y 1 #define MZSCHEME_VERSION_Z 3 -#define MZSCHEME_VERSION_W 11 +#define MZSCHEME_VERSION_W 12 #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/thread.c b/src/racket/src/thread.c index a50507b73a..e95d2521a9 100644 --- a/src/racket/src/thread.c +++ b/src/racket/src/thread.c @@ -6651,8 +6651,6 @@ static void make_initial_config(Scheme_Thread *p) init_param(cells, paramz, MZCONFIG_PRINT_AS_QQ, scheme_true); init_param(cells, paramz, MZCONFIG_PRINT_SYNTAX_WIDTH, scheme_make_integer(32)); - init_param(cells, paramz, MZCONFIG_HONU_MODE, scheme_false); - init_param(cells, paramz, MZCONFIG_COMPILE_MODULE_CONSTS, scheme_true); init_param(cells, paramz, MZCONFIG_USE_JIT, scheme_startup_use_jit ? scheme_true : scheme_false);