From febca88ad631c8424d6d72708b7fa225548071c4 Mon Sep 17 00:00:00 2001 From: "Achim D. Brucker" Date: Wed, 13 Jun 2007 05:55:41 +0000 Subject: [PATCH] first functional integreation of the OCL parser and type-checker (and some minor cleanup) git-svn-id: https://projects.brucker.ch/su4sml/svn/infsec-import/trunk/src/su4sml@6597 3260e6d1-4efc-4170-b0a7-36055960796d --- src/ROOT.ML | 8 +- src/ocl_parser/ROOT.ML | 1 + src/ocl_parser/isar/isar_setup.sml | 64 - src/ocl_parser/isar/test.thy | 70 - src/ocl_parser/ocl.grm.sig | 90 + src/ocl_parser/ocl.grm.sml | 3466 ++++++++++++++++++++++++ src/ocl_parser/ocl.lex.sml | 3912 ++++++++++++++++++++++++++++ src/ocl_parser/parser.110.62.cm | 2 +- src/ocl_parser/parser.cm | 2 +- src/ocl_parser/script.sml | 19 - src/ocl_parser/test-suite.sml | 157 -- src/ocl_parser/values.sml | 31 - src/su4sml.110.62.cm | 40 +- src/su4sml.cm | 40 +- src/su4sml_core.110.62.cm | 40 + src/su4sml_core.cm | 40 + 16 files changed, 7560 insertions(+), 422 deletions(-) delete mode 100644 src/ocl_parser/isar/isar_setup.sml delete mode 100644 src/ocl_parser/isar/test.thy create mode 100644 src/ocl_parser/ocl.grm.sig create mode 100644 src/ocl_parser/ocl.grm.sml create mode 100644 src/ocl_parser/ocl.lex.sml delete mode 100644 src/ocl_parser/script.sml delete mode 100644 src/ocl_parser/test-suite.sml delete mode 100644 src/ocl_parser/values.sml create mode 100644 src/su4sml_core.110.62.cm create mode 100644 src/su4sml_core.cm diff --git a/src/ROOT.ML b/src/ROOT.ML index 8c9935c..7753228 100644 --- a/src/ROOT.ML +++ b/src/ROOT.ML @@ -113,7 +113,13 @@ use "rep_secure.sml"; use "rep_su2holocl.sml"; (* ******************************************************** *) -(* codegen-module, developed by Raphael Eidenbenz *) +(* OCL parser and type-checker *) +OS.FileSys.chDir "ocl_parser"; +use "ROOT.ML"; +OS.FileSys.chDir ".."; + +(* ******************************************************** *) +(* codegen-module *) OS.FileSys.chDir "codegen"; use "ROOT.ML"; OS.FileSys.chDir ".."; diff --git a/src/ocl_parser/ROOT.ML b/src/ocl_parser/ROOT.ML index f938dfe..a30b524 100644 --- a/src/ocl_parser/ROOT.ML +++ b/src/ocl_parser/ROOT.ML @@ -39,3 +39,4 @@ use "ocl.grm.sml"; use "parser.sml"; use "fix_types.sml"; use "model_import.sml"; +infix THEN; diff --git a/src/ocl_parser/isar/isar_setup.sml b/src/ocl_parser/isar/isar_setup.sml deleted file mode 100644 index 62e55e1..0000000 --- a/src/ocl_parser/isar/isar_setup.sml +++ /dev/null @@ -1,64 +0,0 @@ -(***************************************************************************** - * HOL-OCL - a shallow embedding of OCL into Isabelle/HOL - * - * model_import. - main "ROOT.ML" file for HOL-OCL - * Copyright (C) 2006,2007 Achim D. Brucker - * - * This file is part of HOL-OCL. - * - * HOL-OCL is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * HOL-OCL is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - *****************************************************************************) - - -OS.FileSys.chDir ".."; -use "ROOT.ML"; -OS.FileSys.chDir "isar"; - -structure isar_import_setup = -struct -structure P = OuterParse and K = OuterKeyword; - - - - -fun load_xmiOclT ((xmiFile,oclFile),excludedPackages) thy = - let - - fun load_mds xmiFile oclFile thy = - let - val model = map Rep.normalize (ModelImport.import xmiFile oclFile excludedPackages) - val thy = rep_encoder.add_classifiers model thy; - in - thy - end - - val thy = load_mds xmiFile oclFile thy - in - thy - end - -val load_xmiOclP = - OuterSyntax.command "import_model" "import UML/OCL specification" - OuterKeyword.thy_script - ((P.name -- (Scan.optional P.name "") - -- (Scan.optional (P.$$$ "[" |-- P.list1 P.name --| P.$$$ "]") [] )) - >> (fn((xmi,ocl),exPackages) => - (Toplevel.theory ( fn thy => load_xmiOclT ((xmi,ocl),exPackages) thy)))) - -val _ = OuterSyntax.add_parsers [load_xmiOclP]; - - -end - diff --git a/src/ocl_parser/isar/test.thy b/src/ocl_parser/isar/test.thy deleted file mode 100644 index 428ca95..0000000 --- a/src/ocl_parser/isar/test.thy +++ /dev/null @@ -1,70 +0,0 @@ -theory test -imports - OCL -begin - -welcome - -ML{* -use "isar_setup.sml"; -*} - - -welcome -(* -import_model "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/company/company.zargo" - "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/company/company.ocl" - -*) - - -welcome -(* -import_model "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/ebank/ebank.zargo" - "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/ebank/ebank.ocl" -*) - -welcome -(* -import_model "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/encoding_example/encoding_example.zargo" - "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/encoding_example/encoding_example.ocl" -*) -welcome -(* -import_model "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/isp/isp.zargo" - "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/isp/isp.ocl" -*) -welcome -(* -import_model "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/royals_and_loyals/royals_and_loyals.zargo" - "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/royals_and_loyals/royals_and_loyals.ocl" -*) - -welcome -(* -holocl_params [op_semantics=invoke] - -import_model "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/simple/simple.zargo" - "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/simple/simple.ocl" - -*) -welcome -(* -import_model "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/stack/stack.zargo" - "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/stack/stack.ocl" -*) -welcome - -(* -import_model "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/digraph/digraph.zargo" - "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/digraph/digraph.ocl" -*) -welcome - -(* -import_model "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/vehicles/vehicles.zargo" - "/home/brucker/infsec/teaching/theses/semesterarbeiten/2006_mkrucker_ocl/examples/vehicles/vehicles.ocl" -*) -welcome - -end diff --git a/src/ocl_parser/ocl.grm.sig b/src/ocl_parser/ocl.grm.sig new file mode 100644 index 0000000..08fc942 --- /dev/null +++ b/src/ocl_parser/ocl.grm.sig @@ -0,0 +1,90 @@ +signature OclParser_TOKENS = +sig +type ('a,'b) token +type svalue +val SIMPLE_NAME: (string) * 'a * 'a -> (svalue,'a) token +val STRING_LITERAL: (string) * 'a * 'a -> (svalue,'a) token +val REAL_LITERAL: (string) * 'a * 'a -> (svalue,'a) token +val INTEGER_LITERAL: (string) * 'a * 'a -> (svalue,'a) token +val NOT: (string) * 'a * 'a -> (svalue,'a) token +val LOG_IMPL: (string) * 'a * 'a -> (svalue,'a) token +val LOG_XOR: (string) * 'a * 'a -> (svalue,'a) token +val LOG_OR: (string) * 'a * 'a -> (svalue,'a) token +val LOG_AND: (string) * 'a * 'a -> (svalue,'a) token +val REL_LTE: (string) * 'a * 'a -> (svalue,'a) token +val REL_GTE: (string) * 'a * 'a -> (svalue,'a) token +val REL_LT: (string) * 'a * 'a -> (svalue,'a) token +val REL_GT: (string) * 'a * 'a -> (svalue,'a) token +val REL_NOTEQUAL: (string) * 'a * 'a -> (svalue,'a) token +val PLUS: (string) * 'a * 'a -> (svalue,'a) token +val SLASH: (string) * 'a * 'a -> (svalue,'a) token +val STAR: (string) * 'a * 'a -> (svalue,'a) token +val MINUS: (string) * 'a * 'a -> (svalue,'a) token +val OCLASTYPE: (string) * 'a * 'a -> (svalue,'a) token +val OCLISKINDOF: (string) * 'a * 'a -> (svalue,'a) token +val OCLISTYPEOF: (string) * 'a * 'a -> (svalue,'a) token +val ISUNIQUE: (string) * 'a * 'a -> (svalue,'a) token +val ONE: (string) * 'a * 'a -> (svalue,'a) token +val EXISTS: (string) * 'a * 'a -> (svalue,'a) token +val ANY: (string) * 'a * 'a -> (svalue,'a) token +val COLLECT: (string) * 'a * 'a -> (svalue,'a) token +val REJECT: (string) * 'a * 'a -> (svalue,'a) token +val SELECT: (string) * 'a * 'a -> (svalue,'a) token +val ITERATE: (string) * 'a * 'a -> (svalue,'a) token +val GUARD: (string) * 'a * 'a -> (svalue,'a) token +val VERTICAL_BAR: (string) * 'a * 'a -> (svalue,'a) token +val BRACE_CLOSE: (string) * 'a * 'a -> (svalue,'a) token +val BRACE_OPEN: (string) * 'a * 'a -> (svalue,'a) token +val PAREN_CLOSE: (string) * 'a * 'a -> (svalue,'a) token +val PAREN_OPEN: (string) * 'a * 'a -> (svalue,'a) token +val THEN: (string) * 'a * 'a -> (svalue,'a) token +val POST: (Context.ConditionType) * 'a * 'a -> (svalue,'a) token +val PRE: (Context.ConditionType) * 'a * 'a -> (svalue,'a) token +val PACKAGE: (string) * 'a * 'a -> (svalue,'a) token +val LET: (string) * 'a * 'a -> (svalue,'a) token +val INV: (string) * 'a * 'a -> (svalue,'a) token +val INIT: (Context.AttrOrAssoc) * 'a * 'a -> (svalue,'a) token +val IN: (string) * 'a * 'a -> (svalue,'a) token +val IF: (string) * 'a * 'a -> (svalue,'a) token +val TRUE: (string) * 'a * 'a -> (svalue,'a) token +val FORALL: (string) * 'a * 'a -> (svalue,'a) token +val FALSE: (string) * 'a * 'a -> (svalue,'a) token +val ENDPACKAGE: (string) * 'a * 'a -> (svalue,'a) token +val ENDIF: (string) * 'a * 'a -> (svalue,'a) token +val ELSE: (string) * 'a * 'a -> (svalue,'a) token +val DERIVE: (Context.AttrOrAssoc) * 'a * 'a -> (svalue,'a) token +val DEF: (string) * 'a * 'a -> (svalue,'a) token +val CONTEXT: (string) * 'a * 'a -> (svalue,'a) token +val BODY: (Context.ConditionType) * 'a * 'a -> (svalue,'a) token +val DBL_CARAT: (string) * 'a * 'a -> (svalue,'a) token +val CARAT: (string) * 'a * 'a -> (svalue,'a) token +val BRACKET_CLOSE: (string) * 'a * 'a -> (svalue,'a) token +val BRACKET_OPEN: (string) * 'a * 'a -> (svalue,'a) token +val TUPLE_TYPE: (string) * 'a * 'a -> (svalue,'a) token +val TUPLE: (string) * 'a * 'a -> (svalue,'a) token +val SET: (string) * 'a * 'a -> (svalue,'a) token +val ORDERED_SET: (string) * 'a * 'a -> (svalue,'a) token +val SEQUENCE: (string) * 'a * 'a -> (svalue,'a) token +val COLLECTION: (string) * 'a * 'a -> (svalue,'a) token +val BAG: (string) * 'a * 'a -> (svalue,'a) token +val AT_PRE: (string) * 'a * 'a -> (svalue,'a) token +val HASH: (string) * 'a * 'a -> (svalue,'a) token +val QUESTION_MARK: (string) * 'a * 'a -> (svalue,'a) token +val EQUALS: (string) * 'a * 'a -> (svalue,'a) token +val SEMI_COLON: (string) * 'a * 'a -> (svalue,'a) token +val DBL_COLON: (string) * 'a * 'a -> (svalue,'a) token +val COLON: (string) * 'a * 'a -> (svalue,'a) token +val DBL_DOT: (string) * 'a * 'a -> (svalue,'a) token +val DOT: (string) * 'a * 'a -> (svalue,'a) token +val ARROW_RIGHT: (string) * 'a * 'a -> (svalue,'a) token +val COMMA: (string) * 'a * 'a -> (svalue,'a) token +val TICK: (string) * 'a * 'a -> (svalue,'a) token +val EOF: 'a * 'a -> (svalue,'a) token +end +signature OclParser_LRVALS= +sig +structure Tokens : OclParser_TOKENS +structure ParserData:PARSER_DATA +sharing type ParserData.Token.token = Tokens.token +sharing type ParserData.svalue = Tokens.svalue +end diff --git a/src/ocl_parser/ocl.grm.sml b/src/ocl_parser/ocl.grm.sml new file mode 100644 index 0000000..f8a025a --- /dev/null +++ b/src/ocl_parser/ocl.grm.sml @@ -0,0 +1,3466 @@ +functor OclParserLrValsFun(structure Token : TOKEN) + : sig structure ParserData : PARSER_DATA + structure Tokens : OclParser_TOKENS + end + = +struct +structure ParserData= +struct +structure Header = +struct +(************************************************************************** + * SML OCL 2.0 Parser - A Parser writen in SML for OCL 2.0 + * + * Copyright (C) 2007 Manuel P. Krucker + * + **************************************************************************) + +(* + +THIS POINTS HAVE TO BE NOTICED TO UNDERSTAND THE SEMANTICS OF: + + - context_declarations.sml + - type_checker.sml + + + i.) 'AttributeCall' needs a path for the name of the attriubte. + But it is not possible to extract the hole name when 'AttributeCall' is constructed. + So, we only have a 'Path' with one element, the name of the attribute. + But the type still is 'Path' because of the types. + + ii.) We cannot know if a 'propertycall_exp_cs' is a member of a Class or a Variable of the signature. + Therefore, all calls to Variables from signature are parsed as 'AttributeCall's + + + +*) + + + +open Rep_OclTerm +open Rep_OclType +open Context +open Ext_Library + +exception NotYetSupported of string + + + +end +structure LrTable = Token.LrTable +structure Token = Token +local open LrTable in +val table=let val actionRows = +"\ +\\001\000\001\000\000\000\000\000\ +\\001\000\003\000\180\000\078\000\014\000\000\000\ +\\001\000\007\000\050\000\027\000\049\000\038\000\048\000\044\000\047\000\ +\\049\000\046\000\000\000\ +\\001\000\007\000\060\000\078\000\014\000\000\000\ +\\001\000\007\000\066\000\078\000\014\000\000\000\ +\\001\000\007\000\068\000\078\000\014\000\000\000\ +\\001\000\007\000\080\000\078\000\014\000\000\000\ +\\001\000\007\000\082\000\000\000\ +\\001\000\007\000\117\000\000\000\ +\\001\000\007\000\117\000\044\000\047\000\000\000\ +\\001\000\007\000\120\000\000\000\ +\\001\000\007\000\122\000\000\000\ +\\001\000\007\000\134\000\000\000\ +\\001\000\007\000\192\000\000\000\ +\\001\000\007\000\193\000\000\000\ +\\001\000\010\000\188\000\000\000\ +\\001\000\010\000\223\000\000\000\ +\\001\000\014\000\078\000\015\000\077\000\016\000\076\000\017\000\075\000\ +\\018\000\074\000\032\000\112\000\033\000\026\000\034\000\111\000\ +\\035\000\110\000\039\000\109\000\044\000\108\000\045\000\218\000\ +\\050\000\025\000\051\000\024\000\052\000\023\000\053\000\022\000\ +\\054\000\021\000\055\000\020\000\056\000\019\000\057\000\018\000\ +\\058\000\017\000\059\000\016\000\060\000\015\000\061\000\107\000\ +\\074\000\106\000\075\000\105\000\076\000\104\000\077\000\103\000\ +\\078\000\014\000\000\000\ +\\001\000\014\000\078\000\015\000\077\000\016\000\076\000\017\000\075\000\ +\\018\000\074\000\032\000\112\000\033\000\026\000\034\000\111\000\ +\\035\000\110\000\039\000\109\000\044\000\108\000\045\000\247\000\ +\\050\000\025\000\051\000\024\000\052\000\023\000\053\000\022\000\ +\\054\000\021\000\055\000\020\000\056\000\019\000\057\000\018\000\ +\\058\000\017\000\059\000\016\000\060\000\015\000\061\000\107\000\ +\\074\000\106\000\075\000\105\000\076\000\104\000\077\000\103\000\ +\\078\000\014\000\000\000\ +\\001\000\014\000\078\000\015\000\077\000\016\000\076\000\017\000\075\000\ +\\018\000\074\000\032\000\112\000\033\000\026\000\034\000\111\000\ +\\035\000\110\000\039\000\109\000\044\000\108\000\047\000\211\000\ +\\050\000\025\000\051\000\024\000\052\000\023\000\053\000\022\000\ +\\054\000\021\000\055\000\020\000\056\000\019\000\057\000\018\000\ +\\058\000\017\000\059\000\016\000\060\000\015\000\061\000\107\000\ +\\074\000\106\000\075\000\105\000\076\000\104\000\077\000\103\000\ +\\078\000\014\000\000\000\ +\\001\000\014\000\078\000\015\000\077\000\016\000\076\000\017\000\075\000\ +\\018\000\074\000\032\000\112\000\033\000\026\000\034\000\111\000\ +\\035\000\110\000\039\000\109\000\044\000\108\000\050\000\025\000\ +\\051\000\024\000\052\000\023\000\053\000\022\000\054\000\021\000\ +\\055\000\020\000\056\000\019\000\057\000\018\000\058\000\017\000\ +\\059\000\016\000\060\000\015\000\061\000\107\000\074\000\106\000\ +\\075\000\105\000\076\000\104\000\077\000\103\000\078\000\014\000\000\000\ +\\001\000\014\000\078\000\015\000\077\000\016\000\076\000\017\000\075\000\ +\\018\000\074\000\032\000\112\000\033\000\026\000\034\000\111\000\ +\\035\000\110\000\044\000\108\000\050\000\025\000\051\000\024\000\ +\\052\000\023\000\053\000\022\000\054\000\021\000\055\000\020\000\ +\\056\000\019\000\057\000\018\000\058\000\017\000\059\000\016\000\ +\\060\000\015\000\061\000\107\000\074\000\106\000\075\000\105\000\ +\\076\000\104\000\077\000\103\000\078\000\014\000\000\000\ +\\001\000\014\000\078\000\015\000\077\000\016\000\076\000\017\000\075\000\ +\\018\000\074\000\032\000\112\000\033\000\026\000\034\000\111\000\ +\\035\000\110\000\044\000\108\000\050\000\025\000\051\000\024\000\ +\\052\000\023\000\053\000\022\000\054\000\021\000\055\000\020\000\ +\\056\000\019\000\057\000\018\000\058\000\017\000\059\000\016\000\ +\\060\000\015\000\075\000\105\000\076\000\104\000\077\000\103\000\ +\\078\000\014\000\000\000\ +\\001\000\014\000\078\000\015\000\077\000\016\000\076\000\017\000\075\000\ +\\018\000\074\000\078\000\014\000\000\000\ +\\001\000\025\000\057\000\041\000\056\000\042\000\055\000\000\000\ +\\001\000\026\000\036\000\031\000\035\000\000\000\ +\\001\000\028\000\133\000\037\000\132\000\000\000\ +\\001\000\029\000\252\000\000\000\ +\\001\000\030\000\003\001\000\000\ +\\001\000\031\000\039\000\000\000\ +\\001\000\033\000\026\000\050\000\025\000\051\000\024\000\052\000\023\000\ +\\053\000\022\000\054\000\021\000\055\000\020\000\056\000\019\000\ +\\057\000\018\000\058\000\017\000\059\000\016\000\060\000\015\000\ +\\078\000\014\000\000\000\ +\\001\000\033\000\026\000\051\000\024\000\052\000\023\000\053\000\022\000\ +\\054\000\021\000\055\000\020\000\056\000\019\000\057\000\018\000\ +\\078\000\014\000\000\000\ +\\001\000\036\000\221\000\000\000\ +\\001\000\040\000\006\000\000\000\ +\\001\000\043\000\225\000\000\000\ +\\001\000\044\000\129\000\000\000\ +\\001\000\044\000\230\000\000\000\ +\\001\000\044\000\231\000\000\000\ +\\001\000\045\000\064\000\078\000\014\000\000\000\ +\\001\000\045\000\113\000\000\000\ +\\001\000\045\000\219\000\000\000\ +\\001\000\045\000\227\000\000\000\ +\\001\000\045\000\239\000\000\000\ +\\001\000\045\000\254\000\000\000\ +\\001\000\045\000\000\001\000\000\ +\\001\000\045\000\002\001\000\000\ +\\001\000\046\000\167\000\000\000\ +\\001\000\047\000\235\000\000\000\ +\\001\000\048\000\255\000\000\000\ +\\001\000\078\000\014\000\000\000\ +\\005\001\000\000\ +\\006\001\000\000\ +\\007\001\040\000\006\000\000\000\ +\\008\001\000\000\ +\\009\001\000\000\ +\\010\001\000\000\ +\\011\001\026\000\036\000\000\000\ +\\012\001\000\000\ +\\013\001\000\000\ +\\014\001\000\000\ +\\015\001\000\000\ +\\016\001\000\000\ +\\017\001\000\000\ +\\018\001\000\000\ +\\019\001\000\000\ +\\020\001\000\000\ +\\021\001\000\000\ +\\022\001\028\000\133\000\037\000\132\000\000\000\ +\\023\001\000\000\ +\\024\001\027\000\049\000\038\000\048\000\000\000\ +\\025\001\000\000\ +\\026\001\025\000\057\000\041\000\056\000\042\000\055\000\000\000\ +\\027\001\000\000\ +\\028\001\049\000\046\000\000\000\ +\\029\001\000\000\ +\\030\001\000\000\ +\\031\001\000\000\ +\\032\001\000\000\ +\\033\001\000\000\ +\\034\001\000\000\ +\\035\001\000\000\ +\\036\001\000\000\ +\\037\001\000\000\ +\\038\001\000\000\ +\\039\001\000\000\ +\\040\001\000\000\ +\\041\001\000\000\ +\\042\001\000\000\ +\\043\001\000\000\ +\\044\001\000\000\ +\\045\001\007\000\119\000\000\000\ +\\046\001\000\000\ +\\047\001\007\000\119\000\000\000\ +\\048\001\000\000\ +\\049\001\000\000\ +\\050\001\000\000\ +\\051\001\000\000\ +\\052\001\000\000\ +\\053\001\000\000\ +\\054\001\000\000\ +\\055\001\003\000\234\000\000\000\ +\\056\001\000\000\ +\\057\001\000\000\ +\\058\001\000\000\ +\\059\001\006\000\232\000\000\000\ +\\060\001\000\000\ +\\061\001\000\000\ +\\062\001\000\000\ +\\063\001\000\000\ +\\064\001\000\000\ +\\065\001\000\000\ +\\066\001\000\000\ +\\067\001\000\000\ +\\068\001\000\000\ +\\069\001\000\000\ +\\070\001\000\000\ +\\071\001\000\000\ +\\072\001\000\000\ +\\073\001\000\000\ +\\074\001\000\000\ +\\075\001\000\000\ +\\076\001\000\000\ +\\077\001\000\000\ +\\078\001\000\000\ +\\079\001\000\000\ +\\080\001\000\000\ +\\081\001\000\000\ +\\082\001\000\000\ +\\083\001\000\000\ +\\084\001\008\000\027\000\000\000\ +\\085\001\008\000\037\000\000\000\ +\\086\001\000\000\ +\\086\001\007\000\117\000\000\000\ +\\087\001\000\000\ +\\088\001\000\000\ +\\089\001\000\000\ +\\090\001\000\000\ +\\091\001\000\000\ +\\092\001\000\000\ +\\093\001\000\000\ +\\094\001\000\000\ +\\095\001\000\000\ +\\096\001\000\000\ +\\097\001\000\000\ +\\098\001\000\000\ +\\099\001\000\000\ +\\100\001\000\000\ +\\101\001\000\000\ +\\102\001\070\000\166\000\071\000\165\000\072\000\164\000\073\000\163\000\000\000\ +\\103\001\000\000\ +\\104\001\070\000\166\000\071\000\165\000\072\000\164\000\073\000\163\000\000\000\ +\\105\001\000\000\ +\\106\001\000\000\ +\\107\001\000\000\ +\\108\001\000\000\ +\\109\001\000\000\ +\\110\001\000\000\ +\\111\001\010\000\159\000\065\000\158\000\066\000\157\000\067\000\156\000\ +\\068\000\155\000\069\000\154\000\000\000\ +\\112\001\000\000\ +\\113\001\000\000\ +\\114\001\000\000\ +\\115\001\000\000\ +\\116\001\000\000\ +\\117\001\000\000\ +\\118\001\000\000\ +\\119\001\000\000\ +\\120\001\061\000\151\000\064\000\150\000\000\000\ +\\121\001\000\000\ +\\122\001\061\000\151\000\064\000\150\000\000\000\ +\\123\001\000\000\ +\\124\001\000\000\ +\\125\001\000\000\ +\\126\001\000\000\ +\\127\001\062\000\146\000\063\000\145\000\000\000\ +\\128\001\000\000\ +\\129\001\062\000\146\000\063\000\145\000\000\000\ +\\130\001\000\000\ +\\131\001\000\000\ +\\132\001\000\000\ +\\133\001\000\000\ +\\134\001\000\000\ +\\135\001\000\000\ +\\136\001\000\000\ +\\137\001\000\000\ +\\138\001\004\000\140\000\005\000\139\000\000\000\ +\\139\001\000\000\ +\\140\001\000\000\ +\\141\001\000\000\ +\\142\001\000\000\ +\\143\001\000\000\ +\\144\001\000\000\ +\\145\001\004\000\140\000\005\000\139\000\000\000\ +\\146\001\000\000\ +\\147\001\000\000\ +\\148\001\000\000\ +\\149\001\013\000\172\000\044\000\171\000\000\000\ +\\150\001\044\000\171\000\000\000\ +\\151\001\000\000\ +\\152\001\000\000\ +\\153\001\000\000\ +\\154\001\000\000\ +\\155\001\000\000\ +\\156\001\000\000\ +\\157\001\000\000\ +\\159\001\000\000\ +\\160\001\000\000\ +\\161\001\003\000\238\000\000\000\ +\\162\001\000\000\ +\\163\001\003\000\238\000\000\000\ +\\164\001\000\000\ +\\165\001\000\000\ +\\166\001\000\000\ +\\167\001\000\000\ +\\168\001\003\000\115\000\000\000\ +\\169\001\000\000\ +\\170\001\000\000\ +\\171\001\000\000\ +\\172\001\000\000\ +\\173\001\000\000\ +\\174\001\000\000\ +\\175\001\000\000\ +\\176\001\000\000\ +\\177\001\000\000\ +\\178\001\003\000\180\000\000\000\ +\\179\001\000\000\ +\\180\001\000\000\ +\\181\001\000\000\ +\\183\001\000\000\ +\" +val actionRowNumbers = +"\033\000\052\000\051\000\050\000\ +\\030\000\053\000\135\000\134\000\ +\\129\000\131\000\030\000\025\000\ +\\063\000\128\000\126\000\127\000\ +\\125\000\124\000\122\000\123\000\ +\\120\000\119\000\118\000\133\000\ +\\121\000\136\000\130\000\061\000\ +\\060\000\059\000\058\000\056\000\ +\\029\000\054\000\030\000\137\000\ +\\057\000\055\000\002\000\073\000\ +\\066\000\024\000\069\000\064\000\ +\\003\000\038\000\004\000\005\000\ +\\023\000\074\000\006\000\071\000\ +\\065\000\096\000\095\000\097\000\ +\\070\000\007\000\020\000\039\000\ +\\213\000\008\000\090\000\010\000\ +\\020\000\011\000\049\000\218\000\ +\\219\000\035\000\220\000\026\000\ +\\107\000\111\000\109\000\110\000\ +\\108\000\012\000\020\000\072\000\ +\\020\000\188\000\184\000\181\000\ +\\022\000\173\000\166\000\157\000\ +\\148\000\114\000\142\000\141\000\ +\\140\000\138\000\139\000\186\000\ +\\115\000\083\000\189\000\046\000\ +\\195\000\145\000\144\000\143\000\ +\\183\000\182\000\020\000\001\000\ +\\021\000\146\000\147\000\092\000\ +\\214\000\049\000\216\000\023\000\ +\\091\000\023\000\020\000\077\000\ +\\049\000\088\000\087\000\086\000\ +\\015\000\079\000\009\000\023\000\ +\\067\000\062\000\013\000\014\000\ +\\020\000\081\000\084\000\191\000\ +\\185\000\030\000\031\000\180\000\ +\\021\000\175\000\174\000\179\000\ +\\178\000\021\000\167\000\168\000\ +\\171\000\172\000\021\000\158\000\ +\\164\000\163\000\162\000\161\000\ +\\165\000\160\000\149\000\021\000\ +\\150\000\156\000\155\000\154\000\ +\\153\000\019\000\197\000\112\000\ +\\196\000\017\000\113\000\117\000\ +\\040\000\223\000\222\000\221\000\ +\\032\000\016\000\049\000\034\000\ +\\093\000\215\000\217\000\094\000\ +\\078\000\080\000\020\000\089\000\ +\\041\000\068\000\020\000\020\000\ +\\082\000\192\000\193\000\194\000\ +\\036\000\037\000\177\000\176\000\ +\\170\000\169\000\159\000\152\000\ +\\151\000\104\000\103\000\100\000\ +\\047\000\098\000\198\000\206\000\ +\\042\000\211\000\212\000\132\000\ +\\205\000\187\000\224\000\020\000\ +\\226\000\020\000\225\000\020\000\ +\\085\000\106\000\075\000\076\000\ +\\020\000\018\000\020\000\101\000\ +\\020\000\099\000\207\000\208\000\ +\\020\000\204\000\116\000\227\000\ +\\027\000\020\000\043\000\048\000\ +\\044\000\201\000\105\000\102\000\ +\\209\000\210\000\020\000\045\000\ +\\199\000\203\000\202\000\028\000\ +\\200\000\190\000\000\000" +val gotoT = +"\ +\\001\000\002\001\009\000\003\000\010\000\002\000\011\000\001\000\000\000\ +\\010\000\005\000\011\000\001\000\000\000\ +\\000\000\ +\\000\000\ +\\012\000\011\000\013\000\010\000\033\000\009\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\033\000\009\000\060\000\026\000\061\000\007\000\062\000\006\000\000\000\ +\\014\000\032\000\015\000\031\000\016\000\030\000\017\000\029\000\ +\\018\000\028\000\019\000\027\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\014\000\036\000\015\000\031\000\016\000\030\000\017\000\029\000\ +\\018\000\028\000\019\000\027\000\000\000\ +\\000\000\ +\\000\000\ +\\012\000\038\000\013\000\010\000\033\000\009\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\023\000\043\000\024\000\042\000\025\000\041\000\028\000\040\000\ +\\029\000\039\000\000\000\ +\\028\000\049\000\029\000\039\000\000\000\ +\\000\000\ +\\026\000\052\000\027\000\051\000\032\000\050\000\000\000\ +\\023\000\056\000\024\000\042\000\000\000\ +\\000\000\ +\\033\000\057\000\000\000\ +\\033\000\061\000\038\000\060\000\039\000\059\000\000\000\ +\\033\000\063\000\000\000\ +\\033\000\065\000\000\000\ +\\020\000\071\000\033\000\070\000\043\000\069\000\049\000\068\000\ +\\053\000\067\000\000\000\ +\\000\000\ +\\033\000\077\000\000\000\ +\\026\000\079\000\027\000\051\000\032\000\050\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\055\000\097\000\056\000\096\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\063\000\095\000\064\000\094\000\ +\\066\000\093\000\067\000\092\000\068\000\091\000\069\000\090\000\ +\\074\000\089\000\076\000\088\000\080\000\087\000\084\000\086\000\ +\\088\000\085\000\090\000\084\000\091\000\083\000\094\000\082\000\ +\\095\000\081\000\000\000\ +\\000\000\ +\\040\000\112\000\000\000\ +\\107\000\114\000\000\000\ +\\041\000\116\000\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\055\000\119\000\056\000\096\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\063\000\095\000\064\000\094\000\ +\\066\000\093\000\067\000\092\000\068\000\091\000\069\000\090\000\ +\\074\000\089\000\076\000\088\000\080\000\087\000\084\000\086\000\ +\\088\000\085\000\090\000\084\000\091\000\083\000\094\000\082\000\ +\\095\000\081\000\000\000\ +\\000\000\ +\\033\000\126\000\034\000\125\000\035\000\124\000\036\000\123\000\ +\\037\000\122\000\038\000\121\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\021\000\129\000\022\000\128\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\055\000\133\000\056\000\096\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\063\000\095\000\064\000\094\000\ +\\066\000\093\000\067\000\092\000\068\000\091\000\069\000\090\000\ +\\074\000\089\000\076\000\088\000\080\000\087\000\084\000\086\000\ +\\088\000\085\000\090\000\084\000\091\000\083\000\094\000\082\000\ +\\095\000\081\000\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\055\000\134\000\056\000\096\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\063\000\095\000\064\000\094\000\ +\\066\000\093\000\067\000\092\000\068\000\091\000\069\000\090\000\ +\\074\000\089\000\076\000\088\000\080\000\087\000\084\000\086\000\ +\\088\000\085\000\090\000\084\000\091\000\083\000\094\000\082\000\ +\\095\000\081\000\000\000\ +\\000\000\ +\\092\000\136\000\093\000\135\000\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\060\000\008\000\061\000\007\000\062\000\006\000\ +\\063\000\095\000\064\000\094\000\066\000\093\000\067\000\092\000\ +\\068\000\091\000\069\000\090\000\091\000\139\000\094\000\082\000\ +\\095\000\081\000\000\000\ +\\085\000\142\000\086\000\141\000\089\000\140\000\000\000\ +\\081\000\147\000\082\000\146\000\087\000\145\000\000\000\ +\\078\000\151\000\083\000\150\000\000\000\ +\\075\000\160\000\079\000\159\000\115\000\158\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\050\000\168\000\051\000\167\000\099\000\166\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\048\000\172\000\052\000\098\000\055\000\171\000\056\000\096\000\ +\\060\000\008\000\061\000\007\000\062\000\006\000\063\000\095\000\ +\\064\000\094\000\066\000\093\000\067\000\092\000\068\000\091\000\ +\\069\000\090\000\074\000\089\000\076\000\088\000\080\000\087\000\ +\\084\000\086\000\088\000\085\000\090\000\084\000\091\000\083\000\ +\\094\000\082\000\095\000\081\000\000\000\ +\\033\000\061\000\038\000\177\000\073\000\176\000\102\000\175\000\ +\\109\000\174\000\110\000\173\000\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\060\000\008\000\061\000\007\000\062\000\006\000\ +\\063\000\095\000\064\000\094\000\066\000\093\000\067\000\092\000\ +\\068\000\091\000\069\000\090\000\074\000\179\000\076\000\088\000\ +\\080\000\087\000\084\000\086\000\088\000\085\000\090\000\084\000\ +\\091\000\083\000\094\000\082\000\095\000\081\000\000\000\ +\\000\000\ +\\000\000\ +\\041\000\180\000\000\000\ +\\000\000\ +\\033\000\061\000\038\000\060\000\039\000\181\000\000\000\ +\\000\000\ +\\020\000\182\000\033\000\070\000\043\000\069\000\049\000\068\000\ +\\053\000\067\000\000\000\ +\\000\000\ +\\020\000\183\000\033\000\070\000\043\000\069\000\049\000\068\000\ +\\053\000\067\000\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\055\000\184\000\056\000\096\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\063\000\095\000\064\000\094\000\ +\\066\000\093\000\067\000\092\000\068\000\091\000\069\000\090\000\ +\\074\000\089\000\076\000\088\000\080\000\087\000\084\000\086\000\ +\\088\000\085\000\090\000\084\000\091\000\083\000\094\000\082\000\ +\\095\000\081\000\000\000\ +\\000\000\ +\\033\000\126\000\034\000\185\000\035\000\124\000\036\000\123\000\ +\\037\000\122\000\038\000\121\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\025\000\187\000\107\000\114\000\000\000\ +\\020\000\188\000\033\000\070\000\043\000\069\000\049\000\068\000\ +\\053\000\067\000\000\000\ +\\021\000\189\000\022\000\128\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\055\000\192\000\056\000\096\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\063\000\095\000\064\000\094\000\ +\\066\000\093\000\067\000\092\000\068\000\091\000\069\000\090\000\ +\\074\000\089\000\076\000\088\000\080\000\087\000\084\000\086\000\ +\\088\000\085\000\090\000\084\000\091\000\083\000\094\000\082\000\ +\\095\000\081\000\000\000\ +\\000\000\ +\\000\000\ +\\092\000\193\000\093\000\135\000\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\095\000\194\000\000\000\ +\\033\000\197\000\061\000\196\000\096\000\195\000\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\060\000\008\000\061\000\007\000\062\000\006\000\ +\\063\000\095\000\064\000\094\000\066\000\093\000\067\000\092\000\ +\\068\000\091\000\069\000\090\000\088\000\198\000\090\000\084\000\ +\\091\000\083\000\094\000\082\000\095\000\081\000\000\000\ +\\085\000\199\000\086\000\141\000\089\000\140\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\060\000\008\000\061\000\007\000\062\000\006\000\ +\\063\000\095\000\064\000\094\000\066\000\093\000\067\000\092\000\ +\\068\000\091\000\069\000\090\000\084\000\200\000\088\000\085\000\ +\\090\000\084\000\091\000\083\000\094\000\082\000\095\000\081\000\000\000\ +\\000\000\ +\\081\000\147\000\082\000\201\000\087\000\145\000\000\000\ +\\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\060\000\008\000\061\000\007\000\062\000\006\000\ +\\063\000\095\000\064\000\094\000\066\000\093\000\067\000\092\000\ +\\068\000\091\000\069\000\090\000\080\000\202\000\084\000\086\000\ +\\088\000\085\000\090\000\084\000\091\000\083\000\094\000\082\000\ +\\095\000\081\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\060\000\008\000\061\000\007\000\062\000\006\000\ +\\063\000\095\000\064\000\094\000\066\000\093\000\067\000\092\000\ +\\068\000\091\000\069\000\090\000\076\000\203\000\080\000\087\000\ +\\084\000\086\000\088\000\085\000\090\000\084\000\091\000\083\000\ +\\094\000\082\000\095\000\081\000\000\000\ +\\075\000\160\000\079\000\159\000\115\000\204\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\044\000\208\000\045\000\207\000\047\000\206\000\048\000\205\000\ +\\052\000\098\000\055\000\171\000\056\000\096\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\063\000\095\000\064\000\094\000\ +\\066\000\093\000\067\000\092\000\068\000\091\000\069\000\090\000\ +\\074\000\089\000\076\000\088\000\080\000\087\000\084\000\086\000\ +\\088\000\085\000\090\000\084\000\091\000\083\000\094\000\082\000\ +\\095\000\081\000\000\000\ +\\000\000\ +\\000\000\ +\\099\000\210\000\000\000\ +\\012\000\100\000\013\000\010\000\033\000\215\000\038\000\214\000\ +\\043\000\099\000\048\000\213\000\052\000\098\000\055\000\171\000\ +\\056\000\096\000\060\000\008\000\061\000\007\000\062\000\006\000\ +\\063\000\095\000\064\000\094\000\066\000\093\000\067\000\092\000\ +\\068\000\091\000\069\000\090\000\074\000\089\000\076\000\088\000\ +\\080\000\087\000\084\000\086\000\088\000\085\000\090\000\084\000\ +\\091\000\083\000\094\000\082\000\095\000\081\000\103\000\212\000\ +\\106\000\211\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\109\000\218\000\110\000\173\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\111\000\220\000\000\000\ +\\033\000\061\000\038\000\177\000\102\000\222\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\055\000\224\000\056\000\096\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\063\000\095\000\064\000\094\000\ +\\066\000\093\000\067\000\092\000\068\000\091\000\069\000\090\000\ +\\074\000\089\000\076\000\088\000\080\000\087\000\084\000\086\000\ +\\088\000\085\000\090\000\084\000\091\000\083\000\094\000\082\000\ +\\095\000\081\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\055\000\226\000\056\000\096\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\063\000\095\000\064\000\094\000\ +\\066\000\093\000\067\000\092\000\068\000\091\000\069\000\090\000\ +\\074\000\089\000\076\000\088\000\080\000\087\000\084\000\086\000\ +\\088\000\085\000\090\000\084\000\091\000\083\000\094\000\082\000\ +\\095\000\081\000\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\055\000\227\000\056\000\096\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\063\000\095\000\064\000\094\000\ +\\066\000\093\000\067\000\092\000\068\000\091\000\069\000\090\000\ +\\074\000\089\000\076\000\088\000\080\000\087\000\084\000\086\000\ +\\088\000\085\000\090\000\084\000\091\000\083\000\094\000\082\000\ +\\095\000\081\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\046\000\231\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\104\000\235\000\105\000\234\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\107\000\114\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\048\000\238\000\052\000\098\000\055\000\171\000\056\000\096\000\ +\\060\000\008\000\061\000\007\000\062\000\006\000\063\000\095\000\ +\\064\000\094\000\066\000\093\000\067\000\092\000\068\000\091\000\ +\\069\000\090\000\074\000\089\000\076\000\088\000\080\000\087\000\ +\\084\000\086\000\088\000\085\000\090\000\084\000\091\000\083\000\ +\\094\000\082\000\095\000\081\000\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\055\000\239\000\056\000\096\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\063\000\095\000\064\000\094\000\ +\\066\000\093\000\067\000\092\000\068\000\091\000\069\000\090\000\ +\\074\000\089\000\076\000\088\000\080\000\087\000\084\000\086\000\ +\\088\000\085\000\090\000\084\000\091\000\083\000\094\000\082\000\ +\\095\000\081\000\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\055\000\240\000\056\000\096\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\063\000\095\000\064\000\094\000\ +\\066\000\093\000\067\000\092\000\068\000\091\000\069\000\090\000\ +\\074\000\089\000\076\000\088\000\080\000\087\000\084\000\086\000\ +\\088\000\085\000\090\000\084\000\091\000\083\000\094\000\082\000\ +\\095\000\081\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\215\000\038\000\060\000\ +\\039\000\243\000\043\000\099\000\048\000\242\000\052\000\098\000\ +\\055\000\171\000\056\000\096\000\060\000\008\000\061\000\007\000\ +\\062\000\006\000\063\000\095\000\064\000\094\000\066\000\093\000\ +\\067\000\092\000\068\000\091\000\069\000\090\000\074\000\089\000\ +\\076\000\088\000\080\000\087\000\084\000\086\000\088\000\085\000\ +\\090\000\084\000\091\000\083\000\094\000\082\000\095\000\081\000\ +\\108\000\241\000\000\000\ +\\012\000\100\000\013\000\010\000\033\000\215\000\038\000\214\000\ +\\043\000\099\000\048\000\213\000\052\000\098\000\055\000\171\000\ +\\056\000\096\000\060\000\008\000\061\000\007\000\062\000\006\000\ +\\063\000\095\000\064\000\094\000\066\000\093\000\067\000\092\000\ +\\068\000\091\000\069\000\090\000\074\000\089\000\076\000\088\000\ +\\080\000\087\000\084\000\086\000\088\000\085\000\090\000\084\000\ +\\091\000\083\000\094\000\082\000\095\000\081\000\103\000\244\000\ +\\106\000\211\000\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\048\000\246\000\052\000\098\000\055\000\171\000\056\000\096\000\ +\\060\000\008\000\061\000\007\000\062\000\006\000\063\000\095\000\ +\\064\000\094\000\066\000\093\000\067\000\092\000\068\000\091\000\ +\\069\000\090\000\074\000\089\000\076\000\088\000\080\000\087\000\ +\\084\000\086\000\088\000\085\000\090\000\084\000\091\000\083\000\ +\\094\000\082\000\095\000\081\000\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\044\000\247\000\045\000\207\000\047\000\206\000\048\000\205\000\ +\\052\000\098\000\055\000\171\000\056\000\096\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\063\000\095\000\064\000\094\000\ +\\066\000\093\000\067\000\092\000\068\000\091\000\069\000\090\000\ +\\074\000\089\000\076\000\088\000\080\000\087\000\084\000\086\000\ +\\088\000\085\000\090\000\084\000\091\000\083\000\094\000\082\000\ +\\095\000\081\000\000\000\ +\\000\000\ +\\000\000\ +\\104\000\235\000\105\000\248\000\000\000\ +\\012\000\100\000\013\000\010\000\033\000\215\000\038\000\214\000\ +\\043\000\099\000\048\000\213\000\052\000\098\000\055\000\171\000\ +\\056\000\096\000\060\000\008\000\061\000\007\000\062\000\006\000\ +\\063\000\095\000\064\000\094\000\066\000\093\000\067\000\092\000\ +\\068\000\091\000\069\000\090\000\074\000\089\000\076\000\088\000\ +\\080\000\087\000\084\000\086\000\088\000\085\000\090\000\084\000\ +\\091\000\083\000\094\000\082\000\095\000\081\000\103\000\249\000\ +\\106\000\211\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\048\000\251\000\052\000\098\000\055\000\171\000\056\000\096\000\ +\\060\000\008\000\061\000\007\000\062\000\006\000\063\000\095\000\ +\\064\000\094\000\066\000\093\000\067\000\092\000\068\000\091\000\ +\\069\000\090\000\074\000\089\000\076\000\088\000\080\000\087\000\ +\\084\000\086\000\088\000\085\000\090\000\084\000\091\000\083\000\ +\\094\000\082\000\095\000\081\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\012\000\100\000\013\000\010\000\033\000\009\000\043\000\099\000\ +\\052\000\098\000\055\000\255\000\056\000\096\000\060\000\008\000\ +\\061\000\007\000\062\000\006\000\063\000\095\000\064\000\094\000\ +\\066\000\093\000\067\000\092\000\068\000\091\000\069\000\090\000\ +\\074\000\089\000\076\000\088\000\080\000\087\000\084\000\086\000\ +\\088\000\085\000\090\000\084\000\091\000\083\000\094\000\082\000\ +\\095\000\081\000\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\\000\000\ +\" +val numstates = 259 +val numrules = 182 +val s = ref "" and index = ref 0 +val string_to_int = fn () => +let val i = !index +in index := i+2; Char.ord(String.sub(!s,i)) + Char.ord(String.sub(!s,i+1)) * 256 +end +val string_to_list = fn s' => + let val len = String.size s' + fun f () = + if !index < len then string_to_int() :: f() + else nil + in index := 0; s := s'; f () + end +val string_to_pairlist = fn (conv_key,conv_entry) => + let fun f () = + case string_to_int() + of 0 => EMPTY + | n => PAIR(conv_key (n-1),conv_entry (string_to_int()),f()) + in f + end +val string_to_pairlist_default = fn (conv_key,conv_entry) => + let val conv_row = string_to_pairlist(conv_key,conv_entry) + in fn () => + let val default = conv_entry(string_to_int()) + val row = conv_row() + in (row,default) + end + end +val string_to_table = fn (convert_row,s') => + let val len = String.size s' + fun f ()= + if !index < len then convert_row() :: f() + else nil + in (s := s'; index := 0; f ()) + end +local + val memo = Array.array(numstates+numrules,ERROR) + val _ =let fun g i=(Array.update(memo,i,REDUCE(i-numstates)); g(i+1)) + fun f i = + if i=numstates then g i + else (Array.update(memo,i,SHIFT (STATE i)); f (i+1)) + in f 0 handle Subscript => () + end +in +val entry_to_action = fn 0 => ACCEPT | 1 => ERROR | j => Array.sub(memo,(j-2)) +end +val gotoT=Array.fromList(string_to_table(string_to_pairlist(NT,STATE),gotoT)) +val actionRows=string_to_table(string_to_pairlist_default(T,entry_to_action),actionRows) +val actionRowNumbers = string_to_list actionRowNumbers +val actionT = let val actionRowLookUp= +let val a=Array.fromList(actionRows) in fn i=>Array.sub(a,i) end +in Array.fromList(map actionRowLookUp actionRowNumbers) +end +in LrTable.mkLrTable {actions=actionT,gotos=gotoT,numRules=numrules, +numStates=numstates,initialState=STATE 0} +end +end +local open Header in +type pos = ( int * int * int ) +type arg = unit +structure MlyValue = +struct +datatype svalue = VOID | ntVOID of unit -> unit + | SIMPLE_NAME of unit -> (string) + | STRING_LITERAL of unit -> (string) + | REAL_LITERAL of unit -> (string) + | INTEGER_LITERAL of unit -> (string) | NOT of unit -> (string) + | LOG_IMPL of unit -> (string) | LOG_XOR of unit -> (string) + | LOG_OR of unit -> (string) | LOG_AND of unit -> (string) + | REL_LTE of unit -> (string) | REL_GTE of unit -> (string) + | REL_LT of unit -> (string) | REL_GT of unit -> (string) + | REL_NOTEQUAL of unit -> (string) | PLUS of unit -> (string) + | SLASH of unit -> (string) | STAR of unit -> (string) + | MINUS of unit -> (string) | OCLASTYPE of unit -> (string) + | OCLISKINDOF of unit -> (string) | OCLISTYPEOF of unit -> (string) + | ISUNIQUE of unit -> (string) | ONE of unit -> (string) + | EXISTS of unit -> (string) | ANY of unit -> (string) + | COLLECT of unit -> (string) | REJECT of unit -> (string) + | SELECT of unit -> (string) | ITERATE of unit -> (string) + | GUARD of unit -> (string) | VERTICAL_BAR of unit -> (string) + | BRACE_CLOSE of unit -> (string) | BRACE_OPEN of unit -> (string) + | PAREN_CLOSE of unit -> (string) | PAREN_OPEN of unit -> (string) + | THEN of unit -> (string) + | POST of unit -> (Context.ConditionType) + | PRE of unit -> (Context.ConditionType) + | PACKAGE of unit -> (string) | LET of unit -> (string) + | INV of unit -> (string) | INIT of unit -> (Context.AttrOrAssoc) + | IN of unit -> (string) | IF of unit -> (string) + | TRUE of unit -> (string) | FORALL of unit -> (string) + | FALSE of unit -> (string) | ENDPACKAGE of unit -> (string) + | ENDIF of unit -> (string) | ELSE of unit -> (string) + | DERIVE of unit -> (Context.AttrOrAssoc) | DEF of unit -> (string) + | CONTEXT of unit -> (string) + | BODY of unit -> (Context.ConditionType) + | DBL_CARAT of unit -> (string) | CARAT of unit -> (string) + | BRACKET_CLOSE of unit -> (string) + | BRACKET_OPEN of unit -> (string) | TUPLE_TYPE of unit -> (string) + | TUPLE of unit -> (string) | SET of unit -> (string) + | ORDERED_SET of unit -> (string) | SEQUENCE of unit -> (string) + | COLLECTION of unit -> (string) | BAG of unit -> (string) + | AT_PRE of unit -> (string) | HASH of unit -> (string) + | QUESTION_MARK of unit -> (string) | EQUALS of unit -> (string) + | SEMI_COLON of unit -> (string) | DBL_COLON of unit -> (string) + | COLON of unit -> (string) | DBL_DOT of unit -> (string) + | DOT of unit -> (string) | ARROW_RIGHT of unit -> (string) + | COMMA of unit -> (string) | TICK of unit -> (string) + | logical_exp_tail_cs_p of unit -> ( ( string*OclTerm ) ) + | variable_declaration_list_tail_cs of unit -> ( ( string*OclType ) list) + | variable_declaration_list_cs of unit -> ( ( string*OclType ) list) + | variable_declaration_cs of unit -> ( ( string*OclType ) ) + | variable_initializer of unit -> (OclTerm) + | initialized_variable_list_tail_cs of unit -> ( ( string * OclType * OclTerm ) ) + | initialized_variable_list_tail_cs_p of unit -> ( ( string * OclType * OclTerm ) list) + | iterator_vars_cs of unit -> ( ( string*OclType ) list) + | formal_parameter_type_specifier of unit -> (OclType) + | actual_parameter_list_element_cs of unit -> ( ( OclTerm * OclType ) ) + | actual_parameter_list_tail_cs_p of unit -> ( ( OclTerm * OclType ) list) + | actual_parameter_list_tail_cs of unit -> ( ( OclTerm * OclType ) list) + | actual_parameter_list_cs of unit -> ( ( OclTerm * OclType ) list) + | initialized_variable_cs of unit -> ( ( string * OclType * OclTerm ) ) + | qualifiers of unit -> (CollectionPart list) + | property_call_parameters_cs of unit -> ( ( OclTerm * OclType ) list) + | msg_operator_cs of unit -> (OclTerm) + | signal_spec_exp_cs of unit -> (OclTerm) + | arrow_property_call_exp_cs of unit -> (OclTerm) + | property_call_exp_cs of unit -> (OclTerm) + | primary_exp_cs of unit -> (OclTerm) + | postfix_exp_tail_cs of unit -> (OclTerm) + | postfix_exp_tail_cs_p of unit -> (OclTerm list) + | postfix_exp_cs of unit -> (OclTerm) + | unary_op of unit -> (string) | mult_op of unit -> (string) + | unary_exp_cs of unit -> (OclTerm) | add_op of unit -> (string) + | multiplicative_exp_tail_cs of unit -> ( ( string*OclTerm ) ) + | multiplicative_exp_tail_cs_p of unit -> ( ( string*OclTerm ) ) + | multiplicative_exp_cs of unit -> (OclTerm) + | rel_op of unit -> (string) + | additive_exp_tail_cs_p of unit -> ( ( string*OclTerm ) ) + | additive_exp_tail_cs of unit -> ( ( string*OclTerm ) ) + | additive_exp_cs of unit -> (OclTerm) + | logic_op of unit -> (string) + | relational_exp_tail_cs of unit -> ( ( string*OclTerm ) ) + | relational_exp_tail_cs_p of unit -> ( ( string*OclTerm ) ) + | relational_exp_cs of unit -> (OclTerm) + | logical_exp_tail_cs of unit -> ( ( string*OclTerm ) ) + | logical_exp_cs of unit -> (OclTerm) + | initialized_variable_list_cs of unit -> ( ( string * OclType * OclTerm ) list) + | string_literal of unit -> (OclTerm) + | real_literal of unit -> (OclTerm) + | integer_literal of unit -> (OclTerm) + | boolean_literal_exp_cs of unit -> (OclTerm) + | string_literal_exp_cs of unit -> (OclTerm) + | numeric_literal_exp_cs of unit -> (OclTerm) + | primitive_literal_exp_cs of unit -> (OclTerm) + | tuple_literal_exp_cs of unit -> (OclTerm) + | collection_literal_exp_cs of unit -> (OclTerm) + | literal_exp_cs of unit -> (OclTerm) + | ocl_op_name of unit -> (string) + | iterator_name_cs of unit -> (string) + | identifier_cs of unit -> (string) + | let_exp_cs of unit -> (OclTerm) + | ocl_expression_cs of unit -> (OclTerm) + | tuple_type_specifier_cs of unit -> (OclType) + | simple_type_specifier_cs of unit -> (OclType) + | if_exp_cs of unit -> (OclTerm) + | is_marked_pre_cs of unit -> (string) + | time_exp_cs of unit -> (string) + | collection_type_specifier_cs of unit -> (OclType) + | expression of unit -> (OclTerm) + | collection_range_cs of unit -> (CollectionPart) + | collection_literal_parts_tail_cs of unit -> (CollectionPart list) + | collection_literal_part_cs of unit -> (CollectionPart) + | collection_literal_parts_cs of unit -> (CollectionPart list) + | collection_type_identifier_cs of unit -> (string) + | collection_literal_exp of unit -> (OclTerm) + | operation_return_type_specifier_cs of unit -> (OclType) + | formal_parameter_list_tail_cs of unit -> ( ( string * OclType ) list) + | formal_parameter_list_cs of unit -> ( ( string * OclType ) list) + | formal_parameter_cs of unit -> ( ( string * OclType ) ) + | ocl_operation_defined_entity_decl_cs of unit -> (string* ( (string * OclType) list ) ) + | ocl_attribute_defined_entity_decl_cs of unit -> ( ( string * OclType ) ) + | defined_entity_decl_cs of unit -> (OclTerm) + | definition_constraint_cs of unit -> (OclTerm) + | simple_name of unit -> (string) + | op_constraint_stereotype_cs of unit -> (Context.ConditionType) + | definition_cs of unit -> (OclTerm) + | invariant_cs of unit -> (OclTerm) + | guard_constraint_cs of unit -> ( ( string option*OclTerm ) ) + | guard_constraint_cs_p of unit -> ( ( string option*OclTerm ) list) + | operation_constraint_cs of unit -> ( ( Context.ConditionType*string option*OclTerm ) ) + | operation_constraint_cs_p of unit -> ( ( Context.ConditionType*string option*OclTerm ) list) + | operation_signature_cs of unit -> ( ( string * OclType ) list) + | classifier_constraint_cs of unit -> ( ( string option*OclTerm ) ) + | classifier_constraint_cs_p of unit -> ( ( string option*OclTerm ) list) + | init_or_der_value_cs of unit -> ( ( AttrOrAssoc*OclTerm ) ) + | init_or_der_value_cs_p of unit -> ( ( AttrOrAssoc*OclTerm ) list) + | type_specifier of unit -> (OclType) + | guard_context_declaration_cs of unit -> (context list) + | operation_context_declaration_cs of unit -> (context list) + | classifier_context_declaration_cs of unit -> (context list) + | attr_or_assoc_cs of unit -> (context list) + | context_declaration_cs of unit -> (context list) + | context_declaration_list_cs of unit -> (context list) + | path_name_head_cs of unit -> (Path) + | path_name_cs of unit -> (Path) + | package_constraint_list_cs of unit -> (context list) + | package_constraint_list_cs_p of unit -> (context list) + | ocl_file of unit -> (context list) + | RealLiteralExp of unit -> (Rep_OclTerm.OclTerm) + | StringLiteralExp of unit -> (Rep_OclTerm.OclTerm) + | BooleanLiteralExp of unit -> (Rep_OclTerm.OclTerm) + | IntegerLiteralExp of unit -> (Rep_OclTerm.OclTerm) + | PrimitiveLiteralExp of unit -> (Rep_OclTerm.OclTerm) + | LiteralExp of unit -> (OclTerm) + | OclExpression of unit -> (Rep_OclTerm.OclTerm) + | START of unit -> (context list) +end +type svalue = MlyValue.svalue +type result = context list +end +structure EC= +struct +open LrTable +infix 5 $$ +fun x $$ y = y::x +val is_keyword = +fn _ => false +val preferred_change : (term list * term list) list = +nil +val noShift = +fn (T 0) => true | _ => false +val showTerminal = +fn (T 0) => "EOF" + | (T 1) => "TICK" + | (T 2) => "COMMA" + | (T 3) => "ARROW_RIGHT" + | (T 4) => "DOT" + | (T 5) => "DBL_DOT" + | (T 6) => "COLON" + | (T 7) => "DBL_COLON" + | (T 8) => "SEMI_COLON" + | (T 9) => "EQUALS" + | (T 10) => "QUESTION_MARK" + | (T 11) => "HASH" + | (T 12) => "AT_PRE" + | (T 13) => "BAG" + | (T 14) => "COLLECTION" + | (T 15) => "SEQUENCE" + | (T 16) => "ORDERED_SET" + | (T 17) => "SET" + | (T 18) => "TUPLE" + | (T 19) => "TUPLE_TYPE" + | (T 20) => "BRACKET_OPEN" + | (T 21) => "BRACKET_CLOSE" + | (T 22) => "CARAT" + | (T 23) => "DBL_CARAT" + | (T 24) => "BODY" + | (T 25) => "CONTEXT" + | (T 26) => "DEF" + | (T 27) => "DERIVE" + | (T 28) => "ELSE" + | (T 29) => "ENDIF" + | (T 30) => "ENDPACKAGE" + | (T 31) => "FALSE" + | (T 32) => "FORALL" + | (T 33) => "TRUE" + | (T 34) => "IF" + | (T 35) => "IN" + | (T 36) => "INIT" + | (T 37) => "INV" + | (T 38) => "LET" + | (T 39) => "PACKAGE" + | (T 40) => "PRE" + | (T 41) => "POST" + | (T 42) => "THEN" + | (T 43) => "PAREN_OPEN" + | (T 44) => "PAREN_CLOSE" + | (T 45) => "BRACE_OPEN" + | (T 46) => "BRACE_CLOSE" + | (T 47) => "VERTICAL_BAR" + | (T 48) => "GUARD" + | (T 49) => "ITERATE" + | (T 50) => "SELECT" + | (T 51) => "REJECT" + | (T 52) => "COLLECT" + | (T 53) => "ANY" + | (T 54) => "EXISTS" + | (T 55) => "ONE" + | (T 56) => "ISUNIQUE" + | (T 57) => "OCLISTYPEOF" + | (T 58) => "OCLISKINDOF" + | (T 59) => "OCLASTYPE" + | (T 60) => "MINUS" + | (T 61) => "STAR" + | (T 62) => "SLASH" + | (T 63) => "PLUS" + | (T 64) => "REL_NOTEQUAL" + | (T 65) => "REL_GT" + | (T 66) => "REL_LT" + | (T 67) => "REL_GTE" + | (T 68) => "REL_LTE" + | (T 69) => "LOG_AND" + | (T 70) => "LOG_OR" + | (T 71) => "LOG_XOR" + | (T 72) => "LOG_IMPL" + | (T 73) => "NOT" + | (T 74) => "INTEGER_LITERAL" + | (T 75) => "REAL_LITERAL" + | (T 76) => "STRING_LITERAL" + | (T 77) => "SIMPLE_NAME" + | _ => "bogus-term" +local open Header in +val errtermvalue= +fn _ => MlyValue.VOID +end +val terms : term list = nil + $$ (T 0)end +structure Actions = +struct +exception mlyAction of int +local open Header in +val actions = +fn (i392,defaultPos,stack, + (()):arg) => +case (i392,stack) +of ( 0, ( ( _, ( MlyValue.ocl_file ocl_file1, ocl_file1left, +ocl_file1right)) :: rest671)) => let val result = MlyValue.START (fn + _ => let val (ocl_file as ocl_file1) = ocl_file1 () + in (ocl_file) +end) + in ( LrTable.NT 0, ( result, ocl_file1left, ocl_file1right), rest671) + +end +| ( 1, ( ( _, ( MlyValue.package_constraint_list_cs_p +package_constraint_list_cs_p1, package_constraint_list_cs_p1left, +package_constraint_list_cs_p1right)) :: rest671)) => let val result = + MlyValue.ocl_file (fn _ => let val (package_constraint_list_cs_p as +package_constraint_list_cs_p1) = package_constraint_list_cs_p1 () + in (package_constraint_list_cs_p) +end) + in ( LrTable.NT 8, ( result, package_constraint_list_cs_p1left, +package_constraint_list_cs_p1right), rest671) +end +| ( 2, ( ( _, ( MlyValue.package_constraint_list_cs +package_constraint_list_cs1, package_constraint_list_cs1left, +package_constraint_list_cs1right)) :: rest671)) => let val result = +MlyValue.package_constraint_list_cs_p (fn _ => let val ( +package_constraint_list_cs as package_constraint_list_cs1) = +package_constraint_list_cs1 () + in (package_constraint_list_cs) +end) + in ( LrTable.NT 9, ( result, package_constraint_list_cs1left, +package_constraint_list_cs1right), rest671) +end +| ( 3, ( ( _, ( MlyValue.package_constraint_list_cs_p +package_constraint_list_cs_p1, _, package_constraint_list_cs_p1right)) + :: ( _, ( MlyValue.package_constraint_list_cs +package_constraint_list_cs1, package_constraint_list_cs1left, _)) :: +rest671)) => let val result = MlyValue.package_constraint_list_cs_p + (fn _ => let val (package_constraint_list_cs as +package_constraint_list_cs1) = package_constraint_list_cs1 () + val (package_constraint_list_cs_p as package_constraint_list_cs_p1) + = package_constraint_list_cs_p1 () + in (package_constraint_list_cs@package_constraint_list_cs_p) +end) + in ( LrTable.NT 9, ( result, package_constraint_list_cs1left, +package_constraint_list_cs_p1right), rest671) +end +| ( 4, ( ( _, ( MlyValue.ENDPACKAGE ENDPACKAGE1, _, ENDPACKAGE1right) +) :: ( _, ( MlyValue.path_name_cs path_name_cs1, _, _)) :: ( _, ( +MlyValue.PACKAGE PACKAGE1, PACKAGE1left, _)) :: rest671)) => let val +result = MlyValue.package_constraint_list_cs (fn _ => let val +PACKAGE1 = PACKAGE1 () + val path_name_cs1 = path_name_cs1 () + val ENDPACKAGE1 = ENDPACKAGE1 () + in ( +trace low ("Starts creatind empty package ... " ^ "\n"); ([Empty_context ("this is an empty context", Literal ("empty",OclVoid))]) +) +end) + in ( LrTable.NT 10, ( result, PACKAGE1left, ENDPACKAGE1right), +rest671) +end +| ( 5, ( ( _, ( MlyValue.ENDPACKAGE ENDPACKAGE1, _, ENDPACKAGE1right) +) :: ( _, ( MlyValue.context_declaration_list_cs +context_declaration_list_cs1, _, _)) :: ( _, ( MlyValue.path_name_cs +path_name_cs1, _, _)) :: ( _, ( MlyValue.PACKAGE PACKAGE1, +PACKAGE1left, _)) :: rest671)) => let val result = +MlyValue.package_constraint_list_cs (fn _ => let val PACKAGE1 = +PACKAGE1 () + val (path_name_cs as path_name_cs1) = path_name_cs1 () + val (context_declaration_list_cs as context_declaration_list_cs1) = +context_declaration_list_cs1 () + val ENDPACKAGE1 = ENDPACKAGE1 () + in ( +trace low ("Starts creating contextes ..." ^ "\n"); (list_extend_path path_name_cs context_declaration_list_cs) +) +end) + in ( LrTable.NT 10, ( result, PACKAGE1left, ENDPACKAGE1right), +rest671) +end +| ( 6, ( ( _, ( MlyValue.context_declaration_cs +context_declaration_cs1, context_declaration_cs1left, +context_declaration_cs1right)) :: rest671)) => let val result = +MlyValue.context_declaration_list_cs (fn _ => let val ( +context_declaration_cs as context_declaration_cs1) = +context_declaration_cs1 () + in (context_declaration_cs) +end) + in ( LrTable.NT 13, ( result, context_declaration_cs1left, +context_declaration_cs1right), rest671) +end +| ( 7, ( ( _, ( MlyValue.context_declaration_list_cs +context_declaration_list_cs1, _, context_declaration_list_cs1right)) + :: ( _, ( MlyValue.context_declaration_cs context_declaration_cs1, +context_declaration_cs1left, _)) :: rest671)) => let val result = +MlyValue.context_declaration_list_cs (fn _ => let val ( +context_declaration_cs as context_declaration_cs1) = +context_declaration_cs1 () + val (context_declaration_list_cs as context_declaration_list_cs1) = +context_declaration_list_cs1 () + in (context_declaration_cs@context_declaration_list_cs) +end) + in ( LrTable.NT 13, ( result, context_declaration_cs1left, +context_declaration_list_cs1right), rest671) +end +| ( 8, ( ( _, ( MlyValue.attr_or_assoc_cs attr_or_assoc_cs1, +attr_or_assoc_cs1left, attr_or_assoc_cs1right)) :: rest671)) => let + val result = MlyValue.context_declaration_cs (fn _ => let val ( +attr_or_assoc_cs as attr_or_assoc_cs1) = attr_or_assoc_cs1 () + in (attr_or_assoc_cs) +end) + in ( LrTable.NT 14, ( result, attr_or_assoc_cs1left, +attr_or_assoc_cs1right), rest671) +end +| ( 9, ( ( _, ( MlyValue.classifier_context_declaration_cs +classifier_context_declaration_cs1, +classifier_context_declaration_cs1left, +classifier_context_declaration_cs1right)) :: rest671)) => let val +result = MlyValue.context_declaration_cs (fn _ => let val ( +classifier_context_declaration_cs as +classifier_context_declaration_cs1) = +classifier_context_declaration_cs1 () + in (classifier_context_declaration_cs) +end) + in ( LrTable.NT 14, ( result, classifier_context_declaration_cs1left, + classifier_context_declaration_cs1right), rest671) +end +| ( 10, ( ( _, ( MlyValue.operation_context_declaration_cs +operation_context_declaration_cs1, +operation_context_declaration_cs1left, +operation_context_declaration_cs1right)) :: rest671)) => let val +result = MlyValue.context_declaration_cs (fn _ => let val ( +operation_context_declaration_cs as operation_context_declaration_cs1) + = operation_context_declaration_cs1 () + in (operation_context_declaration_cs) +end) + in ( LrTable.NT 14, ( result, operation_context_declaration_cs1left, +operation_context_declaration_cs1right), rest671) +end +| ( 11, ( ( _, ( MlyValue.guard_context_declaration_cs +guard_context_declaration_cs1, guard_context_declaration_cs1left, +guard_context_declaration_cs1right)) :: rest671)) => let val result = + MlyValue.context_declaration_cs (fn _ => let val ( +guard_context_declaration_cs as guard_context_declaration_cs1) = +guard_context_declaration_cs1 () + in (guard_context_declaration_cs) +end) + in ( LrTable.NT 14, ( result, guard_context_declaration_cs1left, +guard_context_declaration_cs1right), rest671) +end +| ( 12, ( ( _, ( MlyValue.init_or_der_value_cs_p +init_or_der_value_cs_p1, _, init_or_der_value_cs_p1right)) :: ( _, ( +MlyValue.type_specifier type_specifier1, _, _)) :: ( _, ( +MlyValue.COLON COLON1, _, _)) :: ( _, ( MlyValue.path_name_cs +path_name_cs1, _, _)) :: ( _, ( MlyValue.CONTEXT CONTEXT1, +CONTEXT1left, _)) :: rest671)) => let val result = +MlyValue.attr_or_assoc_cs (fn _ => let val CONTEXT1 = CONTEXT1 () + val (path_name_cs as path_name_cs1) = path_name_cs1 () + val COLON1 = COLON1 () + val (type_specifier as type_specifier1) = type_specifier1 () + val (init_or_der_value_cs_p as init_or_der_value_cs_p1) = +init_or_der_value_cs_p1 () + in (attr_list (path_name_cs, type_specifier, init_or_der_value_cs_p)) + +end) + in ( LrTable.NT 15, ( result, CONTEXT1left, +init_or_der_value_cs_p1right), rest671) +end +| ( 13, ( ( _, ( MlyValue.SIMPLE_NAME SIMPLE_NAME1, SIMPLE_NAME1left, + SIMPLE_NAME1right)) :: rest671)) => let val result = +MlyValue.simple_name (fn _ => let val (SIMPLE_NAME as SIMPLE_NAME1) = + SIMPLE_NAME1 () + in (trace low ("simple_name..." ^ "\n");SIMPLE_NAME) +end) + in ( LrTable.NT 32, ( result, SIMPLE_NAME1left, SIMPLE_NAME1right), +rest671) +end +| ( 14, ( ( _, ( MlyValue.classifier_constraint_cs_p +classifier_constraint_cs_p1, _, classifier_constraint_cs_p1right)) :: +( _, ( MlyValue.path_name_cs path_name_cs1, _, _)) :: ( _, ( +MlyValue.CONTEXT CONTEXT1, CONTEXT1left, _)) :: rest671)) => let val +result = MlyValue.classifier_context_declaration_cs (fn _ => let val +CONTEXT1 = CONTEXT1 () + val (path_name_cs as path_name_cs1) = path_name_cs1 () + val (classifier_constraint_cs_p as classifier_constraint_cs_p1) = +classifier_constraint_cs_p1 () + in (inv_list (path_name_cs, classifier_constraint_cs_p)) +end) + in ( LrTable.NT 16, ( result, CONTEXT1left, +classifier_constraint_cs_p1right), rest671) +end +| ( 15, ( ( _, ( MlyValue.operation_constraint_cs_p +operation_constraint_cs_p1, _, operation_constraint_cs_p1right)) :: ( + _, ( MlyValue.operation_signature_cs operation_signature_cs1, _, _)) + :: ( _, ( MlyValue.path_name_cs path_name_cs1, _, _)) :: ( _, ( +MlyValue.CONTEXT CONTEXT1, CONTEXT1left, _)) :: rest671)) => let val +result = MlyValue.operation_context_declaration_cs (fn _ => let val +CONTEXT1 = CONTEXT1 () + val (path_name_cs as path_name_cs1) = path_name_cs1 () + val (operation_signature_cs as operation_signature_cs1) = +operation_signature_cs1 () + val (operation_constraint_cs_p as operation_constraint_cs_p1) = +operation_constraint_cs_p1 () + in ( +cond_list (path_name_cs, operation_signature_cs, operation_constraint_cs_p) +) +end) + in ( LrTable.NT 17, ( result, CONTEXT1left, +operation_constraint_cs_p1right), rest671) +end +| ( 16, ( ( _, ( MlyValue.guard_constraint_cs_p +guard_constraint_cs_p1, _, guard_constraint_cs_p1right)) :: ( _, ( +MlyValue.path_name_cs path_name_cs1, _, _)) :: ( _, ( MlyValue.CONTEXT + CONTEXT1, CONTEXT1left, _)) :: rest671)) => let val result = +MlyValue.guard_context_declaration_cs (fn _ => let val CONTEXT1 = +CONTEXT1 () + val (path_name_cs as path_name_cs1) = path_name_cs1 () + val (guard_constraint_cs_p as guard_constraint_cs_p1) = +guard_constraint_cs_p1 () + in (guard_list (real_path (path_name_cs), guard_constraint_cs_p)) +end +) + in ( LrTable.NT 18, ( result, CONTEXT1left, +guard_constraint_cs_p1right), rest671) +end +| ( 17, ( ( _, ( MlyValue.init_or_der_value_cs init_or_der_value_cs1, + init_or_der_value_cs1left, init_or_der_value_cs1right)) :: rest671)) + => let val result = MlyValue.init_or_der_value_cs_p (fn _ => let + val (init_or_der_value_cs as init_or_der_value_cs1) = +init_or_der_value_cs1 () + in ([init_or_der_value_cs]) +end) + in ( LrTable.NT 20, ( result, init_or_der_value_cs1left, +init_or_der_value_cs1right), rest671) +end +| ( 18, ( ( _, ( MlyValue.init_or_der_value_cs_p +init_or_der_value_cs_p1, _, init_or_der_value_cs_p1right)) :: ( _, ( +MlyValue.init_or_der_value_cs init_or_der_value_cs1, +init_or_der_value_cs1left, _)) :: rest671)) => let val result = +MlyValue.init_or_der_value_cs_p (fn _ => let val ( +init_or_der_value_cs as init_or_der_value_cs1) = init_or_der_value_cs1 + () + val (init_or_der_value_cs_p as init_or_der_value_cs_p1) = +init_or_der_value_cs_p1 () + in ([init_or_der_value_cs]@init_or_der_value_cs_p) +end) + in ( LrTable.NT 20, ( result, init_or_der_value_cs1left, +init_or_der_value_cs_p1right), rest671) +end +| ( 19, ( ( _, ( MlyValue.classifier_constraint_cs +classifier_constraint_cs1, classifier_constraint_cs1left, +classifier_constraint_cs1right)) :: rest671)) => let val result = +MlyValue.classifier_constraint_cs_p (fn _ => let val ( +classifier_constraint_cs as classifier_constraint_cs1) = +classifier_constraint_cs1 () + in ([classifier_constraint_cs]) +end) + in ( LrTable.NT 22, ( result, classifier_constraint_cs1left, +classifier_constraint_cs1right), rest671) +end +| ( 20, ( ( _, ( MlyValue.classifier_constraint_cs_p +classifier_constraint_cs_p1, _, classifier_constraint_cs_p1right)) :: +( _, ( MlyValue.classifier_constraint_cs classifier_constraint_cs1, +classifier_constraint_cs1left, _)) :: rest671)) => let val result = +MlyValue.classifier_constraint_cs_p (fn _ => let val ( +classifier_constraint_cs as classifier_constraint_cs1) = +classifier_constraint_cs1 () + val (classifier_constraint_cs_p as classifier_constraint_cs_p1) = +classifier_constraint_cs_p1 () + in ([classifier_constraint_cs]@classifier_constraint_cs_p) +end) + in ( LrTable.NT 22, ( result, classifier_constraint_cs1left, +classifier_constraint_cs_p1right), rest671) +end +| ( 21, ( ( _, ( MlyValue.operation_constraint_cs +operation_constraint_cs1, operation_constraint_cs1left, +operation_constraint_cs1right)) :: rest671)) => let val result = +MlyValue.operation_constraint_cs_p (fn _ => let val ( +operation_constraint_cs as operation_constraint_cs1) = +operation_constraint_cs1 () + in ([operation_constraint_cs]) +end) + in ( LrTable.NT 25, ( result, operation_constraint_cs1left, +operation_constraint_cs1right), rest671) +end +| ( 22, ( ( _, ( MlyValue.operation_constraint_cs_p +operation_constraint_cs_p1, _, operation_constraint_cs_p1right)) :: ( + _, ( MlyValue.operation_constraint_cs operation_constraint_cs1, +operation_constraint_cs1left, _)) :: rest671)) => let val result = +MlyValue.operation_constraint_cs_p (fn _ => let val ( +operation_constraint_cs as operation_constraint_cs1) = +operation_constraint_cs1 () + val (operation_constraint_cs_p as operation_constraint_cs_p1) = +operation_constraint_cs_p1 () + in ([operation_constraint_cs]@operation_constraint_cs_p) +end) + in ( LrTable.NT 25, ( result, operation_constraint_cs1left, +operation_constraint_cs_p1right), rest671) +end +| ( 23, ( ( _, ( MlyValue.guard_constraint_cs guard_constraint_cs1, +guard_constraint_cs1left, guard_constraint_cs1right)) :: rest671)) => + let val result = MlyValue.guard_constraint_cs_p (fn _ => let val ( +guard_constraint_cs as guard_constraint_cs1) = guard_constraint_cs1 () + in ([guard_constraint_cs]) +end) + in ( LrTable.NT 27, ( result, guard_constraint_cs1left, +guard_constraint_cs1right), rest671) +end +| ( 24, ( ( _, ( MlyValue.guard_constraint_cs_p +guard_constraint_cs_p1, _, guard_constraint_cs_p1right)) :: ( _, ( +MlyValue.guard_constraint_cs guard_constraint_cs1, +guard_constraint_cs1left, _)) :: rest671)) => let val result = +MlyValue.guard_constraint_cs_p (fn _ => let val (guard_constraint_cs + as guard_constraint_cs1) = guard_constraint_cs1 () + val (guard_constraint_cs_p as guard_constraint_cs_p1) = +guard_constraint_cs_p1 () + in ([guard_constraint_cs]@guard_constraint_cs_p) +end) + in ( LrTable.NT 27, ( result, guard_constraint_cs1left, +guard_constraint_cs_p1right), rest671) +end +| ( 25, ( ( _, ( MlyValue.ocl_expression_cs ocl_expression_cs1, _, +ocl_expression_cs1right)) :: ( _, ( MlyValue.COLON COLON1, _, _)) :: ( + _, ( MlyValue.INIT INIT1, INIT1left, _)) :: rest671)) => let val +result = MlyValue.init_or_der_value_cs (fn _ => let val (INIT as +INIT1) = INIT1 () + val COLON1 = COLON1 () + val (ocl_expression_cs as ocl_expression_cs1) = ocl_expression_cs1 + () + in (INIT, ocl_expression_cs) +end) + in ( LrTable.NT 21, ( result, INIT1left, ocl_expression_cs1right), +rest671) +end +| ( 26, ( ( _, ( MlyValue.ocl_expression_cs ocl_expression_cs1, _, +ocl_expression_cs1right)) :: ( _, ( MlyValue.COLON COLON1, _, _)) :: ( + _, ( MlyValue.DERIVE DERIVE1, DERIVE1left, _)) :: rest671)) => let + val result = MlyValue.init_or_der_value_cs (fn _ => let val (DERIVE + as DERIVE1) = DERIVE1 () + val COLON1 = COLON1 () + val (ocl_expression_cs as ocl_expression_cs1) = ocl_expression_cs1 + () + in (DERIVE, ocl_expression_cs) +end) + in ( LrTable.NT 21, ( result, DERIVE1left, ocl_expression_cs1right), +rest671) +end +| ( 27, ( ( _, ( MlyValue.ocl_expression_cs ocl_expression_cs1, _, +ocl_expression_cs1right)) :: ( _, ( MlyValue.COLON COLON1, _, _)) :: ( + _, ( MlyValue.INV INV1, INV1left, _)) :: rest671)) => let val result + = MlyValue.classifier_constraint_cs (fn _ => let val (INV as INV1) = + INV1 () + val (COLON as COLON1) = COLON1 () + val (ocl_expression_cs as ocl_expression_cs1) = ocl_expression_cs1 + () + in ( +trace low ("INV COLON ocl_expression_cs ..." ^ "\n"); (NONE,ocl_expression_cs) +) +end) + in ( LrTable.NT 23, ( result, INV1left, ocl_expression_cs1right), +rest671) +end +| ( 28, ( ( _, ( MlyValue.ocl_expression_cs ocl_expression_cs1, _, +ocl_expression_cs1right)) :: ( _, ( MlyValue.COLON COLON1, _, _)) :: ( + _, ( MlyValue.simple_name simple_name1, _, _)) :: ( _, ( MlyValue.INV + INV1, INV1left, _)) :: rest671)) => let val result = +MlyValue.classifier_constraint_cs (fn _ => let val (INV as INV1) = +INV1 () + val (simple_name as simple_name1) = simple_name1 () + val (COLON as COLON1) = COLON1 () + val (ocl_expression_cs as ocl_expression_cs1) = ocl_expression_cs1 + () + in ( +trace low ("INV simple_name COLON ocl_expression_cs ..." ^ "\n");(SOME(simple_name),ocl_expression_cs) +) +end) + in ( LrTable.NT 23, ( result, INV1left, ocl_expression_cs1right), +rest671) +end +| ( 29, ( ( _, ( MlyValue.definition_constraint_cs +definition_constraint_cs1, _, definition_constraint_cs1right)) :: ( _, + ( MlyValue.COLON COLON1, _, _)) :: ( _, ( MlyValue.DEF DEF1, DEF1left +, _)) :: rest671)) => let val result = +MlyValue.classifier_constraint_cs (fn _ => let val DEF1 = DEF1 () + val COLON1 = COLON1 () + val (definition_constraint_cs as definition_constraint_cs1) = +definition_constraint_cs1 () + in (NONE,definition_constraint_cs) +end) + in ( LrTable.NT 23, ( result, DEF1left, +definition_constraint_cs1right), rest671) +end +| ( 30, ( ( _, ( MlyValue.definition_constraint_cs +definition_constraint_cs1, _, definition_constraint_cs1right)) :: ( _, + ( MlyValue.COLON COLON1, _, _)) :: ( _, ( MlyValue.simple_name +simple_name1, _, _)) :: ( _, ( MlyValue.DEF DEF1, DEF1left, _)) :: +rest671)) => let val result = MlyValue.classifier_constraint_cs (fn _ + => let val DEF1 = DEF1 () + val (simple_name as simple_name1) = simple_name1 () + val COLON1 = COLON1 () + val (definition_constraint_cs as definition_constraint_cs1) = +definition_constraint_cs1 () + in (SOME(simple_name),definition_constraint_cs) +end) + in ( LrTable.NT 23, ( result, DEF1left, +definition_constraint_cs1right), rest671) +end +| ( 31, ( ( _, ( MlyValue.ocl_expression_cs ocl_expression_cs1, _, +ocl_expression_cs1right)) :: ( _, ( MlyValue.COLON COLON1, _, _)) :: ( + _, ( MlyValue.op_constraint_stereotype_cs +op_constraint_stereotype_cs1, op_constraint_stereotype_cs1left, _)) :: + rest671)) => let val result = MlyValue.operation_constraint_cs (fn _ + => let val (op_constraint_stereotype_cs as +op_constraint_stereotype_cs1) = op_constraint_stereotype_cs1 () + val COLON1 = COLON1 () + val (ocl_expression_cs as ocl_expression_cs1) = ocl_expression_cs1 + () + in ( +trace low ("operation_constraint_cs 1..." ^ "\n"); (op_constraint_stereotype_cs,NONE,ocl_expression_cs) +) +end) + in ( LrTable.NT 26, ( result, op_constraint_stereotype_cs1left, +ocl_expression_cs1right), rest671) +end +| ( 32, ( ( _, ( MlyValue.ocl_expression_cs ocl_expression_cs1, _, +ocl_expression_cs1right)) :: ( _, ( MlyValue.COLON COLON1, _, _)) :: ( + _, ( MlyValue.simple_name simple_name1, _, _)) :: ( _, ( +MlyValue.op_constraint_stereotype_cs op_constraint_stereotype_cs1, +op_constraint_stereotype_cs1left, _)) :: rest671)) => let val result + = MlyValue.operation_constraint_cs (fn _ => let val ( +op_constraint_stereotype_cs as op_constraint_stereotype_cs1) = +op_constraint_stereotype_cs1 () + val (simple_name as simple_name1) = simple_name1 () + val COLON1 = COLON1 () + val (ocl_expression_cs as ocl_expression_cs1) = ocl_expression_cs1 + () + in ( +trace low ("operation_constraint_cs 23454..." ^ "\n"); (op_constraint_stereotype_cs,SOME(simple_name),ocl_expression_cs) +) +end) + in ( LrTable.NT 26, ( result, op_constraint_stereotype_cs1left, +ocl_expression_cs1right), rest671) +end +| ( 33, ( ( _, ( MlyValue.ocl_expression_cs ocl_expression_cs1, _, +ocl_expression_cs1right)) :: ( _, ( MlyValue.COLON COLON1, _, _)) :: ( + _, ( MlyValue.GUARD GUARD1, GUARD1left, _)) :: rest671)) => let val +result = MlyValue.guard_constraint_cs (fn _ => let val GUARD1 = +GUARD1 () + val COLON1 = COLON1 () + val (ocl_expression_cs as ocl_expression_cs1) = ocl_expression_cs1 + () + in (NONE,ocl_expression_cs) +end) + in ( LrTable.NT 28, ( result, GUARD1left, ocl_expression_cs1right), +rest671) +end +| ( 34, ( ( _, ( MlyValue.ocl_expression_cs ocl_expression_cs1, _, +ocl_expression_cs1right)) :: ( _, ( MlyValue.COLON COLON1, _, _)) :: ( + _, ( MlyValue.simple_name simple_name1, _, _)) :: ( _, ( +MlyValue.GUARD GUARD1, GUARD1left, _)) :: rest671)) => let val result + = MlyValue.guard_constraint_cs (fn _ => let val GUARD1 = GUARD1 () + val (simple_name as simple_name1) = simple_name1 () + val COLON1 = COLON1 () + val (ocl_expression_cs as ocl_expression_cs1) = ocl_expression_cs1 + () + in (SOME(simple_name),ocl_expression_cs) +end) + in ( LrTable.NT 28, ( result, GUARD1left, ocl_expression_cs1right), +rest671) +end +| ( 35, ( ( _, ( MlyValue.ocl_expression_cs ocl_expression_cs1, _, +ocl_expression_cs1right)) :: ( _, ( MlyValue.EQUALS EQUALS1, _, _)) :: + ( _, ( MlyValue.defined_entity_decl_cs defined_entity_decl_cs1, +defined_entity_decl_cs1left, _)) :: rest671)) => let val result = +MlyValue.definition_constraint_cs (fn _ => let val ( +defined_entity_decl_cs as defined_entity_decl_cs1) = +defined_entity_decl_cs1 () + val (EQUALS as EQUALS1) = EQUALS1 () + val (ocl_expression_cs as ocl_expression_cs1) = ocl_expression_cs1 + () + in ( +OperationCall (defined_entity_decl_cs,DummyT,[OclLibPackage,"DummyT",EQUALS],[(ocl_expression_cs,DummyT)],DummyT) +) +end) + in ( LrTable.NT 33, ( result, defined_entity_decl_cs1left, +ocl_expression_cs1right), rest671) +end +| ( 36, ( ( _, ( MlyValue.ocl_attribute_defined_entity_decl_cs +ocl_attribute_defined_entity_decl_cs1, +ocl_attribute_defined_entity_decl_cs1left, +ocl_attribute_defined_entity_decl_cs1right)) :: rest671)) => let val +result = MlyValue.defined_entity_decl_cs (fn _ => let val ( +ocl_attribute_defined_entity_decl_cs as +ocl_attribute_defined_entity_decl_cs1) = +ocl_attribute_defined_entity_decl_cs1 () + in ( +trace low ("AttributeCall 1 ..." ^ "\n");AttributeCall (Literal ("self2",DummyT),DummyT,[#1(ocl_attribute_defined_entity_decl_cs)],#2(ocl_attribute_defined_entity_decl_cs)) +) +end) + in ( LrTable.NT 34, ( result, +ocl_attribute_defined_entity_decl_cs1left, +ocl_attribute_defined_entity_decl_cs1right), rest671) +end +| ( 37, ( ( _, ( MlyValue.ocl_operation_defined_entity_decl_cs +ocl_operation_defined_entity_decl_cs1, +ocl_operation_defined_entity_decl_cs1left, +ocl_operation_defined_entity_decl_cs1right)) :: rest671)) => let val +result = MlyValue.defined_entity_decl_cs (fn _ => let val ( +ocl_operation_defined_entity_decl_cs as +ocl_operation_defined_entity_decl_cs1) = +ocl_operation_defined_entity_decl_cs1 () + in ( +OperationCall (Literal ("self2",DummyT),DummyT,[#1(ocl_operation_defined_entity_decl_cs)],List.map gen_literal_term (real_signature (#2(ocl_operation_defined_entity_decl_cs))),#2(List.last (#2(ocl_operation_defined_entity_decl_cs)))) +) +end) + in ( LrTable.NT 34, ( result, +ocl_operation_defined_entity_decl_cs1left, +ocl_operation_defined_entity_decl_cs1right), rest671) +end +| ( 38, ( ( _, ( MlyValue.formal_parameter_cs formal_parameter_cs1, +formal_parameter_cs1left, formal_parameter_cs1right)) :: rest671)) => + let val result = MlyValue.ocl_attribute_defined_entity_decl_cs (fn _ + => let val (formal_parameter_cs as formal_parameter_cs1) = +formal_parameter_cs1 () + in (formal_parameter_cs) +end) + in ( LrTable.NT 35, ( result, formal_parameter_cs1left, +formal_parameter_cs1right), rest671) +end +| ( 39, ( ( _, ( MlyValue.operation_signature_cs +operation_signature_cs1, _, operation_signature_cs1right)) :: ( _, ( +MlyValue.simple_name simple_name1, simple_name1left, _)) :: rest671)) + => let val result = MlyValue.ocl_operation_defined_entity_decl_cs + (fn _ => let val (simple_name as simple_name1) = simple_name1 () + val (operation_signature_cs as operation_signature_cs1) = +operation_signature_cs1 () + in (simple_name,operation_signature_cs) +end) + in ( LrTable.NT 36, ( result, simple_name1left, +operation_signature_cs1right), rest671) +end +| ( 40, ( ( _, ( MlyValue.PAREN_CLOSE PAREN_CLOSE1, _, +PAREN_CLOSE1right)) :: ( _, ( MlyValue.PAREN_OPEN PAREN_OPEN1, +PAREN_OPEN1left, _)) :: rest671)) => let val result = +MlyValue.operation_signature_cs (fn _ => let val PAREN_OPEN1 = +PAREN_OPEN1 () + val PAREN_CLOSE1 = PAREN_CLOSE1 () + in (trace low ("operation_signature_cs ..." ^ "\n");[("",OclVoid)]) + +end) + in ( LrTable.NT 24, ( result, PAREN_OPEN1left, PAREN_CLOSE1right), +rest671) +end +| ( 41, ( ( _, ( MlyValue.operation_return_type_specifier_cs +operation_return_type_specifier_cs1, _, +operation_return_type_specifier_cs1right)) :: ( _, ( +MlyValue.PAREN_CLOSE PAREN_CLOSE1, _, _)) :: ( _, ( +MlyValue.PAREN_OPEN PAREN_OPEN1, PAREN_OPEN1left, _)) :: rest671)) => + let val result = MlyValue.operation_signature_cs (fn _ => let val +PAREN_OPEN1 = PAREN_OPEN1 () + val PAREN_CLOSE1 = PAREN_CLOSE1 () + val (operation_return_type_specifier_cs as +operation_return_type_specifier_cs1) = +operation_return_type_specifier_cs1 () + in ( +trace low ("operation_signature_cs ..." ^ "\n");[("",operation_return_type_specifier_cs)] +) +end) + in ( LrTable.NT 24, ( result, PAREN_OPEN1left, +operation_return_type_specifier_cs1right), rest671) +end +| ( 42, ( ( _, ( MlyValue.PAREN_CLOSE PAREN_CLOSE1, _, +PAREN_CLOSE1right)) :: ( _, ( MlyValue.formal_parameter_list_cs +formal_parameter_list_cs1, _, _)) :: ( _, ( MlyValue.PAREN_OPEN +PAREN_OPEN1, PAREN_OPEN1left, _)) :: rest671)) => let val result = +MlyValue.operation_signature_cs (fn _ => let val PAREN_OPEN1 = +PAREN_OPEN1 () + val (formal_parameter_list_cs as formal_parameter_list_cs1) = +formal_parameter_list_cs1 () + val PAREN_CLOSE1 = PAREN_CLOSE1 () + in ( +trace low ("operation_signature_cs ..." ^ "\n");formal_parameter_list_cs@[("",OclVoid)] +) +end) + in ( LrTable.NT 24, ( result, PAREN_OPEN1left, PAREN_CLOSE1right), +rest671) +end +| ( 43, ( ( _, ( MlyValue.operation_return_type_specifier_cs +operation_return_type_specifier_cs1, _, +operation_return_type_specifier_cs1right)) :: ( _, ( +MlyValue.PAREN_CLOSE PAREN_CLOSE1, _, _)) :: ( _, ( +MlyValue.formal_parameter_list_cs formal_parameter_list_cs1, _, _)) :: + ( _, ( MlyValue.PAREN_OPEN PAREN_OPEN1, PAREN_OPEN1left, _)) :: +rest671)) => let val result = MlyValue.operation_signature_cs (fn _ + => let val PAREN_OPEN1 = PAREN_OPEN1 () + val (formal_parameter_list_cs as formal_parameter_list_cs1) = +formal_parameter_list_cs1 () + val PAREN_CLOSE1 = PAREN_CLOSE1 () + val (operation_return_type_specifier_cs as +operation_return_type_specifier_cs1) = +operation_return_type_specifier_cs1 () + in ( +trace low ("operation_signature_cs ..." ^ "\n");formal_parameter_list_cs@[("",operation_return_type_specifier_cs)] +) +end) + in ( LrTable.NT 24, ( result, PAREN_OPEN1left, +operation_return_type_specifier_cs1right), rest671) +end +| ( 44, ( ( _, ( MlyValue.type_specifier type_specifier1, _, +type_specifier1right)) :: ( _, ( MlyValue.COLON COLON1, COLON1left, _) +) :: rest671)) => let val result = +MlyValue.operation_return_type_specifier_cs (fn _ => let val COLON1 = + COLON1 () + val (type_specifier as type_specifier1) = type_specifier1 () + in ( +trace low ("Contextes created form list of Attributes ..." ^ "\n");type_specifier +) +end) + in ( LrTable.NT 40, ( result, COLON1left, type_specifier1right), +rest671) +end +| ( 45, ( ( _, ( MlyValue.PRE PRE1, PRE1left, PRE1right)) :: rest671) +) => let val result = MlyValue.op_constraint_stereotype_cs (fn _ => + let val (PRE as PRE1) = PRE1 () + in (PRE) +end) + in ( LrTable.NT 31, ( result, PRE1left, PRE1right), rest671) +end +| ( 46, ( ( _, ( MlyValue.POST POST1, POST1left, POST1right)) :: +rest671)) => let val result = MlyValue.op_constraint_stereotype_cs + (fn _ => let val (POST as POST1) = POST1 () + in (POST) +end) + in ( LrTable.NT 31, ( result, POST1left, POST1right), rest671) +end +| ( 47, ( ( _, ( MlyValue.BODY BODY1, BODY1left, BODY1right)) :: +rest671)) => let val result = MlyValue.op_constraint_stereotype_cs + (fn _ => let val (BODY as BODY1) = BODY1 () + in (BODY) +end) + in ( LrTable.NT 31, ( result, BODY1left, BODY1right), rest671) +end +| ( 48, ( ( _, ( MlyValue.BRACE_CLOSE BRACE_CLOSE1, _, +BRACE_CLOSE1right)) :: ( _, ( MlyValue.BRACE_OPEN BRACE_OPEN1, _, _)) + :: ( _, ( MlyValue.collection_type_identifier_cs +collection_type_identifier_cs1, collection_type_identifier_cs1left, _) +) :: rest671)) => let val result = MlyValue.collection_literal_exp_cs + (fn _ => let val (collection_type_identifier_cs as +collection_type_identifier_cs1) = collection_type_identifier_cs1 () + val BRACE_OPEN1 = BRACE_OPEN1 () + val BRACE_CLOSE1 = BRACE_CLOSE1 () + in ( +CollectionLiteral ([],dispatch_collection (collection_type_identifier_cs,DummyT)) +) +end) + in ( LrTable.NT 63, ( result, collection_type_identifier_cs1left, +BRACE_CLOSE1right), rest671) +end +| ( 49, ( ( _, ( MlyValue.BRACE_CLOSE BRACE_CLOSE1, _, +BRACE_CLOSE1right)) :: ( _, ( MlyValue.collection_literal_parts_cs +collection_literal_parts_cs1, _, _)) :: ( _, ( MlyValue.BRACE_OPEN +BRACE_OPEN1, _, _)) :: ( _, ( MlyValue.collection_type_identifier_cs +collection_type_identifier_cs1, collection_type_identifier_cs1left, _) +) :: rest671)) => let val result = MlyValue.collection_literal_exp_cs + (fn _ => let val (collection_type_identifier_cs as +collection_type_identifier_cs1) = collection_type_identifier_cs1 () + val BRACE_OPEN1 = BRACE_OPEN1 () + val (collection_literal_parts_cs as collection_literal_parts_cs1) = +collection_literal_parts_cs1 () + val BRACE_CLOSE1 = BRACE_CLOSE1 () + in ( +CollectionLiteral (collection_literal_parts_cs,dispatch_collection(collection_type_identifier_cs,DummyT)) +) +end) + in ( LrTable.NT 63, ( result, collection_type_identifier_cs1left, +BRACE_CLOSE1right), rest671) +end +| ( 50, ( ( _, ( MlyValue.collection_literal_part_cs +collection_literal_part_cs1, collection_literal_part_cs1left, +collection_literal_part_cs1right)) :: rest671)) => let val result = +MlyValue.collection_literal_parts_cs (fn _ => let val ( +collection_literal_part_cs as collection_literal_part_cs1) = +collection_literal_part_cs1 () + in ([collection_literal_part_cs]) +end) + in ( LrTable.NT 43, ( result, collection_literal_part_cs1left, +collection_literal_part_cs1right), rest671) +end +| ( 51, ( ( _, ( MlyValue.collection_literal_parts_tail_cs +collection_literal_parts_tail_cs1, _, +collection_literal_parts_tail_cs1right)) :: ( _, ( +MlyValue.collection_literal_part_cs collection_literal_part_cs1, +collection_literal_part_cs1left, _)) :: rest671)) => let val result = + MlyValue.collection_literal_parts_cs (fn _ => let val ( +collection_literal_part_cs as collection_literal_part_cs1) = +collection_literal_part_cs1 () + val (collection_literal_parts_tail_cs as +collection_literal_parts_tail_cs1) = collection_literal_parts_tail_cs1 + () + in ([collection_literal_part_cs]@collection_literal_parts_tail_cs) + +end) + in ( LrTable.NT 43, ( result, collection_literal_part_cs1left, +collection_literal_parts_tail_cs1right), rest671) +end +| ( 52, ( ( _, ( MlyValue.collection_literal_parts_cs +collection_literal_parts_cs1, _, collection_literal_parts_cs1right)) + :: ( _, ( MlyValue.COMMA COMMA1, COMMA1left, _)) :: rest671)) => let + val result = MlyValue.collection_literal_parts_tail_cs (fn _ => let + val COMMA1 = COMMA1 () + val (collection_literal_parts_cs as collection_literal_parts_cs1) = +collection_literal_parts_cs1 () + in (collection_literal_parts_cs) +end) + in ( LrTable.NT 45, ( result, COMMA1left, +collection_literal_parts_cs1right), rest671) +end +| ( 53, ( ( _, ( MlyValue.collection_range_cs collection_range_cs1, +collection_range_cs1left, collection_range_cs1right)) :: rest671)) => + let val result = MlyValue.collection_literal_part_cs (fn _ => let + val (collection_range_cs as collection_range_cs1) = +collection_range_cs1 () + in (collection_range_cs) +end) + in ( LrTable.NT 44, ( result, collection_range_cs1left, +collection_range_cs1right), rest671) +end +| ( 54, ( ( _, ( MlyValue.expression expression1, expression1left, +expression1right)) :: rest671)) => let val result = +MlyValue.collection_literal_part_cs (fn _ => let val (expression as +expression1) = expression1 () + in (CollectionItem (expression,DummyT)) +end) + in ( LrTable.NT 44, ( result, expression1left, expression1right), +rest671) +end +| ( 55, ( ( _, ( MlyValue.expression expression2, _, expression2right +)) :: ( _, ( MlyValue.DBL_DOT DBL_DOT1, _, _)) :: ( _, ( +MlyValue.expression expression1, expression1left, _)) :: rest671)) => + let val result = MlyValue.collection_range_cs (fn _ => let val +expression1 = expression1 () + val DBL_DOT1 = DBL_DOT1 () + val expression2 = expression2 () + in (CollectionRange (expression1,expression2,DummyT)) +end) + in ( LrTable.NT 46, ( result, expression1left, expression2right), +rest671) +end +| ( 56, ( ( _, ( MlyValue.PAREN_CLOSE PAREN_CLOSE1, _, +PAREN_CLOSE1right)) :: ( _, ( MlyValue.type_specifier type_specifier1, + _, _)) :: ( _, ( MlyValue.PAREN_OPEN PAREN_OPEN1, _, _)) :: ( _, ( +MlyValue.collection_type_identifier_cs collection_type_identifier_cs1, + collection_type_identifier_cs1left, _)) :: rest671)) => let val +result = MlyValue.collection_type_specifier_cs (fn _ => let val ( +collection_type_identifier_cs as collection_type_identifier_cs1) = +collection_type_identifier_cs1 () + val PAREN_OPEN1 = PAREN_OPEN1 () + val (type_specifier as type_specifier1) = type_specifier1 () + val PAREN_CLOSE1 = PAREN_CLOSE1 () + in ( +dispatch_collection (collection_type_identifier_cs,type_specifier)) + +end) + in ( LrTable.NT 48, ( result, collection_type_identifier_cs1left, +PAREN_CLOSE1right), rest671) +end +| ( 57, ( ( _, ( MlyValue.SET SET1, SET1left, SET1right)) :: rest671) +) => let val result = MlyValue.collection_type_identifier_cs (fn _ => + let val (SET as SET1) = SET1 () + in (SET) +end) + in ( LrTable.NT 42, ( result, SET1left, SET1right), rest671) +end +| ( 58, ( ( _, ( MlyValue.BAG BAG1, BAG1left, BAG1right)) :: rest671) +) => let val result = MlyValue.collection_type_identifier_cs (fn _ => + let val (BAG as BAG1) = BAG1 () + in (BAG) +end) + in ( LrTable.NT 42, ( result, BAG1left, BAG1right), rest671) +end +| ( 59, ( ( _, ( MlyValue.SEQUENCE SEQUENCE1, SEQUENCE1left, +SEQUENCE1right)) :: rest671)) => let val result = +MlyValue.collection_type_identifier_cs (fn _ => let val (SEQUENCE as +SEQUENCE1) = SEQUENCE1 () + in (SEQUENCE) +end) + in ( LrTable.NT 42, ( result, SEQUENCE1left, SEQUENCE1right), rest671 +) +end +| ( 60, ( ( _, ( MlyValue.COLLECTION COLLECTION1, COLLECTION1left, +COLLECTION1right)) :: rest671)) => let val result = +MlyValue.collection_type_identifier_cs (fn _ => let val (COLLECTION + as COLLECTION1) = COLLECTION1 () + in (COLLECTION) +end) + in ( LrTable.NT 42, ( result, COLLECTION1left, COLLECTION1right), +rest671) +end +| ( 61, ( ( _, ( MlyValue.ORDERED_SET ORDERED_SET1, ORDERED_SET1left, + ORDERED_SET1right)) :: rest671)) => let val result = +MlyValue.collection_type_identifier_cs (fn _ => let val (ORDERED_SET + as ORDERED_SET1) = ORDERED_SET1 () + in (ORDERED_SET) +end) + in ( LrTable.NT 42, ( result, ORDERED_SET1left, ORDERED_SET1right), +rest671) +end +| ( 62, ( ( _, ( MlyValue.is_marked_pre_cs is_marked_pre_cs1, +is_marked_pre_cs1left, is_marked_pre_cs1right)) :: rest671)) => let + val result = MlyValue.time_exp_cs (fn _ => let val ( +is_marked_pre_cs as is_marked_pre_cs1) = is_marked_pre_cs1 () + in (is_marked_pre_cs) +end) + in ( LrTable.NT 49, ( result, is_marked_pre_cs1left, +is_marked_pre_cs1right), rest671) +end +| ( 63, ( ( _, ( MlyValue.AT_PRE AT_PRE1, AT_PRE1left, AT_PRE1right)) + :: rest671)) => let val result = MlyValue.is_marked_pre_cs (fn _ => + let val (AT_PRE as AT_PRE1) = AT_PRE1 () + in (AT_PRE) +end) + in ( LrTable.NT 50, ( result, AT_PRE1left, AT_PRE1right), rest671) + +end +| ( 64, ( ( _, ( MlyValue.logical_exp_cs logical_exp_cs1, +logical_exp_cs1left, logical_exp_cs1right)) :: rest671)) => let val +result = MlyValue.ocl_expression_cs (fn _ => let val (logical_exp_cs + as logical_exp_cs1) = logical_exp_cs1 () + in (trace low ("ocl_expression_cs..." ^ "\n");logical_exp_cs) +end) + in ( LrTable.NT 54, ( result, logical_exp_cs1left, +logical_exp_cs1right), rest671) +end +| ( 65, ( ( _, ( MlyValue.let_exp_cs let_exp_cs1, let_exp_cs1left, +let_exp_cs1right)) :: rest671)) => let val result = +MlyValue.ocl_expression_cs (fn _ => let val (let_exp_cs as +let_exp_cs1) = let_exp_cs1 () + in (trace low ("ocl_expression_cs..." ^ "\n");let_exp_cs) +end) + in ( LrTable.NT 54, ( result, let_exp_cs1left, let_exp_cs1right), +rest671) +end +| ( 66, ( ( _, ( MlyValue.expression expression1, _, expression1right +)) :: ( _, ( MlyValue.IN IN1, _, _)) :: ( _, ( +MlyValue.initialized_variable_list_cs initialized_variable_list_cs1, _ +, _)) :: ( _, ( MlyValue.LET LET1, LET1left, _)) :: rest671)) => let + val result = MlyValue.let_exp_cs (fn _ => let val LET1 = LET1 () + val (initialized_variable_list_cs as initialized_variable_list_cs1) + = initialized_variable_list_cs1 () + val IN1 = IN1 () + val (expression as expression1) = expression1 () + in (gen_let_term initialized_variable_list_cs expression) +end) + in ( LrTable.NT 55, ( result, LET1left, expression1right), rest671) + +end +| ( 67, ( ( _, ( MlyValue.ocl_expression_cs ocl_expression_cs1, +ocl_expression_cs1left, ocl_expression_cs1right)) :: rest671)) => let + val result = MlyValue.expression (fn _ => let val ( +ocl_expression_cs as ocl_expression_cs1) = ocl_expression_cs1 () + in (ocl_expression_cs) +end) + in ( LrTable.NT 47, ( result, ocl_expression_cs1left, +ocl_expression_cs1right), rest671) +end +| ( 68, ( ( _, ( MlyValue.SELECT SELECT1, SELECT1left, SELECT1right)) + :: rest671)) => let val result = MlyValue.iterator_name_cs (fn _ => + let val (SELECT as SELECT1) = SELECT1 () + in (SELECT) +end) + in ( LrTable.NT 60, ( result, SELECT1left, SELECT1right), rest671) + +end +| ( 69, ( ( _, ( MlyValue.REJECT REJECT1, REJECT1left, REJECT1right)) + :: rest671)) => let val result = MlyValue.iterator_name_cs (fn _ => + let val (REJECT as REJECT1) = REJECT1 () + in (REJECT) +end) + in ( LrTable.NT 60, ( result, REJECT1left, REJECT1right), rest671) + +end +| ( 70, ( ( _, ( MlyValue.COLLECT COLLECT1, COLLECT1left, +COLLECT1right)) :: rest671)) => let val result = +MlyValue.iterator_name_cs (fn _ => let val (COLLECT as COLLECT1) = +COLLECT1 () + in (COLLECT) +end) + in ( LrTable.NT 60, ( result, COLLECT1left, COLLECT1right), rest671) + +end +| ( 71, ( ( _, ( MlyValue.FORALL FORALL1, FORALL1left, FORALL1right)) + :: rest671)) => let val result = MlyValue.iterator_name_cs (fn _ => + let val (FORALL as FORALL1) = FORALL1 () + in (FORALL) +end) + in ( LrTable.NT 60, ( result, FORALL1left, FORALL1right), rest671) + +end +| ( 72, ( ( _, ( MlyValue.EXISTS EXISTS1, EXISTS1left, EXISTS1right)) + :: rest671)) => let val result = MlyValue.iterator_name_cs (fn _ => + let val (EXISTS as EXISTS1) = EXISTS1 () + in (EXISTS) +end) + in ( LrTable.NT 60, ( result, EXISTS1left, EXISTS1right), rest671) + +end +| ( 73, ( ( _, ( MlyValue.ANY ANY1, ANY1left, ANY1right)) :: rest671) +) => let val result = MlyValue.iterator_name_cs (fn _ => let val ( +ANY as ANY1) = ANY1 () + in (ANY) +end) + in ( LrTable.NT 60, ( result, ANY1left, ANY1right), rest671) +end +| ( 74, ( ( _, ( MlyValue.ONE ONE1, ONE1left, ONE1right)) :: rest671) +) => let val result = MlyValue.iterator_name_cs (fn _ => let val ( +ONE as ONE1) = ONE1 () + in (ONE) +end) + in ( LrTable.NT 60, ( result, ONE1left, ONE1right), rest671) +end +| ( 75, ( ( _, ( MlyValue.ISUNIQUE ISUNIQUE1, ISUNIQUE1left, +ISUNIQUE1right)) :: rest671)) => let val result = +MlyValue.iterator_name_cs (fn _ => let val (ISUNIQUE as ISUNIQUE1) = +ISUNIQUE1 () + in (ISUNIQUE) +end) + in ( LrTable.NT 60, ( result, ISUNIQUE1left, ISUNIQUE1right), rest671 +) +end +| ( 76, ( ( _, ( MlyValue.OCLISKINDOF OCLISKINDOF1, OCLISKINDOF1left, + OCLISKINDOF1right)) :: rest671)) => let val result = +MlyValue.ocl_op_name (fn _ => let val (OCLISKINDOF as OCLISKINDOF1) = + OCLISKINDOF1 () + in (OCLISKINDOF) +end) + in ( LrTable.NT 61, ( result, OCLISKINDOF1left, OCLISKINDOF1right), +rest671) +end +| ( 77, ( ( _, ( MlyValue.OCLISTYPEOF OCLISTYPEOF1, OCLISTYPEOF1left, + OCLISTYPEOF1right)) :: rest671)) => let val result = +MlyValue.ocl_op_name (fn _ => let val (OCLISTYPEOF as OCLISTYPEOF1) = + OCLISTYPEOF1 () + in (OCLISTYPEOF) +end) + in ( LrTable.NT 61, ( result, OCLISTYPEOF1left, OCLISTYPEOF1right), +rest671) +end +| ( 78, ( ( _, ( MlyValue.OCLASTYPE OCLASTYPE1, OCLASTYPE1left, +OCLASTYPE1right)) :: rest671)) => let val result = +MlyValue.ocl_op_name (fn _ => let val (OCLASTYPE as OCLASTYPE1) = +OCLASTYPE1 () + in (OCLASTYPE) +end) + in ( LrTable.NT 61, ( result, OCLASTYPE1left, OCLASTYPE1right), +rest671) +end +| ( 79, ( ( _, ( MlyValue.identifier_cs identifier_cs1, +identifier_cs1left, identifier_cs1right)) :: rest671)) => let val +result = MlyValue.path_name_cs (fn _ => let val (identifier_cs as +identifier_cs1) = identifier_cs1 () + in (trace low ("path_name finished..." ^ "\n");[identifier_cs]) +end) + in ( LrTable.NT 11, ( result, identifier_cs1left, identifier_cs1right +), rest671) +end +| ( 80, ( ( _, ( MlyValue.identifier_cs identifier_cs1, _, +identifier_cs1right)) :: ( _, ( MlyValue.path_name_head_cs +path_name_head_cs1, path_name_head_cs1left, _)) :: rest671)) => let + val result = MlyValue.path_name_cs (fn _ => let val ( +path_name_head_cs as path_name_head_cs1) = path_name_head_cs1 () + val (identifier_cs as identifier_cs1) = identifier_cs1 () + in ( +trace low ("path_name generation ..." ^ "\n");path_name_head_cs@[identifier_cs] +) +end) + in ( LrTable.NT 11, ( result, path_name_head_cs1left, +identifier_cs1right), rest671) +end +| ( 81, ( ( _, ( MlyValue.simple_name simple_name1, simple_name1left, + simple_name1right)) :: rest671)) => let val result = +MlyValue.identifier_cs (fn _ => let val (simple_name as simple_name1) + = simple_name1 () + in (trace low ("path_name generation..." ^ "\n");simple_name) +end) + in ( LrTable.NT 59, ( result, simple_name1left, simple_name1right), +rest671) +end +| ( 82, ( ( _, ( MlyValue.ITERATE ITERATE1, ITERATE1left, +ITERATE1right)) :: rest671)) => let val result = +MlyValue.identifier_cs (fn _ => let val (ITERATE as ITERATE1) = +ITERATE1 () + in (ITERATE) +end) + in ( LrTable.NT 59, ( result, ITERATE1left, ITERATE1right), rest671) + +end +| ( 83, ( ( _, ( MlyValue.iterator_name_cs iterator_name_cs1, +iterator_name_cs1left, iterator_name_cs1right)) :: rest671)) => let + val result = MlyValue.identifier_cs (fn _ => let val ( +iterator_name_cs as iterator_name_cs1) = iterator_name_cs1 () + in (iterator_name_cs) +end) + in ( LrTable.NT 59, ( result, iterator_name_cs1left, +iterator_name_cs1right), rest671) +end +| ( 84, ( ( _, ( MlyValue.ocl_op_name ocl_op_name1, ocl_op_name1left, + ocl_op_name1right)) :: rest671)) => let val result = +MlyValue.identifier_cs (fn _ => let val (ocl_op_name as ocl_op_name1) + = ocl_op_name1 () + in (ocl_op_name) +end) + in ( LrTable.NT 59, ( result, ocl_op_name1left, ocl_op_name1right), +rest671) +end +| ( 85, ( ( _, ( MlyValue.DBL_COLON DBL_COLON1, _, DBL_COLON1right)) + :: ( _, ( MlyValue.identifier_cs identifier_cs1, identifier_cs1left, + _)) :: rest671)) => let val result = MlyValue.path_name_head_cs (fn + _ => let val (identifier_cs as identifier_cs1) = identifier_cs1 () + val DBL_COLON1 = DBL_COLON1 () + in (trace low ("path_name generation..." ^ "\n");[identifier_cs]) +end +) + in ( LrTable.NT 12, ( result, identifier_cs1left, DBL_COLON1right), +rest671) +end +| ( 86, ( ( _, ( MlyValue.DBL_COLON DBL_COLON1, _, DBL_COLON1right)) + :: ( _, ( MlyValue.identifier_cs identifier_cs1, _, _)) :: ( _, ( +MlyValue.path_name_head_cs path_name_head_cs1, path_name_head_cs1left, + _)) :: rest671)) => let val result = MlyValue.path_name_head_cs (fn + _ => let val (path_name_head_cs as path_name_head_cs1) = +path_name_head_cs1 () + val (identifier_cs as identifier_cs1) = identifier_cs1 () + val DBL_COLON1 = DBL_COLON1 () + in ( +trace low ("path_name generation..." ^ "\n");path_name_head_cs@[identifier_cs] +) +end) + in ( LrTable.NT 12, ( result, path_name_head_cs1left, DBL_COLON1right +), rest671) +end +| ( 87, ( ( _, ( MlyValue.primitive_literal_exp_cs +primitive_literal_exp_cs1, primitive_literal_exp_cs1left, +primitive_literal_exp_cs1right)) :: rest671)) => let val result = +MlyValue.literal_exp_cs (fn _ => let val (primitive_literal_exp_cs + as primitive_literal_exp_cs1) = primitive_literal_exp_cs1 () + in ( +trace low ("primitive_literal_exp_cs..." ^ "\n");primitive_literal_exp_cs +) +end) + in ( LrTable.NT 62, ( result, primitive_literal_exp_cs1left, +primitive_literal_exp_cs1right), rest671) +end +| ( 88, ( ( _, ( MlyValue.collection_literal_exp_cs +collection_literal_exp_cs1, collection_literal_exp_cs1left, +collection_literal_exp_cs1right)) :: rest671)) => let val result = +MlyValue.literal_exp_cs (fn _ => let val (collection_literal_exp_cs + as collection_literal_exp_cs1) = collection_literal_exp_cs1 () + in (collection_literal_exp_cs) +end) + in ( LrTable.NT 62, ( result, collection_literal_exp_cs1left, +collection_literal_exp_cs1right), rest671) +end +| ( 89, ( ( _, ( MlyValue.numeric_literal_exp_cs +numeric_literal_exp_cs1, numeric_literal_exp_cs1left, +numeric_literal_exp_cs1right)) :: rest671)) => let val result = +MlyValue.primitive_literal_exp_cs (fn _ => let val ( +numeric_literal_exp_cs as numeric_literal_exp_cs1) = +numeric_literal_exp_cs1 () + in ( +trace low ("numeric_literal_exp_cs..." ^ "\n");numeric_literal_exp_cs) + +end) + in ( LrTable.NT 65, ( result, numeric_literal_exp_cs1left, +numeric_literal_exp_cs1right), rest671) +end +| ( 90, ( ( _, ( MlyValue.string_literal_exp_cs +string_literal_exp_cs1, string_literal_exp_cs1left, +string_literal_exp_cs1right)) :: rest671)) => let val result = +MlyValue.primitive_literal_exp_cs (fn _ => let val ( +string_literal_exp_cs as string_literal_exp_cs1) = +string_literal_exp_cs1 () + in ( +trace low ("string_literal_exp_cs..." ^ "\n");string_literal_exp_cs) + +end) + in ( LrTable.NT 65, ( result, string_literal_exp_cs1left, +string_literal_exp_cs1right), rest671) +end +| ( 91, ( ( _, ( MlyValue.boolean_literal_exp_cs +boolean_literal_exp_cs1, boolean_literal_exp_cs1left, +boolean_literal_exp_cs1right)) :: rest671)) => let val result = +MlyValue.primitive_literal_exp_cs (fn _ => let val ( +boolean_literal_exp_cs as boolean_literal_exp_cs1) = +boolean_literal_exp_cs1 () + in (boolean_literal_exp_cs) +end) + in ( LrTable.NT 65, ( result, boolean_literal_exp_cs1left, +boolean_literal_exp_cs1right), rest671) +end +| ( 92, ( ( _, ( MlyValue.INTEGER_LITERAL INTEGER_LITERAL1, +INTEGER_LITERAL1left, INTEGER_LITERAL1right)) :: rest671)) => let val + result = MlyValue.numeric_literal_exp_cs (fn _ => let val ( +INTEGER_LITERAL as INTEGER_LITERAL1) = INTEGER_LITERAL1 () + in ( +trace low ("INTEGER_LITERAL..." ^ "\n");Literal (INTEGER_LITERAL,Integer) +) +end) + in ( LrTable.NT 66, ( result, INTEGER_LITERAL1left, +INTEGER_LITERAL1right), rest671) +end +| ( 93, ( ( _, ( MlyValue.REAL_LITERAL REAL_LITERAL1, +REAL_LITERAL1left, REAL_LITERAL1right)) :: rest671)) => let val +result = MlyValue.numeric_literal_exp_cs (fn _ => let val ( +REAL_LITERAL as REAL_LITERAL1) = REAL_LITERAL1 () + in (Literal (REAL_LITERAL,Real)) +end) + in ( LrTable.NT 66, ( result, REAL_LITERAL1left, REAL_LITERAL1right), + rest671) +end +| ( 94, ( ( _, ( MlyValue.STRING_LITERAL STRING_LITERAL1, +STRING_LITERAL1left, STRING_LITERAL1right)) :: rest671)) => let val +result = MlyValue.string_literal_exp_cs (fn _ => let val ( +STRING_LITERAL as STRING_LITERAL1) = STRING_LITERAL1 () + in (Literal (STRING_LITERAL,String)) +end) + in ( LrTable.NT 67, ( result, STRING_LITERAL1left, +STRING_LITERAL1right), rest671) +end +| ( 95, ( ( _, ( MlyValue.TRUE TRUE1, TRUE1left, TRUE1right)) :: +rest671)) => let val result = MlyValue.boolean_literal_exp_cs (fn _ + => let val TRUE1 = TRUE1 () + in (Literal ("true",Boolean)) +end) + in ( LrTable.NT 68, ( result, TRUE1left, TRUE1right), rest671) +end +| ( 96, ( ( _, ( MlyValue.FALSE FALSE1, FALSE1left, FALSE1right)) :: +rest671)) => let val result = MlyValue.boolean_literal_exp_cs (fn _ + => let val FALSE1 = FALSE1 () + in (Literal ("false",Boolean)) +end) + in ( LrTable.NT 68, ( result, FALSE1left, FALSE1right), rest671) +end +| ( 97, ( ( _, ( MlyValue.relational_exp_cs relational_exp_cs1, +relational_exp_cs1left, relational_exp_cs1right)) :: rest671)) => let + val result = MlyValue.logical_exp_cs (fn _ => let val ( +relational_exp_cs as relational_exp_cs1) = relational_exp_cs1 () + in (trace low ("logical_exp_cs..." ^ "\n");relational_exp_cs) +end) + in ( LrTable.NT 73, ( result, relational_exp_cs1left, +relational_exp_cs1right), rest671) +end +| ( 98, ( ( _, ( MlyValue.logical_exp_tail_cs_p +logical_exp_tail_cs_p1, _, logical_exp_tail_cs_p1right)) :: ( _, ( +MlyValue.relational_exp_cs relational_exp_cs1, relational_exp_cs1left, + _)) :: rest671)) => let val result = MlyValue.logical_exp_cs (fn _ + => let val (relational_exp_cs as relational_exp_cs1) = +relational_exp_cs1 () + val (logical_exp_tail_cs_p as logical_exp_tail_cs_p1) = +logical_exp_tail_cs_p1 () + in ( +trace low ("logical_exp_cs..." ^ "\n");OperationCall(relational_exp_cs,Boolean,[OclLibPackage,"Boolean",#1(logical_exp_tail_cs_p)],[(#2(logical_exp_tail_cs_p),Boolean)],Boolean) +) +end) + in ( LrTable.NT 73, ( result, relational_exp_cs1left, +logical_exp_tail_cs_p1right), rest671) +end +| ( 99, ( ( _, ( MlyValue.logical_exp_tail_cs logical_exp_tail_cs1, +logical_exp_tail_cs1left, logical_exp_tail_cs1right)) :: rest671)) => + let val result = MlyValue.logical_exp_tail_cs_p (fn _ => let val ( +logical_exp_tail_cs as logical_exp_tail_cs1) = logical_exp_tail_cs1 () + in (logical_exp_tail_cs) +end) + in ( LrTable.NT 114, ( result, logical_exp_tail_cs1left, +logical_exp_tail_cs1right), rest671) +end +| ( 100, ( ( _, ( MlyValue.logical_exp_tail_cs_p +logical_exp_tail_cs_p1, _, logical_exp_tail_cs_p1right)) :: ( _, ( +MlyValue.logical_exp_tail_cs logical_exp_tail_cs1, +logical_exp_tail_cs1left, _)) :: rest671)) => let val result = +MlyValue.logical_exp_tail_cs_p (fn _ => let val (logical_exp_tail_cs + as logical_exp_tail_cs1) = logical_exp_tail_cs1 () + val (logical_exp_tail_cs_p as logical_exp_tail_cs_p1) = +logical_exp_tail_cs_p1 () + in ( +(#1(logical_exp_tail_cs),OperationCall(#2(logical_exp_tail_cs),Boolean,[OclLibPackage,"Boolean",#1(logical_exp_tail_cs_p)],[(#2(logical_exp_tail_cs_p),Boolean)],Boolean)) +) +end) + in ( LrTable.NT 114, ( result, logical_exp_tail_cs1left, +logical_exp_tail_cs_p1right), rest671) +end +| ( 101, ( ( _, ( MlyValue.relational_exp_cs relational_exp_cs1, _, +relational_exp_cs1right)) :: ( _, ( MlyValue.logic_op logic_op1, +logic_op1left, _)) :: rest671)) => let val result = +MlyValue.logical_exp_tail_cs (fn _ => let val (logic_op as logic_op1) + = logic_op1 () + val (relational_exp_cs as relational_exp_cs1) = relational_exp_cs1 + () + in (logic_op,relational_exp_cs) +end) + in ( LrTable.NT 74, ( result, logic_op1left, relational_exp_cs1right) +, rest671) +end +| ( 102, ( ( _, ( MlyValue.LOG_AND LOG_AND1, LOG_AND1left, +LOG_AND1right)) :: rest671)) => let val result = MlyValue.logic_op + (fn _ => let val (LOG_AND as LOG_AND1) = LOG_AND1 () + in (LOG_AND) +end) + in ( LrTable.NT 78, ( result, LOG_AND1left, LOG_AND1right), rest671) + +end +| ( 103, ( ( _, ( MlyValue.LOG_OR LOG_OR1, LOG_OR1left, LOG_OR1right) +) :: rest671)) => let val result = MlyValue.logic_op (fn _ => let + val (LOG_OR as LOG_OR1) = LOG_OR1 () + in (LOG_OR) +end) + in ( LrTable.NT 78, ( result, LOG_OR1left, LOG_OR1right), rest671) + +end +| ( 104, ( ( _, ( MlyValue.LOG_XOR LOG_XOR1, LOG_XOR1left, +LOG_XOR1right)) :: rest671)) => let val result = MlyValue.logic_op + (fn _ => let val (LOG_XOR as LOG_XOR1) = LOG_XOR1 () + in (LOG_XOR) +end) + in ( LrTable.NT 78, ( result, LOG_XOR1left, LOG_XOR1right), rest671) + +end +| ( 105, ( ( _, ( MlyValue.LOG_IMPL LOG_IMPL1, LOG_IMPL1left, +LOG_IMPL1right)) :: rest671)) => let val result = MlyValue.logic_op + (fn _ => let val (LOG_IMPL as LOG_IMPL1) = LOG_IMPL1 () + in (LOG_IMPL) +end) + in ( LrTable.NT 78, ( result, LOG_IMPL1left, LOG_IMPL1right), rest671 +) +end +| ( 106, ( ( _, ( MlyValue.additive_exp_cs additive_exp_cs1, +additive_exp_cs1left, additive_exp_cs1right)) :: rest671)) => let val + result = MlyValue.relational_exp_cs (fn _ => let val ( +additive_exp_cs as additive_exp_cs1) = additive_exp_cs1 () + in (trace low ("additive_exp_cs..." ^ "\n");additive_exp_cs) +end) + in ( LrTable.NT 75, ( result, additive_exp_cs1left, +additive_exp_cs1right), rest671) +end +| ( 107, ( ( _, ( MlyValue.relational_exp_tail_cs +relational_exp_tail_cs1, _, relational_exp_tail_cs1right)) :: ( _, ( +MlyValue.additive_exp_cs additive_exp_cs1, additive_exp_cs1left, _)) + :: rest671)) => let val result = MlyValue.relational_exp_cs (fn _ => + let val (additive_exp_cs as additive_exp_cs1) = additive_exp_cs1 () + val (relational_exp_tail_cs as relational_exp_tail_cs1) = +relational_exp_tail_cs1 () + in ( +trace low ("additive_exp_cs relational_exp_tail_cs ..." ^ "\n");OperationCall(additive_exp_cs,DummyT,[OclLibPackage,"DummyT",#1(relational_exp_tail_cs)],[(#2(relational_exp_tail_cs),DummyT)],Boolean) +) +end) + in ( LrTable.NT 75, ( result, additive_exp_cs1left, +relational_exp_tail_cs1right), rest671) +end +| ( 108, ( ( _, ( MlyValue.additive_exp_cs additive_exp_cs1, _, +additive_exp_cs1right)) :: ( _, ( MlyValue.rel_op rel_op1, rel_op1left +, _)) :: rest671)) => let val result = +MlyValue.relational_exp_tail_cs (fn _ => let val (rel_op as rel_op1) + = rel_op1 () + val (additive_exp_cs as additive_exp_cs1) = additive_exp_cs1 () + in ( +trace low ("relational_exp_tail_cs..." ^ "\n");(rel_op, additive_exp_cs) +) +end) + in ( LrTable.NT 77, ( result, rel_op1left, additive_exp_cs1right), +rest671) +end +| ( 109, ( ( _, ( MlyValue.EQUALS EQUALS1, EQUALS1left, EQUALS1right) +) :: rest671)) => let val result = MlyValue.rel_op (fn _ => let val + (EQUALS as EQUALS1) = EQUALS1 () + in (EQUALS) +end) + in ( LrTable.NT 82, ( result, EQUALS1left, EQUALS1right), rest671) + +end +| ( 110, ( ( _, ( MlyValue.REL_GT REL_GT1, REL_GT1left, REL_GT1right) +) :: rest671)) => let val result = MlyValue.rel_op (fn _ => let val + (REL_GT as REL_GT1) = REL_GT1 () + in (trace low (">..." ^ "\n");REL_GT) +end) + in ( LrTable.NT 82, ( result, REL_GT1left, REL_GT1right), rest671) + +end +| ( 111, ( ( _, ( MlyValue.REL_LT REL_LT1, REL_LT1left, REL_LT1right) +) :: rest671)) => let val result = MlyValue.rel_op (fn _ => let val + (REL_LT as REL_LT1) = REL_LT1 () + in (trace low ("<..." ^ "\n");REL_LT) +end) + in ( LrTable.NT 82, ( result, REL_LT1left, REL_LT1right), rest671) + +end +| ( 112, ( ( _, ( MlyValue.REL_GTE REL_GTE1, REL_GTE1left, +REL_GTE1right)) :: rest671)) => let val result = MlyValue.rel_op (fn + _ => let val (REL_GTE as REL_GTE1) = REL_GTE1 () + in (REL_GTE) +end) + in ( LrTable.NT 82, ( result, REL_GTE1left, REL_GTE1right), rest671) + +end +| ( 113, ( ( _, ( MlyValue.REL_LTE REL_LTE1, REL_LTE1left, +REL_LTE1right)) :: rest671)) => let val result = MlyValue.rel_op (fn + _ => let val (REL_LTE as REL_LTE1) = REL_LTE1 () + in (REL_LTE) +end) + in ( LrTable.NT 82, ( result, REL_LTE1left, REL_LTE1right), rest671) + +end +| ( 114, ( ( _, ( MlyValue.REL_NOTEQUAL REL_NOTEQUAL1, +REL_NOTEQUAL1left, REL_NOTEQUAL1right)) :: rest671)) => let val +result = MlyValue.rel_op (fn _ => let val (REL_NOTEQUAL as +REL_NOTEQUAL1) = REL_NOTEQUAL1 () + in (REL_NOTEQUAL) +end) + in ( LrTable.NT 82, ( result, REL_NOTEQUAL1left, REL_NOTEQUAL1right), + rest671) +end +| ( 115, ( ( _, ( MlyValue.multiplicative_exp_cs +multiplicative_exp_cs1, multiplicative_exp_cs1left, +multiplicative_exp_cs1right)) :: rest671)) => let val result = +MlyValue.additive_exp_cs (fn _ => let val (multiplicative_exp_cs as +multiplicative_exp_cs1) = multiplicative_exp_cs1 () + in ( +trace low ("multiplicative_exp_cs..." ^ "\n");multiplicative_exp_cs) + +end) + in ( LrTable.NT 79, ( result, multiplicative_exp_cs1left, +multiplicative_exp_cs1right), rest671) +end +| ( 116, ( ( _, ( MlyValue.additive_exp_tail_cs_p +additive_exp_tail_cs_p1, _, additive_exp_tail_cs_p1right)) :: ( _, ( +MlyValue.multiplicative_exp_cs multiplicative_exp_cs1, +multiplicative_exp_cs1left, _)) :: rest671)) => let val result = +MlyValue.additive_exp_cs (fn _ => let val (multiplicative_exp_cs as +multiplicative_exp_cs1) = multiplicative_exp_cs1 () + val (additive_exp_tail_cs_p as additive_exp_tail_cs_p1) = +additive_exp_tail_cs_p1 () + in ( +trace low ("multiplicative_exp_cs additive_exp_tail_cs_p..." ^ "\n");OperationCall (multiplicative_exp_cs,DummyT,[OclLibPackage,"DummyT",#1(additive_exp_tail_cs_p)],[(#2(additive_exp_tail_cs_p),DummyT)],DummyT) +) +end) + in ( LrTable.NT 79, ( result, multiplicative_exp_cs1left, +additive_exp_tail_cs_p1right), rest671) +end +| ( 117, ( ( _, ( MlyValue.additive_exp_tail_cs additive_exp_tail_cs1 +, additive_exp_tail_cs1left, additive_exp_tail_cs1right)) :: rest671)) + => let val result = MlyValue.additive_exp_tail_cs_p (fn _ => let + val (additive_exp_tail_cs as additive_exp_tail_cs1) = +additive_exp_tail_cs1 () + in (additive_exp_tail_cs) +end) + in ( LrTable.NT 81, ( result, additive_exp_tail_cs1left, +additive_exp_tail_cs1right), rest671) +end +| ( 118, ( ( _, ( MlyValue.additive_exp_tail_cs_p +additive_exp_tail_cs_p1, _, additive_exp_tail_cs_p1right)) :: ( _, ( +MlyValue.additive_exp_tail_cs additive_exp_tail_cs1, +additive_exp_tail_cs1left, _)) :: rest671)) => let val result = +MlyValue.additive_exp_tail_cs_p (fn _ => let val ( +additive_exp_tail_cs as additive_exp_tail_cs1) = additive_exp_tail_cs1 + () + val (additive_exp_tail_cs_p as additive_exp_tail_cs_p1) = +additive_exp_tail_cs_p1 () + in ( +#1(additive_exp_tail_cs),OperationCall (#2(additive_exp_tail_cs),DummyT,[OclLibPackage,"DummyT",#1(additive_exp_tail_cs_p)],[(#2(additive_exp_tail_cs_p),DummyT)],DummyT) +) +end) + in ( LrTable.NT 81, ( result, additive_exp_tail_cs1left, +additive_exp_tail_cs_p1right), rest671) +end +| ( 119, ( ( _, ( MlyValue.multiplicative_exp_cs +multiplicative_exp_cs1, _, multiplicative_exp_cs1right)) :: ( _, ( +MlyValue.add_op add_op1, add_op1left, _)) :: rest671)) => let val +result = MlyValue.additive_exp_tail_cs (fn _ => let val (add_op as +add_op1) = add_op1 () + val (multiplicative_exp_cs as multiplicative_exp_cs1) = +multiplicative_exp_cs1 () + in (add_op, multiplicative_exp_cs) +end) + in ( LrTable.NT 80, ( result, add_op1left, +multiplicative_exp_cs1right), rest671) +end +| ( 120, ( ( _, ( MlyValue.PLUS PLUS1, PLUS1left, PLUS1right)) :: +rest671)) => let val result = MlyValue.add_op (fn _ => let val (PLUS + as PLUS1) = PLUS1 () + in (PLUS) +end) + in ( LrTable.NT 86, ( result, PLUS1left, PLUS1right), rest671) +end +| ( 121, ( ( _, ( MlyValue.MINUS MINUS1, MINUS1left, MINUS1right)) :: + rest671)) => let val result = MlyValue.add_op (fn _ => let val ( +MINUS as MINUS1) = MINUS1 () + in (MINUS) +end) + in ( LrTable.NT 86, ( result, MINUS1left, MINUS1right), rest671) +end +| ( 122, ( ( _, ( MlyValue.unary_exp_cs unary_exp_cs1, +unary_exp_cs1left, unary_exp_cs1right)) :: rest671)) => let val +result = MlyValue.multiplicative_exp_cs (fn _ => let val ( +unary_exp_cs as unary_exp_cs1) = unary_exp_cs1 () + in (trace low ("unary_exp_cs ..." ^ "\n");unary_exp_cs) +end) + in ( LrTable.NT 83, ( result, unary_exp_cs1left, unary_exp_cs1right), + rest671) +end +| ( 123, ( ( _, ( MlyValue.multiplicative_exp_tail_cs_p +multiplicative_exp_tail_cs_p1, _, multiplicative_exp_tail_cs_p1right)) + :: ( _, ( MlyValue.unary_exp_cs unary_exp_cs1, unary_exp_cs1left, _)) + :: rest671)) => let val result = MlyValue.multiplicative_exp_cs (fn + _ => let val (unary_exp_cs as unary_exp_cs1) = unary_exp_cs1 () + val (multiplicative_exp_tail_cs_p as multiplicative_exp_tail_cs_p1) + = multiplicative_exp_tail_cs_p1 () + in ( +OperationCall (unary_exp_cs,DummyT,[OclLibPackage,"DummyT",#1(multiplicative_exp_tail_cs_p)],[(#2(multiplicative_exp_tail_cs_p),DummyT)],DummyT) +) +end) + in ( LrTable.NT 83, ( result, unary_exp_cs1left, +multiplicative_exp_tail_cs_p1right), rest671) +end +| ( 124, ( ( _, ( MlyValue.multiplicative_exp_tail_cs +multiplicative_exp_tail_cs1, multiplicative_exp_tail_cs1left, +multiplicative_exp_tail_cs1right)) :: rest671)) => let val result = +MlyValue.multiplicative_exp_tail_cs_p (fn _ => let val ( +multiplicative_exp_tail_cs as multiplicative_exp_tail_cs1) = +multiplicative_exp_tail_cs1 () + in (multiplicative_exp_tail_cs) +end) + in ( LrTable.NT 84, ( result, multiplicative_exp_tail_cs1left, +multiplicative_exp_tail_cs1right), rest671) +end +| ( 125, ( ( _, ( MlyValue.multiplicative_exp_tail_cs_p +multiplicative_exp_tail_cs_p1, _, multiplicative_exp_tail_cs_p1right)) + :: ( _, ( MlyValue.multiplicative_exp_tail_cs +multiplicative_exp_tail_cs1, multiplicative_exp_tail_cs1left, _)) :: +rest671)) => let val result = MlyValue.multiplicative_exp_tail_cs_p + (fn _ => let val (multiplicative_exp_tail_cs as +multiplicative_exp_tail_cs1) = multiplicative_exp_tail_cs1 () + val (multiplicative_exp_tail_cs_p as multiplicative_exp_tail_cs_p1) + = multiplicative_exp_tail_cs_p1 () + in ( +#1(multiplicative_exp_tail_cs),OperationCall (#2(multiplicative_exp_tail_cs),DummyT,[OclLibPackage,"DummyT",#1(multiplicative_exp_tail_cs_p)],[(#2(multiplicative_exp_tail_cs_p),DummyT)],DummyT) +) +end) + in ( LrTable.NT 84, ( result, multiplicative_exp_tail_cs1left, +multiplicative_exp_tail_cs_p1right), rest671) +end +| ( 126, ( ( _, ( MlyValue.unary_exp_cs unary_exp_cs1, _, +unary_exp_cs1right)) :: ( _, ( MlyValue.mult_op mult_op1, mult_op1left +, _)) :: rest671)) => let val result = +MlyValue.multiplicative_exp_tail_cs (fn _ => let val (mult_op as +mult_op1) = mult_op1 () + val (unary_exp_cs as unary_exp_cs1) = unary_exp_cs1 () + in (mult_op, unary_exp_cs) +end) + in ( LrTable.NT 85, ( result, mult_op1left, unary_exp_cs1right), +rest671) +end +| ( 127, ( ( _, ( MlyValue.STAR STAR1, STAR1left, STAR1right)) :: +rest671)) => let val result = MlyValue.mult_op (fn _ => let val ( +STAR as STAR1) = STAR1 () + in (STAR) +end) + in ( LrTable.NT 88, ( result, STAR1left, STAR1right), rest671) +end +| ( 128, ( ( _, ( MlyValue.SLASH SLASH1, SLASH1left, SLASH1right)) :: + rest671)) => let val result = MlyValue.mult_op (fn _ => let val ( +SLASH as SLASH1) = SLASH1 () + in (SLASH) +end) + in ( LrTable.NT 88, ( result, SLASH1left, SLASH1right), rest671) +end +| ( 129, ( ( _, ( MlyValue.postfix_exp_cs postfix_exp_cs1, _, +postfix_exp_cs1right)) :: ( _, ( MlyValue.unary_op unary_op1, +unary_op1left, _)) :: rest671)) => let val result = +MlyValue.unary_exp_cs (fn _ => let val (unary_op as unary_op1) = +unary_op1 () + val (postfix_exp_cs as postfix_exp_cs1) = postfix_exp_cs1 () + in ( +OperationCall (postfix_exp_cs,DummyT,[OclLibPackage,"DummyT",unary_op],[],DummyT) +) +end) + in ( LrTable.NT 87, ( result, unary_op1left, postfix_exp_cs1right), +rest671) +end +| ( 130, ( ( _, ( MlyValue.postfix_exp_cs postfix_exp_cs1, +postfix_exp_cs1left, postfix_exp_cs1right)) :: rest671)) => let val +result = MlyValue.unary_exp_cs (fn _ => let val (postfix_exp_cs as +postfix_exp_cs1) = postfix_exp_cs1 () + in (postfix_exp_cs) +end) + in ( LrTable.NT 87, ( result, postfix_exp_cs1left, +postfix_exp_cs1right), rest671) +end +| ( 131, ( ( _, ( MlyValue.MINUS MINUS1, MINUS1left, MINUS1right)) :: + rest671)) => let val result = MlyValue.unary_op (fn _ => let val ( +MINUS as MINUS1) = MINUS1 () + in (MINUS) +end) + in ( LrTable.NT 89, ( result, MINUS1left, MINUS1right), rest671) +end +| ( 132, ( ( _, ( MlyValue.NOT NOT1, NOT1left, NOT1right)) :: rest671 +)) => let val result = MlyValue.unary_op (fn _ => let val (NOT as +NOT1) = NOT1 () + in (NOT) +end) + in ( LrTable.NT 89, ( result, NOT1left, NOT1right), rest671) +end +| ( 133, ( ( _, ( MlyValue.primary_exp_cs primary_exp_cs1, +primary_exp_cs1left, primary_exp_cs1right)) :: rest671)) => let val +result = MlyValue.postfix_exp_cs (fn _ => let val (primary_exp_cs as +primary_exp_cs1) = primary_exp_cs1 () + in (primary_exp_cs) +end) + in ( LrTable.NT 90, ( result, primary_exp_cs1left, +primary_exp_cs1right), rest671) +end +| ( 134, ( ( _, ( MlyValue.postfix_exp_tail_cs_p +postfix_exp_tail_cs_p1, _, postfix_exp_tail_cs_p1right)) :: ( _, ( +MlyValue.primary_exp_cs primary_exp_cs1, primary_exp_cs1left, _)) :: +rest671)) => let val result = MlyValue.postfix_exp_cs (fn _ => let + val (primary_exp_cs as primary_exp_cs1) = primary_exp_cs1 () + val (postfix_exp_tail_cs_p as postfix_exp_tail_cs_p1) = +postfix_exp_tail_cs_p1 () + in ( +trace low ("literal_call_exp_cs..." ^ "\n");nest_source ([primary_exp_cs]@postfix_exp_tail_cs_p) +) +end) + in ( LrTable.NT 90, ( result, primary_exp_cs1left, +postfix_exp_tail_cs_p1right), rest671) +end +| ( 135, ( ( _, ( MlyValue.literal_exp_cs literal_exp_cs1, +literal_exp_cs1left, literal_exp_cs1right)) :: rest671)) => let val +result = MlyValue.primary_exp_cs (fn _ => let val (literal_exp_cs as +literal_exp_cs1) = literal_exp_cs1 () + in (trace low ("literal_call_exp_cs..." ^ "\n");literal_exp_cs) +end) + in ( LrTable.NT 93, ( result, literal_exp_cs1left, +literal_exp_cs1right), rest671) +end +| ( 136, ( ( _, ( MlyValue.PAREN_CLOSE PAREN_CLOSE1, _, +PAREN_CLOSE1right)) :: ( _, ( MlyValue.expression expression1, _, _)) + :: ( _, ( MlyValue.PAREN_OPEN PAREN_OPEN1, PAREN_OPEN1left, _)) :: +rest671)) => let val result = MlyValue.primary_exp_cs (fn _ => let + val PAREN_OPEN1 = PAREN_OPEN1 () + val (expression as expression1) = expression1 () + val PAREN_CLOSE1 = PAREN_CLOSE1 () + in (expression) +end) + in ( LrTable.NT 93, ( result, PAREN_OPEN1left, PAREN_CLOSE1right), +rest671) +end +| ( 137, ( ( _, ( MlyValue.property_call_exp_cs property_call_exp_cs1 +, property_call_exp_cs1left, property_call_exp_cs1right)) :: rest671)) + => let val result = MlyValue.primary_exp_cs (fn _ => let val ( +property_call_exp_cs as property_call_exp_cs1) = property_call_exp_cs1 + () + in (trace low ("property_call_exp_cs..." ^ "\n");property_call_exp_cs +) +end) + in ( LrTable.NT 93, ( result, property_call_exp_cs1left, +property_call_exp_cs1right), rest671) +end +| ( 138, ( ( _, ( MlyValue.if_exp_cs if_exp_cs1, if_exp_cs1left, +if_exp_cs1right)) :: rest671)) => let val result = +MlyValue.primary_exp_cs (fn _ => let val (if_exp_cs as if_exp_cs1) = +if_exp_cs1 () + in (if_exp_cs) +end) + in ( LrTable.NT 93, ( result, if_exp_cs1left, if_exp_cs1right), +rest671) +end +| ( 139, ( ( _, ( MlyValue.ENDIF ENDIF1, _, ENDIF1right)) :: ( _, ( +MlyValue.ocl_expression_cs ocl_expression_cs2, _, _)) :: ( _, ( +MlyValue.ELSE ELSE1, _, _)) :: ( _, ( MlyValue.ocl_expression_cs +ocl_expression_cs1, _, _)) :: ( _, ( MlyValue.THEN THEN1, _, _)) :: ( + _, ( MlyValue.logical_exp_cs logical_exp_cs1, _, _)) :: ( _, ( +MlyValue.IF IF1, IF1left, _)) :: rest671)) => let val result = +MlyValue.if_exp_cs (fn _ => let val IF1 = IF1 () + val (logical_exp_cs as logical_exp_cs1) = logical_exp_cs1 () + val THEN1 = THEN1 () + val ocl_expression_cs1 = ocl_expression_cs1 () + val ELSE1 = ELSE1 () + val ocl_expression_cs2 = ocl_expression_cs2 () + val ENDIF1 = ENDIF1 () + in ( +If (logical_exp_cs,DummyT,ocl_expression_cs1,DummyT,ocl_expression_cs2,DummyT,DummyT) +) +end) + in ( LrTable.NT 51, ( result, IF1left, ENDIF1right), rest671) +end +| ( 140, ( ( _, ( MlyValue.postfix_exp_tail_cs postfix_exp_tail_cs1, +postfix_exp_tail_cs1left, postfix_exp_tail_cs1right)) :: rest671)) => + let val result = MlyValue.postfix_exp_tail_cs_p (fn _ => let val ( +postfix_exp_tail_cs as postfix_exp_tail_cs1) = postfix_exp_tail_cs1 () + in ( +trace low ("end of recursion..." ^ Ocl2String.ocl2string false postfix_exp_tail_cs ^ "\n");[postfix_exp_tail_cs] +) +end) + in ( LrTable.NT 91, ( result, postfix_exp_tail_cs1left, +postfix_exp_tail_cs1right), rest671) +end +| ( 141, ( ( _, ( MlyValue.postfix_exp_tail_cs_p +postfix_exp_tail_cs_p1, _, postfix_exp_tail_cs_p1right)) :: ( _, ( +MlyValue.postfix_exp_tail_cs postfix_exp_tail_cs1, +postfix_exp_tail_cs1left, _)) :: rest671)) => let val result = +MlyValue.postfix_exp_tail_cs_p (fn _ => let val (postfix_exp_tail_cs + as postfix_exp_tail_cs1) = postfix_exp_tail_cs1 () + val (postfix_exp_tail_cs_p as postfix_exp_tail_cs_p1) = +postfix_exp_tail_cs_p1 () + in ( +trace low ("add_source ..." ^ "\n" ^ "done");([postfix_exp_tail_cs]@postfix_exp_tail_cs_p) +) +end) + in ( LrTable.NT 91, ( result, postfix_exp_tail_cs1left, +postfix_exp_tail_cs_p1right), rest671) +end +| ( 142, ( ( _, ( MlyValue.property_call_exp_cs property_call_exp_cs1 +, _, property_call_exp_cs1right)) :: ( _, ( MlyValue.DOT DOT1, +DOT1left, _)) :: rest671)) => let val result = +MlyValue.postfix_exp_tail_cs (fn _ => let val DOT1 = DOT1 () + val (property_call_exp_cs as property_call_exp_cs1) = +property_call_exp_cs1 () + in (property_call_exp_cs) +end) + in ( LrTable.NT 92, ( result, DOT1left, property_call_exp_cs1right), +rest671) +end +| ( 143, ( ( _, ( MlyValue.arrow_property_call_exp_cs +arrow_property_call_exp_cs1, _, arrow_property_call_exp_cs1right)) :: +( _, ( MlyValue.ARROW_RIGHT ARROW_RIGHT1, ARROW_RIGHT1left, _)) :: +rest671)) => let val result = MlyValue.postfix_exp_tail_cs (fn _ => + let val ARROW_RIGHT1 = ARROW_RIGHT1 () + val (arrow_property_call_exp_cs as arrow_property_call_exp_cs1) = +arrow_property_call_exp_cs1 () + in (arrow_property_call_exp_cs) +end) + in ( LrTable.NT 92, ( result, ARROW_RIGHT1left, +arrow_property_call_exp_cs1right), rest671) +end +| ( 144, ( ( _, ( MlyValue.path_name_cs path_name_cs1, +path_name_cs1left, path_name_cs1right)) :: rest671)) => let val +result = MlyValue.property_call_exp_cs (fn _ => let val (path_name_cs + as path_name_cs1) = path_name_cs1 () + in ( +AttributeCall (Variable ("dummy_source",DummyT),DummyT,path_name_cs, DummyT) +) +end) + in ( LrTable.NT 94, ( result, path_name_cs1left, path_name_cs1right), + rest671) +end +| ( 145, ( ( _, ( MlyValue.time_exp_cs time_exp_cs1, _, +time_exp_cs1right)) :: ( _, ( MlyValue.path_name_cs path_name_cs1, +path_name_cs1left, _)) :: rest671)) => let val result = +MlyValue.property_call_exp_cs (fn _ => let val (path_name_cs as +path_name_cs1) = path_name_cs1 () + val time_exp_cs1 = time_exp_cs1 () + in ( +AttributeCall (Variable ("dummy_source",DummyT),DummyT,path_name_cs@["atPre"],DummyT) +) +end) + in ( LrTable.NT 94, ( result, path_name_cs1left, time_exp_cs1right), +rest671) +end +| ( 146, ( ( _, ( MlyValue.property_call_parameters_cs +property_call_parameters_cs1, _, property_call_parameters_cs1right)) + :: ( _, ( MlyValue.path_name_cs path_name_cs1, path_name_cs1left, _)) + :: rest671)) => let val result = MlyValue.property_call_exp_cs (fn _ + => let val (path_name_cs as path_name_cs1) = path_name_cs1 () + val (property_call_parameters_cs as property_call_parameters_cs1) = +property_call_parameters_cs1 () + in ( +OperationCall (Variable ("dummy_source",DummyT),DummyT,path_name_cs , property_call_parameters_cs,DummyT) +) +end) + in ( LrTable.NT 94, ( result, path_name_cs1left, +property_call_parameters_cs1right), rest671) +end +| ( 147, ( ( _, ( MlyValue.property_call_parameters_cs +property_call_parameters_cs1, _, property_call_parameters_cs1right)) + :: ( _, ( MlyValue.time_exp_cs time_exp_cs1, _, _)) :: ( _, ( +MlyValue.path_name_cs path_name_cs1, path_name_cs1left, _)) :: rest671 +)) => let val result = MlyValue.property_call_exp_cs (fn _ => let + val (path_name_cs as path_name_cs1) = path_name_cs1 () + val time_exp_cs1 = time_exp_cs1 () + val (property_call_parameters_cs as property_call_parameters_cs1) = +property_call_parameters_cs1 () + in ( +OperationCall (Variable ("dummy_source",DummyT),DummyT,path_name_cs@["atPre"],property_call_parameters_cs,DummyT) +) +end) + in ( LrTable.NT 94, ( result, path_name_cs1left, +property_call_parameters_cs1right), rest671) +end +| ( 148, ( ( _, ( MlyValue.PAREN_CLOSE PAREN_CLOSE1, _, +PAREN_CLOSE1right)) :: ( _, ( MlyValue.expression expression1, _, _)) + :: ( _, ( MlyValue.PAREN_OPEN PAREN_OPEN1, _, _)) :: ( _, ( +MlyValue.iterator_name_cs iterator_name_cs1, iterator_name_cs1left, _) +) :: rest671)) => let val result = +MlyValue.arrow_property_call_exp_cs (fn _ => let val ( +iterator_name_cs as iterator_name_cs1) = iterator_name_cs1 () + val PAREN_OPEN1 = PAREN_OPEN1 () + val (expression as expression1) = expression1 () + val PAREN_CLOSE1 = PAREN_CLOSE1 () + in ( +Iterator (iterator_name_cs,[],Variable("dummy_source",DummyT),DummyT,expression,DummyT,DummyT) +) +end) + in ( LrTable.NT 95, ( result, iterator_name_cs1left, +PAREN_CLOSE1right), rest671) +end +| ( 149, ( ( _, ( MlyValue.PAREN_CLOSE PAREN_CLOSE1, _, +PAREN_CLOSE1right)) :: ( _, ( MlyValue.expression expression1, _, _)) + :: ( _, ( MlyValue.iterator_vars_cs iterator_vars_cs1, _, _)) :: ( _, + ( MlyValue.PAREN_OPEN PAREN_OPEN1, _, _)) :: ( _, ( +MlyValue.iterator_name_cs iterator_name_cs1, iterator_name_cs1left, _) +) :: rest671)) => let val result = +MlyValue.arrow_property_call_exp_cs (fn _ => let val ( +iterator_name_cs as iterator_name_cs1) = iterator_name_cs1 () + val PAREN_OPEN1 = PAREN_OPEN1 () + val (iterator_vars_cs as iterator_vars_cs1) = iterator_vars_cs1 () + val (expression as expression1) = expression1 () + val PAREN_CLOSE1 = PAREN_CLOSE1 () + in ( +trace low ("arrow_property_call_cs: iterator with vars..." ^ "\n");Iterator (iterator_name_cs,iterator_vars_cs,Variable("dummy_source",DummyT),DummyT,expression,DummyT,DummyT) +) +end) + in ( LrTable.NT 95, ( result, iterator_name_cs1left, +PAREN_CLOSE1right), rest671) +end +| ( 150, ( ( _, ( MlyValue.PAREN_CLOSE PAREN_CLOSE1, _, +PAREN_CLOSE1right)) :: ( _, ( MlyValue.PAREN_OPEN PAREN_OPEN1, _, _)) + :: ( _, ( MlyValue.simple_name simple_name1, simple_name1left, _)) :: + rest671)) => let val result = MlyValue.arrow_property_call_exp_cs + (fn _ => let val (simple_name as simple_name1) = simple_name1 () + val PAREN_OPEN1 = PAREN_OPEN1 () + val PAREN_CLOSE1 = PAREN_CLOSE1 () + in ( +trace low ("arrow_property_call_exp_cs..." ^ "\n");OperationCall (Variable ("dummy_source",DummyT),DummyT,(["arrow"]@[simple_name]),[],DummyT) +) +end) + in ( LrTable.NT 95, ( result, simple_name1left, PAREN_CLOSE1right), +rest671) +end +| ( 151, ( ( _, ( MlyValue.PAREN_CLOSE PAREN_CLOSE1, _, +PAREN_CLOSE1right)) :: ( _, ( MlyValue.actual_parameter_list_cs +actual_parameter_list_cs1, _, _)) :: ( _, ( MlyValue.PAREN_OPEN +PAREN_OPEN1, _, _)) :: ( _, ( MlyValue.simple_name simple_name1, +simple_name1left, _)) :: rest671)) => let val result = +MlyValue.arrow_property_call_exp_cs (fn _ => let val (simple_name as +simple_name1) = simple_name1 () + val PAREN_OPEN1 = PAREN_OPEN1 () + val (actual_parameter_list_cs as actual_parameter_list_cs1) = +actual_parameter_list_cs1 () + val PAREN_CLOSE1 = PAREN_CLOSE1 () + in ( +OperationCall (Variable ("dummy_source",DummyT),DummyT,(["arrow"]@[simple_name]),actual_parameter_list_cs,DummyT) +) +end) + in ( LrTable.NT 95, ( result, simple_name1left, PAREN_CLOSE1right), +rest671) +end +| ( 152, ( ( _, ( MlyValue.VERTICAL_BAR VERTICAL_BAR1, _, +VERTICAL_BAR1right)) :: ( _, ( MlyValue.formal_parameter_list_cs +formal_parameter_list_cs1, formal_parameter_list_cs1left, _)) :: +rest671)) => let val result = MlyValue.iterator_vars_cs (fn _ => let + val (formal_parameter_list_cs as formal_parameter_list_cs1) = +formal_parameter_list_cs1 () + val VERTICAL_BAR1 = VERTICAL_BAR1 () + in (formal_parameter_list_cs) +end) + in ( LrTable.NT 107, ( result, formal_parameter_list_cs1left, +VERTICAL_BAR1right), rest671) +end +| ( 153, ( ( _, ( MlyValue.PAREN_CLOSE PAREN_CLOSE1, _, +PAREN_CLOSE1right)) :: ( _, ( MlyValue.type_specifier type_specifier1, + _, _)) :: ( _, ( MlyValue.PAREN_OPEN PAREN_OPEN1, PAREN_OPEN1left, _) +) :: rest671)) => let val result = MlyValue.ntVOID (fn _ => ( let + val PAREN_OPEN1 = PAREN_OPEN1 () + val (type_specifier as type_specifier1) = type_specifier1 () + val PAREN_CLOSE1 = PAREN_CLOSE1 () + in (type_specifier) +end; ())) + in ( LrTable.NT 115, ( result, PAREN_OPEN1left, PAREN_CLOSE1right), +rest671) +end +| ( 154, ( ( _, ( MlyValue.PAREN_CLOSE PAREN_CLOSE1, _, +PAREN_CLOSE1right)) :: ( _, ( MlyValue.actual_parameter_list_cs +actual_parameter_list_cs1, _, _)) :: ( _, ( MlyValue.PAREN_OPEN +PAREN_OPEN1, PAREN_OPEN1left, _)) :: rest671)) => let val result = +MlyValue.property_call_parameters_cs (fn _ => let val PAREN_OPEN1 = +PAREN_OPEN1 () + val (actual_parameter_list_cs as actual_parameter_list_cs1) = +actual_parameter_list_cs1 () + val PAREN_CLOSE1 = PAREN_CLOSE1 () + in (actual_parameter_list_cs) +end) + in ( LrTable.NT 98, ( result, PAREN_OPEN1left, PAREN_CLOSE1right), +rest671) +end +| ( 155, ( ( _, ( MlyValue.PAREN_CLOSE PAREN_CLOSE1, _, +PAREN_CLOSE1right)) :: ( _, ( MlyValue.PAREN_OPEN PAREN_OPEN1, +PAREN_OPEN1left, _)) :: rest671)) => let val result = +MlyValue.property_call_parameters_cs (fn _ => let val PAREN_OPEN1 = +PAREN_OPEN1 () + val PAREN_CLOSE1 = PAREN_CLOSE1 () + in ([]) +end) + in ( LrTable.NT 98, ( result, PAREN_OPEN1left, PAREN_CLOSE1right), +rest671) +end +| ( 156, ( ( _, ( MlyValue.actual_parameter_list_element_cs +actual_parameter_list_element_cs1, +actual_parameter_list_element_cs1left, +actual_parameter_list_element_cs1right)) :: rest671)) => let val +result = MlyValue.actual_parameter_list_cs (fn _ => let val ( +actual_parameter_list_element_cs as actual_parameter_list_element_cs1) + = actual_parameter_list_element_cs1 () + in ([actual_parameter_list_element_cs]) +end) + in ( LrTable.NT 102, ( result, actual_parameter_list_element_cs1left, + actual_parameter_list_element_cs1right), rest671) +end +| ( 157, ( ( _, ( MlyValue.actual_parameter_list_tail_cs_p +actual_parameter_list_tail_cs_p1, _, +actual_parameter_list_tail_cs_p1right)) :: ( _, ( +MlyValue.actual_parameter_list_element_cs +actual_parameter_list_element_cs1, +actual_parameter_list_element_cs1left, _)) :: rest671)) => let val +result = MlyValue.actual_parameter_list_cs (fn _ => let val ( +actual_parameter_list_element_cs as actual_parameter_list_element_cs1) + = actual_parameter_list_element_cs1 () + val (actual_parameter_list_tail_cs_p as +actual_parameter_list_tail_cs_p1) = actual_parameter_list_tail_cs_p1 + () + in ( +[actual_parameter_list_element_cs]@actual_parameter_list_tail_cs_p) + +end) + in ( LrTable.NT 102, ( result, actual_parameter_list_element_cs1left, + actual_parameter_list_tail_cs_p1right), rest671) +end +| ( 158, ( ( _, ( MlyValue.actual_parameter_list_tail_cs +actual_parameter_list_tail_cs1, actual_parameter_list_tail_cs1left, +actual_parameter_list_tail_cs1right)) :: rest671)) => let val result + = MlyValue.actual_parameter_list_tail_cs_p (fn _ => let val ( +actual_parameter_list_tail_cs as actual_parameter_list_tail_cs1) = +actual_parameter_list_tail_cs1 () + in (actual_parameter_list_tail_cs) +end) + in ( LrTable.NT 104, ( result, actual_parameter_list_tail_cs1left, +actual_parameter_list_tail_cs1right), rest671) +end +| ( 159, ( ( _, ( MlyValue.actual_parameter_list_tail_cs_p +actual_parameter_list_tail_cs_p1, _, +actual_parameter_list_tail_cs_p1right)) :: ( _, ( +MlyValue.actual_parameter_list_tail_cs actual_parameter_list_tail_cs1, + actual_parameter_list_tail_cs1left, _)) :: rest671)) => let val +result = MlyValue.actual_parameter_list_tail_cs_p (fn _ => let val ( +actual_parameter_list_tail_cs as actual_parameter_list_tail_cs1) = +actual_parameter_list_tail_cs1 () + val (actual_parameter_list_tail_cs_p as +actual_parameter_list_tail_cs_p1) = actual_parameter_list_tail_cs_p1 + () + in (actual_parameter_list_tail_cs@actual_parameter_list_tail_cs_p) + +end) + in ( LrTable.NT 104, ( result, actual_parameter_list_tail_cs1left, +actual_parameter_list_tail_cs_p1right), rest671) +end +| ( 160, ( ( _, ( MlyValue.actual_parameter_list_cs +actual_parameter_list_cs1, _, actual_parameter_list_cs1right)) :: ( _, + ( MlyValue.COMMA COMMA1, COMMA1left, _)) :: rest671)) => let val +result = MlyValue.actual_parameter_list_tail_cs (fn _ => let val +COMMA1 = COMMA1 () + val (actual_parameter_list_cs as actual_parameter_list_cs1) = +actual_parameter_list_cs1 () + in (actual_parameter_list_cs) +end) + in ( LrTable.NT 103, ( result, COMMA1left, +actual_parameter_list_cs1right), rest671) +end +| ( 161, ( ( _, ( MlyValue.expression expression1, expression1left, +expression1right)) :: rest671)) => let val result = +MlyValue.actual_parameter_list_element_cs (fn _ => let val ( +expression as expression1) = expression1 () + in (expression,DummyT) +end) + in ( LrTable.NT 105, ( result, expression1left, expression1right), +rest671) +end +| ( 162, ( ( _, ( MlyValue.formal_parameter_cs formal_parameter_cs1, +formal_parameter_cs1left, formal_parameter_cs1right)) :: rest671)) => + let val result = MlyValue.actual_parameter_list_element_cs (fn _ => + let val (formal_parameter_cs as formal_parameter_cs1) = +formal_parameter_cs1 () + in ( +Variable (#1(formal_parameter_cs),#2(formal_parameter_cs)),#2(formal_parameter_cs) +) +end) + in ( LrTable.NT 105, ( result, formal_parameter_cs1left, +formal_parameter_cs1right), rest671) +end +| ( 163, ( ( _, ( MlyValue.formal_parameter_cs formal_parameter_cs1, +formal_parameter_cs1left, formal_parameter_cs1right)) :: rest671)) => + let val result = MlyValue.formal_parameter_list_cs (fn _ => let val + (formal_parameter_cs as formal_parameter_cs1) = formal_parameter_cs1 + () + in ([formal_parameter_cs]) +end) + in ( LrTable.NT 38, ( result, formal_parameter_cs1left, +formal_parameter_cs1right), rest671) +end +| ( 164, ( ( _, ( MlyValue.formal_parameter_list_tail_cs +formal_parameter_list_tail_cs1, _, formal_parameter_list_tail_cs1right +)) :: ( _, ( MlyValue.formal_parameter_cs formal_parameter_cs1, +formal_parameter_cs1left, _)) :: rest671)) => let val result = +MlyValue.formal_parameter_list_cs (fn _ => let val ( +formal_parameter_cs as formal_parameter_cs1) = formal_parameter_cs1 () + val (formal_parameter_list_tail_cs as formal_parameter_list_tail_cs1 +) = formal_parameter_list_tail_cs1 () + in ([formal_parameter_cs]@formal_parameter_list_tail_cs) +end) + in ( LrTable.NT 38, ( result, formal_parameter_cs1left, +formal_parameter_list_tail_cs1right), rest671) +end +| ( 165, ( ( _, ( MlyValue.formal_parameter_list_cs +formal_parameter_list_cs1, _, formal_parameter_list_cs1right)) :: ( _, + ( MlyValue.COMMA COMMA1, COMMA1left, _)) :: rest671)) => let val +result = MlyValue.formal_parameter_list_tail_cs (fn _ => let val +COMMA1 = COMMA1 () + val (formal_parameter_list_cs as formal_parameter_list_cs1) = +formal_parameter_list_cs1 () + in (formal_parameter_list_cs) +end) + in ( LrTable.NT 39, ( result, COMMA1left, +formal_parameter_list_cs1right), rest671) +end +| ( 166, ( ( _, ( MlyValue.formal_parameter_type_specifier +formal_parameter_type_specifier1, _, +formal_parameter_type_specifier1right)) :: ( _, ( MlyValue.simple_name + simple_name1, simple_name1left, _)) :: rest671)) => let val result = + MlyValue.formal_parameter_cs (fn _ => let val (simple_name as +simple_name1) = simple_name1 () + val (formal_parameter_type_specifier as +formal_parameter_type_specifier1) = formal_parameter_type_specifier1 + () + in (simple_name,formal_parameter_type_specifier) +end) + in ( LrTable.NT 37, ( result, simple_name1left, +formal_parameter_type_specifier1right), rest671) +end +| ( 167, ( ( _, ( MlyValue.type_specifier type_specifier1, _, +type_specifier1right)) :: ( _, ( MlyValue.COLON COLON1, COLON1left, _) +) :: rest671)) => let val result = +MlyValue.formal_parameter_type_specifier (fn _ => let val COLON1 = +COLON1 () + val (type_specifier as type_specifier1) = type_specifier1 () + in (type_specifier) +end) + in ( LrTable.NT 106, ( result, COLON1left, type_specifier1right), +rest671) +end +| ( 168, ( ( _, ( MlyValue.simple_type_specifier_cs +simple_type_specifier_cs1, simple_type_specifier_cs1left, +simple_type_specifier_cs1right)) :: rest671)) => let val result = +MlyValue.type_specifier (fn _ => let val (simple_type_specifier_cs + as simple_type_specifier_cs1) = simple_type_specifier_cs1 () + in (trace low ("type_specifier ..." ^ "\n");simple_type_specifier_cs) + +end) + in ( LrTable.NT 19, ( result, simple_type_specifier_cs1left, +simple_type_specifier_cs1right), rest671) +end +| ( 169, ( ( _, ( MlyValue.collection_type_specifier_cs +collection_type_specifier_cs1, collection_type_specifier_cs1left, +collection_type_specifier_cs1right)) :: rest671)) => let val result = + MlyValue.type_specifier (fn _ => let val ( +collection_type_specifier_cs as collection_type_specifier_cs1) = +collection_type_specifier_cs1 () + in (collection_type_specifier_cs) +end) + in ( LrTable.NT 19, ( result, collection_type_specifier_cs1left, +collection_type_specifier_cs1right), rest671) +end +| ( 170, ( ( _, ( MlyValue.simple_name simple_name1, simple_name1left +, simple_name1right)) :: rest671)) => let val result = +MlyValue.simple_type_specifier_cs (fn _ => let val (simple_name as +simple_name1) = simple_name1 () + in (string_to_type [simple_name]) +end) + in ( LrTable.NT 52, ( result, simple_name1left, simple_name1right), +rest671) +end +| ( 171, ( ( _, ( MlyValue.initialized_variable_cs +initialized_variable_cs1, initialized_variable_cs1left, +initialized_variable_cs1right)) :: rest671)) => let val result = +MlyValue.initialized_variable_list_cs (fn _ => let val ( +initialized_variable_cs as initialized_variable_cs1) = +initialized_variable_cs1 () + in ([initialized_variable_cs]) +end) + in ( LrTable.NT 72, ( result, initialized_variable_cs1left, +initialized_variable_cs1right), rest671) +end +| ( 172, ( ( _, ( MlyValue.initialized_variable_list_tail_cs_p +initialized_variable_list_tail_cs_p1, +initialized_variable_list_tail_cs_p1left, +initialized_variable_list_tail_cs_p1right)) :: rest671)) => let val +result = MlyValue.initialized_variable_list_cs (fn _ => let val ( +initialized_variable_list_tail_cs_p as +initialized_variable_list_tail_cs_p1) = +initialized_variable_list_tail_cs_p1 () + in (initialized_variable_list_tail_cs_p) +end) + in ( LrTable.NT 72, ( result, +initialized_variable_list_tail_cs_p1left, +initialized_variable_list_tail_cs_p1right), rest671) +end +| ( 173, ( ( _, ( MlyValue.initialized_variable_list_tail_cs +initialized_variable_list_tail_cs1, +initialized_variable_list_tail_cs1left, +initialized_variable_list_tail_cs1right)) :: rest671)) => let val +result = MlyValue.initialized_variable_list_tail_cs_p (fn _ => let + val (initialized_variable_list_tail_cs as +initialized_variable_list_tail_cs1) = +initialized_variable_list_tail_cs1 () + in ([initialized_variable_list_tail_cs]) +end) + in ( LrTable.NT 108, ( result, initialized_variable_list_tail_cs1left +, initialized_variable_list_tail_cs1right), rest671) +end +| ( 174, ( ( _, ( MlyValue.initialized_variable_list_tail_cs_p +initialized_variable_list_tail_cs_p1, _, +initialized_variable_list_tail_cs_p1right)) :: ( _, ( +MlyValue.initialized_variable_list_tail_cs +initialized_variable_list_tail_cs1, +initialized_variable_list_tail_cs1left, _)) :: rest671)) => let val +result = MlyValue.initialized_variable_list_tail_cs_p (fn _ => let + val (initialized_variable_list_tail_cs as +initialized_variable_list_tail_cs1) = +initialized_variable_list_tail_cs1 () + val (initialized_variable_list_tail_cs_p as +initialized_variable_list_tail_cs_p1) = +initialized_variable_list_tail_cs_p1 () + in ( +[initialized_variable_list_tail_cs]@(initialized_variable_list_tail_cs_p) +) +end) + in ( LrTable.NT 108, ( result, initialized_variable_list_tail_cs1left +, initialized_variable_list_tail_cs_p1right), rest671) +end +| ( 175, ( ( _, ( MlyValue.initialized_variable_cs +initialized_variable_cs1, _, initialized_variable_cs1right)) :: ( _, ( + MlyValue.COMMA COMMA1, COMMA1left, _)) :: rest671)) => let val +result = MlyValue.initialized_variable_list_tail_cs (fn _ => let val +COMMA1 = COMMA1 () + val (initialized_variable_cs as initialized_variable_cs1) = +initialized_variable_cs1 () + in (initialized_variable_cs) +end) + in ( LrTable.NT 109, ( result, COMMA1left, +initialized_variable_cs1right), rest671) +end +| ( 176, ( ( _, ( MlyValue.variable_initializer variable_initializer1 +, _, variable_initializer1right)) :: ( _, ( +MlyValue.formal_parameter_cs formal_parameter_cs1, +formal_parameter_cs1left, _)) :: rest671)) => let val result = +MlyValue.initialized_variable_cs (fn _ => let val ( +formal_parameter_cs as formal_parameter_cs1) = formal_parameter_cs1 () + val (variable_initializer as variable_initializer1) = +variable_initializer1 () + in ( +(#1 formal_parameter_cs),(#2 formal_parameter_cs),variable_initializer +) +end) + in ( LrTable.NT 101, ( result, formal_parameter_cs1left, +variable_initializer1right), rest671) +end +| ( 177, ( ( _, ( MlyValue.formal_parameter_cs formal_parameter_cs1, +formal_parameter_cs1left, formal_parameter_cs1right)) :: rest671)) => + let val result = MlyValue.variable_declaration_cs (fn _ => let val + (formal_parameter_cs as formal_parameter_cs1) = formal_parameter_cs1 + () + in (formal_parameter_cs) +end) + in ( LrTable.NT 111, ( result, formal_parameter_cs1left, +formal_parameter_cs1right), rest671) +end +| ( 178, ( ( _, ( MlyValue.ocl_expression_cs ocl_expression_cs1, _, +ocl_expression_cs1right)) :: ( _, ( MlyValue.EQUALS EQUALS1, +EQUALS1left, _)) :: rest671)) => let val result = +MlyValue.variable_initializer (fn _ => let val EQUALS1 = EQUALS1 () + val (ocl_expression_cs as ocl_expression_cs1) = ocl_expression_cs1 + () + in (ocl_expression_cs) +end) + in ( LrTable.NT 110, ( result, EQUALS1left, ocl_expression_cs1right), + rest671) +end +| ( 179, ( ( _, ( MlyValue.variable_declaration_cs +variable_declaration_cs1, variable_declaration_cs1left, +variable_declaration_cs1right)) :: rest671)) => let val result = +MlyValue.variable_declaration_list_cs (fn _ => let val ( +variable_declaration_cs as variable_declaration_cs1) = +variable_declaration_cs1 () + in ([variable_declaration_cs]) +end) + in ( LrTable.NT 112, ( result, variable_declaration_cs1left, +variable_declaration_cs1right), rest671) +end +| ( 180, ( ( _, ( MlyValue.variable_declaration_list_tail_cs +variable_declaration_list_tail_cs1, _, +variable_declaration_list_tail_cs1right)) :: ( _, ( +MlyValue.variable_declaration_cs variable_declaration_cs1, +variable_declaration_cs1left, _)) :: rest671)) => let val result = +MlyValue.variable_declaration_list_cs (fn _ => let val ( +variable_declaration_cs as variable_declaration_cs1) = +variable_declaration_cs1 () + val (variable_declaration_list_tail_cs as +variable_declaration_list_tail_cs1) = +variable_declaration_list_tail_cs1 () + in ([variable_declaration_cs]@variable_declaration_list_tail_cs) +end) + in ( LrTable.NT 112, ( result, variable_declaration_cs1left, +variable_declaration_list_tail_cs1right), rest671) +end +| ( 181, ( ( _, ( MlyValue.variable_declaration_list_cs +variable_declaration_list_cs1, _, variable_declaration_list_cs1right)) + :: ( _, ( MlyValue.COMMA COMMA1, COMMA1left, _)) :: rest671)) => let + val result = MlyValue.variable_declaration_list_tail_cs (fn _ => let + val COMMA1 = COMMA1 () + val (variable_declaration_list_cs as variable_declaration_list_cs1) + = variable_declaration_list_cs1 () + in (variable_declaration_list_cs) +end) + in ( LrTable.NT 113, ( result, COMMA1left, +variable_declaration_list_cs1right), rest671) +end +| _ => raise (mlyAction i392) +end +val void = MlyValue.VOID +val extract = fn a => (fn MlyValue.START x => x +| _ => let exception ParseInternal + in raise ParseInternal end) a () +end +end +structure Tokens : OclParser_TOKENS = +struct +type svalue = ParserData.svalue +type ('a,'b) token = ('a,'b) Token.token +fun EOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 0,( +ParserData.MlyValue.VOID,p1,p2)) +fun TICK (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 1,( +ParserData.MlyValue.TICK (fn () => i),p1,p2)) +fun COMMA (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 2,( +ParserData.MlyValue.COMMA (fn () => i),p1,p2)) +fun ARROW_RIGHT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 3,( +ParserData.MlyValue.ARROW_RIGHT (fn () => i),p1,p2)) +fun DOT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 4,( +ParserData.MlyValue.DOT (fn () => i),p1,p2)) +fun DBL_DOT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 5,( +ParserData.MlyValue.DBL_DOT (fn () => i),p1,p2)) +fun COLON (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 6,( +ParserData.MlyValue.COLON (fn () => i),p1,p2)) +fun DBL_COLON (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 7,( +ParserData.MlyValue.DBL_COLON (fn () => i),p1,p2)) +fun SEMI_COLON (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 8,( +ParserData.MlyValue.SEMI_COLON (fn () => i),p1,p2)) +fun EQUALS (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 9,( +ParserData.MlyValue.EQUALS (fn () => i),p1,p2)) +fun QUESTION_MARK (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 10,( +ParserData.MlyValue.QUESTION_MARK (fn () => i),p1,p2)) +fun HASH (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 11,( +ParserData.MlyValue.HASH (fn () => i),p1,p2)) +fun AT_PRE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 12,( +ParserData.MlyValue.AT_PRE (fn () => i),p1,p2)) +fun BAG (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 13,( +ParserData.MlyValue.BAG (fn () => i),p1,p2)) +fun COLLECTION (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 14,( +ParserData.MlyValue.COLLECTION (fn () => i),p1,p2)) +fun SEQUENCE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 15,( +ParserData.MlyValue.SEQUENCE (fn () => i),p1,p2)) +fun ORDERED_SET (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 16,( +ParserData.MlyValue.ORDERED_SET (fn () => i),p1,p2)) +fun SET (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 17,( +ParserData.MlyValue.SET (fn () => i),p1,p2)) +fun TUPLE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 18,( +ParserData.MlyValue.TUPLE (fn () => i),p1,p2)) +fun TUPLE_TYPE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 19,( +ParserData.MlyValue.TUPLE_TYPE (fn () => i),p1,p2)) +fun BRACKET_OPEN (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 20,( +ParserData.MlyValue.BRACKET_OPEN (fn () => i),p1,p2)) +fun BRACKET_CLOSE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 21,( +ParserData.MlyValue.BRACKET_CLOSE (fn () => i),p1,p2)) +fun CARAT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 22,( +ParserData.MlyValue.CARAT (fn () => i),p1,p2)) +fun DBL_CARAT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 23,( +ParserData.MlyValue.DBL_CARAT (fn () => i),p1,p2)) +fun BODY (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 24,( +ParserData.MlyValue.BODY (fn () => i),p1,p2)) +fun CONTEXT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 25,( +ParserData.MlyValue.CONTEXT (fn () => i),p1,p2)) +fun DEF (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 26,( +ParserData.MlyValue.DEF (fn () => i),p1,p2)) +fun DERIVE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 27,( +ParserData.MlyValue.DERIVE (fn () => i),p1,p2)) +fun ELSE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 28,( +ParserData.MlyValue.ELSE (fn () => i),p1,p2)) +fun ENDIF (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 29,( +ParserData.MlyValue.ENDIF (fn () => i),p1,p2)) +fun ENDPACKAGE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 30,( +ParserData.MlyValue.ENDPACKAGE (fn () => i),p1,p2)) +fun FALSE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 31,( +ParserData.MlyValue.FALSE (fn () => i),p1,p2)) +fun FORALL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 32,( +ParserData.MlyValue.FORALL (fn () => i),p1,p2)) +fun TRUE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 33,( +ParserData.MlyValue.TRUE (fn () => i),p1,p2)) +fun IF (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 34,( +ParserData.MlyValue.IF (fn () => i),p1,p2)) +fun IN (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 35,( +ParserData.MlyValue.IN (fn () => i),p1,p2)) +fun INIT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 36,( +ParserData.MlyValue.INIT (fn () => i),p1,p2)) +fun INV (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 37,( +ParserData.MlyValue.INV (fn () => i),p1,p2)) +fun LET (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 38,( +ParserData.MlyValue.LET (fn () => i),p1,p2)) +fun PACKAGE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 39,( +ParserData.MlyValue.PACKAGE (fn () => i),p1,p2)) +fun PRE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 40,( +ParserData.MlyValue.PRE (fn () => i),p1,p2)) +fun POST (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 41,( +ParserData.MlyValue.POST (fn () => i),p1,p2)) +fun THEN (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 42,( +ParserData.MlyValue.THEN (fn () => i),p1,p2)) +fun PAREN_OPEN (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 43,( +ParserData.MlyValue.PAREN_OPEN (fn () => i),p1,p2)) +fun PAREN_CLOSE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 44,( +ParserData.MlyValue.PAREN_CLOSE (fn () => i),p1,p2)) +fun BRACE_OPEN (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 45,( +ParserData.MlyValue.BRACE_OPEN (fn () => i),p1,p2)) +fun BRACE_CLOSE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 46,( +ParserData.MlyValue.BRACE_CLOSE (fn () => i),p1,p2)) +fun VERTICAL_BAR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 47,( +ParserData.MlyValue.VERTICAL_BAR (fn () => i),p1,p2)) +fun GUARD (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 48,( +ParserData.MlyValue.GUARD (fn () => i),p1,p2)) +fun ITERATE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 49,( +ParserData.MlyValue.ITERATE (fn () => i),p1,p2)) +fun SELECT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 50,( +ParserData.MlyValue.SELECT (fn () => i),p1,p2)) +fun REJECT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 51,( +ParserData.MlyValue.REJECT (fn () => i),p1,p2)) +fun COLLECT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 52,( +ParserData.MlyValue.COLLECT (fn () => i),p1,p2)) +fun ANY (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 53,( +ParserData.MlyValue.ANY (fn () => i),p1,p2)) +fun EXISTS (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 54,( +ParserData.MlyValue.EXISTS (fn () => i),p1,p2)) +fun ONE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 55,( +ParserData.MlyValue.ONE (fn () => i),p1,p2)) +fun ISUNIQUE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 56,( +ParserData.MlyValue.ISUNIQUE (fn () => i),p1,p2)) +fun OCLISTYPEOF (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 57,( +ParserData.MlyValue.OCLISTYPEOF (fn () => i),p1,p2)) +fun OCLISKINDOF (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 58,( +ParserData.MlyValue.OCLISKINDOF (fn () => i),p1,p2)) +fun OCLASTYPE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 59,( +ParserData.MlyValue.OCLASTYPE (fn () => i),p1,p2)) +fun MINUS (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 60,( +ParserData.MlyValue.MINUS (fn () => i),p1,p2)) +fun STAR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 61,( +ParserData.MlyValue.STAR (fn () => i),p1,p2)) +fun SLASH (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 62,( +ParserData.MlyValue.SLASH (fn () => i),p1,p2)) +fun PLUS (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 63,( +ParserData.MlyValue.PLUS (fn () => i),p1,p2)) +fun REL_NOTEQUAL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 64,( +ParserData.MlyValue.REL_NOTEQUAL (fn () => i),p1,p2)) +fun REL_GT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 65,( +ParserData.MlyValue.REL_GT (fn () => i),p1,p2)) +fun REL_LT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 66,( +ParserData.MlyValue.REL_LT (fn () => i),p1,p2)) +fun REL_GTE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 67,( +ParserData.MlyValue.REL_GTE (fn () => i),p1,p2)) +fun REL_LTE (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 68,( +ParserData.MlyValue.REL_LTE (fn () => i),p1,p2)) +fun LOG_AND (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 69,( +ParserData.MlyValue.LOG_AND (fn () => i),p1,p2)) +fun LOG_OR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 70,( +ParserData.MlyValue.LOG_OR (fn () => i),p1,p2)) +fun LOG_XOR (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 71,( +ParserData.MlyValue.LOG_XOR (fn () => i),p1,p2)) +fun LOG_IMPL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 72,( +ParserData.MlyValue.LOG_IMPL (fn () => i),p1,p2)) +fun NOT (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 73,( +ParserData.MlyValue.NOT (fn () => i),p1,p2)) +fun INTEGER_LITERAL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 74,( +ParserData.MlyValue.INTEGER_LITERAL (fn () => i),p1,p2)) +fun REAL_LITERAL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 75,( +ParserData.MlyValue.REAL_LITERAL (fn () => i),p1,p2)) +fun STRING_LITERAL (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 76,( +ParserData.MlyValue.STRING_LITERAL (fn () => i),p1,p2)) +fun SIMPLE_NAME (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 77,( +ParserData.MlyValue.SIMPLE_NAME (fn () => i),p1,p2)) +end +end diff --git a/src/ocl_parser/ocl.lex.sml b/src/ocl_parser/ocl.lex.sml new file mode 100644 index 0000000..3c4c9d4 --- /dev/null +++ b/src/ocl_parser/ocl.lex.sml @@ -0,0 +1,3912 @@ +functor OclParserLexFun(structure Tokens: OclParser_TOKENS)= + struct + structure UserDeclarations = + struct +open Rep_OclTerm +open Rep_OclType +open Context + +structure Tokens = Tokens + +type pos = int * int * int +type svalue = Tokens.svalue + +type ('a,'b) token = ('a,'b) Tokens.token +type lexresult= (svalue,pos) token + + +val pos = ref (0,0,0) + + fun eof () = Tokens.EOF((!pos,!pos)) + fun error (e,p : (int * int * int),_) = TextIO.output (TextIO.stdOut, + String.concat[ + "line ", (Int.toString (#1 p)), "/", + (Int.toString (#2 p - #3 p)),": ", e, "\n" + ]) + + fun inputPos yypos = ((#1 (!pos), yypos - (#3(!pos)), (#3 (!pos))), + (#1 (!pos), yypos - (#3(!pos)), (#3 (!pos)))) + fun inputPos_half yypos = (#1 (!pos), yypos - (#3(!pos)), (#3 (!pos))) + + + +end (* end of user routines *) +exception LexError (* raised if illegal leaf action tried *) +structure Internal = + struct + +datatype yyfinstate = N of int +type statedata = {fin : yyfinstate list, trans: int Vector.vector} +(* transition & final state table *) +val tab = let +fun decode s k = + let val k' = k + k + val hi = Char.ord(String.sub(s, k')) + val lo = Char.ord(String.sub(s, k' + 1)) + in hi * 256 + lo end +val s = [ + (0,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (1,129, +"\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\ +\\000\003\000\253\000\255\000\003\000\003\000\003\000\003\000\003\ +\\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\ +\\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\ +\\000\253\000\003\000\003\000\252\000\003\000\003\000\003\000\248\ +\\000\247\000\246\000\245\000\244\000\243\000\239\000\237\000\227\ +\\000\222\000\222\000\222\000\222\000\222\000\222\000\222\000\222\ +\\000\222\000\222\000\220\000\219\000\216\000\215\000\213\000\212\ +\\000\208\000\007\000\205\000\195\000\007\000\007\000\007\000\007\ +\\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\185\ +\\000\007\000\007\000\007\000\176\000\167\000\007\000\007\000\007\ +\\000\007\000\007\000\007\000\166\000\003\000\165\000\163\000\007\ +\\000\003\000\159\000\155\000\143\000\136\000\116\000\106\000\101\ +\\000\007\000\076\000\007\000\007\000\073\000\007\000\070\000\044\ +\\000\032\000\007\000\026\000\020\000\013\000\007\000\007\000\007\ +\\000\010\000\007\000\007\000\006\000\005\000\004\000\003\000\003\ +\\000\003" +), + (7,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (9,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\009\000\000\000\000\000\000\000\000\000\009\ +\\000\000\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\009\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (10,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\011\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (11,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\012\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (13,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\017\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\014\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (14,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\015\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (15,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\016\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (17,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\018\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (18,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\019\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (20,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\021\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (21,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\022\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (22,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\023\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (23,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\024\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (24,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\025\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (26,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\027\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (27,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\028\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (28,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\029\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (29,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\030\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (30,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\031\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (32,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\038\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\035\ +\\000\008\000\008\000\033\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (33,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\034\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (35,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\036\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (36,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\037\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (38,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\039\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (39,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\040\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (40,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\041\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (41,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\042\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (42,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\043\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (44,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\048\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\046\000\008\ +\\000\008\000\008\000\045\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (46,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\047\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (48,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\049\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (49,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\064\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\050\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (50,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\051\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (51,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\058\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\052\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (52,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\053\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (53,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\054\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (54,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\055\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (55,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\056\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (56,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\057\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (58,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\059\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (59,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\060\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (60,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\061\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (61,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\062\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (62,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\063\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (64,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\065\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (65,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\066\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (66,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\067\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (67,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\068\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (68,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\069\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (70,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\071\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (71,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\072\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (73,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\074\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (74,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\075\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (76,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\100\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\094\000\090\000\008\ +\\000\008\000\008\000\008\000\083\000\077\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (77,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\078\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (78,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\079\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (79,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\080\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (80,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\081\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (81,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\082\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (83,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\084\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (84,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\085\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (85,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\086\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (86,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\087\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (87,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\088\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (88,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\089\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (90,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\092\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\091\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (92,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\093\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (94,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\095\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (95,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\096\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (96,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\097\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (97,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\098\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (98,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\099\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (101,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\102\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (102,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\103\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (103,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\104\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (104,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\105\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (106,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\112\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\107\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (107,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\108\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (108,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\109\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (109,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\110\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (110,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\111\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (112,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\113\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (113,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\114\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (114,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\115\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (116,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\133\000\008\000\122\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\117\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (117,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\118\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (118,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\119\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (119,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\120\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (120,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\121\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (122,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\123\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (123,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\131\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\124\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (124,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\125\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (125,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\126\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (126,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\127\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (127,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\128\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (128,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\129\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (129,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\130\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (131,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\132\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (133,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\134\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (134,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\135\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (136,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\137\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (137,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\142\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\138\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (138,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\139\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (139,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\140\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (140,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\141\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (143,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\144\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (144,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\150\000\008\000\145\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (145,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\146\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (146,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\147\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (147,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\148\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (148,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\149\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (150,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\151\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (151,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\152\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (152,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\153\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (153,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\154\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (155,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\156\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (156,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\157\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (157,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\158\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (159,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\160\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (160,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\162\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\161\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (163,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\164\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (167,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\168\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (168,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\169\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (169,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\170\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (170,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\171\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (171,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\172\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (172,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\173\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (173,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\174\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (174,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\175\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (176,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\177\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (177,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\179\000\008\000\008\000\178\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (179,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\180\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (180,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\181\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (181,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\182\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (182,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\183\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (183,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\184\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (185,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\186\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (186,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\187\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (187,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\188\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (188,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\189\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (189,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\190\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (190,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\191\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (191,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\192\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (192,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\193\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (193,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\194\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (195,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\196\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (196,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\197\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (197,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\198\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (198,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\199\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (199,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\200\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (200,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\201\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (201,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\202\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (202,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\203\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (203,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\204\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (205,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\206\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (206,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\009\000\009\000\009\000\009\000\009\000\009\000\009\000\009\ +\\000\009\000\009\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\008\ +\\000\000\000\008\000\008\000\008\000\008\000\008\000\008\000\207\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\ +\\000\008\000\008\000\008\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (208,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (209,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\210\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (210,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\211\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (213,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\214\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (216,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\218\000\217\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (220,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\221\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (222,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\000\ +\\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\ +\\000\223\000\223\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (224,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\225\000\225\000\225\000\225\000\225\000\225\000\225\000\225\ +\\000\225\000\225\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (225,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\225\000\225\000\225\000\225\000\225\000\225\000\225\000\225\ +\\000\225\000\225\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\226\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\226\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (226,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\226\000\226\000\226\000\226\000\226\000\226\000\226\000\226\ +\\000\226\000\226\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (227,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\228\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (228,129, +"\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\230\000\229\000\229\000\229\000\229\000\236\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229" +), + (229,129, +"\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\230\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229" +), + (230,129, +"\000\231\000\231\000\231\000\231\000\231\000\231\000\231\000\231\ +\\000\231\000\231\000\231\000\231\000\231\000\231\000\231\000\231\ +\\000\231\000\231\000\231\000\231\000\231\000\231\000\231\000\231\ +\\000\231\000\231\000\231\000\231\000\231\000\231\000\231\000\231\ +\\000\231\000\231\000\231\000\231\000\231\000\231\000\231\000\231\ +\\000\231\000\231\000\234\000\231\000\231\000\231\000\231\000\233\ +\\000\231\000\231\000\231\000\231\000\231\000\231\000\231\000\231\ +\\000\231\000\231\000\231\000\231\000\231\000\231\000\231\000\231\ +\\000\231\000\231\000\231\000\231\000\231\000\231\000\231\000\231\ +\\000\231\000\231\000\231\000\231\000\231\000\231\000\231\000\231\ +\\000\231\000\231\000\231\000\231\000\231\000\231\000\231\000\231\ +\\000\231\000\231\000\231\000\231\000\231\000\231\000\231\000\231\ +\\000\231\000\231\000\231\000\231\000\231\000\231\000\231\000\231\ +\\000\231\000\231\000\231\000\231\000\231\000\231\000\231\000\231\ +\\000\231\000\231\000\231\000\231\000\231\000\231\000\231\000\231\ +\\000\231\000\231\000\231\000\231\000\231\000\231\000\231\000\231\ +\\000\231" +), + (231,129, +"\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\230\000\229\000\229\000\229\000\229\000\232\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229" +), + (232,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\231\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (234,129, +"\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\230\000\229\000\229\000\229\000\229\000\235\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\ +\\000\229" +), + (237,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\238\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (239,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\241\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (241,129, +"\000\241\000\241\000\241\000\241\000\241\000\241\000\241\000\241\ +\\000\241\000\241\000\242\000\241\000\241\000\241\000\241\000\241\ +\\000\241\000\241\000\241\000\241\000\241\000\241\000\241\000\241\ +\\000\241\000\241\000\241\000\241\000\241\000\241\000\241\000\241\ +\\000\241\000\241\000\241\000\241\000\241\000\241\000\241\000\241\ +\\000\241\000\241\000\241\000\241\000\241\000\241\000\241\000\241\ +\\000\241\000\241\000\241\000\241\000\241\000\241\000\241\000\241\ +\\000\241\000\241\000\241\000\241\000\241\000\241\000\241\000\241\ +\\000\241\000\241\000\241\000\241\000\241\000\241\000\241\000\241\ +\\000\241\000\241\000\241\000\241\000\241\000\241\000\241\000\241\ +\\000\241\000\241\000\241\000\241\000\241\000\241\000\241\000\241\ +\\000\241\000\241\000\241\000\241\000\241\000\241\000\241\000\241\ +\\000\241\000\241\000\241\000\241\000\241\000\241\000\241\000\241\ +\\000\241\000\241\000\241\000\241\000\241\000\241\000\241\000\241\ +\\000\241\000\241\000\241\000\241\000\241\000\241\000\241\000\241\ +\\000\241\000\241\000\241\000\241\000\241\000\241\000\241\000\241\ +\\000\241" +), + (248,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\251\ +\\000\000\000\000\000\000\000\000\000\000\000\250\000\250\000\250\ +\\000\249\000\249\000\249\000\249\000\249\000\249\000\249\000\249\ +\\000\249\000\249\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\249\000\249\000\249\000\249\000\249\000\249\000\249\ +\\000\249\000\249\000\249\000\249\000\249\000\249\000\249\000\249\ +\\000\249\000\249\000\249\000\249\000\249\000\249\000\249\000\249\ +\\000\249\000\249\000\249\000\000\000\000\000\000\000\000\000\249\ +\\000\000\000\249\000\249\000\249\000\249\000\249\000\249\000\249\ +\\000\249\000\249\000\249\000\249\000\249\000\249\000\249\000\249\ +\\000\249\000\249\000\249\000\249\000\249\000\249\000\249\000\249\ +\\000\249\000\249\000\249\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (250,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\250\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\250\000\000\000\000\000\000\000\000\000\000\000\000\000\251\ +\\000\000\000\000\000\000\000\000\000\000\000\250\000\250\000\250\ +\\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\ +\\000\250\000\250\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\250\000\250\000\250\000\250\000\250\000\250\000\250\ +\\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\ +\\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\ +\\000\250\000\250\000\250\000\000\000\000\000\000\000\000\000\250\ +\\000\000\000\250\000\250\000\250\000\250\000\250\000\250\000\250\ +\\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\ +\\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\ +\\000\250\000\250\000\250\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), + (253,129, +"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\254\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ +\\000\000" +), +(0, 0, "")] +fun f(n, i, x) = (n, Vector.tabulate(i, decode x)) +val s = map f (rev (tl (rev s))) +exception LexHackingError +fun look ((j,x)::r, i: int) = if i = j then x else look(r, i) + | look ([], i) = raise LexHackingError +fun g {fin=x, trans=i} = {fin=x, trans=look(s,i)} +in Vector.fromList(map g +[{fin = [], trans = 0}, +{fin = [], trans = 1}, +{fin = [], trans = 1}, +{fin = [(N 399)], trans = 0}, +{fin = [(N 219),(N 399)], trans = 0}, +{fin = [(N 221),(N 399)], trans = 0}, +{fin = [(N 217),(N 399)], trans = 0}, +{fin = [(N 397),(N 399)], trans = 7}, +{fin = [(N 397)], trans = 7}, +{fin = [(N 397)], trans = 9}, +{fin = [(N 397),(N 399)], trans = 10}, +{fin = [(N 397)], trans = 11}, +{fin = [(N 354),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 13}, +{fin = [(N 397)], trans = 14}, +{fin = [(N 397)], trans = 15}, +{fin = [(N 211),(N 397)], trans = 7}, +{fin = [(N 397)], trans = 17}, +{fin = [(N 397)], trans = 18}, +{fin = [(N 206),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 20}, +{fin = [(N 397)], trans = 21}, +{fin = [(N 397)], trans = 22}, +{fin = [(N 397)], trans = 23}, +{fin = [(N 397)], trans = 24}, +{fin = [(N 242),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 26}, +{fin = [(N 397)], trans = 27}, +{fin = [(N 397)], trans = 28}, +{fin = [(N 397)], trans = 29}, +{fin = [(N 397)], trans = 30}, +{fin = [(N 249),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 32}, +{fin = [(N 397)], trans = 33}, +{fin = [(N 196),(N 397)], trans = 7}, +{fin = [(N 397)], trans = 35}, +{fin = [(N 397)], trans = 36}, +{fin = [(N 201),(N 397)], trans = 7}, +{fin = [(N 397)], trans = 38}, +{fin = [(N 397)], trans = 39}, +{fin = [(N 397)], trans = 40}, +{fin = [(N 397)], trans = 41}, +{fin = [(N 397)], trans = 42}, +{fin = [(N 192),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 44}, +{fin = [(N 350),(N 397)], trans = 7}, +{fin = [(N 397)], trans = 46}, +{fin = [(N 279),(N 397)], trans = 7}, +{fin = [(N 397)], trans = 48}, +{fin = [(N 397)], trans = 49}, +{fin = [(N 397)], trans = 50}, +{fin = [(N 397)], trans = 51}, +{fin = [(N 397)], trans = 52}, +{fin = [(N 397)], trans = 53}, +{fin = [(N 397)], trans = 54}, +{fin = [(N 397)], trans = 55}, +{fin = [(N 397)], trans = 56}, +{fin = [(N 300),(N 397)], trans = 7}, +{fin = [(N 397)], trans = 58}, +{fin = [(N 397)], trans = 59}, +{fin = [(N 397)], trans = 60}, +{fin = [(N 397)], trans = 61}, +{fin = [(N 397)], trans = 62}, +{fin = [(N 312),(N 397)], trans = 7}, +{fin = [(N 397)], trans = 64}, +{fin = [(N 397)], trans = 65}, +{fin = [(N 397)], trans = 66}, +{fin = [(N 397)], trans = 67}, +{fin = [(N 397)], trans = 68}, +{fin = [(N 322),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 70}, +{fin = [(N 397)], trans = 71}, +{fin = [(N 366),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 73}, +{fin = [(N 397)], trans = 74}, +{fin = [(N 184),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 76}, +{fin = [(N 397)], trans = 77}, +{fin = [(N 397)], trans = 78}, +{fin = [(N 397)], trans = 79}, +{fin = [(N 397)], trans = 80}, +{fin = [(N 397)], trans = 81}, +{fin = [(N 235),(N 397)], trans = 7}, +{fin = [(N 397)], trans = 83}, +{fin = [(N 397)], trans = 84}, +{fin = [(N 397)], trans = 85}, +{fin = [(N 397)], trans = 86}, +{fin = [(N 397)], trans = 87}, +{fin = [(N 397)], trans = 88}, +{fin = [(N 288),(N 397)], trans = 7}, +{fin = [(N 171),(N 397)], trans = 90}, +{fin = [(N 180),(N 397)], trans = 7}, +{fin = [(N 397)], trans = 92}, +{fin = [(N 176),(N 397)], trans = 7}, +{fin = [(N 397)], trans = 94}, +{fin = [(N 397)], trans = 95}, +{fin = [(N 397)], trans = 96}, +{fin = [(N 397)], trans = 97}, +{fin = [(N 397)], trans = 98}, +{fin = [(N 362),(N 397)], trans = 7}, +{fin = [(N 168),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 101}, +{fin = [(N 397)], trans = 102}, +{fin = [(N 397)], trans = 103}, +{fin = [(N 397)], trans = 104}, +{fin = [(N 227),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 106}, +{fin = [(N 397)], trans = 107}, +{fin = [(N 397)], trans = 108}, +{fin = [(N 397)], trans = 109}, +{fin = [(N 397)], trans = 110}, +{fin = [(N 264),(N 397)], trans = 7}, +{fin = [(N 397)], trans = 112}, +{fin = [(N 397)], trans = 113}, +{fin = [(N 397)], trans = 114}, +{fin = [(N 165),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 116}, +{fin = [(N 397)], trans = 117}, +{fin = [(N 397)], trans = 118}, +{fin = [(N 397)], trans = 119}, +{fin = [(N 397)], trans = 120}, +{fin = [(N 275),(N 397)], trans = 7}, +{fin = [(N 397)], trans = 122}, +{fin = [(N 397)], trans = 123}, +{fin = [(N 397)], trans = 124}, +{fin = [(N 397)], trans = 125}, +{fin = [(N 397)], trans = 126}, +{fin = [(N 397)], trans = 127}, +{fin = [(N 397)], trans = 128}, +{fin = [(N 397)], trans = 129}, +{fin = [(N 159),(N 397)], trans = 7}, +{fin = [(N 397)], trans = 131}, +{fin = [(N 148),(N 397)], trans = 7}, +{fin = [(N 397)], trans = 133}, +{fin = [(N 397)], trans = 134}, +{fin = [(N 142),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 136}, +{fin = [(N 397)], trans = 137}, +{fin = [(N 397)], trans = 138}, +{fin = [(N 397)], trans = 139}, +{fin = [(N 397)], trans = 140}, +{fin = [(N 137),(N 397)], trans = 7}, +{fin = [(N 130),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 143}, +{fin = [(N 397)], trans = 144}, +{fin = [(N 397)], trans = 145}, +{fin = [(N 397)], trans = 146}, +{fin = [(N 397)], trans = 147}, +{fin = [(N 397)], trans = 148}, +{fin = [(N 126),(N 397)], trans = 7}, +{fin = [(N 397)], trans = 150}, +{fin = [(N 397)], trans = 151}, +{fin = [(N 397)], trans = 152}, +{fin = [(N 397)], trans = 153}, +{fin = [(N 257),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 155}, +{fin = [(N 397)], trans = 156}, +{fin = [(N 397)], trans = 157}, +{fin = [(N 118),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 159}, +{fin = [(N 397)], trans = 160}, +{fin = [(N 268),(N 397)], trans = 7}, +{fin = [(N 347),(N 397)], trans = 7}, +{fin = [(N 110),(N 399)], trans = 163}, +{fin = [(N 113)], trans = 0}, +{fin = [(N 108),(N 399)], trans = 0}, +{fin = [(N 106),(N 399)], trans = 0}, +{fin = [(N 397),(N 399)], trans = 167}, +{fin = [(N 397)], trans = 168}, +{fin = [(N 397)], trans = 169}, +{fin = [(N 397)], trans = 170}, +{fin = [(N 94),(N 397)], trans = 171}, +{fin = [(N 397)], trans = 172}, +{fin = [(N 397)], trans = 173}, +{fin = [(N 397)], trans = 174}, +{fin = [(N 104),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 176}, +{fin = [(N 397)], trans = 177}, +{fin = [(N 88),(N 397)], trans = 7}, +{fin = [(N 397)], trans = 179}, +{fin = [(N 397)], trans = 180}, +{fin = [(N 397)], trans = 181}, +{fin = [(N 397)], trans = 182}, +{fin = [(N 397)], trans = 183}, +{fin = [(N 84),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 185}, +{fin = [(N 397)], trans = 186}, +{fin = [(N 397)], trans = 187}, +{fin = [(N 397)], trans = 188}, +{fin = [(N 397)], trans = 189}, +{fin = [(N 397)], trans = 190}, +{fin = [(N 397)], trans = 191}, +{fin = [(N 397)], trans = 192}, +{fin = [(N 397)], trans = 193}, +{fin = [(N 75),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 195}, +{fin = [(N 397)], trans = 196}, +{fin = [(N 397)], trans = 197}, +{fin = [(N 397)], trans = 198}, +{fin = [(N 397)], trans = 199}, +{fin = [(N 397)], trans = 200}, +{fin = [(N 397)], trans = 201}, +{fin = [(N 397)], trans = 202}, +{fin = [(N 397)], trans = 203}, +{fin = [(N 64),(N 397)], trans = 7}, +{fin = [(N 397),(N 399)], trans = 205}, +{fin = [(N 397)], trans = 206}, +{fin = [(N 53),(N 397)], trans = 7}, +{fin = [(N 399)], trans = 208}, +{fin = [], trans = 209}, +{fin = [], trans = 210}, +{fin = [(N 49)], trans = 0}, +{fin = [(N 42),(N 399)], trans = 0}, +{fin = [(N 332),(N 399)], trans = 213}, +{fin = [(N 337)], trans = 0}, +{fin = [(N 40),(N 399)], trans = 0}, +{fin = [(N 334),(N 399)], trans = 216}, +{fin = [(N 343)], trans = 0}, +{fin = [(N 340)], trans = 0}, +{fin = [(N 38),(N 399)], trans = 0}, +{fin = [(N 33),(N 399)], trans = 220}, +{fin = [(N 36)], trans = 0}, +{fin = [(N 378),(N 399)], trans = 222}, +{fin = [(N 378)], trans = 222}, +{fin = [], trans = 224}, +{fin = [(N 375)], trans = 225}, +{fin = [(N 375)], trans = 226}, +{fin = [(N 328),(N 399)], trans = 227}, +{fin = [], trans = 228}, +{fin = [], trans = 229}, +{fin = [], trans = 230}, +{fin = [], trans = 231}, +{fin = [], trans = 232}, +{fin = [(N 21)], trans = 0}, +{fin = [], trans = 234}, +{fin = [(N 21)], trans = 232}, +{fin = [], trans = 228}, +{fin = [(N 28),(N 399)], trans = 237}, +{fin = [(N 31)], trans = 0}, +{fin = [(N 324),(N 399)], trans = 239}, +{fin = [(N 26)], trans = 0}, +{fin = [], trans = 241}, +{fin = [(N 9)], trans = 0}, +{fin = [(N 23),(N 399)], trans = 0}, +{fin = [(N 330),(N 399)], trans = 0}, +{fin = [(N 326),(N 399)], trans = 0}, +{fin = [(N 215),(N 399)], trans = 0}, +{fin = [(N 213),(N 399)], trans = 0}, +{fin = [(N 399)], trans = 248}, +{fin = [], trans = 248}, +{fin = [], trans = 250}, +{fin = [(N 391)], trans = 0}, +{fin = [(N 44),(N 399)], trans = 0}, +{fin = [(N 4),(N 399)], trans = 253}, +{fin = [(N 4)], trans = 253}, +{fin = [(N 1)], trans = 0}]) +end +structure StartStates = + struct + datatype yystartstate = STARTSTATE of int + +(* start state definitions *) + +val INITIAL = STARTSTATE 1; + +end +type result = UserDeclarations.lexresult + exception LexerError (* raised if illegal leaf action tried *) +end + +fun makeLexer yyinput = +let val yygone0=1 + val yyb = ref "\n" (* buffer *) + val yybl = ref 1 (*buffer length *) + val yybufpos = ref 1 (* location of next character to use *) + val yygone = ref yygone0 (* position in file of beginning of buffer *) + val yydone = ref false (* eof found yet? *) + val yybegin = ref 1 (*Current 'start state' for lexer *) + + val YYBEGIN = fn (Internal.StartStates.STARTSTATE x) => + yybegin := x + +fun lex () : Internal.result = +let fun continue() = lex() in + let fun scan (s,AcceptingLeaves : Internal.yyfinstate list list,l,i0) = + let fun action (i,nil) = raise LexError + | action (i,nil::l) = action (i-1,l) + | action (i,(node::acts)::l) = + case node of + Internal.N yyk => + (let fun yymktext() = substring(!yyb,i0,i-i0) + val yypos = i0+ !yygone + open UserDeclarations Internal.StartStates + in (yybufpos := i; case yyk of + + (* Application actions *) + + 1 => (pos := ((#1 (!pos)) + 1, yypos - (#3(!pos)),yypos ); lex()) +| 104 => let val yytext=yymktext() in Tokens.TUPLE_TYPE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 106 => let val yytext=yymktext() in Tokens.BRACKET_OPEN(yytext,inputPos_half yypos,inputPos_half yypos) end +| 108 => let val yytext=yymktext() in Tokens.BRACKET_CLOSE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 110 => let val yytext=yymktext() in Tokens.CARAT(yytext,inputPos_half yypos,inputPos_half yypos) end +| 113 => let val yytext=yymktext() in Tokens.DBL_CARAT(yytext,inputPos_half yypos,inputPos_half yypos) end +| 118 => (Tokens.BODY(body,inputPos_half yypos,inputPos_half yypos)) +| 126 => let val yytext=yymktext() in Tokens.CONTEXT(yytext,inputPos_half yypos,inputPos_half yypos) end +| 130 => let val yytext=yymktext() in Tokens.DEF(yytext,inputPos_half yypos,inputPos_half yypos) end +| 137 => (Tokens.DERIVE(derive,inputPos_half yypos,inputPos_half yypos)) +| 142 => let val yytext=yymktext() in Tokens.ELSE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 148 => let val yytext=yymktext() in Tokens.ENDIF(yytext,inputPos_half yypos,inputPos_half yypos) end +| 159 => let val yytext=yymktext() in Tokens.ENDPACKAGE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 165 => let val yytext=yymktext() in Tokens.FALSE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 168 => let val yytext=yymktext() in Tokens.IF(yytext,inputPos_half yypos,inputPos_half yypos) end +| 171 => let val yytext=yymktext() in Tokens.IN(yytext,inputPos_half yypos,inputPos_half yypos) end +| 176 => (Tokens.INIT(init,inputPos_half yypos,inputPos_half yypos)) +| 180 => let val yytext=yymktext() in Tokens.INV(yytext,inputPos_half yypos,inputPos_half yypos) end +| 184 => let val yytext=yymktext() in Tokens.LET(yytext,inputPos_half yypos,inputPos_half yypos) end +| 192 => let val yytext=yymktext() in Tokens.PACKAGE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 196 => (Tokens.PRE(pre,inputPos_half yypos,inputPos_half yypos)) +| 201 => (Tokens.POST(post,inputPos_half yypos,inputPos_half yypos)) +| 206 => let val yytext=yymktext() in Tokens.THEN(yytext,inputPos_half yypos,inputPos_half yypos) end +| 21 => (lex()) +| 211 => let val yytext=yymktext() in Tokens.TRUE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 213 => let val yytext=yymktext() in Tokens.PAREN_OPEN(yytext,inputPos_half yypos,inputPos_half yypos) end +| 215 => let val yytext=yymktext() in Tokens.PAREN_CLOSE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 217 => let val yytext=yymktext() in Tokens.BRACE_OPEN(yytext,inputPos_half yypos,inputPos_half yypos) end +| 219 => let val yytext=yymktext() in Tokens.BRACE_CLOSE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 221 => let val yytext=yymktext() in Tokens.VERTICAL_BAR(yytext,inputPos_half yypos,inputPos_half yypos) end +| 227 => let val yytext=yymktext() in Tokens.GUARD(yytext,inputPos_half yypos,inputPos_half yypos) end +| 23 => let val yytext=yymktext() in Tokens.COMMA(yytext,inputPos_half yypos,inputPos_half yypos) end +| 235 => let val yytext=yymktext() in Tokens.ITERATE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 242 => let val yytext=yymktext() in Tokens.SELECT(yytext,inputPos_half yypos,inputPos_half yypos) end +| 249 => let val yytext=yymktext() in Tokens.REJECT(yytext,inputPos_half yypos,inputPos_half yypos) end +| 257 => let val yytext=yymktext() in Tokens.COLLECT(yytext,inputPos_half yypos,inputPos_half yypos) end +| 26 => let val yytext=yymktext() in Tokens.ARROW_RIGHT(yytext,inputPos_half yypos,inputPos_half yypos) end +| 264 => let val yytext=yymktext() in Tokens.FORALL(yytext,inputPos_half yypos,inputPos_half yypos) end +| 268 => let val yytext=yymktext() in Tokens.ANY(yytext,inputPos_half yypos,inputPos_half yypos) end +| 275 => let val yytext=yymktext() in Tokens.EXISTS(yytext,inputPos_half yypos,inputPos_half yypos) end +| 279 => let val yytext=yymktext() in Tokens.ONE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 28 => let val yytext=yymktext() in Tokens.DOT(yytext,inputPos_half yypos,inputPos_half yypos) end +| 288 => let val yytext=yymktext() in Tokens.ISUNIQUE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 300 => let val yytext=yymktext() in Tokens.OCLISTYPEOF(yytext,inputPos_half yypos,inputPos_half yypos) end +| 31 => let val yytext=yymktext() in Tokens.DBL_DOT(yytext,inputPos_half yypos,inputPos_half yypos) end +| 312 => let val yytext=yymktext() in Tokens.OCLISKINDOF(yytext,inputPos_half yypos,inputPos_half yypos) end +| 322 => let val yytext=yymktext() in Tokens.OCLASTYPE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 324 => let val yytext=yymktext() in Tokens.MINUS(yytext,inputPos_half yypos,inputPos_half yypos) end +| 326 => let val yytext=yymktext() in Tokens.STAR(yytext,inputPos_half yypos,inputPos_half yypos) end +| 328 => let val yytext=yymktext() in Tokens.SLASH(yytext,inputPos_half yypos,inputPos_half yypos) end +| 33 => let val yytext=yymktext() in Tokens.COLON(yytext,inputPos_half yypos,inputPos_half yypos) end +| 330 => let val yytext=yymktext() in Tokens.PLUS(yytext,inputPos_half yypos,inputPos_half yypos) end +| 332 => let val yytext=yymktext() in Tokens.REL_GT(yytext,inputPos_half yypos,inputPos_half yypos) end +| 334 => let val yytext=yymktext() in Tokens.REL_LT(yytext,inputPos_half yypos,inputPos_half yypos) end +| 337 => let val yytext=yymktext() in Tokens.REL_GTE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 340 => let val yytext=yymktext() in Tokens.REL_LTE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 343 => let val yytext=yymktext() in Tokens.REL_NOTEQUAL(yytext,inputPos_half yypos,inputPos_half yypos) end +| 347 => let val yytext=yymktext() in Tokens.LOG_AND(yytext,inputPos_half yypos,inputPos_half yypos) end +| 350 => let val yytext=yymktext() in Tokens.LOG_OR(yytext,inputPos_half yypos,inputPos_half yypos) end +| 354 => let val yytext=yymktext() in Tokens.LOG_XOR(yytext,inputPos_half yypos,inputPos_half yypos) end +| 36 => let val yytext=yymktext() in Tokens.DBL_COLON(yytext,inputPos_half yypos,inputPos_half yypos) end +| 362 => let val yytext=yymktext() in Tokens.LOG_IMPL(yytext,inputPos_half yypos,inputPos_half yypos) end +| 366 => let val yytext=yymktext() in Tokens.NOT(yytext,inputPos_half yypos,inputPos_half yypos) end +| 375 => let val yytext=yymktext() in Tokens.REAL_LITERAL(yytext,inputPos_half yypos,inputPos_half yypos) end +| 378 => let val yytext=yymktext() in Tokens.INTEGER_LITERAL(yytext,inputPos_half yypos,inputPos_half yypos) end +| 38 => let val yytext=yymktext() in Tokens.SEMI_COLON(yytext,inputPos_half yypos,inputPos_half yypos) end +| 391 => let val yytext=yymktext() in Tokens.STRING_LITERAL(yytext,inputPos_half yypos,inputPos_half yypos) end +| 397 => let val yytext=yymktext() in Tokens.SIMPLE_NAME(yytext,inputPos_half yypos,inputPos_half yypos) end +| 399 => let val yytext=yymktext() in error ("ignoring bad character "^yytext, + ((#1 (!pos), yypos - (#3(!pos)), (#3 (!pos)))), + ((#1 (!pos), yypos - (#3(!pos)), (#3 (!pos))))); + lex() end +| 4 => (pos := (#1 (!pos), yypos - (#3(!pos)), (#3 (!pos))); lex()) +| 40 => let val yytext=yymktext() in Tokens.EQUALS(yytext,inputPos_half yypos,inputPos_half yypos) end +| 42 => let val yytext=yymktext() in Tokens.QUESTION_MARK(yytext,inputPos_half yypos,inputPos_half yypos) end +| 44 => let val yytext=yymktext() in Tokens.HASH(yytext,inputPos_half yypos,inputPos_half yypos) end +| 49 => let val yytext=yymktext() in Tokens.AT_PRE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 53 => let val yytext=yymktext() in Tokens.BAG(yytext,inputPos_half yypos,inputPos_half yypos) end +| 64 => let val yytext=yymktext() in Tokens.COLLECTION(yytext,inputPos_half yypos,inputPos_half yypos) end +| 75 => let val yytext=yymktext() in Tokens.ORDERED_SET(yytext,inputPos_half yypos,inputPos_half yypos) end +| 84 => let val yytext=yymktext() in Tokens.SEQUENCE(yytext,inputPos_half yypos,inputPos_half yypos) end +| 88 => let val yytext=yymktext() in Tokens.SET(yytext,inputPos_half yypos,inputPos_half yypos) end +| 9 => (pos := ((#1 (!pos)) + 1, yypos - (#3(!pos)),yypos ); lex()) +| 94 => let val yytext=yymktext() in Tokens.TUPLE(yytext,inputPos_half yypos,inputPos_half yypos) end +| _ => raise Internal.LexerError + + ) end ) + + val {fin,trans} = Vector.sub(Internal.tab, s) + val NewAcceptingLeaves = fin::AcceptingLeaves + in if l = !yybl then + if trans = #trans(Vector.sub(Internal.tab,0)) + then action(l,NewAcceptingLeaves +) else let val newchars= if !yydone then "" else yyinput 1024 + in if (size newchars)=0 + then (yydone := true; + if (l=i0) then UserDeclarations.eof () + else action(l,NewAcceptingLeaves)) + else (if i0=l then yyb := newchars + else yyb := substring(!yyb,i0,l-i0)^newchars; + yygone := !yygone+i0; + yybl := size (!yyb); + scan (s,AcceptingLeaves,l-i0,0)) + end + else let val NewChar = Char.ord(CharVector.sub(!yyb,l)) + val NewChar = if NewChar<128 then NewChar else 128 + val NewState = Vector.sub(trans, NewChar) + in if NewState=0 then action(l,NewAcceptingLeaves) + else scan(NewState,NewAcceptingLeaves,l+1,i0) + end + end +(* + val start= if substring(!yyb,!yybufpos-1,1)="\n" +then !yybegin+1 else !yybegin +*) + in scan(!yybegin (* start *),nil,!yybufpos,!yybufpos) + end +end + in lex + end +end diff --git a/src/ocl_parser/parser.110.62.cm b/src/ocl_parser/parser.110.62.cm index cf0c709..237c91c 100644 --- a/src/ocl_parser/parser.110.62.cm +++ b/src/ocl_parser/parser.110.62.cm @@ -5,7 +5,7 @@ Group is $smlnj/smlnj-lib/smlnj-lib.cm #else #endif - ../su4sml/src/su4sml.110.62.cm + ../su4sml_core.110.62.cm #if defined (NEW_CM) $smlnj/basis/basis.cm diff --git a/src/ocl_parser/parser.cm b/src/ocl_parser/parser.cm index 14dbacd..fe6d8a4 100644 --- a/src/ocl_parser/parser.cm +++ b/src/ocl_parser/parser.cm @@ -5,7 +5,7 @@ Group is $/smlnj-lib.cm #else #endif - ../su4sml/src/su4sml.cm + ../su4sml_core.cm #if defined (NEW_CM) $/basis.cm diff --git a/src/ocl_parser/script.sml b/src/ocl_parser/script.sml deleted file mode 100644 index 5f24de3..0000000 --- a/src/ocl_parser/script.sml +++ /dev/null @@ -1,19 +0,0 @@ -(* simple script for debugging and testing *) - -(* this script requires that the environment variable - SU4SML_HOME - points to the su4sml top-level directory (i.e., `pwd`/../su4sml") -*) - - -(* display settings: printDepth = 1000 *) -Control.Print.printDepth := 5000; - -fun print_depth n = - (Control.Print.printDepth := n div 2; - Control.Print.printLength := n); - - -val model = ModelImport.import "../examples/ebank/ebank.xmi" - "../examples/ebank/ebank.manuel.ocl" []; - diff --git a/src/ocl_parser/test-suite.sml b/src/ocl_parser/test-suite.sml deleted file mode 100644 index 638f386..0000000 --- a/src/ocl_parser/test-suite.sml +++ /dev/null @@ -1,157 +0,0 @@ - - -type result = { - parse : bool, - preprocess : bool, - typecheck : bool, - update : bool, - msg : string -} - -type testcase = { - name : string, - uml : string, - ocl : string, - result : result -} - - -val initResult = { - parse = false, - preprocess = false, - typecheck = false, - update = false, - msg = "" - }:result - - -val prefix = "../examples/" - -val testcases = [ - { - name = "Company", - uml = prefix^"company/company.zargo", - ocl = prefix^"company/company.ocl", - result = initResult - }:testcase, - { - name = "ebank (Manuel)", - uml = prefix^"ebank/ebank.zargo", - ocl = prefix^"ebank/ebank.ocl", - result = initResult - }:testcase, - { - name = "encoding_example", - uml = prefix^"encoding_example/encoding_example.zargo", - ocl = prefix^"encoding_example/encoding_example.ocl", - result = initResult - }:testcase, - { - name = "isp", - uml = prefix^"isp/isp.zargo", - ocl = prefix^"isp/isp.ocl", - result = initResult - }:testcase, - { - name = "Royals and Loyals", - uml = prefix^"royals_and_loyals/royals_and_loyals.zargo", - ocl = prefix^"royals_and_loyals/royals_and_loyals.ocl", - result = initResult - }:testcase, - { - name = "simple", - uml = prefix^"simple/simple.zargo", - ocl = prefix^"simple/simple.ocl", - result = initResult - }:testcase, - { - name = "stack", - uml = prefix^"stack/stack.zargo", - ocl = prefix^"stack/stack.ocl", - result = initResult - }:testcase, - { - name = "digraph", - uml = prefix^"digraph/digraph.zargo", - ocl = prefix^"digraph/digraph.ocl", - result = initResult - }:testcase, - { - name = "vehicles", - uml = prefix^"vehicles/vehicles.zargo", - ocl = prefix^"vehicles/vehicles.ocl", - result = initResult - }:testcase -] - - - -fun test (tc:testcase) = - let - val xmi = ModelImport.parseUML (#uml tc) - handle _ => [] - val ocl = ModelImport.parseOCL (#ocl tc) - handle _ => [] - val OclParse = if ocl = [] then false else true - val (xmi,ocl) = ModelImport.removePackages (xmi,ocl) [] - handle _ => ([],[]) - - val _ = print "### Preprocess Context List ###\n" - val fixed_ocl = Preprocessor.preprocess_context_list ocl ((OclLibrary.oclLib)@xmi) - handle _ => [] - val OclPreprocess = if fixed_ocl = [] then false else true - val _ = print "### Finished Preprocess Context List ###\n\n" - - val _ = print "### Type Checking ###\n" - val typed_cl = TypeChecker.check_context_list fixed_ocl ((OclLibrary.oclLib)@xmi) - handle _ => [] - val OclTC = if typed_cl = [] then false else true - val _ = print "### Finished Type Checking ###\n\n" - - val _ = print"### Updating Classifier List ###\n" - val model = Update_Model.gen_updated_classifier_list typed_cl ((OclLibrary.oclLib)@xmi) - handle _ => [] - val modelUpdate = if model = [] then false else true - val _ = print "### Finished Updating Classifier List ###\n" - - val model = ModelImport.removeOclLibrary model - in - { - name = #name tc, - uml = #uml tc, - ocl = #ocl tc, - result = - { - parse = OclParse, - preprocess = OclParse andalso OclPreprocess, - typecheck = OclParse andalso OclPreprocess andalso OclTC, - update = OclParse andalso OclPreprocess andalso OclTC andalso modelUpdate, - msg = "" - }:result - }:testcase - end - -fun printResult (tc:testcase) = - let - fun printBool b = if b then "passed" else "FAILED" - val _ = print ("\n *** "^(#name tc)^" ***\n") - val res = (#result tc) - val _ = print (" parsing: "^(printBool (#parse res))^"\n") - val _ = print (" preprocess: "^(printBool (#preprocess res))^"\n") - val _ = print (" typecheck: "^(printBool (#typecheck res))^"\n") - val _ = print (" update: "^(printBool (#update res))^"\n\n") - val _ = print (" ==> overall: "^(printBool ((#parse res) - andalso (#preprocess res) - andalso (#typecheck res) - andalso (#update res)))^"\n") - - in - () - end - -val _ = (Ext_Library.log_level := 10);(); - -val testcases = map test testcases - -val _ = map printResult testcases - diff --git a/src/ocl_parser/values.sml b/src/ocl_parser/values.sml deleted file mode 100644 index 8d5f686..0000000 --- a/src/ocl_parser/values.sml +++ /dev/null @@ -1,31 +0,0 @@ -open Rep_OclTerm; -open Rep_Core; -open OclLibrary; -open Context; -open OclLibrary; - -val xmi = RepParser.readFile "../examples/company/company.xmi"; -val untyped_model = (oclLib@xmi); - -val ocl = OclParser.parse_contextlist "../examples/company/company.manuel.ocl"; -val pp = Preprocessor.preprocess_context_list ocl xmi; - -val c = Literal ("a",Classifier (["Company","Company"])); -val p = Literal ("b",Classifier (["Company","Person"])); -val j = Literal ("c",Classifier (["Company","Job"])); -val b = Literal ("d",Classifier (["Company","Bank"])); - -val s = Literal ("s",String); -val i = Literal ("i",Integer); -val r = Literal ("r",Real); -val set = Literal ("set",Set(Integer)); -val collection = Literal("collection",Collection(String)); -val bag = Literal ("bag",Bag(Real)); - -val model = (oclLib@xmi); - -val cc = get_classifier c model; -val cp = get_classifier p model; -val cj = get_classifier j model; -val cb = get_classifier b model; - diff --git a/src/su4sml.110.62.cm b/src/su4sml.110.62.cm index 0b855b5..6b44f0b 100644 --- a/src/su4sml.110.62.cm +++ b/src/su4sml.110.62.cm @@ -1,40 +1,2 @@ Group is -#if(defined(SMLNJ_VERSION)) - $smlnj/basis/basis.cm - $smlnj/compiler/current.cm - $smlnj/smlnj-lib/smlnj-lib.cm -#else -#endif - ../lib/fxp/src/fxlib.110.62.cm - compiler/compiler_ext.sig - compiler/smlnj.sml - library.sml - listeq.sml - rep_ocl.sml - rep_state_machines.sml - rep_activity_graphs.sml - rep_core.sml - mds.sig - secure_uml.sml - component_uml.sml - rep_secure.sml - ocl_library.sml - rep.sml - rep_parser.sml - rep_su2holocl.sml - xmi_ocl.sml - xmi_core.sml - xmi_datatypes.sml - xmi_extension_mechanisms.sml - xmi_state_machines.sml - xmi_activity_graphs.sml - xmi.sml - xmi_parser.sml - xmltree.sml - xmltree_hooks.sml - xmltree_helper.sml - xmltree_parser.sml - xmltree_writer.sml - xmi_idtable.sml - ocl2string.sml - ocl2dresdenjava.sml + ocl_parser/parser.110.62.cm diff --git a/src/su4sml.cm b/src/su4sml.cm index 422e4a4..fa9edce 100644 --- a/src/su4sml.cm +++ b/src/su4sml.cm @@ -1,40 +1,2 @@ Group is -#if(defined(SMLNJ_VERSION)) - $/basis.cm - $smlnj/compiler/current.cm - $/smlnj-lib.cm -#else -#endif - ../lib/fxp/src/fxlib.cm - compiler/compiler_ext.sig - compiler/smlnj.sml - library.sml - listeq.sml - rep_ocl.sml - rep_state_machines.sml - rep_activity_graphs.sml - rep_core.sml - mds.sig - secure_uml.sml - component_uml.sml - rep_secure.sml - ocl_library.sml - rep.sml - rep_parser.sml - rep_su2holocl.sml - xmi_ocl.sml - xmi_core.sml - xmi_datatypes.sml - xmi_extension_mechanisms.sml - xmi_state_machines.sml - xmi_activity_graphs.sml - xmi.sml - xmi_parser.sml - xmltree.sml - xmltree_hooks.sml - xmltree_helper.sml - xmltree_parser.sml - xmltree_writer.sml - xmi_idtable.sml - ocl2string.sml - ocl2dresdenjava.sml \ No newline at end of file + ocl_parser/parser.cm diff --git a/src/su4sml_core.110.62.cm b/src/su4sml_core.110.62.cm new file mode 100644 index 0000000..0b855b5 --- /dev/null +++ b/src/su4sml_core.110.62.cm @@ -0,0 +1,40 @@ +Group is +#if(defined(SMLNJ_VERSION)) + $smlnj/basis/basis.cm + $smlnj/compiler/current.cm + $smlnj/smlnj-lib/smlnj-lib.cm +#else +#endif + ../lib/fxp/src/fxlib.110.62.cm + compiler/compiler_ext.sig + compiler/smlnj.sml + library.sml + listeq.sml + rep_ocl.sml + rep_state_machines.sml + rep_activity_graphs.sml + rep_core.sml + mds.sig + secure_uml.sml + component_uml.sml + rep_secure.sml + ocl_library.sml + rep.sml + rep_parser.sml + rep_su2holocl.sml + xmi_ocl.sml + xmi_core.sml + xmi_datatypes.sml + xmi_extension_mechanisms.sml + xmi_state_machines.sml + xmi_activity_graphs.sml + xmi.sml + xmi_parser.sml + xmltree.sml + xmltree_hooks.sml + xmltree_helper.sml + xmltree_parser.sml + xmltree_writer.sml + xmi_idtable.sml + ocl2string.sml + ocl2dresdenjava.sml diff --git a/src/su4sml_core.cm b/src/su4sml_core.cm new file mode 100644 index 0000000..422e4a4 --- /dev/null +++ b/src/su4sml_core.cm @@ -0,0 +1,40 @@ +Group is +#if(defined(SMLNJ_VERSION)) + $/basis.cm + $smlnj/compiler/current.cm + $/smlnj-lib.cm +#else +#endif + ../lib/fxp/src/fxlib.cm + compiler/compiler_ext.sig + compiler/smlnj.sml + library.sml + listeq.sml + rep_ocl.sml + rep_state_machines.sml + rep_activity_graphs.sml + rep_core.sml + mds.sig + secure_uml.sml + component_uml.sml + rep_secure.sml + ocl_library.sml + rep.sml + rep_parser.sml + rep_su2holocl.sml + xmi_ocl.sml + xmi_core.sml + xmi_datatypes.sml + xmi_extension_mechanisms.sml + xmi_state_machines.sml + xmi_activity_graphs.sml + xmi.sml + xmi_parser.sml + xmltree.sml + xmltree_hooks.sml + xmltree_helper.sml + xmltree_parser.sml + xmltree_writer.sml + xmi_idtable.sml + ocl2string.sml + ocl2dresdenjava.sml \ No newline at end of file