From 9c32a413705342bafcc2c10dacec3dafba3eadab Mon Sep 17 00:00:00 2001 From: Matt Wette Date: Sun, 8 Jan 2017 12:16:28 -0800 Subject: [PATCH] nyacc: lots of C99/CPP fixes. now more robust for code mode --- module/nyacc/lang/c99/body.scm | 7 +- module/nyacc/lang/c99/cpp.scm | 5 +- module/nyacc/lang/c99/cppbody.scm | 12 +- module/nyacc/lang/c99/cppmach.scm | 4 +- module/nyacc/lang/c99/mach.d/c99xact.scm | 42 +- module/nyacc/lang/c99/mach.d/c99xtab.scm | 1034 +++++++++++----------- module/nyacc/lang/c99/mach.d/cppact.scm | 2 + module/nyacc/lang/c99/mach.d/cpptab.scm | 170 ++-- module/nyacc/lang/c99/parser.scm | 4 +- module/nyacc/lang/c99/xparser.scm | 33 +- module/nyacc/lang/util.scm | 2 +- module/nyacc/lex.scm | 1 + 12 files changed, 658 insertions(+), 658 deletions(-) diff --git a/module/nyacc/lang/c99/body.scm b/module/nyacc/lang/c99/body.scm index 94db22a0..f7eb9dd2 100644 --- a/module/nyacc/lang/c99/body.scm +++ b/module/nyacc/lang/c99/body.scm @@ -315,13 +315,8 @@ 'cpp-error (lambda () (let* ((defs (cpi-defs info)) - ;;(x (simple-format #t "eval-cpp-cond-text: ~S\n" text)) (rhs (cpp-expand-text text defs)) - ;;(x (simple-format #t " rhs=>~S\n" rhs)) - (exp (parse-cpp-expr rhs)) - ;;(x (simple-format #t " exp=>~S\n" exp)) - ) - (if (not exp) (throw 'c99-error "CPP parse failed")) + (exp (parse-cpp-expr rhs))) (eval-cpp-expr exp defs))) (lambda (key fmt . args) (report-error fmt args) diff --git a/module/nyacc/lang/c99/cpp.scm b/module/nyacc/lang/c99/cpp.scm index aefaf272..32fc1530 100644 --- a/module/nyacc/lang/c99/cpp.scm +++ b/module/nyacc/lang/c99/cpp.scm @@ -143,10 +143,7 @@ todo: (list (cons 'len-v len-v) (cons 'pat-v pat-v) (cons 'rto-v rto-v) (cons 'mtab mtab) (cons 'act-v act-v)))) -;; The included file "cppbody.scm" provides: -;; gen-cpp-lexer -;; parse-cpp-expr -;; eval-cpp-expr (include-from-path "nyacc/lang/c99/cppbody.scm") +;; cppbody.scm provides: gen-cpp-lexer parse-cpp-expr eval-cpp-expr ;; --- last line --- diff --git a/module/nyacc/lang/c99/cppbody.scm b/module/nyacc/lang/c99/cppbody.scm index ca5f167e..1b007653 100644 --- a/module/nyacc/lang/c99/cppbody.scm +++ b/module/nyacc/lang/c99/cppbody.scm @@ -27,6 +27,7 @@ (lambda (ch) (reader ch #f)))) +;; generate a lexical analyzer per string (define gen-cpp-lexer (make-lexer-generator mtab #:comm-skipper cpp-comm-skipper)) @@ -36,7 +37,7 @@ ;; expanded already so no identifiers should appear in the text. ;; A @code{cpp-error} will be thrown if a parse error occurs. (define (parse-cpp-expr text) - (catch + (with-throw-handler 'nyacc-error (lambda () (with-input-from-string text @@ -48,7 +49,6 @@ ;; Evaluate a tree produced from @code{parse-cpp-expr}. ;; The tree passed to this routine is (define (eval-cpp-expr tree dict) - ;;(display "eval-cpp-expr:\n") (pretty-print tree) (letrec ((tx (lambda (tr ix) (list-ref tr ix))) (tx1 (lambda (tr) (tx tr 1))) @@ -62,7 +62,6 @@ ((fixed) (string->number (tx1 tree))) ((char) (char->integer (tx1 tree))) ((defined) (if (assoc-ref dict (tx1 tree)) 1 0)) - ;; ((pre-inc post-inc) (1+ (ev1 tree))) ((pre-dec post-dec) (1- (ev1 tree))) ((pos) (ev1 tree)) @@ -88,12 +87,9 @@ ((or) (if (and (zero? (ev1 tree)) (zero? (ev2 tree))) 0 1)) ((and) (if (or (zero? (ev1 tree)) (zero? (ev2 tree))) 0 1)) ((cond-expr) (if (zero? (ev1 tree)) (ev3 tree) (ev2 tree))) - ((ident) (error "text should not have identifiers")) + ((ident) (cpp-err "undefined identifier: ~S" (cadr tree))) (else (error "incomplete implementation")))))) - (catch 'cpp-error - (lambda () (eval-expr tree)) - (lambda () #f)))) - + (eval-expr tree))) ;; @deffn scan-cpp-input argd used dict for-argl => string ;; Process the replacement text and generate a (reversed) token-list. diff --git a/module/nyacc/lang/c99/cppmach.scm b/module/nyacc/lang/c99/cppmach.scm index cfa47fdf..a2a5e50b 100644 --- a/module/nyacc/lang/c99/cppmach.scm +++ b/module/nyacc/lang/c99/cppmach.scm @@ -95,9 +95,9 @@ (postfix-expression "++" ($$ `(post-inc ,$1))) (postfix-expression "--" ($$ `(post-dec ,$1)))) (primary-expression - ;;($ident ($$ `(ident ,$1))) + ($ident ($$ `(ident ,$1))) ($fixed ($$ `(fixed ,$1))) ; integer-constant - ($chlit ($$ `(char ,$1))) ; char-constant + ($chlit ($$ `(char ,$1))) ; char-constant ("defined" "(" $ident ")" ($$ `(defined ,$3))) ("(" expression-list ")" ($$ $2))) (expression-list diff --git a/module/nyacc/lang/c99/mach.d/c99xact.scm b/module/nyacc/lang/c99/mach.d/c99xact.scm index 5aa879a0..1065b814 100644 --- a/module/nyacc/lang/c99/mach.d/c99xact.scm +++ b/module/nyacc/lang/c99/mach.d/c99xact.scm @@ -1,17 +1,15 @@ -;; ../../../../module/nyacc/lang/c99/mach.d/c99xact.scm +;; ./mach.d/c99xact.scm -;; Copyright (C) 2015,2016 Matthew R. Wette +;; Copyright (C) 2016,2017 Matthew R. Wette ;; ;; This software is covered by the GNU GENERAL PUBLIC LICENCE, Version 3, -;; or any later version published by the Free Software Foundation. See the -;; file COPYING included with the this distribution. +;; or any later version published by the Free Software Foundation. See +;; the file COPYING included with the this distribution. (define act-v (vector ;; $start => expression (lambda ($1 . $rest) $1) - ;; translation-unit-proxy => translation-unit - (lambda ($1 . $rest) (tl->list $1)) ;; primary-expression => identifier (lambda ($1 . $rest) `(p-expr ,$1)) ;; primary-expression => constant @@ -399,10 +397,10 @@ ;; struct-declarator => ":" constant-expression (lambda ($2 $1 . $rest) `(comp-declr (bit-field ,$2))) - ;; enum-specifier => "enum" identifier "{" enumerator-list "}" + ;; enum-specifier => "enum" ident-like "{" enumerator-list "}" (lambda ($5 $4 $3 $2 $1 . $rest) `(enum-def ,$2 ,(tl->list $4))) - ;; enum-specifier => "enum" identifier "{" enumerator-list "," "}" + ;; enum-specifier => "enum" ident-like "{" enumerator-list "," "}" (lambda ($6 $5 $4 $3 $2 $1 . $rest) `(enum-def ,$2 ,(tl->list $4))) ;; enum-specifier => "enum" "{" enumerator-list "}" @@ -411,7 +409,7 @@ ;; enum-specifier => "enum" "{" enumerator-list "," "}" (lambda ($5 $4 $3 $2 $1 . $rest) `(enum-def ,(tl->list $3))) - ;; enum-specifier => "enum" identifier + ;; enum-specifier => "enum" ident-like (lambda ($2 $1 . $rest) `(enum-ref ,$2)) ;; enumerator-list => enumerator (lambda ($1 . $rest) (make-tl 'enum-def-list $1)) @@ -690,7 +688,7 @@ ;; opt-expression => expression (lambda ($1 . $rest) $1) ;; jump-statement => "goto" identifier ";" - (lambda ($3 $2 $1 . $rest) `(goto $2)) + (lambda ($3 $2 $1 . $rest) `(goto ,$2)) ;; jump-statement => "continue" ";" (lambda ($2 $1 . $rest) '(continue)) ;; jump-statement => "break" ";" @@ -699,16 +697,15 @@ (lambda ($3 $2 $1 . $rest) `(return ,$2)) ;; jump-statement => "return" ";" (lambda ($2 $1 . $rest) `(return (expr))) - ;; translation-unit => external-declaration + ;; translation-unit => external-declaration-list + (lambda ($1 . $rest) (tl->list $1)) + ;; external-declaration-list => external-declaration (lambda ($1 . $rest) (make-tl 'trans-unit $1)) - ;; translation-unit => translation-unit external-declaration + ;; external-declaration-list => external-declaration-list external-decla... (lambda ($2 $1 . $rest) - (cond ((eqv? 'trans-unit (car $2)) - (let* ((t1 (tl-append $1 '(extern-C-begin))) - (t2 (tl-extend t1 (cdr $2))) - (t3 (tl-append t2 '(extern-C-end)))) - t3)) - (else (tl-append $1 $2)))) + (if (eqv? (sx-tag $2) 'extern-block) + (tl-extend $1 (sx-tail $2 2)) + (tl-append $1 $2))) ;; external-declaration => function-definition (lambda ($1 . $rest) $1) ;; external-declaration => declaration @@ -717,8 +714,13 @@ (lambda ($1 . $rest) $1) ;; external-declaration => cpp-statement (lambda ($1 . $rest) $1) - ;; external-declaration => "extern" '$string "{" translation-unit "}" - (lambda ($5 $4 $3 $2 $1 . $rest) (tl->list $4)) + ;; external-declaration => "extern" '$string "{" external-declaration-li... + (lambda ($5 $4 $3 $2 $1 . $rest) + `(extern-block + ,$2 + (extern-begin ,$2) + ,@(sx-tail (tl->list $4) 1) + (extern-end))) ;; function-definition => declaration-specifiers declarator declaration-... (lambda ($4 $3 $2 $1 . $rest) `(knr-fctn-defn diff --git a/module/nyacc/lang/c99/mach.d/c99xtab.scm b/module/nyacc/lang/c99/mach.d/c99xtab.scm index 35b690e1..931e1071 100644 --- a/module/nyacc/lang/c99/mach.d/c99xtab.scm +++ b/module/nyacc/lang/c99/mach.d/c99xtab.scm @@ -1,540 +1,540 @@ -;; ../../../../module/nyacc/lang/c99/mach.d/c99xtab.scm +;; ./mach.d/c99xtab.scm -;; Copyright (C) 2015,2016 Matthew R. Wette +;; Copyright (C) 2016,2017 Matthew R. Wette ;; ;; This software is covered by the GNU GENERAL PUBLIC LICENCE, Version 3, -;; or any later version published by the Free Software Foundation. See the -;; file COPYING included with the this distribution. +;; or any later version published by the Free Software Foundation. See +;; the file COPYING included with the this distribution. (define len-v - #(1 1 1 1 1 3 1 4 4 3 3 3 2 2 6 7 1 3 1 3 2 1 1 2 2 2 2 4 1 1 1 1 1 1 1 4 - 1 3 3 3 1 3 3 1 3 3 1 3 3 3 3 1 3 3 1 3 1 3 1 3 1 3 1 3 1 5 1 3 1 1 1 1 1 - 1 1 1 1 1 1 1 3 1 5 3 0 1 2 1 2 1 2 1 2 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 - 1 2 2 3 1 1 2 1 2 2 3 2 3 3 4 3 2 2 1 3 2 4 3 1 2 2 1 1 2 1 2 2 3 5 4 2 5 - 4 2 1 1 1 1 2 2 4 2 1 2 1 1 3 1 3 2 5 6 4 5 2 1 3 1 3 1 1 1 1 2 1 1 3 5 4 - 4 3 6 6 5 4 4 4 3 2 1 3 2 1 2 1 3 1 3 2 2 1 1 3 2 1 1 2 1 3 5 4 4 3 6 5 6 - 4 3 3 2 5 4 5 4 3 4 3 3 2 1 1 3 4 2 1 4 3 2 1 2 3 2 1 1 1 1 1 1 1 3 4 3 3 - 2 1 2 1 1 2 1 5 7 5 5 7 8 2 1 1 0 1 3 2 2 3 2 1 2 1 1 1 1 5 4 3 1 2 0 1 1 + #(1 1 1 1 3 1 4 4 3 3 3 2 2 6 7 1 3 1 3 2 1 1 2 2 2 2 4 1 1 1 1 1 1 1 4 1 + 3 3 3 1 3 3 1 3 3 1 3 3 3 3 1 3 3 1 3 1 3 1 3 1 3 1 3 1 5 1 3 1 1 1 1 1 1 + 1 1 1 1 1 1 3 1 5 3 0 1 2 1 2 1 2 1 2 1 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 2 2 3 1 1 2 1 2 2 3 2 3 3 4 3 2 2 1 3 2 4 3 1 2 2 1 1 2 1 2 2 3 5 4 2 5 4 + 2 1 1 1 1 2 2 4 2 1 2 1 1 3 1 3 2 5 6 4 5 2 1 3 1 3 1 1 1 1 2 1 1 3 5 4 4 + 3 6 6 5 4 4 4 3 2 1 3 2 1 2 1 3 1 3 2 2 1 1 3 2 1 1 2 1 3 5 4 4 3 6 5 6 4 + 3 3 2 5 4 5 4 3 4 3 3 2 1 1 3 4 2 1 4 3 2 1 2 3 2 1 1 1 1 1 1 1 3 4 3 3 2 + 1 2 1 1 2 1 5 7 5 5 7 8 2 1 1 0 1 3 2 2 3 2 1 1 2 1 1 1 1 5 4 3 1 2 0 1 1 1 1 1 1 1 2 1 1 1)) (define pat-v - #(((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) ( - 7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) ( - 176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) ( - 78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) ( - 164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (169 . 36) - (175 . 37)) ((-1 . -36)) ((79 . 119) (74 . 120) (73 . 121) (-1 . -40)) (( - 78 . 117) (77 . 118) (-1 . -43)) ((72 . 115) (71 . 116) (-1 . -46)) ((70 - . 111) (69 . 112) (68 . 113) (67 . 114) (-1 . -51)) ((66 . 109) (65 . 110) - (-1 . -54)) ((80 . 108) (-1 . -56)) ((-1 . -299)) ((-1 . -298)) ((-1 . - -297)) ((-1 . -296)) ((-1 . -295)) ((-1 . -294)) ((64 . 107) (-1 . -58)) ( - (63 . 106) (-1 . -60)) ((7 . 105) (-1 . -4)) ((-1 . -3)) ((-1 . -2)) ((62 - . 104) (-1 . -62)) ((-1 . -33)) ((-1 . -32)) ((-1 . -31)) ((-1 . -30)) (( - -1 . -29)) ((-1 . -28)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) - (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) ( - 156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) - (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) ( - 153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) ( - 152 . 35) (169 . 36) (175 . 66) (21 . 67) (27 . 68) (28 . 69) (29 . 70) ( + #(((164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 . 6) (158 . 7) ( + 7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (157 . 14) (156 . 15) ( + 177 . 16) (178 . 17) (179 . 18) (155 . 19) (75 . 20) (76 . 21) (77 . 22) ( + 78 . 23) (79 . 24) (80 . 25) (92 . 26) (175 . 27) (154 . 28) (81 . 29) ( + 165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 . 34) (153 . 35) (170 . 36) + (176 . 37)) ((-1 . -35)) ((79 . 119) (74 . 120) (73 . 121) (-1 . -39)) (( + 78 . 117) (77 . 118) (-1 . -42)) ((72 . 115) (71 . 116) (-1 . -45)) ((70 + . 111) (69 . 112) (68 . 113) (67 . 114) (-1 . -50)) ((66 . 109) (65 . 110) + (-1 . -53)) ((80 . 108) (-1 . -55)) ((-1 . -299)) ((-1 . -298)) ((-1 . + -297)) ((-1 . -296)) ((-1 . -295)) ((-1 . -294)) ((64 . 107) (-1 . -57)) ( + (63 . 106) (-1 . -59)) ((7 . 105) (-1 . -3)) ((-1 . -2)) ((-1 . -1)) ((62 + . 104) (-1 . -61)) ((-1 . -32)) ((-1 . -31)) ((-1 . -30)) ((-1 . -29)) (( + -1 . -28)) ((-1 . -27)) ((164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) + (159 . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) ( + 157 . 14) (156 . 15) (177 . 16) (178 . 17) (179 . 18) (155 . 19) (75 . 20) + (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (175 . 27) ( + 154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 . 34) ( + 153 . 35) (170 . 36) (176 . 66) (21 . 67) (27 . 68) (28 . 69) (29 . 70) ( 30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 - . 78) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . - 85) (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (42 . - 92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (145 . 98) (146 . - 99) (147 . 100) (167 . 101) (130 . 102) (171 . 103)) ((-1 . -6)) ((60 . 64 - ) (61 . 65) (-1 . -64)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . - 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . - 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32 - ) (173 . 33) (165 . 62) (92 . 63)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 - . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . - 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31 - ) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 61)) ((7 . 8) (2 . 9) ( - 3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . - 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 57) (174 . 27) - (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 59)) ((7 . 8) - (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . + . 78) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 . + 85) (138 . 86) (139 . 87) (40 . 88) (140 . 89) (141 . 90) (41 . 91) (42 . + 92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (145 . 97) (146 . 98) (147 . + 99) (148 . 100) (168 . 101) (131 . 102) (172 . 103)) ((-1 . -5)) ((60 . 64 + ) (61 . 65) (-1 . -63)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . + 13) (177 . 16) (178 . 17) (179 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . + 23) (79 . 24) (80 . 25) (175 . 27) (81 . 29) (165 . 30) (85 . 31) (86 . 32 + ) (174 . 33) (166 . 62) (92 . 63)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 + . 12) (6 . 13) (177 . 16) (178 . 17) (179 . 18) (75 . 20) (76 . 21) (77 . + 22) (78 . 23) (79 . 24) (80 . 25) (175 . 27) (81 . 29) (165 . 30) (85 . 31 + ) (86 . 32) (174 . 33) (92 . 26) (166 . 60) (164 . 61)) ((7 . 8) (2 . 9) ( + 3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16) (178 . 17) (179 . 18) (75 . + 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 57) (175 . 27) + (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 . 59)) ((7 . 8) + (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16) (178 . 17) (179 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 57) - (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 58)) - ((90 . 51) (92 . 52) (88 . 53) (87 . 54) (86 . 55) (85 . 56) (-1 . -22)) + (175 . 27) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 . 58)) + ((90 . 51) (92 . 52) (88 . 53) (87 . 54) (86 . 55) (85 . 56) (-1 . -21)) ((48 . 39) (49 . 40) (50 . 41) (51 . 42) (52 . 43) (53 . 44) (54 . 45) (55 - . 46) (56 . 47) (57 . 48) (58 . 49) (151 . 50) (-1 . -34)) ((-1 . -66)) ( - (-1 . -79)) ((82 . 38) (96 . 0)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) - (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) ( - 6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) - (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 - . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 - . 34) (152 . 35) (169 . 190)) ((-1 . -78)) ((-1 . -77)) ((-1 . -76)) ((-1 - . -75)) ((-1 . -74)) ((-1 . -73)) ((-1 . -72)) ((-1 . -71)) ((-1 . -70)) - ((-1 . -69)) ((-1 . -68)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . - 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) - (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . - 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) - (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) - (152 . 35) (169 . 189)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5 - ) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) - (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20 - ) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) ( - 153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) ( - 152 . 35) (169 . 36) (175 . 188)) ((91 . 183) (163 . 1) (162 . 2) (161 . 3 - ) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11 - ) (5 . 12) (6 . 13) (156 . 14) (21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 + . 46) (56 . 47) (57 . 48) (58 . 49) (152 . 50) (-1 . -33)) ((-1 . -65)) ( + (-1 . -78)) ((82 . 38) (96 . 0)) ((164 . 1) (163 . 2) (162 . 3) (161 . 4) + (160 . 5) (159 . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) ( + 6 . 13) (157 . 14) (156 . 15) (177 . 16) (178 . 17) (179 . 18) (155 . 19) + (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (175 + . 27) (154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 + . 34) (153 . 35) (170 . 190)) ((-1 . -77)) ((-1 . -76)) ((-1 . -75)) ((-1 + . -74)) ((-1 . -73)) ((-1 . -72)) ((-1 . -71)) ((-1 . -70)) ((-1 . -69)) + ((-1 . -68)) ((-1 . -67)) ((164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . + 5) (159 . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) + (157 . 14) (156 . 15) (177 . 16) (178 . 17) (179 . 18) (155 . 19) (75 . + 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (175 . 27) + (154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 . 34) + (153 . 35) (170 . 189)) ((164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5 + ) (159 . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) + (157 . 14) (156 . 15) (177 . 16) (178 . 17) (179 . 18) (155 . 19) (75 . 20 + ) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (175 . 27) ( + 154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 . 34) ( + 153 . 35) (170 . 36) (176 . 188)) ((91 . 183) (164 . 1) (163 . 2) (162 . 3 + ) (161 . 4) (160 . 5) (159 . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11 + ) (5 . 12) (6 . 13) (157 . 14) (21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . - 78) (39 . 79) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (23 . 80) (24 . - 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 . - 88) (139 . 89) (140 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94) (45 . 95 - ) (46 . 96) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) ( - 80 . 25) (92 . 26) (174 . 27) (144 . 97) (145 . 146) (146 . 147) (147 . - 100) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 - . 34) (152 . 35) (167 . 184) (168 . 185) (169 . 186) (172 . 187)) ((5 . 12 - ) (6 . 13) (178 . 182)) ((5 . 12) (6 . 13) (178 . 181)) ((-1 . -12)) ((-1 - . -13)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 + 78) (39 . 79) (156 . 15) (177 . 16) (178 . 17) (179 . 18) (23 . 80) (24 . + 81) (25 . 82) (26 . 83) (136 . 84) (137 . 85) (138 . 86) (139 . 87) (40 . + 88) (140 . 89) (141 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94) (45 . 95 + ) (46 . 96) (155 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) ( + 80 . 25) (92 . 26) (175 . 27) (145 . 97) (146 . 146) (147 . 147) (148 . + 100) (154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 + . 34) (153 . 35) (168 . 184) (169 . 185) (170 . 186) (173 . 187)) ((5 . 12 + ) (6 . 13) (179 . 182)) ((5 . 12) (6 . 13) (179 . 181)) ((-1 . -11)) ((-1 + . -12)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (23 . 80 - ) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 . 87 - ) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94) - (45 . 95) (46 . 96) (144 . 97) (145 . 98) (146 . 99) (147 . 100) (167 . - 101) (130 . 102) (171 . 180) (163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 - . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . - 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 - . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . - 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . - 34) (152 . 35) (169 . 36) (175 . 66)) ((-1 . -23)) ((-1 . -24)) ((-1 . -34 - )) ((-1 . -25)) ((-1 . -26)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 + ) (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 . 85) (138 . 86) (139 . 87 + ) (40 . 88) (140 . 89) (141 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94) + (45 . 95) (46 . 96) (145 . 97) (146 . 98) (147 . 99) (148 . 100) (168 . + 101) (131 . 102) (172 . 180) (164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 + . 5) (159 . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . + 13) (157 . 14) (156 . 15) (177 . 16) (178 . 17) (179 . 18) (155 . 19) (75 + . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (175 . + 27) (154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 . + 34) (153 . 35) (170 . 36) (176 . 66)) ((-1 . -22)) ((-1 . -23)) ((-1 . -33 + )) ((-1 . -24)) ((-1 . -25)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78 - ) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) - (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (42 . 92) - (43 . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (145 . 98) (146 . 99) ( - 147 . 100) (167 . 101) (130 . 102) (171 . 179) (163 . 1) (162 . 2) (161 . - 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . - 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . - 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) - (92 . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) - (173 . 33) (165 . 34) (152 . 35) (169 . 36) (175 . 66)) ((163 . 1) (162 . - 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . - 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) - (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) ( - 80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) ( - 86 . 32) (173 . 33) (165 . 34) (152 . 35) (169 . 36) (175 . 178)) ((7 . 8) - (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . - 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) - (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) - (163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (156 - . 14) (155 . 15) (154 . 177)) ((91 . 176) (82 . 38)) ((-1 . -234)) ((84 - . 174) (5 . 12) (6 . 13) (178 . 175)) ((84 . 172) (5 . 12) (6 . 13) (21 . - 67) (135 . 169) (178 . 170) (134 . 173)) ((84 . 168) (5 . 12) (6 . 13) (21 - . 67) (135 . 169) (178 . 170) (134 . 171)) ((-1 . -139)) ((30 . 167) (-1 - . -137)) ((30 . 166) (-1 . -136)) ((-1 . -133)) ((39 . 162) (37 . 163) (35 - . 164) (33 . 165) (-1 . -128)) ((37 . 159) (35 . 160) (31 . 161) (-1 . - -117)) ((-1 . -114)) ((39 . 155) (37 . 156) (35 . 157) (33 . 158) (-1 . - -115)) ((37 . 154) (-1 . -110)) ((-1 . -177)) ((-1 . -176)) ((-1 . -175)) - ((-1 . -174)) ((-1 . -109)) ((-1 . -108)) ((-1 . -107)) ((-1 . -106)) ((-1 - . -105)) ((-1 . -104)) ((-1 . -103)) ((-1 . -102)) ((-1 . -101)) ((-1 . - -100)) ((-1 . -99)) ((-1 . -98)) ((-1 . -97)) ((21 . 67) (27 . 68) (28 . - 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) - (37 . 77) (36 . 78) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (135 - . 84) (136 . 85) (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) ( - 41 . 91) (42 . 92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (145 - . 146) (146 . 147) (147 . 100) (167 . 153) (-1 . -91)) ((23 . 80) (42 . - 92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (147 . 100) (167 . - 151) (21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) - (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (24 . 81) (25 - . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 . 88) ( - 139 . 89) (140 . 90) (41 . 91) (145 . 98) (146 . 99) (130 . 152) (91 . -89 - ) (79 . -159) (90 . -159) (92 . -159)) ((23 . 80) (42 . 92) (43 . 93) (44 - . 94) (45 . 95) (46 . 96) (144 . 97) (147 . 100) (167 . 149) (21 . 67) (27 - . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . - 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) - (135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90 - ) (41 . 91) (145 . 98) (146 . 99) (130 . 150) (91 . -87) (79 . -157) (90 - . -157) (92 . -157)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) ( + ) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 . 85) + (138 . 86) (139 . 87) (40 . 88) (140 . 89) (141 . 90) (41 . 91) (42 . 92) + (43 . 93) (44 . 94) (45 . 95) (46 . 96) (145 . 97) (146 . 98) (147 . 99) ( + 148 . 100) (168 . 101) (131 . 102) (172 . 179) (164 . 1) (163 . 2) (162 . + 3) (161 . 4) (160 . 5) (159 . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . + 11) (5 . 12) (6 . 13) (157 . 14) (156 . 15) (177 . 16) (178 . 17) (179 . + 18) (155 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) + (92 . 26) (175 . 27) (154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 . 32) + (174 . 33) (166 . 34) (153 . 35) (170 . 36) (176 . 66)) ((164 . 1) (163 . + 2) (162 . 3) (161 . 4) (160 . 5) (159 . 6) (158 . 7) (7 . 8) (2 . 9) (3 . + 10) (4 . 11) (5 . 12) (6 . 13) (157 . 14) (156 . 15) (177 . 16) (178 . 17) + (179 . 18) (155 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) ( + 80 . 25) (92 . 26) (175 . 27) (154 . 28) (81 . 29) (165 . 30) (85 . 31) ( + 86 . 32) (174 . 33) (166 . 34) (153 . 35) (170 . 36) (176 . 178)) ((7 . 8) + (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16) (178 . 17) (179 . + 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (175 . 27) + (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (92 . 26) (166 . 60) + (164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 . 6) (158 . 7) (157 + . 14) (156 . 15) (155 . 177)) ((91 . 176) (82 . 38)) ((-1 . -233)) ((84 + . 174) (5 . 12) (6 . 13) (21 . 67) (136 . 169) (179 . 170) (135 . 175)) (( + 84 . 172) (5 . 12) (6 . 13) (21 . 67) (136 . 169) (179 . 170) (135 . 173)) + ((84 . 168) (5 . 12) (6 . 13) (21 . 67) (136 . 169) (179 . 170) (135 . + 171)) ((-1 . -138)) ((30 . 167) (-1 . -136)) ((30 . 166) (-1 . -135)) ((-1 + . -132)) ((39 . 162) (37 . 163) (35 . 164) (33 . 165) (-1 . -127)) ((37 + . 159) (35 . 160) (31 . 161) (-1 . -116)) ((-1 . -113)) ((39 . 155) (37 . + 156) (35 . 157) (33 . 158) (-1 . -114)) ((37 . 154) (-1 . -109)) ((-1 . + -176)) ((-1 . -175)) ((-1 . -174)) ((-1 . -173)) ((-1 . -108)) ((-1 . -107 + )) ((-1 . -106)) ((-1 . -105)) ((-1 . -104)) ((-1 . -103)) ((-1 . -102)) ( + (-1 . -101)) ((-1 . -100)) ((-1 . -99)) ((-1 . -98)) ((-1 . -97)) ((-1 . + -96)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . + 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (23 . 80) + (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 . 85) (138 . 86) (139 . 87) + (40 . 88) (140 . 89) (141 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94) ( + 45 . 95) (46 . 96) (145 . 97) (146 . 146) (147 . 147) (148 . 100) (168 . + 153) (-1 . -90)) ((23 . 80) (42 . 92) (43 . 93) (44 . 94) (45 . 95) (46 . + 96) (145 . 97) (148 . 100) (168 . 151) (21 . 67) (27 . 68) (28 . 69) (29 + . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77 + ) (36 . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 . 85) + (138 . 86) (139 . 87) (40 . 88) (140 . 89) (141 . 90) (41 . 91) (146 . 98) + (147 . 99) (131 . 152) (91 . -88) (79 . -158) (90 . -158) (92 . -158)) (( + 23 . 80) (42 . 92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (145 . 97) (148 + . 100) (168 . 149) (21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 + . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79 + ) (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 . 85) (138 . 86) (139 . 87 + ) (40 . 88) (140 . 89) (141 . 90) (41 . 91) (146 . 98) (147 . 99) (131 . + 150) (91 . -86) (79 . -156) (90 . -156) (92 . -156)) ((21 . 67) (27 . 68) + (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 + . 76) (37 . 77) (36 . 78) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83 + ) (136 . 84) (137 . 85) (138 . 86) (139 . 87) (40 . 88) (140 . 89) (141 . + 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (145 . 97) + (146 . 146) (147 . 147) (148 . 100) (168 . 148) (-1 . -84)) ((91 . -208)) + ((90 . 140) (92 . 141) (79 . 142) (118 . 143) (125 . 144) (167 . 145)) (( + 91 . 139)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16) + (178 . 17) (179 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) ( + 80 . 25) (175 . 27) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) ( + 92 . 26) (166 . 60) (164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 + . 6) (158 . 7) (157 . 14) (156 . 138)) ((-1 . -300)) ((7 . 8) (2 . 9) (3 + . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16) (178 . 17) (179 . 18) (75 . 20 + ) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (175 . 27) (81 . 29) ( + 165 . 30) (85 . 31) (86 . 32) (174 . 33) (92 . 26) (166 . 60) (164 . 1) ( + 163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 . 6) (158 . 7) (157 . 137)) (( + 7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16) (178 . 17) ( + 179 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (175 + . 27) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (92 . 26) (166 + . 60) (164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 . 6) (158 . + 136)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16) (178 + . 17) (179 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . + 25) (175 . 27) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (92 . + 26) (166 . 60) (164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 . + 135)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16) (178 + . 17) (179 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . + 25) (175 . 27) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (92 . + 26) (166 . 60) (164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 134)) ((7 . + 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16) (178 . 17) (179 + . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (175 . + 27) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (92 . 26) (166 . + 60) (164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 133)) ((7 . 8) (2 . 9) + (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16) (178 . 17) (179 . 18) (75 + . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (175 . 27) (81 . + 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (92 . 26) (166 . 60) (164 . + 1) (163 . 2) (162 . 3) (161 . 132)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 + . 12) (6 . 13) (177 . 16) (178 . 17) (179 . 18) (75 . 20) (76 . 21) (77 . + 22) (78 . 23) (79 . 24) (80 . 25) (175 . 27) (81 . 29) (165 . 30) (85 . 31 + ) (86 . 32) (174 . 33) (92 . 26) (166 . 60) (164 . 1) (163 . 2) (162 . 3) + (161 . 131)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . + 16) (178 . 17) (179 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24 + ) (80 . 25) (175 . 27) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) + (92 . 26) (166 . 60) (164 . 1) (163 . 2) (162 . 3) (161 . 130)) ((7 . 8) + (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16) (178 . 17) (179 . + 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (175 . 27) + (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (92 . 26) (166 . 60) + (164 . 1) (163 . 2) (162 . 3) (161 . 129)) ((7 . 8) (2 . 9) (3 . 10) (4 . + 11) (5 . 12) (6 . 13) (177 . 16) (178 . 17) (179 . 18) (75 . 20) (76 . 21) + (77 . 22) (78 . 23) (79 . 24) (80 . 25) (175 . 27) (81 . 29) (165 . 30) ( + 85 . 31) (86 . 32) (174 . 33) (92 . 26) (166 . 60) (164 . 1) (163 . 2) ( + 162 . 128)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16 + ) (178 . 17) (179 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) + (80 . 25) (175 . 27) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) ( + 92 . 26) (166 . 60) (164 . 1) (163 . 2) (162 . 127)) ((7 . 8) (2 . 9) (3 + . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16) (178 . 17) (179 . 18) (75 . 20 + ) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (175 . 27) (81 . 29) ( + 165 . 30) (85 . 31) (86 . 32) (174 . 33) (92 . 26) (166 . 60) (164 . 1) ( + 163 . 126)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16 + ) (178 . 17) (179 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) + (80 . 25) (175 . 27) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) ( + 92 . 26) (166 . 60) (164 . 1) (163 . 125)) ((7 . 8) (2 . 9) (3 . 10) (4 . + 11) (5 . 12) (6 . 13) (177 . 16) (178 . 17) (179 . 18) (75 . 20) (76 . 21) + (77 . 22) (78 . 23) (79 . 24) (80 . 25) (175 . 27) (81 . 29) (165 . 30) ( + 85 . 31) (86 . 32) (174 . 33) (92 . 26) (166 . 60) (164 . 124)) ((7 . 8) ( + 2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16) (178 . 17) (179 . 18 + ) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (175 . 27) ( + 81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (92 . 26) (166 . 60) ( + 164 . 123)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16 + ) (178 . 17) (179 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) + (80 . 25) (175 . 27) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) ( + 92 . 26) (166 . 60) (164 . 122)) ((-1 . -38)) ((-1 . -37)) ((-1 . -36)) (( + 79 . 119) (74 . 120) (73 . 121) (-1 . -41)) ((79 . 119) (74 . 120) (73 . + 121) (-1 . -40)) ((78 . 117) (77 . 118) (-1 . -44)) ((78 . 117) (77 . 118) + (-1 . -43)) ((72 . 115) (71 . 116) (-1 . -49)) ((72 . 115) (71 . 116) (-1 + . -48)) ((72 . 115) (71 . 116) (-1 . -47)) ((72 . 115) (71 . 116) (-1 . + -46)) ((70 . 111) (69 . 112) (68 . 113) (67 . 114) (-1 . -52)) ((70 . 111) + (69 . 112) (68 . 113) (67 . 114) (-1 . -51)) ((66 . 109) (65 . 110) (-1 + . -54)) ((80 . 108) (-1 . -56)) ((64 . 107) (-1 . -58)) ((63 . 106) (-1 . + -60)) ((84 . 237) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 + . 16) (178 . 17) (179 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 + . 24) (80 . 25) (175 . 27) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 + . 33) (92 . 26) (166 . 60) (164 . 238)) ((164 . 1) (163 . 2) (162 . 3) ( + 161 . 4) (160 . 5) (159 . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) ( + 5 . 12) (6 . 13) (157 . 14) (156 . 15) (177 . 16) (178 . 17) (179 . 18) ( + 155 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (80 . 25) (92 . 26) (175 + . 27) (154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 + . 34) (153 . 35) (170 . 232) (89 . 233) (43 . 234) (24 . 81) (25 . 82) ( + 26 . 83) (146 . 223) (123 . 235) (79 . 236)) ((90 . 140) (92 . 141) (79 . + 142) (118 . 143) (125 . 144) (167 . 226) (21 . 67) (27 . 68) (28 . 69) (29 + . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . + 77) (36 . 78) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (136 . 84) + (137 . 85) (138 . 86) (139 . 87) (40 . 88) (140 . 89) (141 . 90) (41 . 91 + ) (42 . 92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (145 . 97) (146 . 146) + (147 . 147) (148 . 100) (168 . 227) (119 . 228) (120 . 229) (122 . 230) ( + 91 . 231)) ((24 . 81) (25 . 82) (26 . 83) (146 . 223) (123 . 224) (79 . + 142) (125 . 225) (-1 . -193)) ((90 . 221) (92 . 222) (91 . -211) (82 . + -211)) ((90 . 140) (92 . 141) (118 . 220) (91 . -209) (82 . -209)) ((91 . + -207)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . + 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (23 . 80) + (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 . 85) (138 . 86) (139 . 87) + (40 . 88) (140 . 89) (141 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94) ( + 45 . 95) (46 . 96) (145 . 97) (146 . 146) (147 . 147) (148 . 100) (168 . + 151) (-1 . -88)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . + 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) + (23 . 80) (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 . 85) (138 . 86) ( + 139 . 87) (40 . 88) (140 . 89) (141 . 90) (41 . 91) (42 . 92) (43 . 93) ( + 44 . 94) (45 . 95) (46 . 96) (145 . 97) (146 . 146) (147 . 147) (148 . 100 + ) (168 . 149) (-1 . -86)) ((-1 . -85)) ((-1 . -87)) ((-1 . -155)) ((-1 . + -89)) ((-1 . -157)) ((-1 . -91)) ((-1 . -110)) ((37 . 219) (-1 . -111)) (( + -1 . -115)) ((35 . 217) (37 . 218) (-1 . -118)) ((-1 . -133)) ((-1 . -117) + ) ((37 . 216) (-1 . -120)) ((30 . 215) (-1 . -137)) ((37 . 214) (-1 . -125 + )) ((-1 . -126)) ((35 . 212) (37 . 213) (-1 . -129)) ((-1 . -134)) ((-1 . + -139)) ((-1 . -140)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) ( 31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 - . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 - . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (42 . 92) (43 - . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (145 . 146) (146 . 147) ( - 147 . 100) (167 . 148) (-1 . -85)) ((91 . -209)) ((90 . 140) (92 . 141) ( - 79 . 142) (117 . 143) (124 . 144) (166 . 145)) ((91 . 139)) ((7 . 8) (2 . - 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) ( - 75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 - . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 - . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (156 . 14 - ) (155 . 138)) ((-1 . -300)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) ( - 6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 - . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 - . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 2) (161 . 3) (160 - . 4) (159 . 5) (158 . 6) (157 . 7) (156 . 137)) ((7 . 8) (2 . 9) (3 . 10) - (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 - . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . - 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 2 - ) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 136)) ((7 . 8) (2 . 9) (3 - . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . - 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) - (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) - (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 135)) ((7 . 8) (2 . 9) (3 - . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20 - ) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) ( - 164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) ( - 162 . 2) (161 . 3) (160 . 4) (159 . 134)) ((7 . 8) (2 . 9) (3 . 10) (4 . - 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) - (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) ( - 85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 2) ( - 161 . 3) (160 . 4) (159 . 133)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12 - ) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) - (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) ( - 86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 2) (161 . 3) ( - 160 . 132)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16 - ) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) - (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) ( - 92 . 26) (165 . 60) (163 . 1) (162 . 2) (161 . 3) (160 . 131)) ((7 . 8) (2 - . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) - (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) ( - 81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) ( - 163 . 1) (162 . 2) (161 . 3) (160 . 130)) ((7 . 8) (2 . 9) (3 . 10) (4 . - 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) - (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) ( - 85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 2) ( - 161 . 3) (160 . 129)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) - (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) - (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32) ( - 173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 2) (161 . 128)) ((7 . 8) ( - 2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18 - ) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) ( - 81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) ( - 163 . 1) (162 . 2) (161 . 127)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12 - ) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) - (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) ( - 86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 126)) ((7 . 8) ( - 2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18 - ) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) ( - 81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) ( - 163 . 1) (162 . 125)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) - (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) - (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32) ( - 173 . 33) (92 . 26) (165 . 60) (163 . 124)) ((7 . 8) (2 . 9) (3 . 10) (4 - . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . - 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30 - ) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 123)) ((7 . 8 - ) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 - . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . - 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . - 60) (163 . 122)) ((-1 . -39)) ((-1 . -38)) ((-1 . -37)) ((79 . 119) (74 . - 120) (73 . 121) (-1 . -42)) ((79 . 119) (74 . 120) (73 . 121) (-1 . -41)) - ((78 . 117) (77 . 118) (-1 . -45)) ((78 . 117) (77 . 118) (-1 . -44)) ((72 - . 115) (71 . 116) (-1 . -50)) ((72 . 115) (71 . 116) (-1 . -49)) ((72 . - 115) (71 . 116) (-1 . -48)) ((72 . 115) (71 . 116) (-1 . -47)) ((70 . 111) - (69 . 112) (68 . 113) (67 . 114) (-1 . -53)) ((70 . 111) (69 . 112) (68 - . 113) (67 . 114) (-1 . -52)) ((66 . 109) (65 . 110) (-1 . -55)) ((80 . - 108) (-1 . -57)) ((64 . 107) (-1 . -59)) ((63 . 106) (-1 . -61)) ((84 . - 237) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 - . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . - 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . - 26) (165 . 60) (163 . 238)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 - . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . - 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 - . 20) (76 . 21) (77 . 22) (78 . 23) (80 . 25) (92 . 26) (174 . 27) (153 . - 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . - 35) (169 . 232) (89 . 233) (43 . 234) (24 . 81) (25 . 82) (26 . 83) (145 - . 223) (122 . 235) (79 . 236)) ((90 . 140) (92 . 141) (79 . 142) (117 . - 143) (124 . 144) (166 . 226) (21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 - . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78 - ) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) - (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (42 . 92) - (43 . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (145 . 146) (146 . 147) - (147 . 100) (167 . 227) (118 . 228) (119 . 229) (121 . 230) (91 . 231)) ( - (24 . 81) (25 . 82) (26 . 83) (145 . 223) (122 . 224) (79 . 142) (124 . - 225) (-1 . -194)) ((90 . 221) (92 . 222) (91 . -212) (82 . -212)) ((90 . - 140) (92 . 141) (117 . 220) (91 . -210) (82 . -210)) ((91 . -208)) ((21 . - 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) - (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (23 . 80) (24 . 81) (25 - . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 . 88) (139 - . 89) (140 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94) (45 . 95) (46 . - 96) (144 . 97) (145 . 146) (146 . 147) (147 . 100) (167 . 151) (-1 . -89)) - ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) ( - 33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (23 . 80) (24 - . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 - . 88) (139 . 89) (140 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94) (45 . - 95) (46 . 96) (144 . 97) (145 . 146) (146 . 147) (147 . 100) (167 . 149) ( - -1 . -87)) ((-1 . -86)) ((-1 . -88)) ((-1 . -156)) ((-1 . -90)) ((-1 . - -158)) ((-1 . -92)) ((-1 . -111)) ((37 . 219) (-1 . -112)) ((-1 . -116)) ( - (35 . 217) (37 . 218) (-1 . -119)) ((-1 . -134)) ((-1 . -118)) ((37 . 216) - (-1 . -121)) ((30 . 215) (-1 . -138)) ((37 . 214) (-1 . -126)) ((-1 . - -127)) ((35 . 212) (37 . 213) (-1 . -130)) ((-1 . -135)) ((-1 . -140)) (( - -1 . -141)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) ( - 32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (24 - . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 - . 88) (139 . 89) (140 . 90) (41 . 91) (145 . 203) (146 . 204) (94 . 205) ( - 130 . 206) (131 . 207) (132 . 208) (133 . 211)) ((-1 . -150)) ((-1 . -149) - ) ((84 . 210) (-1 . -145)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . - 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) - (39 . 79) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) ( - 138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (145 . 203) (146 . 204 - ) (94 . 205) (130 . 206) (131 . 207) (132 . 208) (133 . 209)) ((84 . 202) - (-1 . -148)) ((5 . 12) (6 . 13) (178 . 199) (125 . 200) (126 . 201)) ((84 - . 198) (-1 . -169)) ((-1 . -5)) ((62 . 104) (-1 . -63)) ((59 . 197) (82 . - 38)) ((91 . 196)) ((91 . 195)) ((-1 . -11)) ((-1 . -10)) ((-1 . -9)) ((90 - . 140) (92 . 141) (79 . 142) (117 . 143) (124 . 144) (166 . 194) (91 . -21 - ) (82 . -21)) ((91 . -18) (82 . -18)) ((91 . -16) (82 . -16)) ((91 . 192) - (82 . 193)) ((89 . 191) (82 . 38)) ((-1 . -67)) ((-1 . -80)) ((-1 . -7)) ( - (-1 . -8)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) ( - 32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (23 - . 80) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 - . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . - 94) (45 . 95) (46 . 96) (144 . 97) (145 . 146) (146 . 147) (147 . 100) ( - 167 . 184) (168 . 291) (163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) ( - 158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) ( - 156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) - (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) ( - 153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) ( - 152 . 35) (169 . 292)) ((91 . -20) (82 . -20)) ((84 . 237)) ((84 . 237) ( - -1 . -27)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) - (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) ( - 80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) ( - 92 . 26) (165 . 60) (163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 - . 6) (157 . 7) (156 . 14) (155 . 15) (154 . 19) (153 . 28) (152 . 290)) ( - (5 . 12) (6 . 13) (178 . 199) (125 . 200) (126 . 289)) ((58 . 288) (83 . - -172) (82 . -172)) ((83 . -170) (82 . -170)) ((83 . 286) (82 . 287)) ((21 + . 79) (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 . 85) (138 . 86) (139 + . 87) (40 . 88) (140 . 89) (141 . 90) (41 . 91) (146 . 203) (147 . 204) ( + 94 . 205) (131 . 206) (132 . 207) (133 . 208) (134 . 211)) ((-1 . -149)) ( + (-1 . -148)) ((84 . 210) (-1 . -144)) ((21 . 67) (27 . 68) (28 . 69) (29 + . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77 + ) (36 . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 . 85) + (138 . 86) (139 . 87) (40 . 88) (140 . 89) (141 . 90) (41 . 91) (146 . 203 + ) (147 . 204) (94 . 205) (131 . 206) (132 . 207) (133 . 208) (134 . 209)) + ((84 . 202) (-1 . -147)) ((5 . 12) (6 . 13) (179 . 199) (126 . 200) (127 + . 201)) ((84 . 198) (-1 . -168)) ((-1 . -4)) ((62 . 104) (-1 . -62)) ((59 + . 197) (82 . 38)) ((91 . 196)) ((91 . 195)) ((-1 . -10)) ((-1 . -9)) ((-1 + . -8)) ((90 . 140) (92 . 141) (79 . 142) (118 . 143) (125 . 144) (167 . + 194) (91 . -20) (82 . -20)) ((91 . -17) (82 . -17)) ((91 . -15) (82 . -15) + ) ((91 . 192) (82 . 193)) ((89 . 191) (82 . 38)) ((-1 . -66)) ((-1 . -79)) + ((-1 . -6)) ((-1 . -7)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71 + ) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) ( + 39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 . 85) ( + 138 . 86) (139 . 87) (40 . 88) (140 . 89) (141 . 90) (41 . 91) (42 . 92) ( + 43 . 93) (44 . 94) (45 . 95) (46 . 96) (145 . 97) (146 . 146) (147 . 147) + (148 . 100) (168 . 184) (169 . 291) (164 . 1) (163 . 2) (162 . 3) (161 . 4 + ) (160 . 5) (159 . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) + (6 . 13) (157 . 14) (156 . 15) (177 . 16) (178 . 17) (179 . 18) (155 . 19 + ) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) ( + 175 . 27) (154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) ( + 166 . 34) (153 . 35) (170 . 292)) ((91 . -19) (82 . -19)) ((84 . 237)) (( + 84 . 237) (-1 . -26)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) + (177 . 16) (178 . 17) (179 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) + (79 . 24) (80 . 25) (175 . 27) (81 . 29) (165 . 30) (85 . 31) (86 . 32) ( + 174 . 33) (92 . 26) (166 . 60) (164 . 1) (163 . 2) (162 . 3) (161 . 4) ( + 160 . 5) (159 . 6) (158 . 7) (157 . 14) (156 . 15) (155 . 19) (154 . 28) ( + 153 . 290)) ((5 . 12) (6 . 13) (179 . 199) (126 . 200) (127 . 289)) ((58 + . 288) (83 . -171) (82 . -171)) ((83 . -169) (82 . -169)) ((83 . 286) (82 + . 287)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 + . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (24 . 81 + ) (25 . 82) (26 . 83) (136 . 84) (137 . 85) (138 . 86) (139 . 87) (40 . 88 + ) (140 . 89) (141 . 90) (41 . 91) (146 . 203) (147 . 204) (94 . 205) (131 + . 206) (132 . 207) (133 . 208) (134 . 285)) ((21 . 67) (27 . 68) (28 . 69) + (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 + . 77) (36 . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 + . 85) (138 . 86) (139 . 87) (40 . 88) (140 . 89) (141 . 90) (41 . 91) (146 + . 203) (147 . 204) (131 . 152) (-1 . -158)) ((21 . 67) (27 . 68) (28 . 69 + ) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) ( + 37 . 77) (36 . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 + . 85) (138 . 86) (139 . 87) (40 . 88) (140 . 89) (141 . 90) (41 . 91) ( + 146 . 203) (147 . 204) (131 . 150) (-1 . -156)) ((94 . -302) (-1 . -302)) + ((5 . 12) (6 . 13) (79 . 142) (92 . 279) (179 . 257) (124 . 258) (125 . + 280) (59 . 281) (143 . 282) (129 . 283) (130 . 284)) ((94 . -151) (-1 . + -151)) ((94 . -150) (-1 . -150)) ((83 . 278) (21 . 67) (27 . 68) (28 . 69) + (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 + . 77) (36 . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 + . 85) (138 . 86) (139 . 87) (40 . 88) (140 . 89) (141 . 90) (41 . 91) (146 + . 203) (147 . 204) (131 . 206) (133 . 275) (94 . 205) (132 . 276)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74 ) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (24 . 81) (25 . 82) ( - 26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 . 88) (139 . 89) - (140 . 90) (41 . 91) (145 . 203) (146 . 204) (94 . 205) (130 . 206) (131 - . 207) (132 . 208) (133 . 285)) ((21 . 67) (27 . 68) (28 . 69) (29 . 70) ( - 30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 - . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 - . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (145 . 203) ( - 146 . 204) (130 . 152) (-1 . -159)) ((21 . 67) (27 . 68) (28 . 69) (29 . - 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) - (36 . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) ( - 137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (145 . 203) - (146 . 204) (130 . 150) (-1 . -157)) ((94 . -302) (-1 . -302)) ((5 . 12) - (6 . 13) (79 . 142) (92 . 279) (178 . 257) (123 . 258) (124 . 280) (59 . - 281) (142 . 282) (128 . 283) (129 . 284)) ((94 . -152) (-1 . -152)) ((94 - . -151) (-1 . -151)) ((83 . 278) (21 . 67) (27 . 68) (28 . 69) (29 . 70) ( - 30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 - . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 - . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (145 . 203) ( - 146 . 204) (130 . 206) (132 . 275) (94 . 205) (131 . 276)) ((21 . 67) (27 - . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75 - ) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) ( - 135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) - (41 . 91) (145 . 203) (146 . 204) (94 . 205) (130 . 206) (131 . 207) (132 - . 208) (133 . 277)) ((83 . 274) (21 . 67) (27 . 68) (28 . 69) (29 . 70) ( - 30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 - . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 - . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (145 . 203) ( - 146 . 204) (130 . 206) (132 . 275) (94 . 205) (131 . 276)) ((37 . 273) (-1 - . -132)) ((-1 . -129)) ((-1 . -125)) ((-1 . -142)) ((-1 . -122)) ((37 . - 272) (-1 . -123)) ((-1 . -120)) ((-1 . -113)) ((90 . 221) (92 . 222) (91 - . -211) (82 . -211)) ((43 . 267) (89 . 268) (163 . 1) (162 . 2) (161 . 3) - (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) - (5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) ( - 154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 269) (80 . 25) (92 - . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 - . 33) (165 . 34) (152 . 35) (169 . 270) (24 . 81) (25 . 82) (26 . 83) ( - 145 . 223) (122 . 271)) ((91 . 265) (21 . 67) (27 . 68) (28 . 69) (29 . 70 - ) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) ( - 36 . 78) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 - . 85) (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (42 - . 92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (145 . 146) (146 - . 147) (147 . 100) (167 . 227) (118 . 228) (119 . 229) (121 . 266)) ((-1 - . -197)) ((79 . 142) (124 . 264) (24 . 81) (25 . 82) (26 . 83) (145 . 250) - (-1 . -193)) ((-1 . -196)) ((91 . 263)) ((5 . 12) (6 . 13) (178 . 257) ( - 123 . 258) (142 . 259) (90 . 140) (92 . 260) (79 . 142) (117 . 143) (124 - . 261) (166 . 262) (91 . -205) (82 . -205)) ((82 . -201) (91 . -201)) ((82 - . 256) (91 . -199)) ((91 . 255)) ((-1 . -233)) ((89 . 254)) ((-1 . -224)) - ((24 . 81) (25 . 82) (26 . 83) (145 . 223) (122 . 253)) ((43 . 249) (24 - . 81) (25 . 82) (26 . 83) (145 . 250) (89 . 251) (163 . 1) (162 . 2) (161 - . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 - . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 - . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . - 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . - 32) (173 . 33) (165 . 34) (152 . 35) (169 . 252)) ((89 . 248) (-1 . -29)) - ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 - . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) ( - 176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) ( - 78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (88 . 239) (90 . 240) ( - 153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (114 . 241) - (165 . 34) (152 . 35) (115 . 242) (84 . 243) (169 . 244) (141 . 245) (116 - . 246) (170 . 247)) ((-1 . -35)) ((5 . 12) (6 . 13) (178 . 329)) ((7 . 8) - (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . - 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) - (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) - (163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (156 - . 14) (155 . 15) (154 . 19) (153 . 28) (152 . 295) (127 . 328)) ((58 . - -243) (88 . -243) (90 . -243)) ((58 . 326) (88 . 239) (90 . 240) (114 . - 327)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . - 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . - 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . - 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (88 . 239) (90 . - 240) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (114 - . 241) (165 . 34) (152 . 35) (115 . 242) (84 . 243) (169 . 244) (141 . 245 - ) (116 . 246) (170 . 325)) ((83 . -235) (82 . -235)) ((83 . -239) (82 . - -239)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 - . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 - . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 - . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . - 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (84 . - 243) (169 . 244) (141 . 324)) ((83 . 322) (82 . 323)) ((-1 . -229)) ((163 - . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) ( - 2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16 - ) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) - (79 . 24) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) - (85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (169 . 321)) ((-1 . - -198)) ((-1 . -222)) ((89 . 320)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) - (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) - (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) - (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) ( - 174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) ( - 165 . 34) (152 . 35) (169 . 318) (24 . 81) (25 . 82) (26 . 83) (145 . 250) - (89 . 319)) ((-1 . -223)) ((-1 . -232)) ((21 . 67) (27 . 68) (28 . 69) ( + 26 . 83) (136 . 84) (137 . 85) (138 . 86) (139 . 87) (40 . 88) (140 . 89) + (141 . 90) (41 . 91) (146 . 203) (147 . 204) (94 . 205) (131 . 206) (132 + . 207) (133 . 208) (134 . 277)) ((83 . 274) (21 . 67) (27 . 68) (28 . 69) + (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 + . 77) (36 . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 . + 85) (138 . 86) (139 . 87) (40 . 88) (140 . 89) (141 . 90) (41 . 91) (146 + . 203) (147 . 204) (131 . 206) (133 . 275) (94 . 205) (132 . 276)) ((37 . + 273) (-1 . -131)) ((-1 . -128)) ((-1 . -124)) ((-1 . -141)) ((-1 . -121)) + ((37 . 272) (-1 . -122)) ((-1 . -119)) ((-1 . -112)) ((90 . 221) (92 . 222 + ) (91 . -210) (82 . -210)) ((43 . 267) (89 . 268) (164 . 1) (163 . 2) (162 + . 3) (161 . 4) (160 . 5) (159 . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 + . 11) (5 . 12) (6 . 13) (157 . 14) (156 . 15) (177 . 16) (178 . 17) (179 + . 18) (155 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 269) (80 . + 25) (92 . 26) (175 . 27) (154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 . + 32) (174 . 33) (166 . 34) (153 . 35) (170 . 270) (24 . 81) (25 . 82) (26 + . 83) (146 . 223) (123 . 271)) ((91 . 265) (21 . 67) (27 . 68) (28 . 69) ( 29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 - . 77) (36 . 78) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (135 . - 84) (136 . 85) (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 - . 91) (42 . 92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (145 . - 146) (146 . 147) (147 . 100) (167 . 227) (118 . 316) (22 . 317)) ((-1 . - -180)) ((90 . 314) (92 . 315) (-1 . -179)) ((91 . -203) (82 . -203)) ((90 - . 140) (117 . 143) (166 . 226) (21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 - . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . - 78) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85 - ) (137 . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (42 . 92 - ) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (144 . 97) (145 . 146) (146 . - 147) (147 . 100) (167 . 227) (118 . 228) (119 . 229) (121 . 230) (91 . 231 - ) (5 . 12) (6 . 13) (79 . 142) (92 . 260) (178 . 257) (123 . 258) (124 . - 261) (142 . 305)) ((90 . 140) (117 . 220) (5 . 12) (6 . 13) (92 . 260) ( - 178 . 257) (123 . 304) (91 . -210) (82 . -210)) ((91 . -204) (82 . -204)) - ((-1 . -213)) ((-1 . -195)) ((-1 . -231)) ((91 . 313)) ((24 . 81) (25 . 82 - ) (26 . 83) (145 . 223) (122 . 312)) ((-1 . -217)) ((89 . 311) (-1 . -29)) - ((89 . 310)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) - (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) - (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) - (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (153 . 28) ( - 81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) ( - 169 . 307) (24 . 81) (25 . 82) (26 . 83) (145 . 250) (89 . 308) (43 . 309) - ) ((-1 . -124)) ((-1 . -131)) ((-1 . -144)) ((94 . -153) (-1 . -153)) ((94 - . -154) (-1 . -154)) ((83 . 306) (21 . 67) (27 . 68) (28 . 69) (29 . 70) - (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 - . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 - . 86) (138 . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (145 . 203) ( - 146 . 204) (130 . 206) (132 . 275) (94 . 205) (131 . 276)) ((-1 . -147)) ( - (5 . 12) (6 . 13) (79 . 142) (92 . 279) (178 . 257) (123 . 258) (124 . 280 - ) (142 . 305)) ((5 . 12) (6 . 13) (92 . 279) (178 . 257) (123 . 304)) ((7 - . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) ( - 178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 - . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 - . 60) (163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7 - ) (156 . 14) (155 . 15) (154 . 19) (153 . 28) (152 . 295) (127 . 303)) (( - 59 . 302) (47 . -162) (82 . -162)) ((47 . -160) (82 . -160)) ((47 . 300) ( - 82 . 301)) ((83 . 299) (21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) ( - 31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 - . 79) (24 . 81) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 - . 87) (40 . 88) (139 . 89) (140 . 90) (41 . 91) (145 . 203) (146 . 204) ( - 130 . 206) (132 . 275) (94 . 205) (131 . 276)) ((-1 . -167)) ((83 . 297) ( - 5 . 12) (6 . 13) (178 . 199) (125 . 298)) ((7 . 8) (2 . 9) (3 . 10) (4 . - 11) (5 . 12) (6 . 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) - (77 . 22) (78 . 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) ( - 85 . 31) (86 . 32) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 2) ( - 161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (156 . 14) (155 . 15) ( - 154 . 19) (153 . 28) (152 . 295) (127 . 296)) ((82 . 293) (83 . 294)) ((-1 - . -65)) ((91 . -19) (82 . -19)) ((91 . -17) (82 . -17)) ((5 . 12) (6 . 13 - ) (178 . 199) (125 . 298) (83 . 357)) ((-1 . -165)) ((-1 . -81)) ((83 . - -173) (82 . -173)) ((-1 . -168)) ((83 . -171) (82 . -171)) ((-1 . -146)) ( - (93 . 354) (97 . 355) (148 . 356) (94 . -292) (-1 . -292)) ((5 . 12) (6 . - 13) (79 . 142) (92 . 279) (178 . 257) (123 . 258) (124 . 280) (59 . 281) ( - 142 . 282) (128 . 353)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . - 13) (176 . 16) (177 . 17) (178 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . - 23) (79 . 24) (80 . 25) (174 . 27) (81 . 29) (164 . 30) (85 . 31) (86 . 32 - ) (173 . 33) (92 . 26) (165 . 60) (163 . 1) (162 . 2) (161 . 3) (160 . 4) - (159 . 5) (158 . 6) (157 . 7) (156 . 14) (155 . 15) (154 . 19) (153 . 28) - (152 . 295) (127 . 352)) ((47 . -164) (82 . -164)) ((90 . 314) (92 . 315) - (-1 . -178)) ((91 . 351)) ((-1 . -143)) ((89 . 350)) ((-1 . -215)) ((163 - . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) ( - 2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16 - ) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) - (79 . 24) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) - (85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (169 . 349)) ((-1 . - -216)) ((-1 . -228)) ((89 . 347) (24 . 81) (25 . 82) (26 . 83) (145 . 250) - (163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 - . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) ( - 176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) ( - 78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) ( - 164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (169 . 348) - ) ((-1 . -230)) ((43 . 342) (89 . 343) (163 . 1) (162 . 2) (161 . 3) (160 - . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . - 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 - . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 344) (80 . 25) (92 . - 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . - 33) (165 . 34) (152 . 35) (169 . 345) (24 . 81) (25 . 82) (26 . 83) (145 - . 223) (122 . 346)) ((91 . 338) (5 . 12) (6 . 13) (178 . 339) (120 . 340) - (21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 - . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (23 . 80) (24 . 81 - ) (25 . 82) (26 . 83) (135 . 84) (136 . 85) (137 . 86) (138 . 87) (40 . 88 - ) (139 . 89) (140 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94) (45 . 95) - (46 . 96) (144 . 97) (145 . 146) (146 . 147) (147 . 100) (167 . 227) (118 - . 228) (119 . 229) (121 . 341)) ((82 . -202) (91 . -202)) ((91 . -200)) (( - 89 . 337)) ((-1 . -226)) ((-1 . -221)) ((89 . 336)) ((-1 . -14)) ((83 . - 333) (163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) - (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) - (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) - (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) ( - 164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (84 . 243) - (169 . 244) (141 . 334) (88 . 239) (90 . 240) (114 . 241) (115 . 242) (116 - . 335)) ((83 . -238) (82 . -238)) ((82 . 331) (83 . 332)) ((-1 . -242)) ( - (58 . -244) (88 . -244) (90 . -244)) ((89 . 330)) ((58 . -246) (90 . -246) - (88 . -246)) ((58 . -245) (90 . -245) (88 . -245)) ((163 . 1) (162 . 2) ( - 161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) - (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) ( - 178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 - . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 - . 32) (173 . 33) (165 . 34) (152 . 35) (84 . 243) (169 . 244) (141 . 334) - (88 . 239) (90 . 240) (114 . 241) (115 . 242) (116 . 335) (83 . 371)) ((83 - . -236) (82 . -236)) ((-1 . -15)) ((83 . -241) (82 . -241)) ((163 . 1) ( - 162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) - (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 - . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 - . 24) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 - . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (84 . 243) (169 . 244) ( - 141 . 370)) ((-1 . -227)) ((-1 . -225)) ((-1 . -192)) ((91 . -206) (82 . - -206)) ((91 . 368) (82 . 369)) ((91 . 367)) ((24 . 81) (25 . 82) (26 . 83) - (145 . 223) (122 . 366)) ((-1 . -185)) ((89 . 365) (-1 . -29)) ((89 . 364 - )) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) (158 . 6) (157 . 7) - (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (156 . 14) (155 . 15) - (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) (76 . 21) (77 . 22) - (78 . 23) (80 . 25) (92 . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) ( - 85 . 31) (86 . 32) (173 . 33) (165 . 34) (152 . 35) (169 . 360) (24 . 81) - (25 . 82) (26 . 83) (145 . 250) (89 . 361) (43 . 362) (79 . 363)) ((-1 . - -219)) ((89 . 359)) ((89 . 358)) ((-1 . -214)) ((-1 . -181)) ((47 . -163) - (82 . -163)) ((47 . -161) (82 . -161)) ((94 . -301) (-1 . -301)) ((94 . - -293) (-1 . -293)) ((94 . -155) (-1 . -155)) ((-1 . -166)) ((-1 . -220)) ( - (-1 . -218)) ((89 . 376)) ((-1 . -183)) ((163 . 1) (162 . 2) (161 . 3) ( - 160 . 4) (159 . 5) (158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) ( - 5 . 12) (6 . 13) (156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) ( - 154 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 - . 26) (174 . 27) (153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 - . 33) (165 . 34) (152 . 35) (169 . 375)) ((89 . 374) (-1 . -29)) ((-1 . - -184)) ((-1 . -189)) ((163 . 1) (162 . 2) (161 . 3) (160 . 4) (159 . 5) ( - 158 . 6) (157 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) ( - 156 . 14) (155 . 15) (176 . 16) (177 . 17) (178 . 18) (154 . 19) (75 . 20) - (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (174 . 27) ( - 153 . 28) (81 . 29) (164 . 30) (85 . 31) (86 . 32) (173 . 33) (165 . 34) ( - 152 . 35) (169 . 373) (24 . 81) (25 . 82) (26 . 83) (145 . 250)) ((-1 . - -190)) ((-1 . -191)) ((5 . 12) (6 . 13) (178 . 372)) ((83 . -240) (82 . - -240)) ((83 . -237) (82 . -237)) ((91 . -207) (82 . -207)) ((89 . 378)) (( - -1 . -188)) ((89 . 377)) ((-1 . -182)) ((-1 . -187)) ((-1 . -186)))) + . 77) (36 . 78) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (136 . + 84) (137 . 85) (138 . 86) (139 . 87) (40 . 88) (140 . 89) (141 . 90) (41 + . 91) (42 . 92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (145 . 97) (146 . + 146) (147 . 147) (148 . 100) (168 . 227) (119 . 228) (120 . 229) (122 . + 266)) ((-1 . -196)) ((79 . 142) (125 . 264) (24 . 81) (25 . 82) (26 . 83) + (146 . 250) (-1 . -192)) ((-1 . -195)) ((91 . 263)) ((5 . 12) (6 . 13) ( + 179 . 257) (124 . 258) (143 . 259) (90 . 140) (92 . 260) (79 . 142) (118 + . 143) (125 . 261) (167 . 262) (91 . -204) (82 . -204)) ((82 . -200) (91 + . -200)) ((82 . 256) (91 . -198)) ((91 . 255)) ((-1 . -232)) ((89 . 254)) + ((-1 . -223)) ((24 . 81) (25 . 82) (26 . 83) (146 . 223) (123 . 253)) ((43 + . 249) (24 . 81) (25 . 82) (26 . 83) (146 . 250) (89 . 251) (164 . 1) ( + 163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 . 6) (158 . 7) (7 . 8) (2 . 9) + (3 . 10) (4 . 11) (5 . 12) (6 . 13) (157 . 14) (156 . 15) (177 . 16) (178 + . 17) (179 . 18) (155 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 + . 24) (80 . 25) (92 . 26) (175 . 27) (154 . 28) (81 . 29) (165 . 30) (85 + . 31) (86 . 32) (174 . 33) (166 . 34) (153 . 35) (170 . 252)) ((89 . 248) + (-1 . -28)) ((164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 . 6) ( + 158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (157 . 14) ( + 156 . 15) (177 . 16) (178 . 17) (179 . 18) (155 . 19) (75 . 20) (76 . 21) + (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (175 . 27) (88 . 239) ( + 90 . 240) (154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) ( + 115 . 241) (166 . 34) (153 . 35) (116 . 242) (84 . 243) (170 . 244) (142 + . 245) (117 . 246) (171 . 247)) ((-1 . -34)) ((5 . 12) (6 . 13) (179 . 329 + )) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16) (178 . + 17) (179 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) + (175 . 27) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (92 . 26) + (166 . 60) (164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 . 6) ( + 158 . 7) (157 . 14) (156 . 15) (155 . 19) (154 . 28) (153 . 295) (128 . + 328)) ((58 . -242) (88 . -242) (90 . -242)) ((58 . 326) (88 . 239) (90 . + 240) (115 . 327)) ((164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 + . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (157 . + 14) (156 . 15) (177 . 16) (178 . 17) (179 . 18) (155 . 19) (75 . 20) (76 + . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (175 . 27) (88 . + 239) (90 . 240) (154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 + . 33) (115 . 241) (166 . 34) (153 . 35) (116 . 242) (84 . 243) (170 . 244) + (142 . 245) (117 . 246) (171 . 325)) ((83 . -234) (82 . -234)) ((83 . + -238) (82 . -238)) ((164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 + . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (157 + . 14) (156 . 15) (177 . 16) (178 . 17) (179 . 18) (155 . 19) (75 . 20) (76 + . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (175 . 27) (154 + . 28) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 . 34) (153 + . 35) (84 . 243) (170 . 244) (142 . 324)) ((83 . 322) (82 . 323)) ((-1 . + -228)) ((164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 . 6) (158 + . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (157 . 14) (156 + . 15) (177 . 16) (178 . 17) (179 . 18) (155 . 19) (75 . 20) (76 . 21) (77 + . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (175 . 27) (154 . 28) (81 . + 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 . 34) (153 . 35) (170 + . 321)) ((-1 . -197)) ((-1 . -221)) ((89 . 320)) ((164 . 1) (163 . 2) (162 + . 3) (161 . 4) (160 . 5) (159 . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 + . 11) (5 . 12) (6 . 13) (157 . 14) (156 . 15) (177 . 16) (178 . 17) (179 + . 18) (155 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . + 25) (92 . 26) (175 . 27) (154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 . + 32) (174 . 33) (166 . 34) (153 . 35) (170 . 318) (24 . 81) (25 . 82) (26 + . 83) (146 . 250) (89 . 319)) ((-1 . -222)) ((-1 . -231)) ((21 . 67) (27 + . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75 + ) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (23 . 80) (24 . 81) (25 . 82) ( + 26 . 83) (136 . 84) (137 . 85) (138 . 86) (139 . 87) (40 . 88) (140 . 89) + (141 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) ( + 145 . 97) (146 . 146) (147 . 147) (148 . 100) (168 . 227) (119 . 316) (22 + . 317)) ((-1 . -179)) ((90 . 314) (92 . 315) (-1 . -178)) ((91 . -202) (82 + . -202)) ((90 . 140) (118 . 143) (167 . 226) (21 . 67) (27 . 68) (28 . 69 + ) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) ( + 37 . 77) (36 . 78) (39 . 79) (23 . 80) (24 . 81) (25 . 82) (26 . 83) (136 + . 84) (137 . 85) (138 . 86) (139 . 87) (40 . 88) (140 . 89) (141 . 90) (41 + . 91) (42 . 92) (43 . 93) (44 . 94) (45 . 95) (46 . 96) (145 . 97) (146 + . 146) (147 . 147) (148 . 100) (168 . 227) (119 . 228) (120 . 229) (122 . + 230) (91 . 231) (5 . 12) (6 . 13) (79 . 142) (92 . 260) (179 . 257) (124 + . 258) (125 . 261) (143 . 305)) ((90 . 140) (118 . 220) (5 . 12) (6 . 13) + (92 . 260) (179 . 257) (124 . 304) (91 . -209) (82 . -209)) ((91 . -203) ( + 82 . -203)) ((-1 . -212)) ((-1 . -194)) ((-1 . -230)) ((91 . 313)) ((24 . + 81) (25 . 82) (26 . 83) (146 . 223) (123 . 312)) ((-1 . -216)) ((89 . 311) + (-1 . -28)) ((89 . 310)) ((164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . + 5) (159 . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) + (157 . 14) (156 . 15) (177 . 16) (178 . 17) (179 . 18) (155 . 19) (75 . + 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (175 . 27) + (154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 . 34) + (153 . 35) (170 . 307) (24 . 81) (25 . 82) (26 . 83) (146 . 250) (89 . + 308) (43 . 309)) ((-1 . -123)) ((-1 . -130)) ((-1 . -143)) ((94 . -152) ( + -1 . -152)) ((94 . -153) (-1 . -153)) ((83 . 306) (21 . 67) (27 . 68) (28 + . 69) (29 . 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76 + ) (37 . 77) (36 . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (136 . 84) ( + 137 . 85) (138 . 86) (139 . 87) (40 . 88) (140 . 89) (141 . 90) (41 . 91) + (146 . 203) (147 . 204) (131 . 206) (133 . 275) (94 . 205) (132 . 276)) (( + -1 . -146)) ((5 . 12) (6 . 13) (79 . 142) (92 . 279) (179 . 257) (124 . + 258) (125 . 280) (143 . 305)) ((5 . 12) (6 . 13) (92 . 279) (179 . 257) ( + 124 . 304)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16 + ) (178 . 17) (179 . 18) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) + (80 . 25) (175 . 27) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) ( + 92 . 26) (166 . 60) (164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 + . 6) (158 . 7) (157 . 14) (156 . 15) (155 . 19) (154 . 28) (153 . 295) ( + 128 . 303)) ((59 . 302) (47 . -161) (82 . -161)) ((47 . -159) (82 . -159)) + ((47 . 300) (82 . 301)) ((83 . 299) (21 . 67) (27 . 68) (28 . 69) (29 . + 70) (30 . 71) (31 . 72) (32 . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) + (36 . 78) (39 . 79) (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 . 85) ( + 138 . 86) (139 . 87) (40 . 88) (140 . 89) (141 . 90) (41 . 91) (146 . 203) + (147 . 204) (131 . 206) (133 . 275) (94 . 205) (132 . 276)) ((-1 . -166)) + ((83 . 297) (5 . 12) (6 . 13) (179 . 199) (126 . 298)) ((7 . 8) (2 . 9) ( + 3 . 10) (4 . 11) (5 . 12) (6 . 13) (177 . 16) (178 . 17) (179 . 18) (75 . + 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (175 . 27) (81 . 29) + (165 . 30) (85 . 31) (86 . 32) (174 . 33) (92 . 26) (166 . 60) (164 . 1) + (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 . 6) (158 . 7) (157 . 14) ( + 156 . 15) (155 . 19) (154 . 28) (153 . 295) (128 . 296)) ((82 . 293) (83 + . 294)) ((-1 . -64)) ((91 . -18) (82 . -18)) ((91 . -16) (82 . -16)) ((5 + . 12) (6 . 13) (179 . 199) (126 . 298) (83 . 357)) ((-1 . -164)) ((-1 . + -80)) ((83 . -172) (82 . -172)) ((-1 . -167)) ((83 . -170) (82 . -170)) (( + -1 . -145)) ((93 . 354) (97 . 355) (149 . 356) (94 . -292) (-1 . -292)) (( + 5 . 12) (6 . 13) (79 . 142) (92 . 279) (179 . 257) (124 . 258) (125 . 280) + (59 . 281) (143 . 282) (129 . 353)) ((7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 + . 12) (6 . 13) (177 . 16) (178 . 17) (179 . 18) (75 . 20) (76 . 21) (77 + . 22) (78 . 23) (79 . 24) (80 . 25) (175 . 27) (81 . 29) (165 . 30) (85 . + 31) (86 . 32) (174 . 33) (92 . 26) (166 . 60) (164 . 1) (163 . 2) (162 . 3 + ) (161 . 4) (160 . 5) (159 . 6) (158 . 7) (157 . 14) (156 . 15) (155 . 19) + (154 . 28) (153 . 295) (128 . 352)) ((47 . -163) (82 . -163)) ((90 . 314) + (92 . 315) (-1 . -177)) ((91 . 351)) ((-1 . -142)) ((89 . 350)) ((-1 . + -214)) ((164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 . 6) (158 + . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (157 . 14) (156 + . 15) (177 . 16) (178 . 17) (179 . 18) (155 . 19) (75 . 20) (76 . 21) (77 + . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (175 . 27) (154 . 28) (81 . + 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 . 34) (153 . 35) (170 + . 349)) ((-1 . -215)) ((-1 . -227)) ((89 . 347) (24 . 81) (25 . 82) (26 . + 83) (146 . 250) (164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 . 6 + ) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (157 . 14) + (156 . 15) (177 . 16) (178 . 17) (179 . 18) (155 . 19) (75 . 20) (76 . 21 + ) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (175 . 27) (154 . 28) + (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 . 34) (153 . 35) + (170 . 348)) ((-1 . -229)) ((43 . 342) (89 . 343) (164 . 1) (163 . 2) (162 + . 3) (161 . 4) (160 . 5) (159 . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 + . 11) (5 . 12) (6 . 13) (157 . 14) (156 . 15) (177 . 16) (178 . 17) (179 + . 18) (155 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 344) (80 . + 25) (92 . 26) (175 . 27) (154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 . + 32) (174 . 33) (166 . 34) (153 . 35) (170 . 345) (24 . 81) (25 . 82) (26 + . 83) (146 . 223) (123 . 346)) ((91 . 338) (5 . 12) (6 . 13) (179 . 339) ( + 121 . 340) (21 . 67) (27 . 68) (28 . 69) (29 . 70) (30 . 71) (31 . 72) (32 + . 73) (33 . 74) (34 . 75) (35 . 76) (37 . 77) (36 . 78) (39 . 79) (23 . + 80) (24 . 81) (25 . 82) (26 . 83) (136 . 84) (137 . 85) (138 . 86) (139 . + 87) (40 . 88) (140 . 89) (141 . 90) (41 . 91) (42 . 92) (43 . 93) (44 . 94 + ) (45 . 95) (46 . 96) (145 . 97) (146 . 146) (147 . 147) (148 . 100) (168 + . 227) (119 . 228) (120 . 229) (122 . 341)) ((82 . -201) (91 . -201)) ((91 + . -199)) ((89 . 337)) ((-1 . -225)) ((-1 . -220)) ((89 . 336)) ((-1 . -13 + )) ((83 . 333) (164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 . 6) + (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (157 . 14) + (156 . 15) (177 . 16) (178 . 17) (179 . 18) (155 . 19) (75 . 20) (76 . 21) + (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (175 . 27) (154 . 28) ( + 81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 . 34) (153 . 35) ( + 84 . 243) (170 . 244) (142 . 334) (88 . 239) (90 . 240) (115 . 241) (116 + . 242) (117 . 335)) ((83 . -237) (82 . -237)) ((82 . 331) (83 . 332)) ((-1 + . -241)) ((58 . -243) (88 . -243) (90 . -243)) ((89 . 330)) ((58 . -245) + (90 . -245) (88 . -245)) ((58 . -244) (90 . -244) (88 . -244)) ((164 . 1) + (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 . 6) (158 . 7) (7 . 8) (2 . 9 + ) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (157 . 14) (156 . 15) (177 . 16) ( + 178 . 17) (179 . 18) (155 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) ( + 79 . 24) (80 . 25) (92 . 26) (175 . 27) (154 . 28) (81 . 29) (165 . 30) ( + 85 . 31) (86 . 32) (174 . 33) (166 . 34) (153 . 35) (84 . 243) (170 . 244) + (142 . 334) (88 . 239) (90 . 240) (115 . 241) (116 . 242) (117 . 335) (83 + . 371)) ((83 . -235) (82 . -235)) ((-1 . -14)) ((83 . -240) (82 . -240)) + ((164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 . 6) (158 . 7) (7 + . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (157 . 14) (156 . 15) ( + 177 . 16) (178 . 17) (179 . 18) (155 . 19) (75 . 20) (76 . 21) (77 . 22) ( + 78 . 23) (79 . 24) (80 . 25) (92 . 26) (175 . 27) (154 . 28) (81 . 29) ( + 165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 . 34) (153 . 35) (84 . 243) + (170 . 244) (142 . 370)) ((-1 . -226)) ((-1 . -224)) ((-1 . -191)) ((91 . + -205) (82 . -205)) ((91 . 368) (82 . 369)) ((91 . 367)) ((24 . 81) (25 . + 82) (26 . 83) (146 . 223) (123 . 366)) ((-1 . -184)) ((89 . 365) (-1 . -28 + )) ((89 . 364)) ((164 . 1) (163 . 2) (162 . 3) (161 . 4) (160 . 5) (159 . + 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 . 13) (157 . 14 + ) (156 . 15) (177 . 16) (178 . 17) (179 . 18) (155 . 19) (75 . 20) (76 . + 21) (77 . 22) (78 . 23) (80 . 25) (92 . 26) (175 . 27) (154 . 28) (81 . 29 + ) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 . 34) (153 . 35) (170 . + 360) (24 . 81) (25 . 82) (26 . 83) (146 . 250) (89 . 361) (43 . 362) (79 + . 363)) ((-1 . -218)) ((89 . 359)) ((89 . 358)) ((-1 . -213)) ((-1 . -180) + ) ((47 . -162) (82 . -162)) ((47 . -160) (82 . -160)) ((94 . -301) (-1 . + -301)) ((94 . -293) (-1 . -293)) ((94 . -154) (-1 . -154)) ((-1 . -165)) ( + (-1 . -219)) ((-1 . -217)) ((89 . 376)) ((-1 . -182)) ((164 . 1) (163 . 2) + (162 . 3) (161 . 4) (160 . 5) (159 . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10 + ) (4 . 11) (5 . 12) (6 . 13) (157 . 14) (156 . 15) (177 . 16) (178 . 17) ( + 179 . 18) (155 . 19) (75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 + . 25) (92 . 26) (175 . 27) (154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 + . 32) (174 . 33) (166 . 34) (153 . 35) (170 . 375)) ((89 . 374) (-1 . -28) + ) ((-1 . -183)) ((-1 . -188)) ((164 . 1) (163 . 2) (162 . 3) (161 . 4) ( + 160 . 5) (159 . 6) (158 . 7) (7 . 8) (2 . 9) (3 . 10) (4 . 11) (5 . 12) (6 + . 13) (157 . 14) (156 . 15) (177 . 16) (178 . 17) (179 . 18) (155 . 19) ( + 75 . 20) (76 . 21) (77 . 22) (78 . 23) (79 . 24) (80 . 25) (92 . 26) (175 + . 27) (154 . 28) (81 . 29) (165 . 30) (85 . 31) (86 . 32) (174 . 33) (166 + . 34) (153 . 35) (170 . 373) (24 . 81) (25 . 82) (26 . 83) (146 . 250)) (( + -1 . -189)) ((-1 . -190)) ((5 . 12) (6 . 13) (179 . 372)) ((83 . -239) (82 + . -239)) ((83 . -236) (82 . -236)) ((91 . -206) (82 . -206)) ((89 . 378)) + ((-1 . -187)) ((89 . 377)) ((-1 . -181)) ((-1 . -186)) ((-1 . -185)))) (define rto-v - #(#f 180 174 174 174 174 173 173 173 173 173 173 173 173 173 173 172 172 - 172 172 168 168 165 165 165 165 165 165 164 164 164 164 164 164 163 163 - 162 162 162 162 161 161 161 160 160 160 159 159 159 159 159 158 158 158 - 157 157 156 156 155 155 154 154 153 153 152 152 169 169 151 151 151 151 - 151 151 151 151 151 151 151 175 175 127 103 103 149 167 167 167 167 167 - 167 167 167 150 150 143 143 147 147 147 147 147 146 146 146 146 146 146 - 146 146 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 140 - 140 140 140 140 140 140 140 140 140 140 139 139 139 138 138 138 138 137 - 137 137 137 137 137 134 134 133 133 133 133 132 130 130 130 130 129 129 - 128 128 128 136 136 136 136 136 126 126 125 125 145 145 145 144 142 142 - 123 123 123 123 123 123 123 123 123 123 123 123 123 124 124 124 124 122 - 122 121 121 119 119 118 118 118 120 120 171 171 166 166 166 117 117 117 - 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 117 - 135 141 141 141 170 170 170 170 116 115 115 114 114 106 106 106 106 106 - 106 106 113 113 113 112 112 105 105 104 104 111 111 110 110 110 109 109 - 109 102 102 102 101 101 108 108 108 108 108 179 179 100 100 100 100 100 99 - 99 98 98 148 148 178 178 177 177 177 176 176 97 131 107)) + #(#f 175 175 175 175 174 174 174 174 174 174 174 174 174 174 173 173 173 + 173 169 169 166 166 166 166 166 166 165 165 165 165 165 165 164 164 163 + 163 163 163 162 162 162 161 161 161 160 160 160 160 160 159 159 159 158 + 158 157 157 156 156 155 155 154 154 153 153 170 170 152 152 152 152 152 + 152 152 152 152 152 152 176 176 128 104 104 150 168 168 168 168 168 168 + 168 168 151 151 144 144 148 148 148 148 148 147 147 147 147 147 147 147 + 147 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 141 + 141 141 141 141 141 141 141 141 141 140 140 140 139 139 139 139 138 138 + 138 138 138 138 135 135 134 134 134 134 133 131 131 131 131 130 130 129 + 129 129 137 137 137 137 137 127 127 126 126 146 146 146 145 143 143 124 + 124 124 124 124 124 124 124 124 124 124 124 124 125 125 125 125 123 123 + 122 122 120 120 119 119 119 121 121 172 172 167 167 167 118 118 118 118 + 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 118 136 + 142 142 142 171 171 171 171 117 116 116 115 115 107 107 107 107 107 107 + 107 114 114 114 113 113 106 106 105 105 112 112 111 111 111 110 110 110 + 103 103 103 102 102 109 109 109 109 109 180 101 101 100 100 100 100 100 99 + 99 98 98 149 149 179 179 178 178 178 177 177 97 132 108)) (define mtab '((cpp-stmt . 1) ($chlit . 2) ($float . 3) ($fixed . 4) (cpp-ident . 5) ( diff --git a/module/nyacc/lang/c99/mach.d/cppact.scm b/module/nyacc/lang/c99/mach.d/cppact.scm index f0b800fa..d806e41e 100644 --- a/module/nyacc/lang/c99/mach.d/cppact.scm +++ b/module/nyacc/lang/c99/mach.d/cppact.scm @@ -93,6 +93,8 @@ (lambda ($2 $1 . $rest) `(post-inc ,$1)) ;; postfix-expression => postfix-expression "--" (lambda ($2 $1 . $rest) `(post-dec ,$1)) + ;; primary-expression => '$ident + (lambda ($1 . $rest) `(ident ,$1)) ;; primary-expression => '$fixed (lambda ($1 . $rest) `(fixed ,$1)) ;; primary-expression => '$chlit diff --git a/module/nyacc/lang/c99/mach.d/cpptab.scm b/module/nyacc/lang/c99/mach.d/cpptab.scm index 80945c53..d0edf440 100644 --- a/module/nyacc/lang/c99/mach.d/cpptab.scm +++ b/module/nyacc/lang/c99/mach.d/cpptab.scm @@ -8,96 +8,100 @@ (define len-v #(1 1 5 1 3 1 3 1 3 1 3 1 3 1 3 3 1 3 3 3 3 1 3 3 1 3 3 1 3 3 3 1 2 2 2 2 - 2 2 1 2 2 1 1 4 3 1 3)) + 2 2 1 2 2 1 1 1 4 3 1 3)) (define pat-v - #(((4 . 1) (5 . 2) (6 . 3) (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 - . 9) (16 . 10) (15 . 11) (38 . 12) (39 . 13) (40 . 14) (41 . 15) (42 . 16) - (43 . 17) (44 . 18) (45 . 19) (46 . 20) (47 . 21) (48 . 22) (49 . 23) (50 - . 24)) ((4 . 1) (5 . 2) (6 . 3) (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) - (11 . 9) (16 . 10) (15 . 11) (38 . 12) (39 . 13) (40 . 14) (41 . 15) (42 - . 16) (43 . 17) (44 . 18) (45 . 19) (46 . 20) (47 . 21) (48 . 22) (49 . 23 - ) (50 . 53) (36 . 54)) ((4 . 52)) ((-1 . -42)) ((-1 . -41)) ((-1 . -38)) ( - (4 . 1) (5 . 2) (6 . 3) (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) - (16 . 10) (15 . 11) (38 . 12) (39 . 51)) ((4 . 1) (5 . 2) (6 . 3) (7 . 4) - (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 . 11) (38 . 12) - (39 . 50)) ((4 . 1) (5 . 2) (6 . 3) (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 - . 8) (11 . 9) (16 . 10) (15 . 11) (38 . 12) (39 . 49)) ((4 . 1) (5 . 2) (6 - . 3) (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 . - 11) (38 . 12) (39 . 48)) ((4 . 1) (5 . 2) (6 . 3) (7 . 4) (37 . 5) (8 . 6) - (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 . 11) (38 . 12) (39 . 47)) ((4 . - 1) (5 . 2) (6 . 3) (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 - . 10) (15 . 11) (38 . 12) (39 . 46)) ((9 . 44) (8 . 45) (-1 . -31)) ((-1 - . -27)) ((14 . 41) (13 . 42) (12 . 43) (-1 . -24)) ((16 . 39) (15 . 40) ( - -1 . -21)) ((18 . 37) (17 . 38) (-1 . -16)) ((22 . 33) (21 . 34) (20 . 35) - (19 . 36) (-1 . -13)) ((24 . 31) (23 . 32) (-1 . -11)) ((25 . 30) (-1 . - -9)) ((26 . 29) (-1 . -7)) ((27 . 28) (-1 . -5)) ((28 . 27) (-1 . -3)) (( - 31 . 25) (29 . 26) (2 . -1) (1 . -1) (35 . -1)) ((35 . 0)) ((4 . 1) (5 . 2 - ) (6 . 3) (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 - . 11) (38 . 12) (39 . 13) (40 . 14) (41 . 15) (42 . 16) (43 . 17) (44 . - 18) (45 . 19) (46 . 20) (47 . 21) (48 . 22) (49 . 76)) ((4 . 1) (5 . 2) (6 - . 3) (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 . - 11) (38 . 12) (39 . 13) (40 . 14) (41 . 15) (42 . 16) (43 . 17) (44 . 18) - (45 . 19) (46 . 20) (47 . 21) (48 . 75)) ((4 . 1) (5 . 2) (6 . 3) (7 . 4) - (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 . 11) (38 . 12) ( - 39 . 13) (40 . 14) (41 . 15) (42 . 16) (43 . 17) (44 . 18) (45 . 19) (46 - . 20) (47 . 74)) ((4 . 1) (5 . 2) (6 . 3) (7 . 4) (37 . 5) (8 . 6) (9 . 7) - (10 . 8) (11 . 9) (16 . 10) (15 . 11) (38 . 12) (39 . 13) (40 . 14) (41 - . 15) (42 . 16) (43 . 17) (44 . 18) (45 . 19) (46 . 73)) ((4 . 1) (5 . 2) - (6 . 3) (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 - . 11) (38 . 12) (39 . 13) (40 . 14) (41 . 15) (42 . 16) (43 . 17) (44 . 18 - ) (45 . 72)) ((4 . 1) (5 . 2) (6 . 3) (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 - . 8) (11 . 9) (16 . 10) (15 . 11) (38 . 12) (39 . 13) (40 . 14) (41 . 15) - (42 . 16) (43 . 17) (44 . 71)) ((4 . 1) (5 . 2) (6 . 3) (7 . 4) (37 . 5) - (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 . 11) (38 . 12) (39 . 13) - (40 . 14) (41 . 15) (42 . 16) (43 . 70)) ((4 . 1) (5 . 2) (6 . 3) (7 . 4) - (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 . 11) (38 . 12) ( - 39 . 13) (40 . 14) (41 . 15) (42 . 16) (43 . 69)) ((4 . 1) (5 . 2) (6 . 3) - (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 . 11) ( - 38 . 12) (39 . 13) (40 . 14) (41 . 15) (42 . 68)) ((4 . 1) (5 . 2) (6 . 3) - (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 . 11) ( - 38 . 12) (39 . 13) (40 . 14) (41 . 15) (42 . 67)) ((4 . 1) (5 . 2) (6 . 3) - (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 . 11) ( - 38 . 12) (39 . 13) (40 . 14) (41 . 15) (42 . 66)) ((4 . 1) (5 . 2) (6 . 3) - (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 . 11) ( - 38 . 12) (39 . 13) (40 . 14) (41 . 15) (42 . 65)) ((4 . 1) (5 . 2) (6 . 3) - (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 . 11) ( - 38 . 12) (39 . 13) (40 . 14) (41 . 64)) ((4 . 1) (5 . 2) (6 . 3) (7 . 4) ( - 37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 . 11) (38 . 12) ( - 39 . 13) (40 . 14) (41 . 63)) ((4 . 1) (5 . 2) (6 . 3) (7 . 4) (37 . 5) (8 - . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 . 11) (38 . 12) (39 . 13) ( - 40 . 62)) ((4 . 1) (5 . 2) (6 . 3) (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . - 8) (11 . 9) (16 . 10) (15 . 11) (38 . 12) (39 . 13) (40 . 61)) ((4 . 1) (5 - . 2) (6 . 3) (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) - (15 . 11) (38 . 12) (39 . 60)) ((4 . 1) (5 . 2) (6 . 3) (7 . 4) (37 . 5) - (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . 10) (15 . 11) (38 . 12) (39 . 59)) - ((4 . 1) (5 . 2) (6 . 3) (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . - 9) (16 . 10) (15 . 11) (38 . 12) (39 . 58)) ((-1 . -39)) ((-1 . -40)) ((-1 - . -32)) ((-1 . -33)) ((-1 . -34)) ((-1 . -35)) ((-1 . -36)) ((-1 . -37)) - ((3 . 57)) ((2 . -45) (1 . -45)) ((2 . 55) (1 . 56)) ((-1 . -44)) ((4 . 1) - (5 . 2) (6 . 3) (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . - 10) (15 . 11) (38 . 12) (39 . 13) (40 . 14) (41 . 15) (42 . 16) (43 . 17) - (44 . 18) (45 . 19) (46 . 20) (47 . 21) (48 . 22) (49 . 23) (50 . 79)) ((2 - . 78)) ((-1 . -30)) ((-1 . -29)) ((-1 . -28)) ((14 . 41) (13 . 42) (12 . - 43) (-1 . -26)) ((14 . 41) (13 . 42) (12 . 43) (-1 . -25)) ((16 . 39) (15 - . 40) (-1 . -23)) ((16 . 39) (15 . 40) (-1 . -22)) ((18 . 37) (17 . 38) ( - -1 . -20)) ((18 . 37) (17 . 38) (-1 . -19)) ((18 . 37) (17 . 38) (-1 . -18 - )) ((18 . 37) (17 . 38) (-1 . -17)) ((22 . 33) (21 . 34) (20 . 35) (19 . - 36) (-1 . -15)) ((22 . 33) (21 . 34) (20 . 35) (19 . 36) (-1 . -14)) ((24 - . 31) (23 . 32) (-1 . -12)) ((25 . 30) (-1 . -10)) ((26 . 29) (-1 . -8)) ( - (27 . 28) (-1 . -6)) ((28 . 27) (-1 . -4)) ((30 . 77) (29 . 26)) ((4 . 1) - (5 . 2) (6 . 3) (7 . 4) (37 . 5) (8 . 6) (9 . 7) (10 . 8) (11 . 9) (16 . - 10) (15 . 11) (38 . 12) (39 . 13) (40 . 14) (41 . 15) (42 . 16) (43 . 17) - (44 . 18) (45 . 19) (46 . 20) (47 . 21) (48 . 22) (49 . 23) (50 . 80)) (( - -1 . -43)) ((2 . -46) (1 . -46)) ((2 . -2) (1 . -2) (35 . -2)))) + #(((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 . + 9) (11 . 10) (16 . 11) (15 . 12) (38 . 13) (39 . 14) (40 . 15) (41 . 16) ( + 42 . 17) (43 . 18) (44 . 19) (45 . 20) (46 . 21) (47 . 22) (48 . 23) (49 + . 24) (50 . 25)) ((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) + (9 . 8) (10 . 9) (11 . 10) (16 . 11) (15 . 12) (38 . 13) (39 . 14) (40 . + 15) (41 . 16) (42 . 17) (43 . 18) (44 . 19) (45 . 20) (46 . 21) (47 . 22) + (48 . 23) (49 . 24) (50 . 54) (36 . 55)) ((3 . 53)) ((-1 . -43)) ((-1 . + -42)) ((-1 . -41)) ((-1 . -38)) ((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) ( + 37 . 6) (8 . 7) (9 . 8) (10 . 9) (11 . 10) (16 . 11) (15 . 12) (38 . 13) ( + 39 . 52)) ((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8 + ) (10 . 9) (11 . 10) (16 . 11) (15 . 12) (38 . 13) (39 . 51)) ((3 . 1) (4 + . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 . 9) (11 . 10) ( + 16 . 11) (15 . 12) (38 . 13) (39 . 50)) ((3 . 1) (4 . 2) (5 . 3) (6 . 4) ( + 7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 . 9) (11 . 10) (16 . 11) (15 . 12) (38 + . 13) (39 . 49)) ((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7 + ) (9 . 8) (10 . 9) (11 . 10) (16 . 11) (15 . 12) (38 . 13) (39 . 48)) ((3 + . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 . 9) (11 + . 10) (16 . 11) (15 . 12) (38 . 13) (39 . 47)) ((9 . 45) (8 . 46) (-1 . + -31)) ((-1 . -27)) ((14 . 42) (13 . 43) (12 . 44) (-1 . -24)) ((16 . 40) ( + 15 . 41) (-1 . -21)) ((18 . 38) (17 . 39) (-1 . -16)) ((22 . 34) (21 . 35) + (20 . 36) (19 . 37) (-1 . -13)) ((24 . 32) (23 . 33) (-1 . -11)) ((25 . + 31) (-1 . -9)) ((26 . 30) (-1 . -7)) ((27 . 29) (-1 . -5)) ((28 . 28) (-1 + . -3)) ((31 . 26) (29 . 27) (2 . -1) (1 . -1) (35 . -1)) ((35 . 0)) ((3 . + 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 . 9) (11 + . 10) (16 . 11) (15 . 12) (38 . 13) (39 . 14) (40 . 15) (41 . 16) (42 . 17 + ) (43 . 18) (44 . 19) (45 . 20) (46 . 21) (47 . 22) (48 . 23) (49 . 77)) ( + (3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 . 9) + (11 . 10) (16 . 11) (15 . 12) (38 . 13) (39 . 14) (40 . 15) (41 . 16) (42 + . 17) (43 . 18) (44 . 19) (45 . 20) (46 . 21) (47 . 22) (48 . 76)) ((3 . 1 + ) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 . 9) (11 . + 10) (16 . 11) (15 . 12) (38 . 13) (39 . 14) (40 . 15) (41 . 16) (42 . 17) + (43 . 18) (44 . 19) (45 . 20) (46 . 21) (47 . 75)) ((3 . 1) (4 . 2) (5 . 3 + ) (6 . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 . 9) (11 . 10) (16 . 11) ( + 15 . 12) (38 . 13) (39 . 14) (40 . 15) (41 . 16) (42 . 17) (43 . 18) (44 + . 19) (45 . 20) (46 . 74)) ((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . + 6) (8 . 7) (9 . 8) (10 . 9) (11 . 10) (16 . 11) (15 . 12) (38 . 13) (39 . + 14) (40 . 15) (41 . 16) (42 . 17) (43 . 18) (44 . 19) (45 . 73)) ((3 . 1) + (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 . 9) (11 . 10 + ) (16 . 11) (15 . 12) (38 . 13) (39 . 14) (40 . 15) (41 . 16) (42 . 17) ( + 43 . 18) (44 . 72)) ((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 + . 7) (9 . 8) (10 . 9) (11 . 10) (16 . 11) (15 . 12) (38 . 13) (39 . 14) ( + 40 . 15) (41 . 16) (42 . 17) (43 . 71)) ((3 . 1) (4 . 2) (5 . 3) (6 . 4) ( + 7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 . 9) (11 . 10) (16 . 11) (15 . 12) (38 + . 13) (39 . 14) (40 . 15) (41 . 16) (42 . 17) (43 . 70)) ((3 . 1) (4 . 2) + (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 . 9) (11 . 10) (16 + . 11) (15 . 12) (38 . 13) (39 . 14) (40 . 15) (41 . 16) (42 . 69)) ((3 . 1 + ) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 . 9) (11 . + 10) (16 . 11) (15 . 12) (38 . 13) (39 . 14) (40 . 15) (41 . 16) (42 . 68)) + ((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 . 9 + ) (11 . 10) (16 . 11) (15 . 12) (38 . 13) (39 . 14) (40 . 15) (41 . 16) ( + 42 . 67)) ((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8 + ) (10 . 9) (11 . 10) (16 . 11) (15 . 12) (38 . 13) (39 . 14) (40 . 15) (41 + . 16) (42 . 66)) ((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7 + ) (9 . 8) (10 . 9) (11 . 10) (16 . 11) (15 . 12) (38 . 13) (39 . 14) (40 + . 15) (41 . 65)) ((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) + (9 . 8) (10 . 9) (11 . 10) (16 . 11) (15 . 12) (38 . 13) (39 . 14) (40 . + 15) (41 . 64)) ((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) ( + 9 . 8) (10 . 9) (11 . 10) (16 . 11) (15 . 12) (38 . 13) (39 . 14) (40 . 63 + )) ((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 + . 9) (11 . 10) (16 . 11) (15 . 12) (38 . 13) (39 . 14) (40 . 62)) ((3 . 1) + (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 . 9) (11 . + 10) (16 . 11) (15 . 12) (38 . 13) (39 . 61)) ((3 . 1) (4 . 2) (5 . 3) (6 + . 4) (7 . 5) (37 . 6) (8 . 7) (9 . 8) (10 . 9) (11 . 10) (16 . 11) (15 . + 12) (38 . 13) (39 . 60)) ((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . 6) + (8 . 7) (9 . 8) (10 . 9) (11 . 10) (16 . 11) (15 . 12) (38 . 13) (39 . 59 + )) ((-1 . -39)) ((-1 . -40)) ((-1 . -32)) ((-1 . -33)) ((-1 . -34)) ((-1 + . -35)) ((-1 . -36)) ((-1 . -37)) ((7 . 58)) ((2 . -46) (1 . -46)) ((2 . + 56) (1 . 57)) ((-1 . -45)) ((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 . 5) (37 . + 6) (8 . 7) (9 . 8) (10 . 9) (11 . 10) (16 . 11) (15 . 12) (38 . 13) (39 . + 14) (40 . 15) (41 . 16) (42 . 17) (43 . 18) (44 . 19) (45 . 20) (46 . 21) + (47 . 22) (48 . 23) (49 . 24) (50 . 80)) ((2 . 79)) ((-1 . -30)) ((-1 . + -29)) ((-1 . -28)) ((14 . 42) (13 . 43) (12 . 44) (-1 . -26)) ((14 . 42) ( + 13 . 43) (12 . 44) (-1 . -25)) ((16 . 40) (15 . 41) (-1 . -23)) ((16 . 40) + (15 . 41) (-1 . -22)) ((18 . 38) (17 . 39) (-1 . -20)) ((18 . 38) (17 . + 39) (-1 . -19)) ((18 . 38) (17 . 39) (-1 . -18)) ((18 . 38) (17 . 39) (-1 + . -17)) ((22 . 34) (21 . 35) (20 . 36) (19 . 37) (-1 . -15)) ((22 . 34) ( + 21 . 35) (20 . 36) (19 . 37) (-1 . -14)) ((24 . 32) (23 . 33) (-1 . -12)) + ((25 . 31) (-1 . -10)) ((26 . 30) (-1 . -8)) ((27 . 29) (-1 . -6)) ((28 . + 28) (-1 . -4)) ((30 . 78) (29 . 27)) ((3 . 1) (4 . 2) (5 . 3) (6 . 4) (7 + . 5) (37 . 6) (8 . 7) (9 . 8) (10 . 9) (11 . 10) (16 . 11) (15 . 12) (38 + . 13) (39 . 14) (40 . 15) (41 . 16) (42 . 17) (43 . 18) (44 . 19) (45 . 20 + ) (46 . 21) (47 . 22) (48 . 23) (49 . 24) (50 . 81)) ((-1 . -44)) ((2 . + -47) (1 . -47)) ((2 . -2) (1 . -2) (35 . -2)))) (define rto-v #(#f 50 50 49 49 48 48 47 47 46 46 45 45 44 44 44 43 43 43 43 43 42 42 42 - 41 41 41 40 40 40 40 39 39 39 39 39 39 39 38 38 38 37 37 37 37 36 36)) + 41 41 41 40 40 40 40 39 39 39 39 39 39 39 38 38 38 37 37 37 37 37 36 36)) (define mtab - '(("," . 1) (")" . 2) ($ident . 3) ("(" . 4) ("defined" . 5) ($chlit . 6) - ($fixed . 7) ("--" . 8) ("++" . 9) ("~" . 10) ("!" . 11) ("%" . 12) ("/" + '(("," . 1) (")" . 2) ("(" . 3) ("defined" . 4) ($chlit . 5) ($fixed . 6) + ($ident . 7) ("--" . 8) ("++" . 9) ("~" . 10) ("!" . 11) ("%" . 12) ("/" . 13) ("*" . 14) ("-" . 15) ("+" . 16) (">>" . 17) ("<<" . 18) (">=" . 19) (">" . 20) ("<=" . 21) ("<" . 22) ("!=" . 23) ("==" . 24) ("&" . 25) ("^" . 26) ("|" . 27) ("&&" . 28) ("||" . 29) (":" . 30) ("?" . 31) ( diff --git a/module/nyacc/lang/c99/parser.scm b/module/nyacc/lang/c99/parser.scm index 80f94f31..4b566559 100644 --- a/module/nyacc/lang/c99/parser.scm +++ b/module/nyacc/lang/c99/parser.scm @@ -48,10 +48,12 @@ (cons 'rto-v rto-v) (cons 'mtab mtab) (cons 'act-v act-v))))) (lambda* (lexer #:key (debug #f)) + (with-throw-handler 'nyacc-error (lambda () (c99-parser lexer #:debug debug)) - (lambda (key fmt . args) (apply throw 'c99-error fmt args)))))) + (lambda (key fmt . args) (apply throw 'c99-error fmt args))) + ))) ;; This is used to parse included files at top level. (define (run-parse) diff --git a/module/nyacc/lang/c99/xparser.scm b/module/nyacc/lang/c99/xparser.scm index 948af60a..2e163506 100644 --- a/module/nyacc/lang/c99/xparser.scm +++ b/module/nyacc/lang/c99/xparser.scm @@ -45,30 +45,31 @@ (let ((info (fluid-ref *info*))) (raw-parser (gen-c-lexer) #:debug (cpi-debug info)))) -;; @item parse-cx [#:cpp-defs def-a-list] [#:debug bool] +;; @item parse-c99x [#:cpp-defs def-a-list] [#:debug bool] ;; This needs to be explained in some detail. ;; [#:tyns '("foo_t")] -(define* (parse-c99x xstr +(define* (parse-c99x expr-string #:key (cpp-defs '()) ; CPP defines (tn-dict '()) ; typedef dictionary (xdef? #f) ; pred to determine expand (debug #f) ; debug? (tyns '())) ; defined typenames - (with-input-from-string xstr - (catch - #t - (lambda () - (let ((info (make-cpi debug cpp-defs '(".") tn-dict))) - (set-cpi-ptl! info (cons tyns (cpi-ptl info))) - (with-fluid* - *info* info - (lambda () - (raw-parser (gen-c-lexer #:mode 'code #:xdef? xdef?) - #:debug debug)))))) - (lambda (key fmt . rest) - (report-error fmt rest) - #f))) + (with-input-from-string expr-string + (lambda () + (catch + 'c99-error + (lambda () + (let ((info (make-cpi debug cpp-defs '(".") tn-dict))) + (set-cpi-ptl! info (cons tyns (cpi-ptl info))) + (with-fluid* + *info* info + (lambda () + (raw-parser (gen-c-lexer #:mode 'code #:xdef? xdef?) + #:debug debug))))) + (lambda (key fmt . rest) + (report-error fmt rest) + #f))))) (define parse-cx parse-c99x) diff --git a/module/nyacc/lang/util.scm b/module/nyacc/lang/util.scm index 1d22d911..7134e557 100644 --- a/module/nyacc/lang/util.scm +++ b/module/nyacc/lang/util.scm @@ -49,7 +49,7 @@ the file COPYING included with the this distribution.") (let ((fn (or (port-filename (current-input-port)) "(unknown)")) (ln (1+ (port-line (current-input-port))))) (apply simple-format (current-error-port) - (string-append "~S:~S: " fmt "\n") fn ln args))) + (string-append "~A:~A: " fmt "\n") fn ln args))) ;; === input stack ===================== diff --git a/module/nyacc/lex.scm b/module/nyacc/lex.scm index 354b7467..dbb41a75 100644 --- a/module/nyacc/lex.scm +++ b/module/nyacc/lex.scm @@ -473,6 +473,7 @@ ;; char -> (char . char) ;; @end enumerate ;; todo: add bol status +;; todo: maybe separate reading of keywords from identifiers: (keywd ch) => (define* (make-lexer-generator match-table #:key ident-reader num-reader string-reader chlit-reader