diff --git a/Makefile b/Makefile index cc8e86bed..c9bec6413 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ endif ifeq ($(BUILD_JAVA_ANALYZERS),yes) DIRECT_TESTS += \ java_checkers_test java_eradicate_test java_infer_test java_tracing_test \ - java_quandary_test java_crashcontext_test java_harness_test + java_quandary_test java_threadsafety_test java_crashcontext_test java_harness_test endif ifneq ($(XCODE_SELECT),no) DIRECT_TESTS += objc_frontend_test objc_errors_test objc_linters_test objcpp_frontend_test objcpp_linters_test diff --git a/infer/lib/python/inferlib/config.py b/infer/lib/python/inferlib/config.py index 2f5f03137..edb706829 100644 --- a/infer/lib/python/inferlib/config.py +++ b/infer/lib/python/inferlib/config.py @@ -72,6 +72,7 @@ ANALYZER_TRACING = 'tracing' ANALYZER_CRASHCONTEXT = 'crashcontext' ANALYZER_LINTERS = 'linters' ANALYZER_QUANDARY = 'quandary' +ANALYZER_THREADSAFETY = 'threadsafety' ANALYZERS = [ ANALYZER_CAPTURE, @@ -83,4 +84,5 @@ ANALYZERS = [ ANALYZER_LINTERS, ANALYZER_TRACING, ANALYZER_QUANDARY, + ANALYZER_THREADSAFETY, ] diff --git a/infer/src/IR/Localise.ml b/infer/src/IR/Localise.ml index 4fd8d12de..86d623df7 100644 --- a/infer/src/IR/Localise.ml +++ b/infer/src/IR/Localise.ml @@ -82,6 +82,7 @@ let stack_variable_address_escape = "STACK_VARIABLE_ADDRESS_ESCAPE" let static_initialization_order_fiasco = "STATIC_INITIALIZATION_ORDER_FIASCO" let strong_delegate_warning = "STRONG_DELEGATE_WARNING" let tainted_value_reaching_sensitive_function = "TAINTED_VALUE_REACHING_SENSITIVE_FUNCTION" +let thread_safety_error = "THREAD_SAFETY_ERROR" let unary_minus_applied_to_unsigned_expression = "UNARY_MINUS_APPLIED_TO_UNSIGNED_EXPRESSION" let unsafe_guarded_by_access = "UNSAFE_GUARDED_BY_ACCESS" let uninitialized_value = "UNINITIALIZED_VALUE" diff --git a/infer/src/IR/Localise.mli b/infer/src/IR/Localise.mli index 422aaecac..93cf1137e 100644 --- a/infer/src/IR/Localise.mli +++ b/infer/src/IR/Localise.mli @@ -82,6 +82,7 @@ val use_after_free : t val skip_function : t val skip_pointer_dereference : t val tainted_value_reaching_sensitive_function : t +val thread_safety_error : t (** description field of error messages *) type error_desc = { diff --git a/infer/src/backend/InferPrint.re b/infer/src/backend/InferPrint.re index 2681be3e8..b7db1ba4e 100644 --- a/infer/src/backend/InferPrint.re +++ b/infer/src/backend/InferPrint.re @@ -323,7 +323,8 @@ let should_report (issue_kind: Exceptions.err_kind) issue_type error_desc => | Crashcontext | Infer | Linters - | Quandary => false + | Quandary + | Threadsafety => false }; if analyzer_is_whitelisted { true @@ -385,6 +386,7 @@ let should_report (issue_kind: Exceptions.err_kind) issue_type error_desc => static_initialization_order_fiasco, strong_delegate_warning, tainted_value_reaching_sensitive_function, + thread_safety_error, unsafe_guarded_by_access ]; IList.mem Localise.equal issue_type reportable_issue_types diff --git a/infer/src/backend/infer.ml b/infer/src/backend/infer.ml index 22f12d96f..75129523b 100644 --- a/infer/src/backend/infer.ml +++ b/infer/src/backend/infer.ml @@ -191,7 +191,7 @@ let analyze = function Config.print_usage_exit () ); (match Config.analyzer with - | Infer | Eradicate | Checkers | Tracing | Crashcontext | Quandary -> + | Infer | Eradicate | Checkers | Tracing | Crashcontext | Quandary | Threadsafety -> (* Still handled by infer.py through capture function above *) () | Linters -> diff --git a/infer/src/base/Config.ml b/infer/src/base/Config.ml index 4b5c4928a..531c0d393 100644 --- a/infer/src/base/Config.ml +++ b/infer/src/base/Config.ml @@ -18,13 +18,13 @@ module F = Format type analyzer = Capture | Compile | Infer | Eradicate | Checkers | Tracing - | Crashcontext | Linters | Quandary + | Crashcontext | Linters | Quandary | Threadsafety let string_to_analyzer = [("capture", Capture); ("compile", Compile); ("infer", Infer); ("eradicate", Eradicate); ("checkers", Checkers); ("tracing", Tracing); ("crashcontext", Crashcontext); ("linters", Linters); - ("quandary", Quandary);] + ("quandary", Quandary); ("threadsafety", Threadsafety)] let clang_frontend_action_symbols = [ ("lint", `Lint); @@ -551,11 +551,11 @@ and analyzer = (* NOTE: if compilation fails here, it means you have added a new analyzer without updating the documentation of this option *) | Capture | Compile | Infer | Eradicate | Checkers | Tracing | Crashcontext | Linters - | Quandary -> () in + | Quandary | Threadsafety -> () in CLOpt.mk_symbol_opt ~deprecated:["analyzer"] ~long:"analyzer" ~short:"a" ~exes:CLOpt.[Toplevel] "Specify which analyzer to run (only one at a time is supported):\n\ - - infer, eradicate, checkers, quandary: run the specified analysis\n\ + - infer, eradicate, checkers, quandary, threadsafety: run the specified analysis\n\ - capture: run capture phase only (no analysis)\n\ - compile: run compilation command without interfering (not supported by all frontends)\n\ - crashcontext, tracing: experimental (see --crashcontext and --tracing)\n\ @@ -645,7 +645,7 @@ and check_duplicate_symbols = ~exes:CLOpt.[Analyze] "Check if a symbol with the same name is defined in more than one file." -and checkers, crashcontext, eradicate, quandary = +and checkers, crashcontext, eradicate, quandary, threadsafety = let checkers = CLOpt.mk_bool ~deprecated:["checkers"] ~long:"checkers" "Activate the checkers instead of the full analysis" @@ -665,7 +665,12 @@ and checkers, crashcontext, eradicate, quandary = "Activate the quandary taint analysis" [checkers] [] in - (checkers, crashcontext, eradicate, quandary) + let threadsafety = + CLOpt.mk_bool_group ~deprecated:["threadsafety"] ~long:"threadsafety" + "Activate the thread safety analysis" + [checkers] [] + in + (checkers, crashcontext, eradicate, quandary, threadsafety) and checkers_repeated_calls = CLOpt.mk_bool ~long:"checkers-repeated-calls" @@ -1192,11 +1197,6 @@ and testing_mode = CLOpt.mk_bool ~deprecated:["testing_mode"; "-testing_mode"] ~long:"testing-mode" ~short:"tm" "Mode for testing, where no headers are translated, and dot files are created (clang only)" -and thread_safety = - CLOpt.mk_bool ~long:"thread-safety" - ~exes:CLOpt.[Analyze] - "Run the experimental thread safety checker. (In conjunction with -a checkers)" - and trace_join = CLOpt.mk_bool ~deprecated:["trace_join"] ~long:"trace-join" "Detailed tracing information during prop join operations" @@ -1351,6 +1351,7 @@ let post_parsing_initialization () = | Some Crashcontext -> checkers := true; crashcontext := true | Some Eradicate -> checkers := true; eradicate := true | Some Quandary -> checkers := true; quandary := true + | Some Threadsafety -> checkers := true; threadsafety := true | Some Tracing -> tracing := true | Some (Capture | Compile | Infer | Linters) | None -> () @@ -1498,13 +1499,13 @@ and symops_per_iteration = !symops_per_iteration and test = !test and test_filtering = !test_filtering and testing_mode = !testing_mode +and threadsafety = !threadsafety and trace_error = !trace_error and trace_ondemand = !trace_ondemand and trace_join = !trace_join and trace_rearrange = !trace_rearrange and type_size = !type_size and unsafe_malloc = !unsafe_malloc -and thread_safety = !thread_safety and use_compilation_database = !use_compilation_database and whole_seconds = !whole_seconds and worklist_mode = !worklist_mode @@ -1526,7 +1527,7 @@ and analysis_blacklist_files_containing analyzer = and analysis_suppress_errors analyzer = IList.assoc (=) analyzer analysis_suppress_errors_options -let checkers_enabled = not (eradicate || crashcontext || quandary) +let checkers_enabled = not (eradicate || crashcontext || quandary || threadsafety) let clang_frontend_do_capture, clang_frontend_do_lint = match !clang_frontend_action with diff --git a/infer/src/base/Config.mli b/infer/src/base/Config.mli index 9d53b90d4..3a27bce1f 100644 --- a/infer/src/base/Config.mli +++ b/infer/src/base/Config.mli @@ -16,7 +16,7 @@ open! Utils (** Various kind of analyzers *) type analyzer = Capture | Compile | Infer | Eradicate | Checkers | Tracing - | Crashcontext | Linters | Quandary + | Crashcontext | Linters | Quandary | Threadsafety (** Association list of analyzers and their names *) val string_to_analyzer : (string * analyzer) list @@ -254,13 +254,13 @@ val symops_per_iteration : int val test : bool val test_filtering : bool val testing_mode : bool +val threadsafety : bool val trace_error : bool val trace_ondemand : bool val trace_join : bool val trace_rearrange : bool val type_size : bool val unsafe_malloc : bool -val thread_safety: bool val use_compilation_database : [ `Deps | `NoDeps ] option val whole_seconds : bool val worklist_mode : int diff --git a/infer/src/checkers/ThreadSafety.ml b/infer/src/checkers/ThreadSafety.ml index 60b976423..db29d2f1f 100644 --- a/infer/src/checkers/ThreadSafety.ml +++ b/infer/src/checkers/ThreadSafety.ml @@ -161,7 +161,7 @@ let report_thread_safety_errors ( _, tenv, pname, pdesc) writestate = Checkers.ST.report_error tenv pname pdesc - "CHECKERS_THREAD_SAFETY_WARNING" + (Localise.to_string Localise.thread_safety_error) (Procdesc.get_loc pdesc) description in diff --git a/infer/src/checkers/registerCheckers.ml b/infer/src/checkers/registerCheckers.ml index a2d73b919..a3560a4aa 100644 --- a/infer/src/checkers/registerCheckers.ml +++ b/infer/src/checkers/registerCheckers.ml @@ -59,7 +59,7 @@ let active_procedure_checkers () = let active_cluster_checkers () = [(Checkers.callback_check_cluster_access, false, Some Config.Java); - (ThreadSafety.file_analysis, Config.checkers_enabled && Config.thread_safety, Some Config.Java) + (ThreadSafety.file_analysis, Config.threadsafety, Some Config.Java) ] let register () = diff --git a/infer/src/llvm/lLexer.ml b/infer/src/llvm/lLexer.ml new file mode 100644 index 000000000..f3e9b30f8 --- /dev/null +++ b/infer/src/llvm/lLexer.ml @@ -0,0 +1,6388 @@ +# 10 "menhir/lLexer.mll" + + open LParser + + exception LexingError of string + +# 8 "menhir/lLexer.ml" +let __ocaml_lex_tables = { + Lexing.lex_base = + "\000\000\171\255\078\000\102\000\192\000\023\001\110\001\197\001\ + \028\002\115\002\202\002\033\003\120\003\207\003\038\004\125\004\ + \200\004\222\004\029\000\053\005\140\005\227\005\058\006\145\006\ + \232\006\063\007\150\007\237\007\238\255\239\255\240\255\241\255\ + \242\255\243\255\244\255\245\255\246\255\247\255\248\255\249\255\ + \068\008\155\008\254\255\028\000\255\255\242\008\073\009\160\009\ + \247\009\078\010\165\010\252\010\083\011\170\011\001\012\088\012\ + \175\012\006\013\093\013\180\013\011\014\098\014\185\014\016\015\ + \103\015\190\015\021\016\108\016\195\016\026\017\113\017\200\017\ + \031\018\118\018\205\018\036\019\127\019\082\000\214\019\045\020\ + \132\020\219\020\050\021\137\021\224\021\055\022\142\022\229\022\ + \060\023\147\023\234\023\065\024\152\024\239\024\070\025\157\025\ + \244\025\075\026\162\026\249\026\080\027\167\027\254\027\085\028\ + \172\028\003\029\090\029\177\029\008\030\095\030\182\030\013\031\ + \100\031\187\031\018\032\105\032\192\032\023\033\110\033\197\033\ + \028\034\115\034\202\034\033\035\120\035\207\035\038\036\125\036\ + \212\036\043\037\130\037\217\037\048\038\135\038\222\038\053\039\ + \140\039\227\039\058\040\145\040\232\040\063\041\150\041\237\041\ + \068\042\155\042\242\042\073\043\160\043\247\043\078\044\165\044\ + \252\044\083\045\170\045\001\046\088\046\175\046\006\047\093\047\ + \180\047\011\048\098\048\185\048\016\049\226\255\103\049\190\049\ + \021\050\108\050\195\050\026\051\113\051\200\051\031\052\118\052\ + \205\052\036\053\123\053\210\053\041\054\128\054\215\054\046\055\ + \133\055\220\055\051\056\138\056\225\056\056\057\143\057\230\057\ + \061\058\148\058\235\058\066\059\153\059\240\059\071\060\158\060\ + \245\060\076\061\163\061\250\061\081\062\168\062\255\062\086\063\ + \173\063\008\064\084\000\095\064\182\064\013\065\100\065\187\065\ + \018\066\105\066\192\066\023\067\110\067\197\067\028\068\115\068\ + \202\068\033\069\120\069\207\069\038\070\125\070\212\070\043\071\ + \130\071\217\071\048\072\135\072\222\072\053\073\140\073\227\073\ + \058\074\145\074\232\074\063\075\150\075\237\075\068\076\155\076\ + \242\076\073\077\160\077\235\077\183\255\001\078\088\078\175\078\ + \006\079\093\079\180\079\011\080\098\080\185\080\016\081\103\081\ + \190\081\021\082\108\082\195\082\026\083\113\083\188\083\182\255\ + \210\083\175\255\062\000\029\084\177\255\051\084\138\084\225\084\ + \056\085\143\085\230\085\061\086\148\086\235\086\066\087\153\087\ + \240\087\071\088\158\088\176\255\233\088\173\255"; + Lexing.lex_backtrk = + "\255\255\255\255\255\255\255\255\074\000\255\255\255\255\074\000\ + \074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\ + \032\000\074\000\255\255\074\000\074\000\074\000\074\000\074\000\ + \074\000\074\000\018\000\018\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \074\000\074\000\255\255\000\000\255\255\074\000\074\000\074\000\ + \074\000\074\000\002\000\074\000\074\000\074\000\074\000\004\000\ + \030\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\ + \074\000\074\000\074\000\003\000\074\000\074\000\074\000\074\000\ + \005\000\074\000\074\000\074\000\074\000\081\000\074\000\074\000\ + \074\000\023\000\074\000\074\000\074\000\074\000\074\000\074\000\ + \074\000\025\000\061\000\074\000\074\000\019\000\074\000\020\000\ + \074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\ + \074\000\074\000\063\000\074\000\074\000\021\000\074\000\074\000\ + \074\000\074\000\074\000\074\000\074\000\074\000\074\000\022\000\ + \074\000\074\000\024\000\074\000\074\000\074\000\074\000\031\000\ + \037\000\055\000\074\000\039\000\074\000\041\000\074\000\044\000\ + \074\000\047\000\074\000\074\000\074\000\074\000\074\000\074\000\ + \074\000\026\000\074\000\074\000\074\000\074\000\074\000\027\000\ + \074\000\057\000\074\000\066\000\074\000\074\000\074\000\074\000\ + \074\000\074\000\074\000\028\000\040\000\255\255\032\000\074\000\ + \074\000\074\000\074\000\048\000\074\000\033\000\053\000\049\000\ + \074\000\051\000\074\000\052\000\074\000\034\000\035\000\074\000\ + \074\000\074\000\074\000\074\000\074\000\036\000\074\000\054\000\ + \074\000\058\000\059\000\074\000\074\000\074\000\064\000\074\000\ + \074\000\065\000\074\000\074\000\074\000\074\000\074\000\074\000\ + \074\000\074\000\083\000\074\000\074\000\074\000\074\000\074\000\ + \038\000\074\000\043\000\074\000\046\000\056\000\074\000\074\000\ + \067\000\074\000\074\000\074\000\042\000\074\000\045\000\074\000\ + \074\000\074\000\074\000\050\000\074\000\074\000\074\000\074\000\ + \074\000\074\000\074\000\074\000\074\000\074\000\062\000\060\000\ + \074\000\074\000\068\000\072\000\255\255\070\000\070\000\070\000\ + \070\000\070\000\070\000\070\000\070\000\070\000\070\000\070\000\ + \070\000\070\000\070\000\070\000\070\000\069\000\073\000\255\255\ + \071\000\255\255\255\255\078\000\255\255\077\000\077\000\077\000\ + \077\000\075\000\077\000\077\000\077\000\077\000\077\000\077\000\ + \077\000\077\000\076\000\255\255\082\000\255\255"; + Lexing.lex_default = + "\255\255\000\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\018\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \255\255\255\255\000\000\043\000\000\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\077\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\000\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\210\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\000\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\000\000\ + \255\255\000\000\018\001\255\255\000\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\000\000\255\255\000\000"; + Lexing.lex_trans = + "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\044\000\042\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \044\000\003\000\018\000\002\000\004\000\005\000\255\255\000\000\ + \038\000\037\000\028\000\000\000\039\000\017\000\004\000\000\000\ + \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ + \016\000\016\000\030\000\043\000\034\000\029\000\033\000\165\000\ + \006\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \026\000\004\000\004\000\032\000\255\255\031\000\255\255\004\000\ + \035\001\012\000\013\000\007\000\040\000\009\000\022\000\004\000\ + \023\000\024\000\004\000\004\000\020\000\019\000\015\000\008\000\ + \021\000\004\000\014\000\011\000\041\000\010\000\025\000\004\000\ + \027\000\004\000\004\000\036\000\000\000\035\000\037\001\036\001\ + \036\001\036\001\036\001\036\001\036\001\036\001\036\001\036\001\ + \018\001\000\000\021\001\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\021\001\021\001\000\000\020\001\019\001\ + \019\001\019\001\019\001\019\001\019\001\019\001\019\001\019\001\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\022\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\000\000\000\000\000\000\000\000\021\001\000\000\021\001\ + \021\001\021\001\023\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\017\001\000\000\000\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \001\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\255\255\255\255\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\016\001\000\000\000\000\255\255\000\000\ + \000\000\000\000\000\000\000\000\016\001\016\001\000\000\015\001\ + \014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\ + \014\001\000\000\255\255\000\000\255\255\000\000\000\000\000\000\ + \016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\000\000\000\000\000\000\000\000\016\001\000\000\ + \016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\253\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\253\000\253\000\000\000\252\000\251\000\ + \251\000\251\000\251\000\251\000\251\000\251\000\251\000\251\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\000\000\000\000\000\000\000\000\253\000\000\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\254\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\248\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\247\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\231\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\226\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\225\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\214\000\004\000\004\000\ + \004\000\212\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\213\000\004\000\211\000\215\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\188\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\184\000\004\000\185\000\004\000\ + \004\000\004\000\187\000\186\000\183\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\182\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\180\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\167\000\004\000\ + \004\000\004\000\004\000\168\000\004\000\004\000\004\000\004\000\ + \169\000\004\000\170\000\004\000\004\000\004\000\004\000\004\000\ + \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ + \016\000\016\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\166\000\166\000\ + \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\157\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\156\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\148\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\146\000\004\000\004\000\004\000\147\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\138\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\114\000\004\000\004\000\111\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\116\000\112\000\ + \004\000\004\000\115\000\004\000\110\000\113\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\107\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\095\000\095\000\095\000\095\000\095\000\095\000\095\000\ + \095\000\095\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\094\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\091\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\083\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\082\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\059\000\004\000\004\000\ + \004\000\058\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\057\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\046\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\045\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\052\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\051\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\047\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\048\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\049\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\050\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\056\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\053\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\054\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\055\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\078\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \068\000\004\000\004\000\069\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \060\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\061\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\062\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\063\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\064\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\065\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\066\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\067\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\073\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\070\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\071\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\072\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\074\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\075\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\076\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\077\000\ + \000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \079\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\080\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\081\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\090\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\084\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\085\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\086\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\087\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\088\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\089\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\092\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\093\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\096\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\095\000\095\000\095\000\ + \095\000\095\000\095\000\095\000\095\000\095\000\095\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\097\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\098\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\099\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\100\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\101\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\102\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\103\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\104\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\105\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\106\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\108\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\109\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\136\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\134\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\132\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \130\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\124\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\125\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\123\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\120\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\117\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \118\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\119\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\121\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\122\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\129\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\128\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\126\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\127\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\131\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\133\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\135\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\137\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\139\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \140\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\141\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\142\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\143\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\144\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\145\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\154\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\152\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\149\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\150\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\151\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\153\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\155\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\164\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\158\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\159\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\160\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\161\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\162\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\163\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\166\000\ + \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ + \166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\178\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\176\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\175\000\004\000\004\000\174\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\172\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\171\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\173\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\177\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\179\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\181\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\202\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\196\000\004\000\ + \004\000\195\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \194\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\192\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\190\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\189\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\191\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\193\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\199\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \197\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\198\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\200\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\201\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\203\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\204\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\205\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\206\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\207\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\208\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \209\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \210\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\222\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\221\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\219\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\217\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\216\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\218\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\220\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\223\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \224\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\229\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\227\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\228\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\230\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\233\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\232\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\236\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\234\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\235\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\237\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \238\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \239\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \240\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\241\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\242\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\243\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\244\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\245\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\004\000\000\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\246\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\004\000\000\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \004\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\004\000\000\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\004\000\000\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\249\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\000\000\000\000\000\000\000\000\ + \004\000\000\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\250\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\004\000\004\000\000\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\000\000\000\000\000\000\000\000\004\000\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\251\000\251\000\251\000\251\000\251\000\ + \251\000\251\000\251\000\251\000\251\000\253\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\253\000\253\000\ + \000\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\000\000\000\000\000\000\000\000\ + \253\000\000\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\253\000\253\000\000\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\000\000\000\000\000\000\000\000\253\000\ + \000\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\255\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\253\000\253\000\000\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\000\000\000\000\000\000\000\000\253\000\000\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\000\001\253\000\253\000\ + \253\000\253\000\253\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\253\000\253\000\000\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\000\000\000\000\000\000\000\000\253\000\000\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\001\001\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\253\000\002\001\000\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \000\000\000\000\000\000\000\000\253\000\000\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\253\000\253\000\000\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\000\000\ + \000\000\000\000\000\000\253\000\000\000\253\000\253\000\253\000\ + \003\001\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \253\000\253\000\000\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\000\000\000\000\ + \000\000\000\000\253\000\000\000\253\000\004\001\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\ + \253\000\000\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\000\000\000\000\000\000\ + \000\000\253\000\000\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\005\001\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\253\000\006\001\ + \000\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\000\000\000\000\000\000\000\000\ + \253\000\000\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\253\000\253\000\000\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\000\000\000\000\000\000\000\000\253\000\ + \000\000\253\000\253\000\253\000\007\001\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\253\000\253\000\000\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\000\000\000\000\000\000\000\000\253\000\000\000\ + \253\000\253\000\253\000\253\000\008\001\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\253\000\253\000\000\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\000\000\000\000\000\000\000\000\253\000\000\000\253\000\ + \253\000\009\001\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\253\000\253\000\000\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \000\000\000\000\000\000\000\000\253\000\000\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\010\001\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\253\000\253\000\000\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\000\000\ + \000\000\000\000\000\000\253\000\000\000\011\001\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \253\000\253\000\000\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\000\000\000\000\ + \000\000\000\000\253\000\000\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\012\001\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\ + \253\000\000\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\000\000\000\000\000\000\ + \000\000\253\000\000\000\253\000\253\000\253\000\253\000\013\001\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\253\000\253\000\ + \000\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\000\000\000\000\000\000\000\000\ + \253\000\000\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\014\001\014\001\014\001\014\001\ + \014\001\014\001\014\001\014\001\014\001\014\001\016\001\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\ + \016\001\000\000\016\001\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\016\001\000\000\000\000\000\000\ + \000\000\016\001\000\000\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\016\001\019\001\019\001\019\001\ + \019\001\019\001\019\001\019\001\019\001\019\001\019\001\021\001\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \021\001\021\001\000\000\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\000\000\000\000\ + \000\000\000\000\021\001\000\000\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\001\ + \021\001\000\000\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\021\001\021\001\021\001\026\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\000\000\000\000\000\000\ + \000\000\021\001\000\000\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\021\001\021\001\ + \000\000\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\000\000\000\000\000\000\000\000\ + \021\001\000\000\021\001\024\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\021\001\021\001\000\000\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\000\000\000\000\000\000\000\000\021\001\ + \000\000\021\001\021\001\021\001\021\001\021\001\021\001\025\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\021\001\021\001\000\000\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\000\000\000\000\000\000\000\000\021\001\000\000\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\021\001\021\001\000\000\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\027\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\000\000\000\000\000\000\000\000\021\001\000\000\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\021\001\021\001\000\000\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \000\000\000\000\000\000\000\000\021\001\000\000\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\028\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\021\001\021\001\000\000\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\000\000\ + \000\000\000\000\000\000\021\001\000\000\021\001\021\001\029\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \021\001\021\001\000\000\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\000\000\000\000\ + \000\000\000\000\021\001\000\000\030\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\001\ + \021\001\000\000\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\000\000\000\000\000\000\ + \000\000\021\001\000\000\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\031\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\021\001\021\001\ + \000\000\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\000\000\000\000\000\000\000\000\ + \021\001\000\000\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\032\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\021\001\021\001\000\000\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\000\000\000\000\000\000\000\000\021\001\ + \000\000\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\033\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\021\001\021\001\000\000\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\000\000\000\000\000\000\000\000\021\001\000\000\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\034\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\021\001\021\001\000\000\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\000\000\000\000\000\000\000\000\021\001\000\000\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\036\001\036\001\036\001\036\001\036\001\036\001\036\001\ + \036\001\036\001\036\001\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000"; + Lexing.lex_check = + "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\000\000\000\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \000\000\000\000\000\000\000\000\000\000\000\000\043\000\255\255\ + \000\000\000\000\000\000\255\255\000\000\000\000\000\000\255\255\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\077\000\000\000\210\000\000\000\ + \018\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ + \000\000\000\000\000\000\000\000\255\255\000\000\002\000\002\000\ + \002\000\002\000\002\000\002\000\002\000\002\000\002\000\002\000\ + \003\000\255\255\003\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\003\000\003\000\255\255\003\000\003\000\ + \003\000\003\000\003\000\003\000\003\000\003\000\003\000\003\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\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\003\000\003\000\003\000\003\000\ + \003\000\255\255\255\255\255\255\255\255\003\000\255\255\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\003\000\003\000\003\000\003\000\ + \003\000\003\000\255\255\255\255\004\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\004\000\004\000\255\255\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \000\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\255\255\043\000\018\000\255\255\004\000\ + \255\255\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\004\000\004\000\004\000\004\000\004\000\ + \004\000\004\000\004\000\005\000\255\255\255\255\018\001\255\255\ + \255\255\255\255\255\255\255\255\005\000\005\000\255\255\005\000\ + \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\ + \005\000\255\255\077\000\255\255\210\000\255\255\255\255\255\255\ + \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\ + \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\ + \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\ + \005\000\005\000\255\255\255\255\255\255\255\255\005\000\255\255\ + \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\ + \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\ + \005\000\005\000\005\000\005\000\005\000\005\000\005\000\005\000\ + \005\000\005\000\006\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\006\000\006\000\255\255\006\000\006\000\ + \006\000\006\000\006\000\006\000\006\000\006\000\006\000\006\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\006\000\ + \006\000\006\000\006\000\006\000\006\000\006\000\006\000\006\000\ + \006\000\006\000\006\000\006\000\006\000\006\000\006\000\006\000\ + \006\000\006\000\006\000\006\000\006\000\006\000\006\000\006\000\ + \006\000\255\255\255\255\255\255\255\255\006\000\255\255\006\000\ + \006\000\006\000\006\000\006\000\006\000\006\000\006\000\006\000\ + \006\000\006\000\006\000\006\000\006\000\006\000\006\000\006\000\ + \006\000\006\000\006\000\006\000\006\000\006\000\006\000\006\000\ + \006\000\007\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\007\000\007\000\255\255\007\000\007\000\007\000\ + \007\000\007\000\007\000\007\000\007\000\007\000\007\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\007\000\007\000\ + \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\ + \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\ + \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\ + \255\255\255\255\255\255\255\255\007\000\255\255\007\000\007\000\ + \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\ + \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\ + \007\000\007\000\007\000\007\000\007\000\007\000\007\000\007\000\ + \008\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\008\000\008\000\255\255\008\000\008\000\008\000\008\000\ + \008\000\008\000\008\000\008\000\008\000\008\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\008\000\008\000\008\000\ + \008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\ + \008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\ + \008\000\008\000\008\000\008\000\008\000\008\000\008\000\255\255\ + \255\255\255\255\255\255\008\000\255\255\008\000\008\000\008\000\ + \008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\ + \008\000\008\000\008\000\008\000\008\000\008\000\008\000\008\000\ + \008\000\008\000\008\000\008\000\008\000\008\000\008\000\009\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \009\000\009\000\255\255\009\000\009\000\009\000\009\000\009\000\ + \009\000\009\000\009\000\009\000\009\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\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\255\255\255\255\ + \255\255\255\255\009\000\255\255\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\010\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\010\000\ + \010\000\255\255\010\000\010\000\010\000\010\000\010\000\010\000\ + \010\000\010\000\010\000\010\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\010\000\010\000\010\000\010\000\010\000\ + \010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\ + \010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\ + \010\000\010\000\010\000\010\000\010\000\255\255\255\255\255\255\ + \255\255\010\000\255\255\010\000\010\000\010\000\010\000\010\000\ + \010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\ + \010\000\010\000\010\000\010\000\010\000\010\000\010\000\010\000\ + \010\000\010\000\010\000\010\000\010\000\011\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\011\000\011\000\ + \255\255\011\000\011\000\011\000\011\000\011\000\011\000\011\000\ + \011\000\011\000\011\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\011\000\011\000\011\000\011\000\011\000\011\000\ + \011\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\ + \011\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\ + \011\000\011\000\011\000\011\000\255\255\255\255\255\255\255\255\ + \011\000\255\255\011\000\011\000\011\000\011\000\011\000\011\000\ + \011\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\ + \011\000\011\000\011\000\011\000\011\000\011\000\011\000\011\000\ + \011\000\011\000\011\000\011\000\012\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\012\000\012\000\255\255\ + \012\000\012\000\012\000\012\000\012\000\012\000\012\000\012\000\ + \012\000\012\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\012\000\012\000\012\000\012\000\012\000\012\000\012\000\ + \012\000\012\000\012\000\012\000\012\000\012\000\012\000\012\000\ + \012\000\012\000\012\000\012\000\012\000\012\000\012\000\012\000\ + \012\000\012\000\012\000\255\255\255\255\255\255\255\255\012\000\ + \255\255\012\000\012\000\012\000\012\000\012\000\012\000\012\000\ + \012\000\012\000\012\000\012\000\012\000\012\000\012\000\012\000\ + \012\000\012\000\012\000\012\000\012\000\012\000\012\000\012\000\ + \012\000\012\000\012\000\013\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\013\000\013\000\255\255\013\000\ + \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ + \013\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ + \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ + \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ + \013\000\013\000\255\255\255\255\255\255\255\255\013\000\255\255\ + \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ + \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ + \013\000\013\000\013\000\013\000\013\000\013\000\013\000\013\000\ + \013\000\013\000\014\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\014\000\014\000\255\255\014\000\014\000\ + \014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\014\000\ + \014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\ + \014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\ + \014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\ + \014\000\255\255\255\255\255\255\255\255\014\000\255\255\014\000\ + \014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\ + \014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\ + \014\000\014\000\014\000\014\000\014\000\014\000\014\000\014\000\ + \014\000\015\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\015\000\015\000\255\255\015\000\015\000\015\000\ + \015\000\015\000\015\000\015\000\015\000\015\000\015\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\015\000\015\000\ + \015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\ + \015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\ + \015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\ + \255\255\255\255\255\255\255\255\015\000\255\255\015\000\015\000\ + \015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\ + \015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\ + \015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\ + \016\000\016\000\016\000\016\000\016\000\016\000\016\000\016\000\ + \016\000\016\000\017\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\017\000\017\000\255\255\017\000\017\000\ + \017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\017\000\ + \017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\ + \017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\ + \017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\ + \017\000\255\255\255\255\255\255\255\255\017\000\255\255\017\000\ + \017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\ + \017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\ + \017\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\ + \017\000\019\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\019\000\019\000\255\255\019\000\019\000\019\000\ + \019\000\019\000\019\000\019\000\019\000\019\000\019\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\019\000\019\000\ + \019\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\ + \019\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\ + \019\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\ + \255\255\255\255\255\255\255\255\019\000\255\255\019\000\019\000\ + \019\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\ + \019\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\ + \019\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\ + \020\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\020\000\020\000\255\255\020\000\020\000\020\000\020\000\ + \020\000\020\000\020\000\020\000\020\000\020\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\020\000\020\000\020\000\ + \020\000\020\000\020\000\020\000\020\000\020\000\020\000\020\000\ + \020\000\020\000\020\000\020\000\020\000\020\000\020\000\020\000\ + \020\000\020\000\020\000\020\000\020\000\020\000\020\000\255\255\ + \255\255\255\255\255\255\020\000\255\255\020\000\020\000\020\000\ + \020\000\020\000\020\000\020\000\020\000\020\000\020\000\020\000\ + \020\000\020\000\020\000\020\000\020\000\020\000\020\000\020\000\ + \020\000\020\000\020\000\020\000\020\000\020\000\020\000\021\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \021\000\021\000\255\255\021\000\021\000\021\000\021\000\021\000\ + \021\000\021\000\021\000\021\000\021\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\021\000\021\000\021\000\021\000\ + \021\000\021\000\021\000\021\000\021\000\021\000\021\000\021\000\ + \021\000\021\000\021\000\021\000\021\000\021\000\021\000\021\000\ + \021\000\021\000\021\000\021\000\021\000\021\000\255\255\255\255\ + \255\255\255\255\021\000\255\255\021\000\021\000\021\000\021\000\ + \021\000\021\000\021\000\021\000\021\000\021\000\021\000\021\000\ + \021\000\021\000\021\000\021\000\021\000\021\000\021\000\021\000\ + \021\000\021\000\021\000\021\000\021\000\021\000\022\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\022\000\ + \022\000\255\255\022\000\022\000\022\000\022\000\022\000\022\000\ + \022\000\022\000\022\000\022\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\022\000\022\000\022\000\022\000\022\000\ + \022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\ + \022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\ + \022\000\022\000\022\000\022\000\022\000\255\255\255\255\255\255\ + \255\255\022\000\255\255\022\000\022\000\022\000\022\000\022\000\ + \022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\ + \022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\ + \022\000\022\000\022\000\022\000\022\000\023\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\023\000\023\000\ + \255\255\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ + \023\000\023\000\023\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\023\000\023\000\023\000\023\000\023\000\023\000\ + \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ + \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ + \023\000\023\000\023\000\023\000\255\255\255\255\255\255\255\255\ + \023\000\255\255\023\000\023\000\023\000\023\000\023\000\023\000\ + \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ + \023\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\ + \023\000\023\000\023\000\023\000\024\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\024\000\024\000\255\255\ + \024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ + \024\000\024\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ + \024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ + \024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ + \024\000\024\000\024\000\255\255\255\255\255\255\255\255\024\000\ + \255\255\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ + \024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ + \024\000\024\000\024\000\024\000\024\000\024\000\024\000\024\000\ + \024\000\024\000\024\000\025\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\025\000\025\000\255\255\025\000\ + \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ + \025\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ + \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ + \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ + \025\000\025\000\255\255\255\255\255\255\255\255\025\000\255\255\ + \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ + \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ + \025\000\025\000\025\000\025\000\025\000\025\000\025\000\025\000\ + \025\000\025\000\026\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\026\000\026\000\255\255\026\000\026\000\ + \026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\026\000\ + \026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\ + \026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\ + \026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\ + \026\000\255\255\255\255\255\255\255\255\026\000\255\255\026\000\ + \026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\ + \026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\ + \026\000\026\000\026\000\026\000\026\000\026\000\026\000\026\000\ + \026\000\027\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\027\000\027\000\255\255\027\000\027\000\027\000\ + \027\000\027\000\027\000\027\000\027\000\027\000\027\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\027\000\027\000\ + \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\ + \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\ + \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\ + \255\255\255\255\255\255\255\255\027\000\255\255\027\000\027\000\ + \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\ + \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\ + \027\000\027\000\027\000\027\000\027\000\027\000\027\000\027\000\ + \040\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\040\000\040\000\255\255\040\000\040\000\040\000\040\000\ + \040\000\040\000\040\000\040\000\040\000\040\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\040\000\040\000\040\000\ + \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ + \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ + \040\000\040\000\040\000\040\000\040\000\040\000\040\000\255\255\ + \255\255\255\255\255\255\040\000\255\255\040\000\040\000\040\000\ + \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ + \040\000\040\000\040\000\040\000\040\000\040\000\040\000\040\000\ + \040\000\040\000\040\000\040\000\040\000\040\000\040\000\041\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \041\000\041\000\255\255\041\000\041\000\041\000\041\000\041\000\ + \041\000\041\000\041\000\041\000\041\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\041\000\041\000\041\000\041\000\ + \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ + \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ + \041\000\041\000\041\000\041\000\041\000\041\000\255\255\255\255\ + \255\255\255\255\041\000\255\255\041\000\041\000\041\000\041\000\ + \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ + \041\000\041\000\041\000\041\000\041\000\041\000\041\000\041\000\ + \041\000\041\000\041\000\041\000\041\000\041\000\045\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\045\000\ + \045\000\255\255\045\000\045\000\045\000\045\000\045\000\045\000\ + \045\000\045\000\045\000\045\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\045\000\045\000\045\000\045\000\045\000\ + \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\ + \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\ + \045\000\045\000\045\000\045\000\045\000\255\255\255\255\255\255\ + \255\255\045\000\255\255\045\000\045\000\045\000\045\000\045\000\ + \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\ + \045\000\045\000\045\000\045\000\045\000\045\000\045\000\045\000\ + \045\000\045\000\045\000\045\000\045\000\046\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\046\000\046\000\ + \255\255\046\000\046\000\046\000\046\000\046\000\046\000\046\000\ + \046\000\046\000\046\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\046\000\046\000\046\000\046\000\046\000\046\000\ + \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\ + \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\ + \046\000\046\000\046\000\046\000\255\255\255\255\255\255\255\255\ + \046\000\255\255\046\000\046\000\046\000\046\000\046\000\046\000\ + \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\ + \046\000\046\000\046\000\046\000\046\000\046\000\046\000\046\000\ + \046\000\046\000\046\000\046\000\047\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\047\000\047\000\255\255\ + \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\ + \047\000\047\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\047\000\047\000\047\000\047\000\047\000\047\000\047\000\ + \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\ + \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\ + \047\000\047\000\047\000\255\255\255\255\255\255\255\255\047\000\ + \255\255\047\000\047\000\047\000\047\000\047\000\047\000\047\000\ + \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\ + \047\000\047\000\047\000\047\000\047\000\047\000\047\000\047\000\ + \047\000\047\000\047\000\048\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\048\000\048\000\255\255\048\000\ + \048\000\048\000\048\000\048\000\048\000\048\000\048\000\048\000\ + \048\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \048\000\048\000\048\000\048\000\048\000\048\000\048\000\048\000\ + \048\000\048\000\048\000\048\000\048\000\048\000\048\000\048\000\ + \048\000\048\000\048\000\048\000\048\000\048\000\048\000\048\000\ + \048\000\048\000\255\255\255\255\255\255\255\255\048\000\255\255\ + \048\000\048\000\048\000\048\000\048\000\048\000\048\000\048\000\ + \048\000\048\000\048\000\048\000\048\000\048\000\048\000\048\000\ + \048\000\048\000\048\000\048\000\048\000\048\000\048\000\048\000\ + \048\000\048\000\049\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\049\000\049\000\255\255\049\000\049\000\ + \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\049\000\ + \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\ + \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\ + \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\ + \049\000\255\255\255\255\255\255\255\255\049\000\255\255\049\000\ + \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\ + \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\ + \049\000\049\000\049\000\049\000\049\000\049\000\049\000\049\000\ + \049\000\050\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\050\000\050\000\255\255\050\000\050\000\050\000\ + \050\000\050\000\050\000\050\000\050\000\050\000\050\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\050\000\050\000\ + \050\000\050\000\050\000\050\000\050\000\050\000\050\000\050\000\ + \050\000\050\000\050\000\050\000\050\000\050\000\050\000\050\000\ + \050\000\050\000\050\000\050\000\050\000\050\000\050\000\050\000\ + \255\255\255\255\255\255\255\255\050\000\255\255\050\000\050\000\ + \050\000\050\000\050\000\050\000\050\000\050\000\050\000\050\000\ + \050\000\050\000\050\000\050\000\050\000\050\000\050\000\050\000\ + \050\000\050\000\050\000\050\000\050\000\050\000\050\000\050\000\ + \051\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\051\000\051\000\255\255\051\000\051\000\051\000\051\000\ + \051\000\051\000\051\000\051\000\051\000\051\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\051\000\051\000\051\000\ + \051\000\051\000\051\000\051\000\051\000\051\000\051\000\051\000\ + \051\000\051\000\051\000\051\000\051\000\051\000\051\000\051\000\ + \051\000\051\000\051\000\051\000\051\000\051\000\051\000\255\255\ + \255\255\255\255\255\255\051\000\255\255\051\000\051\000\051\000\ + \051\000\051\000\051\000\051\000\051\000\051\000\051\000\051\000\ + \051\000\051\000\051\000\051\000\051\000\051\000\051\000\051\000\ + \051\000\051\000\051\000\051\000\051\000\051\000\051\000\052\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \052\000\052\000\255\255\052\000\052\000\052\000\052\000\052\000\ + \052\000\052\000\052\000\052\000\052\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\052\000\052\000\052\000\052\000\ + \052\000\052\000\052\000\052\000\052\000\052\000\052\000\052\000\ + \052\000\052\000\052\000\052\000\052\000\052\000\052\000\052\000\ + \052\000\052\000\052\000\052\000\052\000\052\000\255\255\255\255\ + \255\255\255\255\052\000\255\255\052\000\052\000\052\000\052\000\ + \052\000\052\000\052\000\052\000\052\000\052\000\052\000\052\000\ + \052\000\052\000\052\000\052\000\052\000\052\000\052\000\052\000\ + \052\000\052\000\052\000\052\000\052\000\052\000\053\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\053\000\ + \053\000\255\255\053\000\053\000\053\000\053\000\053\000\053\000\ + \053\000\053\000\053\000\053\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\053\000\053\000\053\000\053\000\053\000\ + \053\000\053\000\053\000\053\000\053\000\053\000\053\000\053\000\ + \053\000\053\000\053\000\053\000\053\000\053\000\053\000\053\000\ + \053\000\053\000\053\000\053\000\053\000\255\255\255\255\255\255\ + \255\255\053\000\255\255\053\000\053\000\053\000\053\000\053\000\ + \053\000\053\000\053\000\053\000\053\000\053\000\053\000\053\000\ + \053\000\053\000\053\000\053\000\053\000\053\000\053\000\053\000\ + \053\000\053\000\053\000\053\000\053\000\054\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\054\000\054\000\ + \255\255\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ + \054\000\054\000\054\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\054\000\054\000\054\000\054\000\054\000\054\000\ + \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ + \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ + \054\000\054\000\054\000\054\000\255\255\255\255\255\255\255\255\ + \054\000\255\255\054\000\054\000\054\000\054\000\054\000\054\000\ + \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ + \054\000\054\000\054\000\054\000\054\000\054\000\054\000\054\000\ + \054\000\054\000\054\000\054\000\055\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\055\000\055\000\255\255\ + \055\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\ + \055\000\055\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\055\000\055\000\055\000\055\000\055\000\055\000\055\000\ + \055\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\ + \055\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\ + \055\000\055\000\055\000\255\255\255\255\255\255\255\255\055\000\ + \255\255\055\000\055\000\055\000\055\000\055\000\055\000\055\000\ + \055\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\ + \055\000\055\000\055\000\055\000\055\000\055\000\055\000\055\000\ + \055\000\055\000\055\000\056\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\056\000\056\000\255\255\056\000\ + \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ + \056\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ + \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ + \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ + \056\000\056\000\255\255\255\255\255\255\255\255\056\000\255\255\ + \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ + \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ + \056\000\056\000\056\000\056\000\056\000\056\000\056\000\056\000\ + \056\000\056\000\057\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\057\000\057\000\255\255\057\000\057\000\ + \057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\057\000\ + \057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\ + \057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\ + \057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\ + \057\000\255\255\255\255\255\255\255\255\057\000\255\255\057\000\ + \057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\ + \057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\ + \057\000\057\000\057\000\057\000\057\000\057\000\057\000\057\000\ + \057\000\058\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\058\000\058\000\255\255\058\000\058\000\058\000\ + \058\000\058\000\058\000\058\000\058\000\058\000\058\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\058\000\058\000\ + \058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\ + \058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\ + \058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\ + \255\255\255\255\255\255\255\255\058\000\255\255\058\000\058\000\ + \058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\ + \058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\ + \058\000\058\000\058\000\058\000\058\000\058\000\058\000\058\000\ + \059\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\059\000\059\000\255\255\059\000\059\000\059\000\059\000\ + \059\000\059\000\059\000\059\000\059\000\059\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\059\000\059\000\059\000\ + \059\000\059\000\059\000\059\000\059\000\059\000\059\000\059\000\ + \059\000\059\000\059\000\059\000\059\000\059\000\059\000\059\000\ + \059\000\059\000\059\000\059\000\059\000\059\000\059\000\255\255\ + \255\255\255\255\255\255\059\000\255\255\059\000\059\000\059\000\ + \059\000\059\000\059\000\059\000\059\000\059\000\059\000\059\000\ + \059\000\059\000\059\000\059\000\059\000\059\000\059\000\059\000\ + \059\000\059\000\059\000\059\000\059\000\059\000\059\000\060\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \060\000\060\000\255\255\060\000\060\000\060\000\060\000\060\000\ + \060\000\060\000\060\000\060\000\060\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\060\000\060\000\060\000\060\000\ + \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ + \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ + \060\000\060\000\060\000\060\000\060\000\060\000\255\255\255\255\ + \255\255\255\255\060\000\255\255\060\000\060\000\060\000\060\000\ + \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ + \060\000\060\000\060\000\060\000\060\000\060\000\060\000\060\000\ + \060\000\060\000\060\000\060\000\060\000\060\000\061\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\061\000\ + \061\000\255\255\061\000\061\000\061\000\061\000\061\000\061\000\ + \061\000\061\000\061\000\061\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\061\000\061\000\061\000\061\000\061\000\ + \061\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\ + \061\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\ + \061\000\061\000\061\000\061\000\061\000\255\255\255\255\255\255\ + \255\255\061\000\255\255\061\000\061\000\061\000\061\000\061\000\ + \061\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\ + \061\000\061\000\061\000\061\000\061\000\061\000\061\000\061\000\ + \061\000\061\000\061\000\061\000\061\000\062\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\062\000\062\000\ + \255\255\062\000\062\000\062\000\062\000\062\000\062\000\062\000\ + \062\000\062\000\062\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\062\000\062\000\062\000\062\000\062\000\062\000\ + \062\000\062\000\062\000\062\000\062\000\062\000\062\000\062\000\ + \062\000\062\000\062\000\062\000\062\000\062\000\062\000\062\000\ + \062\000\062\000\062\000\062\000\255\255\255\255\255\255\255\255\ + \062\000\255\255\062\000\062\000\062\000\062\000\062\000\062\000\ + \062\000\062\000\062\000\062\000\062\000\062\000\062\000\062\000\ + \062\000\062\000\062\000\062\000\062\000\062\000\062\000\062\000\ + \062\000\062\000\062\000\062\000\063\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\063\000\063\000\255\255\ + \063\000\063\000\063\000\063\000\063\000\063\000\063\000\063\000\ + \063\000\063\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\063\000\063\000\063\000\063\000\063\000\063\000\063\000\ + \063\000\063\000\063\000\063\000\063\000\063\000\063\000\063\000\ + \063\000\063\000\063\000\063\000\063\000\063\000\063\000\063\000\ + \063\000\063\000\063\000\255\255\255\255\255\255\255\255\063\000\ + \255\255\063\000\063\000\063\000\063\000\063\000\063\000\063\000\ + \063\000\063\000\063\000\063\000\063\000\063\000\063\000\063\000\ + \063\000\063\000\063\000\063\000\063\000\063\000\063\000\063\000\ + \063\000\063\000\063\000\064\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\064\000\064\000\255\255\064\000\ + \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\ + \064\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\ + \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\ + \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\ + \064\000\064\000\255\255\255\255\255\255\255\255\064\000\255\255\ + \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\ + \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\ + \064\000\064\000\064\000\064\000\064\000\064\000\064\000\064\000\ + \064\000\064\000\065\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\065\000\065\000\255\255\065\000\065\000\ + \065\000\065\000\065\000\065\000\065\000\065\000\065\000\065\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\065\000\ + \065\000\065\000\065\000\065\000\065\000\065\000\065\000\065\000\ + \065\000\065\000\065\000\065\000\065\000\065\000\065\000\065\000\ + \065\000\065\000\065\000\065\000\065\000\065\000\065\000\065\000\ + \065\000\255\255\255\255\255\255\255\255\065\000\255\255\065\000\ + \065\000\065\000\065\000\065\000\065\000\065\000\065\000\065\000\ + \065\000\065\000\065\000\065\000\065\000\065\000\065\000\065\000\ + \065\000\065\000\065\000\065\000\065\000\065\000\065\000\065\000\ + \065\000\066\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\066\000\066\000\255\255\066\000\066\000\066\000\ + \066\000\066\000\066\000\066\000\066\000\066\000\066\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\066\000\066\000\ + \066\000\066\000\066\000\066\000\066\000\066\000\066\000\066\000\ + \066\000\066\000\066\000\066\000\066\000\066\000\066\000\066\000\ + \066\000\066\000\066\000\066\000\066\000\066\000\066\000\066\000\ + \255\255\255\255\255\255\255\255\066\000\255\255\066\000\066\000\ + \066\000\066\000\066\000\066\000\066\000\066\000\066\000\066\000\ + \066\000\066\000\066\000\066\000\066\000\066\000\066\000\066\000\ + \066\000\066\000\066\000\066\000\066\000\066\000\066\000\066\000\ + \067\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\067\000\067\000\255\255\067\000\067\000\067\000\067\000\ + \067\000\067\000\067\000\067\000\067\000\067\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\067\000\067\000\067\000\ + \067\000\067\000\067\000\067\000\067\000\067\000\067\000\067\000\ + \067\000\067\000\067\000\067\000\067\000\067\000\067\000\067\000\ + \067\000\067\000\067\000\067\000\067\000\067\000\067\000\255\255\ + \255\255\255\255\255\255\067\000\255\255\067\000\067\000\067\000\ + \067\000\067\000\067\000\067\000\067\000\067\000\067\000\067\000\ + \067\000\067\000\067\000\067\000\067\000\067\000\067\000\067\000\ + \067\000\067\000\067\000\067\000\067\000\067\000\067\000\068\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \068\000\068\000\255\255\068\000\068\000\068\000\068\000\068\000\ + \068\000\068\000\068\000\068\000\068\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\068\000\068\000\068\000\068\000\ + \068\000\068\000\068\000\068\000\068\000\068\000\068\000\068\000\ + \068\000\068\000\068\000\068\000\068\000\068\000\068\000\068\000\ + \068\000\068\000\068\000\068\000\068\000\068\000\255\255\255\255\ + \255\255\255\255\068\000\255\255\068\000\068\000\068\000\068\000\ + \068\000\068\000\068\000\068\000\068\000\068\000\068\000\068\000\ + \068\000\068\000\068\000\068\000\068\000\068\000\068\000\068\000\ + \068\000\068\000\068\000\068\000\068\000\068\000\069\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\069\000\ + \069\000\255\255\069\000\069\000\069\000\069\000\069\000\069\000\ + \069\000\069\000\069\000\069\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\069\000\069\000\069\000\069\000\069\000\ + \069\000\069\000\069\000\069\000\069\000\069\000\069\000\069\000\ + \069\000\069\000\069\000\069\000\069\000\069\000\069\000\069\000\ + \069\000\069\000\069\000\069\000\069\000\255\255\255\255\255\255\ + \255\255\069\000\255\255\069\000\069\000\069\000\069\000\069\000\ + \069\000\069\000\069\000\069\000\069\000\069\000\069\000\069\000\ + \069\000\069\000\069\000\069\000\069\000\069\000\069\000\069\000\ + \069\000\069\000\069\000\069\000\069\000\070\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\070\000\070\000\ + \255\255\070\000\070\000\070\000\070\000\070\000\070\000\070\000\ + \070\000\070\000\070\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\070\000\070\000\070\000\070\000\070\000\070\000\ + \070\000\070\000\070\000\070\000\070\000\070\000\070\000\070\000\ + \070\000\070\000\070\000\070\000\070\000\070\000\070\000\070\000\ + \070\000\070\000\070\000\070\000\255\255\255\255\255\255\255\255\ + \070\000\255\255\070\000\070\000\070\000\070\000\070\000\070\000\ + \070\000\070\000\070\000\070\000\070\000\070\000\070\000\070\000\ + \070\000\070\000\070\000\070\000\070\000\070\000\070\000\070\000\ + \070\000\070\000\070\000\070\000\071\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\071\000\071\000\255\255\ + \071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\ + \071\000\071\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\071\000\071\000\071\000\071\000\071\000\071\000\071\000\ + \071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\ + \071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\ + \071\000\071\000\071\000\255\255\255\255\255\255\255\255\071\000\ + \255\255\071\000\071\000\071\000\071\000\071\000\071\000\071\000\ + \071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\ + \071\000\071\000\071\000\071\000\071\000\071\000\071\000\071\000\ + \071\000\071\000\071\000\072\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\072\000\072\000\255\255\072\000\ + \072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\ + \072\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\ + \072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\ + \072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\ + \072\000\072\000\255\255\255\255\255\255\255\255\072\000\255\255\ + \072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\ + \072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\ + \072\000\072\000\072\000\072\000\072\000\072\000\072\000\072\000\ + \072\000\072\000\073\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\073\000\073\000\255\255\073\000\073\000\ + \073\000\073\000\073\000\073\000\073\000\073\000\073\000\073\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\073\000\ + \073\000\073\000\073\000\073\000\073\000\073\000\073\000\073\000\ + \073\000\073\000\073\000\073\000\073\000\073\000\073\000\073\000\ + \073\000\073\000\073\000\073\000\073\000\073\000\073\000\073\000\ + \073\000\255\255\255\255\255\255\255\255\073\000\255\255\073\000\ + \073\000\073\000\073\000\073\000\073\000\073\000\073\000\073\000\ + \073\000\073\000\073\000\073\000\073\000\073\000\073\000\073\000\ + \073\000\073\000\073\000\073\000\073\000\073\000\073\000\073\000\ + \073\000\074\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\074\000\074\000\255\255\074\000\074\000\074\000\ + \074\000\074\000\074\000\074\000\074\000\074\000\074\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\074\000\074\000\ + \074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\ + \074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\ + \074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\ + \255\255\255\255\255\255\255\255\074\000\255\255\074\000\074\000\ + \074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\ + \074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\ + \074\000\074\000\074\000\074\000\074\000\074\000\074\000\074\000\ + \075\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\075\000\075\000\255\255\075\000\075\000\075\000\075\000\ + \075\000\075\000\075\000\075\000\075\000\075\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\075\000\075\000\075\000\ + \075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\ + \075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\ + \075\000\075\000\075\000\075\000\075\000\075\000\075\000\255\255\ + \255\255\255\255\255\255\075\000\255\255\075\000\075\000\075\000\ + \075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\ + \075\000\075\000\075\000\075\000\075\000\075\000\075\000\075\000\ + \075\000\075\000\075\000\075\000\075\000\075\000\075\000\076\000\ + \255\255\255\255\255\255\076\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\076\000\076\000\255\255\076\000\ + \076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\ + \076\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\ + \076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\ + \076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\ + \076\000\076\000\255\255\255\255\255\255\255\255\076\000\255\255\ + \076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\ + \076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\ + \076\000\076\000\076\000\076\000\076\000\076\000\076\000\076\000\ + \076\000\076\000\078\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\078\000\078\000\255\255\078\000\078\000\ + \078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\078\000\ + \078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\ + \078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\ + \078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\ + \078\000\255\255\255\255\255\255\255\255\078\000\255\255\078\000\ + \078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\ + \078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\ + \078\000\078\000\078\000\078\000\078\000\078\000\078\000\078\000\ + \078\000\079\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\079\000\079\000\255\255\079\000\079\000\079\000\ + \079\000\079\000\079\000\079\000\079\000\079\000\079\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\079\000\079\000\ + \079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\ + \079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\ + \079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\ + \255\255\255\255\255\255\255\255\079\000\255\255\079\000\079\000\ + \079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\ + \079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\ + \079\000\079\000\079\000\079\000\079\000\079\000\079\000\079\000\ + \080\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\080\000\080\000\255\255\080\000\080\000\080\000\080\000\ + \080\000\080\000\080\000\080\000\080\000\080\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\080\000\080\000\080\000\ + \080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\ + \080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\ + \080\000\080\000\080\000\080\000\080\000\080\000\080\000\255\255\ + \255\255\255\255\255\255\080\000\255\255\080\000\080\000\080\000\ + \080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\ + \080\000\080\000\080\000\080\000\080\000\080\000\080\000\080\000\ + \080\000\080\000\080\000\080\000\080\000\080\000\080\000\081\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \081\000\081\000\255\255\081\000\081\000\081\000\081\000\081\000\ + \081\000\081\000\081\000\081\000\081\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\081\000\081\000\081\000\081\000\ + \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ + \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ + \081\000\081\000\081\000\081\000\081\000\081\000\255\255\255\255\ + \255\255\255\255\081\000\255\255\081\000\081\000\081\000\081\000\ + \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ + \081\000\081\000\081\000\081\000\081\000\081\000\081\000\081\000\ + \081\000\081\000\081\000\081\000\081\000\081\000\082\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\082\000\ + \082\000\255\255\082\000\082\000\082\000\082\000\082\000\082\000\ + \082\000\082\000\082\000\082\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\082\000\082\000\082\000\082\000\082\000\ + \082\000\082\000\082\000\082\000\082\000\082\000\082\000\082\000\ + \082\000\082\000\082\000\082\000\082\000\082\000\082\000\082\000\ + \082\000\082\000\082\000\082\000\082\000\255\255\255\255\255\255\ + \255\255\082\000\255\255\082\000\082\000\082\000\082\000\082\000\ + \082\000\082\000\082\000\082\000\082\000\082\000\082\000\082\000\ + \082\000\082\000\082\000\082\000\082\000\082\000\082\000\082\000\ + \082\000\082\000\082\000\082\000\082\000\083\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\083\000\083\000\ + \255\255\083\000\083\000\083\000\083\000\083\000\083\000\083\000\ + \083\000\083\000\083\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\083\000\083\000\083\000\083\000\083\000\083\000\ + \083\000\083\000\083\000\083\000\083\000\083\000\083\000\083\000\ + \083\000\083\000\083\000\083\000\083\000\083\000\083\000\083\000\ + \083\000\083\000\083\000\083\000\255\255\255\255\255\255\255\255\ + \083\000\255\255\083\000\083\000\083\000\083\000\083\000\083\000\ + \083\000\083\000\083\000\083\000\083\000\083\000\083\000\083\000\ + \083\000\083\000\083\000\083\000\083\000\083\000\083\000\083\000\ + \083\000\083\000\083\000\083\000\084\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\084\000\084\000\255\255\ + \084\000\084\000\084\000\084\000\084\000\084\000\084\000\084\000\ + \084\000\084\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\084\000\084\000\084\000\084\000\084\000\084\000\084\000\ + \084\000\084\000\084\000\084\000\084\000\084\000\084\000\084\000\ + \084\000\084\000\084\000\084\000\084\000\084\000\084\000\084\000\ + \084\000\084\000\084\000\255\255\255\255\255\255\255\255\084\000\ + \255\255\084\000\084\000\084\000\084\000\084\000\084\000\084\000\ + \084\000\084\000\084\000\084\000\084\000\084\000\084\000\084\000\ + \084\000\084\000\084\000\084\000\084\000\084\000\084\000\084\000\ + \084\000\084\000\084\000\085\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\085\000\085\000\255\255\085\000\ + \085\000\085\000\085\000\085\000\085\000\085\000\085\000\085\000\ + \085\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \085\000\085\000\085\000\085\000\085\000\085\000\085\000\085\000\ + \085\000\085\000\085\000\085\000\085\000\085\000\085\000\085\000\ + \085\000\085\000\085\000\085\000\085\000\085\000\085\000\085\000\ + \085\000\085\000\255\255\255\255\255\255\255\255\085\000\255\255\ + \085\000\085\000\085\000\085\000\085\000\085\000\085\000\085\000\ + \085\000\085\000\085\000\085\000\085\000\085\000\085\000\085\000\ + \085\000\085\000\085\000\085\000\085\000\085\000\085\000\085\000\ + \085\000\085\000\086\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\086\000\086\000\255\255\086\000\086\000\ + \086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\086\000\ + \086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\ + \086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\ + \086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\ + \086\000\255\255\255\255\255\255\255\255\086\000\255\255\086\000\ + \086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\ + \086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\ + \086\000\086\000\086\000\086\000\086\000\086\000\086\000\086\000\ + \086\000\087\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\087\000\087\000\255\255\087\000\087\000\087\000\ + \087\000\087\000\087\000\087\000\087\000\087\000\087\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\087\000\087\000\ + \087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\ + \087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\ + \087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\ + \255\255\255\255\255\255\255\255\087\000\255\255\087\000\087\000\ + \087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\ + \087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\ + \087\000\087\000\087\000\087\000\087\000\087\000\087\000\087\000\ + \088\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\088\000\088\000\255\255\088\000\088\000\088\000\088\000\ + \088\000\088\000\088\000\088\000\088\000\088\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\088\000\088\000\088\000\ + \088\000\088\000\088\000\088\000\088\000\088\000\088\000\088\000\ + \088\000\088\000\088\000\088\000\088\000\088\000\088\000\088\000\ + \088\000\088\000\088\000\088\000\088\000\088\000\088\000\255\255\ + \255\255\255\255\255\255\088\000\255\255\088\000\088\000\088\000\ + \088\000\088\000\088\000\088\000\088\000\088\000\088\000\088\000\ + \088\000\088\000\088\000\088\000\088\000\088\000\088\000\088\000\ + \088\000\088\000\088\000\088\000\088\000\088\000\088\000\089\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \089\000\089\000\255\255\089\000\089\000\089\000\089\000\089\000\ + \089\000\089\000\089\000\089\000\089\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\089\000\089\000\089\000\089\000\ + \089\000\089\000\089\000\089\000\089\000\089\000\089\000\089\000\ + \089\000\089\000\089\000\089\000\089\000\089\000\089\000\089\000\ + \089\000\089\000\089\000\089\000\089\000\089\000\255\255\255\255\ + \255\255\255\255\089\000\255\255\089\000\089\000\089\000\089\000\ + \089\000\089\000\089\000\089\000\089\000\089\000\089\000\089\000\ + \089\000\089\000\089\000\089\000\089\000\089\000\089\000\089\000\ + \089\000\089\000\089\000\089\000\089\000\089\000\090\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\090\000\ + \090\000\255\255\090\000\090\000\090\000\090\000\090\000\090\000\ + \090\000\090\000\090\000\090\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\090\000\090\000\090\000\090\000\090\000\ + \090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\ + \090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\ + \090\000\090\000\090\000\090\000\090\000\255\255\255\255\255\255\ + \255\255\090\000\255\255\090\000\090\000\090\000\090\000\090\000\ + \090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\ + \090\000\090\000\090\000\090\000\090\000\090\000\090\000\090\000\ + \090\000\090\000\090\000\090\000\090\000\091\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\091\000\091\000\ + \255\255\091\000\091\000\091\000\091\000\091\000\091\000\091\000\ + \091\000\091\000\091\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\091\000\091\000\091\000\091\000\091\000\091\000\ + \091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\ + \091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\ + \091\000\091\000\091\000\091\000\255\255\255\255\255\255\255\255\ + \091\000\255\255\091\000\091\000\091\000\091\000\091\000\091\000\ + \091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\ + \091\000\091\000\091\000\091\000\091\000\091\000\091\000\091\000\ + \091\000\091\000\091\000\091\000\092\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\092\000\092\000\255\255\ + \092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\ + \092\000\092\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\092\000\092\000\092\000\092\000\092\000\092\000\092\000\ + \092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\ + \092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\ + \092\000\092\000\092\000\255\255\255\255\255\255\255\255\092\000\ + \255\255\092\000\092\000\092\000\092\000\092\000\092\000\092\000\ + \092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\ + \092\000\092\000\092\000\092\000\092\000\092\000\092\000\092\000\ + \092\000\092\000\092\000\093\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\093\000\093\000\255\255\093\000\ + \093\000\093\000\093\000\093\000\093\000\093\000\093\000\093\000\ + \093\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \093\000\093\000\093\000\093\000\093\000\093\000\093\000\093\000\ + \093\000\093\000\093\000\093\000\093\000\093\000\093\000\093\000\ + \093\000\093\000\093\000\093\000\093\000\093\000\093\000\093\000\ + \093\000\093\000\255\255\255\255\255\255\255\255\093\000\255\255\ + \093\000\093\000\093\000\093\000\093\000\093\000\093\000\093\000\ + \093\000\093\000\093\000\093\000\093\000\093\000\093\000\093\000\ + \093\000\093\000\093\000\093\000\093\000\093\000\093\000\093\000\ + \093\000\093\000\094\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\094\000\094\000\255\255\094\000\094\000\ + \094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\094\000\ + \094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\ + \094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\ + \094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\ + \094\000\255\255\255\255\255\255\255\255\094\000\255\255\094\000\ + \094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\ + \094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\ + \094\000\094\000\094\000\094\000\094\000\094\000\094\000\094\000\ + \094\000\095\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\095\000\095\000\255\255\095\000\095\000\095\000\ + \095\000\095\000\095\000\095\000\095\000\095\000\095\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\095\000\095\000\ + \095\000\095\000\095\000\095\000\095\000\095\000\095\000\095\000\ + \095\000\095\000\095\000\095\000\095\000\095\000\095\000\095\000\ + \095\000\095\000\095\000\095\000\095\000\095\000\095\000\095\000\ + \255\255\255\255\255\255\255\255\095\000\255\255\095\000\095\000\ + \095\000\095\000\095\000\095\000\095\000\095\000\095\000\095\000\ + \095\000\095\000\095\000\095\000\095\000\095\000\095\000\095\000\ + \095\000\095\000\095\000\095\000\095\000\095\000\095\000\095\000\ + \096\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\096\000\096\000\255\255\096\000\096\000\096\000\096\000\ + \096\000\096\000\096\000\096\000\096\000\096\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\096\000\096\000\096\000\ + \096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\ + \096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\ + \096\000\096\000\096\000\096\000\096\000\096\000\096\000\255\255\ + \255\255\255\255\255\255\096\000\255\255\096\000\096\000\096\000\ + \096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\ + \096\000\096\000\096\000\096\000\096\000\096\000\096\000\096\000\ + \096\000\096\000\096\000\096\000\096\000\096\000\096\000\097\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \097\000\097\000\255\255\097\000\097\000\097\000\097\000\097\000\ + \097\000\097\000\097\000\097\000\097\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\097\000\097\000\097\000\097\000\ + \097\000\097\000\097\000\097\000\097\000\097\000\097\000\097\000\ + \097\000\097\000\097\000\097\000\097\000\097\000\097\000\097\000\ + \097\000\097\000\097\000\097\000\097\000\097\000\255\255\255\255\ + \255\255\255\255\097\000\255\255\097\000\097\000\097\000\097\000\ + \097\000\097\000\097\000\097\000\097\000\097\000\097\000\097\000\ + \097\000\097\000\097\000\097\000\097\000\097\000\097\000\097\000\ + \097\000\097\000\097\000\097\000\097\000\097\000\098\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\098\000\ + \098\000\255\255\098\000\098\000\098\000\098\000\098\000\098\000\ + \098\000\098\000\098\000\098\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\098\000\098\000\098\000\098\000\098\000\ + \098\000\098\000\098\000\098\000\098\000\098\000\098\000\098\000\ + \098\000\098\000\098\000\098\000\098\000\098\000\098\000\098\000\ + \098\000\098\000\098\000\098\000\098\000\255\255\255\255\255\255\ + \255\255\098\000\255\255\098\000\098\000\098\000\098\000\098\000\ + \098\000\098\000\098\000\098\000\098\000\098\000\098\000\098\000\ + \098\000\098\000\098\000\098\000\098\000\098\000\098\000\098\000\ + \098\000\098\000\098\000\098\000\098\000\099\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\099\000\099\000\ + \255\255\099\000\099\000\099\000\099\000\099\000\099\000\099\000\ + \099\000\099\000\099\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\099\000\099\000\099\000\099\000\099\000\099\000\ + \099\000\099\000\099\000\099\000\099\000\099\000\099\000\099\000\ + \099\000\099\000\099\000\099\000\099\000\099\000\099\000\099\000\ + \099\000\099\000\099\000\099\000\255\255\255\255\255\255\255\255\ + \099\000\255\255\099\000\099\000\099\000\099\000\099\000\099\000\ + \099\000\099\000\099\000\099\000\099\000\099\000\099\000\099\000\ + \099\000\099\000\099\000\099\000\099\000\099\000\099\000\099\000\ + \099\000\099\000\099\000\099\000\100\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\100\000\100\000\255\255\ + \100\000\100\000\100\000\100\000\100\000\100\000\100\000\100\000\ + \100\000\100\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\100\000\100\000\100\000\100\000\100\000\100\000\100\000\ + \100\000\100\000\100\000\100\000\100\000\100\000\100\000\100\000\ + \100\000\100\000\100\000\100\000\100\000\100\000\100\000\100\000\ + \100\000\100\000\100\000\255\255\255\255\255\255\255\255\100\000\ + \255\255\100\000\100\000\100\000\100\000\100\000\100\000\100\000\ + \100\000\100\000\100\000\100\000\100\000\100\000\100\000\100\000\ + \100\000\100\000\100\000\100\000\100\000\100\000\100\000\100\000\ + \100\000\100\000\100\000\101\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\101\000\101\000\255\255\101\000\ + \101\000\101\000\101\000\101\000\101\000\101\000\101\000\101\000\ + \101\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \101\000\101\000\101\000\101\000\101\000\101\000\101\000\101\000\ + \101\000\101\000\101\000\101\000\101\000\101\000\101\000\101\000\ + \101\000\101\000\101\000\101\000\101\000\101\000\101\000\101\000\ + \101\000\101\000\255\255\255\255\255\255\255\255\101\000\255\255\ + \101\000\101\000\101\000\101\000\101\000\101\000\101\000\101\000\ + \101\000\101\000\101\000\101\000\101\000\101\000\101\000\101\000\ + \101\000\101\000\101\000\101\000\101\000\101\000\101\000\101\000\ + \101\000\101\000\102\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\102\000\102\000\255\255\102\000\102\000\ + \102\000\102\000\102\000\102\000\102\000\102\000\102\000\102\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\102\000\ + \102\000\102\000\102\000\102\000\102\000\102\000\102\000\102\000\ + \102\000\102\000\102\000\102\000\102\000\102\000\102\000\102\000\ + \102\000\102\000\102\000\102\000\102\000\102\000\102\000\102\000\ + \102\000\255\255\255\255\255\255\255\255\102\000\255\255\102\000\ + \102\000\102\000\102\000\102\000\102\000\102\000\102\000\102\000\ + \102\000\102\000\102\000\102\000\102\000\102\000\102\000\102\000\ + \102\000\102\000\102\000\102\000\102\000\102\000\102\000\102\000\ + \102\000\103\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\103\000\103\000\255\255\103\000\103\000\103\000\ + \103\000\103\000\103\000\103\000\103\000\103\000\103\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\103\000\103\000\ + \103\000\103\000\103\000\103\000\103\000\103\000\103\000\103\000\ + \103\000\103\000\103\000\103\000\103\000\103\000\103\000\103\000\ + \103\000\103\000\103\000\103\000\103\000\103\000\103\000\103\000\ + \255\255\255\255\255\255\255\255\103\000\255\255\103\000\103\000\ + \103\000\103\000\103\000\103\000\103\000\103\000\103\000\103\000\ + \103\000\103\000\103\000\103\000\103\000\103\000\103\000\103\000\ + \103\000\103\000\103\000\103\000\103\000\103\000\103\000\103\000\ + \104\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\104\000\104\000\255\255\104\000\104\000\104\000\104\000\ + \104\000\104\000\104\000\104\000\104\000\104\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\104\000\104\000\104\000\ + \104\000\104\000\104\000\104\000\104\000\104\000\104\000\104\000\ + \104\000\104\000\104\000\104\000\104\000\104\000\104\000\104\000\ + \104\000\104\000\104\000\104\000\104\000\104\000\104\000\255\255\ + \255\255\255\255\255\255\104\000\255\255\104\000\104\000\104\000\ + \104\000\104\000\104\000\104\000\104\000\104\000\104\000\104\000\ + \104\000\104\000\104\000\104\000\104\000\104\000\104\000\104\000\ + \104\000\104\000\104\000\104\000\104\000\104\000\104\000\105\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \105\000\105\000\255\255\105\000\105\000\105\000\105\000\105\000\ + \105\000\105\000\105\000\105\000\105\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\105\000\105\000\105\000\105\000\ + \105\000\105\000\105\000\105\000\105\000\105\000\105\000\105\000\ + \105\000\105\000\105\000\105\000\105\000\105\000\105\000\105\000\ + \105\000\105\000\105\000\105\000\105\000\105\000\255\255\255\255\ + \255\255\255\255\105\000\255\255\105\000\105\000\105\000\105\000\ + \105\000\105\000\105\000\105\000\105\000\105\000\105\000\105\000\ + \105\000\105\000\105\000\105\000\105\000\105\000\105\000\105\000\ + \105\000\105\000\105\000\105\000\105\000\105\000\106\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\106\000\ + \106\000\255\255\106\000\106\000\106\000\106\000\106\000\106\000\ + \106\000\106\000\106\000\106\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\106\000\106\000\106\000\106\000\106\000\ + \106\000\106\000\106\000\106\000\106\000\106\000\106\000\106\000\ + \106\000\106\000\106\000\106\000\106\000\106\000\106\000\106\000\ + \106\000\106\000\106\000\106\000\106\000\255\255\255\255\255\255\ + \255\255\106\000\255\255\106\000\106\000\106\000\106\000\106\000\ + \106\000\106\000\106\000\106\000\106\000\106\000\106\000\106\000\ + \106\000\106\000\106\000\106\000\106\000\106\000\106\000\106\000\ + \106\000\106\000\106\000\106\000\106\000\107\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\107\000\107\000\ + \255\255\107\000\107\000\107\000\107\000\107\000\107\000\107\000\ + \107\000\107\000\107\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\107\000\107\000\107\000\107\000\107\000\107\000\ + \107\000\107\000\107\000\107\000\107\000\107\000\107\000\107\000\ + \107\000\107\000\107\000\107\000\107\000\107\000\107\000\107\000\ + \107\000\107\000\107\000\107\000\255\255\255\255\255\255\255\255\ + \107\000\255\255\107\000\107\000\107\000\107\000\107\000\107\000\ + \107\000\107\000\107\000\107\000\107\000\107\000\107\000\107\000\ + \107\000\107\000\107\000\107\000\107\000\107\000\107\000\107\000\ + \107\000\107\000\107\000\107\000\108\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\108\000\108\000\255\255\ + \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\ + \108\000\108\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\108\000\108\000\108\000\108\000\108\000\108\000\108\000\ + \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\ + \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\ + \108\000\108\000\108\000\255\255\255\255\255\255\255\255\108\000\ + \255\255\108\000\108\000\108\000\108\000\108\000\108\000\108\000\ + \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\ + \108\000\108\000\108\000\108\000\108\000\108\000\108\000\108\000\ + \108\000\108\000\108\000\109\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\109\000\109\000\255\255\109\000\ + \109\000\109\000\109\000\109\000\109\000\109\000\109\000\109\000\ + \109\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \109\000\109\000\109\000\109\000\109\000\109\000\109\000\109\000\ + \109\000\109\000\109\000\109\000\109\000\109\000\109\000\109\000\ + \109\000\109\000\109\000\109\000\109\000\109\000\109\000\109\000\ + \109\000\109\000\255\255\255\255\255\255\255\255\109\000\255\255\ + \109\000\109\000\109\000\109\000\109\000\109\000\109\000\109\000\ + \109\000\109\000\109\000\109\000\109\000\109\000\109\000\109\000\ + \109\000\109\000\109\000\109\000\109\000\109\000\109\000\109\000\ + \109\000\109\000\110\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\110\000\110\000\255\255\110\000\110\000\ + \110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\110\000\ + \110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\ + \110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\ + \110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\ + \110\000\255\255\255\255\255\255\255\255\110\000\255\255\110\000\ + \110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\ + \110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\ + \110\000\110\000\110\000\110\000\110\000\110\000\110\000\110\000\ + \110\000\111\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\111\000\111\000\255\255\111\000\111\000\111\000\ + \111\000\111\000\111\000\111\000\111\000\111\000\111\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\111\000\111\000\ + \111\000\111\000\111\000\111\000\111\000\111\000\111\000\111\000\ + \111\000\111\000\111\000\111\000\111\000\111\000\111\000\111\000\ + \111\000\111\000\111\000\111\000\111\000\111\000\111\000\111\000\ + \255\255\255\255\255\255\255\255\111\000\255\255\111\000\111\000\ + \111\000\111\000\111\000\111\000\111\000\111\000\111\000\111\000\ + \111\000\111\000\111\000\111\000\111\000\111\000\111\000\111\000\ + \111\000\111\000\111\000\111\000\111\000\111\000\111\000\111\000\ + \112\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\112\000\112\000\255\255\112\000\112\000\112\000\112\000\ + \112\000\112\000\112\000\112\000\112\000\112\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\112\000\112\000\112\000\ + \112\000\112\000\112\000\112\000\112\000\112\000\112\000\112\000\ + \112\000\112\000\112\000\112\000\112\000\112\000\112\000\112\000\ + \112\000\112\000\112\000\112\000\112\000\112\000\112\000\255\255\ + \255\255\255\255\255\255\112\000\255\255\112\000\112\000\112\000\ + \112\000\112\000\112\000\112\000\112\000\112\000\112\000\112\000\ + \112\000\112\000\112\000\112\000\112\000\112\000\112\000\112\000\ + \112\000\112\000\112\000\112\000\112\000\112\000\112\000\113\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \113\000\113\000\255\255\113\000\113\000\113\000\113\000\113\000\ + \113\000\113\000\113\000\113\000\113\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\113\000\113\000\113\000\113\000\ + \113\000\113\000\113\000\113\000\113\000\113\000\113\000\113\000\ + \113\000\113\000\113\000\113\000\113\000\113\000\113\000\113\000\ + \113\000\113\000\113\000\113\000\113\000\113\000\255\255\255\255\ + \255\255\255\255\113\000\255\255\113\000\113\000\113\000\113\000\ + \113\000\113\000\113\000\113\000\113\000\113\000\113\000\113\000\ + \113\000\113\000\113\000\113\000\113\000\113\000\113\000\113\000\ + \113\000\113\000\113\000\113\000\113\000\113\000\114\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\114\000\ + \114\000\255\255\114\000\114\000\114\000\114\000\114\000\114\000\ + \114\000\114\000\114\000\114\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\114\000\114\000\114\000\114\000\114\000\ + \114\000\114\000\114\000\114\000\114\000\114\000\114\000\114\000\ + \114\000\114\000\114\000\114\000\114\000\114\000\114\000\114\000\ + \114\000\114\000\114\000\114\000\114\000\255\255\255\255\255\255\ + \255\255\114\000\255\255\114\000\114\000\114\000\114\000\114\000\ + \114\000\114\000\114\000\114\000\114\000\114\000\114\000\114\000\ + \114\000\114\000\114\000\114\000\114\000\114\000\114\000\114\000\ + \114\000\114\000\114\000\114\000\114\000\115\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\115\000\115\000\ + \255\255\115\000\115\000\115\000\115\000\115\000\115\000\115\000\ + \115\000\115\000\115\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\115\000\115\000\115\000\115\000\115\000\115\000\ + \115\000\115\000\115\000\115\000\115\000\115\000\115\000\115\000\ + \115\000\115\000\115\000\115\000\115\000\115\000\115\000\115\000\ + \115\000\115\000\115\000\115\000\255\255\255\255\255\255\255\255\ + \115\000\255\255\115\000\115\000\115\000\115\000\115\000\115\000\ + \115\000\115\000\115\000\115\000\115\000\115\000\115\000\115\000\ + \115\000\115\000\115\000\115\000\115\000\115\000\115\000\115\000\ + \115\000\115\000\115\000\115\000\116\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\116\000\116\000\255\255\ + \116\000\116\000\116\000\116\000\116\000\116\000\116\000\116\000\ + \116\000\116\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\116\000\116\000\116\000\116\000\116\000\116\000\116\000\ + \116\000\116\000\116\000\116\000\116\000\116\000\116\000\116\000\ + \116\000\116\000\116\000\116\000\116\000\116\000\116\000\116\000\ + \116\000\116\000\116\000\255\255\255\255\255\255\255\255\116\000\ + \255\255\116\000\116\000\116\000\116\000\116\000\116\000\116\000\ + \116\000\116\000\116\000\116\000\116\000\116\000\116\000\116\000\ + \116\000\116\000\116\000\116\000\116\000\116\000\116\000\116\000\ + \116\000\116\000\116\000\117\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\117\000\117\000\255\255\117\000\ + \117\000\117\000\117\000\117\000\117\000\117\000\117\000\117\000\ + \117\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \117\000\117\000\117\000\117\000\117\000\117\000\117\000\117\000\ + \117\000\117\000\117\000\117\000\117\000\117\000\117\000\117\000\ + \117\000\117\000\117\000\117\000\117\000\117\000\117\000\117\000\ + \117\000\117\000\255\255\255\255\255\255\255\255\117\000\255\255\ + \117\000\117\000\117\000\117\000\117\000\117\000\117\000\117\000\ + \117\000\117\000\117\000\117\000\117\000\117\000\117\000\117\000\ + \117\000\117\000\117\000\117\000\117\000\117\000\117\000\117\000\ + \117\000\117\000\118\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\118\000\118\000\255\255\118\000\118\000\ + \118\000\118\000\118\000\118\000\118\000\118\000\118\000\118\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\118\000\ + \118\000\118\000\118\000\118\000\118\000\118\000\118\000\118\000\ + \118\000\118\000\118\000\118\000\118\000\118\000\118\000\118\000\ + \118\000\118\000\118\000\118\000\118\000\118\000\118\000\118\000\ + \118\000\255\255\255\255\255\255\255\255\118\000\255\255\118\000\ + \118\000\118\000\118\000\118\000\118\000\118\000\118\000\118\000\ + \118\000\118\000\118\000\118\000\118\000\118\000\118\000\118\000\ + \118\000\118\000\118\000\118\000\118\000\118\000\118\000\118\000\ + \118\000\119\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\119\000\119\000\255\255\119\000\119\000\119\000\ + \119\000\119\000\119\000\119\000\119\000\119\000\119\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\119\000\119\000\ + \119\000\119\000\119\000\119\000\119\000\119\000\119\000\119\000\ + \119\000\119\000\119\000\119\000\119\000\119\000\119\000\119\000\ + \119\000\119\000\119\000\119\000\119\000\119\000\119\000\119\000\ + \255\255\255\255\255\255\255\255\119\000\255\255\119\000\119\000\ + \119\000\119\000\119\000\119\000\119\000\119\000\119\000\119\000\ + \119\000\119\000\119\000\119\000\119\000\119\000\119\000\119\000\ + \119\000\119\000\119\000\119\000\119\000\119\000\119\000\119\000\ + \120\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\120\000\120\000\255\255\120\000\120\000\120\000\120\000\ + \120\000\120\000\120\000\120\000\120\000\120\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\120\000\120\000\120\000\ + \120\000\120\000\120\000\120\000\120\000\120\000\120\000\120\000\ + \120\000\120\000\120\000\120\000\120\000\120\000\120\000\120\000\ + \120\000\120\000\120\000\120\000\120\000\120\000\120\000\255\255\ + \255\255\255\255\255\255\120\000\255\255\120\000\120\000\120\000\ + \120\000\120\000\120\000\120\000\120\000\120\000\120\000\120\000\ + \120\000\120\000\120\000\120\000\120\000\120\000\120\000\120\000\ + \120\000\120\000\120\000\120\000\120\000\120\000\120\000\121\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \121\000\121\000\255\255\121\000\121\000\121\000\121\000\121\000\ + \121\000\121\000\121\000\121\000\121\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\121\000\121\000\121\000\121\000\ + \121\000\121\000\121\000\121\000\121\000\121\000\121\000\121\000\ + \121\000\121\000\121\000\121\000\121\000\121\000\121\000\121\000\ + \121\000\121\000\121\000\121\000\121\000\121\000\255\255\255\255\ + \255\255\255\255\121\000\255\255\121\000\121\000\121\000\121\000\ + \121\000\121\000\121\000\121\000\121\000\121\000\121\000\121\000\ + \121\000\121\000\121\000\121\000\121\000\121\000\121\000\121\000\ + \121\000\121\000\121\000\121\000\121\000\121\000\122\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\122\000\ + \122\000\255\255\122\000\122\000\122\000\122\000\122\000\122\000\ + \122\000\122\000\122\000\122\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\122\000\122\000\122\000\122\000\122\000\ + \122\000\122\000\122\000\122\000\122\000\122\000\122\000\122\000\ + \122\000\122\000\122\000\122\000\122\000\122\000\122\000\122\000\ + \122\000\122\000\122\000\122\000\122\000\255\255\255\255\255\255\ + \255\255\122\000\255\255\122\000\122\000\122\000\122\000\122\000\ + \122\000\122\000\122\000\122\000\122\000\122\000\122\000\122\000\ + \122\000\122\000\122\000\122\000\122\000\122\000\122\000\122\000\ + \122\000\122\000\122\000\122\000\122\000\123\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\123\000\123\000\ + \255\255\123\000\123\000\123\000\123\000\123\000\123\000\123\000\ + \123\000\123\000\123\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\123\000\123\000\123\000\123\000\123\000\123\000\ + \123\000\123\000\123\000\123\000\123\000\123\000\123\000\123\000\ + \123\000\123\000\123\000\123\000\123\000\123\000\123\000\123\000\ + \123\000\123\000\123\000\123\000\255\255\255\255\255\255\255\255\ + \123\000\255\255\123\000\123\000\123\000\123\000\123\000\123\000\ + \123\000\123\000\123\000\123\000\123\000\123\000\123\000\123\000\ + \123\000\123\000\123\000\123\000\123\000\123\000\123\000\123\000\ + \123\000\123\000\123\000\123\000\124\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\124\000\124\000\255\255\ + \124\000\124\000\124\000\124\000\124\000\124\000\124\000\124\000\ + \124\000\124\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\124\000\124\000\124\000\124\000\124\000\124\000\124\000\ + \124\000\124\000\124\000\124\000\124\000\124\000\124\000\124\000\ + \124\000\124\000\124\000\124\000\124\000\124\000\124\000\124\000\ + \124\000\124\000\124\000\255\255\255\255\255\255\255\255\124\000\ + \255\255\124\000\124\000\124\000\124\000\124\000\124\000\124\000\ + \124\000\124\000\124\000\124\000\124\000\124\000\124\000\124\000\ + \124\000\124\000\124\000\124\000\124\000\124\000\124\000\124\000\ + \124\000\124\000\124\000\125\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\125\000\125\000\255\255\125\000\ + \125\000\125\000\125\000\125\000\125\000\125\000\125\000\125\000\ + \125\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \125\000\125\000\125\000\125\000\125\000\125\000\125\000\125\000\ + \125\000\125\000\125\000\125\000\125\000\125\000\125\000\125\000\ + \125\000\125\000\125\000\125\000\125\000\125\000\125\000\125\000\ + \125\000\125\000\255\255\255\255\255\255\255\255\125\000\255\255\ + \125\000\125\000\125\000\125\000\125\000\125\000\125\000\125\000\ + \125\000\125\000\125\000\125\000\125\000\125\000\125\000\125\000\ + \125\000\125\000\125\000\125\000\125\000\125\000\125\000\125\000\ + \125\000\125\000\126\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\126\000\126\000\255\255\126\000\126\000\ + \126\000\126\000\126\000\126\000\126\000\126\000\126\000\126\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\126\000\ + \126\000\126\000\126\000\126\000\126\000\126\000\126\000\126\000\ + \126\000\126\000\126\000\126\000\126\000\126\000\126\000\126\000\ + \126\000\126\000\126\000\126\000\126\000\126\000\126\000\126\000\ + \126\000\255\255\255\255\255\255\255\255\126\000\255\255\126\000\ + \126\000\126\000\126\000\126\000\126\000\126\000\126\000\126\000\ + \126\000\126\000\126\000\126\000\126\000\126\000\126\000\126\000\ + \126\000\126\000\126\000\126\000\126\000\126\000\126\000\126\000\ + \126\000\127\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\127\000\127\000\255\255\127\000\127\000\127\000\ + \127\000\127\000\127\000\127\000\127\000\127\000\127\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\127\000\127\000\ + \127\000\127\000\127\000\127\000\127\000\127\000\127\000\127\000\ + \127\000\127\000\127\000\127\000\127\000\127\000\127\000\127\000\ + \127\000\127\000\127\000\127\000\127\000\127\000\127\000\127\000\ + \255\255\255\255\255\255\255\255\127\000\255\255\127\000\127\000\ + \127\000\127\000\127\000\127\000\127\000\127\000\127\000\127\000\ + \127\000\127\000\127\000\127\000\127\000\127\000\127\000\127\000\ + \127\000\127\000\127\000\127\000\127\000\127\000\127\000\127\000\ + \128\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\128\000\128\000\255\255\128\000\128\000\128\000\128\000\ + \128\000\128\000\128\000\128\000\128\000\128\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\128\000\128\000\128\000\ + \128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\ + \128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\ + \128\000\128\000\128\000\128\000\128\000\128\000\128\000\255\255\ + \255\255\255\255\255\255\128\000\255\255\128\000\128\000\128\000\ + \128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\ + \128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\ + \128\000\128\000\128\000\128\000\128\000\128\000\128\000\129\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \129\000\129\000\255\255\129\000\129\000\129\000\129\000\129\000\ + \129\000\129\000\129\000\129\000\129\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\129\000\129\000\129\000\129\000\ + \129\000\129\000\129\000\129\000\129\000\129\000\129\000\129\000\ + \129\000\129\000\129\000\129\000\129\000\129\000\129\000\129\000\ + \129\000\129\000\129\000\129\000\129\000\129\000\255\255\255\255\ + \255\255\255\255\129\000\255\255\129\000\129\000\129\000\129\000\ + \129\000\129\000\129\000\129\000\129\000\129\000\129\000\129\000\ + \129\000\129\000\129\000\129\000\129\000\129\000\129\000\129\000\ + \129\000\129\000\129\000\129\000\129\000\129\000\130\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\130\000\ + \130\000\255\255\130\000\130\000\130\000\130\000\130\000\130\000\ + \130\000\130\000\130\000\130\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\130\000\130\000\130\000\130\000\130\000\ + \130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\ + \130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\ + \130\000\130\000\130\000\130\000\130\000\255\255\255\255\255\255\ + \255\255\130\000\255\255\130\000\130\000\130\000\130\000\130\000\ + \130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\ + \130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\ + \130\000\130\000\130\000\130\000\130\000\131\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\131\000\131\000\ + \255\255\131\000\131\000\131\000\131\000\131\000\131\000\131\000\ + \131\000\131\000\131\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\131\000\131\000\131\000\131\000\131\000\131\000\ + \131\000\131\000\131\000\131\000\131\000\131\000\131\000\131\000\ + \131\000\131\000\131\000\131\000\131\000\131\000\131\000\131\000\ + \131\000\131\000\131\000\131\000\255\255\255\255\255\255\255\255\ + \131\000\255\255\131\000\131\000\131\000\131\000\131\000\131\000\ + \131\000\131\000\131\000\131\000\131\000\131\000\131\000\131\000\ + \131\000\131\000\131\000\131\000\131\000\131\000\131\000\131\000\ + \131\000\131\000\131\000\131\000\132\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\132\000\132\000\255\255\ + \132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\ + \132\000\132\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\132\000\132\000\132\000\132\000\132\000\132\000\132\000\ + \132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\ + \132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\ + \132\000\132\000\132\000\255\255\255\255\255\255\255\255\132\000\ + \255\255\132\000\132\000\132\000\132\000\132\000\132\000\132\000\ + \132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\ + \132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\ + \132\000\132\000\132\000\133\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\133\000\133\000\255\255\133\000\ + \133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ + \133\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ + \133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ + \133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ + \133\000\133\000\255\255\255\255\255\255\255\255\133\000\255\255\ + \133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ + \133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ + \133\000\133\000\133\000\133\000\133\000\133\000\133\000\133\000\ + \133\000\133\000\134\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\134\000\134\000\255\255\134\000\134\000\ + \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\134\000\ + \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ + \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ + \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ + \134\000\255\255\255\255\255\255\255\255\134\000\255\255\134\000\ + \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ + \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ + \134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\ + \134\000\135\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\135\000\135\000\255\255\135\000\135\000\135\000\ + \135\000\135\000\135\000\135\000\135\000\135\000\135\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\135\000\135\000\ + \135\000\135\000\135\000\135\000\135\000\135\000\135\000\135\000\ + \135\000\135\000\135\000\135\000\135\000\135\000\135\000\135\000\ + \135\000\135\000\135\000\135\000\135\000\135\000\135\000\135\000\ + \255\255\255\255\255\255\255\255\135\000\255\255\135\000\135\000\ + \135\000\135\000\135\000\135\000\135\000\135\000\135\000\135\000\ + \135\000\135\000\135\000\135\000\135\000\135\000\135\000\135\000\ + \135\000\135\000\135\000\135\000\135\000\135\000\135\000\135\000\ + \136\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\136\000\136\000\255\255\136\000\136\000\136\000\136\000\ + \136\000\136\000\136\000\136\000\136\000\136\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\136\000\136\000\136\000\ + \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\ + \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\ + \136\000\136\000\136\000\136\000\136\000\136\000\136\000\255\255\ + \255\255\255\255\255\255\136\000\255\255\136\000\136\000\136\000\ + \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\ + \136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\ + \136\000\136\000\136\000\136\000\136\000\136\000\136\000\137\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \137\000\137\000\255\255\137\000\137\000\137\000\137\000\137\000\ + \137\000\137\000\137\000\137\000\137\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\137\000\137\000\137\000\137\000\ + \137\000\137\000\137\000\137\000\137\000\137\000\137\000\137\000\ + \137\000\137\000\137\000\137\000\137\000\137\000\137\000\137\000\ + \137\000\137\000\137\000\137\000\137\000\137\000\255\255\255\255\ + \255\255\255\255\137\000\255\255\137\000\137\000\137\000\137\000\ + \137\000\137\000\137\000\137\000\137\000\137\000\137\000\137\000\ + \137\000\137\000\137\000\137\000\137\000\137\000\137\000\137\000\ + \137\000\137\000\137\000\137\000\137\000\137\000\138\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\138\000\ + \138\000\255\255\138\000\138\000\138\000\138\000\138\000\138\000\ + \138\000\138\000\138\000\138\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\138\000\138\000\138\000\138\000\138\000\ + \138\000\138\000\138\000\138\000\138\000\138\000\138\000\138\000\ + \138\000\138\000\138\000\138\000\138\000\138\000\138\000\138\000\ + \138\000\138\000\138\000\138\000\138\000\255\255\255\255\255\255\ + \255\255\138\000\255\255\138\000\138\000\138\000\138\000\138\000\ + \138\000\138\000\138\000\138\000\138\000\138\000\138\000\138\000\ + \138\000\138\000\138\000\138\000\138\000\138\000\138\000\138\000\ + \138\000\138\000\138\000\138\000\138\000\139\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\139\000\139\000\ + \255\255\139\000\139\000\139\000\139\000\139\000\139\000\139\000\ + \139\000\139\000\139\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\139\000\139\000\139\000\139\000\139\000\139\000\ + \139\000\139\000\139\000\139\000\139\000\139\000\139\000\139\000\ + \139\000\139\000\139\000\139\000\139\000\139\000\139\000\139\000\ + \139\000\139\000\139\000\139\000\255\255\255\255\255\255\255\255\ + \139\000\255\255\139\000\139\000\139\000\139\000\139\000\139\000\ + \139\000\139\000\139\000\139\000\139\000\139\000\139\000\139\000\ + \139\000\139\000\139\000\139\000\139\000\139\000\139\000\139\000\ + \139\000\139\000\139\000\139\000\140\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\140\000\140\000\255\255\ + \140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\ + \140\000\140\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\140\000\140\000\140\000\140\000\140\000\140\000\140\000\ + \140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\ + \140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\ + \140\000\140\000\140\000\255\255\255\255\255\255\255\255\140\000\ + \255\255\140\000\140\000\140\000\140\000\140\000\140\000\140\000\ + \140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\ + \140\000\140\000\140\000\140\000\140\000\140\000\140\000\140\000\ + \140\000\140\000\140\000\141\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\141\000\141\000\255\255\141\000\ + \141\000\141\000\141\000\141\000\141\000\141\000\141\000\141\000\ + \141\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \141\000\141\000\141\000\141\000\141\000\141\000\141\000\141\000\ + \141\000\141\000\141\000\141\000\141\000\141\000\141\000\141\000\ + \141\000\141\000\141\000\141\000\141\000\141\000\141\000\141\000\ + \141\000\141\000\255\255\255\255\255\255\255\255\141\000\255\255\ + \141\000\141\000\141\000\141\000\141\000\141\000\141\000\141\000\ + \141\000\141\000\141\000\141\000\141\000\141\000\141\000\141\000\ + \141\000\141\000\141\000\141\000\141\000\141\000\141\000\141\000\ + \141\000\141\000\142\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\142\000\142\000\255\255\142\000\142\000\ + \142\000\142\000\142\000\142\000\142\000\142\000\142\000\142\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\142\000\ + \142\000\142\000\142\000\142\000\142\000\142\000\142\000\142\000\ + \142\000\142\000\142\000\142\000\142\000\142\000\142\000\142\000\ + \142\000\142\000\142\000\142\000\142\000\142\000\142\000\142\000\ + \142\000\255\255\255\255\255\255\255\255\142\000\255\255\142\000\ + \142\000\142\000\142\000\142\000\142\000\142\000\142\000\142\000\ + \142\000\142\000\142\000\142\000\142\000\142\000\142\000\142\000\ + \142\000\142\000\142\000\142\000\142\000\142\000\142\000\142\000\ + \142\000\143\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\143\000\143\000\255\255\143\000\143\000\143\000\ + \143\000\143\000\143\000\143\000\143\000\143\000\143\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\143\000\143\000\ + \143\000\143\000\143\000\143\000\143\000\143\000\143\000\143\000\ + \143\000\143\000\143\000\143\000\143\000\143\000\143\000\143\000\ + \143\000\143\000\143\000\143\000\143\000\143\000\143\000\143\000\ + \255\255\255\255\255\255\255\255\143\000\255\255\143\000\143\000\ + \143\000\143\000\143\000\143\000\143\000\143\000\143\000\143\000\ + \143\000\143\000\143\000\143\000\143\000\143\000\143\000\143\000\ + \143\000\143\000\143\000\143\000\143\000\143\000\143\000\143\000\ + \144\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\144\000\144\000\255\255\144\000\144\000\144\000\144\000\ + \144\000\144\000\144\000\144\000\144\000\144\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\144\000\144\000\144\000\ + \144\000\144\000\144\000\144\000\144\000\144\000\144\000\144\000\ + \144\000\144\000\144\000\144\000\144\000\144\000\144\000\144\000\ + \144\000\144\000\144\000\144\000\144\000\144\000\144\000\255\255\ + \255\255\255\255\255\255\144\000\255\255\144\000\144\000\144\000\ + \144\000\144\000\144\000\144\000\144\000\144\000\144\000\144\000\ + \144\000\144\000\144\000\144\000\144\000\144\000\144\000\144\000\ + \144\000\144\000\144\000\144\000\144\000\144\000\144\000\145\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \145\000\145\000\255\255\145\000\145\000\145\000\145\000\145\000\ + \145\000\145\000\145\000\145\000\145\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\145\000\145\000\145\000\145\000\ + \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ + \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ + \145\000\145\000\145\000\145\000\145\000\145\000\255\255\255\255\ + \255\255\255\255\145\000\255\255\145\000\145\000\145\000\145\000\ + \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ + \145\000\145\000\145\000\145\000\145\000\145\000\145\000\145\000\ + \145\000\145\000\145\000\145\000\145\000\145\000\146\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\146\000\ + \146\000\255\255\146\000\146\000\146\000\146\000\146\000\146\000\ + \146\000\146\000\146\000\146\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\146\000\146\000\146\000\146\000\146\000\ + \146\000\146\000\146\000\146\000\146\000\146\000\146\000\146\000\ + \146\000\146\000\146\000\146\000\146\000\146\000\146\000\146\000\ + \146\000\146\000\146\000\146\000\146\000\255\255\255\255\255\255\ + \255\255\146\000\255\255\146\000\146\000\146\000\146\000\146\000\ + \146\000\146\000\146\000\146\000\146\000\146\000\146\000\146\000\ + \146\000\146\000\146\000\146\000\146\000\146\000\146\000\146\000\ + \146\000\146\000\146\000\146\000\146\000\147\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\147\000\147\000\ + \255\255\147\000\147\000\147\000\147\000\147\000\147\000\147\000\ + \147\000\147\000\147\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\147\000\147\000\147\000\147\000\147\000\147\000\ + \147\000\147\000\147\000\147\000\147\000\147\000\147\000\147\000\ + \147\000\147\000\147\000\147\000\147\000\147\000\147\000\147\000\ + \147\000\147\000\147\000\147\000\255\255\255\255\255\255\255\255\ + \147\000\255\255\147\000\147\000\147\000\147\000\147\000\147\000\ + \147\000\147\000\147\000\147\000\147\000\147\000\147\000\147\000\ + \147\000\147\000\147\000\147\000\147\000\147\000\147\000\147\000\ + \147\000\147\000\147\000\147\000\148\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\148\000\148\000\255\255\ + \148\000\148\000\148\000\148\000\148\000\148\000\148\000\148\000\ + \148\000\148\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\148\000\148\000\148\000\148\000\148\000\148\000\148\000\ + \148\000\148\000\148\000\148\000\148\000\148\000\148\000\148\000\ + \148\000\148\000\148\000\148\000\148\000\148\000\148\000\148\000\ + \148\000\148\000\148\000\255\255\255\255\255\255\255\255\148\000\ + \255\255\148\000\148\000\148\000\148\000\148\000\148\000\148\000\ + \148\000\148\000\148\000\148\000\148\000\148\000\148\000\148\000\ + \148\000\148\000\148\000\148\000\148\000\148\000\148\000\148\000\ + \148\000\148\000\148\000\149\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\149\000\149\000\255\255\149\000\ + \149\000\149\000\149\000\149\000\149\000\149\000\149\000\149\000\ + \149\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \149\000\149\000\149\000\149\000\149\000\149\000\149\000\149\000\ + \149\000\149\000\149\000\149\000\149\000\149\000\149\000\149\000\ + \149\000\149\000\149\000\149\000\149\000\149\000\149\000\149\000\ + \149\000\149\000\255\255\255\255\255\255\255\255\149\000\255\255\ + \149\000\149\000\149\000\149\000\149\000\149\000\149\000\149\000\ + \149\000\149\000\149\000\149\000\149\000\149\000\149\000\149\000\ + \149\000\149\000\149\000\149\000\149\000\149\000\149\000\149\000\ + \149\000\149\000\150\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\150\000\150\000\255\255\150\000\150\000\ + \150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\150\000\ + \150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\ + \150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\ + \150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\ + \150\000\255\255\255\255\255\255\255\255\150\000\255\255\150\000\ + \150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\ + \150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\ + \150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\ + \150\000\151\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\151\000\151\000\255\255\151\000\151\000\151\000\ + \151\000\151\000\151\000\151\000\151\000\151\000\151\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\151\000\151\000\ + \151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\ + \151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\ + \151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\ + \255\255\255\255\255\255\255\255\151\000\255\255\151\000\151\000\ + \151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\ + \151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\ + \151\000\151\000\151\000\151\000\151\000\151\000\151\000\151\000\ + \152\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\152\000\152\000\255\255\152\000\152\000\152\000\152\000\ + \152\000\152\000\152\000\152\000\152\000\152\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\152\000\152\000\152\000\ + \152\000\152\000\152\000\152\000\152\000\152\000\152\000\152\000\ + \152\000\152\000\152\000\152\000\152\000\152\000\152\000\152\000\ + \152\000\152\000\152\000\152\000\152\000\152\000\152\000\255\255\ + \255\255\255\255\255\255\152\000\255\255\152\000\152\000\152\000\ + \152\000\152\000\152\000\152\000\152\000\152\000\152\000\152\000\ + \152\000\152\000\152\000\152\000\152\000\152\000\152\000\152\000\ + \152\000\152\000\152\000\152\000\152\000\152\000\152\000\153\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \153\000\153\000\255\255\153\000\153\000\153\000\153\000\153\000\ + \153\000\153\000\153\000\153\000\153\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\153\000\153\000\153\000\153\000\ + \153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\ + \153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\ + \153\000\153\000\153\000\153\000\153\000\153\000\255\255\255\255\ + \255\255\255\255\153\000\255\255\153\000\153\000\153\000\153\000\ + \153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\ + \153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\ + \153\000\153\000\153\000\153\000\153\000\153\000\154\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\154\000\ + \154\000\255\255\154\000\154\000\154\000\154\000\154\000\154\000\ + \154\000\154\000\154\000\154\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\154\000\154\000\154\000\154\000\154\000\ + \154\000\154\000\154\000\154\000\154\000\154\000\154\000\154\000\ + \154\000\154\000\154\000\154\000\154\000\154\000\154\000\154\000\ + \154\000\154\000\154\000\154\000\154\000\255\255\255\255\255\255\ + \255\255\154\000\255\255\154\000\154\000\154\000\154\000\154\000\ + \154\000\154\000\154\000\154\000\154\000\154\000\154\000\154\000\ + \154\000\154\000\154\000\154\000\154\000\154\000\154\000\154\000\ + \154\000\154\000\154\000\154\000\154\000\155\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\155\000\155\000\ + \255\255\155\000\155\000\155\000\155\000\155\000\155\000\155\000\ + \155\000\155\000\155\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\155\000\155\000\155\000\155\000\155\000\155\000\ + \155\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\ + \155\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\ + \155\000\155\000\155\000\155\000\255\255\255\255\255\255\255\255\ + \155\000\255\255\155\000\155\000\155\000\155\000\155\000\155\000\ + \155\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\ + \155\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\ + \155\000\155\000\155\000\155\000\156\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\156\000\156\000\255\255\ + \156\000\156\000\156\000\156\000\156\000\156\000\156\000\156\000\ + \156\000\156\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\156\000\156\000\156\000\156\000\156\000\156\000\156\000\ + \156\000\156\000\156\000\156\000\156\000\156\000\156\000\156\000\ + \156\000\156\000\156\000\156\000\156\000\156\000\156\000\156\000\ + \156\000\156\000\156\000\255\255\255\255\255\255\255\255\156\000\ + \255\255\156\000\156\000\156\000\156\000\156\000\156\000\156\000\ + \156\000\156\000\156\000\156\000\156\000\156\000\156\000\156\000\ + \156\000\156\000\156\000\156\000\156\000\156\000\156\000\156\000\ + \156\000\156\000\156\000\157\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\157\000\157\000\255\255\157\000\ + \157\000\157\000\157\000\157\000\157\000\157\000\157\000\157\000\ + \157\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \157\000\157\000\157\000\157\000\157\000\157\000\157\000\157\000\ + \157\000\157\000\157\000\157\000\157\000\157\000\157\000\157\000\ + \157\000\157\000\157\000\157\000\157\000\157\000\157\000\157\000\ + \157\000\157\000\255\255\255\255\255\255\255\255\157\000\255\255\ + \157\000\157\000\157\000\157\000\157\000\157\000\157\000\157\000\ + \157\000\157\000\157\000\157\000\157\000\157\000\157\000\157\000\ + \157\000\157\000\157\000\157\000\157\000\157\000\157\000\157\000\ + \157\000\157\000\158\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\158\000\158\000\255\255\158\000\158\000\ + \158\000\158\000\158\000\158\000\158\000\158\000\158\000\158\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\158\000\ + \158\000\158\000\158\000\158\000\158\000\158\000\158\000\158\000\ + \158\000\158\000\158\000\158\000\158\000\158\000\158\000\158\000\ + \158\000\158\000\158\000\158\000\158\000\158\000\158\000\158\000\ + \158\000\255\255\255\255\255\255\255\255\158\000\255\255\158\000\ + \158\000\158\000\158\000\158\000\158\000\158\000\158\000\158\000\ + \158\000\158\000\158\000\158\000\158\000\158\000\158\000\158\000\ + \158\000\158\000\158\000\158\000\158\000\158\000\158\000\158\000\ + \158\000\159\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\159\000\159\000\255\255\159\000\159\000\159\000\ + \159\000\159\000\159\000\159\000\159\000\159\000\159\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\159\000\159\000\ + \159\000\159\000\159\000\159\000\159\000\159\000\159\000\159\000\ + \159\000\159\000\159\000\159\000\159\000\159\000\159\000\159\000\ + \159\000\159\000\159\000\159\000\159\000\159\000\159\000\159\000\ + \255\255\255\255\255\255\255\255\159\000\255\255\159\000\159\000\ + \159\000\159\000\159\000\159\000\159\000\159\000\159\000\159\000\ + \159\000\159\000\159\000\159\000\159\000\159\000\159\000\159\000\ + \159\000\159\000\159\000\159\000\159\000\159\000\159\000\159\000\ + \160\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\160\000\160\000\255\255\160\000\160\000\160\000\160\000\ + \160\000\160\000\160\000\160\000\160\000\160\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\160\000\160\000\160\000\ + \160\000\160\000\160\000\160\000\160\000\160\000\160\000\160\000\ + \160\000\160\000\160\000\160\000\160\000\160\000\160\000\160\000\ + \160\000\160\000\160\000\160\000\160\000\160\000\160\000\255\255\ + \255\255\255\255\255\255\160\000\255\255\160\000\160\000\160\000\ + \160\000\160\000\160\000\160\000\160\000\160\000\160\000\160\000\ + \160\000\160\000\160\000\160\000\160\000\160\000\160\000\160\000\ + \160\000\160\000\160\000\160\000\160\000\160\000\160\000\161\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \161\000\161\000\255\255\161\000\161\000\161\000\161\000\161\000\ + \161\000\161\000\161\000\161\000\161\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\161\000\161\000\161\000\161\000\ + \161\000\161\000\161\000\161\000\161\000\161\000\161\000\161\000\ + \161\000\161\000\161\000\161\000\161\000\161\000\161\000\161\000\ + \161\000\161\000\161\000\161\000\161\000\161\000\255\255\255\255\ + \255\255\255\255\161\000\255\255\161\000\161\000\161\000\161\000\ + \161\000\161\000\161\000\161\000\161\000\161\000\161\000\161\000\ + \161\000\161\000\161\000\161\000\161\000\161\000\161\000\161\000\ + \161\000\161\000\161\000\161\000\161\000\161\000\162\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\162\000\ + \162\000\255\255\162\000\162\000\162\000\162\000\162\000\162\000\ + \162\000\162\000\162\000\162\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\162\000\162\000\162\000\162\000\162\000\ + \162\000\162\000\162\000\162\000\162\000\162\000\162\000\162\000\ + \162\000\162\000\162\000\162\000\162\000\162\000\162\000\162\000\ + \162\000\162\000\162\000\162\000\162\000\255\255\255\255\255\255\ + \255\255\162\000\255\255\162\000\162\000\162\000\162\000\162\000\ + \162\000\162\000\162\000\162\000\162\000\162\000\162\000\162\000\ + \162\000\162\000\162\000\162\000\162\000\162\000\162\000\162\000\ + \162\000\162\000\162\000\162\000\162\000\163\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\163\000\163\000\ + \255\255\163\000\163\000\163\000\163\000\163\000\163\000\163\000\ + \163\000\163\000\163\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\163\000\163\000\163\000\163\000\163\000\163\000\ + \163\000\163\000\163\000\163\000\163\000\163\000\163\000\163\000\ + \163\000\163\000\163\000\163\000\163\000\163\000\163\000\163\000\ + \163\000\163\000\163\000\163\000\255\255\255\255\255\255\255\255\ + \163\000\255\255\163\000\163\000\163\000\163\000\163\000\163\000\ + \163\000\163\000\163\000\163\000\163\000\163\000\163\000\163\000\ + \163\000\163\000\163\000\163\000\163\000\163\000\163\000\163\000\ + \163\000\163\000\163\000\163\000\164\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\164\000\164\000\255\255\ + \164\000\164\000\164\000\164\000\164\000\164\000\164\000\164\000\ + \164\000\164\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\164\000\164\000\164\000\164\000\164\000\164\000\164\000\ + \164\000\164\000\164\000\164\000\164\000\164\000\164\000\164\000\ + \164\000\164\000\164\000\164\000\164\000\164\000\164\000\164\000\ + \164\000\164\000\164\000\255\255\255\255\255\255\255\255\164\000\ + \255\255\164\000\164\000\164\000\164\000\164\000\164\000\164\000\ + \164\000\164\000\164\000\164\000\164\000\164\000\164\000\164\000\ + \164\000\164\000\164\000\164\000\164\000\164\000\164\000\164\000\ + \164\000\164\000\164\000\166\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\166\000\166\000\255\255\166\000\ + \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ + \166\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ + \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ + \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ + \166\000\166\000\255\255\255\255\255\255\255\255\166\000\255\255\ + \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ + \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ + \166\000\166\000\166\000\166\000\166\000\166\000\166\000\166\000\ + \166\000\166\000\167\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\167\000\167\000\255\255\167\000\167\000\ + \167\000\167\000\167\000\167\000\167\000\167\000\167\000\167\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\167\000\ + \167\000\167\000\167\000\167\000\167\000\167\000\167\000\167\000\ + \167\000\167\000\167\000\167\000\167\000\167\000\167\000\167\000\ + \167\000\167\000\167\000\167\000\167\000\167\000\167\000\167\000\ + \167\000\255\255\255\255\255\255\255\255\167\000\255\255\167\000\ + \167\000\167\000\167\000\167\000\167\000\167\000\167\000\167\000\ + \167\000\167\000\167\000\167\000\167\000\167\000\167\000\167\000\ + \167\000\167\000\167\000\167\000\167\000\167\000\167\000\167\000\ + \167\000\168\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\168\000\168\000\255\255\168\000\168\000\168\000\ + \168\000\168\000\168\000\168\000\168\000\168\000\168\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\168\000\168\000\ + \168\000\168\000\168\000\168\000\168\000\168\000\168\000\168\000\ + \168\000\168\000\168\000\168\000\168\000\168\000\168\000\168\000\ + \168\000\168\000\168\000\168\000\168\000\168\000\168\000\168\000\ + \255\255\255\255\255\255\255\255\168\000\255\255\168\000\168\000\ + \168\000\168\000\168\000\168\000\168\000\168\000\168\000\168\000\ + \168\000\168\000\168\000\168\000\168\000\168\000\168\000\168\000\ + \168\000\168\000\168\000\168\000\168\000\168\000\168\000\168\000\ + \169\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\169\000\169\000\255\255\169\000\169\000\169\000\169\000\ + \169\000\169\000\169\000\169\000\169\000\169\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\169\000\169\000\169\000\ + \169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\ + \169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\ + \169\000\169\000\169\000\169\000\169\000\169\000\169\000\255\255\ + \255\255\255\255\255\255\169\000\255\255\169\000\169\000\169\000\ + \169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\ + \169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\ + \169\000\169\000\169\000\169\000\169\000\169\000\169\000\170\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \170\000\170\000\255\255\170\000\170\000\170\000\170\000\170\000\ + \170\000\170\000\170\000\170\000\170\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\170\000\170\000\170\000\170\000\ + \170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\ + \170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\ + \170\000\170\000\170\000\170\000\170\000\170\000\255\255\255\255\ + \255\255\255\255\170\000\255\255\170\000\170\000\170\000\170\000\ + \170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\ + \170\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\ + \170\000\170\000\170\000\170\000\170\000\170\000\171\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\171\000\ + \171\000\255\255\171\000\171\000\171\000\171\000\171\000\171\000\ + \171\000\171\000\171\000\171\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\171\000\171\000\171\000\171\000\171\000\ + \171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\ + \171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\ + \171\000\171\000\171\000\171\000\171\000\255\255\255\255\255\255\ + \255\255\171\000\255\255\171\000\171\000\171\000\171\000\171\000\ + \171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\ + \171\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\ + \171\000\171\000\171\000\171\000\171\000\172\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\172\000\172\000\ + \255\255\172\000\172\000\172\000\172\000\172\000\172\000\172\000\ + \172\000\172\000\172\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\172\000\172\000\172\000\172\000\172\000\172\000\ + \172\000\172\000\172\000\172\000\172\000\172\000\172\000\172\000\ + \172\000\172\000\172\000\172\000\172\000\172\000\172\000\172\000\ + \172\000\172\000\172\000\172\000\255\255\255\255\255\255\255\255\ + \172\000\255\255\172\000\172\000\172\000\172\000\172\000\172\000\ + \172\000\172\000\172\000\172\000\172\000\172\000\172\000\172\000\ + \172\000\172\000\172\000\172\000\172\000\172\000\172\000\172\000\ + \172\000\172\000\172\000\172\000\173\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\173\000\173\000\255\255\ + \173\000\173\000\173\000\173\000\173\000\173\000\173\000\173\000\ + \173\000\173\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\173\000\173\000\173\000\173\000\173\000\173\000\173\000\ + \173\000\173\000\173\000\173\000\173\000\173\000\173\000\173\000\ + \173\000\173\000\173\000\173\000\173\000\173\000\173\000\173\000\ + \173\000\173\000\173\000\255\255\255\255\255\255\255\255\173\000\ + \255\255\173\000\173\000\173\000\173\000\173\000\173\000\173\000\ + \173\000\173\000\173\000\173\000\173\000\173\000\173\000\173\000\ + \173\000\173\000\173\000\173\000\173\000\173\000\173\000\173\000\ + \173\000\173\000\173\000\174\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\174\000\174\000\255\255\174\000\ + \174\000\174\000\174\000\174\000\174\000\174\000\174\000\174\000\ + \174\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \174\000\174\000\174\000\174\000\174\000\174\000\174\000\174\000\ + \174\000\174\000\174\000\174\000\174\000\174\000\174\000\174\000\ + \174\000\174\000\174\000\174\000\174\000\174\000\174\000\174\000\ + \174\000\174\000\255\255\255\255\255\255\255\255\174\000\255\255\ + \174\000\174\000\174\000\174\000\174\000\174\000\174\000\174\000\ + \174\000\174\000\174\000\174\000\174\000\174\000\174\000\174\000\ + \174\000\174\000\174\000\174\000\174\000\174\000\174\000\174\000\ + \174\000\174\000\175\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\175\000\175\000\255\255\175\000\175\000\ + \175\000\175\000\175\000\175\000\175\000\175\000\175\000\175\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\175\000\ + \175\000\175\000\175\000\175\000\175\000\175\000\175\000\175\000\ + \175\000\175\000\175\000\175\000\175\000\175\000\175\000\175\000\ + \175\000\175\000\175\000\175\000\175\000\175\000\175\000\175\000\ + \175\000\255\255\255\255\255\255\255\255\175\000\255\255\175\000\ + \175\000\175\000\175\000\175\000\175\000\175\000\175\000\175\000\ + \175\000\175\000\175\000\175\000\175\000\175\000\175\000\175\000\ + \175\000\175\000\175\000\175\000\175\000\175\000\175\000\175\000\ + \175\000\176\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\176\000\176\000\255\255\176\000\176\000\176\000\ + \176\000\176\000\176\000\176\000\176\000\176\000\176\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\176\000\176\000\ + \176\000\176\000\176\000\176\000\176\000\176\000\176\000\176\000\ + \176\000\176\000\176\000\176\000\176\000\176\000\176\000\176\000\ + \176\000\176\000\176\000\176\000\176\000\176\000\176\000\176\000\ + \255\255\255\255\255\255\255\255\176\000\255\255\176\000\176\000\ + \176\000\176\000\176\000\176\000\176\000\176\000\176\000\176\000\ + \176\000\176\000\176\000\176\000\176\000\176\000\176\000\176\000\ + \176\000\176\000\176\000\176\000\176\000\176\000\176\000\176\000\ + \177\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\177\000\177\000\255\255\177\000\177\000\177\000\177\000\ + \177\000\177\000\177\000\177\000\177\000\177\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\177\000\177\000\177\000\ + \177\000\177\000\177\000\177\000\177\000\177\000\177\000\177\000\ + \177\000\177\000\177\000\177\000\177\000\177\000\177\000\177\000\ + \177\000\177\000\177\000\177\000\177\000\177\000\177\000\255\255\ + \255\255\255\255\255\255\177\000\255\255\177\000\177\000\177\000\ + \177\000\177\000\177\000\177\000\177\000\177\000\177\000\177\000\ + \177\000\177\000\177\000\177\000\177\000\177\000\177\000\177\000\ + \177\000\177\000\177\000\177\000\177\000\177\000\177\000\178\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \178\000\178\000\255\255\178\000\178\000\178\000\178\000\178\000\ + \178\000\178\000\178\000\178\000\178\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\178\000\178\000\178\000\178\000\ + \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ + \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ + \178\000\178\000\178\000\178\000\178\000\178\000\255\255\255\255\ + \255\255\255\255\178\000\255\255\178\000\178\000\178\000\178\000\ + \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ + \178\000\178\000\178\000\178\000\178\000\178\000\178\000\178\000\ + \178\000\178\000\178\000\178\000\178\000\178\000\179\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\179\000\ + \179\000\255\255\179\000\179\000\179\000\179\000\179\000\179\000\ + \179\000\179\000\179\000\179\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\179\000\179\000\179\000\179\000\179\000\ + \179\000\179\000\179\000\179\000\179\000\179\000\179\000\179\000\ + \179\000\179\000\179\000\179\000\179\000\179\000\179\000\179\000\ + \179\000\179\000\179\000\179\000\179\000\255\255\255\255\255\255\ + \255\255\179\000\255\255\179\000\179\000\179\000\179\000\179\000\ + \179\000\179\000\179\000\179\000\179\000\179\000\179\000\179\000\ + \179\000\179\000\179\000\179\000\179\000\179\000\179\000\179\000\ + \179\000\179\000\179\000\179\000\179\000\180\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\180\000\180\000\ + \255\255\180\000\180\000\180\000\180\000\180\000\180\000\180\000\ + \180\000\180\000\180\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\180\000\180\000\180\000\180\000\180\000\180\000\ + \180\000\180\000\180\000\180\000\180\000\180\000\180\000\180\000\ + \180\000\180\000\180\000\180\000\180\000\180\000\180\000\180\000\ + \180\000\180\000\180\000\180\000\255\255\255\255\255\255\255\255\ + \180\000\255\255\180\000\180\000\180\000\180\000\180\000\180\000\ + \180\000\180\000\180\000\180\000\180\000\180\000\180\000\180\000\ + \180\000\180\000\180\000\180\000\180\000\180\000\180\000\180\000\ + \180\000\180\000\180\000\180\000\181\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\181\000\181\000\255\255\ + \181\000\181\000\181\000\181\000\181\000\181\000\181\000\181\000\ + \181\000\181\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\181\000\181\000\181\000\181\000\181\000\181\000\181\000\ + \181\000\181\000\181\000\181\000\181\000\181\000\181\000\181\000\ + \181\000\181\000\181\000\181\000\181\000\181\000\181\000\181\000\ + \181\000\181\000\181\000\255\255\255\255\255\255\255\255\181\000\ + \255\255\181\000\181\000\181\000\181\000\181\000\181\000\181\000\ + \181\000\181\000\181\000\181\000\181\000\181\000\181\000\181\000\ + \181\000\181\000\181\000\181\000\181\000\181\000\181\000\181\000\ + \181\000\181\000\181\000\182\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\182\000\182\000\255\255\182\000\ + \182\000\182\000\182\000\182\000\182\000\182\000\182\000\182\000\ + \182\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \182\000\182\000\182\000\182\000\182\000\182\000\182\000\182\000\ + \182\000\182\000\182\000\182\000\182\000\182\000\182\000\182\000\ + \182\000\182\000\182\000\182\000\182\000\182\000\182\000\182\000\ + \182\000\182\000\255\255\255\255\255\255\255\255\182\000\255\255\ + \182\000\182\000\182\000\182\000\182\000\182\000\182\000\182\000\ + \182\000\182\000\182\000\182\000\182\000\182\000\182\000\182\000\ + \182\000\182\000\182\000\182\000\182\000\182\000\182\000\182\000\ + \182\000\182\000\183\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\183\000\183\000\255\255\183\000\183\000\ + \183\000\183\000\183\000\183\000\183\000\183\000\183\000\183\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\183\000\ + \183\000\183\000\183\000\183\000\183\000\183\000\183\000\183\000\ + \183\000\183\000\183\000\183\000\183\000\183\000\183\000\183\000\ + \183\000\183\000\183\000\183\000\183\000\183\000\183\000\183\000\ + \183\000\255\255\255\255\255\255\255\255\183\000\255\255\183\000\ + \183\000\183\000\183\000\183\000\183\000\183\000\183\000\183\000\ + \183\000\183\000\183\000\183\000\183\000\183\000\183\000\183\000\ + \183\000\183\000\183\000\183\000\183\000\183\000\183\000\183\000\ + \183\000\184\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\184\000\184\000\255\255\184\000\184\000\184\000\ + \184\000\184\000\184\000\184\000\184\000\184\000\184\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\184\000\184\000\ + \184\000\184\000\184\000\184\000\184\000\184\000\184\000\184\000\ + \184\000\184\000\184\000\184\000\184\000\184\000\184\000\184\000\ + \184\000\184\000\184\000\184\000\184\000\184\000\184\000\184\000\ + \255\255\255\255\255\255\255\255\184\000\255\255\184\000\184\000\ + \184\000\184\000\184\000\184\000\184\000\184\000\184\000\184\000\ + \184\000\184\000\184\000\184\000\184\000\184\000\184\000\184\000\ + \184\000\184\000\184\000\184\000\184\000\184\000\184\000\184\000\ + \185\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\185\000\185\000\255\255\185\000\185\000\185\000\185\000\ + \185\000\185\000\185\000\185\000\185\000\185\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\185\000\185\000\185\000\ + \185\000\185\000\185\000\185\000\185\000\185\000\185\000\185\000\ + \185\000\185\000\185\000\185\000\185\000\185\000\185\000\185\000\ + \185\000\185\000\185\000\185\000\185\000\185\000\185\000\255\255\ + \255\255\255\255\255\255\185\000\255\255\185\000\185\000\185\000\ + \185\000\185\000\185\000\185\000\185\000\185\000\185\000\185\000\ + \185\000\185\000\185\000\185\000\185\000\185\000\185\000\185\000\ + \185\000\185\000\185\000\185\000\185\000\185\000\185\000\186\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \186\000\186\000\255\255\186\000\186\000\186\000\186\000\186\000\ + \186\000\186\000\186\000\186\000\186\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\186\000\186\000\186\000\186\000\ + \186\000\186\000\186\000\186\000\186\000\186\000\186\000\186\000\ + \186\000\186\000\186\000\186\000\186\000\186\000\186\000\186\000\ + \186\000\186\000\186\000\186\000\186\000\186\000\255\255\255\255\ + \255\255\255\255\186\000\255\255\186\000\186\000\186\000\186\000\ + \186\000\186\000\186\000\186\000\186\000\186\000\186\000\186\000\ + \186\000\186\000\186\000\186\000\186\000\186\000\186\000\186\000\ + \186\000\186\000\186\000\186\000\186\000\186\000\187\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\187\000\ + \187\000\255\255\187\000\187\000\187\000\187\000\187\000\187\000\ + \187\000\187\000\187\000\187\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\187\000\187\000\187\000\187\000\187\000\ + \187\000\187\000\187\000\187\000\187\000\187\000\187\000\187\000\ + \187\000\187\000\187\000\187\000\187\000\187\000\187\000\187\000\ + \187\000\187\000\187\000\187\000\187\000\255\255\255\255\255\255\ + \255\255\187\000\255\255\187\000\187\000\187\000\187\000\187\000\ + \187\000\187\000\187\000\187\000\187\000\187\000\187\000\187\000\ + \187\000\187\000\187\000\187\000\187\000\187\000\187\000\187\000\ + \187\000\187\000\187\000\187\000\187\000\188\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\188\000\188\000\ + \255\255\188\000\188\000\188\000\188\000\188\000\188\000\188\000\ + \188\000\188\000\188\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\188\000\188\000\188\000\188\000\188\000\188\000\ + \188\000\188\000\188\000\188\000\188\000\188\000\188\000\188\000\ + \188\000\188\000\188\000\188\000\188\000\188\000\188\000\188\000\ + \188\000\188\000\188\000\188\000\255\255\255\255\255\255\255\255\ + \188\000\255\255\188\000\188\000\188\000\188\000\188\000\188\000\ + \188\000\188\000\188\000\188\000\188\000\188\000\188\000\188\000\ + \188\000\188\000\188\000\188\000\188\000\188\000\188\000\188\000\ + \188\000\188\000\188\000\188\000\189\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\189\000\189\000\255\255\ + \189\000\189\000\189\000\189\000\189\000\189\000\189\000\189\000\ + \189\000\189\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\189\000\189\000\189\000\189\000\189\000\189\000\189\000\ + \189\000\189\000\189\000\189\000\189\000\189\000\189\000\189\000\ + \189\000\189\000\189\000\189\000\189\000\189\000\189\000\189\000\ + \189\000\189\000\189\000\255\255\255\255\255\255\255\255\189\000\ + \255\255\189\000\189\000\189\000\189\000\189\000\189\000\189\000\ + \189\000\189\000\189\000\189\000\189\000\189\000\189\000\189\000\ + \189\000\189\000\189\000\189\000\189\000\189\000\189\000\189\000\ + \189\000\189\000\189\000\190\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\190\000\190\000\255\255\190\000\ + \190\000\190\000\190\000\190\000\190\000\190\000\190\000\190\000\ + \190\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \190\000\190\000\190\000\190\000\190\000\190\000\190\000\190\000\ + \190\000\190\000\190\000\190\000\190\000\190\000\190\000\190\000\ + \190\000\190\000\190\000\190\000\190\000\190\000\190\000\190\000\ + \190\000\190\000\255\255\255\255\255\255\255\255\190\000\255\255\ + \190\000\190\000\190\000\190\000\190\000\190\000\190\000\190\000\ + \190\000\190\000\190\000\190\000\190\000\190\000\190\000\190\000\ + \190\000\190\000\190\000\190\000\190\000\190\000\190\000\190\000\ + \190\000\190\000\191\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\191\000\191\000\255\255\191\000\191\000\ + \191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\191\000\ + \191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\ + \191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\ + \191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\ + \191\000\255\255\255\255\255\255\255\255\191\000\255\255\191\000\ + \191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\ + \191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\ + \191\000\191\000\191\000\191\000\191\000\191\000\191\000\191\000\ + \191\000\192\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\192\000\192\000\255\255\192\000\192\000\192\000\ + \192\000\192\000\192\000\192\000\192\000\192\000\192\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\192\000\192\000\ + \192\000\192\000\192\000\192\000\192\000\192\000\192\000\192\000\ + \192\000\192\000\192\000\192\000\192\000\192\000\192\000\192\000\ + \192\000\192\000\192\000\192\000\192\000\192\000\192\000\192\000\ + \255\255\255\255\255\255\255\255\192\000\255\255\192\000\192\000\ + \192\000\192\000\192\000\192\000\192\000\192\000\192\000\192\000\ + \192\000\192\000\192\000\192\000\192\000\192\000\192\000\192\000\ + \192\000\192\000\192\000\192\000\192\000\192\000\192\000\192\000\ + \193\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\193\000\193\000\255\255\193\000\193\000\193\000\193\000\ + \193\000\193\000\193\000\193\000\193\000\193\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\193\000\193\000\193\000\ + \193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\ + \193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\ + \193\000\193\000\193\000\193\000\193\000\193\000\193\000\255\255\ + \255\255\255\255\255\255\193\000\255\255\193\000\193\000\193\000\ + \193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\ + \193\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\ + \193\000\193\000\193\000\193\000\193\000\193\000\193\000\194\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \194\000\194\000\255\255\194\000\194\000\194\000\194\000\194\000\ + \194\000\194\000\194\000\194\000\194\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\194\000\194\000\194\000\194\000\ + \194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\ + \194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\ + \194\000\194\000\194\000\194\000\194\000\194\000\255\255\255\255\ + \255\255\255\255\194\000\255\255\194\000\194\000\194\000\194\000\ + \194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\ + \194\000\194\000\194\000\194\000\194\000\194\000\194\000\194\000\ + \194\000\194\000\194\000\194\000\194\000\194\000\195\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\195\000\ + \195\000\255\255\195\000\195\000\195\000\195\000\195\000\195\000\ + \195\000\195\000\195\000\195\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\195\000\195\000\195\000\195\000\195\000\ + \195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\ + \195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\ + \195\000\195\000\195\000\195\000\195\000\255\255\255\255\255\255\ + \255\255\195\000\255\255\195\000\195\000\195\000\195\000\195\000\ + \195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\ + \195\000\195\000\195\000\195\000\195\000\195\000\195\000\195\000\ + \195\000\195\000\195\000\195\000\195\000\196\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\196\000\196\000\ + \255\255\196\000\196\000\196\000\196\000\196\000\196\000\196\000\ + \196\000\196\000\196\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\196\000\196\000\196\000\196\000\196\000\196\000\ + \196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\ + \196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\ + \196\000\196\000\196\000\196\000\255\255\255\255\255\255\255\255\ + \196\000\255\255\196\000\196\000\196\000\196\000\196\000\196\000\ + \196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\ + \196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\ + \196\000\196\000\196\000\196\000\197\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\197\000\197\000\255\255\ + \197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\ + \197\000\197\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\197\000\197\000\197\000\197\000\197\000\197\000\197\000\ + \197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\ + \197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\ + \197\000\197\000\197\000\255\255\255\255\255\255\255\255\197\000\ + \255\255\197\000\197\000\197\000\197\000\197\000\197\000\197\000\ + \197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\ + \197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\ + \197\000\197\000\197\000\198\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\198\000\198\000\255\255\198\000\ + \198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\ + \198\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\ + \198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\ + \198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\ + \198\000\198\000\255\255\255\255\255\255\255\255\198\000\255\255\ + \198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\ + \198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\ + \198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\ + \198\000\198\000\199\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\199\000\199\000\255\255\199\000\199\000\ + \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\199\000\ + \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\ + \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\ + \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\ + \199\000\255\255\255\255\255\255\255\255\199\000\255\255\199\000\ + \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\ + \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\ + \199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\ + \199\000\200\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\200\000\200\000\255\255\200\000\200\000\200\000\ + \200\000\200\000\200\000\200\000\200\000\200\000\200\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\200\000\200\000\ + \200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\ + \200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\ + \200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\ + \255\255\255\255\255\255\255\255\200\000\255\255\200\000\200\000\ + \200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\ + \200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\ + \200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\ + \201\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\201\000\201\000\255\255\201\000\201\000\201\000\201\000\ + \201\000\201\000\201\000\201\000\201\000\201\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\201\000\201\000\201\000\ + \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ + \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ + \201\000\201\000\201\000\201\000\201\000\201\000\201\000\255\255\ + \255\255\255\255\255\255\201\000\255\255\201\000\201\000\201\000\ + \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ + \201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\ + \201\000\201\000\201\000\201\000\201\000\201\000\201\000\202\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \202\000\202\000\255\255\202\000\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\255\255\255\255\ + \255\255\255\255\202\000\255\255\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\202\000\202\000\ + \202\000\202\000\202\000\202\000\202\000\202\000\203\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\203\000\ + \203\000\255\255\203\000\203\000\203\000\203\000\203\000\203\000\ + \203\000\203\000\203\000\203\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\203\000\203\000\203\000\203\000\203\000\ + \203\000\203\000\203\000\203\000\203\000\203\000\203\000\203\000\ + \203\000\203\000\203\000\203\000\203\000\203\000\203\000\203\000\ + \203\000\203\000\203\000\203\000\203\000\255\255\255\255\255\255\ + \255\255\203\000\255\255\203\000\203\000\203\000\203\000\203\000\ + \203\000\203\000\203\000\203\000\203\000\203\000\203\000\203\000\ + \203\000\203\000\203\000\203\000\203\000\203\000\203\000\203\000\ + \203\000\203\000\203\000\203\000\203\000\204\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\204\000\204\000\ + \255\255\204\000\204\000\204\000\204\000\204\000\204\000\204\000\ + \204\000\204\000\204\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\204\000\204\000\204\000\204\000\204\000\204\000\ + \204\000\204\000\204\000\204\000\204\000\204\000\204\000\204\000\ + \204\000\204\000\204\000\204\000\204\000\204\000\204\000\204\000\ + \204\000\204\000\204\000\204\000\255\255\255\255\255\255\255\255\ + \204\000\255\255\204\000\204\000\204\000\204\000\204\000\204\000\ + \204\000\204\000\204\000\204\000\204\000\204\000\204\000\204\000\ + \204\000\204\000\204\000\204\000\204\000\204\000\204\000\204\000\ + \204\000\204\000\204\000\204\000\205\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\205\000\205\000\255\255\ + \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ + \205\000\205\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ + \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ + \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ + \205\000\205\000\205\000\255\255\255\255\255\255\255\255\205\000\ + \255\255\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ + \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ + \205\000\205\000\205\000\205\000\205\000\205\000\205\000\205\000\ + \205\000\205\000\205\000\206\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\206\000\206\000\255\255\206\000\ + \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ + \206\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ + \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ + \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ + \206\000\206\000\255\255\255\255\255\255\255\255\206\000\255\255\ + \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ + \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ + \206\000\206\000\206\000\206\000\206\000\206\000\206\000\206\000\ + \206\000\206\000\207\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\207\000\207\000\255\255\207\000\207\000\ + \207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\207\000\ + \207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\ + \207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\ + \207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\ + \207\000\255\255\255\255\255\255\255\255\207\000\255\255\207\000\ + \207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\ + \207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\ + \207\000\207\000\207\000\207\000\207\000\207\000\207\000\207\000\ + \207\000\208\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\208\000\208\000\255\255\208\000\208\000\208\000\ + \208\000\208\000\208\000\208\000\208\000\208\000\208\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\208\000\208\000\ + \208\000\208\000\208\000\208\000\208\000\208\000\208\000\208\000\ + \208\000\208\000\208\000\208\000\208\000\208\000\208\000\208\000\ + \208\000\208\000\208\000\208\000\208\000\208\000\208\000\208\000\ + \255\255\255\255\255\255\255\255\208\000\255\255\208\000\208\000\ + \208\000\208\000\208\000\208\000\208\000\208\000\208\000\208\000\ + \208\000\208\000\208\000\208\000\208\000\208\000\208\000\208\000\ + \208\000\208\000\208\000\208\000\208\000\208\000\208\000\208\000\ + \209\000\255\255\255\255\255\255\209\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\209\000\209\000\255\255\ + \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \209\000\209\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \209\000\209\000\209\000\255\255\255\255\255\255\255\255\209\000\ + \255\255\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \209\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\ + \209\000\209\000\209\000\211\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\211\000\211\000\255\255\211\000\ + \211\000\211\000\211\000\211\000\211\000\211\000\211\000\211\000\ + \211\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \211\000\211\000\211\000\211\000\211\000\211\000\211\000\211\000\ + \211\000\211\000\211\000\211\000\211\000\211\000\211\000\211\000\ + \211\000\211\000\211\000\211\000\211\000\211\000\211\000\211\000\ + \211\000\211\000\255\255\255\255\255\255\255\255\211\000\255\255\ + \211\000\211\000\211\000\211\000\211\000\211\000\211\000\211\000\ + \211\000\211\000\211\000\211\000\211\000\211\000\211\000\211\000\ + \211\000\211\000\211\000\211\000\211\000\211\000\211\000\211\000\ + \211\000\211\000\212\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\212\000\212\000\255\255\212\000\212\000\ + \212\000\212\000\212\000\212\000\212\000\212\000\212\000\212\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\212\000\ + \212\000\212\000\212\000\212\000\212\000\212\000\212\000\212\000\ + \212\000\212\000\212\000\212\000\212\000\212\000\212\000\212\000\ + \212\000\212\000\212\000\212\000\212\000\212\000\212\000\212\000\ + \212\000\255\255\255\255\255\255\255\255\212\000\255\255\212\000\ + \212\000\212\000\212\000\212\000\212\000\212\000\212\000\212\000\ + \212\000\212\000\212\000\212\000\212\000\212\000\212\000\212\000\ + \212\000\212\000\212\000\212\000\212\000\212\000\212\000\212\000\ + \212\000\213\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\213\000\213\000\255\255\213\000\213\000\213\000\ + \213\000\213\000\213\000\213\000\213\000\213\000\213\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\213\000\213\000\ + \213\000\213\000\213\000\213\000\213\000\213\000\213\000\213\000\ + \213\000\213\000\213\000\213\000\213\000\213\000\213\000\213\000\ + \213\000\213\000\213\000\213\000\213\000\213\000\213\000\213\000\ + \255\255\255\255\255\255\255\255\213\000\255\255\213\000\213\000\ + \213\000\213\000\213\000\213\000\213\000\213\000\213\000\213\000\ + \213\000\213\000\213\000\213\000\213\000\213\000\213\000\213\000\ + \213\000\213\000\213\000\213\000\213\000\213\000\213\000\213\000\ + \214\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\214\000\214\000\255\255\214\000\214\000\214\000\214\000\ + \214\000\214\000\214\000\214\000\214\000\214\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\214\000\214\000\214\000\ + \214\000\214\000\214\000\214\000\214\000\214\000\214\000\214\000\ + \214\000\214\000\214\000\214\000\214\000\214\000\214\000\214\000\ + \214\000\214\000\214\000\214\000\214\000\214\000\214\000\255\255\ + \255\255\255\255\255\255\214\000\255\255\214\000\214\000\214\000\ + \214\000\214\000\214\000\214\000\214\000\214\000\214\000\214\000\ + \214\000\214\000\214\000\214\000\214\000\214\000\214\000\214\000\ + \214\000\214\000\214\000\214\000\214\000\214\000\214\000\215\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \215\000\215\000\255\255\215\000\215\000\215\000\215\000\215\000\ + \215\000\215\000\215\000\215\000\215\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\215\000\215\000\215\000\215\000\ + \215\000\215\000\215\000\215\000\215\000\215\000\215\000\215\000\ + \215\000\215\000\215\000\215\000\215\000\215\000\215\000\215\000\ + \215\000\215\000\215\000\215\000\215\000\215\000\255\255\255\255\ + \255\255\255\255\215\000\255\255\215\000\215\000\215\000\215\000\ + \215\000\215\000\215\000\215\000\215\000\215\000\215\000\215\000\ + \215\000\215\000\215\000\215\000\215\000\215\000\215\000\215\000\ + \215\000\215\000\215\000\215\000\215\000\215\000\216\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\216\000\ + \216\000\255\255\216\000\216\000\216\000\216\000\216\000\216\000\ + \216\000\216\000\216\000\216\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\216\000\216\000\216\000\216\000\216\000\ + \216\000\216\000\216\000\216\000\216\000\216\000\216\000\216\000\ + \216\000\216\000\216\000\216\000\216\000\216\000\216\000\216\000\ + \216\000\216\000\216\000\216\000\216\000\255\255\255\255\255\255\ + \255\255\216\000\255\255\216\000\216\000\216\000\216\000\216\000\ + \216\000\216\000\216\000\216\000\216\000\216\000\216\000\216\000\ + \216\000\216\000\216\000\216\000\216\000\216\000\216\000\216\000\ + \216\000\216\000\216\000\216\000\216\000\217\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\217\000\217\000\ + \255\255\217\000\217\000\217\000\217\000\217\000\217\000\217\000\ + \217\000\217\000\217\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\217\000\217\000\217\000\217\000\217\000\217\000\ + \217\000\217\000\217\000\217\000\217\000\217\000\217\000\217\000\ + \217\000\217\000\217\000\217\000\217\000\217\000\217\000\217\000\ + \217\000\217\000\217\000\217\000\255\255\255\255\255\255\255\255\ + \217\000\255\255\217\000\217\000\217\000\217\000\217\000\217\000\ + \217\000\217\000\217\000\217\000\217\000\217\000\217\000\217\000\ + \217\000\217\000\217\000\217\000\217\000\217\000\217\000\217\000\ + \217\000\217\000\217\000\217\000\218\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\218\000\218\000\255\255\ + \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ + \218\000\218\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ + \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ + \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ + \218\000\218\000\218\000\255\255\255\255\255\255\255\255\218\000\ + \255\255\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ + \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ + \218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\ + \218\000\218\000\218\000\219\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\219\000\219\000\255\255\219\000\ + \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ + \219\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ + \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ + \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ + \219\000\219\000\255\255\255\255\255\255\255\255\219\000\255\255\ + \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ + \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ + \219\000\219\000\219\000\219\000\219\000\219\000\219\000\219\000\ + \219\000\219\000\220\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\220\000\220\000\255\255\220\000\220\000\ + \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\220\000\ + \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ + \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ + \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ + \220\000\255\255\255\255\255\255\255\255\220\000\255\255\220\000\ + \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ + \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ + \220\000\220\000\220\000\220\000\220\000\220\000\220\000\220\000\ + \220\000\221\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\221\000\221\000\255\255\221\000\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\221\000\221\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ + \255\255\255\255\255\255\255\255\221\000\255\255\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ + \221\000\221\000\221\000\221\000\221\000\221\000\221\000\221\000\ + \222\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\222\000\222\000\255\255\222\000\222\000\222\000\222\000\ + \222\000\222\000\222\000\222\000\222\000\222\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\222\000\222\000\222\000\ + \222\000\222\000\222\000\222\000\222\000\222\000\222\000\222\000\ + \222\000\222\000\222\000\222\000\222\000\222\000\222\000\222\000\ + \222\000\222\000\222\000\222\000\222\000\222\000\222\000\255\255\ + \255\255\255\255\255\255\222\000\255\255\222\000\222\000\222\000\ + \222\000\222\000\222\000\222\000\222\000\222\000\222\000\222\000\ + \222\000\222\000\222\000\222\000\222\000\222\000\222\000\222\000\ + \222\000\222\000\222\000\222\000\222\000\222\000\222\000\223\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \223\000\223\000\255\255\223\000\223\000\223\000\223\000\223\000\ + \223\000\223\000\223\000\223\000\223\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\223\000\223\000\223\000\223\000\ + \223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\ + \223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\ + \223\000\223\000\223\000\223\000\223\000\223\000\255\255\255\255\ + \255\255\255\255\223\000\255\255\223\000\223\000\223\000\223\000\ + \223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\ + \223\000\223\000\223\000\223\000\223\000\223\000\223\000\223\000\ + \223\000\223\000\223\000\223\000\223\000\223\000\224\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\224\000\ + \224\000\255\255\224\000\224\000\224\000\224\000\224\000\224\000\ + \224\000\224\000\224\000\224\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\224\000\224\000\224\000\224\000\224\000\ + \224\000\224\000\224\000\224\000\224\000\224\000\224\000\224\000\ + \224\000\224\000\224\000\224\000\224\000\224\000\224\000\224\000\ + \224\000\224\000\224\000\224\000\224\000\255\255\255\255\255\255\ + \255\255\224\000\255\255\224\000\224\000\224\000\224\000\224\000\ + \224\000\224\000\224\000\224\000\224\000\224\000\224\000\224\000\ + \224\000\224\000\224\000\224\000\224\000\224\000\224\000\224\000\ + \224\000\224\000\224\000\224\000\224\000\225\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\225\000\225\000\ + \255\255\225\000\225\000\225\000\225\000\225\000\225\000\225\000\ + \225\000\225\000\225\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\225\000\225\000\225\000\225\000\225\000\225\000\ + \225\000\225\000\225\000\225\000\225\000\225\000\225\000\225\000\ + \225\000\225\000\225\000\225\000\225\000\225\000\225\000\225\000\ + \225\000\225\000\225\000\225\000\255\255\255\255\255\255\255\255\ + \225\000\255\255\225\000\225\000\225\000\225\000\225\000\225\000\ + \225\000\225\000\225\000\225\000\225\000\225\000\225\000\225\000\ + \225\000\225\000\225\000\225\000\225\000\225\000\225\000\225\000\ + \225\000\225\000\225\000\225\000\226\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\226\000\226\000\255\255\ + \226\000\226\000\226\000\226\000\226\000\226\000\226\000\226\000\ + \226\000\226\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\226\000\226\000\226\000\226\000\226\000\226\000\226\000\ + \226\000\226\000\226\000\226\000\226\000\226\000\226\000\226\000\ + \226\000\226\000\226\000\226\000\226\000\226\000\226\000\226\000\ + \226\000\226\000\226\000\255\255\255\255\255\255\255\255\226\000\ + \255\255\226\000\226\000\226\000\226\000\226\000\226\000\226\000\ + \226\000\226\000\226\000\226\000\226\000\226\000\226\000\226\000\ + \226\000\226\000\226\000\226\000\226\000\226\000\226\000\226\000\ + \226\000\226\000\226\000\227\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\227\000\227\000\255\255\227\000\ + \227\000\227\000\227\000\227\000\227\000\227\000\227\000\227\000\ + \227\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \227\000\227\000\227\000\227\000\227\000\227\000\227\000\227\000\ + \227\000\227\000\227\000\227\000\227\000\227\000\227\000\227\000\ + \227\000\227\000\227\000\227\000\227\000\227\000\227\000\227\000\ + \227\000\227\000\255\255\255\255\255\255\255\255\227\000\255\255\ + \227\000\227\000\227\000\227\000\227\000\227\000\227\000\227\000\ + \227\000\227\000\227\000\227\000\227\000\227\000\227\000\227\000\ + \227\000\227\000\227\000\227\000\227\000\227\000\227\000\227\000\ + \227\000\227\000\228\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\228\000\228\000\255\255\228\000\228\000\ + \228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\228\000\ + \228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\ + \228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\ + \228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\ + \228\000\255\255\255\255\255\255\255\255\228\000\255\255\228\000\ + \228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\ + \228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\ + \228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\ + \228\000\229\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\229\000\229\000\255\255\229\000\229\000\229\000\ + \229\000\229\000\229\000\229\000\229\000\229\000\229\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\229\000\229\000\ + \229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\ + \229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\ + \229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\ + \255\255\255\255\255\255\255\255\229\000\255\255\229\000\229\000\ + \229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\ + \229\000\229\000\229\000\229\000\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\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\230\000\230\000\255\255\230\000\230\000\230\000\230\000\ + \230\000\230\000\230\000\230\000\230\000\230\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\230\000\230\000\230\000\ + \230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\ + \230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\ + \230\000\230\000\230\000\230\000\230\000\230\000\230\000\255\255\ + \255\255\255\255\255\255\230\000\255\255\230\000\230\000\230\000\ + \230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\ + \230\000\230\000\230\000\230\000\230\000\230\000\230\000\230\000\ + \230\000\230\000\230\000\230\000\230\000\230\000\230\000\231\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \231\000\231\000\255\255\231\000\231\000\231\000\231\000\231\000\ + \231\000\231\000\231\000\231\000\231\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\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\255\255\255\255\ + \255\255\255\255\231\000\255\255\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\232\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\232\000\ + \232\000\255\255\232\000\232\000\232\000\232\000\232\000\232\000\ + \232\000\232\000\232\000\232\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\232\000\232\000\232\000\232\000\232\000\ + \232\000\232\000\232\000\232\000\232\000\232\000\232\000\232\000\ + \232\000\232\000\232\000\232\000\232\000\232\000\232\000\232\000\ + \232\000\232\000\232\000\232\000\232\000\255\255\255\255\255\255\ + \255\255\232\000\255\255\232\000\232\000\232\000\232\000\232\000\ + \232\000\232\000\232\000\232\000\232\000\232\000\232\000\232\000\ + \232\000\232\000\232\000\232\000\232\000\232\000\232\000\232\000\ + \232\000\232\000\232\000\232\000\232\000\233\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\233\000\233\000\ + \255\255\233\000\233\000\233\000\233\000\233\000\233\000\233\000\ + \233\000\233\000\233\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\233\000\233\000\233\000\233\000\233\000\233\000\ + \233\000\233\000\233\000\233\000\233\000\233\000\233\000\233\000\ + \233\000\233\000\233\000\233\000\233\000\233\000\233\000\233\000\ + \233\000\233\000\233\000\233\000\255\255\255\255\255\255\255\255\ + \233\000\255\255\233\000\233\000\233\000\233\000\233\000\233\000\ + \233\000\233\000\233\000\233\000\233\000\233\000\233\000\233\000\ + \233\000\233\000\233\000\233\000\233\000\233\000\233\000\233\000\ + \233\000\233\000\233\000\233\000\234\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\234\000\234\000\255\255\ + \234\000\234\000\234\000\234\000\234\000\234\000\234\000\234\000\ + \234\000\234\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\234\000\234\000\234\000\234\000\234\000\234\000\234\000\ + \234\000\234\000\234\000\234\000\234\000\234\000\234\000\234\000\ + \234\000\234\000\234\000\234\000\234\000\234\000\234\000\234\000\ + \234\000\234\000\234\000\255\255\255\255\255\255\255\255\234\000\ + \255\255\234\000\234\000\234\000\234\000\234\000\234\000\234\000\ + \234\000\234\000\234\000\234\000\234\000\234\000\234\000\234\000\ + \234\000\234\000\234\000\234\000\234\000\234\000\234\000\234\000\ + \234\000\234\000\234\000\235\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\235\000\235\000\255\255\235\000\ + \235\000\235\000\235\000\235\000\235\000\235\000\235\000\235\000\ + \235\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \235\000\235\000\235\000\235\000\235\000\235\000\235\000\235\000\ + \235\000\235\000\235\000\235\000\235\000\235\000\235\000\235\000\ + \235\000\235\000\235\000\235\000\235\000\235\000\235\000\235\000\ + \235\000\235\000\255\255\255\255\255\255\255\255\235\000\255\255\ + \235\000\235\000\235\000\235\000\235\000\235\000\235\000\235\000\ + \235\000\235\000\235\000\235\000\235\000\235\000\235\000\235\000\ + \235\000\235\000\235\000\235\000\235\000\235\000\235\000\235\000\ + \235\000\235\000\236\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\236\000\236\000\255\255\236\000\236\000\ + \236\000\236\000\236\000\236\000\236\000\236\000\236\000\236\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\236\000\ + \236\000\236\000\236\000\236\000\236\000\236\000\236\000\236\000\ + \236\000\236\000\236\000\236\000\236\000\236\000\236\000\236\000\ + \236\000\236\000\236\000\236\000\236\000\236\000\236\000\236\000\ + \236\000\255\255\255\255\255\255\255\255\236\000\255\255\236\000\ + \236\000\236\000\236\000\236\000\236\000\236\000\236\000\236\000\ + \236\000\236\000\236\000\236\000\236\000\236\000\236\000\236\000\ + \236\000\236\000\236\000\236\000\236\000\236\000\236\000\236\000\ + \236\000\237\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\237\000\237\000\255\255\237\000\237\000\237\000\ + \237\000\237\000\237\000\237\000\237\000\237\000\237\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\237\000\237\000\ + \237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\ + \237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\ + \237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\ + \255\255\255\255\255\255\255\255\237\000\255\255\237\000\237\000\ + \237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\ + \237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\ + \237\000\237\000\237\000\237\000\237\000\237\000\237\000\237\000\ + \238\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\238\000\238\000\255\255\238\000\238\000\238\000\238\000\ + \238\000\238\000\238\000\238\000\238\000\238\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\238\000\238\000\238\000\ + \238\000\238\000\238\000\238\000\238\000\238\000\238\000\238\000\ + \238\000\238\000\238\000\238\000\238\000\238\000\238\000\238\000\ + \238\000\238\000\238\000\238\000\238\000\238\000\238\000\255\255\ + \255\255\255\255\255\255\238\000\255\255\238\000\238\000\238\000\ + \238\000\238\000\238\000\238\000\238\000\238\000\238\000\238\000\ + \238\000\238\000\238\000\238\000\238\000\238\000\238\000\238\000\ + \238\000\238\000\238\000\238\000\238\000\238\000\238\000\239\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \239\000\239\000\255\255\239\000\239\000\239\000\239\000\239\000\ + \239\000\239\000\239\000\239\000\239\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\239\000\239\000\239\000\239\000\ + \239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\ + \239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\ + \239\000\239\000\239\000\239\000\239\000\239\000\255\255\255\255\ + \255\255\255\255\239\000\255\255\239\000\239\000\239\000\239\000\ + \239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\ + \239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\ + \239\000\239\000\239\000\239\000\239\000\239\000\240\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\240\000\ + \240\000\255\255\240\000\240\000\240\000\240\000\240\000\240\000\ + \240\000\240\000\240\000\240\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\240\000\240\000\240\000\240\000\240\000\ + \240\000\240\000\240\000\240\000\240\000\240\000\240\000\240\000\ + \240\000\240\000\240\000\240\000\240\000\240\000\240\000\240\000\ + \240\000\240\000\240\000\240\000\240\000\255\255\255\255\255\255\ + \255\255\240\000\255\255\240\000\240\000\240\000\240\000\240\000\ + \240\000\240\000\240\000\240\000\240\000\240\000\240\000\240\000\ + \240\000\240\000\240\000\240\000\240\000\240\000\240\000\240\000\ + \240\000\240\000\240\000\240\000\240\000\241\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\241\000\241\000\ + \255\255\241\000\241\000\241\000\241\000\241\000\241\000\241\000\ + \241\000\241\000\241\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\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\255\255\255\255\255\255\255\255\ + \241\000\255\255\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\242\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\242\000\242\000\255\255\ + \242\000\242\000\242\000\242\000\242\000\242\000\242\000\242\000\ + \242\000\242\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\242\000\242\000\242\000\242\000\242\000\242\000\242\000\ + \242\000\242\000\242\000\242\000\242\000\242\000\242\000\242\000\ + \242\000\242\000\242\000\242\000\242\000\242\000\242\000\242\000\ + \242\000\242\000\242\000\255\255\255\255\255\255\255\255\242\000\ + \255\255\242\000\242\000\242\000\242\000\242\000\242\000\242\000\ + \242\000\242\000\242\000\242\000\242\000\242\000\242\000\242\000\ + \242\000\242\000\242\000\242\000\242\000\242\000\242\000\242\000\ + \242\000\242\000\242\000\243\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\243\000\243\000\255\255\243\000\ + \243\000\243\000\243\000\243\000\243\000\243\000\243\000\243\000\ + \243\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \243\000\243\000\243\000\243\000\243\000\243\000\243\000\243\000\ + \243\000\243\000\243\000\243\000\243\000\243\000\243\000\243\000\ + \243\000\243\000\243\000\243\000\243\000\243\000\243\000\243\000\ + \243\000\243\000\255\255\255\255\255\255\255\255\243\000\255\255\ + \243\000\243\000\243\000\243\000\243\000\243\000\243\000\243\000\ + \243\000\243\000\243\000\243\000\243\000\243\000\243\000\243\000\ + \243\000\243\000\243\000\243\000\243\000\243\000\243\000\243\000\ + \243\000\243\000\244\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\244\000\244\000\255\255\244\000\244\000\ + \244\000\244\000\244\000\244\000\244\000\244\000\244\000\244\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\244\000\ + \244\000\244\000\244\000\244\000\244\000\244\000\244\000\244\000\ + \244\000\244\000\244\000\244\000\244\000\244\000\244\000\244\000\ + \244\000\244\000\244\000\244\000\244\000\244\000\244\000\244\000\ + \244\000\255\255\255\255\255\255\255\255\244\000\255\255\244\000\ + \244\000\244\000\244\000\244\000\244\000\244\000\244\000\244\000\ + \244\000\244\000\244\000\244\000\244\000\244\000\244\000\244\000\ + \244\000\244\000\244\000\244\000\244\000\244\000\244\000\244\000\ + \244\000\245\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\245\000\245\000\255\255\245\000\245\000\245\000\ + \245\000\245\000\245\000\245\000\245\000\245\000\245\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\245\000\245\000\ + \245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\ + \245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\ + \245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\ + \255\255\255\255\255\255\255\255\245\000\255\255\245\000\245\000\ + \245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\ + \245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\ + \245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\ + \246\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\246\000\246\000\255\255\246\000\246\000\246\000\246\000\ + \246\000\246\000\246\000\246\000\246\000\246\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\246\000\246\000\246\000\ + \246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\ + \246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\ + \246\000\246\000\246\000\246\000\246\000\246\000\246\000\255\255\ + \255\255\255\255\255\255\246\000\255\255\246\000\246\000\246\000\ + \246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\ + \246\000\246\000\246\000\246\000\246\000\246\000\246\000\246\000\ + \246\000\246\000\246\000\246\000\246\000\246\000\246\000\247\000\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \247\000\247\000\255\255\247\000\247\000\247\000\247\000\247\000\ + \247\000\247\000\247\000\247\000\247\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\247\000\247\000\247\000\247\000\ + \247\000\247\000\247\000\247\000\247\000\247\000\247\000\247\000\ + \247\000\247\000\247\000\247\000\247\000\247\000\247\000\247\000\ + \247\000\247\000\247\000\247\000\247\000\247\000\255\255\255\255\ + \255\255\255\255\247\000\255\255\247\000\247\000\247\000\247\000\ + \247\000\247\000\247\000\247\000\247\000\247\000\247\000\247\000\ + \247\000\247\000\247\000\247\000\247\000\247\000\247\000\247\000\ + \247\000\247\000\247\000\247\000\247\000\247\000\248\000\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\248\000\ + \248\000\255\255\248\000\248\000\248\000\248\000\248\000\248\000\ + \248\000\248\000\248\000\248\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\248\000\248\000\248\000\248\000\248\000\ + \248\000\248\000\248\000\248\000\248\000\248\000\248\000\248\000\ + \248\000\248\000\248\000\248\000\248\000\248\000\248\000\248\000\ + \248\000\248\000\248\000\248\000\248\000\255\255\255\255\255\255\ + \255\255\248\000\255\255\248\000\248\000\248\000\248\000\248\000\ + \248\000\248\000\248\000\248\000\248\000\248\000\248\000\248\000\ + \248\000\248\000\248\000\248\000\248\000\248\000\248\000\248\000\ + \248\000\248\000\248\000\248\000\248\000\249\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\249\000\249\000\ + \255\255\249\000\249\000\249\000\249\000\249\000\249\000\249\000\ + \249\000\249\000\249\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\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\255\255\255\255\255\255\255\255\ + \249\000\255\255\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\250\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\250\000\250\000\255\255\ + \250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\ + \250\000\250\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\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\255\255\255\255\255\255\255\255\250\000\ + \255\255\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\251\000\251\000\251\000\251\000\251\000\ + \251\000\251\000\251\000\251\000\251\000\253\000\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\253\000\253\000\ + \255\255\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\255\255\255\255\255\255\255\255\ + \253\000\255\255\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\253\000\253\000\253\000\253\000\ + \253\000\253\000\253\000\253\000\254\000\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\254\000\254\000\255\255\ + \254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\ + \254\000\254\000\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\254\000\254\000\254\000\254\000\254\000\254\000\254\000\ + \254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\ + \254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\ + \254\000\254\000\254\000\255\255\255\255\255\255\255\255\254\000\ + \255\255\254\000\254\000\254\000\254\000\254\000\254\000\254\000\ + \254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\ + \254\000\254\000\254\000\254\000\254\000\254\000\254\000\254\000\ + \254\000\254\000\254\000\255\000\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\000\255\000\255\255\255\000\ + \255\000\255\000\255\000\255\000\255\000\255\000\255\000\255\000\ + \255\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\000\255\000\255\000\255\000\255\000\255\000\255\000\255\000\ + \255\000\255\000\255\000\255\000\255\000\255\000\255\000\255\000\ + \255\000\255\000\255\000\255\000\255\000\255\000\255\000\255\000\ + \255\000\255\000\255\255\255\255\255\255\255\255\255\000\255\255\ + \255\000\255\000\255\000\255\000\255\000\255\000\255\000\255\000\ + \255\000\255\000\255\000\255\000\255\000\255\000\255\000\255\000\ + \255\000\255\000\255\000\255\000\255\000\255\000\255\000\255\000\ + \255\000\255\000\000\001\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\000\001\000\001\255\255\000\001\000\001\ + \000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\000\001\ + \000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\ + \000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\ + \000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\ + \000\001\255\255\255\255\255\255\255\255\000\001\255\255\000\001\ + \000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\ + \000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\ + \000\001\000\001\000\001\000\001\000\001\000\001\000\001\000\001\ + \000\001\001\001\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\001\001\001\001\255\255\001\001\001\001\001\001\ + \001\001\001\001\001\001\001\001\001\001\001\001\001\001\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\001\001\001\001\ + \001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\ + \001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\ + \001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\ + \255\255\255\255\255\255\255\255\001\001\255\255\001\001\001\001\ + \001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\ + \001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\ + \001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\ + \002\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\002\001\002\001\255\255\002\001\002\001\002\001\002\001\ + \002\001\002\001\002\001\002\001\002\001\002\001\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\002\001\002\001\002\001\ + \002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\ + \002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\ + \002\001\002\001\002\001\002\001\002\001\002\001\002\001\255\255\ + \255\255\255\255\255\255\002\001\255\255\002\001\002\001\002\001\ + \002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\ + \002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\ + \002\001\002\001\002\001\002\001\002\001\002\001\002\001\003\001\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \003\001\003\001\255\255\003\001\003\001\003\001\003\001\003\001\ + \003\001\003\001\003\001\003\001\003\001\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\003\001\003\001\003\001\003\001\ + \003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\ + \003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\ + \003\001\003\001\003\001\003\001\003\001\003\001\255\255\255\255\ + \255\255\255\255\003\001\255\255\003\001\003\001\003\001\003\001\ + \003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\ + \003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\ + \003\001\003\001\003\001\003\001\003\001\003\001\004\001\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\004\001\ + \004\001\255\255\004\001\004\001\004\001\004\001\004\001\004\001\ + \004\001\004\001\004\001\004\001\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\004\001\004\001\004\001\004\001\004\001\ + \004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\ + \004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\ + \004\001\004\001\004\001\004\001\004\001\255\255\255\255\255\255\ + \255\255\004\001\255\255\004\001\004\001\004\001\004\001\004\001\ + \004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\ + \004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\ + \004\001\004\001\004\001\004\001\004\001\005\001\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\005\001\005\001\ + \255\255\005\001\005\001\005\001\005\001\005\001\005\001\005\001\ + \005\001\005\001\005\001\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\005\001\005\001\005\001\005\001\005\001\005\001\ + \005\001\005\001\005\001\005\001\005\001\005\001\005\001\005\001\ + \005\001\005\001\005\001\005\001\005\001\005\001\005\001\005\001\ + \005\001\005\001\005\001\005\001\255\255\255\255\255\255\255\255\ + \005\001\255\255\005\001\005\001\005\001\005\001\005\001\005\001\ + \005\001\005\001\005\001\005\001\005\001\005\001\005\001\005\001\ + \005\001\005\001\005\001\005\001\005\001\005\001\005\001\005\001\ + \005\001\005\001\005\001\005\001\006\001\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\006\001\006\001\255\255\ + \006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\ + \006\001\006\001\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\006\001\006\001\006\001\006\001\006\001\006\001\006\001\ + \006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\ + \006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\ + \006\001\006\001\006\001\255\255\255\255\255\255\255\255\006\001\ + \255\255\006\001\006\001\006\001\006\001\006\001\006\001\006\001\ + \006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\ + \006\001\006\001\006\001\006\001\006\001\006\001\006\001\006\001\ + \006\001\006\001\006\001\007\001\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\007\001\007\001\255\255\007\001\ + \007\001\007\001\007\001\007\001\007\001\007\001\007\001\007\001\ + \007\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \007\001\007\001\007\001\007\001\007\001\007\001\007\001\007\001\ + \007\001\007\001\007\001\007\001\007\001\007\001\007\001\007\001\ + \007\001\007\001\007\001\007\001\007\001\007\001\007\001\007\001\ + \007\001\007\001\255\255\255\255\255\255\255\255\007\001\255\255\ + \007\001\007\001\007\001\007\001\007\001\007\001\007\001\007\001\ + \007\001\007\001\007\001\007\001\007\001\007\001\007\001\007\001\ + \007\001\007\001\007\001\007\001\007\001\007\001\007\001\007\001\ + \007\001\007\001\008\001\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\008\001\008\001\255\255\008\001\008\001\ + \008\001\008\001\008\001\008\001\008\001\008\001\008\001\008\001\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\008\001\ + \008\001\008\001\008\001\008\001\008\001\008\001\008\001\008\001\ + \008\001\008\001\008\001\008\001\008\001\008\001\008\001\008\001\ + \008\001\008\001\008\001\008\001\008\001\008\001\008\001\008\001\ + \008\001\255\255\255\255\255\255\255\255\008\001\255\255\008\001\ + \008\001\008\001\008\001\008\001\008\001\008\001\008\001\008\001\ + \008\001\008\001\008\001\008\001\008\001\008\001\008\001\008\001\ + \008\001\008\001\008\001\008\001\008\001\008\001\008\001\008\001\ + \008\001\009\001\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\009\001\009\001\255\255\009\001\009\001\009\001\ + \009\001\009\001\009\001\009\001\009\001\009\001\009\001\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\009\001\009\001\ + \009\001\009\001\009\001\009\001\009\001\009\001\009\001\009\001\ + \009\001\009\001\009\001\009\001\009\001\009\001\009\001\009\001\ + \009\001\009\001\009\001\009\001\009\001\009\001\009\001\009\001\ + \255\255\255\255\255\255\255\255\009\001\255\255\009\001\009\001\ + \009\001\009\001\009\001\009\001\009\001\009\001\009\001\009\001\ + \009\001\009\001\009\001\009\001\009\001\009\001\009\001\009\001\ + \009\001\009\001\009\001\009\001\009\001\009\001\009\001\009\001\ + \010\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\010\001\010\001\255\255\010\001\010\001\010\001\010\001\ + \010\001\010\001\010\001\010\001\010\001\010\001\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\010\001\010\001\010\001\ + \010\001\010\001\010\001\010\001\010\001\010\001\010\001\010\001\ + \010\001\010\001\010\001\010\001\010\001\010\001\010\001\010\001\ + \010\001\010\001\010\001\010\001\010\001\010\001\010\001\255\255\ + \255\255\255\255\255\255\010\001\255\255\010\001\010\001\010\001\ + \010\001\010\001\010\001\010\001\010\001\010\001\010\001\010\001\ + \010\001\010\001\010\001\010\001\010\001\010\001\010\001\010\001\ + \010\001\010\001\010\001\010\001\010\001\010\001\010\001\011\001\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \011\001\011\001\255\255\011\001\011\001\011\001\011\001\011\001\ + \011\001\011\001\011\001\011\001\011\001\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\011\001\011\001\011\001\011\001\ + \011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\ + \011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\ + \011\001\011\001\011\001\011\001\011\001\011\001\255\255\255\255\ + \255\255\255\255\011\001\255\255\011\001\011\001\011\001\011\001\ + \011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\ + \011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\ + \011\001\011\001\011\001\011\001\011\001\011\001\012\001\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\012\001\ + \012\001\255\255\012\001\012\001\012\001\012\001\012\001\012\001\ + \012\001\012\001\012\001\012\001\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\012\001\012\001\012\001\012\001\012\001\ + \012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\ + \012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\ + \012\001\012\001\012\001\012\001\012\001\255\255\255\255\255\255\ + \255\255\012\001\255\255\012\001\012\001\012\001\012\001\012\001\ + \012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\ + \012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\ + \012\001\012\001\012\001\012\001\012\001\013\001\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\013\001\013\001\ + \255\255\013\001\013\001\013\001\013\001\013\001\013\001\013\001\ + \013\001\013\001\013\001\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\013\001\013\001\013\001\013\001\013\001\013\001\ + \013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\ + \013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\ + \013\001\013\001\013\001\013\001\255\255\255\255\255\255\255\255\ + \013\001\255\255\013\001\013\001\013\001\013\001\013\001\013\001\ + \013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\ + \013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\ + \013\001\013\001\013\001\013\001\014\001\014\001\014\001\014\001\ + \014\001\014\001\014\001\014\001\014\001\014\001\016\001\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\016\001\ + \016\001\255\255\016\001\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\016\001\255\255\255\255\255\255\ + \255\255\016\001\255\255\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\ + \016\001\016\001\016\001\016\001\016\001\019\001\019\001\019\001\ + \019\001\019\001\019\001\019\001\019\001\019\001\019\001\021\001\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \021\001\021\001\255\255\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\255\255\255\255\ + \255\255\255\255\021\001\255\255\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\021\001\021\001\ + \021\001\021\001\021\001\021\001\021\001\021\001\022\001\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\022\001\ + \022\001\255\255\022\001\022\001\022\001\022\001\022\001\022\001\ + \022\001\022\001\022\001\022\001\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\022\001\022\001\022\001\022\001\022\001\ + \022\001\022\001\022\001\022\001\022\001\022\001\022\001\022\001\ + \022\001\022\001\022\001\022\001\022\001\022\001\022\001\022\001\ + \022\001\022\001\022\001\022\001\022\001\255\255\255\255\255\255\ + \255\255\022\001\255\255\022\001\022\001\022\001\022\001\022\001\ + \022\001\022\001\022\001\022\001\022\001\022\001\022\001\022\001\ + \022\001\022\001\022\001\022\001\022\001\022\001\022\001\022\001\ + \022\001\022\001\022\001\022\001\022\001\023\001\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\023\001\023\001\ + \255\255\023\001\023\001\023\001\023\001\023\001\023\001\023\001\ + \023\001\023\001\023\001\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\023\001\023\001\023\001\023\001\023\001\023\001\ + \023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\ + \023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\ + \023\001\023\001\023\001\023\001\255\255\255\255\255\255\255\255\ + \023\001\255\255\023\001\023\001\023\001\023\001\023\001\023\001\ + \023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\ + \023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\ + \023\001\023\001\023\001\023\001\024\001\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\024\001\024\001\255\255\ + \024\001\024\001\024\001\024\001\024\001\024\001\024\001\024\001\ + \024\001\024\001\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\024\001\024\001\024\001\024\001\024\001\024\001\024\001\ + \024\001\024\001\024\001\024\001\024\001\024\001\024\001\024\001\ + \024\001\024\001\024\001\024\001\024\001\024\001\024\001\024\001\ + \024\001\024\001\024\001\255\255\255\255\255\255\255\255\024\001\ + \255\255\024\001\024\001\024\001\024\001\024\001\024\001\024\001\ + \024\001\024\001\024\001\024\001\024\001\024\001\024\001\024\001\ + \024\001\024\001\024\001\024\001\024\001\024\001\024\001\024\001\ + \024\001\024\001\024\001\025\001\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\025\001\025\001\255\255\025\001\ + \025\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\ + \025\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \025\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\ + \025\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\ + \025\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\ + \025\001\025\001\255\255\255\255\255\255\255\255\025\001\255\255\ + \025\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\ + \025\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\ + \025\001\025\001\025\001\025\001\025\001\025\001\025\001\025\001\ + \025\001\025\001\026\001\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\026\001\026\001\255\255\026\001\026\001\ + \026\001\026\001\026\001\026\001\026\001\026\001\026\001\026\001\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\026\001\ + \026\001\026\001\026\001\026\001\026\001\026\001\026\001\026\001\ + \026\001\026\001\026\001\026\001\026\001\026\001\026\001\026\001\ + \026\001\026\001\026\001\026\001\026\001\026\001\026\001\026\001\ + \026\001\255\255\255\255\255\255\255\255\026\001\255\255\026\001\ + \026\001\026\001\026\001\026\001\026\001\026\001\026\001\026\001\ + \026\001\026\001\026\001\026\001\026\001\026\001\026\001\026\001\ + \026\001\026\001\026\001\026\001\026\001\026\001\026\001\026\001\ + \026\001\027\001\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\027\001\027\001\255\255\027\001\027\001\027\001\ + \027\001\027\001\027\001\027\001\027\001\027\001\027\001\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\027\001\027\001\ + \027\001\027\001\027\001\027\001\027\001\027\001\027\001\027\001\ + \027\001\027\001\027\001\027\001\027\001\027\001\027\001\027\001\ + \027\001\027\001\027\001\027\001\027\001\027\001\027\001\027\001\ + \255\255\255\255\255\255\255\255\027\001\255\255\027\001\027\001\ + \027\001\027\001\027\001\027\001\027\001\027\001\027\001\027\001\ + \027\001\027\001\027\001\027\001\027\001\027\001\027\001\027\001\ + \027\001\027\001\027\001\027\001\027\001\027\001\027\001\027\001\ + \028\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\028\001\028\001\255\255\028\001\028\001\028\001\028\001\ + \028\001\028\001\028\001\028\001\028\001\028\001\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\028\001\028\001\028\001\ + \028\001\028\001\028\001\028\001\028\001\028\001\028\001\028\001\ + \028\001\028\001\028\001\028\001\028\001\028\001\028\001\028\001\ + \028\001\028\001\028\001\028\001\028\001\028\001\028\001\255\255\ + \255\255\255\255\255\255\028\001\255\255\028\001\028\001\028\001\ + \028\001\028\001\028\001\028\001\028\001\028\001\028\001\028\001\ + \028\001\028\001\028\001\028\001\028\001\028\001\028\001\028\001\ + \028\001\028\001\028\001\028\001\028\001\028\001\028\001\029\001\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \029\001\029\001\255\255\029\001\029\001\029\001\029\001\029\001\ + \029\001\029\001\029\001\029\001\029\001\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\029\001\029\001\029\001\029\001\ + \029\001\029\001\029\001\029\001\029\001\029\001\029\001\029\001\ + \029\001\029\001\029\001\029\001\029\001\029\001\029\001\029\001\ + \029\001\029\001\029\001\029\001\029\001\029\001\255\255\255\255\ + \255\255\255\255\029\001\255\255\029\001\029\001\029\001\029\001\ + \029\001\029\001\029\001\029\001\029\001\029\001\029\001\029\001\ + \029\001\029\001\029\001\029\001\029\001\029\001\029\001\029\001\ + \029\001\029\001\029\001\029\001\029\001\029\001\030\001\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\030\001\ + \030\001\255\255\030\001\030\001\030\001\030\001\030\001\030\001\ + \030\001\030\001\030\001\030\001\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\030\001\030\001\030\001\030\001\030\001\ + \030\001\030\001\030\001\030\001\030\001\030\001\030\001\030\001\ + \030\001\030\001\030\001\030\001\030\001\030\001\030\001\030\001\ + \030\001\030\001\030\001\030\001\030\001\255\255\255\255\255\255\ + \255\255\030\001\255\255\030\001\030\001\030\001\030\001\030\001\ + \030\001\030\001\030\001\030\001\030\001\030\001\030\001\030\001\ + \030\001\030\001\030\001\030\001\030\001\030\001\030\001\030\001\ + \030\001\030\001\030\001\030\001\030\001\031\001\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\031\001\031\001\ + \255\255\031\001\031\001\031\001\031\001\031\001\031\001\031\001\ + \031\001\031\001\031\001\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\031\001\031\001\031\001\031\001\031\001\031\001\ + \031\001\031\001\031\001\031\001\031\001\031\001\031\001\031\001\ + \031\001\031\001\031\001\031\001\031\001\031\001\031\001\031\001\ + \031\001\031\001\031\001\031\001\255\255\255\255\255\255\255\255\ + \031\001\255\255\031\001\031\001\031\001\031\001\031\001\031\001\ + \031\001\031\001\031\001\031\001\031\001\031\001\031\001\031\001\ + \031\001\031\001\031\001\031\001\031\001\031\001\031\001\031\001\ + \031\001\031\001\031\001\031\001\032\001\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\032\001\032\001\255\255\ + \032\001\032\001\032\001\032\001\032\001\032\001\032\001\032\001\ + \032\001\032\001\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\032\001\032\001\032\001\032\001\032\001\032\001\032\001\ + \032\001\032\001\032\001\032\001\032\001\032\001\032\001\032\001\ + \032\001\032\001\032\001\032\001\032\001\032\001\032\001\032\001\ + \032\001\032\001\032\001\255\255\255\255\255\255\255\255\032\001\ + \255\255\032\001\032\001\032\001\032\001\032\001\032\001\032\001\ + \032\001\032\001\032\001\032\001\032\001\032\001\032\001\032\001\ + \032\001\032\001\032\001\032\001\032\001\032\001\032\001\032\001\ + \032\001\032\001\032\001\033\001\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\033\001\033\001\255\255\033\001\ + \033\001\033\001\033\001\033\001\033\001\033\001\033\001\033\001\ + \033\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \033\001\033\001\033\001\033\001\033\001\033\001\033\001\033\001\ + \033\001\033\001\033\001\033\001\033\001\033\001\033\001\033\001\ + \033\001\033\001\033\001\033\001\033\001\033\001\033\001\033\001\ + \033\001\033\001\255\255\255\255\255\255\255\255\033\001\255\255\ + \033\001\033\001\033\001\033\001\033\001\033\001\033\001\033\001\ + \033\001\033\001\033\001\033\001\033\001\033\001\033\001\033\001\ + \033\001\033\001\033\001\033\001\033\001\033\001\033\001\033\001\ + \033\001\033\001\034\001\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\034\001\034\001\255\255\034\001\034\001\ + \034\001\034\001\034\001\034\001\034\001\034\001\034\001\034\001\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\034\001\ + \034\001\034\001\034\001\034\001\034\001\034\001\034\001\034\001\ + \034\001\034\001\034\001\034\001\034\001\034\001\034\001\034\001\ + \034\001\034\001\034\001\034\001\034\001\034\001\034\001\034\001\ + \034\001\255\255\255\255\255\255\255\255\034\001\255\255\034\001\ + \034\001\034\001\034\001\034\001\034\001\034\001\034\001\034\001\ + \034\001\034\001\034\001\034\001\034\001\034\001\034\001\034\001\ + \034\001\034\001\034\001\034\001\034\001\034\001\034\001\034\001\ + \034\001\036\001\036\001\036\001\036\001\036\001\036\001\036\001\ + \036\001\036\001\036\001\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\ + \255\255\255\255"; + Lexing.lex_base_code = + ""; + Lexing.lex_backtrk_code = + ""; + Lexing.lex_default_code = + ""; + Lexing.lex_trans_code = + ""; + Lexing.lex_check_code = + ""; + Lexing.lex_code = + ""; +} + +let rec token lexbuf = + __ocaml_lex_token_rec lexbuf 0 +and __ocaml_lex_token_rec lexbuf __ocaml_lex_state = + match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with + | 0 -> +# 39 "menhir/lLexer.mll" + ( token lexbuf ) +# 5903 "menhir/lLexer.ml" + + | 1 -> +# 40 "menhir/lLexer.mll" + ( token lexbuf ) +# 5908 "menhir/lLexer.ml" + + | 2 -> +# 43 "menhir/lLexer.mll" + ( TARGET ) +# 5913 "menhir/lLexer.ml" + + | 3 -> +# 44 "menhir/lLexer.mll" + ( DATALAYOUT ) +# 5918 "menhir/lLexer.ml" + + | 4 -> +# 45 "menhir/lLexer.mll" + ( TRIPLE ) +# 5923 "menhir/lLexer.ml" + + | 5 -> +# 46 "menhir/lLexer.mll" + ( DEFINE ) +# 5928 "menhir/lLexer.ml" + + | 6 -> +# 49 "menhir/lLexer.mll" + ( COMMA ) +# 5933 "menhir/lLexer.ml" + + | 7 -> +# 50 "menhir/lLexer.mll" + ( LPAREN ) +# 5938 "menhir/lLexer.ml" + + | 8 -> +# 51 "menhir/lLexer.mll" + ( RPAREN ) +# 5943 "menhir/lLexer.ml" + + | 9 -> +# 52 "menhir/lLexer.mll" + ( LBRACE ) +# 5948 "menhir/lLexer.ml" + + | 10 -> +# 53 "menhir/lLexer.mll" + ( RBRACE ) +# 5953 "menhir/lLexer.ml" + + | 11 -> +# 54 "menhir/lLexer.mll" + ( LANGLE ) +# 5958 "menhir/lLexer.ml" + + | 12 -> +# 55 "menhir/lLexer.mll" + ( RANGLE ) +# 5963 "menhir/lLexer.ml" + + | 13 -> +# 56 "menhir/lLexer.mll" + ( LSQBRACK ) +# 5968 "menhir/lLexer.ml" + + | 14 -> +# 57 "menhir/lLexer.mll" + ( RSQBRACK ) +# 5973 "menhir/lLexer.ml" + + | 15 -> +# 58 "menhir/lLexer.mll" + ( COLON ) +# 5978 "menhir/lLexer.ml" + + | 16 -> +# 60 "menhir/lLexer.mll" + ( EQUALS ) +# 5983 "menhir/lLexer.ml" + + | 17 -> +# 61 "menhir/lLexer.mll" + ( STAR ) +# 5988 "menhir/lLexer.ml" + + | 18 -> +# 62 "menhir/lLexer.mll" + ( X ) +# 5993 "menhir/lLexer.ml" + + | 19 -> +# 65 "menhir/lLexer.mll" + ( VOID ) +# 5998 "menhir/lLexer.ml" + + | 20 -> +let +# 66 "menhir/lLexer.mll" + width +# 6004 "menhir/lLexer.ml" += Lexing.sub_lexeme lexbuf (lexbuf.Lexing.lex_start_pos + 1) lexbuf.Lexing.lex_curr_pos in +# 66 "menhir/lLexer.mll" + ( INT (int_of_string width) ) +# 6008 "menhir/lLexer.ml" + + | 21 -> +# 67 "menhir/lLexer.mll" + ( HALF ) +# 6013 "menhir/lLexer.ml" + + | 22 -> +# 68 "menhir/lLexer.mll" + ( FLOAT ) +# 6018 "menhir/lLexer.ml" + + | 23 -> +# 69 "menhir/lLexer.mll" + ( DOUBLE ) +# 6023 "menhir/lLexer.ml" + + | 24 -> +# 70 "menhir/lLexer.mll" + ( FP128 ) +# 6028 "menhir/lLexer.ml" + + | 25 -> +# 71 "menhir/lLexer.mll" + ( X86_FP80 ) +# 6033 "menhir/lLexer.ml" + + | 26 -> +# 72 "menhir/lLexer.mll" + ( PPC_FP128 ) +# 6038 "menhir/lLexer.ml" + + | 27 -> +# 74 "menhir/lLexer.mll" + ( LABEL ) +# 6043 "menhir/lLexer.ml" + + | 28 -> +# 75 "menhir/lLexer.mll" + ( METADATA ) +# 6048 "menhir/lLexer.ml" + + | 29 -> +let +# 77 "menhir/lLexer.mll" + str +# 6054 "menhir/lLexer.ml" += Lexing.sub_lexeme lexbuf (lexbuf.Lexing.lex_start_pos + 1) (lexbuf.Lexing.lex_curr_pos + -1) in +# 77 "menhir/lLexer.mll" + ( CONSTANT_STRING str ) +# 6058 "menhir/lLexer.ml" + + | 30 -> +# 79 "menhir/lLexer.mll" + ( CONSTANT_INT 1 ) +# 6063 "menhir/lLexer.ml" + + | 31 -> +# 80 "menhir/lLexer.mll" + ( CONSTANT_INT 0 ) +# 6068 "menhir/lLexer.ml" + + | 32 -> +let +# 81 "menhir/lLexer.mll" + i +# 6074 "menhir/lLexer.ml" += Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in +# 81 "menhir/lLexer.mll" + ( CONSTANT_INT (int_of_string i) ) +# 6078 "menhir/lLexer.ml" + + | 33 -> +# 83 "menhir/lLexer.mll" + ( NULL ) +# 6083 "menhir/lLexer.ml" + + | 34 -> +# 87 "menhir/lLexer.mll" + ( RET ) +# 6088 "menhir/lLexer.ml" + + | 35 -> +# 88 "menhir/lLexer.mll" + ( BR ) +# 6093 "menhir/lLexer.ml" + + | 36 -> +# 95 "menhir/lLexer.mll" + ( ADD ) +# 6098 "menhir/lLexer.ml" + + | 37 -> +# 96 "menhir/lLexer.mll" + ( FADD ) +# 6103 "menhir/lLexer.ml" + + | 38 -> +# 97 "menhir/lLexer.mll" + ( SUB ) +# 6108 "menhir/lLexer.ml" + + | 39 -> +# 98 "menhir/lLexer.mll" + ( FSUB ) +# 6113 "menhir/lLexer.ml" + + | 40 -> +# 99 "menhir/lLexer.mll" + ( MUL ) +# 6118 "menhir/lLexer.ml" + + | 41 -> +# 100 "menhir/lLexer.mll" + ( FMUL ) +# 6123 "menhir/lLexer.ml" + + | 42 -> +# 101 "menhir/lLexer.mll" + ( UDIV ) +# 6128 "menhir/lLexer.ml" + + | 43 -> +# 102 "menhir/lLexer.mll" + ( SDIV ) +# 6133 "menhir/lLexer.ml" + + | 44 -> +# 103 "menhir/lLexer.mll" + ( FDIV ) +# 6138 "menhir/lLexer.ml" + + | 45 -> +# 104 "menhir/lLexer.mll" + ( UREM ) +# 6143 "menhir/lLexer.ml" + + | 46 -> +# 105 "menhir/lLexer.mll" + ( SREM ) +# 6148 "menhir/lLexer.ml" + + | 47 -> +# 106 "menhir/lLexer.mll" + ( FREM ) +# 6153 "menhir/lLexer.ml" + + | 48 -> +# 108 "menhir/lLexer.mll" + ( NUW ) +# 6158 "menhir/lLexer.ml" + + | 49 -> +# 109 "menhir/lLexer.mll" + ( NSW ) +# 6163 "menhir/lLexer.ml" + + | 50 -> +# 110 "menhir/lLexer.mll" + ( EXACT ) +# 6168 "menhir/lLexer.ml" + + | 51 -> +# 112 "menhir/lLexer.mll" + ( NNAN ) +# 6173 "menhir/lLexer.ml" + + | 52 -> +# 113 "menhir/lLexer.mll" + ( NINF ) +# 6178 "menhir/lLexer.ml" + + | 53 -> +# 114 "menhir/lLexer.mll" + ( NSZ ) +# 6183 "menhir/lLexer.ml" + + | 54 -> +# 115 "menhir/lLexer.mll" + ( ARCP ) +# 6188 "menhir/lLexer.ml" + + | 55 -> +# 116 "menhir/lLexer.mll" + ( FAST ) +# 6193 "menhir/lLexer.ml" + + | 56 -> +# 118 "menhir/lLexer.mll" + ( SHL ) +# 6198 "menhir/lLexer.ml" + + | 57 -> +# 119 "menhir/lLexer.mll" + ( LSHR ) +# 6203 "menhir/lLexer.ml" + + | 58 -> +# 120 "menhir/lLexer.mll" + ( ASHR ) +# 6208 "menhir/lLexer.ml" + + | 59 -> +# 121 "menhir/lLexer.mll" + ( AND ) +# 6213 "menhir/lLexer.ml" + + | 60 -> +# 122 "menhir/lLexer.mll" + ( OR ) +# 6218 "menhir/lLexer.ml" + + | 61 -> +# 123 "menhir/lLexer.mll" + ( XOR ) +# 6223 "menhir/lLexer.ml" + + | 62 -> +# 125 "menhir/lLexer.mll" + ( EXTRACTELEMENT ) +# 6228 "menhir/lLexer.ml" + + | 63 -> +# 126 "menhir/lLexer.mll" + ( INSERTELEMENT ) +# 6233 "menhir/lLexer.ml" + + | 64 -> +# 132 "menhir/lLexer.mll" + ( ALIGN ) +# 6238 "menhir/lLexer.ml" + + | 65 -> +# 133 "menhir/lLexer.mll" + ( ALLOCA ) +# 6243 "menhir/lLexer.ml" + + | 66 -> +# 134 "menhir/lLexer.mll" + ( LOAD ) +# 6248 "menhir/lLexer.ml" + + | 67 -> +# 135 "menhir/lLexer.mll" + ( STORE ) +# 6253 "menhir/lLexer.ml" + + | 68 -> +# 160 "menhir/lLexer.mll" + ( CALL ) +# 6258 "menhir/lLexer.ml" + + | 69 -> +# 166 "menhir/lLexer.mll" + ( DBG_DECLARE ) +# 6263 "menhir/lLexer.ml" + + | 70 -> +let +# 167 "menhir/lLexer.mll" + str +# 6269 "menhir/lLexer.ml" += Lexing.sub_lexeme lexbuf (lexbuf.Lexing.lex_start_pos + 1) lexbuf.Lexing.lex_curr_pos in +# 167 "menhir/lLexer.mll" + ( NAMED_GLOBAL str ) +# 6273 "menhir/lLexer.ml" + + | 71 -> +let +# 168 "menhir/lLexer.mll" + str +# 6279 "menhir/lLexer.ml" += Lexing.sub_lexeme lexbuf (lexbuf.Lexing.lex_start_pos + 1) lexbuf.Lexing.lex_curr_pos in +# 168 "menhir/lLexer.mll" + ( NAMED_LOCAL str ) +# 6283 "menhir/lLexer.ml" + + | 72 -> +let +# 169 "menhir/lLexer.mll" + i +# 6289 "menhir/lLexer.ml" += Lexing.sub_lexeme lexbuf (lexbuf.Lexing.lex_start_pos + 1) lexbuf.Lexing.lex_curr_pos in +# 169 "menhir/lLexer.mll" + ( NUMBERED_GLOBAL (int_of_string i) ) +# 6293 "menhir/lLexer.ml" + + | 73 -> +let +# 170 "menhir/lLexer.mll" + i +# 6299 "menhir/lLexer.ml" += Lexing.sub_lexeme lexbuf (lexbuf.Lexing.lex_start_pos + 1) lexbuf.Lexing.lex_curr_pos in +# 170 "menhir/lLexer.mll" + ( NUMBERED_LOCAL (int_of_string i) ) +# 6303 "menhir/lLexer.ml" + + | 74 -> +let +# 171 "menhir/lLexer.mll" + str +# 6309 "menhir/lLexer.ml" += Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in +# 171 "menhir/lLexer.mll" + ( IDENT str ) +# 6313 "menhir/lLexer.ml" + + | 75 -> +# 174 "menhir/lLexer.mll" + ( DEBUG_ANNOTATION ) +# 6318 "menhir/lLexer.ml" + + | 76 -> +# 175 "menhir/lLexer.mll" + ( METADATA_LOCATION ) +# 6323 "menhir/lLexer.ml" + + | 77 -> +let +# 176 "menhir/lLexer.mll" + str +# 6329 "menhir/lLexer.ml" += Lexing.sub_lexeme lexbuf (lexbuf.Lexing.lex_start_pos + 1) lexbuf.Lexing.lex_curr_pos in +# 176 "menhir/lLexer.mll" + ( NAMED_METADATA str ) +# 6333 "menhir/lLexer.ml" + + | 78 -> +let +# 177 "menhir/lLexer.mll" + i +# 6339 "menhir/lLexer.ml" += Lexing.sub_lexeme lexbuf (lexbuf.Lexing.lex_start_pos + 1) lexbuf.Lexing.lex_curr_pos in +# 177 "menhir/lLexer.mll" + ( NUMBERED_METADATA (int_of_string i) ) +# 6343 "menhir/lLexer.ml" + + | 79 -> +let +# 178 "menhir/lLexer.mll" + str +# 6349 "menhir/lLexer.ml" += Lexing.sub_lexeme lexbuf (lexbuf.Lexing.lex_start_pos + 2) (lexbuf.Lexing.lex_curr_pos + -1) in +# 178 "menhir/lLexer.mll" + ( METADATA_STRING str ) +# 6353 "menhir/lLexer.ml" + + | 80 -> +# 179 "menhir/lLexer.mll" + ( METADATA_NODE_BEGIN ) +# 6358 "menhir/lLexer.ml" + + | 81 -> +# 181 "menhir/lLexer.mll" + ( token lexbuf ) +# 6363 "menhir/lLexer.ml" + + | 82 -> +let +# 184 "menhir/lLexer.mll" + i +# 6369 "menhir/lLexer.ml" += Lexing.sub_lexeme lexbuf (lexbuf.Lexing.lex_start_pos + 1) lexbuf.Lexing.lex_curr_pos in +# 184 "menhir/lLexer.mll" + ( ATTRIBUTE_GROUP (int_of_string i) ) +# 6373 "menhir/lLexer.ml" + + | 83 -> +# 185 "menhir/lLexer.mll" + ( token lexbuf ) +# 6378 "menhir/lLexer.ml" + + | 84 -> +# 187 "menhir/lLexer.mll" + ( EOF ) +# 6383 "menhir/lLexer.ml" + + | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; + __ocaml_lex_token_rec lexbuf __ocaml_lex_state + +;; + diff --git a/infer/src/llvm/lParser.ml b/infer/src/llvm/lParser.ml new file mode 100644 index 000000000..425a27ee3 --- /dev/null +++ b/infer/src/llvm/lParser.ml @@ -0,0 +1,4896 @@ + +exception Error + +let _eRR = + Error + +type token = + | XOR + | X86_FP80 + | X + | VOID + | UREM + | UDIV + | TRIPLE + | TARGET + | SUB + | STORE + | STAR + | SREM + | SHL + | SDIV + | RSQBRACK + | RPAREN + | RET + | RBRACE + | RANGLE + | PPC_FP128 + | OR + | NUW + | NUMBERED_METADATA of (int) + | NUMBERED_LOCAL of (int) + | NUMBERED_GLOBAL of (int) + | NULL + | NSZ + | NSW + | NNAN + | NINF + | NAMED_METADATA of (string) + | NAMED_LOCAL of (string) + | NAMED_GLOBAL of (string) + | MUL + | METADATA_STRING of (string) + | METADATA_NODE_BEGIN + | METADATA_LOCATION + | METADATA + | LSQBRACK + | LSHR + | LPAREN + | LOAD + | LBRACE + | LANGLE + | LABEL + | INT of (int) + | INSERTELEMENT + | IDENT of (string) + | HALF + | FSUB + | FREM + | FP128 + | FMUL + | FLOAT + | FDIV + | FAST + | FADD + | EXTRACTELEMENT + | EXACT + | EQUALS + | EOF + | DOUBLE + | DEFINE + | DEBUG_ANNOTATION + | DBG_DECLARE + | DATALAYOUT + | CONSTANT_STRING of (string) + | CONSTANT_INT of (int) + | COMMA + | COLON + | CALL + | BR + | ATTRIBUTE_GROUP of (int) + | ASHR + | ARCP + | AND + | ALLOCA + | ALIGN + | ADD + +type _menhir_env = { + _menhir_lexer: Lexing.lexbuf -> token; + _menhir_lexbuf: Lexing.lexbuf; + _menhir_token: token; + mutable _menhir_error: bool +} + +and _menhir_state = + | MenhirState276 + | MenhirState272 + | MenhirState270 + | MenhirState266 + | MenhirState260 + | MenhirState258 + | MenhirState238 + | MenhirState236 + | MenhirState234 + | MenhirState230 + | MenhirState227 + | MenhirState225 + | MenhirState217 + | MenhirState214 + | MenhirState213 + | MenhirState211 + | MenhirState210 + | MenhirState208 + | MenhirState206 + | MenhirState205 + | MenhirState200 + | MenhirState198 + | MenhirState197 + | MenhirState195 + | MenhirState194 + | MenhirState192 + | MenhirState191 + | MenhirState189 + | MenhirState188 + | MenhirState186 + | MenhirState185 + | MenhirState183 + | MenhirState182 + | MenhirState180 + | MenhirState179 + | MenhirState177 + | MenhirState176 + | MenhirState174 + | MenhirState163 + | MenhirState161 + | MenhirState160 + | MenhirState158 + | MenhirState157 + | MenhirState155 + | MenhirState154 + | MenhirState152 + | MenhirState151 + | MenhirState150 + | MenhirState148 + | MenhirState147 + | MenhirState145 + | MenhirState143 + | MenhirState141 + | MenhirState140 + | MenhirState138 + | MenhirState137 + | MenhirState135 + | MenhirState133 + | MenhirState128 + | MenhirState126 + | MenhirState124 + | MenhirState122 + | MenhirState119 + | MenhirState117 + | MenhirState116 + | MenhirState112 + | MenhirState109 + | MenhirState106 + | MenhirState104 + | MenhirState95 + | MenhirState93 + | MenhirState90 + | MenhirState89 + | MenhirState85 + | MenhirState82 + | MenhirState77 + | MenhirState75 + | MenhirState67 + | MenhirState66 + | MenhirState65 + | MenhirState60 + | MenhirState59 + | MenhirState58 + | MenhirState55 + | MenhirState52 + | MenhirState46 + | MenhirState38 + | MenhirState30 + | MenhirState29 + | MenhirState27 + | MenhirState19 + | MenhirState16 + | MenhirState9 + | MenhirState8 + | MenhirState0 + + open LAst + +let rec _menhir_goto_option_FAST_ : _menhir_env -> 'ttv_tail -> (unit option) -> 'ttv_return = + fun _menhir_env _menhir_stack _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_5 : (unit option)) = _v in + let ((((_menhir_stack, _menhir_s, (_1 : (unit option))), (_2 : (unit option))), (_3 : (unit option))), (_4 : (unit option))) = _menhir_stack in + let _v : (unit) = ( () ) in + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState163 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState174 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState174 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState174 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState174 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState174 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState174 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState174 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState174 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState174 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState174 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState174 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState174 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState174) + | MenhirState176 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState177 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState177 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState177 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState177 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState177 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState177 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState177 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState177 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState177 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState177 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState177 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState177 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState177) + | MenhirState179 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState180 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState180 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState180 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState180 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState180 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState180 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState180 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState180 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState180 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState180 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState180 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState180 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState180) + | MenhirState182 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState183 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState183 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState183 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState183 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState183 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState183 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState183 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState183 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState183 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState183 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState183 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState183 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState183) + | MenhirState185 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState186 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState186 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState186 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState186 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState186 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState186 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState186 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState186 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState186 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState186 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState186 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState186 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState186) + | _ -> + _menhir_fail () + +and _menhir_goto_option_ARCP_ : _menhir_env -> 'ttv_tail -> (unit option) -> 'ttv_return = + fun _menhir_env _menhir_stack _v -> + let _menhir_stack = (_menhir_stack, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | FAST -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let x = () in + let _v : (unit option) = ( Some x ) in + _menhir_goto_option_FAST_ _menhir_env _menhir_stack _v + | DOUBLE | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | PPC_FP128 | VOID | X86_FP80 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _v : (unit option) = ( None ) in + _menhir_goto_option_FAST_ _menhir_env _menhir_stack _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let ((((_menhir_stack, _menhir_s, _), _), _), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_goto_list_annotated_instruction_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.annotated_instruction option list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState58 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | RBRACE -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _, (annotated_instrs : (LAst.annotated_instruction option list))) = _menhir_stack in + let _3 = () in + let _1 = () in + let _v : (LAst.annotated_instruction list) = ( IList.flatten_options annotated_instrs ) in + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (annotated_instrs : (LAst.annotated_instruction list)) = _v in + let (((((_menhir_stack, _menhir_s), _, (ret_tp : (LAst.typ option))), _, (name : (LAst.variable))), _, (xs0 : ((LAst.typ * string) list))), _, (_7 : (int list))) = _menhir_stack in + let _6 = () in + let _4 = () in + let _1 = () in + let _v : (LAst.function_def) = let params = + let xs = xs0 in + ( xs ) + in + ( FunctionDef (name, ret_tp, params, annotated_instrs) ) in + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | DEFINE -> + _menhir_run9 _menhir_env (Obj.magic _menhir_stack) MenhirState270 + | EOF | NAMED_METADATA _ | NUMBERED_METADATA _ -> + _menhir_reduce54 _menhir_env (Obj.magic _menhir_stack) MenhirState270 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState270) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState227 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s, (x : (LAst.annotated_instruction option))), _, (xs : (LAst.annotated_instruction option list))) = _menhir_stack in + let _v : (LAst.annotated_instruction option list) = ( x :: xs ) in + _menhir_goto_list_annotated_instruction_ _menhir_env _menhir_stack _menhir_s _v + | _ -> + _menhir_fail () + +and _menhir_goto_option_NSZ_ : _menhir_env -> 'ttv_tail -> (unit option) -> 'ttv_return = + fun _menhir_env _menhir_stack _v -> + let _menhir_stack = (_menhir_stack, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | ARCP -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let x = () in + let _v : (unit option) = ( Some x ) in + _menhir_goto_option_ARCP_ _menhir_env _menhir_stack _v + | DOUBLE | FAST | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | PPC_FP128 | VOID | X86_FP80 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _v : (unit option) = ( None ) in + _menhir_goto_option_ARCP_ _menhir_env _menhir_stack _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (((_menhir_stack, _menhir_s, _), _), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_goto_annotated_instruction : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.annotated_instruction option) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | BR -> + _menhir_run103 _menhir_env (Obj.magic _menhir_stack) MenhirState227 + | CALL -> + _menhir_run79 _menhir_env (Obj.magic _menhir_stack) MenhirState227 + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState227 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState227 _v + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState227 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState227 _v + | RET -> + _menhir_run75 _menhir_env (Obj.magic _menhir_stack) MenhirState227 + | STORE -> + _menhir_run59 _menhir_env (Obj.magic _menhir_stack) MenhirState227 + | RBRACE -> + _menhir_reduce50 _menhir_env (Obj.magic _menhir_stack) MenhirState227 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState227 + +and _menhir_reduce50 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _v : (LAst.annotated_instruction option list) = ( [] ) in + _menhir_goto_list_annotated_instruction_ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run59 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState59 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState59 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState59 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState59 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState59 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState59 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState59 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState59 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState59 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState59 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState59 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState59 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState59 + +and _menhir_run75 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState75 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState75 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState75 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState75 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState75 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState75 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState75 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState75 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState75 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState75 + | VOID -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_s = MenhirState75 in + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | LPAREN -> + _menhir_reduce117 _menhir_env (Obj.magic _menhir_stack) + | BR | CALL | COMMA | NAMED_GLOBAL _ | NAMED_LOCAL _ | NUMBERED_GLOBAL _ | NUMBERED_LOCAL _ | RBRACE | RET | STORE -> + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s), _) = _menhir_stack in + let _2 = () in + let _1 = () in + let _v : (LAst.instruction) = ( Ret None ) in + _menhir_goto_real_instruction _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState75 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState75 + +and _menhir_run79 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | VOID -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DBG_DECLARE -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | LPAREN -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | METADATA -> + _menhir_run83 _menhir_env (Obj.magic _menhir_stack) MenhirState82 + | CONSTANT_INT _ | DOUBLE | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA_NODE_BEGIN | METADATA_STRING _ | NAMED_GLOBAL _ | NAMED_LOCAL _ | NULL | NUMBERED_GLOBAL _ | NUMBERED_LOCAL _ | NUMBERED_METADATA _ | PPC_FP128 | VOID | X86_FP80 -> + _menhir_reduce88 _menhir_env (Obj.magic _menhir_stack) MenhirState82 + | RPAREN -> + _menhir_reduce62 _menhir_env (Obj.magic _menhir_stack) MenhirState82 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState82) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_run103 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | INT _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = (_menhir_stack, _v) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | CONSTANT_INT _v -> + _menhir_run62 _menhir_env (Obj.magic _menhir_stack) MenhirState106 _v + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState106 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState106 _v + | NULL -> + _menhir_run61 _menhir_env (Obj.magic _menhir_stack) MenhirState106 + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState106 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState106 _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState106) + | LABEL -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState104 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState104 _v + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState104 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState104 _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState104) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_goto_option_NINF_ : _menhir_env -> 'ttv_tail -> (unit option) -> 'ttv_return = + fun _menhir_env _menhir_stack _v -> + let _menhir_stack = (_menhir_stack, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | NSZ -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let x = () in + let _v : (unit option) = ( Some x ) in + _menhir_goto_option_NSZ_ _menhir_env _menhir_stack _v + | ARCP | DOUBLE | FAST | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | PPC_FP128 | VOID | X86_FP80 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _v : (unit option) = ( None ) in + _menhir_goto_option_NSZ_ _menhir_env _menhir_stack _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s, _), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_goto_option_NSW_ : _menhir_env -> 'ttv_tail -> (unit option) -> 'ttv_return = + fun _menhir_env _menhir_stack _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_2 : (unit option)) = _v in + let (_menhir_stack, _menhir_s, (_1 : (unit option))) = _menhir_stack in + let _v : (unit) = ( () ) in + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState128 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState133 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState133 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState133 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState133 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState133 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState133 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState133 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState133 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState133 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState133 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState133 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState133 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState133) + | MenhirState137 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState138 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState138 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState138 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState138 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState138 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState138 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState138 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState138 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState138 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState138 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState138 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState138 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState138) + | MenhirState213 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState214 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState214 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState214 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState214 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState214 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState214 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState214 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState214 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState214 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState214 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState214 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState214 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState214) + | _ -> + _menhir_fail () + +and _menhir_goto_option_annotation_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.annotation option) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + match _menhir_s with + | MenhirState217 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (anno : (LAst.annotation option)) = _v in + let (_menhir_stack, _menhir_s, (instr : (LAst.instruction))) = _menhir_stack in + let _v : (LAst.annotated_instruction option) = ( Some (instr, anno) ) in + _menhir_goto_annotated_instruction _menhir_env _menhir_stack _menhir_s _v + | MenhirState225 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_2 : (LAst.annotation option)) = _v in + let (_menhir_stack, _menhir_s, (_1 : (unit))) = _menhir_stack in + let _v : (LAst.annotated_instruction option) = ( None ) in + _menhir_goto_annotated_instruction _menhir_env _menhir_stack _menhir_s _v + | _ -> + _menhir_fail () + +and _menhir_goto_separated_nonempty_list_COMMA_metadata_component_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.metadata_component list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + match _menhir_s with + | MenhirState93 | MenhirState82 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (x : (LAst.metadata_component list)) = _v in + let _v : (LAst.metadata_component list) = ( x ) in + _menhir_goto_loption_separated_nonempty_list_COMMA_metadata_component__ _menhir_env _menhir_stack _menhir_s _v + | MenhirState95 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (xs : (LAst.metadata_component list)) = _v in + let (_menhir_stack, _menhir_s, (x : (LAst.metadata_component))) = _menhir_stack in + let _2 = () in + let _v : (LAst.metadata_component list) = ( x :: xs ) in + _menhir_goto_separated_nonempty_list_COMMA_metadata_component_ _menhir_env _menhir_stack _menhir_s _v + | _ -> + _menhir_fail () + +and _menhir_goto_loption_separated_nonempty_list_COMMA_metadata_component__ : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.metadata_component list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState93 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | RBRACE -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s, (_1 : (unit option))), _, (xs0 : (LAst.metadata_component list))) = _menhir_stack in + let _4 = () in + let _2 = () in + let _v : (LAst.metadata_component list) = let components = + let xs = xs0 in + ( xs ) + in + ( components ) in + (match _menhir_s with + | MenhirState85 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (components : (LAst.metadata_component list)) = _v in + let _v : (LAst.metadata_value) = ( MetadataNode components ) in + _menhir_goto_metadata_value _menhir_env _menhir_stack _menhir_s _v + | MenhirState238 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (components : (LAst.metadata_component list)) = _v in + let _v : (LAst.metadata_aggregate) = ( Components components ) in + _menhir_goto_metadata_aggregate _menhir_env _menhir_stack _menhir_s _v + | _ -> + _menhir_fail ()) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState82 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | RPAREN -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s), _, (xs0 : (LAst.metadata_component list))) = _menhir_stack in + let _6 = () in + let _4 = () in + let _3 = () in + let _2 = () in + let _1 = () in + let _v : (unit) = let _5 = + let xs = xs0 in + ( xs ) + in + ( () ) in + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + _menhir_run218 _menhir_env (Obj.magic _menhir_stack) MenhirState225 + | BR | CALL | NAMED_GLOBAL _ | NAMED_LOCAL _ | NUMBERED_GLOBAL _ | NUMBERED_LOCAL _ | RBRACE | RET | STORE -> + _menhir_reduce102 _menhir_env (Obj.magic _menhir_stack) MenhirState225 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState225) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + _menhir_fail () + +and _menhir_goto_list_attribute_group_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (int list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState55 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | LBRACE -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | BR -> + _menhir_run103 _menhir_env (Obj.magic _menhir_stack) MenhirState58 + | CALL -> + _menhir_run79 _menhir_env (Obj.magic _menhir_stack) MenhirState58 + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState58 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState58 _v + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState58 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState58 _v + | RET -> + _menhir_run75 _menhir_env (Obj.magic _menhir_stack) MenhirState58 + | STORE -> + _menhir_run59 _menhir_env (Obj.magic _menhir_stack) MenhirState58 + | RBRACE -> + _menhir_reduce50 _menhir_env (Obj.magic _menhir_stack) MenhirState58 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState58) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState230 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s, (x : (int))), _, (xs : (int list))) = _menhir_stack in + let _v : (int list) = ( x :: xs ) in + _menhir_goto_list_attribute_group_ _menhir_env _menhir_stack _menhir_s _v + | _ -> + _menhir_fail () + +and _menhir_reduce35 : _menhir_env -> 'ttv_tail * _menhir_state * (LAst.typ) -> 'ttv_return = + fun _menhir_env _menhir_stack -> + let (_menhir_stack, _menhir_s, (tp : (LAst.typ))) = _menhir_stack in + let _v : (LAst.typ) = ( Tptr tp ) in + _menhir_goto_element_typ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_goto_option_NNAN_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (unit option) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | NINF -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let x = () in + let _v : (unit option) = ( Some x ) in + _menhir_goto_option_NINF_ _menhir_env _menhir_stack _v + | ARCP | DOUBLE | FAST | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | NSZ | PPC_FP128 | VOID | X86_FP80 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _v : (unit option) = ( None ) in + _menhir_goto_option_NINF_ _menhir_env _menhir_stack _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_goto_option_EXACT_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (unit option) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState124 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState126 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState126 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState126 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState126 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState126 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState126 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState126 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState126 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState126 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState126 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState126 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState126 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState126) + | MenhirState140 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState141 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState141 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState141 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState141 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState141 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState141 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState141 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState141 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState141 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState141 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState141 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState141 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState141) + | MenhirState147 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState148 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState148 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState148 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState148 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState148 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState148 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState148 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState148 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState148 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState148 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState148 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState148 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState148) + | MenhirState205 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState206 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState206 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState206 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState206 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState206 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState206 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState206 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState206 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState206 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState206 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState206 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState206 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState206) + | _ -> + _menhir_fail () + +and _menhir_goto_option_NUW_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (unit option) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | NSW -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let x = () in + let _v : (unit option) = ( Some x ) in + _menhir_goto_option_NSW_ _menhir_env _menhir_stack _v + | DOUBLE | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | PPC_FP128 | VOID | X86_FP80 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _v : (unit option) = ( None ) in + _menhir_goto_option_NSW_ _menhir_env _menhir_stack _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_reduce102 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _v : (LAst.annotation option) = ( None ) in + _menhir_goto_option_annotation_ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run218 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | DEBUG_ANNOTATION -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | NUMBERED_METADATA _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (i : (int)) = _v in + let (_menhir_stack, _menhir_s) = _menhir_stack in + let _2 = () in + let _1 = () in + let _v : (LAst.annotation) = ( Annotation i ) in + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (x : (LAst.annotation)) = _v in + let _v : (LAst.annotation option) = ( Some x ) in + _menhir_goto_option_annotation_ _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_goto_option_align_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (int option) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + match _menhir_s with + | MenhirState67 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_7 : (int option)) = _v in + let (((((_menhir_stack, _menhir_s), _, (val_tp : (LAst.typ))), _, (value : (LAst.operand))), _, (_ptr_tp : (LAst.typ))), _, (var : (LAst.variable))) = _menhir_stack in + let _4 = () in + let _1 = () in + let _v : (LAst.instruction) = ( Store (value, val_tp, var) ) in + _menhir_goto_real_instruction _menhir_env _menhir_stack _menhir_s _v + | MenhirState152 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_6 : (int option)) = _v in + let (((_menhir_stack, _menhir_s, (var : (LAst.variable))), _, (tp : (LAst.typ))), _, (ptr : (LAst.variable))) = _menhir_stack in + let _3 = () in + let _2 = () in + let _v : (LAst.instruction) = ( Load (var, tp, ptr) ) in + _menhir_goto_real_instruction _menhir_env _menhir_stack _menhir_s _v + | MenhirState211 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_5 : (int option)) = _v in + let ((_menhir_stack, _menhir_s, (var : (LAst.variable))), _, (tp : (LAst.typ))) = _menhir_stack in + let _3 = () in + let _2 = () in + let _v : (LAst.instruction) = ( Alloc (var, tp, 1) ) in + _menhir_goto_real_instruction _menhir_env _menhir_stack _menhir_s _v + | _ -> + _menhir_fail () + +and _menhir_goto_separated_nonempty_list_COMMA_pair_typ_operand__ : _menhir_env -> 'ttv_tail -> _menhir_state -> ((LAst.typ * LAst.operand) list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + match _menhir_s with + | MenhirState200 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (xs : ((LAst.typ * LAst.operand) list)) = _v in + let ((_menhir_stack, _menhir_s, (x0 : (LAst.typ))), _, (y0 : (LAst.operand))) = _menhir_stack in + let _2 = () in + let _v : ((LAst.typ * LAst.operand) list) = let x = + let y = y0 in + let x = x0 in + ( (x, y) ) + in + ( x :: xs ) in + _menhir_goto_separated_nonempty_list_COMMA_pair_typ_operand__ _menhir_env _menhir_stack _menhir_s _v + | MenhirState197 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (x : ((LAst.typ * LAst.operand) list)) = _v in + let _v : ((LAst.typ * LAst.operand) list) = ( x ) in + _menhir_goto_loption_separated_nonempty_list_COMMA_pair_typ_operand___ _menhir_env _menhir_stack _menhir_s _v + | _ -> + _menhir_fail () + +and _menhir_goto_binop : _menhir_env -> 'ttv_tail -> (unit) -> 'ttv_return = + fun _menhir_env _menhir_stack _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_3 : (unit)) = _v in + let (_menhir_stack, _menhir_s, (_1 : (LAst.variable))) = _menhir_stack in + let _2 = () in + let _v : (LAst.instruction) = ( Binop ) in + _menhir_goto_real_instruction _menhir_env _menhir_stack _menhir_s _v + +and _menhir_goto_metadata_component : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.metadata_component) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | COMMA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | METADATA -> + _menhir_run83 _menhir_env (Obj.magic _menhir_stack) MenhirState95 + | CONSTANT_INT _ | DOUBLE | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA_NODE_BEGIN | METADATA_STRING _ | NAMED_GLOBAL _ | NAMED_LOCAL _ | NULL | NUMBERED_GLOBAL _ | NUMBERED_LOCAL _ | NUMBERED_METADATA _ | PPC_FP128 | VOID | X86_FP80 -> + _menhir_reduce88 _menhir_env (Obj.magic _menhir_stack) MenhirState95 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState95) + | RBRACE | RPAREN -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, (x : (LAst.metadata_component))) = _menhir_stack in + let _v : (LAst.metadata_component list) = ( [ x ] ) in + _menhir_goto_separated_nonempty_list_COMMA_metadata_component_ _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_reduce62 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _v : (LAst.metadata_component list) = ( [] ) in + _menhir_goto_loption_separated_nonempty_list_COMMA_metadata_component__ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_goto_metadata_value : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.metadata_value) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (value : (LAst.metadata_value)) = _v in + let (_menhir_stack, _menhir_s, (_1 : (unit option))) = _menhir_stack in + let _v : (LAst.metadata_component) = ( MetadataVal value ) in + _menhir_goto_metadata_component _menhir_env _menhir_stack _menhir_s _v + +and _menhir_reduce52 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _v : (int list) = ( [] ) in + _menhir_goto_list_attribute_group_ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run56 : _menhir_env -> 'ttv_tail -> _menhir_state -> (int) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (i : (int)) = _v in + let _v : (int) = ( i ) in + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | ATTRIBUTE_GROUP _v -> + _menhir_run56 _menhir_env (Obj.magic _menhir_stack) MenhirState230 _v + | LBRACE -> + _menhir_reduce52 _menhir_env (Obj.magic _menhir_stack) MenhirState230 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState230 + +and _menhir_goto_option_typ_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.typ option) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | CONSTANT_INT _v -> + _menhir_run62 _menhir_env (Obj.magic _menhir_stack) MenhirState90 _v + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState90 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState90 _v + | NULL -> + _menhir_run61 _menhir_env (Obj.magic _menhir_stack) MenhirState90 + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState90 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState90 _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState90 + +and _menhir_run28 : _menhir_env -> 'ttv_tail * _menhir_state * (LAst.typ) -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, (tp : (LAst.typ))) = _menhir_stack in + let _2 = () in + let _v : (LAst.typ) = ( tp ) in + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState9 | MenhirState234 | MenhirState214 | MenhirState210 | MenhirState208 | MenhirState206 | MenhirState194 | MenhirState197 | MenhirState200 | MenhirState191 | MenhirState186 | MenhirState183 | MenhirState180 | MenhirState177 | MenhirState174 | MenhirState157 | MenhirState160 | MenhirState148 | MenhirState145 | MenhirState143 | MenhirState141 | MenhirState138 | MenhirState135 | MenhirState133 | MenhirState126 | MenhirState122 | MenhirState116 | MenhirState85 | MenhirState75 | MenhirState59 | MenhirState52 | MenhirState16 | MenhirState19 | MenhirState38 | MenhirState30 -> + let _menhir_stack = Obj.magic _menhir_stack in + _menhir_reduce35 _menhir_env (Obj.magic _menhir_stack) + | MenhirState65 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState66 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState66 _v + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState66 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState66 _v + | LPAREN | STAR -> + _menhir_reduce35 _menhir_env (Obj.magic _menhir_stack) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState66) + | MenhirState150 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState151 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState151 _v + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState151 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState151 _v + | LPAREN | STAR -> + _menhir_reduce35 _menhir_env (Obj.magic _menhir_stack) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState151) + | _ -> + _menhir_fail () + +and _menhir_goto_loption_separated_nonempty_list_COMMA_pair_typ_operand___ : _menhir_env -> 'ttv_tail -> _menhir_state -> ((LAst.typ * LAst.operand) list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | RPAREN -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let ((((_menhir_stack, _menhir_s, (ret_var : (LAst.variable))), _, (_4 : (LAst.typ option))), _, (func_var : (LAst.variable))), _, (xs0 : ((LAst.typ * LAst.operand) list))) = _menhir_stack in + let _8 = () in + let _6 = () in + let _3 = () in + let _2 = () in + let _v : (LAst.instruction) = let args = + let xs = xs0 in + ( xs ) + in + ( Call (ret_var, func_var, args) ) in + _menhir_goto_real_instruction _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_reduce92 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _v : (unit option) = ( None ) in + _menhir_goto_option_NNAN_ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run164 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let x = () in + let _v : (unit option) = ( Some x ) in + _menhir_goto_option_NNAN_ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_reduce84 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _v : (unit option) = ( None ) in + _menhir_goto_option_EXACT_ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run125 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let x = () in + let _v : (unit option) = ( Some x ) in + _menhir_goto_option_EXACT_ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_reduce98 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _v : (unit option) = ( None ) in + _menhir_goto_option_NUW_ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run129 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let x = () in + let _v : (unit option) = ( Some x ) in + _menhir_goto_option_NUW_ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_goto_real_instruction : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.instruction) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | COMMA -> + _menhir_run218 _menhir_env (Obj.magic _menhir_stack) MenhirState217 + | BR | CALL | NAMED_GLOBAL _ | NAMED_LOCAL _ | NUMBERED_GLOBAL _ | NUMBERED_LOCAL _ | RBRACE | RET | STORE -> + _menhir_reduce102 _menhir_env (Obj.magic _menhir_stack) MenhirState217 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState217 + +and _menhir_reduce100 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _v : (int option) = ( None ) in + _menhir_goto_option_align_ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run68 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | ALIGN -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | CONSTANT_INT _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (width : (int)) = _v in + let (_menhir_stack, _menhir_s) = _menhir_stack in + let _2 = () in + let _1 = () in + let _v : (int) = ( width ) in + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (x : (int)) = _v in + let _v : (int option) = ( Some x ) in + _menhir_goto_option_align_ _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_goto_operand : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.operand) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState60 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState65 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState65 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState65 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState65 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState65 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState65 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState65 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState65 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState65 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState65 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState65 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState65 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState65) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState77 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (((_menhir_stack, _menhir_s), _, (tp : (LAst.typ))), _, (op : (LAst.operand))) = _menhir_stack in + let _1 = () in + let _v : (LAst.instruction) = ( Ret (Some (tp, op)) ) in + _menhir_goto_real_instruction _menhir_env _menhir_stack _menhir_s _v + | MenhirState90 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (((_menhir_stack, _menhir_s, (_1 : (unit option))), _, (tp : (LAst.typ option))), _, (op : (LAst.operand))) = _menhir_stack in + let _v : (LAst.metadata_component) = ( TypOperand (tp, op) ) in + _menhir_goto_metadata_component _menhir_env _menhir_stack _menhir_s _v + | MenhirState106 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | LABEL -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState109 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState109 _v + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState109 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState109 _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState109) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState117 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | CONSTANT_INT _v -> + _menhir_run62 _menhir_env (Obj.magic _menhir_stack) MenhirState119 _v + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState119 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState119 _v + | NULL -> + _menhir_run61 _menhir_env (Obj.magic _menhir_stack) MenhirState119 + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState119 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState119 _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState119) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState119 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (((_menhir_stack, _menhir_s, (_1 : (LAst.typ))), _, (_2 : (LAst.operand))), _, (_4 : (LAst.operand))) = _menhir_stack in + let _3 = () in + let _v : (unit) = ( () ) in + (match _menhir_s with + | MenhirState116 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_2 : (unit)) = _v in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState122 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_2 : (unit)) = _v in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState126 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_3 : (unit)) = _v in + let (_menhir_stack, _, (_2 : (unit option))) = _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState133 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_3 : (unit)) = _v in + let (_menhir_stack, _, (_2 : (unit))) = _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState135 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_2 : (unit)) = _v in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState138 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_3 : (unit)) = _v in + let (_menhir_stack, _, (_2 : (unit))) = _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState141 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_3 : (unit)) = _v in + let (_menhir_stack, _, (_2 : (unit option))) = _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState143 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_2 : (unit)) = _v in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState145 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_2 : (unit)) = _v in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState148 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_3 : (unit)) = _v in + let (_menhir_stack, _, (_2 : (unit option))) = _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState174 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_3 : (unit)) = _v in + let (_menhir_stack, _, (_2 : (unit))) = _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState177 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_3 : (unit)) = _v in + let (_menhir_stack, _, (_2 : (unit))) = _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState180 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_3 : (unit)) = _v in + let (_menhir_stack, _, (_2 : (unit))) = _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState183 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_3 : (unit)) = _v in + let (_menhir_stack, _, (_2 : (unit))) = _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState186 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_3 : (unit)) = _v in + let (_menhir_stack, _, (_2 : (unit))) = _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState206 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_3 : (unit)) = _v in + let (_menhir_stack, _, (_2 : (unit option))) = _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState208 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_2 : (unit)) = _v in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState214 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_3 : (unit)) = _v in + let (_menhir_stack, _, (_2 : (unit))) = _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | _ -> + _menhir_fail ()) + | MenhirState155 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState157 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState157 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState157 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState157 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState157 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState157 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState157 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState157 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState157 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState157 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState157 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState157 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState157) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState158 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState160 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState160 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState160 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState160 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState160 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState160 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState160 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState160 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState160 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState160 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState160 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState160 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState160) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState161 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let ((((((_menhir_stack, _, (_2 : (LAst.typ))), _, (_3 : (LAst.operand))), _, (_5 : (LAst.typ))), _, (_6 : (LAst.operand))), _, (_8 : (LAst.typ))), _, (_9 : (LAst.operand))) = _menhir_stack in + let _7 = () in + let _4 = () in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState189 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState191 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState191 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState191 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState191 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState191 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState191 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState191 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState191 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState191 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState191 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState191 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState191 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState191) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState192 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let ((((_menhir_stack, _, (_2 : (LAst.typ))), _, (_3 : (LAst.operand))), _, (_5 : (LAst.typ))), _, (_6 : (LAst.operand))) = _menhir_stack in + let _4 = () in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_binop _menhir_env _menhir_stack _v + | MenhirState198 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState200 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState200 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState200 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState200 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState200 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState200 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState200 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState200 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState200 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState200 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState200 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState200 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState200) + | RPAREN -> + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s, (x0 : (LAst.typ))), _, (y0 : (LAst.operand))) = _menhir_stack in + let _v : ((LAst.typ * LAst.operand) list) = let x = + let y = y0 in + let x = x0 in + ( (x, y) ) + in + ( [ x ] ) in + _menhir_goto_separated_nonempty_list_COMMA_pair_typ_operand__ _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + _menhir_fail () + +and _menhir_goto_option_METADATA_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (unit option) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState95 | MenhirState93 | MenhirState82 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState85 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState85 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState85 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState85 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState85 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState85 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState85 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState85 + | METADATA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_s = MenhirState85 in + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | METADATA_NODE_BEGIN -> + _menhir_reduce89 _menhir_env (Obj.magic _menhir_stack) + | CONSTANT_INT _ | LPAREN | NAMED_GLOBAL _ | NAMED_LOCAL _ | NULL | NUMBERED_GLOBAL _ | NUMBERED_LOCAL _ | STAR -> + _menhir_reduce41 _menhir_env (Obj.magic _menhir_stack) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | METADATA_STRING _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_s = MenhirState85 in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (str : (string)) = _v in + let _v : (LAst.metadata_value) = ( MetadataString str ) in + _menhir_goto_metadata_value _menhir_env _menhir_stack _menhir_s _v + | NUMBERED_METADATA _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_s = MenhirState85 in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (i : (int)) = _v in + let _v : (LAst.metadata_value) = ( MetadataVar i ) in + _menhir_goto_metadata_value _menhir_env _menhir_stack _menhir_s _v + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState85 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState85 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState85 + | CONSTANT_INT _ | NAMED_GLOBAL _ | NAMED_LOCAL _ | NULL | NUMBERED_GLOBAL _ | NUMBERED_LOCAL _ -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_s = MenhirState85 in + let _v : (LAst.typ option) = ( None ) in + _menhir_goto_option_typ_ _menhir_env _menhir_stack _menhir_s _v + | METADATA_NODE_BEGIN -> + _menhir_reduce88 _menhir_env (Obj.magic _menhir_stack) MenhirState85 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState85) + | MenhirState238 | MenhirState85 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | METADATA_NODE_BEGIN -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | METADATA -> + _menhir_run83 _menhir_env (Obj.magic _menhir_stack) MenhirState93 + | CONSTANT_INT _ | DOUBLE | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA_NODE_BEGIN | METADATA_STRING _ | NAMED_GLOBAL _ | NAMED_LOCAL _ | NULL | NUMBERED_GLOBAL _ | NUMBERED_LOCAL _ | NUMBERED_METADATA _ | PPC_FP128 | VOID | X86_FP80 -> + _menhir_reduce88 _menhir_env (Obj.magic _menhir_stack) MenhirState93 + | RBRACE -> + _menhir_reduce62 _menhir_env (Obj.magic _menhir_stack) MenhirState93 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState93) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + _menhir_fail () + +and _menhir_reduce89 : _menhir_env -> 'ttv_tail * _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack -> + let (_menhir_stack, _menhir_s) = _menhir_stack in + let x = () in + let _v : (unit option) = ( Some x ) in + _menhir_goto_option_METADATA_ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_goto_metadata_def : _menhir_env -> 'ttv_tail -> _menhir_state -> ((int * LAst.metadata_aggregate) option) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | NAMED_METADATA _v -> + _menhir_run256 _menhir_env (Obj.magic _menhir_stack) MenhirState266 _v + | NUMBERED_METADATA _v -> + _menhir_run237 _menhir_env (Obj.magic _menhir_stack) MenhirState266 _v + | EOF -> + _menhir_reduce56 _menhir_env (Obj.magic _menhir_stack) MenhirState266 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState266 + +and _menhir_goto_separated_nonempty_list_COMMA_NUMBERED_METADATA_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (int list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + match _menhir_s with + | MenhirState260 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (xs : (int list)) = _v in + let (_menhir_stack, _menhir_s, (x : (int))) = _menhir_stack in + let _2 = () in + let _v : (int list) = ( x :: xs ) in + _menhir_goto_separated_nonempty_list_COMMA_NUMBERED_METADATA_ _menhir_env _menhir_stack _menhir_s _v + | MenhirState258 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (x : (int list)) = _v in + let _v : (int list) = ( x ) in + _menhir_goto_loption_separated_nonempty_list_COMMA_NUMBERED_METADATA__ _menhir_env _menhir_stack _menhir_s _v + | _ -> + _menhir_fail () + +and _menhir_run30 : _menhir_env -> 'ttv_tail * _menhir_state * (LAst.typ option) -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState30 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState30 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState30 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState30 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState30 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState30 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState30 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState30 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState30 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState30 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState30 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState30 + | RPAREN -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_s = MenhirState30 in + let _v : (LAst.typ list) = ( [] ) in + _menhir_goto_loption_separated_nonempty_list_COMMA_first_class_typ__ _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState30 + +and _menhir_goto_loption_separated_nonempty_list_COMMA_pair_first_class_typ_IDENT___ : _menhir_env -> 'ttv_tail -> _menhir_state -> ((LAst.typ * string) list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | RPAREN -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | ATTRIBUTE_GROUP _v -> + _menhir_run56 _menhir_env (Obj.magic _menhir_stack) MenhirState55 _v + | LBRACE -> + _menhir_reduce52 _menhir_env (Obj.magic _menhir_stack) MenhirState55 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState55) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_goto_loption_separated_nonempty_list_COMMA_first_class_typ__ : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.typ list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | RPAREN -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (((_menhir_stack, _menhir_s, (ret_tp : (LAst.typ option))), _), _, (xs0 : (LAst.typ list))) = _menhir_stack in + let _4 = () in + let _2 = () in + let _v : (LAst.typ) = let param_tps = + let xs = xs0 in + ( xs ) + in + ( Tfunc (ret_tp, param_tps) ) in + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (tp : (LAst.typ)) = _v in + let _v : (LAst.typ) = ( tp ) in + _menhir_goto_typ _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_goto_typ : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.typ) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState234 | MenhirState194 | MenhirState150 | MenhirState65 | MenhirState52 | MenhirState9 | MenhirState16 | MenhirState38 | MenhirState30 | MenhirState19 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | STAR -> + _menhir_run28 _menhir_env (Obj.magic _menhir_stack) MenhirState27 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState27) + | MenhirState59 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | CONSTANT_INT _v -> + _menhir_run62 _menhir_env (Obj.magic _menhir_stack) MenhirState60 _v + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState60 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState60 _v + | NULL -> + _menhir_run61 _menhir_env (Obj.magic _menhir_stack) MenhirState60 + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState60 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState60 _v + | STAR -> + _menhir_run28 _menhir_env (Obj.magic _menhir_stack) MenhirState60 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState60) + | MenhirState75 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | CONSTANT_INT _v -> + _menhir_run62 _menhir_env (Obj.magic _menhir_stack) MenhirState77 _v + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState77 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState77 _v + | NULL -> + _menhir_run61 _menhir_env (Obj.magic _menhir_stack) MenhirState77 + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState77 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState77 _v + | STAR -> + _menhir_run28 _menhir_env (Obj.magic _menhir_stack) MenhirState77 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState77) + | MenhirState85 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | STAR -> + _menhir_run28 _menhir_env (Obj.magic _menhir_stack) MenhirState89 + | CONSTANT_INT _ | NAMED_GLOBAL _ | NAMED_LOCAL _ | NULL | NUMBERED_GLOBAL _ | NUMBERED_LOCAL _ -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, (x : (LAst.typ))) = _menhir_stack in + let _v : (LAst.typ option) = ( Some x ) in + _menhir_goto_option_typ_ _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState89) + | MenhirState214 | MenhirState208 | MenhirState206 | MenhirState186 | MenhirState183 | MenhirState180 | MenhirState177 | MenhirState174 | MenhirState148 | MenhirState145 | MenhirState143 | MenhirState141 | MenhirState138 | MenhirState135 | MenhirState133 | MenhirState126 | MenhirState122 | MenhirState116 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | CONSTANT_INT _v -> + _menhir_run62 _menhir_env (Obj.magic _menhir_stack) MenhirState117 _v + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState117 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState117 _v + | NULL -> + _menhir_run61 _menhir_env (Obj.magic _menhir_stack) MenhirState117 + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState117 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState117 _v + | STAR -> + _menhir_run28 _menhir_env (Obj.magic _menhir_stack) MenhirState117 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState117) + | MenhirState157 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | CONSTANT_INT _v -> + _menhir_run62 _menhir_env (Obj.magic _menhir_stack) MenhirState158 _v + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState158 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState158 _v + | NULL -> + _menhir_run61 _menhir_env (Obj.magic _menhir_stack) MenhirState158 + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState158 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState158 _v + | STAR -> + _menhir_run28 _menhir_env (Obj.magic _menhir_stack) MenhirState158 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState158) + | MenhirState160 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | CONSTANT_INT _v -> + _menhir_run62 _menhir_env (Obj.magic _menhir_stack) MenhirState161 _v + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState161 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState161 _v + | NULL -> + _menhir_run61 _menhir_env (Obj.magic _menhir_stack) MenhirState161 + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState161 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState161 _v + | STAR -> + _menhir_run28 _menhir_env (Obj.magic _menhir_stack) MenhirState161 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState161) + | MenhirState191 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | CONSTANT_INT _v -> + _menhir_run62 _menhir_env (Obj.magic _menhir_stack) MenhirState192 _v + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState192 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState192 _v + | NULL -> + _menhir_run61 _menhir_env (Obj.magic _menhir_stack) MenhirState192 + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState192 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState192 _v + | STAR -> + _menhir_run28 _menhir_env (Obj.magic _menhir_stack) MenhirState192 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState192) + | MenhirState200 | MenhirState197 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | CONSTANT_INT _v -> + _menhir_run62 _menhir_env (Obj.magic _menhir_stack) MenhirState198 _v + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState198 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState198 _v + | NULL -> + _menhir_run61 _menhir_env (Obj.magic _menhir_stack) MenhirState198 + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState198 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState198 _v + | STAR -> + _menhir_run28 _menhir_env (Obj.magic _menhir_stack) MenhirState198 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState198) + | MenhirState210 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + _menhir_run68 _menhir_env (Obj.magic _menhir_stack) MenhirState211 + | STAR -> + _menhir_run28 _menhir_env (Obj.magic _menhir_stack) MenhirState211 + | BR | CALL | NAMED_GLOBAL _ | NAMED_LOCAL _ | NUMBERED_GLOBAL _ | NUMBERED_LOCAL _ | RBRACE | RET | STORE -> + _menhir_reduce100 _menhir_env (Obj.magic _menhir_stack) MenhirState211 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState211) + | _ -> + _menhir_fail () + +and _menhir_goto_variable : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.variable) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState46 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | LPAREN -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState52 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState52 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState52 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState52 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState52 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState52 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState52 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState52 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState52 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState52 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState52 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState52 + | RPAREN -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_s = MenhirState52 in + let _v : ((LAst.typ * string) list) = ( [] ) in + _menhir_goto_loption_separated_nonempty_list_COMMA_pair_first_class_typ_IDENT___ _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState52) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState198 | MenhirState192 | MenhirState189 | MenhirState161 | MenhirState158 | MenhirState155 | MenhirState119 | MenhirState117 | MenhirState106 | MenhirState90 | MenhirState77 | MenhirState60 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, (var : (LAst.variable))) = _menhir_stack in + let _v : (LAst.operand) = ( Var var ) in + _menhir_goto_operand _menhir_env _menhir_stack _menhir_s _v + | MenhirState66 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + _menhir_run68 _menhir_env (Obj.magic _menhir_stack) MenhirState67 + | BR | CALL | NAMED_GLOBAL _ | NAMED_LOCAL _ | NUMBERED_GLOBAL _ | NUMBERED_LOCAL _ | RBRACE | RET | STORE -> + _menhir_reduce100 _menhir_env (Obj.magic _menhir_stack) MenhirState67 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState67) + | MenhirState104 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s), _, (lbl : (LAst.variable))) = _menhir_stack in + let _2 = () in + let _1 = () in + let _v : (LAst.instruction) = ( UncondBranch lbl ) in + _menhir_goto_real_instruction _menhir_env _menhir_stack _menhir_s _v + | MenhirState109 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | LABEL -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState112 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState112 _v + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState112 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState112 _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState112) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState112 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (((((_menhir_stack, _menhir_s), (_ : (int))), _, (op : (LAst.operand))), _, (lbl1 : (LAst.variable))), _, (lbl2 : (LAst.variable))) = _menhir_stack in + let _8 = () in + let _7 = () in + let _5 = () in + let _4 = () in + let _1 = () in + let _v : (LAst.instruction) = ( CondBranch (op, lbl1, lbl2) ) in + _menhir_goto_real_instruction _menhir_env _menhir_stack _menhir_s _v + | MenhirState227 | MenhirState58 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | EQUALS -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | ADD -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | NUW -> + _menhir_run129 _menhir_env (Obj.magic _menhir_stack) MenhirState213 + | DOUBLE | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | NSW | PPC_FP128 | VOID | X86_FP80 -> + _menhir_reduce98 _menhir_env (Obj.magic _menhir_stack) MenhirState213 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState213) + | ALLOCA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState210 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState210 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState210 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState210 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState210 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState210 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState210 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState210 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState210 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState210 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState210 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState210 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState210) + | AND -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState208 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState208 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState208 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState208 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState208 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState208 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState208 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState208 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState208 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState208 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState208 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState208 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState208) + | ASHR -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | EXACT -> + _menhir_run125 _menhir_env (Obj.magic _menhir_stack) MenhirState205 + | DOUBLE | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | PPC_FP128 | VOID | X86_FP80 -> + _menhir_reduce84 _menhir_env (Obj.magic _menhir_stack) MenhirState205 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState205) + | CALL -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState194 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState194 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState194 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState194 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState194 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState194 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState194 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState194 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState194 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState194 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState194 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState194 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState194) + | EXTRACTELEMENT -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState188 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState188) + | FADD -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | NNAN -> + _menhir_run164 _menhir_env (Obj.magic _menhir_stack) MenhirState185 + | ARCP | DOUBLE | FAST | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | NINF | NSZ | PPC_FP128 | VOID | X86_FP80 -> + _menhir_reduce92 _menhir_env (Obj.magic _menhir_stack) MenhirState185 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState185) + | FDIV -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | NNAN -> + _menhir_run164 _menhir_env (Obj.magic _menhir_stack) MenhirState182 + | ARCP | DOUBLE | FAST | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | NINF | NSZ | PPC_FP128 | VOID | X86_FP80 -> + _menhir_reduce92 _menhir_env (Obj.magic _menhir_stack) MenhirState182 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState182) + | FMUL -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | NNAN -> + _menhir_run164 _menhir_env (Obj.magic _menhir_stack) MenhirState179 + | ARCP | DOUBLE | FAST | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | NINF | NSZ | PPC_FP128 | VOID | X86_FP80 -> + _menhir_reduce92 _menhir_env (Obj.magic _menhir_stack) MenhirState179 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState179) + | FREM -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | NNAN -> + _menhir_run164 _menhir_env (Obj.magic _menhir_stack) MenhirState176 + | ARCP | DOUBLE | FAST | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | NINF | NSZ | PPC_FP128 | VOID | X86_FP80 -> + _menhir_reduce92 _menhir_env (Obj.magic _menhir_stack) MenhirState176 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState176) + | FSUB -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | NNAN -> + _menhir_run164 _menhir_env (Obj.magic _menhir_stack) MenhirState163 + | ARCP | DOUBLE | FAST | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | NINF | NSZ | PPC_FP128 | VOID | X86_FP80 -> + _menhir_reduce92 _menhir_env (Obj.magic _menhir_stack) MenhirState163 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState163) + | INSERTELEMENT -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState154 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState154) + | LOAD -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState150 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState150 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState150 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState150 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState150 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState150 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState150 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState150 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState150 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState150 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState150 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState150 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState150) + | LSHR -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | EXACT -> + _menhir_run125 _menhir_env (Obj.magic _menhir_stack) MenhirState147 + | DOUBLE | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | PPC_FP128 | VOID | X86_FP80 -> + _menhir_reduce84 _menhir_env (Obj.magic _menhir_stack) MenhirState147 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState147) + | MUL -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState145 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState145 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState145 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState145 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState145 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState145 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState145 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState145 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState145 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState145 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState145 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState145 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState145) + | OR -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState143 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState143 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState143 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState143 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState143 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState143 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState143 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState143 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState143 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState143 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState143 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState143 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState143) + | SDIV -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | EXACT -> + _menhir_run125 _menhir_env (Obj.magic _menhir_stack) MenhirState140 + | DOUBLE | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | PPC_FP128 | VOID | X86_FP80 -> + _menhir_reduce84 _menhir_env (Obj.magic _menhir_stack) MenhirState140 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState140) + | SHL -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | NUW -> + _menhir_run129 _menhir_env (Obj.magic _menhir_stack) MenhirState137 + | DOUBLE | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | NSW | PPC_FP128 | VOID | X86_FP80 -> + _menhir_reduce98 _menhir_env (Obj.magic _menhir_stack) MenhirState137 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState137) + | SREM -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState135 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState135 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState135 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState135 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState135 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState135 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState135 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState135 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState135 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState135 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState135 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState135 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState135) + | SUB -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | NUW -> + _menhir_run129 _menhir_env (Obj.magic _menhir_stack) MenhirState128 + | DOUBLE | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | NSW | PPC_FP128 | VOID | X86_FP80 -> + _menhir_reduce98 _menhir_env (Obj.magic _menhir_stack) MenhirState128 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState128) + | UDIV -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | EXACT -> + _menhir_run125 _menhir_env (Obj.magic _menhir_stack) MenhirState124 + | DOUBLE | FLOAT | FP128 | HALF | INT _ | LABEL | LANGLE | LSQBRACK | METADATA | PPC_FP128 | VOID | X86_FP80 -> + _menhir_reduce84 _menhir_env (Obj.magic _menhir_stack) MenhirState124 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState124) + | UREM -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState122 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState122 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState122 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState122 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState122 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState122 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState122 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState122 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState122 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState122 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState122 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState122 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState122) + | XOR -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState116 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState116 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState116 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState116 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState116 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState116 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState116 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState116 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState116 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState116 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState116 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState116 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState116) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState151 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + _menhir_run68 _menhir_env (Obj.magic _menhir_stack) MenhirState152 + | BR | CALL | NAMED_GLOBAL _ | NAMED_LOCAL _ | NUMBERED_GLOBAL _ | NUMBERED_LOCAL _ | RBRACE | RET | STORE -> + _menhir_reduce100 _menhir_env (Obj.magic _menhir_stack) MenhirState152 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState152) + | MenhirState195 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | LPAREN -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState197 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState197 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState197 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState197 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState197 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState197 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState197 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState197 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState197 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState197 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState197 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState197 + | RPAREN -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_s = MenhirState197 in + let _v : ((LAst.typ * LAst.operand) list) = ( [] ) in + _menhir_goto_loption_separated_nonempty_list_COMMA_pair_typ_operand___ _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState197) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + _menhir_fail () + +and _menhir_goto_constant : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.constant) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (const : (LAst.constant)) = _v in + let _v : (LAst.operand) = ( Const const ) in + _menhir_goto_operand _menhir_env _menhir_stack _menhir_s _v + +and _menhir_goto_list_metadata_def_ : _menhir_env -> 'ttv_tail -> _menhir_state -> ((int * LAst.metadata_aggregate) option list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState266 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s, (x : ((int * LAst.metadata_aggregate) option))), _, (xs : ((int * LAst.metadata_aggregate) option list))) = _menhir_stack in + let _v : ((int * LAst.metadata_aggregate) option list) = ( x :: xs ) in + _menhir_goto_list_metadata_def_ _menhir_env _menhir_stack _menhir_s _v + | MenhirState236 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | EOF -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (((_menhir_stack, _menhir_s, (_1 : (string option * string option))), _, (func_defs : (LAst.function_def list))), _, (opt_mappings : ((int * LAst.metadata_aggregate) option list))) = _menhir_stack in + let _4 = () in + let _v : (LAst.program) = ( + let mappings = IList.flatten_options opt_mappings in + let add_mapping map (metadata_id, aggregate) = MetadataMap.add metadata_id aggregate map in + let metadata_map = IList.fold_left add_mapping MetadataMap.empty mappings in + Program (func_defs, metadata_map) ) in + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_1 : (LAst.program)) = _v in + Obj.magic _1 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + _menhir_fail () + +and _menhir_reduce88 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _v : (unit option) = ( None ) in + _menhir_goto_option_METADATA_ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_goto_metadata_aggregate : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.metadata_aggregate) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (aggregate : (LAst.metadata_aggregate)) = _v in + let (_menhir_stack, _menhir_s, (metadata_id : (int))) = _menhir_stack in + let _2 = () in + let _v : ((int * LAst.metadata_aggregate) option) = ( Some + (metadata_id, aggregate) ) in + _menhir_goto_metadata_def _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run83 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + _menhir_reduce89 _menhir_env (Obj.magic _menhir_stack) + +and _menhir_goto_loption_separated_nonempty_list_COMMA_NUMBERED_METADATA__ : _menhir_env -> 'ttv_tail -> _menhir_state -> (int list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | RBRACE -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _, (xs0 : (int list))) = _menhir_stack in + let _3 = () in + let _1 = () in + let _v : (int list) = let metadata_ids = + let xs = xs0 in + ( xs ) + in + ( metadata_ids ) in + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_3 : (int list)) = _v in + let (_menhir_stack, _menhir_s, (_1 : (string))) = _menhir_stack in + let _2 = () in + let _v : ((int * LAst.metadata_aggregate) option) = ( None ) in + _menhir_goto_metadata_def _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_run259 : _menhir_env -> 'ttv_tail -> _menhir_state -> (int) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | COMMA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | NUMBERED_METADATA _v -> + _menhir_run259 _menhir_env (Obj.magic _menhir_stack) MenhirState260 _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState260) + | RBRACE -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, (x : (int))) = _menhir_stack in + let _v : (int list) = ( [ x ] ) in + _menhir_goto_separated_nonempty_list_COMMA_NUMBERED_METADATA_ _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_goto_ret_typ : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.typ option) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState234 | MenhirState214 | MenhirState210 | MenhirState208 | MenhirState206 | MenhirState197 | MenhirState200 | MenhirState191 | MenhirState186 | MenhirState183 | MenhirState180 | MenhirState177 | MenhirState174 | MenhirState157 | MenhirState160 | MenhirState150 | MenhirState148 | MenhirState145 | MenhirState143 | MenhirState141 | MenhirState138 | MenhirState135 | MenhirState133 | MenhirState126 | MenhirState122 | MenhirState116 | MenhirState85 | MenhirState75 | MenhirState59 | MenhirState65 | MenhirState52 | MenhirState16 | MenhirState38 | MenhirState30 | MenhirState19 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | LPAREN -> + _menhir_run30 _menhir_env (Obj.magic _menhir_stack) MenhirState29 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState29) + | MenhirState9 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | LPAREN -> + _menhir_run30 _menhir_env (Obj.magic _menhir_stack) MenhirState46 + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState46 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState46 _v + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState46 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState46 _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState46) + | MenhirState194 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | LPAREN -> + _menhir_run30 _menhir_env (Obj.magic _menhir_stack) MenhirState195 + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState195 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState195 _v + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState195 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState195 _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState195) + | _ -> + _menhir_fail () + +and _menhir_goto_separated_nonempty_list_COMMA_pair_first_class_typ_IDENT__ : _menhir_env -> 'ttv_tail -> _menhir_state -> ((LAst.typ * string) list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + match _menhir_s with + | MenhirState52 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (x : ((LAst.typ * string) list)) = _v in + let _v : ((LAst.typ * string) list) = ( x ) in + _menhir_goto_loption_separated_nonempty_list_COMMA_pair_first_class_typ_IDENT___ _menhir_env _menhir_stack _menhir_s _v + | MenhirState234 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (xs : ((LAst.typ * string) list)) = _v in + let ((_menhir_stack, _menhir_s, (x0 : (LAst.typ))), (y0 : (string))) = _menhir_stack in + let _2 = () in + let _v : ((LAst.typ * string) list) = let x = + let y = y0 in + let x = x0 in + ( (x, y) ) + in + ( x :: xs ) in + _menhir_goto_separated_nonempty_list_COMMA_pair_first_class_typ_IDENT__ _menhir_env _menhir_stack _menhir_s _v + | _ -> + _menhir_fail () + +and _menhir_reduce118 : _menhir_env -> 'ttv_tail * _menhir_state * (LAst.typ) -> 'ttv_return = + fun _menhir_env _menhir_stack -> + let (_menhir_stack, _menhir_s, (tp : (LAst.typ))) = _menhir_stack in + let _v : (LAst.typ option) = ( Some tp ) in + _menhir_goto_ret_typ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_goto_separated_nonempty_list_COMMA_first_class_typ_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.typ list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + match _menhir_s with + | MenhirState30 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (x : (LAst.typ list)) = _v in + let _v : (LAst.typ list) = ( x ) in + _menhir_goto_loption_separated_nonempty_list_COMMA_first_class_typ__ _menhir_env _menhir_stack _menhir_s _v + | MenhirState38 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (xs : (LAst.typ list)) = _v in + let (_menhir_stack, _menhir_s, (x : (LAst.typ))) = _menhir_stack in + let _2 = () in + let _v : (LAst.typ list) = ( x :: xs ) in + _menhir_goto_separated_nonempty_list_COMMA_first_class_typ_ _menhir_env _menhir_stack _menhir_s _v + | _ -> + _menhir_fail () + +and _menhir_reduce136 : _menhir_env -> 'ttv_tail * _menhir_state * (LAst.typ) -> 'ttv_return = + fun _menhir_env _menhir_stack -> + let (_menhir_stack, _menhir_s, (tp : (LAst.typ))) = _menhir_stack in + let _v : (LAst.typ) = ( tp ) in + _menhir_goto_typ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run47 : _menhir_env -> 'ttv_tail -> _menhir_state -> (int) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (num : (int)) = _v in + let _v : (LAst.variable) = ( Local (Number num) ) in + _menhir_goto_variable _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run48 : _menhir_env -> 'ttv_tail -> _menhir_state -> (int) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (num : (int)) = _v in + let _v : (LAst.variable) = ( Global (Number num) ) in + _menhir_goto_variable _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run61 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let _1 = () in + let _v : (LAst.constant) = ( Cnull ) in + _menhir_goto_constant _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run49 : _menhir_env -> 'ttv_tail -> _menhir_state -> (string) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (name : (string)) = _v in + let _v : (LAst.variable) = ( Local (Name name) ) in + _menhir_goto_variable _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run50 : _menhir_env -> 'ttv_tail -> _menhir_state -> (string) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (name : (string)) = _v in + let _v : (LAst.variable) = ( Global (Name name) ) in + _menhir_goto_variable _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run62 : _menhir_env -> 'ttv_tail -> _menhir_state -> (int) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (i : (int)) = _v in + let _v : (LAst.constant) = ( Cint i ) in + _menhir_goto_constant _menhir_env _menhir_stack _menhir_s _v + +and _menhir_reduce37 : _menhir_env -> 'ttv_tail * _menhir_state * (LAst.typ) -> 'ttv_return = + fun _menhir_env _menhir_stack -> + let (_menhir_stack, _menhir_s, (tp : (LAst.typ))) = _menhir_stack in + let _v : (LAst.typ) = ( tp ) in + _menhir_goto_first_class_typ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_reduce56 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _v : ((int * LAst.metadata_aggregate) option list) = ( [] ) in + _menhir_goto_list_metadata_def_ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run237 : _menhir_env -> 'ttv_tail -> _menhir_state -> (int) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | EQUALS -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | METADATA -> + _menhir_run83 _menhir_env (Obj.magic _menhir_stack) MenhirState238 + | METADATA_LOCATION -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_s = MenhirState238 in + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | LPAREN -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | IDENT _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = (_menhir_stack, _v) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | COLON -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | CONSTANT_INT _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = (_menhir_stack, _v) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | IDENT _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = (_menhir_stack, _v) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | COLON -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | CONSTANT_INT _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = (_menhir_stack, _v) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | IDENT _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = (_menhir_stack, _v) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | COLON -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | NUMBERED_METADATA _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = (_menhir_stack, _v) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | RPAREN -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (((((((_menhir_stack, _menhir_s), (_3 : (string))), (line_num : (int))), (_7 : (string))), (col_num : (int))), (_11 : (string))), (i : (int))) = _menhir_stack in + let _14 = () in + let _12 = () in + let _10 = () in + let _8 = () in + let _6 = () in + let _4 = () in + let _2 = () in + let _1 = () in + let _v : (LAst.metadata_location) = ( { line = line_num; col = col_num; scope = MetadataVar i} ) in + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (location : (LAst.metadata_location)) = _v in + let _v : (LAst.metadata_aggregate) = ( Location location ) in + _menhir_goto_metadata_aggregate _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (((((((_menhir_stack, _menhir_s), _), _), _), _), _), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let ((((((_menhir_stack, _menhir_s), _), _), _), _), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let ((((((_menhir_stack, _menhir_s), _), _), _), _), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (((((_menhir_stack, _menhir_s), _), _), _), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (((((_menhir_stack, _menhir_s), _), _), _), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let ((((_menhir_stack, _menhir_s), _), _), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let ((((_menhir_stack, _menhir_s), _), _), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (((_menhir_stack, _menhir_s), _), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (((_menhir_stack, _menhir_s), _), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | METADATA_NODE_BEGIN -> + _menhir_reduce88 _menhir_env (Obj.magic _menhir_stack) MenhirState238 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState238) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_run256 : _menhir_env -> 'ttv_tail -> _menhir_state -> (string) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | EQUALS -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | METADATA_NODE_BEGIN -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | NUMBERED_METADATA _v -> + _menhir_run259 _menhir_env (Obj.magic _menhir_stack) MenhirState258 _v + | RBRACE -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_s = MenhirState258 in + let _v : (int list) = ( [] ) in + _menhir_goto_loption_separated_nonempty_list_COMMA_NUMBERED_METADATA__ _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState258) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_reduce117 : _menhir_env -> 'ttv_tail * _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack -> + let (_menhir_stack, _menhir_s) = _menhir_stack in + let _1 = () in + let _v : (LAst.typ option) = ( None ) in + _menhir_goto_ret_typ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_reduce41 : _menhir_env -> 'ttv_tail * _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack -> + let (_menhir_stack, _menhir_s) = _menhir_stack in + let _1 = () in + let _v : (LAst.typ) = ( Tmetadata ) in + _menhir_goto_first_class_typ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_goto_first_class_typ : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.typ) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState38 | MenhirState30 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState38 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState38 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState38 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState38 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState38 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState38 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState38 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState38 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState38 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState38 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState38 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState38 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState38) + | STAR -> + _menhir_reduce136 _menhir_env (Obj.magic _menhir_stack) + | RPAREN -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, (x : (LAst.typ))) = _menhir_stack in + let _v : (LAst.typ list) = ( [ x ] ) in + _menhir_goto_separated_nonempty_list_COMMA_first_class_typ_ _menhir_env _menhir_stack _menhir_s _v + | LPAREN -> + _menhir_reduce118 _menhir_env (Obj.magic _menhir_stack) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState9 | MenhirState194 | MenhirState16 | MenhirState19 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | STAR -> + _menhir_reduce136 _menhir_env (Obj.magic _menhir_stack) + | LPAREN | NAMED_GLOBAL _ | NAMED_LOCAL _ | NUMBERED_GLOBAL _ | NUMBERED_LOCAL _ -> + _menhir_reduce118 _menhir_env (Obj.magic _menhir_stack) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState214 | MenhirState210 | MenhirState208 | MenhirState206 | MenhirState197 | MenhirState200 | MenhirState191 | MenhirState186 | MenhirState183 | MenhirState180 | MenhirState177 | MenhirState174 | MenhirState157 | MenhirState160 | MenhirState150 | MenhirState148 | MenhirState145 | MenhirState143 | MenhirState141 | MenhirState138 | MenhirState135 | MenhirState133 | MenhirState126 | MenhirState122 | MenhirState116 | MenhirState85 | MenhirState75 | MenhirState59 | MenhirState65 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | BR | CALL | COMMA | CONSTANT_INT _ | NAMED_GLOBAL _ | NAMED_LOCAL _ | NULL | NUMBERED_GLOBAL _ | NUMBERED_LOCAL _ | RBRACE | RET | STAR | STORE -> + _menhir_reduce136 _menhir_env (Obj.magic _menhir_stack) + | LPAREN -> + _menhir_reduce118 _menhir_env (Obj.magic _menhir_stack) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState234 | MenhirState52 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | IDENT _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = (_menhir_stack, _v) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | COMMA -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState234 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState234 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState234 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState234 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState234 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState234 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState234 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState234 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState234 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState234 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState234 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState234 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState234) + | RPAREN -> + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s, (x0 : (LAst.typ))), (y0 : (string))) = _menhir_stack in + let _v : ((LAst.typ * string) list) = let x = + let y = y0 in + let x = x0 in + ( (x, y) ) + in + ( [ x ] ) in + _menhir_goto_separated_nonempty_list_COMMA_pair_first_class_typ_IDENT__ _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s, _), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | STAR -> + _menhir_reduce136 _menhir_env (Obj.magic _menhir_stack) + | LPAREN -> + _menhir_reduce118 _menhir_env (Obj.magic _menhir_stack) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + _menhir_fail () + +and _menhir_goto_element_typ : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.typ) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState9 | MenhirState52 | MenhirState234 | MenhirState214 | MenhirState210 | MenhirState208 | MenhirState206 | MenhirState194 | MenhirState197 | MenhirState200 | MenhirState191 | MenhirState186 | MenhirState183 | MenhirState180 | MenhirState177 | MenhirState174 | MenhirState157 | MenhirState160 | MenhirState150 | MenhirState148 | MenhirState145 | MenhirState143 | MenhirState141 | MenhirState138 | MenhirState135 | MenhirState133 | MenhirState126 | MenhirState122 | MenhirState116 | MenhirState85 | MenhirState75 | MenhirState59 | MenhirState65 | MenhirState30 | MenhirState38 -> + let _menhir_stack = Obj.magic _menhir_stack in + _menhir_reduce37 _menhir_env (Obj.magic _menhir_stack) + | MenhirState19 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | RANGLE -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (((_menhir_stack, _menhir_s), (sz : (int))), _, (tp : (LAst.typ))) = _menhir_stack in + let _5 = () in + let _3 = () in + let _1 = () in + let _v : (LAst.typ) = ( Tvector (sz, tp) ) in + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + (match _menhir_s with + | MenhirState234 | MenhirState214 | MenhirState210 | MenhirState208 | MenhirState206 | MenhirState200 | MenhirState197 | MenhirState194 | MenhirState191 | MenhirState186 | MenhirState183 | MenhirState180 | MenhirState177 | MenhirState174 | MenhirState160 | MenhirState157 | MenhirState150 | MenhirState148 | MenhirState145 | MenhirState143 | MenhirState141 | MenhirState138 | MenhirState135 | MenhirState133 | MenhirState126 | MenhirState122 | MenhirState116 | MenhirState85 | MenhirState75 | MenhirState65 | MenhirState59 | MenhirState52 | MenhirState9 | MenhirState16 | MenhirState38 | MenhirState30 | MenhirState19 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, (tp : (LAst.typ))) = _menhir_stack in + let _v : (LAst.typ) = ( tp ) in + _menhir_goto_first_class_typ _menhir_env _menhir_stack _menhir_s _v + | MenhirState154 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | CONSTANT_INT _v -> + _menhir_run62 _menhir_env (Obj.magic _menhir_stack) MenhirState155 _v + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState155 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState155 _v + | NULL -> + _menhir_run61 _menhir_env (Obj.magic _menhir_stack) MenhirState155 + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState155 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState155 _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState155) + | MenhirState188 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | CONSTANT_INT _v -> + _menhir_run62 _menhir_env (Obj.magic _menhir_stack) MenhirState189 _v + | NAMED_GLOBAL _v -> + _menhir_run50 _menhir_env (Obj.magic _menhir_stack) MenhirState189 _v + | NAMED_LOCAL _v -> + _menhir_run49 _menhir_env (Obj.magic _menhir_stack) MenhirState189 _v + | NULL -> + _menhir_run61 _menhir_env (Obj.magic _menhir_stack) MenhirState189 + | NUMBERED_GLOBAL _v -> + _menhir_run48 _menhir_env (Obj.magic _menhir_stack) MenhirState189 _v + | NUMBERED_LOCAL _v -> + _menhir_run47 _menhir_env (Obj.magic _menhir_stack) MenhirState189 _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState189) + | _ -> + _menhir_fail ()) + | LPAREN | STAR -> + _menhir_reduce37 _menhir_env (Obj.magic _menhir_stack) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | MenhirState16 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | RSQBRACK -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (((_menhir_stack, _menhir_s), (sz : (int))), _, (tp : (LAst.typ))) = _menhir_stack in + let _5 = () in + let _3 = () in + let _1 = () in + let _v : (LAst.typ) = ( Tarray (sz, tp) ) in + _menhir_goto_first_class_typ _menhir_env _menhir_stack _menhir_s _v + | LPAREN | STAR -> + _menhir_reduce37 _menhir_env (Obj.magic _menhir_stack) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + _menhir_fail () + +and _menhir_goto_floating_typ : _menhir_env -> 'ttv_tail -> _menhir_state -> (unit) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let (_1 : (unit)) = _v in + let _v : (LAst.typ) = ( Tfloat ) in + _menhir_goto_element_typ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_goto_list_function_def_ : _menhir_env -> 'ttv_tail -> _menhir_state -> (LAst.function_def list) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + match _menhir_s with + | MenhirState8 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | NAMED_METADATA _v -> + _menhir_run256 _menhir_env (Obj.magic _menhir_stack) MenhirState236 _v + | NUMBERED_METADATA _v -> + _menhir_run237 _menhir_env (Obj.magic _menhir_stack) MenhirState236 _v + | EOF -> + _menhir_reduce56 _menhir_env (Obj.magic _menhir_stack) MenhirState236 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState236) + | MenhirState270 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s, (x : (LAst.function_def))), _, (xs : (LAst.function_def list))) = _menhir_stack in + let _v : (LAst.function_def list) = ( x :: xs ) in + _menhir_goto_list_function_def_ _menhir_env _menhir_stack _menhir_s _v + | _ -> + _menhir_fail () + +and _menhir_run10 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_floating_typ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run11 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + _menhir_reduce117 _menhir_env (Obj.magic _menhir_stack) + +and _menhir_run12 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_floating_typ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run13 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + _menhir_reduce41 _menhir_env (Obj.magic _menhir_stack) + +and _menhir_run14 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | CONSTANT_INT _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = (_menhir_stack, _v) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | X -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState16 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState16 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState16 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState16 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState16 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState16 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState16 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState16 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState16 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState16 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState16 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState16 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState16) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_run17 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | CONSTANT_INT _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = (_menhir_stack, _v) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | X -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState19 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState19 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState19 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState19 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState19 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState19 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState19 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState19 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState19 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState19 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState19 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState19 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState19) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_run20 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let _1 = () in + let _v : (LAst.typ) = ( Tlabel ) in + _menhir_goto_first_class_typ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run21 : _menhir_env -> 'ttv_tail -> _menhir_state -> (int) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (width : (int)) = _v in + let _v : (LAst.typ) = ( Tint width ) in + _menhir_goto_element_typ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run22 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_floating_typ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run23 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_floating_typ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run24 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_floating_typ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run25 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let _1 = () in + let _v : (unit) = ( () ) in + _menhir_goto_floating_typ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_reduce54 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _v : (LAst.function_def list) = ( [] ) in + _menhir_goto_list_function_def_ _menhir_env _menhir_stack _menhir_s _v + +and _menhir_run9 : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | DOUBLE -> + _menhir_run25 _menhir_env (Obj.magic _menhir_stack) MenhirState9 + | FLOAT -> + _menhir_run24 _menhir_env (Obj.magic _menhir_stack) MenhirState9 + | FP128 -> + _menhir_run23 _menhir_env (Obj.magic _menhir_stack) MenhirState9 + | HALF -> + _menhir_run22 _menhir_env (Obj.magic _menhir_stack) MenhirState9 + | INT _v -> + _menhir_run21 _menhir_env (Obj.magic _menhir_stack) MenhirState9 _v + | LABEL -> + _menhir_run20 _menhir_env (Obj.magic _menhir_stack) MenhirState9 + | LANGLE -> + _menhir_run17 _menhir_env (Obj.magic _menhir_stack) MenhirState9 + | LSQBRACK -> + _menhir_run14 _menhir_env (Obj.magic _menhir_stack) MenhirState9 + | METADATA -> + _menhir_run13 _menhir_env (Obj.magic _menhir_stack) MenhirState9 + | PPC_FP128 -> + _menhir_run12 _menhir_env (Obj.magic _menhir_stack) MenhirState9 + | VOID -> + _menhir_run11 _menhir_env (Obj.magic _menhir_stack) MenhirState9 + | X86_FP80 -> + _menhir_run10 _menhir_env (Obj.magic _menhir_stack) MenhirState9 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState9 + +and _menhir_fail : unit -> 'a = + fun () -> + Printf.fprintf Pervasives.stderr "Internal failure -- please contact the parser generator's developers.\n%!"; + assert false + +and _menhir_goto_targets : _menhir_env -> 'ttv_tail -> _menhir_state -> (string option * string option) -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s _v -> + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + match _tok with + | DEFINE -> + _menhir_run9 _menhir_env (Obj.magic _menhir_stack) MenhirState8 + | EOF | NAMED_METADATA _ | NUMBERED_METADATA _ -> + _menhir_reduce54 _menhir_env (Obj.magic _menhir_stack) MenhirState8 + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState8 + +and _menhir_errorcase : _menhir_env -> 'ttv_tail -> _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack _menhir_s -> + match _menhir_s with + | MenhirState276 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState272 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState270 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState266 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState260 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState258 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState238 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState236 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState234 -> + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s, _), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState230 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState227 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState225 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState217 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState214 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState213 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState211 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState210 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState208 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState206 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState205 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState200 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState198 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState197 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState195 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState194 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState192 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState191 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState189 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState188 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState186 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState185 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState183 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState182 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState180 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState179 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState177 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState176 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState174 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState163 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState161 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState160 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState158 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState157 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState155 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState154 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState152 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState151 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState150 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState148 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState147 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState145 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState143 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState141 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState140 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState138 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState137 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState135 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState133 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState128 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState126 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState124 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState122 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState119 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState117 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState116 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState112 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState109 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState106 -> + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState104 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState95 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState93 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState90 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState89 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState85 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState82 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState77 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState75 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState67 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState66 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState65 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState60 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState59 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState58 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + | MenhirState55 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState52 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState46 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState38 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState30 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState29 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState27 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState19 -> + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState16 -> + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s), _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState9 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState8 -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, _) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + | MenhirState0 -> + let _menhir_stack = Obj.magic _menhir_stack in + raise _eRR + +and _menhir_run2 : _menhir_env -> 'ttv_tail * _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack -> + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | EQUALS -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | CONSTANT_STRING _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (str : (string)) = _v in + let (_menhir_stack, _menhir_s) = _menhir_stack in + let _3 = () in + let _2 = () in + let _1 = () in + let _v : (string) = ( str ) in + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + (match _menhir_s with + | MenhirState0 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | TARGET -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_s = MenhirState272 in + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DATALAYOUT -> + _menhir_run5 _menhir_env (Obj.magic _menhir_stack) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | DEFINE | EOF | NAMED_METADATA _ | NUMBERED_METADATA _ -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, (tt : (string))) = _menhir_stack in + let _v : (string option * string option) = ( (None, Some tt) ) in + _menhir_goto_targets _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState272) + | MenhirState276 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s, (dl : (string))), _, (tt : (string))) = _menhir_stack in + let _v : (string option * string option) = ( (Some dl, Some tt) ) in + _menhir_goto_targets _menhir_env _menhir_stack _menhir_s _v + | _ -> + _menhir_fail ()) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_run5 : _menhir_env -> 'ttv_tail * _menhir_state -> 'ttv_return = + fun _menhir_env _menhir_stack -> + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | EQUALS -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | CONSTANT_STRING _v -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_env = _menhir_discard _menhir_env in + let _menhir_stack = Obj.magic _menhir_stack in + let (str : (string)) = _v in + let (_menhir_stack, _menhir_s) = _menhir_stack in + let _3 = () in + let _2 = () in + let _1 = () in + let _v : (string) = ( str ) in + let _menhir_stack = (_menhir_stack, _menhir_s, _v) in + (match _menhir_s with + | MenhirState272 -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_stack = Obj.magic _menhir_stack in + let ((_menhir_stack, _menhir_s, (tt : (string))), _, (dl : (string))) = _menhir_stack in + let _v : (string option * string option) = ( (Some dl, Some tt) ) in + _menhir_goto_targets _menhir_env _menhir_stack _menhir_s _v + | MenhirState0 -> + let _menhir_stack = Obj.magic _menhir_stack in + assert (not _menhir_env._menhir_error); + let _tok = _menhir_env._menhir_token in + (match _tok with + | TARGET -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_s = MenhirState276 in + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | TRIPLE -> + _menhir_run2 _menhir_env (Obj.magic _menhir_stack) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | DEFINE | EOF | NAMED_METADATA _ | NUMBERED_METADATA _ -> + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s, (dl : (string))) = _menhir_stack in + let _v : (string option * string option) = ( (Some dl, None) ) in + _menhir_goto_targets _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState276) + | _ -> + _menhir_fail ()) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s + +and _menhir_discard : _menhir_env -> _menhir_env = + fun _menhir_env -> + let lexer = _menhir_env._menhir_lexer in + let lexbuf = _menhir_env._menhir_lexbuf in + let _tok = lexer lexbuf in + { + _menhir_lexer = lexer; + _menhir_lexbuf = lexbuf; + _menhir_token = _tok; + _menhir_error = false; + } + +and program : (Lexing.lexbuf -> token) -> Lexing.lexbuf -> (LAst.program) = + fun lexer lexbuf -> + let _menhir_env = let _tok = Obj.magic () in + { + _menhir_lexer = lexer; + _menhir_lexbuf = lexbuf; + _menhir_token = _tok; + _menhir_error = false; + } in + Obj.magic (let _menhir_stack = ((), _menhir_env._menhir_lexbuf.Lexing.lex_curr_p) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + match _tok with + | TARGET -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_s = MenhirState0 in + let _menhir_stack = (_menhir_stack, _menhir_s) in + let _menhir_env = _menhir_discard _menhir_env in + let _tok = _menhir_env._menhir_token in + (match _tok with + | DATALAYOUT -> + _menhir_run5 _menhir_env (Obj.magic _menhir_stack) + | TRIPLE -> + _menhir_run2 _menhir_env (Obj.magic _menhir_stack) + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + let _menhir_stack = Obj.magic _menhir_stack in + let (_menhir_stack, _menhir_s) = _menhir_stack in + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) _menhir_s) + | DEFINE | EOF | NAMED_METADATA _ | NUMBERED_METADATA _ -> + let _menhir_stack = Obj.magic _menhir_stack in + let _menhir_s = MenhirState0 in + let _v : (string option * string option) = ( (None, None) ) in + _menhir_goto_targets _menhir_env _menhir_stack _menhir_s _v + | _ -> + assert (not _menhir_env._menhir_error); + _menhir_env._menhir_error <- true; + _menhir_errorcase _menhir_env (Obj.magic _menhir_stack) MenhirState0) + + diff --git a/infer/tests/codetoanalyze/java/checkers/Makefile b/infer/tests/codetoanalyze/java/checkers/Makefile index c552893fa..c9f0cbe16 100644 --- a/infer/tests/codetoanalyze/java/checkers/Makefile +++ b/infer/tests/codetoanalyze/java/checkers/Makefile @@ -10,6 +10,6 @@ include $(JAVA_TEST_DIR)/java.make ANALYZER = checkers -INFER_OPTIONS = --thread-safety --no-filtering --debug-exceptions +INFER_OPTIONS = --no-filtering --debug-exceptions JAVA_SOURCE_FILES = $(wildcard *.java) diff --git a/infer/tests/codetoanalyze/java/checkers/issues.exp b/infer/tests/codetoanalyze/java/checkers/issues.exp index c423c5ac3..aa3027d6d 100644 --- a/infer/tests/codetoanalyze/java/checkers/issues.exp +++ b/infer/tests/codetoanalyze/java/checkers/issues.exp @@ -32,8 +32,5 @@ PrintfArgsChecker.java, void PrintfArgsChecker.formatStringIsNotLiteral(PrintStr PrintfArgsChecker.java, void PrintfArgsChecker.notSuppressed(PrintStream), 1, CHECKERS_PRINTF_ARGS PrintfArgsChecker.java, void PrintfArgsChecker.stringInsteadOfInteger(PrintStream), 1, CHECKERS_PRINTF_ARGS PrintfArgsChecker.java, void PrintfArgsChecker.wrongNumberOfArguments(PrintStream), 1, CHECKERS_PRINTF_ARGS -ThreadSafeExample.java, void ExtendsThreadSafeExample.newmethodBad(), 0, CHECKERS_THREAD_SAFETY_WARNING -ThreadSafeExample.java, void ExtendsThreadSafeExample.tsOK(), 0, CHECKERS_THREAD_SAFETY_WARNING -ThreadSafeExample.java, void ThreadSafeExample.tsBad(), 0, CHECKERS_THREAD_SAFETY_WARNING TwoCheckersExample.java, List TwoCheckersExample.shouldRaiseImmutableCastError(), 0, CHECKERS_IMMUTABLE_CAST TwoCheckersExample.java, List TwoCheckersExample.shouldRaisePerformanceCriticalError(), 1, CHECKERS_CALLS_EXPENSIVE_METHOD diff --git a/infer/tests/codetoanalyze/java/threadsafety/Makefile b/infer/tests/codetoanalyze/java/threadsafety/Makefile new file mode 100644 index 000000000..2b82d8609 --- /dev/null +++ b/infer/tests/codetoanalyze/java/threadsafety/Makefile @@ -0,0 +1,14 @@ +# Copyright (c) 2016 - present Facebook, Inc. +# All rights reserved. +# +# This source code is licensed under the BSD style license found in the +# LICENSE file in the root directory of this source tree. An additional grant +# of patent rights can be found in the PATENTS file in the same directory. + +JAVA_TEST_DIR = .. +include $(JAVA_TEST_DIR)/java.make + +ANALYZER = threadsafety +INFER_OPTIONS = --no-filtering --debug-exceptions + +JAVA_SOURCE_FILES = $(wildcard *.java) diff --git a/infer/tests/codetoanalyze/java/checkers/NotThreadSafeExample.java b/infer/tests/codetoanalyze/java/threadsafety/NotThreadSafeExample.java similarity index 100% rename from infer/tests/codetoanalyze/java/checkers/NotThreadSafeExample.java rename to infer/tests/codetoanalyze/java/threadsafety/NotThreadSafeExample.java diff --git a/infer/tests/codetoanalyze/java/checkers/ThreadSafeExample.java b/infer/tests/codetoanalyze/java/threadsafety/ThreadSafeExample.java similarity index 100% rename from infer/tests/codetoanalyze/java/checkers/ThreadSafeExample.java rename to infer/tests/codetoanalyze/java/threadsafety/ThreadSafeExample.java diff --git a/infer/tests/codetoanalyze/java/threadsafety/issues.exp b/infer/tests/codetoanalyze/java/threadsafety/issues.exp new file mode 100644 index 000000000..61bb33e04 --- /dev/null +++ b/infer/tests/codetoanalyze/java/threadsafety/issues.exp @@ -0,0 +1,3 @@ +ThreadSafeExample.java, void ExtendsThreadSafeExample.newmethodBad(), 0, THREAD_SAFETY_ERROR +ThreadSafeExample.java, void ExtendsThreadSafeExample.tsOK(), 0, THREAD_SAFETY_ERROR +ThreadSafeExample.java, void ThreadSafeExample.tsBad(), 0, THREAD_SAFETY_ERROR